II GOduino = Arduino + controlador de Motor L293D Velocidad Variable

versiones

GOduino II fue presentado en dangerousprototypes.com

07/04/2012 he añadido una diapositiva del presupuesto para aquellos lectores que preguntaban donde obtuve mi presupuesto < $20 para el II de GOduino.

INTRODUCCIÓN

El GOduino II es un controlador programable autónomo para robots basados en la rueda. Es un clon de Arduino Uno y un controlador de motor L293D para menos de $20. Controla la velocidad y dirección del motor. El predecesor de prototipo de esto es el GOduino, una versión básica de este controlador en un protoboard. Mantendré esta guía tanto aquí como en mi blog http://techbitar.blogspot.com

FONDO

He diseñado unos robots básicos utilizando el Arduino Uno y protectores de motor. Ambos son grandes para prototipos. Pero desarmar mi robots cada vez que necesitaba para construir otro robot. No es rentable para comprar más microcontroladores Arduino y motor escudos para cada nuevo proyecto de robot.

También en países como Jordania, donde el ingreso mensual promedio es alrededor de $300 y un código de tarifa tan alta que es hostil a la tecnología, se convierte en una necesidad para los estudiantes y los fabricantes a buscar localmente montado alternativas de bajo costos, se puede reparar circuitos electrónicos importados.

FUNCIONALIDAD

El II de GOduino trabaja para 2 motores solamente y deja un montón de pines del Arduino disponibles para los sensores. También es mi primera aventura de pcb desde cero. Si nos fijamos en la parte posterior de la GOduino II, ves a todo tipo de pistas a mi inexperiencia. Y sí, soy un chico de software así que esto es relativamente nuevo para mí. Usted notará que algunos de mis jefes tienen los dientes del buck. Tuve algunos accidentes mientras se suelda. Mi próxima versión estará más ordenado.

Esto no puede ser materia de vanguardia pero hace el trabajo para mí y para los miembros de mi protospace. Si ayuda a alguien, por favor envíeme un enlace. Como siempre, si usted descubre algún defecto o tiene sugerencias que pueden hacer un mejor diseño, por favor comparta sus pensamientos.

CRÉDITO

Este proyecto se basa en los trabajos de tanta buena gente. Consulte referencias sección abajo para algunos de los proyectos que la Fundación para este modesto proyecto de PCB.

LISTA DE PIEZAS

ARTÍCULO CANTIDAD
Atmega328p w/Opti bootloader 1
L293D puente h 1
Cristal de 16Mhz 1
PCB 1
gorras de 22pf 2
100uF cap 1
10uF cap 2
0.1uF cap 4
T7805 regulador de la C.C. 5V 1
DIP de 28 pines 1 los zócalos
Zócalo DIP 16 pines 1
Cabeceras 1
Cables de puente 10
LED 2
Resistencias de 220 ohmios 2
Resistencia 10K ohmios 1
Pulsador 1

Yo he calculado el costo total de la GOduino II alrededor de $20 + gastos de envío.

En cuanto a la Arduino IDE 1.0 se puede descargar gratis
http://Arduino.CC/en/Main/software

L293D ASIGNACIÓN DE PINES PARA ATMEGA328P (ARDUINO UNO)

Los números de bala debajo corresponde a los pines del L293D. Esta asignación de pin funciona con mi prueba sketch de Arduino. Pero se puede cambiar para adaptarse a sus propósitos.

1. activar/desactivar el Motor 1. También se utiliza para controlar la velocidad del Motor 1. Pin Arduino digital PWM 9. ATmega328 pin 15.
2. conectarse a Arduino control sentido de rotación de Motor 1. Pin digital de Arduino 3. ATmega328 pin 5.
3. Conecte al polo primer Motor 1.
4. Conecte a tierra.
5. Conecte a tierra.
6. Conecte al segundo Polo Motor 1.
7. conectarse a Arduino control sentido de rotación de Motor 1.  Pin digital de Arduino 2. Atmega328 pin 4.
8. Conecte al suministro de energía que alimentará los motores. Esto puede o no puede ser regulado.
9. habilitar/deshabilitar motor 2. También se utiliza para controlar la velocidad del Motor 2. Conecte al Arduino PWM pin 10. ATmega328 pin 16.
10. conectarse a Arduino control sentido de rotación para el Motor 2. Arduino pin 7. ATmega328 pin 13.
11. Conecte el Motor 2 - primer poste.
12. Conecte a tierra.
13. conectar a tierra.
14. Conecte al Motor 2 - segundo Polo.
15. conectarse a Arduino control sentido de rotación para el Motor 2. Arduino pin 8. ATmega328 pin 14.
16. Conecte al regulada 5V DC.

NOTAS DE PCB

¿Por qué usaron cabeceras masculinas para exponer los pernos de la ATmega328p y el L293d? Usted puede utilizar Arduino estilo encabezados en su lugar pero tenía un montón de encabezados de macho y un montón de cables de puente mujer. Pero para mi próximo build de GOduino II, utilizo Arduino encabezados de estilo. Me siento más seguro con menos pins IC expuestos.

L293D ACTUAL

El L293D en el II de GOduino puede manejar sostenida corriente de 600 mA por motor. Parece haber algún error este capacidad de ICs para manejar 1.2A pico por motor.  El datasheet del L293D dice que hace pero por una fracción de segundo (100 μs). Esto no es suficiente para soportar un motor de funcionamiento en pico/puesto actual que puede durar segundos o minutos.

Pero la buena noticia es que se puede doble la 600mA por soporte motor por piggybacking otro L293D. En su forma más simple, esto significa soldar uno L293D encima de otro mientras que empareja las clavijas.

L293D VOLTAJE

El L293D deben ser alimentados de dos maneras. Necesita DC de 5V para los circuitos de los lógica (pin 16) y energía de 4.5V a 36V para los motores (pin 8). Revise su hoja de datos del motor para encontrar el voltaje.
Me enteré de mediante el control de las señales PWM de la ATmega328p atado con alambre a los pines de habilitar del L293D logré cambiar el voltaje suministrado al motor. Así que aunque fuente de 7.2V mi motores vía el L293D, yo puedo reducirlo mediante la manipulación de los valores en la función analogWrite en mi sketch de Arduino.

MOTORES CEPILLADOS DE LA C.C.

El GOduino II trabaja con hasta 2 cepillados motores dentro de la gama de 4.5V a 36V con carga máxima de 600 mA para cada motor. Estos motores generan un montón de ruido eléctrico que puede causar a todo tipo de problemas de lectura del sensor pobre (si tienes sensores Unidos a su GOduino II) a constantes reajustes de IC. Para hacer frente a esto, siempre coloque un 0.1uF condensador de cerámica a través de los polos de cada motor.

ROTACIÓN DEL MOTOR

La dirección de la rotación del motor es una llamada subjetiva.  En mi código, uso las palabras hacia adelante y atrás para describir algunas de mis funciones. En realidad, la forma de alambre de sus motores y pernos determina cuando la rotación de un motor es hacia adelante o hacia atrás o hacia la izquierda hacia la derecha vs. Tenga en cuenta que los motores en los lados opuestos de un giro de la plataforma robot enfrente de uno a otro. Si sus motores no giran la forma en que desee, muchas veces que la solución puede estar en su código sin recurrir a cableado.

PROGRAMACIÓN GODUINO II

¿Cómo se programa el ATmega328p en la II GOduino? Una computadora con un puerto serial debe hacer muy bien. Pero sin un puerto serie, aquí están las alternativas.

1) si usted tiene un modelo de Arduino Uno DIP que sólo puede cargar su bosquejo de la Arduino IDE 1.0 lo que haces normalmente. Luego retire el ATmega328p tu Arduino Uno e insertarlo en el zócalo de GOduino II IC. Eso es todo. Ordené unos pre ATmega328p ICs (DIP) cargado con el bootloader de Arduino Uno para que los pueda utilizar de esta manera.

2) o puede utilizar la Arduino Uno para programar un ATmega328p. SparkFun tiene un buen tutorial sobre cómo hacer esto. Ver artículo volver a instalar el bootloader de Arduino y utilizando un Arduino para programar un AVR en la sección de referencias.

3) o puede utilizar un programador en línea como los vendidos por Sparkfun, LadyAda o chip para cargar dibujos de Arduino directamente en el IDE de Arduino en el ATmega328p sin la eliminación de la toma de GOduino II PCB. Ver enlace en la sección de referencias al artículo de David A. Mellis sobre cómo construir y programar un Arduino Uno en un protoboard. Usted puede ahorrar un dólar o dos por comprar la p 328 en blanco entonces quema el bootloader a ti mismo si tienes el equipo y saber cómo.

EL BOSQUEJO DE LA PRUEBA DE ARDUINO

El bosquejo de la prueba de Arduino 1.0 abajo parece un programa pero sobre todo es repetición de bloques de código para hacer girar los motores y asegurar los pernos y postes motor estén conectados correctamente. He escrito 4 funciones que pueden manejar la mayoría de las tareas de locomoción de robots pero no dude en cambiarlo que el L293D permiten pernos (1,9) están conectadas a los pines PWM de Arduino/ATmega328p y el código siguiente es actualizaciones para reflejar cualquier recableado de pernos.

/*
REMEZCLADA POR: TECHBITAR / HAZIM BITAR

FECHA: 03 DE ABRIL DE 2012

Proyecto: GOduino II prueba

FUNCIÓN: Este sketch es un programa de prueba 1.0 IDE de Arduino para el tablero del PWB de GOduino II. El GOduino II es un integrado "runtime" de Arduino Uno y L293D puente h alias conductor del motor que permite el movimiento de avance y retroceso de motores y variadores de velocidad.  Este código prueba asume dos motores (cada < 600mA corriente pico) se unen a la GOduino II

Este bosquejo muestra llama a las siguientes tres funciones con variable motornum = 1 o 2 para significar Motor 1 y Motor 2.

-motorforward (int motornum)
-motorback (int motornum)
-motorstop (int motornum)
-motorspeed (motor1 int, int motor2)

Licencia: Este es shareware pero por favor da crédito.

Sitio web: http://techbitar.blogspot.com

Correo electrónico: techbitar arroba gmail punto com

*/

mapa motor polos a los pines de Arduino
#define motor1pole1 2
#define motor1pole2 3
#define motor2pole1 7
#define motor2pole2 8

mapa motor L293d permiten pernos a los pines de Arduino
#define enablePin1 9
#define enablePin2 10

#define M1_MAX_SPEED 100
#define M2_MAX_SPEED 100

#define motordelay 30
#define debugmotorsec 3000

void setup() {}
Serial.Begin(9600);

conjunto asigna L293D motor1 y motor 2 activar pines de Arduino a la salida (activar o desactivar motor1 y motor2 via L293D)
pinMode (enablePin1, salida);
pinMode (enablePin2, salida);

establecer polos motor asignadas a los pines de Arduino (vía L293D)
pinMode (motor1pole1, salida);
pinMode (motor1pole2, salida);
pinMode (motor2pole1, salida);
pinMode (motor2pole2, salida);
motorspeed (0, 0);
}

int mspeed = 100;  elegir una velocidad inicial hasta 255

void loop() {}

ajustar la velocidad del motor 1 y 2 a la misma velocidad
motorspeed (mspeed, mspeed);

Girar motor 1 sólo en una dirección
Serial.Print ("hacia adelante en velocidad del MOTOR 1:");
Serial.println(mspeed);
motorforward(1);
Delay(debugmotorsec);
Motorstop(1);

girar el motor 2 sólo en una dirección
Serial.Print ("MOTOR 2 en velocidad delantera:");
Serial.println(mspeed);
motorforward(2);
Delay(debugmotorsec);
Motorstop(2);

motor 1 solamente en la dirección opuesta de la vuelta
Serial.Print ("trasero en velocidad del MOTOR 1:");
Serial.println(mspeed);
motorback(1);
Delay(3000);
Motorstop(1);

girar el motor 2 en sentido contrario
Serial.Print ("MOTOR 2 atrás en velocidad:");
Serial.println(mspeed);
motorback(2);
Delay(debugmotorsec);
Motorstop(2);

parar ambos motores 1 y 2
Serial.println ("ambos motores STOP durante 2 segundos");
Motorstop(1);
Motorstop(2);
Delay(2000);

girar ambos motores en una dirección
Serial.Print ("ambos motores en velocidad de avance:");
Serial.println(mspeed);
motorforward(1);
motorforward(2);
Delay(debugmotorsec);

parar ambos motores
Serial.println ("ambos motores STOP durante 2 segundos");
Motorstop(1);
Motorstop(2);

Delay(2000);
ambos motores en dirección opuesta de la vuelta
Serial.Print ("dos motores en velocidad de nuevo:");
Serial.println(mspeed);
motorback(1);
motorback(2);
Delay(debugmotorsec);

parar ambos motores
Serial.println ("ambos motores STOP durante 2 segundos");
Motorstop(1);
Motorstop(2);
Delay(2000);

giro de ambos motores pero en direcciones opuestas
Serial.Print ("MOTOR1 avance | MOTOR2 DETRÁS EN VELOCIDAD: ");
Serial.println(mspeed);
motorforward(1);
motorback(2);
Delay(debugmotorsec);

parar ambos motores
Serial.println ("ambos motores STOP durante 2 segundos");
Motorstop(1);
Motorstop(2);
Delay(2000);

ambos motores en sentido contrario de la vuelta
Serial.Print ("MOTOR1 nuevo | MOTOR2 EN VELOCIDAD DELANTERA: ");
Serial.println(mspeed);
motorback(1);
motorforward(2);
Delay(debugmotorsec);

parar ambos motores
Serial.println ("ambos motores STOP durante 2 segundos");
Motorstop(1);
Motorstop(2);
Delay(2000);

mspeed += 50;  Añadir 50 para velocidad de giro del motor. Velocidad máxima 255

ajustar la velocidad del motor 1 y 2 a la misma velocidad nueva
motorspeed(mspeed,mspeed);

}

FUNCIONES MOTORAS

void motorstop (int motornum) {}
Delay(motordelay);
Si (motornum == 1) {}
digitalWrite (motor1pole1, bajo);
digitalWrite (motor1pole2, bajo);
}
else if (motornum == 2) {}

digitalWrite (motor2pole1, bajo);
digitalWrite (motor2pole2, bajo);
}
Delay(motordelay);
}

void motorforward (int motornum) {}
Si (motornum == 1) {}
digitalWrite (motor1pole1, HIGH);
digitalWrite (motor1pole2, bajo);
}
else if (motornum == 2) {}

digitalWrite (motor2pole1, bajo);
digitalWrite (motor2pole2, HIGH);
}
Delay(motordelay);
}

void motorback (int motornum) {}
Si (motornum == 1) {}
digitalWrite (motor1pole1, bajo);
digitalWrite (motor1pole2, HIGH);
}
else if (motornum == 2) {}
digitalWrite (motor2pole1, HIGH);
digitalWrite (motor2pole2, bajo);
}
Delay(motordelay);
}

{} void motorspeed (int motor1speed, int motor2speed)
Si (motor1speed > M1_MAX_SPEED) motor1speed = M1_MAX_SPEED; límite de velocidad máxima
Si (motor2speed > M2_MAX_SPEED) motor2speed = M2_MAX_SPEED; límite de velocidad máxima
Si motor1speed (motor1speed < 0) = 0; mantener el motor por encima de 0
Si motor2speed (motor2speed < 0) = 0; mantener la velocidad del motor por encima de 0
analogWrite (enablePin1, motor1speed);
analogWrite (enablePin2, motor2speed);
}

// ====================================

NOTAS FINALES

Voy a seguir evolucionando el II GOduino buscando mejores alternativas que son altas en la puntuación de reparabilidad y hackability. Un $30 Arduino Uno podría terminar cuesta $60 después de las tarifas y envío en Jordania. Y si algo sale mal con él, podría así tíralo desde ninguna instalación local existe para reemplazar y reparar componentes de smd. Puesto que los componentes electrónicos básicos están disponibles localmente, debe ser fácil y barato de construir y reparar la GOduino II. DIP vive...

PRESUPUESTO

Algunos lectores preguntaban dónde comprar las partes a mantenerse dentro del presupuesto. Solicitar mis piezas en Futurlec.com GOduino todo se suma a menos de $12 que si usted no tiene un microcontrolador Arduino UNO DIP y no desea comprar uno, usted necesitará un programadores FTDI USB-serial. Usted puede comprar para cerca de $15

Futurlec no es mi patrocinador y no recibo Comisión o descuentos por mencionar a los.

REFERENCIAS

GOduino: Clon de la Arduino Uno + controlador de Motor

Construcción de un Arduino en un protoboard por David A. Mellis
http://Arduino.CC/en/Main/Standalone

Sus motores L293D y Arduino por Guilherme Martins

Controlar un motor DC con chip Arduino y L293D
http://luckylarry.co.uk/Arduino-Projects/control-a-DC-motor-with-Arduino-and-L293D-chip

Volver a instalar el bootloader de Arduino
http://www.Sparkfun.com/tutorials/247

Utilizando un Arduino para programar un AVR
http://www.Sparkfun.com/tutorials/200

Artículos Relacionados

Cómo utilizar el controlador de Motor L293D - Arduino Tutorial

Cómo utilizar el controlador de Motor L293D - Arduino Tutorial

El L293D es un IC de controlador de Motor de 16 pines que puede controlar un conjunto de dos motores al mismo tiempo en cualquier dirección. El L293D se diseña para proporcionar bidireccional corrientes de impulsión de hasta 600 mA (por canal) en ten
Diagrama de pines del controlador de Motor L293D/NE

Diagrama de pines del controlador de Motor L293D/NE

En este Instructable le mostrará el diagrama de pines del L293D motor Driver.Antes de empezar usted debe entender que controlador de motor L293D tiene 16 pines con funciones en antihorario como se muestra en la imagen de arriba.Paso 1: Pin función So
Programables de coches Robot usando Mediatek LinkIt un tablero y el IC del controlador de Motor L293D

Programables de coches Robot usando Mediatek LinkIt un tablero y el IC del controlador de Motor L293D

Con la ayuda de este Instructable, usted será capaz de hacer un coche Robot programable con Mediatek LinkIt un tablero y el IC del controlador de Motor L293D.Aquí, LinkIt una tabla se utiliza como controlador para conducir los motores en las direccio
Arduino + controlador de motor integrado L298

Arduino + controlador de motor integrado L298

Un regulador del motor es un dispositivo que sirve para gobernar de alguna forma predeterminada el rendimiento de un motor eléctrico. Un controlador de motor puede incluir un medio manual o automático a partir de parada del motor, selección de rotaci
Módulo de controlador de motores L293D / tutorial

Módulo de controlador de motores L293D / tutorial

L293D es un chip que nos permite controlar dos motores junto con una única placa de Arduino u otros microcontroladores. Sin embargo, que tenía un proyecto que requiere controlar cuatro motores juntos. Hace poco llevé un L293D Arduino Shields, cubrió
Como controlador de Motor L293D Freeform A

Como controlador de Motor L293D Freeform A

fue recientemente haciendo un proyecto con motores paso a paso y es necesario un controlador de motor que tuvo un pequeño factor de forma y 4 salidas. Después de acabado y refinamiento mi forma libre de este controlador, decidí ponerlo aquí, ya que p
Construcción de tablero de doble controlador de Motor L293D para Arduino

Construcción de tablero de doble controlador de Motor L293D para Arduino

Hola a entusiastas de Instructables...Hoy en día comprar los tableros para los proyectos es muy caro... Pero se puede construir a muy bajo costo.Requerí tablero de conductor del motor de puente H dual L293D para mi siguiente instructables.Por lo tant
Diagrama de pines de controlador de motor L293D

Diagrama de pines de controlador de motor L293D

Hola amigos,Este es mi primer instructable.En este instructable, he mostrado el uso de sus pines con detalle y cómo utilizar L293D para el control de motores.Chip L293D es un muy populer IC para control de motores mediante MCU.Puede controlar dos mot
Duplicar fácilmente la potencia de salida de un tablero de controlador de Motor L293D

Duplicar fácilmente la potencia de salida de un tablero de controlador de Motor L293D

Una manera fácil al doble la capacidad actual de los KEYES L293D Motor Control escudo Motor Drive tarjeta de expansión para Arduino (este método debe funcionar para cualquier chips L293D)Este es un método rápido y fácil para duplicar la corriente dis
Cómo utilizar un controlador de motor L293D

Cómo utilizar un controlador de motor L293D

aquí está el video que hice, el video lo dice todo :D. Espero que les guste!
Velocidad del motor DC de Arduino y dirección L293D

Velocidad del motor DC de Arduino y dirección L293D

Este instructivo le guiará a través de las piezas y los pasos para controlar un motor Dc velocidad y dirección con la ayuda de un controlador de motor L293D puente H dual para arduino.El conductor del motor tiene dos canales que significa que pueden
GOduino III - controlador del robot basada en Arduino protoboard-ambiente

GOduino III - controlador del robot basada en Arduino protoboard-ambiente

versiones16 de noviembre de 2012 aparece en DangerousPrototypes.com http://goo.gl/N4DIC03 de octubre de 2012: he diseñado un adaptador PCB a posición IR y 90 grados de sensores ultrasónicos para breadboard para apoyar proyectos de robot de GOduino II
USB: - controlador de Motor DC con PIC18F4550 (teclado)

USB: - controlador de Motor DC con PIC18F4550 (teclado)

USB: - controlador de Motor DC con PIC18f4550 (teclado)Hola amigos,RequisitosInterfaz USB DEMO BoardChip de controlador de motor L293DUn pequeño proyecto en el control de motor DC con tablero del interfaz del USB pic18f4550 con motor L293D Driver.Una
Velocidad coche RC controlado con (controlador de controlador de Motor de CH 4 + Arduino + Bluetooth)

Velocidad coche RC controlado con (controlador de controlador de Motor de CH 4 + Arduino + Bluetooth)

Hola, ya que este es mi primer instructivo aquí, espero que te guste y no dude en preguntar sobre cualquier cosa no clara en él.En primer lugar, empecé este proyecto después de que quería controlar 4 motores que requiere de relativamente alta potenci