Cerebro nuevo para el perfduino:
Tocaba hacer una break en este proyecto, así que el 06 fue día de playa con la family ;)
De regreso me encontré con el atmega328-PU con bootloader, un nuevo puente H (L293D) y un kit de LEDs... pero con el cansancio del día, eso quedó para el día siguiente...
El 07 cambie el integrado al perfduino le conecté el cable FTDI, el cual es un Nokia DKU-50 al cual le soldé unos headers machos y , esto lo saque del blog http://txapuzas.blogspot.com/2010/07/cable-de-programacion-para-arduino-ftdi.html con la diferencia que ese es con el cable DKU-5, que difiere en la cantidad de cables con el que yo use; revise la distribución de pines (pinout) y solo me queda faltando +VCC (5V) el cual no me afecta mucho (debo tenerlo alimentado con fuente externa)
Se deben descargar los drivers del CD que trae |
Cargue un par de sketches con el cable, para comprobar el funcionamiento, todo bien..todo bien como el Pibe!
Perfduino conectado |
Comunicación RF link entre Arduinos, prueba de librería virtualwire
Ya anteriormente había probado la funcionalidad de la pareja de Emisor/Receptor ahora tocaba ver si podía hacer que los 2 Arduinos se hablaran, con la la librería virtualwire esto es posible.
Acá descargan la libreria www.open.com.au/mikem/arduino/ (la última es la 1.9, alguna anteriores ya no funcionan con el IDE actual de Arduino) la deben guardar en la carpeta del programa arduino (librerías)
En esta ocasión probé los ejemplos que trae (emisor y receptor) el cual básicamente uno le dice al otro "hello" y esto se puede ver en el PC ya que el receptor va conectado al puerto serial.
Conexión Receptor
Pin Rx por defecto 11, se puede cambiar con un comando de la librería. |
PinTx por defecto 12, se puede cambiar con un comando de la librería. |
Fotos de los 2 montajes.
Este es lo que se observa en el receptor conectado vía puerto serial al PC:
no se preocupen por que supuestamente iba a salir "hello" es que el código de recepción esta especificado para mostrar en pantalla los caracteres como código HEX (base 16) esto es:
h = 68, e = 65, l = 6C, l = 6C, o = 6F, si quieren que les salga texto cambian esta línea:
Serial.print(buf[i], HEX);
por esta:
Serial.print((char)buf[i]); // ahora se muestra en la pantall (puerto serial) en ASCII
Servo casero, avances
Ahora tocaba el turno de avanzar en la dirección, ya que no se cuando llega el servo motor nuevo (de china salió el 15 de Sep y pueden ser hasta 40 días hábiles) seguí experimentando con el moto reductor, después de instalarle el potenciometro y avanzar en el tema de controlarle la velocidad (ya que volví a quemar otro integrado) le puse que recorriera 1 seg, ya que estaba leyendo tarde el valor del potenciometro de retorno y se pasaba un poco los finales de carreras que les puse.
Moto reductor, con potenciometro (100K) acoplado al eje de salida |
Esquema de montaje, creado en Fritzing |
Código:
//Programa para control de carro v.1.1, dirección
//Selwins Maturana Oct 2012
int pot1 = A4; //joystick avance
int pot2 = A5; //joystick dirección
int enable = 3; //Enable IC L293D - PWM control de velocidad
int forward = 6; // Señal para ir hacia adelante
int backward = 5; // Señal para ir hacia atrás
int rigth = 9; // Señal para ir hacia adelante
int left = 7; // Señal para ir hacia atrás
int LED = 13; //verificación
int dir; //valor pot2 (dirección)
int sign;// Señal potenciometro moto reductor
void setup(){
pinMode(enable, OUTPUT);
pinMode(forward, OUTPUT);
pinMode(backward, OUTPUT);
Serial.begin(9600);
}
void loop(){
dir = analogRead(pot2);
sign = analogRead(A3);
sign = map(sign, 0,1023, 0, 255);
Serial.println(sign);
delay(1000);
if(dir >= 344 && sign > 105) {
digitalWrite(rigth, LOW);
analogWrite(enable, 70);
digitalWrite(left, HIGH);
delay(1000);
digitalWrite(left, LOW);
delay(10);
}
else if (dir <= 334 && sign < 127){
digitalWrite(left, LOW);
analogWrite(enable, 80);
digitalWrite(rigth, HIGH);
delay(1000);
digitalWrite(rigth, LOW);
delay(10);
}
else
{
digitalWrite(rigth,LOW);
digitalWrite(left, LOW);
analogWrite(enable, 0);
}
}
Ya tengo claro como controlarlo, falta idear las líneas para que retorne al centro una vez se suelte el joystick y ver que puedo hacer para que sea continua la revisión de la señal de retorno.
Hola, buenas tardes para usar este cable dku-50 de usb a serial con otras tarjetas de desarrollo es necesario instalar el driver del cable. S.O windows 7.
ResponderEliminarAgradezco una respuesta.
Hola Cindy,la verdad no tengo experiencia con otras tarjetas de desarrollo, sin embargo yo te recomiendo que lo instales.
EliminarSlds
hola buenas noches, este proyecto trata de mover el motor mediante un joystick? soy novato disculpa la pregunta, y si es asi que circuito integrado estas utilizando? gracias
ResponderEliminar
ResponderEliminarEl proyecto es accionar los motores mediante un control remoto (con joysticks) usando para dirigir un carro a distancia, por medio del uso de módulos RF, igual realice algunas pruebas de otros conceptos.
Slds