Mostrando entradas con la etiqueta Arduino. Mostrar todas las entradas
Mostrando entradas con la etiqueta Arduino. Mostrar todas las entradas

23.4.12

Forklift-Bot Robot sigue lineas y monta cargas con Arduino

Bueno, siguiendo con los trabajos de robotica, el año pasado presente este robot a la competencia de robotica de la UTFSM que se realiza año a año y plantea un desafio a solucionar.
El robot principalmente consiste como se ve en las fotos de un montagarga de 2 ejes, controlado por correas adaptadas de un mecanismo de scanner. Se modifico los motores y se cambiaron por servomotores doblemente trucados. Se truco su velocidad, y se truco para que girara en 360 grados.

Las ruedas estan comandadas por 2 cajas de engranajes en el eje delantero y trasero y es guiado por 3 pares de ruedas de goma.

El sensor de lineas instalado en la parte inferior del robot esta compuesto por 6 sensores CNY70 y conectado a compuertas logicas que simplifican las entradas utilizadas del arduino que comanda.

El monta carga, esta controlado por finales de carrera de toque 2 en cada eje que indican al microcontrolado cuando detener el motor que avanza o retrocede la carga. Este, soporta aproximadamente una carga de 400gr en una carga de 30 x 30 app

En la parte delantera cuenta con 2 sensores CNY70 mas, que controlan que el robot no se salga de su area de trabajo y pueda caer por el borde.

Esta controlado por 2 arduinos, uno que controla los sensores de linea y las cajas de motores y el otro controla el sistema del monta carga, mas, los finales de carrera

Los motores estan controlados por Puentes H para la inversion de giro y control de velocidad mediante modulacion PWM















El control de PWM para la velocidad de las ruedas. En el osciloscopio se observa el ancho de pulso regulable.














El sistema de correa con engranages que controla el montacargas



El sistema de traccion de las ruedas, los sensores de lineas CNY70











El Robot ya terminado y en pruebas para funcionamiento. El robot funciona con 2 baterias de 6 volts para ser conectadas en serie y generar los 12 volts con que se alimentan las cajas de engranajes de las ruedas







Robot Terminado





















Descripción Hardware

2 Arduino UNO
2 mecanismos de tracción de scanner
2 servomotores modificados 360°
4 cajas de engranajes con motores CC
6 ruedas todo terreno
1 Sensor ultrasónico
10 sensores reflectivos B/N
2 batería Plomo-acido 6v 4Ah
4 finales de carrera

Problemas detectados en la construccion

Problemas de giro al ser 6 ruedas
Problemas de peso por las baterias eran de plomo
Problemas con las ruedas que no eran rellenas por lo que se deformaban por el peso

a pesar de ser un robot con muchas funciones, solo se encontraron problemas de los materiales y no tantos de diseño.

16.1.12

Modulo Serial con ATMEGA (arduino)

Como ya es conocido, existe un modulo que convierte las entradas paralelas del LCD en una conexión serial, la cual mediante un microcontrolador, recibe por el puerto serial los datos a mostrar en la pantalla y los convierte en paralelo. Este Modulo, que es desarrollado por SparkFun, cuesta alrededor de $14.000, por lo que sumado al costo del display LCD es muy caro.
Es por esto, que desarrollaremos un modulo similar con un Integrado ATMEGA que tenia con el bootloader de arduino, y diseñe un programa que mediante los mismos comandos del modulo de SparkFun pueda realizar la misma función.
Para esto se ocupa un Arduino, un cristal de 16KMHz, dos condensadores de 22pF, un ATMEGA168, y un display LCD mas una placa virgen.

 El diseño de la placa por debajo. se aprecia el ATMEGA y los pines de conexión del LCD

Con un Arduino se Programa el chip y luego se coloca en la placa diseñada, para esto hay que retirar el ATMEGA del Arduino que utilizaremos como programador.

 Con mucho cuidado de no doblar los pines.

 Se inserta en la placa, y se sueldan los componentes, el cristal los condensadores y el potenciometro de contraste.

El modulo serial montado en la pantalla LCD

 Se Programa otro arduino y se envía mediante serial al otro y este lo publica en la pantalla

Si interesa el código colocar un comentario y será publicado.

10.1.12

Registro de clave con Arduino Teclado numerico y LCD

Como el titulo lo dice, se desarrolal un programa que mediante un teclado numerico conectado a Arduino y un LCD Serial se ppida al usuario el ingreso de una clave de 6 caracteres. Esta, puede se cambiada mediante el codigo ****** el cual solicita ingresar la clave actual y luego la nueva clave de 6 caracteres igualmente.
Además, si el usuario ingresa 3 veces mal la contraseña, el terminal es bloqueado hasta que se presione el boton de reset de arduino.
El video explica mejor en detalle el sistema.



Para esto se utiliza
  • Un LCD 2x16 con modulo serial.
  • Un Arduino UNO
  •  Un Teclado numerico matricial de 3x4
 

Si juntamos todos los accesorios mas una tapa ciega metalica y le hacemos los correspondientes calados, se puede obtener un proyecto muy bien presentado y terminado para una instalación.


10.11.10

Quemar Bootloader de Atmega168 de Arduino

Hoy revisaremos como cargar nuevamente el Bootloader a nuestro Atmega168 de Arduino. Este problema puede darse debido a que el bootloader que viene de fabrica se haya dañado (no cargan los programas con el IDE) o por que hemos adquirido un nuevo chip para nuestro Arduino

Primero debemos crear el conexionado para llegar desde el USB hasta el conector ICSP. Debemos primero soldar un conector de 4 pines al espacio al lado de X3 escrito FT232RL en el PCB Diecimila. (Estas almohadillas están conectados a las clavijas de control de FT232RL.)
Removemos la soldadura para insertar el conector y lo soldamos por debajo

 
Descargamos los siguientes archivos a nuestro PC (Windows):

 Instalación 

avrdude-serjtag
 
Extrae serjtag-03.zip.
Copia "avrdude-serjtag" dentro de la carpeta "C:\Archivos de Programa" .

 Eliminar la carpeta "src" en la carpeta "avrdude-serjtag".

avrdude.conf avrdude.conf

Sobre escribe el archivo "avrdude.conf" en la carpeta "C: \ Archivos de programa \ avrdude-serjtag \ binario”. Con el que se obtiene al presionar el link anterior
Esta modificación "avrdude.conf" tienen ya creadas las secuencias de comandos de creación de "FTDI BitBang AVR-Writer" para Diecimila .

#arduino diecimila
programmer
  id="diecimila";
  desc = "FT232R Synchronous BitBang";
  type = ft245r;
  miso = 3;  # CTS X3(1)
  sck = 5;  # DSR X3(2)
  mosi = 6;  # DCD X3(3)
  reset = 7;  # RI X3(4)
;


avrdude-GUI (yuki-lab.jp Version)

Extrae avrdude-GUI-1.0.5.zip.
Copia la carpeta "avrdude-GUI-1.0.5" en la carpeta "C: \ Archivos de programa" .
Recuerda que avrdude-GUI requiere Microsoft .NET Framework 2.0.

Configuración
Abre la carpeta "C: \ Archivos de programa \ avrdude-GUI-1.0.5". y haz doble clic en el "avrdude-GUI.exe" para ejecutarlo.


La configuracion del  "GUI avrdude-" es la siguiente del I al IV.



(i) avrdude.exe
Haz clic en el icono . . .
Abrir la carpeta "C: \ Archivos de programa \ avrdude-serjtag \ binario".
Selecciona "avrdude.exe", y haz clic en el boton Abrir.

(ii)Programmer area.
Abrir y seleccionar "FT232R Synchronous BitBang (diecimila)".

(iii)Device
Haz clic en el icono. . .
Selecciona "ATMega168 (M168)".

(iv)Command line Option area
Haz clic en el cuadro de texto y escribe a continuación.

-P ft0 -B 4800

"-P ft0" es la configuración de puertos Bitbang y "B-4800" es el modo de configuración lenta del reloj.

Atención!
Debes dejar la zona de Puerto en blanco.


Cableado
Conecte los terminales del X3 con los pines ICSP por medio de cables como muestra la imagen siguiente



Conecta Diecimila al PC mediante un cable USB.
Ejecuta el avrdude-GUI.

Leer el bits del fusible.

Haz clic en el botón [Leer] de la zona de fusibles.  



Si el fusible bits se leen, se está trabajando.
Cuando se muestra un error, no funciona confirma el cableado y la puesta del avrdude-GUI.

Ejecutar por el modo de reloj rápido.
Eliminar "B-4800" de la zona de la línea de comandos opción. 
  Leer el fusible bits otra vez.
Si los bits del fusible se leen, se está trabajando en modo de reloj rápido.

Quemar el Bootloader.

Establecer el nuevo chip ATMega168. (en caso de querer quemar un nuevo chip, en caso de querer volver a cargar el bootloader saltar este paso)

  • Desconecta el cable USB de la Diecimila.
  • Retira el ATMega168 chip de la Deicimila-PCB.
  • Establecer el nuevo chip en el Decimila-PCB.
  •  Conecte el cable USB a la Diecimila nuevo.

Escribir el fusible-Bits.
Ajuste el modo de reloj lento.
Escribe "B-4800" al texto de Command line Option area
.
Atención! Un chip virgen no se puede ejecutar por el modo de reloj rápido.

Borrar
(1) Haz clic en el botón [Chip Erase].
(2) Haz clic en el botón [Read] de la zona de bits de bloqueo. El valor de bit de bloqueo que se debe mostrar es 3F.


Escribir el fusible-Bits.
(1) Coloca el bits del fusible de la siguiente manera. (Estos valores son sólo para ATMega168.)
hfuse = DD
lfuse = FF
efuse = 00
(2) Haz clic en el boton [Write] de la zona de fusibles.

Cambiar a modo de reloj rápido.
Eliminar "B-4800", la línea de comandos área opción y leer el fusible-Bits.
Cuando no lee los bits de fusibles, probablemente, había un error al establecer el fusible-Bits. Volver al modo de reloj lento. Y escribir el fusible-Bits como corresponde.
Preparación del Bootloader con el archivo hex.
Haga clic en el icono ... del área de Flash.
Abre la carpeta "C:\Program Files\arduino-0013\hardware\bootloaders\atmega168"
Seleccione "ATmegaBOOT_168_diecimila.hex", y haga clic en el boton Abrir

Quemado

Haz clic en el boton [Erase Write Verify] de la zona de Flash.
Espera hasta que el trabajo estará terminado.

Escribir el bit de bloqueo.
(1) Ajusta el bloqueo de bits de la siguiente manera.

Lock = 0F Bloqueo = 0F

(2) Writing
Haz clic en el [Write] botón de bloqueo de la zona de bits.

Con esto tenemos quemado el bootloader en nuestro Atmega168
Download avrdude.conf ( Update: it's included chip-parameter of ATmega328P) Descargar avrdude.conf (Actualización: que es incluido chip parámetro de ATmega328P)
Use these fuse-bits,lock-bit and .hex file as follows. Utilice estos fusibles bits, bits y bloqueo. Hex de la siguiente manera. (according to arduino-0013\hardware\board.txt) (De acuerdo con arduino-0013 \ hardware \ board.txt)
hfuse = DA hfuse = DA
lfuse = FF lfuse = FF
efuse = 05 eFUSE = 05
unlock = 3F desbloquear = 3F
lock = 0F bloqueo = 0F
bootloader .hex file gestor de arranque. hex
arduino-0013(or 0014)\hardware\bootloaders\atmega168\ATmegaBOOT_168_atmega328.hex arduino-0013 (o 0014) \ hardware \ gestores de arranque \ ATMega168 \ ATmegaBOOT_168_atmega328.hex

Confirmación.
Desconecta el cable USB del arduino Diecimila.
Retira los cables de ICSP y X3.
Conecta el cable USB para Diecimila nuevamente.
Pulse el botón de reinicio de Diecimila.
Ejecuta el Arudino-IDE
Carga el ejemplo "Blink". Y se llevará a cabo.

28.4.10

AMICI el programador gráfico para Arduino

Alguna vez programaste un Lego Mindstorm con el programador grafico?. Algo tan simple como arrastrar bloques y unirlos segun la secuencia que quieres que cumpla tu programa una y otra vez.
Bueno ahora tienes Amici algo similar al programa antes mencionado pero para Arduino. Todo en una simple aplicacion disponible para Windows y MAC en 4 lenguajes, incluido el Español
Lo puedes descargar haciendo click aqui : Windows - Mac

Fuente: http://dimeb.informatik.uni-bremen.de/eduwear/?cat=4