Tanquino Pi

Autor

  • Julián Sánchez Fernández

Idea

Para el proyecto final de la asignatura de Sistemas Empotrados y de Tiempo Real me he inspirado en el juego arcade «Tank Force», que publicó la empresa namco en 1991. De manera muy resumida, el juego consiste en controlar un tanque a través de una ciudad y eliminar los tanques enemigos mientras evitas que disparen a tu tanque o destruyan la base.

Pantalla principal del juego
Fotograma del juego

El objetivo es construir un vehículo terrestre que se parezca lo máximo posible a un tanque (al menos en la forma de moverse), tan pequeño como sea posible y que además de poder controlarse a través de WiFi, disponga de una cámara en primera persona que retransmita lo que «ve» el tanque y pueda interactuar con otras réplicas mediante «disparos» de luz infrarroja.

Materiales

ElementoPrecio
Raspberry Pi Zero W10€
Tarjeta microSD 16Gb8€
NodeMCU (clon)3,5€
LED Infrarrojo0,33€
Receptor infrarrojos0,5€
Resistencias varias0,1€
1m de cable0,2€
Conectores USB (2 micro y 1 normal)2€
Motores (x4)7€
Modulo de cámara para Raspberry Pi12€
Tornillería varia (métrica 3)8€
Rollo de plástico ABS 1.75mm (1Kg)14€
Módulo L298N3€
Estaño6€
TOTAL74,63€
Precios de los materiales empleados

Herramientas

HerramientaPrecio
Impresora 3D (Creality Ender 3 pro)250€
Soldador de estaño15€
Powerbank (salida > 1A)17€
Calibre digital (solo necesario para diseño)10€
Conversor UART <-> USB5€
TOTAL297€
Precios de las herramientas utilizadas

Diseño 3D

He diseñado el chasis del tanque y las cadenas completamente en 3D para poder ajustarme mejor al objetivo de que el tamaño del vehículo sea el menor posible y no depender de piezas de terceros.

La herramienta que he usado para hacer el diseño es FreeCAD, el cual se puede usar de forma gratuita y gracias a la parametrización de las piezas, cualquier persona interesada podrá aprovechar, modificar o mejorar el modelo. Las piezas se pueden unir usando únicamente tornillería de métrica 3, aunque también es recomendable disponer de algún tipo de pegamento para plásticos (las pistolas de pegamento termofusible son ideales) para fijar las ruedas a los ejes de los motores y evitar que alguna otra pieza se mueva.

Cada pieza ha sido diseñada a prueba y error a través de múltiples prototipos hasta llegar al modelo final que se puede descargar a continuación. Durante ese proceso ha sido extremadamente útil tener a mano un calibre digital, una calculadora y conocimientos básicos de trigonometría (para el diseño de las ruedas).

Descargar modelo 3D

Modelo 3D del tanque

Configuración Raspberry Pi Zero

Para usar la Raspberry Pi Zero W debemos seguir estos pasos:

1. Grabar la imagen de Raspberry Pi OS en la tarjeta microSD de 16Gb

Podemos seguir cualquiera de estos tutoriales:

https://www.raspberrypi.org/documentation/installation/installing-images/

https://www.youtube.com/watch?v=3VO4vGlQ1pg

2. Habilitar el acceso a la Shell de Linux a través del puerto serie

Podemos seguir cualquiera de estos tutoriales:

https://c2plabs.com/blog/2019/04/23/enable-serial-console-on-raspberry-pi-zero-w/

https://learn.adafruit.com/raspberry-pi-zero-creation/give-it-life

3. Instalar servicios dnsmasq y hostapd

Ejecutaremos en la Raspberry Pi Zero W este comando:

curl -L https://raw.githubusercontent.com/km4ack/pi-scripts/master/autohotspot-buster | bash

Lo primero que nos pedirá introducir será una contraseña, introducimos cualquier cosa que tenga más de 8 letras (la modificaremos en el punto 5) y después nos pedirá que introduzcamos el SSID de nuestro «shack» y su password, con ello se refiere al nombre del WiFi de nuestra casa y su contraseña.

NOTA: Este script nos configura la Raspberry para que si no está el WiFi de nuestra casa dentro del alcance, levante un punto de acceso, por lo que, si queremos que encienda el punto de acceso también cuando esté dentro del alcance de nuestro WiFi, deberemos cambiar su SSID a través del siguiente comando (con el objetivo de que no lo encuentre)

nano /etc/wpa_supplicant/wpa_supplicant.conf

4. Cambiar SSID del punto de acceso a «tanquino pi»

Ejecutamos el siguiente comando en la Raspberry Pi

sed s/ssid=.*$/'ssid=tanquino pi'/g /etc/hostapd/hostapd.conf

5. Cambiar la contraseña del punto de acceso a «seytr2021»

Ejecutamos este comando en la Raspberry Pi

sed s/wpa_passphrase=.*$/'wpa_passphrase=seytr2021'/g /etc/hostapd/hostapd.conf

6. Instalar servidor Samba

Primero ejecutamos el siguiente comando y cuando nos pregunte si queremos modificar smb.conf para usar la configuración WINS, respondemos que no.

sudo apt install samba

Después ejecutamos uno por uno los siguientes comandos para crear un recurso compartido

sudo sh -c 'echo [www] >> /etc/samba/smb.conf'
sudo sh -c 'echo path=/home/pi >> /etc/samba/smb.conf'
sudo sh -c 'echo browseable=yes >> /etc/samba/smb.conf'
sudo sh -c 'echo read only=no >> /etc/samba/smb.conf'
sudo sh -c 'echo writable=yes >> /etc/samba/smb.conf'
sudo sh -c 'echo force user=pi >> /etc/samba/smb.conf'
sudo sh -c 'echo public=yes >> /etc/samba/smb.conf'

7. Copiar archivos a la carpeta compartida «www»

Descargamos los archivos a continuación y nos conectamos a la red «tanquino pi» para copiarlos a la carpeta compartida en red en la dirección 10.10.10.10/www.

arrow.png

camera.py

index.html

script.js

style.css

Configuración NodeMCU

Necesitaremos tener instalado el IDE de Arduino, las placas basadas ESP8266 y posiblemente, los drivers para el chip CH340G (dependerá de si nuestro NodeMCU lo tiene o no)

A continuación, instalamos las siguientes librerías:

Y copiamos en un proyecto arduino el código disponible en este enlace, para después configurar el puerto y placa que estemos utilizando y subirlo.

La interconexión de los componentes se puede ver en el esquema a continuación, los puntos de 5V y GND tienen que ser los mismos que los que usemos para alimentar las placas NodeMCU y Raspberry Pi Zero. La parte inferior del diagrama refleja las direcciones IP que se asignarán a los dispositivos dentro de la red «tanquino pi», la X refleja que la IP es dinámica y no se conocerá el valor de esa parte de la dirección hasta que el dispositivo se conecte.

Esquema eléctrico y de red del proyecto

Imágenes del proyecto

Otros archivos

  • Presentación PDF (link)
  • Memoria ejecutiva (link)

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *