i had to make this classic robot, all the people makes it as a fisrt one.... jejejejeje this is made meccano style...... will post a video tomorrow...
i had to make this classic robot, all the people makes it as a fisrt one.... jejejejeje this is made meccano style...... will post a video tomorrow...
Nice job. Look forward to the video. I am working on something similar with a motor shield from Adafruit. Currently I am working on the behavior aspect.
Nice job aventgps
Would you mind posting your source code
I am especially intrerested by the IR sensor servo-mounted control
I do remember your CNC machine ![]()
these simple robots never stop amazing me :-). Nice job
/// diego colonnello botico//
///14 de octubre 2010 ///#include <Servo.h>
Servo servocentro;
Servo servoderecho;
Servo servoizquierdo;
int sensorPin = 2; // pin de entrada sensor sharp
int distancia = 300;void setup()
{
Serial.begin(9600);
servocentro.attach(8); //conecta el servo del sensor al pin 8
servoderecho.attach(10); // conecta el servo derecho al pin 10
servoizquierdo.attach(9); // conecta el servo izquierdo al pin 9}
void loop()
{Serial.println(analogRead(2));
{
if (analogRead(2) <= distancia)
{
adelante();
}
if (analogRead(2) > distancia)
{girar_iz(); // muevete girando
}
}}
//funciones de caminar//
// camina hacia adelante//
void adelante()
{
servoderecho.write(0);
servoizquierdo.write(180);
}//camina retrocediendo
void atras()
{
servoderecho.write(180);
servoizquierdo.write(0);}
//gira el cuerpo
void girar_iz()
{
servoderecho.write(180);
servoizquierdo.write(180);
delay(500);
}void girar_der()
{
servoderecho.write(0);
servoizquierdo.write(0);
}
i am gonna make some other testing with this bot, like changing the IR Sharp sensor by a PING))) to introduce the changes in the programing...
another thing is that i want to practice programing with other ways of using variables and stuff..... there is more than a hundred ways to do the same thing...
in a few weeks i will start improving my CNC machine... ![]()
new program:
//programa de mi robot BOTICO, para aprender a programar
//sensor sharp en un servo para que se mueva y determine
//la mejor opcion de movimiento
//tiene un lcd 16x2 para hacer feedback al usuario
//diego colonnello ultima version 25 octubre 2010
//aurduino severino s3v3 single side board#include <Servo.h>
Servo servocentro;
Servo servoderecho;
Servo servoizquierdo;
int sensorPin = 2; // pin de entrada sensor sharp
int distancia = 300;
int lectura1 = 0;
int lectura2 = 0;
void setup()
{
Serial.begin(9600);
servocentro.attach(8); //conecta el servo del sensor al pin 8
servoderecho.attach(10); // conecta el servo derecho al pin 10
servoizquierdo.attach(9); // conecta el servo izquierdo al pin 9}
void loop()
{ clearLCD();
selectLineOne();
Serial.println("Caminandito");
adelante();
{
if (analogRead(2) >= distancia)
{ clearLCD();
selectLineOne();
Serial.println("toy decidiendo");
parado();
delay(800);
servocentro.write(0);lectura1 = analogRead(2);
delay(700);
servocentro.write(180);lectura2=analogRead(2);
delay(700);
servocentro.write(90);
if (lectura1 > lectura2)
{selectLineTwo();
Serial.println("izquierda");
delay(800);
girar_iz();}
if (lectura1 < lectura2)
{selectLineTwo();
Serial.println("derecha");
delay(800);
girar_der();}
}}
}
//funciones de caminar//
// camina hacia adelante//
void adelante()
{
servoderecho.write(0);
servoizquierdo.write(180);
}//camina retrocediendo
void atras()
{
servoderecho.write(180);
servoizquierdo.write(0);}
//gira el cuerpo
void girar_iz()
{
servoderecho.write(180);
servoizquierdo.write(180);
delay(500);
}void girar_der()
{
servoderecho.write(0);
servoizquierdo.write(0);
delay(500);
}void parado()
{
servoderecho.write(90);
servoizquierdo.write(90);
}
//funciones para usar en un lcd 16x2
//modulo serlcd de sparkfunvoid selectLineOne(){ //puts the cursor at line 0 char 0.
Serial.print(0xFE, BYTE); //command flag
Serial.print(128, BYTE); //position
}
void selectLineTwo(){ //puts the cursor at line 0 char 0.
Serial.print(0xFE, BYTE); //command flag
Serial.print(192, BYTE); //position
}
void goTo(int position) { //position = line 1: 0-15, line 2: 16-31, 31+ defaults back to 0
if (position<16){ Serial.print(0xFE, BYTE); //command flag
Serial.print((position+128), BYTE); //position
}else if (position<32){Serial.print(0xFE, BYTE); //command flag
Serial.print((position+48+128), BYTE); //position
} else { goTo(0); }
}void clearLCD(){
Serial.print(0xFE, BYTE); //command flag
Serial.print(0x01, BYTE); //clear command.
}
void backlightOn(){ //turns on the backlight
Serial.print(0x7C, BYTE); //command flag for backlight stuff
Serial.print(157, BYTE); //light level.
}
void backlightOff(){ //turns off the backlight
Serial.print(0x7C, BYTE); //command flag for backlight stuff
Serial.print(128, BYTE); //light level for off.
}
void serCommand(){ //a general function to call the command flag for issuing all other commands
Serial.print(0xFE, BYTE);
}
i am now adding a pĂezo buzzer... ;D