Thingiverse
Barrebot v1.0 c803032ec0fd70e1a9af9ff9bb182402 by carloslon19
by Thingiverse
Last crawled date: 3 years ago
Este es un robot para el trabajo educativo, y tiene el propósito de ayudante casero para barrer y aspirar el piso en una vivienda,
Paso 1. diseño de piezas para su montaje; se diseñó en tinkercad la pieza del frente y otra pieza que va unida a la de enfrente en la parte superior donde se aloja la matriz de leds. en la de enfrente van los ultrasonidos
Paso 2. se realiza el corte de las piezas; las piezas de la base se consiguió en el comercio, se agrego la pieza del frente y otra que va unida en la parte superior, adicional a estas piezas se realizaron otras piezas con material reciclado de aluminio para el soporte del banco de baterías, el servomotor del brazo, la base de la placa de arduino se monto sobre soportes de placa de pc reciclados.
Paso 3. Se realiza el montaje de la electrónica en la base del carro robótico, se prueban los elementos para su funcionamiento con los ejemplos de Facilino, y se realizan las conexiones según el diseño en Fritzing. se realizo el video de los ejemplos cuyo funcionamiento es visible. se modifico el uso de los servomotores de rotación por motores DC y para su control se uso el Driver L298N
http://fritzing.org/projects/barrebot-v-10
Paso 4. Se utiliza la aplicación de Arduino y de APP Inventor para generar el código de la aplicación Barrebot. se puso a funcionar el cambio de caras, el acceso al Bluetooth el acceso al acelerómetro, en el centro a las direcciones del los motores del carro, y a subir y a bajar la escoba con el servo. no se ha activado el seguilineas ni el ultrasonido aun tratare de hacerlo antes del vencimiento del examen. en algun momento pense que fallaba el sistema pero era solo falta de energía en las baterías por eso el video aparece con energía conectada a la red y el cable de USB conectado al Arduino, el sistema consume mucha energía, lo cual es un parámetro a tener en cuenta para el diseño de la barredora rea. subo los códigos utilizados
pude trabajar el acelerómetro, pero para el movimiento autónomo no pude realizar el seguilineas ya que los motores DC se mueven con diferente fuerza y no funciona bien, trate de que barriera su recorrido pero parece mas un baile loco, por los mismos motores.
BARREBOT_V_1.0
/
Barrebot v 1.0
El proposito de este ejercicio es tener las bases necesarias para hacer un robot ayundante
domestico, poder calcular las necesidades de fuerza y demas parametros necesarios para que
realice su labor en solitario/
include
Servo servo;
include
int _bt_cmd=0;
/ Global variables /
SoftwareSerial blueToothSerial(2,4);
/ Function declaration /
void LEDMatrix_init(int cs, int din, int clk);
void writeRow(int cs, int din, int clk, int row, int data);
void maxAll (int cs, int din, int clk, int reg, int col);
void putByte (int din, int clk, int data);
void happy(int cs, int din, int clk);
void angry(int cs, int din, int clk);
void sad(int cs, int din, int clk);
void heart(int cs, int din, int clk);
int IN3 = 6;
int IN4 = 5;
int IN1 = 8;
int IN2 = 9;
void setup()
{
//Attach servo to pin 3
servo.attach(3);
//Set pins for bluetooth transmission/reception
pinMode(2,INPUT);
pinMode(4, OUTPUT);
blueToothSerial.begin(9600);
blueToothSerial.flush();
//Set LED Matrix pins
pinMode(10,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
//Initialize LED Matrix
maxAll(10,12,11,11,7);
maxAll(10,12,11,9,0);
maxAll(10,12,11,12,1);
maxAll(10,12,11,15,0);
int i=0;
for (i = 1; i <= 8; i++)
maxAll(10,12,11,i,0);
maxAll(10,12,11,10,15);
pinMode (IN4, OUTPUT); // Input4 conectada al pin 5
pinMode (IN3, OUTPUT); // Input3 conectada al pin 6
pinMode (IN1, OUTPUT); // Input4 conectada al pin 8
pinMode (IN2, OUTPUT); // Input3 conectada al pin 9
}
void loop()
{
digitalWrite (IN4, LOW);
digitalWrite (IN3, LOW);
digitalWrite (IN1, LOW);
digitalWrite (IN2, LOW);
//Check received command
if (blueToothSerial.available()>0 || _bt_cmd>0)
{
int cmd=blueToothSerial.read();
if ((cmd==2)||(_bt_cmd==2)){
happy(10,12,11);
}
if ((cmd==3)||(_bt_cmd==3)){
sad(10,12,11);
delay(2000);
}
if ((cmd==4)||(_bt_cmd==4)){
heart(10,12,11);
}
if ((cmd==5)||(_bt_cmd==5)){
angry(10,12,11);
}
if ((cmd==21)||(_bt_cmd==21)){
_bt_cmd=21;
// Motor adelante
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
digitalWrite (IN2, HIGH);
digitalWrite (IN1, LOW);
}
if ((cmd==22)||(_bt_cmd==22)){
_bt_cmd=22;
// Motor atras
digitalWrite (IN3, LOW);
digitalWrite (IN4, HIGH);
digitalWrite (IN2, LOW);
digitalWrite (IN1, HIGH);
// delay(100);
}
if ((cmd==25)||(_bt_cmd==25)){
_bt_cmd=25;
// Motor PARA
digitalWrite (IN4, LOW);
digitalWrite (IN3, LOW);
digitalWrite (IN1, LOW);
digitalWrite (IN2, LOW);
}
if ((cmd==23)||(_bt_cmd==23)){
_bt_cmd=23;
// Motor derecha
digitalWrite (IN4, HIGH);
digitalWrite (IN3, LOW);
digitalWrite (IN1, LOW);
digitalWrite (IN2, HIGH);
}
if ((cmd==24)||(_bt_cmd==24)){
_bt_cmd=24;
// Motor izquierda
digitalWrite (IN4, LOW);
digitalWrite (IN3, HIGH);
digitalWrite (IN1, HIGH);
digitalWrite (IN2, LOW);
}
if ((cmd==34)||(_bt_cmd==34)){
_bt_cmd=34;
// Escoba abajo
servo.write(45);
}
if ((cmd==32)||(_bt_cmd==32)){
_bt_cmd=32;
// Escoba arriba
servo.write(135);
}
}
}
/ Function definition /
void LEDMatrix_init(int cs, int din, int clk) {
maxAll(cs,din,clk,11,7);
maxAll(cs,din,clk,9,0);
maxAll(cs,din,clk,12,1);
maxAll(cs,din,clk,15,0);
int i=0;
for (i = 1; i <= 8; i++) {
maxAll(cs,din,clk,i, 0);
}
maxAll(cs,din,clk,10,15);
}
void writeRow(int cs, int din, int clk, int row, int data) {
digitalWrite(cs,LOW);
putByte(din,clk,row);
putByte(din,clk,data);
digitalWrite(cs,LOW);
digitalWrite(cs,HIGH);
}
void maxAll (int cs, int din, int clk, int reg, int col) {
digitalWrite(cs,LOW);
putByte(din,clk,reg);
putByte(din,clk,col);
digitalWrite(cs,LOW);
digitalWrite(cs,HIGH);
}
void putByte (int din, int clk, int data) {
byte i = 8;
byte mask;
while(i > 0) {
mask = 0x01 << (i - 1);
digitalWrite(clk,LOW);
if (data & mask){
digitalWrite(din,HIGH);
}
else{
digitalWrite(din,LOW);
}
digitalWrite(clk,HIGH);
--i;
}
}
void sad(int cs, int din, int clk) {
writeRow(cs,din,clk,1, 12);
writeRow(cs,din,clk,2, 24);
writeRow(cs,din,clk,3, 48);
writeRow(cs,din,clk,4, 48);
writeRow(cs,din,clk,5, 48);
writeRow(cs,din,clk,6, 48);
writeRow(cs,din,clk,7, 24);
writeRow(cs,din,clk,8, 12);
}
void angry(int cs, int din, int clk) {
writeRow(cs,din,clk,1, 2);
writeRow(cs,din,clk,2, 68);
writeRow(cs,din,clk,3, 36);
writeRow(cs,din,clk,4, 16);
writeRow(cs,din,clk,5, 16);
writeRow(cs,din,clk,6, 36);
writeRow(cs,din,clk,7, 68);
writeRow(cs,din,clk,8, 2);
}
void happy (int cs, int din, int clk) {
writeRow(cs,din,clk,1, 48);
writeRow(cs,din,clk,2, 24);
writeRow(cs,din,clk,3, 12);
writeRow(cs,din,clk,4, 12);
writeRow(cs,din,clk,5, 12);
writeRow(cs,din,clk,6, 12);
writeRow(cs,din,clk,7, 24);
writeRow(cs,din,clk,8, 48);
}
void heart(int cs, int din, int clk) {
writeRow(cs,din,clk,1, 12);
writeRow(cs,din,clk,2, 30);
writeRow(cs,din,clk,3, 62);
writeRow(cs,din,clk,4, 124);
writeRow(cs,din,clk,5, 124);
writeRow(cs,din,clk,6, 62);
writeRow(cs,din,clk,7, 30);
writeRow(cs,din,clk,8, 12);
}
Paso 1. diseño de piezas para su montaje; se diseñó en tinkercad la pieza del frente y otra pieza que va unida a la de enfrente en la parte superior donde se aloja la matriz de leds. en la de enfrente van los ultrasonidos
Paso 2. se realiza el corte de las piezas; las piezas de la base se consiguió en el comercio, se agrego la pieza del frente y otra que va unida en la parte superior, adicional a estas piezas se realizaron otras piezas con material reciclado de aluminio para el soporte del banco de baterías, el servomotor del brazo, la base de la placa de arduino se monto sobre soportes de placa de pc reciclados.
Paso 3. Se realiza el montaje de la electrónica en la base del carro robótico, se prueban los elementos para su funcionamiento con los ejemplos de Facilino, y se realizan las conexiones según el diseño en Fritzing. se realizo el video de los ejemplos cuyo funcionamiento es visible. se modifico el uso de los servomotores de rotación por motores DC y para su control se uso el Driver L298N
http://fritzing.org/projects/barrebot-v-10
Paso 4. Se utiliza la aplicación de Arduino y de APP Inventor para generar el código de la aplicación Barrebot. se puso a funcionar el cambio de caras, el acceso al Bluetooth el acceso al acelerómetro, en el centro a las direcciones del los motores del carro, y a subir y a bajar la escoba con el servo. no se ha activado el seguilineas ni el ultrasonido aun tratare de hacerlo antes del vencimiento del examen. en algun momento pense que fallaba el sistema pero era solo falta de energía en las baterías por eso el video aparece con energía conectada a la red y el cable de USB conectado al Arduino, el sistema consume mucha energía, lo cual es un parámetro a tener en cuenta para el diseño de la barredora rea. subo los códigos utilizados
pude trabajar el acelerómetro, pero para el movimiento autónomo no pude realizar el seguilineas ya que los motores DC se mueven con diferente fuerza y no funciona bien, trate de que barriera su recorrido pero parece mas un baile loco, por los mismos motores.
BARREBOT_V_1.0
/
Barrebot v 1.0
El proposito de este ejercicio es tener las bases necesarias para hacer un robot ayundante
domestico, poder calcular las necesidades de fuerza y demas parametros necesarios para que
realice su labor en solitario/
include
Servo servo;
include
int _bt_cmd=0;
/ Global variables /
SoftwareSerial blueToothSerial(2,4);
/ Function declaration /
void LEDMatrix_init(int cs, int din, int clk);
void writeRow(int cs, int din, int clk, int row, int data);
void maxAll (int cs, int din, int clk, int reg, int col);
void putByte (int din, int clk, int data);
void happy(int cs, int din, int clk);
void angry(int cs, int din, int clk);
void sad(int cs, int din, int clk);
void heart(int cs, int din, int clk);
int IN3 = 6;
int IN4 = 5;
int IN1 = 8;
int IN2 = 9;
void setup()
{
//Attach servo to pin 3
servo.attach(3);
//Set pins for bluetooth transmission/reception
pinMode(2,INPUT);
pinMode(4, OUTPUT);
blueToothSerial.begin(9600);
blueToothSerial.flush();
//Set LED Matrix pins
pinMode(10,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
//Initialize LED Matrix
maxAll(10,12,11,11,7);
maxAll(10,12,11,9,0);
maxAll(10,12,11,12,1);
maxAll(10,12,11,15,0);
int i=0;
for (i = 1; i <= 8; i++)
maxAll(10,12,11,i,0);
maxAll(10,12,11,10,15);
pinMode (IN4, OUTPUT); // Input4 conectada al pin 5
pinMode (IN3, OUTPUT); // Input3 conectada al pin 6
pinMode (IN1, OUTPUT); // Input4 conectada al pin 8
pinMode (IN2, OUTPUT); // Input3 conectada al pin 9
}
void loop()
{
digitalWrite (IN4, LOW);
digitalWrite (IN3, LOW);
digitalWrite (IN1, LOW);
digitalWrite (IN2, LOW);
//Check received command
if (blueToothSerial.available()>0 || _bt_cmd>0)
{
int cmd=blueToothSerial.read();
if ((cmd==2)||(_bt_cmd==2)){
happy(10,12,11);
}
if ((cmd==3)||(_bt_cmd==3)){
sad(10,12,11);
delay(2000);
}
if ((cmd==4)||(_bt_cmd==4)){
heart(10,12,11);
}
if ((cmd==5)||(_bt_cmd==5)){
angry(10,12,11);
}
if ((cmd==21)||(_bt_cmd==21)){
_bt_cmd=21;
// Motor adelante
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
digitalWrite (IN2, HIGH);
digitalWrite (IN1, LOW);
}
if ((cmd==22)||(_bt_cmd==22)){
_bt_cmd=22;
// Motor atras
digitalWrite (IN3, LOW);
digitalWrite (IN4, HIGH);
digitalWrite (IN2, LOW);
digitalWrite (IN1, HIGH);
// delay(100);
}
if ((cmd==25)||(_bt_cmd==25)){
_bt_cmd=25;
// Motor PARA
digitalWrite (IN4, LOW);
digitalWrite (IN3, LOW);
digitalWrite (IN1, LOW);
digitalWrite (IN2, LOW);
}
if ((cmd==23)||(_bt_cmd==23)){
_bt_cmd=23;
// Motor derecha
digitalWrite (IN4, HIGH);
digitalWrite (IN3, LOW);
digitalWrite (IN1, LOW);
digitalWrite (IN2, HIGH);
}
if ((cmd==24)||(_bt_cmd==24)){
_bt_cmd=24;
// Motor izquierda
digitalWrite (IN4, LOW);
digitalWrite (IN3, HIGH);
digitalWrite (IN1, HIGH);
digitalWrite (IN2, LOW);
}
if ((cmd==34)||(_bt_cmd==34)){
_bt_cmd=34;
// Escoba abajo
servo.write(45);
}
if ((cmd==32)||(_bt_cmd==32)){
_bt_cmd=32;
// Escoba arriba
servo.write(135);
}
}
}
/ Function definition /
void LEDMatrix_init(int cs, int din, int clk) {
maxAll(cs,din,clk,11,7);
maxAll(cs,din,clk,9,0);
maxAll(cs,din,clk,12,1);
maxAll(cs,din,clk,15,0);
int i=0;
for (i = 1; i <= 8; i++) {
maxAll(cs,din,clk,i, 0);
}
maxAll(cs,din,clk,10,15);
}
void writeRow(int cs, int din, int clk, int row, int data) {
digitalWrite(cs,LOW);
putByte(din,clk,row);
putByte(din,clk,data);
digitalWrite(cs,LOW);
digitalWrite(cs,HIGH);
}
void maxAll (int cs, int din, int clk, int reg, int col) {
digitalWrite(cs,LOW);
putByte(din,clk,reg);
putByte(din,clk,col);
digitalWrite(cs,LOW);
digitalWrite(cs,HIGH);
}
void putByte (int din, int clk, int data) {
byte i = 8;
byte mask;
while(i > 0) {
mask = 0x01 << (i - 1);
digitalWrite(clk,LOW);
if (data & mask){
digitalWrite(din,HIGH);
}
else{
digitalWrite(din,LOW);
}
digitalWrite(clk,HIGH);
--i;
}
}
void sad(int cs, int din, int clk) {
writeRow(cs,din,clk,1, 12);
writeRow(cs,din,clk,2, 24);
writeRow(cs,din,clk,3, 48);
writeRow(cs,din,clk,4, 48);
writeRow(cs,din,clk,5, 48);
writeRow(cs,din,clk,6, 48);
writeRow(cs,din,clk,7, 24);
writeRow(cs,din,clk,8, 12);
}
void angry(int cs, int din, int clk) {
writeRow(cs,din,clk,1, 2);
writeRow(cs,din,clk,2, 68);
writeRow(cs,din,clk,3, 36);
writeRow(cs,din,clk,4, 16);
writeRow(cs,din,clk,5, 16);
writeRow(cs,din,clk,6, 36);
writeRow(cs,din,clk,7, 68);
writeRow(cs,din,clk,8, 2);
}
void happy (int cs, int din, int clk) {
writeRow(cs,din,clk,1, 48);
writeRow(cs,din,clk,2, 24);
writeRow(cs,din,clk,3, 12);
writeRow(cs,din,clk,4, 12);
writeRow(cs,din,clk,5, 12);
writeRow(cs,din,clk,6, 12);
writeRow(cs,din,clk,7, 24);
writeRow(cs,din,clk,8, 48);
}
void heart(int cs, int din, int clk) {
writeRow(cs,din,clk,1, 12);
writeRow(cs,din,clk,2, 30);
writeRow(cs,din,clk,3, 62);
writeRow(cs,din,clk,4, 124);
writeRow(cs,din,clk,5, 124);
writeRow(cs,din,clk,6, 62);
writeRow(cs,din,clk,7, 30);
writeRow(cs,din,clk,8, 12);
}
Similar models
thingiverse
free
A Tracking Platform for Astrophotography by alex16
...delay(dl);
digitalwrite( in1, low );
digitalwrite( in2, low );
digitalwrite( in3, high );
digitalwrite( in4, high );
delay(dl);
}
thingiverse
free
3DX TRAFFIC LIGHT
...digitalwrite(ledg, low);
digitalwrite(ledy, high);
delay(3000);
digitalwrite(ledr, high);
digitalwrite(ledy, low);
delay(1000);
}
thingiverse
free
3D printed induction motor controller with arduino by robogio
...write(b, high);
digitalwrite(c, high);
digitalwrite(d, low);
digitalwrite(e, high);
digitalwrite(f, low);
delaymicroseconds(t);
}
thingiverse
free
LikeYouPartyPin by WillemvD
..., low); delay(200);digitalwrite(eye, high);delay(200);
digitalwrite(mouthlow, low); digitalwrite(mouthhigh, low); delay(500); }}}
thingiverse
free
Wheel of Fortune by WillemvD
...yservo.write(pos); delay(15); }
delay(2000);
for (pos = 180; pos >= 0; pos -= 1) { myservo.write(pos); delay(15); }
}
}
thingiverse
free
Chess Clock by WillemvD
...
digitalwrite(pin4, high); digitalwrite(pin5, low); digitalwrite(pin6, low); digitalwrite(pin7, high); delay(t);
delay(speed);}
}
grabcad
free
Automatic Slide Gate Maket
...lwrite (dcl,low);
}
if(limitkanan==1 && hasilkiri==1){
digitalwrite (dcr,low);
digitalwrite (dcl,high);
}
}
thingiverse
free
"Marble Run" by WillemvD
...ay(t);
digitalwrite(m2a, high); digitalwrite(m2b, low); digitalwrite(m2c, low); digitalwrite(m2d, high); delay(t);}
delay(500);
}
thingiverse
free
X-Y unit almost for free by WillemvD
...d, low); delay(t);
digitalwrite(m2a, high); digitalwrite(m2b, low); digitalwrite(m2c, low); digitalwrite(m2d, high); delay(t);}
}
thingiverse
free
Easy Pump arduino stepper by mochr
...delaymicroseconds(300); // wait 1/2 a ms
}
delay(1000); // pause one second
}
else {
digitalwrite(6, high); // set enable low
}
}
V1
turbosquid
$35
v1
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
3d_export
$10
street tree v1
...street tree v1
3dexport
street tree v1
3d_export
$5
potato v1
...potato v1
3dexport
turbosquid
$20
Kitchen V1
...bosquid
royalty free 3d model kitchen v1 for download as max on turbosquid: 3d models for games, architecture, videos. (1153622)
turbosquid
$12
sofa v1
...turbosquid
royalty free 3d model sofa v1 for download as max on turbosquid: 3d models for games, architecture, videos. (1283267)
turbosquid
$3
Chair V1
...urbosquid
royalty free 3d model chair v1 for download as fbx on turbosquid: 3d models for games, architecture, videos. (1486093)
turbosquid
$15
Cupboard v1
...royalty free 3d model cupboard v1 for download as max and fbx on turbosquid: 3d models for games, architecture, videos. (1444568)
3d_export
$5
tram v1
...tram v1
3dexport
3d_export
$8
lumber car v1
...lumber car v1
3dexport
lumber car v1 printable, low poly model.
turbosquid
$20
DELTALIGHT v1
...free 3d model deltalight v1 for download as max, max, and obj on turbosquid: 3d models for games, architecture, videos. (1630928)
0
turbosquid
$12
Calligraphic Digit 0 Number 0
...hic digit 0 number 0 for download as max, obj, fbx, and blend on turbosquid: 3d models for games, architecture, videos. (1389318)
3d_export
$6
set-0
...set-0
3dexport
turbosquid
$6
hedge 0
...yalty free 3d model hedge 0 for download as max, obj, and fbx on turbosquid: 3d models for games, architecture, videos. (1450353)
turbosquid
$5
Nuber 0
...oyalty free 3d model nuber 0 for download as ma, obj, and fbx on turbosquid: 3d models for games, architecture, videos. (1564674)
turbosquid
$22
0.jpg
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
free
Steam Locomotive Fowler 4F 0-6-0
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
$10
Liquid Number 0
... model liquid number 0 for download as c4d, 3ds, fbx, and obj on turbosquid: 3d models for games, architecture, videos. (1689919)
turbosquid
$45
Dragon360_perspShape_tmp.0.jpg
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
$8
Rocks Debris 0
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
3d_export
$18
wood-guardrail-fence 0
...wood-guardrail-fence 0
3dexport
wood-guardrail-fence 0<br>3ds max 2015