Cómo construir un robot en casa
¿Quieres aprender a construir tu propio robot?? Hay muchos tipos diferentes de robots que puedes hacer solo. La mayoría de las personas quiere ver a un robot realizar las tareas simples de pasar del punto A al punto B. Puede hacer un robot completamente de componentes analógicos o comprar un kit de inicio desde cero! Construir su propio robot es una excelente manera de enseñarse tanto como electrónica, así como programación de computadoras.
Pasos
Parte 1 de 6:
Montaje del robot1. Recoge tus componentes. Para construir un robot básico, necesitará varios componentes simples. Puede encontrar la mayoría, si no todos, de estos componentes en su tienda local de pasatiempos electrónicos, o varios minoristas en línea. Algunos kits básicos pueden incluir todos estos componentes también. Este robot no requiere soldadura:
- Arduino uno (u otro microcontrolador)
- 2 servos de rotación continua
- 2 ruedas que se ajustan a los servos
- 1 rodillo de lanzador
- 1 Pequeño tablero sin soldadura (busque una tabla de pan que tiene dos líneas positivas y negativas en cada lado)
- 1 sensor de distancia (con cable conector de cuatro pines)
- 1 mini interruptor de botón
- 1 10kΩ de resistencia
- 1 USB A a B Cable
- 1 juego de encabezados de rompeolas
- 1 6 x Soporte de batería AA con 9V DC Power Jack
- 1 paquete de cables de puente o cable de conexión de calibre 22
- Fuerte cinta de doble cara o pegamento caliente
2. Flip la batería sobre para que la espalda plana esté hacia arriba. Estarás construyendo el cuerpo del robot con la batería como base.
3. Alinee los dos servos en el extremo de la batería. Este debe ser el final que el cable del paquete de batería está saliendo de los servos debe estar tocando los fondos, y los mecanismos giratorios de cada uno deben enfrentar los lados de la batería. Los servos deben estar correctamente alineados para que las ruedas vayan directamente. Los cables para los servos deben estar saliendo de la parte posterior de la batería.
4. Coloque los servos con su cinta o pegamento. Asegúrese de que estén atados sólidamente a la batería. Las espaldas de los servos deben estar alineadas al ras con la parte posterior de la batería.
5. Coloque la breadboard perpendicularmente en el espacio abierto en la batería. Debería colgar sobre la parte delantera de la batería solo un poco y se extenderá más allá de cada lado. Asegúrese de que esté bien sujeto antes de continuar. La "A" La fila debe estar más cerca de los servos.
6. Adjunte el microcontrolador arduino a la parte superior de los servos. Si adjuntas los servos correctamente, debe haber un espacio plano hecho por ellos tocando. Stick The Arduino Board en este espacio plano para que los conectores de alimentación y USB de Arduino se enfrenten a la parte posterior (lejos de la tabla de pan). El frente del arduino debe estar apenas superponiendo la placa.
7. Pon las ruedas en los servos. Presione firmemente las ruedas sobre el mecanismo giratorio del servo. Esto puede requerir una cantidad significativa de fuerza, ya que las ruedas están diseñadas para que se ajusten lo más firmemente posible para la mejor tracción.
8. Conecte el lanzador a la parte inferior de la placa. Si termina el chasis, debe ver un poco de tabla de pan que se extiende más allá de la batería. Conecte el lanzador a esta pieza extendida, utilizando los elevadores si es necesario. El lanzador actúa como la rueda delantera, lo que permite que el robot gire fácilmente en cualquier dirección.
Parte 2 de 6:
Cableado del robot1. Romper con dos encabezados de 3 pines. Usted utilizará estos para conectar los servos a la placa. Empuje los pasadores hacia abajo a través del encabezado para que los pasadores salgan a una distancia igual en ambos lados.
2. Inserte los dos encabezados en los pines 1-3 y 6-8 en la fila E de la tabla. Asegúrese de que estén firmemente insertados.
3. Conecte los cables de servo a los encabezados, con el cable negro en el lado izquierdo (Pines 1 y 6). Esto conectará los servos a la placa. Asegúrese de que el servo izquierdo esté conectado al encabezado izquierdo y el servo derecho hacia el encabezado derecho.
4. Conecte los cables del puente rojo de los pines C2 y C7 a los pasadores de rieles rojos (positivos). Asegúrate de usar el riel rojo en la parte posterior de la placa (más cerca del resto del chasis).
5. Conecte los cables del puente negro de los pines B1 y B6 a Blue (Terreno). Asegúrate de usar el riel azul en la parte posterior de la placa. No los conectes a los pasadores de riel rojo.
6. Conecte los cables del puente blanco de los Pines 12 y 13 en el Arduino a A3 y A8. Esto permitirá al Arduino controlar los servos y girar las ruedas.
7. Conecte el sensor a la parte delantera de la placa. No se conecta a los rieles de alimentación externa en la tabla de breads, sino en la primera fila de pines letras (J). Asegúrese de colocarlo en el centro exacto, con un número igual de pines disponibles en cada lado.
8. Conecte un cable de puente negro del pin I14 al primer pasador de riel azul disponible a la izquierda del sensor. Esto marcará el sensor.
9. Conecte un cable de puente rojo del pin I17 al primer pasador de riel rojo disponible a la derecha del sensor. Esto alimentará al sensor.
10. Conecte los cables de puente blanco del pin I15 a Pin 9 en el Arduino, y de I16 a Pin 8. Esto alimentará información del sensor al microcontrolador.
Parte 3 de 6:
Cableado de la potencia1. Flip el robot de su lado para que pueda ver las baterías en el paquete. Orígalo para que el cable de la batería salga a la izquierda en la parte inferior.
2. Conecte un cable rojo al segundo resorte de la izquierda en la parte inferior. Asegúrese de que la batería esté orientada correctamente.
3. Conecte un cable negro a la última primavera en la parte inferior derecha. Estos dos cables ayudarán a proporcionar el voltaje correcto al Arduino.
4. Conecte los cables rojos y negros a los pines rojos y azules lejanos en la parte posterior de la tabla de la tabla. El cable negro debe estar enchufado al pasador de riel azul al pin 30. El cable rojo debe estar enchufado al pasador de riel rojo al pin 30.
5. Conecte un cable negro del pin GND en el arduino al riel azul trasero. Conectelo al pin 28 en el riel azul.
6. Conecte un cable negro desde el riel azul trasero al riel azul delantero al pin 29 para cada. Hacer no Conecte los rieles rojos, ya que probablemente dañará al Arduino.
7. Conecte un cable rojo de la parte delantera Riel rojo al pin 30 al pin de 5V en el arduino. Esto proporcionará poder a los arduino.
8. Inserte el interruptor de pulsador en el espacio entre las filas en los pasadores 24-26. Este interruptor le permitirá apagar el robot sin tener que desenchufar la alimentación.
9. Conecte un cable rojo de H24 al riel rojo en el siguiente pasador disponible a la derecha del sensor. Esto alimentará el botón.
10. Use la resistencia para conectar H26 al riel azul. Conéctelo al PIN directamente al lado del cable negro que conectó hace unos pasos.
11. Conecte un cable blanco de G26 a Pin 2 en el Arduino. Esto permitirá al Arduino registrar el botón de empuje.
Parte 4 de 6:
Instalación del software Arduino1. Descarga y extrae el IDE arduino. Este es el entorno de desarrollo de Arduino y le permite programar instrucciones que luego puede cargar en su microcontrolador Arduino. Puedes descargarlo gratis desde arduino.CC / EN / PRINCIPAL / SOFTWARE. Descomprima el archivo descargado haciendo doble clic y mueva la carpeta dentro de una ubicación fácil de acceder. No estarás instalando el programa. En su lugar, simplemente lo ejecutará desde la carpeta extraída haciendo doble clic arduino.exe.
2. Conecte la batería al Arduino. Conecte la toma de batería hacia atrás en el conector del arduino para darle energía.
3. Conecte el arduino a su computadora a través de USB. Las ventanas probablemente no reconocerán el dispositivo.
4. prensa . ⊞ ganar+R y tipo Devmgmt.msc. Esto lanzará el administrador de dispositivos.
5. Haz clic derecho en el "Dispositivo desconocido" en el "Otros dispositivos" sección y seleccione "Actualizar el software del controlador." Si no ve esta opción, haga clic en "Propiedades" En su lugar, seleccione la "Conductor" pestaña, y luego haga clic en "Actualizar controlador."
6. Seleccione "Navega por mi computadora para el software del conductor." Esto le permitirá seleccionar el controlador que viene con el IDE arduino.
7. Hacer clic "Navegar" Luego navega a la carpeta que extraiste antes. Encontrarás un "conductores" carpeta dentro.
8. Selecciona el "conductores" Carpeta y click "OK." Confirme que desea continuar si le advierten sobre software desconocido.
Parte 5 de 6:
Programando el robot1. Inicie el IDE Arduino haciendo doble clic en el arduino.exe Archivo en la carpeta IDE. Serás recibido con un proyecto en blanco.
2. Pegue el siguiente código para hacer que su robot sea recto. El código de abajo hará que su Arduino continuamente avance.
#include // esto agrega el "Servo" Biblioteca al programa // El siguiente crea dos SERVO ObjectsServo LeftMotor-Servo RightMotor-Void Configuración () {LeftMotor.Adjunte (12) - // Si cambió accidentalmente los números de PIN para sus servos, puede intercambiar los números hererightmotor.Adjuntar (13) -} LOOP VOID () {LeftMotor.Escriba (180) - // con rotación continua, 180 dice que el servo se mueva a toda velocidad "hacia adelante."rightmotor. Escribe (0) - // Si ambos son ambos en 180, el robot irá en un círculo porque los servos se volcan. "0," le dice que se mueva la velocidad completa "hacia atrás."}
3. Construir y cargar el programa. Haga clic en el botón de flecha derecha en la esquina superior izquierda para construir y cargar el programa al Arduino conectado.
4. Añadir la funcionalidad de matanza del interruptor. Añadir el siguiente código a la "bucle vacío ()" sección de su código para habilitar el interruptor de matanza, sobre el "escribir()" funciones.
Si (DigitalRead (2) == High) //, esto se registra cuando se presiona el botón en el Pin 2 del Arduino {MIENTRAS (1) {LEFTMOTOR.escribe (90) - // "90" es la posición neutral para los servos, lo que les dice que detengan a los recurrentesRightMotor.escribe (90) -}}}
5. Sube y prueba tu código. Con el código de interruptor de muerte agregado, puede cargar y probar el robot. Debe continuar conduciendo hacia adelante hasta que presione el interruptor, en qué punto dejará de moverse. El código completo debería verse así:
#include // lo siguiente crea dos configuraciones de SERVOSSSERVO LEFTMOTOR-SERVO DERECHOTOR-VOIDO () {LEVTTORTOR.Adjuntar (12) -RightMotor.adjuntar (13) -} bucle vacío () {if (digitaldread (2) == alto) {while (1) {lieftotor.Escribir (90) -RightMotor.Escribir (90) -}}} IZQUIERDO.Escribir (180) -RightMotor.escribe (0) -}
Parte 6 de 6:
Ejemplo1. Seguir un ejemplo. El siguiente código utilizará el sensor adjunto al robot para que gire a la izquierda siempre que encuentre un obstáculo. Vea los comentarios en el código para detalles sobre lo que hace cada parte. El código a continuación es todo el programa.
#include servo lieftmotor-servo rightmotor-const int serialperiod = 250 - // este resultado de los límites a la consola a una vez cada 1/4 SecondSigned TimeSerialDelay = 0-Const INT Loopperiod = 20 - // Esto establece con qué frecuencia toma un sensor Lectura a 20 ms, que es una frecuencia de 50Hzunsigned Long TimeloopDelay = 0 - // Esto asigna las funciones de TRIG y ECHO a los pines en el Arduino. Haga ajustes a los números aquí si conectó diferenciadamenteCONT INT ultrasonic2trigpin = 8-Const ultrasonic2echopin = 9-int ultrasonic2distance-int ultrasonic2duración - // Esto define los dos estados posibles para el robot: conducir hacia adelante o girar a la izquierda # define drive_forward0 # define thene_left1int estado = drive_forward- // 0 = Conduzca hacia adelante (predeterminado), 1 = gire la configuración de la izquierda () {serial.Comience (9600) - // Estos pines Sensor ConfigurationspinMode (ultrasonic2trigpin, salida) -pinmode (ultrasonic2echopin, entrada) - // Esto asigna los motores al pinsleftmotor arduino.Adjuntar (12) -RightMotor.adjuntar (13) -} bucle vacío () {if (digitaldread (2) == alto) // Esto detecta el interruptor de matanza {while (1) {lieftotor.Escribir (90) -RightMotor.Escriba (90) -}}} DebugOutput () - // Esto imprime mensajes de depuración a la consolación serie (Millis () - TimeloopDelay >= bucleperiod) {readultrasonicsensorssors () - // Esto le indica al sensor que lea y almacene la distantestatemachine medida medida () - TimeloopDelay = Millis () -}} Void Statemachine () {if (State == Drive_forward) // Si no se detectan obstáculos {if (ultrasonic2distance > 6 || ultrasonic2distance < 0) // si no hay nada delante del robot. La ultrasonicista será negativa para algunos ultrasonidos si no hay obstáculo {// Drive ForwardRightMotor.escribir (180) -leftmotor.Escribir (0) -} MOSS / FIE Si hay un objeto frente a nosotros {State = Turn_Left -}} otra cosa si (estado == turn_left) // Si se detecta un obstáculo, gire a la izquierda {no firmado largo tiempo de timetoturnleft = 500- / / se quita alrededor .5 segundos para convertir 90 grados. Es posible que deba ajustar esto si sus ruedas son de un tamaño diferente a la exembolso de Long TurnStartTime = Millis () - // Ahorre el tiempo que comenzamos a pasar el paso ((Millis () - TurnStartTime) < timetoturnleft) // permanecer en este bucle hasta que TimeToturnLeft haya transcurrido {// gire a la izquierda, recuerde que cuando ambos estén configurados en "180" se girará.rightmotor.escribir (180) -leftmotor.Escribir (180) -} State = Drive_Forward -}} Void Readultrasonicsensorssors () {// Esto es para Ultrasonic 2. Es posible que deba cambiar estos comandos si usa un sensor diferente.DigitalWrite (Ultrasonic2Trigpin, High) -Delaymicrosegundos (10) - // Mantiene el pin del trígido alto para al menos 10 microsegundsdigitalwrite (ultrasonic2trigpin, baja) -ultrasonic2duración = pulsión (ultrasonic2echopin, alta) -ultrasonic2distance = (ultrasonic2duración / 2) / 29-} // lo siguiente es para errores de depuración en la consola.Void DebugOutput () {if (Millis () - TimeSerialDelay) > serialperiod) {serial.impresión("ultrasonic2distancia: ")-De serie.Imprimir (ultrasonic2distance) -Serial.impresión("cm")-De serie.Println () - TimeSerialDelay = Millis () -}}
Video
Al utilizar este servicio, se puede compartir información con YouTube.