Robot con ruedas en Arduino. Robots Arduino listos para usar

Tienda de robots y robótica robots domésticos cuadricópteros hoverboards constructores robots juguetes novedades

Me emociono cuando los futuros ingenieros crean sus propios dispositivos y me enojo cuando escucho a alguien hablar sobre el uso de Arduino en ellos.

Este no es mi primer artículo sobre este tema: tengo ganas de escribir uno inmediatamente después de leer la frase sobre las posibilidades ilimitadas de la plataforma en el tema DIY de Habré. Tengo ganas de escribir sobre el precio real de las piezas después de leer un artículo sobre la compra de un juego de construcción por 200 dólares que no contiene casi nada (lo siento, olvidé dónde lo vi).

El punto aquí no es que creo que Arduino sea una mala idea. Al contrario, gracias a la plataforma, muchas personas conocieron el mundo de los microcontroladores y aprendieron que incluso una persona sin educación especial, con conocimientos mínimos de programación y ningún conocimiento de electrónica puede montar un pequeño dispositivo genial.

Gracias a Arduino, vieron la luz muchos proyectos que acumulaban polvo en los bancos de memoria cerebral de sus autores.

Sinceramente, admito que a veces yo mismo utilicé código escrito para Arduino (por ejemplo, la empresa InvenSense produce el módulo MPU6050, que sólo logró funcionar correctamente).
Desprecio a aquellas personas que, habiendo descubierto el mundo de los microcontroladores, no se molestaron en mirar a su alrededor y a aquellos que descaradamente se benefician de esas personas.

Un estudiante del Departamento de Tecnología de la Información, fanático de Arduino, vino a nuestro laboratorio (y trabajó con nosotros). El hombre gastó mucho dinero en la compra de los *duins y módulos para ellos. No sin pesar vi cómo el futuro (todavía espero) creador de sistemas robóticos no podía lanzar PWM en la frecuencia requerida, a pesar de haber acumulado muchas horas de "vuelo" trabajando con la plataforma.

Entonces, este estudiante me mostró un “medidor de nivel de batería”, o algo así. Lo encontré específicamente ahora en eBay, donde se llama " Módulo sensor de voltaje de alta sensibilidad - Compatible con Arduino" y se vende por $8,58. Aquí está en la imagen:

Por cierto, el cable central, que es "+", simplemente cuelga en el aire, todo está hecho para la conexión más conveniente de un divisor de voltaje simple, cuyo precio en rojo es de 2 centavos por resistencias y 20 centavos por Conector: esto es si lo compra al por menor.

Este no es el único caso de engaño de nuestro hermano; a continuación daré varios más. Ahora, para quienes gustan de estructurar, escribiré las principales desventajas de Arduino.


En Hobbyking, donde los fanáticos de varios proyectos de modelado son engañados de la misma manera que en otras tiendas entusiastas de Arduino, se vendió un capacitor común bajo la apariencia de algún tipo de filtro. No pude encontrarlo ahora. Con conector de tres pines, por supuesto. Por sólo 3 dólares.

Mini motor compatible con Arduino Contador de velocidad Sensor AVR PIC– reemplazado por un LED y un fototransistor conectado a un controlador central y veinte líneas de código. No vale 7,98.

2*4 botones pulsadores de teclado de matriz AVR ARM Arduino compatible- Estos son solo botones que se pueden comprar por 10 piezas por dólar.

Hay un dispositivo en el mundo que odio más que el Arduino: el mbed. Sus desarrolladores tomaron el controlador LPC1768 (también disponible en el LPC11U24), lo soldaron a una placa con dos estabilizadores (no hablaré de la calidad del diseño de la placa), sacaron la mitad de las patas (la otra mitad no está conectada en cualquier lugar, lo cual es muy molesto), escribí en línea un IDE inexacto (sin embargo, un poco mejor que Arduino, aunque requiere una conexión a Internet) y lo vendí por $64. Lo siento, pero esto ya es suficiente.

¿Qué hacer si de repente decides dejar de marcar el tiempo y empezar a estudiar microcontroladores?

  1. Hubo una serie de artículos sobre Habré "STM32F1xx - curar juntos la adicción a Arduino"; los artículos son buenos y bastante comprensibles, es una pena que el autor haya dejado de escribir nuevos artículos.
  2. Todos los recién llegados son enviados a easyelectronics.ru, donde los compañeros de DIHALT publicaron un curso de formación sobre microcontroladores AVR.
  3. « Diseño de aplicaciones en microcontroladores de la familia 68HC12/HCS12 utilizando el lenguaje C"S. F. Barrett, D. J. Park: un excelente libro que le ayuda a comprender los conceptos básicos de programación en C para microcontroladores. El único problema es que es poco probable que consiga microcontroladores Freescale, por lo que tendrá que transferir los ejemplos usted mismo a un AVR, PIC, MSP430 o cualquier otro controlador.
  4. Antes de comprar algo para sus dispositivos, lea sobre ello al menos en Wikipedia; tal vez pueda comprar la misma pieza más barata si la llama de otra manera.

¿Sabes realmente qué es extraño? Entre los usuarios de Arduino, hay incluso quienes desprecian a Apple por su “apuntar al usuario de mente estrecha y ocupado para esas nimiedades”.

No quiero ofender ni convencer a nadie. Pero me alegraría que al menos una persona que haya leído el artículo hasta este momento cambie Arduino por un microcontrolador simple; tal vez en el futuro se convierta en un buen desarrollador de sistemas integrados.

Descripción bibliográfica: Strakovsky D. A., Simakov E. E. Creación de un robot corredor en la plataforma Arduino // Joven científico. 2016. N° 3. Pág. 120-124..03.2019).





Palabras clave:

Objeto del trabajo: estudiar los principios de la construcción de robots Basado en la placa ArduinoUno. Cree un modelo funcional de un robot corredor y desarrolle un algoritmo para su comportamiento.

Objetivos del puesto:

  1. Estudie las características de la construcción de robots basados ​​en placas Arduino y sus módulos.
  2. Estudiar las características del entorno de programación de robots basado en la plataforma Arduino.
  3. Crea un modelo de un robot corredor. Desarrollar un algoritmo de movimiento de robots basado en el análisis de la información de entrada.
  4. Analizar el funcionamiento del robot.

Introducción. Fundamentos de la robótica de plataformasarduino

Construcción Los robots que utilizan cualquier tecnología implica estudiar los principios de funcionamiento de chips especiales llamados microcontroladores. Ellos Diseñados para controlar dispositivos electrónicos y son una computadora de un solo chip capaz de realizar tareas simples. El controlador, al ser una “copia reducida” de la computadora, contiene todos los módulos principales inherentes a ella: procesador central, RAM, memoria flash, dispositivos externos.

Arroz. 1. Estructura del microcontrolador

Se utilizan varias plataformas para construir robots. Como parte de la investigación en curso, se eligió la plataforma Arduino para desarrollar un robot de carreras. El primer prototipo de Arduino fue desarrollado en 2005 por el programador Massimo Banzi. Hoy en día, la plataforma Arduino no está representada por una sola placa, sino por toda una familia de ellas. Este enfoque permite ensamblar todo tipo de dispositivos electrónicos que funcionan tanto de forma autónoma como en conjunto con una computadora. Las placas Arduino son kits que constan de una unidad electrónica y un software ya preparados. Una unidad electrónica es una placa de circuito impreso con un microcontrolador instalado. De hecho, la unidad electrónica Arduino es análoga a la placa base de una computadora. Dispone de conectores para la conexión de dispositivos externos, así como de un conector para la comunicación con un ordenador a través del cual se realiza la programación.

La plataforma más popular y versátil de la familia es la placa ArduinoUno. Se basa en un procesador con una frecuencia de reloj de 16 MHz, tiene 32 kB de memoria, dos de los cuales están reservados para un gestor de arranque que le permite flashear Arduino desde una computadora normal a través de USB. También hay 2 kB de memoria SRAM, que se utiliza para almacenar datos temporales (esta es la RAM de la plataforma) y 1 kB de memoria EEPROM para el almacenamiento de datos a largo plazo (análogo a un disco duro).

Hay 14 pines en la plataforma que se pueden usar para entrada y salida digital. El papel que desempeña cada contacto depende del programa. Algunos contactos tienen funciones adicionales. Por ejemplo, las series 0 y 1 se utilizan para recibir y transmitir datos a través de USB; LED 13: el LED integrado en la placa está conectado a este pin. También hay 6 pines de entrada analógica y un pin de entrada de reinicio para restablecer.

Arroz. 2. Placa ArduinoUno

Una característica distintiva de Arduino es la presencia de placas de expansión, los llamados "escudos". Se trata de placas adicionales que se colocan como “capas de un sándwich” encima del Arduino para darle nuevas capacidades. Los escudos se conectan al Arduino utilizando los cabezales de pines que se proporcionan en ellos. Echemos un vistazo más de cerca a los escudos que se utilizaron durante el estudio:

‒ MotorShield: proporciona control de motores de CC. Los pines del microcontrolador son de baja corriente, por lo que la corriente del motor, si se conecta directamente, los dañará. El llamado puente H resuelve este problema. Le permite controlar la velocidad y la dirección de rotación del motor.

‒ TroykaShield: ayuda a conectar una gran cantidad de periféricos, como sensores, mediante cables estándar de 3 hilos. Para decidir la dirección del movimiento posterior del robot en desarrollo se utilizaron sensores lineales digitales conectados a este "escudo". Estos sensores le permiten determinar el color de la superficie que lo rodea. La salida es una señal digital simple: 0 o 1 lógico según el color que vea delante. Uno es negro o vacío, el cero no es negro.

Arroz. 3. Escudo de motor y escudo Troyka

El desarrollo de aplicaciones basadas en placas Arduino se realiza en un entorno de programación especial, Arduino IDE. El entorno está diseñado para escribir y cargar sus propios programas en la memoria del microcontrolador. El entorno de desarrollo Arduino consta de un editor de código, un área de mensajes, una ventana de salida de texto, una barra de herramientas y una barra de menú.

La estructura básica de un programa Arduino consta de dos partes requeridas: las funciones setup() y loop(). Antes de la función setup() hay una declaración de variables y la inclusión de bibliotecas auxiliares. La función setup() se ejecuta una vez después de cada encendido o reinicio de la placa. Se utiliza para inicializar variables, configurar el modo de funcionamiento de puertos, etc. La función loop() ejecuta secuencialmente los comandos descritos en un bucle sin fin. Para interactuar con varios dispositivos, se utilizan procedimientos y funciones especializados para proporcionar entradas y salidas.

Montar un robot corredor en una plataformaarduino

Consideremos la parte práctica del proyecto: crear un robot de carreras. Para ello utilizamos la placa ArduinoUno, los “escudos” descritos anteriormente, sensores de línea, micromotores con reductores, ruedas, bolas de equilibrio. . El proceso de construcción de un modelo de robot se puede dividir en varias etapas.

Escenario I . Montaje de plataforma. Primero, debe ensamblar la base del robot: una plataforma móvil. Las ruedas están unidas a los motores y luego a la plataforma de montaje. Las bolas de equilibrio se utilizan para mantener el equilibrio de la plataforma. Uno se instala desde abajo en la parte trasera de la plataforma. Esta bola desempeña el papel de tercera rueda y de soporte al mismo tiempo. La segunda bola, si es necesario, se puede utilizar como lastre. Los sensores de línea están instalados en la parte delantera de la plataforma.

Escenario II . Instalación del tablero arduino Y conexión de motores. La placa ArduinoUno está montada en la parte posterior. Esta disposición asegurará el correcto posicionamiento de la plataforma al moverse. MotorShield se instala en la parte superior de la placa a la que están conectados los motores.

Escenario III . Instalación Troyka Blindaje Y Conexión de sensores. El siguiente "escudo" se instala encima del anterior, formando una especie de "sándwich". Los sensores de línea digitales están conectados a los pines 8 y 9 del blindaje.

Escenario IV . Equilibrio. En la etapa final de montaje, es necesario fijar los cables a la plataforma para que no interfieran con el movimiento del robot. También puedes instalar bolas de equilibrio adicionales, teniendo en cuenta el peso de todas las tablas y la batería.

Arroz. 4. Robot corredor ensamblado

Desarrollo de un algoritmo de comportamiento de robot.

A continuación, es necesario desarrollar un algoritmo de movimiento del robot basado en las lecturas de los sensores. La idea principal es esta. Tengamos un campo blanco y un "camino" para el robot (pista) dibujado en negro. Los sensores de línea utilizados producen un cero lógico cuando “ven” negro y uno cuando “ven” blanco. En línea recta, el robot debe pasar la pista entre los sensores, es decir, ambos sensores deben mostrar “1”. Cuando la trayectoria gira hacia la derecha, el sensor derecho se mueve hacia la pista y comienza a mostrar un cero lógico. Al girar a la izquierda, el sensor izquierdo muestra cero.

Al probar el robot, surgió un problema de inercia, a saber: el robot se sale de la pista sin tener tiempo de reaccionar al giro. Esto se debe al hecho de que los motores no pueden frenar instantáneamente. Puedes resolver este problema de la siguiente manera. Después de que los sensores detectan el giro, debes detenerte y retroceder una cierta distancia, dependiendo de la velocidad antes de detenerte. Por tanto, es necesario encontrar la dependencia de la distancia recorrida al retroceder con el tiempo. Para ello se llevaron a cabo una serie de pruebas. Como resultado del análisis de los datos obtenidos, se encontró tal dependencia. Esto permitió calcular cuánto debe retroceder el robot, en función de la velocidad antes de detenerse.

Sin embargo, el robot no tiene que detenerse antes de cada giro; a baja velocidad, encaja perfectamente en el giro sin acciones adicionales. Además, para acelerar el proceso de giro, es posible "revertir" no en línea recta, sino en un ángulo determinado. También es necesario distinguir entre los estados del robot: cuando se mueve en línea recta y cuando entra en una curva. En el primer caso, puede aumentar la velocidad del robot para un paso más dinámico de la pista, en el segundo, puede reducir la velocidad a un valor suficiente para completar con éxito el giro.

Arroz. 5. Busque la dependencia de la distancia recorrida al retroceder en el tiempo.

Las disposiciones anteriores se convirtieron en la base para el desarrollo de un algoritmo mejorado de comportamiento del robot.

Conclusión

Este estudio examinó los conceptos básicos del diseño de robots basados ​​​​en plataformas de la familia Arduino y también construyó un modelo funcional de un robot basado en la placa ArduinoUno. Durante las pruebas, se identificaron y eliminaron algunas deficiencias tanto de la parte técnica como del algoritmo de movimiento. El modelo resultante es capaz de percibir correctamente la información entrante sobre la ubicación del robot y, analizando la situación, tomar una decisión sobre nuevos movimientos. Hay varias direcciones para modificar este modelo:

‒ Puedes experimentar con el sistema de pesas y lograr un equilibrio perfecto.

‒ La ubicación y el número de sensores también son parámetros importantes en este diseño. De esto depende no solo la velocidad con la que el robot reaccionará a los giros, sino también el diseño de las pistas por las que podrá moverse correctamente.

Sin embargo, la solución más relevante y óptima puede ser el uso de redes neuronales. Con su ayuda, el robot, después de haber realizado varios giros sin éxito, aprenderá y no repetirá el mismo error la próxima vez. Esto funcionará con otras acciones realizadas por el robot, lo que, con el tiempo, creará un corredor perfectamente adaptado a cualquier ruta.

Se continuará trabajando para estudiar y aplicar en la práctica los resultados de este estudio. En el futuro, se prevé ampliar los conocimientos adquiridos e intentar construir un robot de autoaprendizaje que resuelva algunos de los problemas considerados en este estudio.

Literatura:

  1. Bloom D. Estudiando Arduino. - San Petersburgo: BHV-Petersburgo, 2015.
  2. Petin V. A. Proyectos utilizando el controlador Arduino. - San Petersburgo: BHV-Petersburgo, 2014.
  3. Sommer W. Programación de placas de microcontrolador Arduino/Freeduino. - San Petersburgo: BHV-Petersburgo, 2012.
  4. Terekhov S. A. Conferencias sobre la teoría y aplicaciones de las redes neuronales artificiales. - Snezhinsk: VNIITF, 2003.
  5. Wasserman F. Tecnología de neurocomputadoras: teoría y práctica. - M.: Mir, 1992.
  6. Amperio. Wiki [recurso electrónico].
  7. URL: http://wiki.amperka.ru/ (Fecha de acceso: 3 de octubre de 2015)
  8. Portal de información RoboCraft [recurso electrónico].
  9. URL: http://robocraft.ru/page/summary (Fecha de acceso: 12/11/2015)
  10. Portal de información Arduino.ru [recurso electrónico].
  11. URL: http://arduino.ru/ (Fecha de acceso: 14 de noviembre de 2015)

Palabras clave: robótica, programación, inteligencia artificial..

Anotación: Hoy en día es difícil imaginar un mundo sin robots. La robótica es un método eficaz para estudiar áreas importantes de la ciencia, la tecnología, la ingeniería y las matemáticas. Hoy en día es imposible hablar de robots sin tocar el concepto de inteligencia artificial. Estas dos áreas están estrechamente relacionadas. Anteriormente, el autor ha trabajado en el estudio de redes neuronales, así como de la posibilidad de “robotizar” algunos aspectos de la vida humana. Este artículo está dedicado a la consideración de cuestiones de robótica.


¡Buenos días a todos! ¡Este artículo estará dedicado a los amantes de la electrónica, la robótica y a las personas con una visión poco convencional de las cosas que les rodean!

Así que ahora intentaré describir el proceso de creación y montaje lo más claramente posible. robot con llenado electrónico, es decir, Arduino! ¡Vamos!

Lo que necesitamos:
Bucle de tres hilos(3 piezas). Es recomendable coger uno más largo.


Cables regulares


Potenciómetros


Resistencias(220 ohmios)


Botón


Compartimento de pilas con pilas.


tablero de desarrollo


Y, por supuesto, ella misma. arduino


Y también una placa de expansión para ello, algo así como Escudo multiservo, para controlar una gran cantidad de servos


y cualquier otra persona constructor, que será la base de nuestro robot, por lo que es recomendable elegir “fuerte”

Herramientas que necesitarás:
Juego de destornilladores, llaves inglesas, etc.


Además de soldador, soldadura y fundente.

Bueno ahora comencemos!
Paso #1. Hacer el marco principal
Primero, recopilemos "dos letras N". Se ve así:


Luego alguna estructura sobre la que se apoyará nuestro robot. No necesariamente tiene que ser como en la imagen, queda a tu discreción. Lo tengo así:


Instalamos nuestra “H” en el soporte


Apretamos los tornillos desde abajo.


En la otra “H” colocamos el primer servoaccionamiento, que se encarga de girar la cabeza de nuestro futuro robot.



Resulta algo como esto:


¡El marco está casi listo! ¡Solo queda fijar estas dos estructuras con placas de metal y darle altura al robot!




Paso No. 2 Hacer un marco para futuras orejas de robot
Para hacer esto, necesitamos ensamblar dos estructuras similares y conectarles servos, como se muestra en la figura:





Luego, utilizando tornillos y tuercas, lo conectamos al marco principal. Obtendrá lo siguiente:







Vista superior:




Bueno, ¡un prototipo de robot está casi listo! Sigamos adelante..
Paso #3. ¡Haciendo los ojos y, en general, toda la cabeza de nuestro robot!
Precisamente por eso utilicé un viejo tubo de intercomunicación. Personalmente, ¡me recuerda a una cara! Verás más lejos..


Hacemos dos agujeros y atornillamos el balancín del servoaccionamiento al tubo.




Pegue inmediatamente los LED en los lados y suelde el cableado.



Yo usé unos finos:

¡Esto es lo que pasó!


Paso No. 4 Hacer orejas
Usaremos tapas normales de cajas pequeñas.
También colocaremos los balancines para los servos.




Ahora podemos fijar de forma segura las partes del cuerpo del robot en los servos.
Como esto:


Vista superior:



Detrás:


En principio ya puedes disfrutar del robot, pero complicaremos la tarea giraremos los ojos y oídos del robot mediante potenciómetros y nuestro arduino.
Paso #5 Electrónica
Habiendo conectado el Arduino al multiservoshield, insertamos un cable de tres hilos de cada servo a los pines 9, 10, 11 (Oído izquierdo, Oído derecho, Cent, si pones el robot de cara a nosotros)
Luego instalamos un potenciómetro, un botón, resistencias en la placa... Se verá así, feo claro, pero lo principal es que funciona)







¡Más detalles!
Cómo instalar un botón:


Donde el cable blanco es alimentación, el cable rojo es la entrada digital del microcontrolador No. 6 y la resistencia va a tierra (cable amarillo)

Cómo instalar el potenciómetro:

Cable rojo - alimentación, Amarillo - tierra, Blanco - entrada analógica del microcontrolador No. 0 (conectamos otro potenciómetro de la misma manera, solo la entrada analógica del controlador No. 1)

También instalamos resistencias para LED en la placa.:


la corriente se suministrará desde los pines 3 y 5 del Arduino, llegará a través de los cables amarillo y negro y pasará por resistencias a tierra (GND del controlador)


Bueno, eso es básicamente todo, ¡hemos terminado con la electrónica! Ya solo queda cargar el siguiente. bosquejo y juega con el robot!!

#incluye #incluye Multiservo myservo1; multiservo myservo2; multiservo myservo3; intb,k1,p1,p2; int A = 0; int yo = 0; largo sin firmar m2=0; largo sin firmar m1=0; intr1=70; intr2=110; intr3=70;

inth1=0;
inth=0; void setup() ( myservo1.attach(9); // oído izquierdo myservo2.attach(10); // oído derecho myservo3.attach(11); // ojos pinMode(6,INPUT); // botón pinMode(3 ,SALIDA); //ojos luces PWM pinMode(5,SALIDA); void loop() ( while(A==0) // ciclo de control manual del robot ( b = digitalRead(6); if (!b) k1 = 1; si (b==1 && k1 == 1) ( retraso(10); b = lectura digital(6); si(b==1 && k1 == 1) ( A=1; k1=0; ) ) p1=int(analogRead(A0)/6); p2=int(analogRead(A1)/6); myservo2.write(p1); +70 && h1==0) ( i=i+4; m1=millis(); if(i>250) h1=1; ) if (millis() >= m1+70 && h1==1) ( i =i-4; m1=millis(); if(i==0) h1=0; ) ) while(A==1) // ciclo de vida de la batería del robot ( digitalWrite(13,0); b = digitalRead(6 ); =0; k1=0; ) ) analogWrite(3,i); si(millis() >= m1+70 && h1==0) ( i=i+4;
m1=milis();

si(i>250) h1=1;




) if(millis() >= m1+70 && h1==1) ( i=i-4; m1=millis(); if(i==0) h1=0; ) if(millis() >= m2 +15 && h==0) ( myservo1.write(r1); myservo2.write(r2); myservo3.write(r3); r1=r1+1; r2=r2-1; r3=r3+1; if( r1==110) h=1; m2=millis() ) if(millis() >= m2+15 && h==1) ( myservo1.write(r1); // 110 myservo2.write(r2); // 70 myservo3.write(r3); // 110 r1=r2+1; if(r1==70) m2=millis(); El código es bastante grande, ¡pero créanme que vale la pena! Brevemente, qué hace este programa:


Disponemos de un botón que se encarga de 2 estados del sistema: o controlamos el robot manualmente, o este realiza movimientos ya prescritos de antemano. Cuando presionamos el botón, los estados cambian para nosotros, y en el código cambian entre sí 2 ciclos, en los que están escritos los comandos correspondientes. Los ojos de nuestro robot se iluminan gradualmente, se vuelven cada vez más brillantes y luego se desvanecen. Es por eso que conectamos LED a pines que admiten PWM (modulación de ancho de pulso). Fotos del robot:

Pero también con la compra de un robot completo y listo para usar basado en esta placa. Para niños de escuela primaria o preescolar, estos proyectos Arduino ya preparados son incluso preferibles, porque El tablero "no animado" parece un poco aburrido. Por aquí También es adecuado para quienes no se sienten especialmente atraídos por los circuitos eléctricos.

Al comprar un modelo de robot que funcione, es decir. de hecho, un juguete de alta tecnología ya hecho puede despertar el interés en diseñar y crear robots de forma independiente. Después de haber jugado lo suficiente con un juguete de este tipo y haber entendido cómo funciona, puede comenzar a mejorar el modelo, desarmar todo y comenzar a ensamblar nuevos proyectos en Arduino, utilizando la placa, las unidades y los sensores liberados. La apertura de la plataforma Arduino le permite fabricar nuevos juguetes a partir de los mismos componentes.

Ofrecemos una pequeña descripción general de los robots listos para usar en la placa Arduino.

Máquina Arduino controlada vía Bluetooth

Coche controlado mediante Bluetooth, con un costo de poco menos de $100. Se suministra desmontado. Además de la carcasa, el motor, las ruedas, la batería de litio y el cargador, obtenemos una placa Arduino UNO328, un controlador de motor, un adaptador Bluetooth, un control remoto y más.

Vídeo con este y otro robot:

Una descripción más detallada del juguete y la posibilidad de comprarlo en el sitio web de la tienda online DealExtreme.

Robot Tortuga Arduino

Kit de montaje de tortuga robot cuesta alrededor de $90. Lo único que falta es la carcasa, se incluye todo lo demás necesario para la vida de este héroe: placa Arduino Uno, servos, sensores, módulos de seguimiento, receptor IR y control remoto, batería.

La tortuga se puede comprar en el sitio web de DealExtreme, un robot similar más barato está en Aliexpress.

Vehículo rastreado Arduino controlado desde un teléfono celular

Vehículo rastreado controlado vía Bluetooth desde un teléfono celular, con un costo de $94. Además de la base del track, obtenemos una placa Arduino Uno y una placa de expansión, una placa Bluetooth, una batería y un cargador.

El vehículo con orugas también se puede comprar en el sitio web de DealExtreme, donde también encontrará una descripción detallada. Quizás uno de hierro más interesante. tanque arduino en Aliexpress.

Coche Arduino conduciendo a través de laberintos

Coche conduciendo por laberintos, con un costo de $83. Además de los motores, la placa Arduino Uno y otros elementos necesarios, contiene módulos de seguimiento y módulos para evitar obstáculos.

Robot o marco listo para usar para un robot.

Además de la opción de utilizar kits listos para usar para crear robots Arduino discutidos en la revisión, puede comprar un marco (cuerpo) separado del robot: puede ser una plataforma sobre ruedas o una oruga, un humanoide, una araña y otros modelos. En este caso, tendrás que rellenar el robot tú mismo. En el nuestro se ofrece una descripción general de estos casos.

¿Dónde más puedes comprar robots prefabricados?

En la revisión, seleccionamos los robots Arduino prefabricados más baratos e interesantes, en nuestra opinión, de las tiendas en línea chinas. Si no tiene tiempo para esperar un paquete desde China, hay una gran selección de robots listos para usar en las tiendas en línea Amperka y DESSY. La tienda en línea ROBstore ofrece precios bajos y entrega rápida. Lista de tiendas recomendadas.

También te pueden interesar nuestras reseñas de proyectos Arduino:


entrenamiento arduino

¿No sabes por dónde empezar a aprender Arduino? Piense en lo que está más cerca de usted: ¿ensamblar sus propios modelos simples y complicarlos gradualmente o conocer soluciones más complejas pero ya preparadas?

Entiendes”, explicó el editor, “debe ser entretenido, fresco, lleno de aventuras interesantes... Para que el lector no pueda separarse.
I. Ilf, E. Petrov "Cómo se creó Robinson".


Siempre es más interesante empezar a trabajar con Arduino, como con cualquier otra plataforma de software o hardware, con algún proyecto real. Al mismo tiempo, los programadores escriben un código que muestra "Hola, mundo" y los arduinistas hacen parpadear el LED. Y todos son felices como niños.


Decidí comenzar con un proyecto avanzado, que incluía la esperanza secreta de alejar a la generación más joven de Counter-Strike (no funcionó).


Como puedes adivinar por el nombre RoboCar4W, el primer proyecto fue un coche robot de cuatro ruedas. Cuando comencé a trabajar, ya tenía experiencia en programación, sabía soldar hace mucho tiempo, pero ni siquiera conocía el pinout de Arduino y no leí la documentación en absoluto. Estudié toda la sabiduría durante la obra y Google me ayudó.


Dado que el proyecto en sí no es fundamentalmente nuevo, hay suficientes descripciones similares en Internet, se conocen todos los componentes y no se esperaban sorpresas. Por lo tanto, la idea se formuló en los términos más generales y el objetivo principal era sumergirnos en el “mundo de las cosas” utilizando Arduino como plataforma para la creación rápida de prototipos. En esta obra, tal vez alguien se reconozca desde el comienzo de su viaje.


Todo el hardware se compró en eBay y, desde mi propia experiencia, me gustaría decir que es más fácil comprar un kit de inicio de inmediato (busque Arduino Starter Kit) que ensamblarlo en detalle. Sí, y todo llegará de una vez. Se decidió no perder el tiempo en nimiedades, comprar un chasis normal, ruedas normales, motores normales, para que saliera “caro”.


El principal secreto para realizar compras exitosas en eBay es comprar a vendedores altamente calificados y al mismo tiempo leer atentamente la descripción del producto. Hay muchos artículos sobre esto en Internet.


¿Qué placa Arduino debo elegir?


Tomé Arduino UNO, hay muchos proyectos con descripciones. Pero ahora me quedaría con el Arduino Mega 2560, tiene más salidas digitales y analógicas y es totalmente compatible con proyectos UNO.

Descripción general del proyecto.

En el mundo del desarrollo de software, estos también se denominan "requisitos del sistema".


La idea del proyecto era la siguiente. La primera versión del automóvil robótico, llamada RoboCar4W, debería realizar acciones simples:

  • avanzar, retroceder, girar
  • medir la distancia a los obstáculos
  • ser capaz de evitar automáticamente los obstáculos que se encuentran por delante.

La segunda versión de la máquina debe controlarse manualmente mediante bluetooth desde un teléfono Android.


Para mejorar su trabajo, aquí está ensamblado el proyecto final completo de RoboCar4W (aquí sin Bluetooth).



Aquí tenéis un vídeo de las pruebas en el mar.


En el primer vídeo, RoboCar4W conduce en modo automático evitando obstáculos en dos versiones diferentes del firmware, es decir. boceto, así que si alguien tiene más vista de águila y notó que el comportamiento del robot en diferentes episodios es ligeramente diferente.



En el segundo vídeo, RoboCar4W se mueve mediante comandos transmitidos por el “conductor” vía Bluetooth desde un teléfono móvil Android. El teléfono tiene instalado el programa “Bluetooth RC Car”. Además, si hay un obstáculo cerca, el robot se detiene, es decir. No podrás embestir nada (sin embargo, hay un botón "secreto" que desactiva el modo seguro).



En el tercer vídeo, RoboCar4W muestra un programa de demostración preprogramado para conducir por curvas. El programa de demostración se activa mediante comando desde el mismo teléfono móvil Android. El robot simplemente conduce durante un rato y gira.

Algoritmo de control de movimiento

Es un error llamar a nuestro método "algoritmo para evitar obstáculos" o "búsqueda de caminos". Éstas son disciplinas matemáticas separadas, matemáticas puras. Si realmente te gustan las matemáticas, busca en Google las frases indicadas, se te proporcionará material de lectura durante seis meses.


Por ahora, nos interesan cosas mucho más simples. Por lo tanto, lo llamaremos simplemente: algoritmo para controlar el movimiento de un robot de 4 ruedas. Por supuesto, estamos hablando de control automático sin intervención humana.


Este algoritmo simple está escrito en palabras; para algoritmos más complejos tendrás que (lo quieras o no) elaborar diagramas de flujo.

  1. Medimos la distancia hasta el obstáculo que tenemos delante.
  2. Si esta distancia medida es menor que el valor de DST_TRH_BACK (abreviatura de umbral de distancia), entonces nos detenemos y conducimos en reversa mientras giramos. Elegimos el sentido de giro de la siguiente manera: si ya hemos girado a la izquierda, giramos a la derecha y viceversa.
  3. Si la distancia medida es mayor que DST_TRH_BACK, pero menor que DST_TRH_TURN, simplemente giramos. El sentido de rotación se elige al azar.
  4. Si el obstáculo está lejos, simplemente seguimos adelante.
  5. Repetimos todo desde el principio.

¿Qué tiene de bueno tener 4 ruedas y todo movido? Podemos realizar (programar) varios tipos de giros:

  • Giro suave. Todas las ruedas giran, pero las ruedas de un lado giran más rápido.
  • Chanclas. Las ruedas solo giran hacia un lado.
  • Cambio de sentido en el acto. Como en un tractor, las ruedas de un lado giran hacia atrás y las del otro lado giran hacia adelante.

En la segunda versión del programa, cuando se controla desde un teléfono Android, el modo seguro, cuando el robot intenta evitar colisiones frontales, se puede desactivar presionando el botón dos veces en el programa.


y lo volvió a encender presionándolo una vez.


Nota importante. Toda la lógica está controlada por Arduino. Android aquí simplemente actúa como un control remoto de juego (sin cerebro) desde la consola, su tarea es transmitir estúpidamente pulsaciones de botones (es decir, comandos) a través de Bluetooth al Arduino RoboCar4W.

Componentes

Inicialmente, la máquina incluía un servoaccionamiento que hacía girar el distanciómetro ultrasónico en un cierto ángulo para medir en tres direcciones. Pero durante las pruebas, debido a un manejo descuidado, el servoaccionamiento se quemó, por lo que ahora el sensor de distancia simplemente se fija rígidamente delante de la carcasa.


Cada nube tiene un lado positivo, pero el boceto se ha vuelto un poco más simple.


Para el futuro, compre el servoaccionamiento más simple y económico; no se necesitan potencia especial, velocidad y precisión de rotación en un ángulo determinado, y resultó que es bastante fácil dañar el servo. El SG90 de $2 funcionará bien.


Entonces, los componentes del proyecto RoboCar4W, se proporciona una descripción en inglés para facilitar la búsqueda en eBay y similares:

  • Arduino UNO R3
  • Chasis listo para usar, plataforma de Robot móvil con tracción en las 4 ruedas, chasis de coche inteligente Compatible con Arduino
  • Motores de corriente continua (CC) con rotación en ambos sentidos - 4 uds.
  • Ruedas - 4 uds.
  • Placa para controlar 4 motores DC Motor Drive Shield L293D
  • Medidor de distancia ultrasónico HC-SR04 Sensor de medición de distancia del módulo ultrasónico
  • Pilas Ni-MH 1,2 V - 8 uds.
  • Soporte de caja de plástico para baterías, Soporte de caja de baterías 4 pilas AA - 2 uds.
  • Batería tipo “Krona” 8,4 V - 1 ud.
  • Interruptor de palanca opcional - interruptor de encendido

El chasis, los motores DC y las ruedas se adquirieron inmediatamente como kit e incluso con instrucciones de montaje.


Las entradas analógicas se pueden utilizar como pines de E/S digitales. Los pines Arduino correspondientes a las entradas analógicas están numerados del 14 al 19. Esto se refiere únicamente a los pines Arduino y no a los números de pines físicos del microcontrolador Atmega.


No tienes que dibujar, simplemente puedes poner todo en una mesa. Lo hice así.



Los pines D4, D7, D8, D12 estarán ocupados si se utilizan motores de CC o motores paso a paso.


Los pines D9 (control del servo n.° 1) y D10 (control del servo n.° 2) solo estarán ocupados si se utilizan servos.


La placa en sí para controlar los motores Motor Drive Shield L293D no ocupa pines Arduino.


Los pines de alimentación de 3,3 V, 5 V y tierra están duplicados en el protector del motor en cantidades suficientes. Por tanto, no hay necesidad de preocuparse por su escasez.


Si aún quieres dibujar maravillosamente, el programa gratuito Fritzing te ayudará.


Este es el segundo punto muy importante. Mucho depende de la nutrición. Por ejemplo, un servomotor comienza a consumir una gran corriente al girar el eje en un ángulo determinado. Además, si el servo está conectado a una fuente de alimentación Arduino de 5 V, se produce una caída de voltaje y el resto del circuito comienza a fallar, y el Arduino puede incluso reiniciarse al mismo tiempo.


En cualquier caso, si utiliza motores en su nave, entonces es necesario un protector de accionamiento del motor (o un circuito similar).


Entonces, tenemos 4 motores de corriente continua (DC), un servoaccionamiento, la propia placa Arduino y varios sensores. Los motores son los que más energía consumen, pero los sensores se pueden alimentar con éxito desde los conectores de la propia placa Arduino, por lo que con ellos todo es sencillo. Por conveniencia, he resumido todo el hogar en una tabla.


Tensión recomendada o típica. Consumo actual Tensión máxima ¿Qué planeas comer? Notas
Placa Arduino UNO R3 7 - 12 V, 200 mA (promedio) 6 - 20 "Krona 9V" Li-ion 650mAh, 8.4V Conector con positivo en el centro.
Servomotor MG-995 5-6 V, 0,1 - 0,3 A (pico) 4.8 - 7.2 Baterías (5) uds. Ni-Mh 1,2 V = 6 V Fuente de alimentación únicamente de una fuente separada. Si lo enciendes junto con el Arduino, todo fallará. Baterías Ni-Mh de voltaje 4 uds. * 1,2V = 4,8V no es suficiente. Algunos argumentan que este servo no debe usarse a 6 voltios, solo a 4,8
Motores CC (4 uds.) 6 - 8V, corriente de 70mA a 250mA 3 - 12 pilas (5+3) uds. Ni-Mh 1,2 V = 9,6 V No podrás hacer funcionar los motores correctamente con una batería de 9 V, ¡así que ni siquiera pierdas el tiempo (y las baterías)!
Escudo de accionamiento del motor L293D no requerido 4.5 - 36 no requerido
Módulo Bluetooth HC-0506 3,3 V, 50 mA 1.8-3.6 Desde el pin de 3.3V de la placa Arduino
Medidor de distancia ultrasónico HC-SR04 5 V, 2 mA 5 Desde el pin de 5V de la placa Arduino

No tenía un convertidor de voltaje CC/CC disponible. Krona 9V resultó no ser una muy buena fuente de energía, simplemente ya la tenía.


Pero me negué a utilizar baterías de iones de litio de alta capacidad. En primer lugar, por el elevado coste y, en segundo lugar, en las tiendas online chinas es fácil toparse con una falsificación. Más precisamente, no "fácil", sino "siempre". Además, el Li-ion requiere un manejo especial y no es seguro.


Entonces, como vemos en la tabla, necesitamos 3 fuentes de energía independientes:

  • Para placa Arduino y sensores.
  • Para servomotor.
  • Para 4 motores CC.

¿Dónde puedo conseguir tanto? En cualquier caso, la propia placa Arduino debe recibir alimentación de una fuente independiente, porque Cuando el voltaje "baja", por ejemplo, al encender los motores, la placa puede reiniciarse o simplemente fallar. Aquí usamos una batería del factor de forma Krona 9V, y el conector que se conectará al Arduino debe tener un "más en el centro".


Para un servomotor y 4 motores de CC, puede arreglárselas con una fuente de energía. El único problema es que el servomotor está diseñado para un voltaje de 5-6 V (máximo 7,2 V) y una corriente de 100 - 300 mA (pico), mientras que los motores de CC requieren 6 - 8 V ​​(máximo 12 V) y una corriente de 250 mA.


Para solucionar el problema, existen convertidores DC-DC, pero yo no tenía ninguno. Como resultado, utilicé mi esquema de conexión "patentado" (¡sin circuitos electrónicos reductores, solo voltaje y corriente ecológicos!): Conecté 8 piezas. Baterías de 1,2 V en serie y grifos realizados en los lugares correctos, como se muestra en el diagrama.



6V fueron al servomotor y 9,6 a los motores de CC. Está claro que las baterías 1 a 5 experimentarán una mayor carga.


Para controlar los servomotores y los motores de CC utilicé un Motor Drive Shield de 4 canales basado en el chip L293D.


Montar el chasis terminado es un pequeño problema. Pero no creas que sin terminarlo todo se arreglará enseguida. Así que prepare sus limas de agujas.




Normalmente no es posible conectar varios motores, un servomotor o un motor paso a paso directamente al Arduino. Dado que los pines (conclusiones) de Arduino son de baja corriente. Para resolver el problema, existe un módulo de control de accionamiento adicional: Motor Drive Shield basado en el chip L293D, que es uno de los chips más comunes diseñados para este propósito. El chip L293D también se conoce como H-Bridge.


Utilicé una placa que proporciona 4 canales de conectividad en dos chips L293D y un registro de desplazamiento. Disponible en eBay por $5.


Esta placa del módulo de control del variador tiene las siguientes características.

  • Escudo de accionamiento de motor L293D compatible con Arduino Mega 1280 y 2560, UNO, Duemilanove, Diecimila
  • control de 4 canales
  • Alimentación del motor de 4,5V a 36V.
  • corriente de carga permitida 600 mA por canal, corriente máxima - 1,2 A
  • protección contra sobrecalentamiento
  • 2 interfaces con un temporizador Arduino preciso (no habrá "jitter") para conectar servomotores a un voltaje de 5 V, si se necesita un voltaje de suministro mayor, entonces la conexión de alimentación debe rehacerse como se describe a continuación;
  • Puede controlar simultáneamente 4 motores conmutadores CC bidireccionales o 2 motores paso a paso y 2 servomotores
  • 4 motores CC bidireccionales, cada uno conectado a un bus de 8 bits para selección de velocidad individual
  • conexión de hasta 2 motores paso a paso (unipolar o bipolar), bobina simple, bobina doble o paso alterno
  • Conector para conectar una fuente externa para el suministro de energía independiente de la lógica de control y los motores.
  • Botón RESET de Arduino
  • La biblioteca Adafruit AFMotor se utiliza para el control.

Motor Drive Shield requiere una pequeña modificación para poder conectar cualquier cosa después. Soldé los conectores necesarios encima y esto es lo que pasó.



Los motores se pueden conectar a una fuente de alimentación adicional a la placa Arduino. Este es el método de conexión que recomiendo. Para hacer esto, debe quitar y abrir el puente, como se muestra en la imagen.



En este caso, el Arduino se alimenta y los motores se alimentan de forma independiente unos de otros.


El LED en el protector del motor se enciende cuando hay energía para los motores; si no está encendido, los motores no funcionarán.


Nuevo problema.


La posición del puente de alimentación no afecta a los servomotores; seguirán siendo alimentados por el Arduino de 5V. Dado que los servos suelen consumir mucha corriente y si no hay suficiente energía, todo el dispositivo comienza a fallar, en el "mejor" caso, solo fallará el servo: no girará en un ángulo determinado, o todo el tiempo antes; En cada giro, girará primero a 0 grados, y solo luego en un ángulo determinado (y si tiene tiempo). Por lo tanto, recomiendo alimentar el servoaccionamiento también desde una fuente de alimentación adicional. Para hacer esto, tendrá que modificar ligeramente el diagrama de conexión: corte el cable positivo (generalmente rojo) del conector estándar y conéctelo directamente al positivo de la fuente de alimentación.



Al conectar el Motor Drive Shield, no se utilizan pines analógicos. Los pines digitales 2, 13 no se utilizan.


Los pines siguientes solo se utilizan si se conectan y utilizan motores de CC o motores paso a paso adecuados:

  • D11: Motor DC #1 / Paso a paso #1 (activación y control de velocidad)
  • D3: Motor DC #2 / Paso a paso #1 (activación y control de velocidad)
  • D5: Motor DC #3 / Paso a paso #2 (activación y control de velocidad)
  • D6: Motor DC #4 / Paso a paso #2 (activación y control de velocidad)

Estos pines estarán ocupados si se utiliza algún DC/paso a paso: D4, D7, D8, D12.


Los siguientes pines sólo estarán ocupados si se utilizan los servos correspondientes:

  • D9: control del servo n.° 1
  • D10: control del servo n.º 2


Para comenzar con Motor Drive Shield, debe descargar e instalar la biblioteca Adafruit AFMotor.


Código de ejemplo para controlar motores:


#incluir // incluye la biblioteca de Adafruit #include // conectamos la biblioteca para el servomotor AF_DCMotor motor(1); // crea un objeto de motor, especificando el número del conector del motor DC en la placa Motor Blindado y, opcionalmente, la frecuencia Servo servo; // crea un objeto servomotor servo.attach(10); // conecta el servo al pin 9 o 10 (el conector más externo en la placa blindada del motor) motor.setSpeed(speed); // establece la velocidad del motor de CC de 0 (parada) a 255 (aceleración máxima) motor.run(RELEASE); // parada del motor CC motor.run(FORWARD); // motor CC hacia adelante motor.run(BACKWARD); // motor DC servo inverso.write(90); // gira el servo 90 grados.

Mi motor de CC empezó a girar sólo cuando la velocidad estaba fijada en más de 100; si era menor, simplemente zumbaba. Tendrás que determinar experimentalmente la velocidad mínima de tu motor.


Para los motores conectados a M1 y M2, puede configurar la frecuencia: MOTOR12_64KHZ, MOTOR12_8KHZ, MOTOR12_2KHZ, MOTOR12_1KHZ. La velocidad de rotación más alta se logra a 64KHz, esta frecuencia será audible, menor frecuencia y velocidad a 1KHz pero también usa menos energía. Los motores 3 y 4 siempre funcionan a 1 KHz; los demás valores se ignoran. El valor predeterminado es 1 KHz en todas partes.


Después de esto, deberá realizar una prueba del motor. . Al comienzo del boceto, cambie el número del motor en una línea (o líneas) como:


AF_DCMotor(...);

El boceto hace girar los motores hacia adelante mientras el robot se mueve por un tiempo y luego hacia atrás. Mire con atención para ver si el motor gira en la dirección incorrecta y cambie la polaridad de la conexión si es necesario.


Conectamos el distanciómetro ultrasónico Módulo Ultrasónico HC-SR04. Configuración de pines:

  • Disparo(T)
  • Eco (R)

Tiempo dedicado por un telémetro ultrasónico a las mediciones (determinado experimentalmente):

  • máximo 240 ms si la distancia es demasiado grande (fuera de rango)
  • mínimo 1 ms si la distancia es demasiado corta
  • una distancia de 1,5 m se determina en aproximadamente 10 ms


El sensor ultrasónico del telémetro, por su naturaleza física, y no porque China, en algunos casos determina mal la distancia a un obstáculo:

  • si el obstáculo tiene una forma compleja, entonces el ultrasonido se refleja en diferentes ángulos y el sensor se equivoca,
  • El ultrasonido es perfectamente absorbido (es decir, no reflejado) por muebles tapizados o juguetes, y el sensor cree que no hay nada delante.

En otras palabras, lo ideal para un telémetro ultrasónico sería fantástico si todos los obstáculos tuvieran la forma de un plano sólido perpendicular a la dirección de la radiación ultrasónica.


Algunos problemas se pueden solucionar utilizando un sensor de distancia por infrarrojos. Pero tampoco es perfecto:

  • alcance máximo pequeño en comparación con el ultrasonido: 0,3-0,8 m frente a 4 m
  • Distancia mínima grande en comparación con los ultrasonidos: 10 cm frente a 2 cm
  • Dependencia de la sensibilidad del sensor de la iluminación general.

Aunque si estos telémetros se instalaran por parejas, su rendimiento aumentaría notablemente.

Conecte Bluetooth HC-05

Como podemos ver en la hoja de datos, los pines principales del HC-05 “desnudo”:

  • Transmisión TX (pin 1)
  • Recepción RX (pin 2)
  • Fuente de alimentación de 3,3 V (pin 12) 3,3 V
  • GND (pin 13) tierra
  • Indicador de modo PIO8 (pin 31)
  • Estado de conexión PIO9 (pin 32), si se establece la conexión, la salida será alta
  • PIO11 (pin 34) para habilitar el modo de comando AT

Nuestro módulo está soldado a la placa base/conexión, que ya tiene un divisor de voltaje, por lo que su rango de voltaje de funcionamiento es de 3,3 V a 6 V.


Conectamos nuestro conjunto de módulo Bluetooth:

  • Arduino (TX) - (RX) HC-05
  • Arduino (RX) - (TX) HC-05
  • Arduino (+5V) - (VCC)Bluetooth
  • Arduino (GND) - (GND) Bluetooth
  • Los pines LED y KEY no se utilizan

Después de que se suministra energía al módulo Bluetooth HC-05, el LED debe parpadear, lo que significa que Bluetooth está funcionando.


Encendemos el bluetooth en el móvil, buscamos el dispositivo con el nombre HC-05 y nos conectamos, la contraseña es 1234.


Para realizar pruebas, cargue un boceto simple en Arduino:


recuento int = 0; void setup() ( Serial.begin(9600); Serial.println("Prueba Arduino + Bluetooth. http://localhost"); ) void loop() ( count++; Serial.print("Count = "); Serial. println(cuenta); retraso(1000);

En un teléfono Android instalamos Terminal Bluetooth. Nos conectamos al dispositivo HC-05 y miramos las líneas con un contador creciente en la pantalla del teléfono.


Para que el módulo acepte comandos AT, se debe poner en el modo apropiado; para hacer esto, debe configurar el pin KEY (PIO11) en la lógica 1. En algunas placas base/de ruptura, en lugar del pin KEY, hay un pin EN (HABILITAR), que puede estar soldado o no a un pin en el propio chip. Esto sólo se aplica a los chips HC05. Es solo que mi pin EN del tablero no está soldado en ninguna parte. Por lo tanto, se puede soldar con un cable separado al pin KEY(PIO11) del chip. O, durante la operación, para cambiar el HC05 al modo de comando AT, cortocircuite el pin del chip KEY(PIO11) al pin de alimentación Vcc durante un par de segundos. Para HC06, el pin KEY no es necesario.

Software

Nota. Cada vez que cargue un programa en el Arduino, asegúrese de que el módulo Bluetooth no esté conectado al Arduino. Esto causará problemas para completar el boceto. Simplemente desconecte la alimentación del módulo Bluetooth o los cables que conectan el Arduino y los pines RX, TX del módulo.


Al comienzo del boceto, cambie los números de motor en líneas como:


AF_DCMotor(...);

Si reemplazas la línea


depuración de bytes = 0;

depuración de bytes = 10;

entonces se activará el modo de depuración.


En el modo de depuración, el robot RoboCar4W en realidad no conducirá ni hará girar sus ruedas. En su lugar, activa el monitor del puerto serie y allí verás cómo “conduce” virtualmente. En lugar de avanzar realmente, la cadena "Adelante" se escribirá en el monitor del puerto serie, en lugar de retroceder con un giro a la izquierda - "Voltear hacia atrás L (eft)", etc. El sensor de distancia ultrasónico tampoco hace nada, sino que las distancias a los obstáculos se generan de forma programática y aleatoria.

Agregar etiquetas


Arriba