Tabla de contenido:

Robot de mendicidad con seguimiento facial y control por controlador Xbox - Arduino: 9 pasos (con imágenes)
Robot de mendicidad con seguimiento facial y control por controlador Xbox - Arduino: 9 pasos (con imágenes)

Video: Robot de mendicidad con seguimiento facial y control por controlador Xbox - Arduino: 9 pasos (con imágenes)

Video: Robot de mendicidad con seguimiento facial y control por controlador Xbox - Arduino: 9 pasos (con imágenes)
Video: ALIEN ISOLATION LOCKDOWN IN SPACE 2024, Noviembre
Anonim
Image
Image
Instalación y configuración de OpenCV y C ++
Instalación y configuración de OpenCV y C ++

Vamos a hacer un robot de mendicidad. Este robot intentará irritar o llamar la atención de las personas que pasan. Detectará sus rostros e intentará dispararles láser. Si le das una moneda al robot, cantará una canción y bailará. El robot necesitará un arduino, una transmisión en vivo de una cámara y una computadora para ejecutar openCV. El robot también podrá ser controlado por un controlador xBox si está conectado a la PC.

Paso 1: los materiales

Hardware Electrónico

  • Arduino NANO o UNO
  • Cámara USB 2.0
  • Cables de puente (macho y hembra)
  • 2 x Servo - Genérico (tamaño sub-micro)
  • 2 x LED - CÁTODO RGB 5mm
  • 2 láseres de 5 mW
  • 1 x LED rojo de 5 mm
  • 1 x tablero
  • Resistencia de 4 x 220Ω
  • 1 x resistencia de 1 KΩ
  • 1 x protoboard
  • 1 x sensor de sonda 4 pines
  • Controlador de Xbox

Analógico de hardware

  • Caja de madera (15 x 15 x 7 cm)
  • Pegamento
  • Cinta eléctrica

Software

  • IDE de Arduino
  • Estudio visual 2017
  • 3Ds Max (o cualquier otro software de modelado 3D)
  • Preform 2.14.0 o posterior
  • OpenCV 3.4.0 o posterior

Instrumentos

  • Equipo de soldadura
  • Sierra y taladro
  • Cortador de cables

Paso 2: Instalar y configurar OpenCV y C ++

Instalación y configuración de OpenCV y C ++
Instalación y configuración de OpenCV y C ++

Paso 2.1: Obtener el software

Visual Studio 2017: Descargar Visual Studio Comunity 2017openCV 3.4.0 Win pack: Ir a la página oficial de descargas

Paso 2.2: Instalación de OpenCV2.2.1: Extraiga el archivo zip en su unidad Windows (: C). 2.2.2: Vaya a la configuración avanzada del sistema. Esto se puede encontrar en su función de búsqueda de win10.2.2.3: Necesitamos configurar nuevas variables ambientales. Localice el entorno "Ruta" y presione editar. 2.2.4: Ahora tenemos que agregar la ubicación del "mapa de bin" a una nueva variable en el entorno Ruta. Si instaló openCV en su unidad C, la ruta puede ser así: C: / opencv / build / x64 / vc14 / bin Pegue la ruta y presione "Aceptar" en todas las ventanas que haya abierto durante este proceso.

Paso 2.3: configurar Visual Studio C ++ 2.3.1: Cree un nuevo proyecto visual de C ++. Conviértalo en un proyecto de aplicación de consola win32 vacío.2.3.2: En la pestaña de archivos de origen, haga clic con el botón derecho y agregue un nuevo archivo C ++ (.cpp) y asígnele el nombre "main.cpp".2.3.3: Haga clic con el botón derecho en el proyecto- en el Explorador de soluciones y seleccione Propiedades. 2.3.4: Necesitamos agregar un Incluir directorios adicionales. Esto se puede encontrar en la pestaña C / C ++ en general. Copie la siguiente ruta: C: / opencv / build / include y péguelo detrás de "AID" y haga clic en aplicar. 2.3.5: En la misma ventana necesitamos seleccione la pestaña "Vinculador". en general, necesitamos crear otros directorios de bibliotecas adicionales. Pega la siguiente ruta detrás de "AID" C: / opencv / build / x64 / vc14 / lib y presiona aplicar nuevamente. 2.3.6: En la misma pestaña del Vinculador, selecciona la pestaña "Entrada". Y presione "Dependencias adicionales> editar" y pegue el siguiente archivo opencv_world320d.lib y xinput.lib (para el controlador) y presione aplicar nuevamente. Cierre la ventana. Ahora su archivo C ++ está listo para trabajar.

Paso 3: Configuración del Arduino

Configuración del Arduino
Configuración del Arduino
Configuración del Arduino
Configuración del Arduino
Configuración del Arduino
Configuración del Arduino
Configuración del Arduino
Configuración del Arduino

Encuentro con los servos: Los servos son capaces de girar ~ 160 ° Necesitan tener entre 4, 8 y 6, 0 voltios para funcionar normalmente El servo tiene 3 pines: tierra, 4, 8 - 6, pin de 0 voltios y un alfiler. Para nuestro proyecto, vamos a configurar los pines de datos para los servos en DigitalPin 9 y 10.

Encuentro con los leds RGB: Los leds RGB tienen 4 pines: rojo, verde, azul y pin de tierra. Para ahorrar espacio en el arduino, podemos conectar los 2 leds RGB juntos. Entonces solo usaremos 3 pines. Podemos conectar y soldar los leds RGB en un protoboard como en la imagen. Pin rojo => DigitalPin 3 (PWM) Pin verde => DigitalPin 4 Pin azul => DigitalPin 7

Encuentro con el zumbador piezoeléctrico: nuestro pequeño robot va a hacer algo de ruido. ¡Para hacer esto, necesitamos darle una voz! Podemos optar por hacerlo realmente ruidoso. O podemos poner una resistencia de 220Ω antes del zumbador piezoeléctrico para hacerlo un poco menos desagradable. Dejamos el zumbador piezoeléctrico en la placa de pruebas. Así que no hay necesidad de soldar. Conectamos el pin de datos (+) al DigitalPin 2 y el pin de tierra a tierra en la placa de pruebas.

Encuentro con el sonar: para evitar que el robot intente apuntar a una persona que se encuentra a 10 metros de distancia. Podemos darle al robot un rango de distancia desde donde podrá apuntar a las personas. Hacemos esto con un sensor de sonar. VCC => 5 voltTrig => DigitalPin 6Echo => DigitalPin 5GND => tierra

Encuentro con el detector de monedas: vamos a hacer un detector de monedas. El detector de monedas funcionará detectando si el circuito está cerrado o roto. Casi funcionará como un interruptor. Pero debemos tener cuidado. Si hacemos esto mal, nos costará un arduino. Primero: Conecte AnalogPin A0 a un cable de 5 voltios. Pero asegúrese de poner una resistencia de 1KΩ entre ellos. Segundo: conecte un cable a tierra. Podemos soldar inmediatamente los cables y la resistencia al mismo protoboard que los leds RGB, ahora si tocamos los 2 cables juntos el arduino detectará un circuito cerrado. ¡Esto significa que hay una moneda! Encuentro con los láseres de la fatalidad. ¡El robot necesita sus armas para disparar! Para ahorrar espacio, soldé los 2 láseres juntos, encajarán perfectamente en el marco de la cámara. Conéctelos al DigitalPin 11 y a tierra. ¡Dispare, pequeño!

Truco opcional. Podemos poner un LED rojo debajo de la ranura para monedas. Este será un pequeño truco divertido para cuando esté oscuro. Conecte un cable a DigitalPin 8 y coloque una resistencia de 220Ω entre el LED y el cable para evitar que explote. Conecte el pin corto del LED a tierra.

Paso 4: el código C ++

Paso 4.1: Configuración del código main.cpp 4.1.1: Descargue "main.cpp" y copie el código en su propio main.cpp.4.1.2: En la línea 14 cambie el "com" al com que usa arduino. "\. / COM (cambiar esto)" 4.1.3: En la línea 21 y 22, establezca la ruta correcta para los archivos "haarcascade_frontalface_alt.xml" y "haarcascade_eye_tree_eyeglasses.xml" Si openCV está instalado en la unidad C, estos archivos se pueden ubicar aquí: "C: / opencv / build / etc / haarcascades \" Mantenga las barras invertidas dobles o agregue una donde solo haya una.

Paso 4.2: Agregue tserial.hy Tserial.cpp Estos 2 archivos se encargarán de la comunicación entre el arduino y la PC.4.2.1: Descargue tserial.hy Tserial.cpp.4.2.2: Coloque estos 2 archivos en el proyecto directorio. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y seleccione agregar> elemento existente. En la ventana emergente, seleccione los dos archivos que se agregarán.

Paso 4.2: Agregue CXBOXController.hy CXBOXController.h Estos archivos tomarán la parte del controlador del proyecto 4.2.1: En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y seleccione Agregar> elemento existente. En la ventana emergente, seleccione los dos archivos que se agregarán. Los archivos C ++ están configurados.

Paso 5: el código Arduino

Paso 5.1: Biblioteca NewPing5.1.1: Descargue ArduinoCode.ino y ábralo en el IDE de arduino.5.1.2: Vaya a "Sketch> Incluir biblioteca> Administrar bibliotecas".5.1.3: Busque en el cuadro de filtro para "NewPing" e instale esta biblioteca.

Paso 5.2: Biblioteca de pitches 5.2.1: Descargue pitches.txt y copie el contenido de pitches.txt.5.2.2: En el IDE de Arduino presione CTRL + Shift + N para abrir una nueva pestaña. pitches.txt en la nueva pestaña y guárdelo como "pitches.h". El código Arduino ha sido configurado

Paso 6: Impresión 3D y perfeccionamiento de la impresión

Impresión 3D y perfeccionamiento de la impresión
Impresión 3D y perfeccionamiento de la impresión
Impresión 3D y perfeccionamiento de la impresión
Impresión 3D y perfeccionamiento de la impresión

Paso 6.1: Imprima el archivo 3D Abra el archivo printfile.form y verifique si todo está bien. Si todo parece correcto, envía el trabajo de impresión a la impresora, si algo parece o quieres cambiar el modelo. He incluido los archivos de 3Ds Max y los archivos OBJ para que los edite.

Paso 6.2: Refine el modelo 6.2.1: Después de imprimir, remoje los 2 modelos en un 70% de alcohol para eliminar cualquier impresión resedu 6.2.2: Después de imprimir, coloque el modelo al sol durante unas horas para que deje pasar la luz ultravioleta. endurecer el modelo. O puede usar una lámpara UV para endurecer el modelo. Esto debe hacerse porque el modelo será pegajoso.

6.2.3: Retirar el marco de soporte. Esto se puede hacer con un cortador de alambre. O cualquier otra herramienta que pueda cortar plásticos. 6.2.4: Algunas partes de la impresión 3D aún pueden ser blandas. Incluso si el modelo ha estado expuesto a mucha luz ultravioleta, las partes que pueden ser blandas son las que están cerca de los marcos de soporte. Extienda el modelo a más sol de luz ultravioleta para endurecerlo. 6.2.5: Con una "dremel" puede lijar todas las pequeñas protuberancias de la estructura. Puede intentar encajar los servos en el marco. Si no encajan, puede usar la Dremel para lijar el material. hazlo encajar.

Paso 7: construcción de la caja

Construyendo la caja
Construyendo la caja
Construyendo la caja
Construyendo la caja

Paso 7.1: Hacer los agujeros He incluido un plano de la caja en cuestión. El plano no está a la escala, pero todos los tamaños son correctos. 7.1.1: Comience marcando todos los orificios en las ubicaciones correctas. 7.1.2: Perfore todos los orificios. Los orificios más grandes se pueden hacer a medida con una Dremel. 7.1.3: Los orificios cuadrados también se pueden perforar. Pero para hacerlos cuadrados, puede colocar la Dremel con una lima pequeña y esquinas puntiagudas. 7.1.4: Trate de colocar todos los componentes. si encajan, ¡ya está listo! 7.1.5: Tenga cuidado con las astillas de madera. Utilice papel de lija para deshacerse de ellos.

Paso 7.2: Pintura 7.2.1: Comience lijando la tapa. Necesitamos que la pintura se pegue 7.2.2: Coge un paño y ponle un poco de trementina para limpiar la caja 7.2.3: Ahora puedes pintar la caja con pintura en aerosol del color que desees.

Paso 8: Terminando

Terminando
Terminando
Terminando
Terminando
Terminando
Terminando

Ahora tenemos que poner todo en su lugar y dejar que haga su trabajo. Paso 8.1: El detector de monedas 8.1.1: Pegue algunas abrazaderas de metal para el detector de monedas. 8.1.2: Suelde cada cable desde el conector a una abrazadera..3: Pruebe la conexión con una moneda. Si no hay circuito cerrado, suelde los cables más al borde. Paso 8.2: El protoboard y los leds RGB 8.2.1: Coloque el protoboard en la esquina superior derecha y péguelo con cinta adhesiva! 8.2.2: Conecte los leds RGB con los cables del protoboard! 8.2.3: Conecte todos los cables del protoboard al arduino. Paso 8.3: El sensor de sonar8.3.1: Coloque el sensor en los orificios que le hicimos. Si tiene cables de salto macho a hembra, puede omitir 8.3.28.3.2: Corte algunos cables macho y hembra por la mitad y suelde los cables hembra y macho juntos para hacer un solo cable que podamos usar para conectar el sensor al arduino. 8.3.3: Conecte el sensor al arduino

Paso 8.4: Láseres y cámara 8.4.1: Pegue el marco pequeño a la cámara. Asegúrese de que esté en posición vertical 8.4.2: Coloque también los láseres en el marco. ¡Pégalos para que el enemigo no los robe!

Paso 8.5: Los servos y la impresión 3D 8.5.1: Pegue el servo en el orificio de la tapa 8.5.2: Cargue el archivo arduino en el arduino (esto hace que los servos estén en la posición correcta) 8.5.3: Con el servo vino un pequeña meseta redonda. Coloque esto en el servo en la tapa 8.5.4: Coloque la impresión 3D grande en el servo y la meseta y atorníllelos firmemente con un tornillo 8.5.5: Coloque el segundo servo en la impresión 3D pequeña y péguelos juntos. 8.5.6: ¡Coloque la cámara en su lugar y todo estará listo para funcionar!

Paso 9: Inicie el programa

Para iniciar el robot, abra el archivo C ++ en Visual Studio. Asegúrese de estar en "modo de depuración". Cargue el archivo arduino en el arduino. Una vez que se cargue, presione reproducir en Visual Studio. ¡Y el robot disparará y recogerá todas las monedas del mundo!

Recomendado: