Móvil M1
Componentes y suministros
![]() |
| × | 1 | |||
| × | 4 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 8 | |||
![]() |
| × | 8 | |||
| × | 1 | ||||
![]() |
| × | 1 |
Aplicaciones y servicios en línea
![]() |
| |||
![]() |
| |||
![]() |
|
Acerca de este proyecto


Después de construir varios robots de interior, decidí construir un robot de exterior capaz de viajar a través de terrenos accidentados. Lo llamo "M1-Robot".
El motor M1-Robot maneja fácilmente cuatro motores de CC con Arduino, por lo que es perfecto para cualquier proyecto de robótica, pensé que esto sería un corazón fantástico para robots más poderosos, así que diseñé el M1 todoterreno con tracción en las 4 ruedas de la cero.
No es solo un automóvil RC, se puede programar para que sea autónomo, siga un conjunto de instrucciones o incluso se controle desde una computadora remota, y se puede usar a través de controladores de juegos y joysticks personalizados como un automóvil con control remoto.
Paso 1:diseño

Diseñar su propio producto o prototipo es muy divertido, pero se vuelve más complicado cuando decide hacerlo en una escala de tamaño real. Así que elijo Google Sketch-up 2017 como una herramienta de diseño potente y sencilla que te permite exportar los planos de tu modelo a una máquina de corte por láser o incluso a una impresora 3D.
Pasé las primeras tres semanas diseñando y construyendo el casco del robot.
En cuanto a los materiales, me dieron una hoja de tabla de madera de 3 mm.
El cableado final no tan agradable del robot, que, debido a limitaciones de tiempo, consistió en meter todo el animal atropellado en el casco.
Pensé que un nombre apropiado para mi robot era M1Rover. Debido a que planeo desarrollar versiones de él en una secuencia de nombres como M2, M3, etc. Diseñado en un kit, todo lo que tienes que hacer es ensamblarlo con algunos tornillos.
Paso 2:componentes y funciones
⦁ ¡Hasta tres horas de tiempo de ejecución!
⦁ Diseñado para Arduino Uno, Mega y Nano.
⦁ Voltaje de funcionamiento de 5 V-9 V CC
⦁ Un chasis de madera de 3 mm de grosor
⦁ Ruedas de 68 mm de diámetro L298N Motor paso a paso con doble puente en H
⦁ Baterías de 9v para alimentar los motores de CC
⦁ Baterías de 9v para encender el Arduino
⦁ Luces LED 7 para la parte trasera y delantera
⦁ Módulo Bluetooth HC-06
⦁ Escudo del sensor Arduino v5.0
⦁ Transductor ultrasónico HC SR04
Paso 3:el controlador del motor


Los H-Bridge se usan generalmente para controlar la velocidad y la dirección de los motores, pero se pueden usar para otros proyectos, como impulsar el brillo de ciertos proyectos de iluminación, como matrices de LED de alta potencia.
⦁ Asegúrese de tener todos los terrenos atados; Arduino, fuente de alimentación y controlador de motor.
⦁ Los pines PWM son innecesarios si no desea controlar las funciones PWM.
Paso 4:Montaje del chasis


El chasis se ha cortado con un cortador láser en algunas partes y, como mencioné anteriormente, el modelo se creó en un kit fácil de ensamblar, por lo que todo lo que tiene que hacer es seguir las instrucciones a continuación.
Teniendo en cuenta el diseño también era importante y cuando se trata de coches RC, debería contener luces delanteras y traseras. En la parte frontal del M1-Robot coloco 4 LED blancos cada uno está conectado a una resistencia de 220 ohmios, y en la parte trasera coloco 2 LED rojos con una resistencia de 220 ohmios para cada uno. Estos LED se pueden controlar con la misma aplicación
Paso 5:circuitos

El circuito fue un poco complicado porque cuando decidiste controlar muchas partes electrónicas al mismo tiempo, debes tener cuidado con la secuencia de cada parte.

⦁ Arduino Sensor Shield 5.0
⦁ Motor paso a paso Arduino Uno R3 L298N Dual H-Bridge
⦁ Batería de 9v para alimentar los motores DC
⦁ Luces LED 7 (2 traseras) y (4 delanteras)
⦁ Módulo Bluetooth HC-06
⦁ Transductor ultrasónico HC SR04
⦁ Servomotor 9g
⦁ Zumbador activo
⦁ 4 motores DC con ruedas
Paso 6:software

Consideré muchas cosas mientras escribía el código de M1-Robot, y con el software GUI puede obtener más información sobre el estado del robot.
El código básico para el kit de inicio se puede controlar mediante un dispositivo móvil o una computadora portátil a través de Bluetooth:
int frontled =3; // led int rearled =4; int outPin1 =5; // motor1 int outPin2 =6; // motor1 int outPin4 =11; // motor2 int outPin3 =12; // motor2 char bt =0; // BT int buzzerPin =2; const int pingPin =9; // Pin de disparo del sensor ultrasónicoconst int echoPin =8; // Pin de eco del sensor ultrasónico / * ----------------------------------------- ------------------------------------- * / void setup () {Serial.begin (9600); pinMode (outPin1, SALIDA); pinMode (outPin2, SALIDA); pinMode (outPin3, SALIDA); pinMode (outPin4, SALIDA); pinMode (al frente, SALIDA); pinMode (buzzerPin, SALIDA);} void loop () {if (Serial.available ()> 0) {bt =Serial.read (); digitalWrite (al frente, 1); larga duración, pulgadas, cm; pinMode (pingPin, SALIDA); digitalWrite (pingPin, BAJO); delayMicroseconds (2); digitalWrite (pingPin, ALTO); delayMicroseconds (10); digitalWrite (pingPin, BAJO); pinMode (echoPin, ENTRADA); duración =pulseIn (echoPin, HIGH); pulgadas =microsegundos a pulgadas (duración); cm =microsegundos a centímetros (duración); if (cm> 10) {// distancia hasta la parada / * ________________________________________________________________________ * / if (bt =='F') // avanzar {digitalWrite (outPin1, HIGH); digitalWrite (outPin2, LOW); digitalWrite (outPin3, HIGH); digitalWrite (outPin4, LOW); } else if (bt =='B') // moverse hacia atrás {digitalWrite (outPin1, LOW); digitalWrite (outPin2, HIGH); digitalWrite (outPin3, LOW); digitalWrite (outPin4, HIGH); } else if (bt =='S') // ¡¡Alto !! {digitalWrite (outPin1, LOW); digitalWrite (outPin2, LOW); digitalWrite (outPin3, LOW); digitalWrite (outPin4, LOW); } else if (bt =='R') // right {digitalWrite (outPin1, HIGH); digitalWrite (outPin2, LOW); digitalWrite (outPin3, LOW); digitalWrite (outPin4, LOW); } else if (bt =='L') // left {digitalWrite (outPin1, LOW); digitalWrite (outPin2, LOW); digitalWrite (outPin3, HIGH); digitalWrite (outPin4, LOW); } else if (bt =='I') // adelante a la derecha {digitalWrite (outPin1, HIGH); digitalWrite (outPin2, LOW); digitalWrite (outPin3, LOW); digitalWrite (outPin4, HIGH); } else if (bt =='G') // adelante a la izquierda {digitalWrite (outPin1, LOW); digitalWrite (outPin2, HIGH); digitalWrite (outPin3, HIGH); digitalWrite (outPin4, LOW); }} else {digitalWrite (buzzerPin, HIGH); retraso (500); digitalWrite (buzzerPin, BAJO); retraso (500); }}} microsegundos largos a pulgadas (microsegundos largos) {devuelve microsegundos / 74/2;} microsegundos largos a centímetros (microsegundos largos) {devuelve microsegundos / 29/2;}
El código Arduino es compatible con cualquier tipo de controlador porque todas las partes electrónicas están programadas para funcionar a través de órdenes de puerto serie, por lo que puede usar el módulo de remitente / receptor Bluetooth, PC, teléfono celular.
⦁ Aplicación de Windows C # (captura de pantalla adjunta)
Paso 7:paquetes
ENTRANTE

Este paquete M1-Robot incluye componentes básicos, mientras que la placa superior permite un fácil montaje de cualquier sensor, manipulación o hardware de computadora. Simplemente conecte sensores a las fuentes de alimentación a bordo y Rover para comenzar.
EXPLORADOR

El paquete Explorer permite la funcionalidad autónoma básica en interiores y exteriores, y en lugar de una cámara IP utilicé una cámara de teléfono móvil conectada a Internet a través de una dirección IP.
MAPEO
El paquete Explorer permite el rastreo GPS básico, por supuesto, mientras el vehículo está al aire libre, es muy bueno ver las rutas de las coordenadas en tiempo real.
MANIPULACIÓN

Interactuar con el mundo con un brazo robótico y una pinza de 50 mm con dos dedos.
Consejo importante:
No todos los servos tienen una rotación completa de 180 grados. Muchos no lo hacen. Puede escribir una prueba para determinar dónde están los límites mecánicos. Use servo.writeMicroseconds en lugar de servo.write Me gusta más esto porque le permite usar 1000-2000 como rango base. Y muchos servos serán compatibles fuera de ese rango, de 600 a 2400.
Por lo tanto, pruebe diferentes valores y vea de dónde obtiene el zumbido que le dice que ha alcanzado el límite. Entonces solo manténgase dentro de esos límites cuando escriba. Puede establecer esos límites cuando usa servo.attach (pin, min, max)
Editar:Debo decir que si lo desea, puede establecer los microsegundos mínimos y máximos en el adjunto, luego simplemente use servo.write. Utiliza map () para cambiar el valor de 0-180 grados que pasa a un valor de microsegundos.
Pronto lo será si lo mantiene en el tope final (está generando mucha corriente y se calienta rápidamente) es muy fácil "cocinar" un servo cargándolo de esta manera durante cualquier período de tiempo.
Encuentre el rango real de movimiento y asegúrese de que el código no intente empujarlo más allá de los topes finales, la función constrain () Arduino es útil para esto:
servo.write (restringir (ángulo, 10, 160)); // restringe el ángulo en el rango 10..160
Piezas y carcasas personalizadas
m1rover_dxf_hackaday_4o7WTGHUGE.dxfEsquemas

Proceso de manufactura