Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
Este proyecto fue posible gracias a Otto y Athens Technical College.
Para comenzar, primero debe comprar el kit en:
Luego siga los pasos en:
Paso 1: Paso uno: Ensamble el robot a partir de las instrucciones
wikifactory.com/+OttoDIY/otto-diy
Este sitio web es donde encontrará las instrucciones de montaje y el código para su robot Otto.
Como puede ver, mezclé y combiné diferentes partes y colores, y usé un bloque de carga portátil para obtener energía en lugar de las 4 baterías AA recomendadas.
Mi altavoz está montado en la parte delantera para facilitar la audición y una espada en el lado derecho para decorar.
Paso 2: Paso dos: Conectar y codificar
Después de ensamblar su robot, cargue Arduino IDE en su computadora y conecte su robot.
En este punto, debería haber descargado los archivos de Otto. Exportarlos directamente a la carpeta de bibliotecas de Arduino.
Esto le permitirá utilizar el código que le ha dado Otto.
Paso 3: Paso tres: finalizar la codificación
Una vez que se extraen sus bibliotecas, deberá ingresar al IDE de Arduino y asegurarse de que sus cargadores de arranque estén actualizados.
Configure su placa en Arduino Nano, su procesador en ATmega328P (Old Bootloader) y su COM en el puerto al que conectó su robot.
Una vez que haya realizado este paso y su código esté listo, presione el botón de carga en la esquina superior izquierda del programa para cargar el código a su robot.
Paso 4: Paso cuatro: Mira
Observa los movimientos enfermizos de tu robot y la voz de canto de la droga.
Dependiendo del código que usaste, puedes hacer que tu robot cante, baile o evite obstáculos.
Este proyecto fue escrito con el código de evitar:
// ------------------------------------------------ -------------------------------------------------- -------------------------------------------------- ----------------- // Otto_avoid boceto de muestra // -------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------- // - Versión de firmware 9 de la APLICACIÓN Otto DIY PLUS (V9) // - Otto DIY invierte tiempo y recursos en el suministro de hardware y código fuente abierto; por favor, apoye comprando kits en (https://www.ottodiy.com) // ------------ -------------------------------------------------- --- // - Si desea utilizar este software con licencia de código abierto, debe contribuir con todo su código fuente a la comunidad y todo el texto anterior debe incluirse en cualquier redistribución // - de acuerdo con la GPL Versión 2 cuando se distribuya su aplicación. Ver https://www.gnu.org/copyleft/gpl.html // -------------------------------- -------------------------------------------------- -------------------------------------------------- --------------------------------- #include // - Biblioteca Otto versión 9 Otto9 Otto; // ¡Este es Otto!
//---------------------------------------------------------
// - Primer paso: Configurar los pines donde están conectados los servos / * --------------- | O O | | --------------- | AÑO 3 ==> | | ----- ------ <== RL 4 | ----- ------ | * / // PIN de SERVO ////////////////////////////////////////////// //////////////////////////////////// #define PIN_YL 2 // servo [0] pata izquierda #define PIN_YR 3 // servo [1] pata derecha #define PIN_RL 4 // servo [2] pie izquierdo #define PIN_RR 5 // servo [3] pie derecho // PINs ULTRASONICOS ////////////// //////////////////////////////////////////////////// ///////// #define PIN_Trigger 8 // TRIGGER pin (8) #define PIN_Echo 9 // ECHO pin (9) // BUZZER PIN /////////////// //////////////////////////////////////////////////// ///////////// #define PIN_Buzzer 13 // PIN BUZZER (13) // PIN DE MONTAJE DEL SERVO /////////////////////// ////////////////////////////////////////////////// // para ayudar a ensamblar los pies y piernas de Otto - enlace de cable entre el pin 7 y GND #define PIN_ASSEMBLY 7 // MONTAJE pin (7) LOW = ensamble HIGH = operación normal /////////////////// //////////////////////////////////////////////////// //-- Variables globales -------------------------------------------/ / /////////////////////////////////////////////////// //////////////////// int distancia; // variable para almacenar la distancia leída desde el módulo del telémetro ultrasónico bool obstacleDetected = false; // estado lógico para cuando el objeto detectado se encuentra a la distancia establecida ////////////////////////////////////// /////////////////////////////// //-- Configuración -------------- ---------------------------------------- // //////// //////////////////////////////////////////////////// ///////// void setup () {Otto.init (PIN_YL, PIN_YR, PIN_RL, PIN_RR, verdadero, A6, PIN_Buzzer, PIN_Trigger, PIN_Echo); // Establecer los pines del servo y los pines ultrasónicos y el pin del zumbador pinMode (PIN_ASSEMBLY, INPUT_PULLUP); // - Pasador de fácil montaje - BAJO es el modo de montaje // ¡Otto despierta! Otto.sing (S_connection); // Otto hace un sonido Otto.home (); // Otto se mueve a su posición de listo delay (500); // espere 500 milisegundos para permitir que Otto se detenga // si el Pin 7 está BAJO, coloque los servos de OTTO en modo de inicio para permitir el montaje fácil, // cuando haya terminado de montar Otto, elimine el enlace entre el pin 7 y GND mientras (digitalRead (PIN_ASSEMBLY) == LOW) {Otto.home (); // Otto se mueve a su posición de listo Otto.sing (S_happy_short); // canta cada 5 segundos para que sepamos que OTTO sigue funcionando delay (5000); // espera 5 segundos}
}
//////////////////////////////////////////////////// ///////////////// // - Bucle principal --------------------------- ------------------ // ////////////////////////////////// ///////////////////////////////////// bucle vacío () {si (obstáculoDetected) {// si hay un objeto a menos de 15 cm, entonces hacemos lo siguiente Otto.sing (S_surprise); // suena una sorpresa Otto.jump (5, 500); // Otto salta Otto.sing (S_cuddly); // sonido a // Otto retrocede tres pasos for (int i = 0; i <3; i ++) Otto.walk (1, 1300, -1); // repite tres veces el comando de retroceso delay (500); // pequeño retraso de 1/2 segundo para permitir que Otto se estabilice // Otto gira a la izquierda 3 pasos para (int i = 0; i <3; i ++) {// repita tres veces Otto.turn (1, 1000, 1); // la demora del comando caminar a la izquierda (500); // pequeña demora de 1/2 segundo para permitir que Otto se establezca}} else {// si no hay nada al frente entonces camine hacia adelante Otto.walk (1, 1000, 1); // Otto camina recto obstacleDetector (); // llamar a la función para comprobar si el telémetro ultrasónico tiene un objeto a menos de 15 cm}} ///////////////////////////////// ////////////////////////////////////// // - Funciones --------- ----------------------------------------- // /////// //////////////////////////////////////////////////// /////////
/ - Función para leer el sensor de distancia y actualizar el obstáculo Variable detectada
void obstacleDetector () {int distancia = Otto.getDistance (); // obtener la distancia del telémetro ultrasónico if (distancia <15) obstacleDetected = true; // verifica si esta distancia está más cerca de 15 cm, verdadero si es más obstáculoDetected = falso; // falso si no lo es}