Presentación de ALPHABOT
- 1. ALPHABOT
- 1.1 Ventajas
- 1.2 Desventajas
- 1.2.1 Ojo con las baterías 18650
- 1.3 DIY
- 1.4 Configuración
- 1.5 Vaya programación cutre!
- 1.6 GPIO
- 1.7 PWM
- 1.8 Kit de prestamo
1. ALPHABOT
¿Qué buscamos?
Para hacer el rover marciano tenemos unas características que cumplir y resolver con ¿Arduino? ¿Raspberry? ...
- Control a distancia desde Internet:
- Con Arduino resulta complejo tener un control del dispositivo via remoto, es fácil via Bluetooth pero se busca un control totalmente remoto.
- Con Raspberry es mucho más sencillo, el sistema operativo por excelencia es Linux y es un SO pensado para controlar remotamente.
- Una vídeocámara esencial para ver el paisaje marciano que queremos ver:
- Con Arduino es muy dificil
- Con Raspberry es muy fácil, está preparado para ello y hay software libre que nos da soporte.
- Motores, sensores, brazo robótico ...
- Con Arduino es fácil
- Con Raspberry tiene:
- Desventajas, necesitas electrónica entre las GPIO y los sensores o motores, es decir no permite conexiones directas con la Raspberry como ya has visto, luego necesitamos de un kit comercial que nos falicile las cosas.
- Ventajas pues programamos en la misma Raspbery como ya has visto
Conclusión
Hay que utilizar una Raspberry con un kit robótico que permita lo que queremos conseguir.
Si pones las palabras Raspberry y Robot en cualquier buscador verás que hay muchas opciones y kits comerciales.
Elegimos el kit Alphabot para hacer nuestro rover marciano, pues veremos en VENTAJAS que sirve tanto para Raspberry y Arduino y tiene una buena dotación de sensores, en contra tiene importantes defectos de diseño, esto lo veremos en DESVENTAJAS pero con el precio que tiene, no se puede pedir más.
Una vez elegido el kit comercial, nos tenemos que ajustar al soporte que proporciona el fabricante y vemos que están escritos en Python un lenguaje muy adecuado en la enseñanza del pensamiento computacional, con muchas posibilidades y ajustado al nivel de nuestros propósitos.
¿Qué incluye el kit comercial ALPHABOT?
- Raspberry PI3+ con la opción de añadir un Arduino. Puede ir con uno de los dos o ambos. En este curso sólo trabaremos con la Raspberry.
- Dos motores con el L298P driver ¿Qué es eso? Pues parecido al L293 míralo aquí. Proporciona 2A a los motores y tienen diodo de protección para manejarlos con seguridad.
- Dos sensores de IR de proximidad no tienen tanta precisión como los sensores de ultrasonidos, pero hacen su función para evitar obstáculos. Hay posibilidad de añadir un sensor de Ultrasonidos (no incorporado pero lo veremos aquí)
- Sensores de paso en los motores por lo tanto control de velocidad y de recorrido.
- Control remoto por IR con su mando, lo que aumenta nuestra posibilidad creativa.
- Módulo con 5 sensores sigue-líneas con un TLC1543 conversor Analógico Digital que lo veremos detenidamente.
- Brazo robótico con dos servos que permiten trabajar didácticamente con este importante elemento.
- Cámara web que añade una importante gamificación al kit, y al trabajar con la Raspberry en vez de con el Arduino, su control vía web es fácil, podemos ver nuestro paisaje marciano si tenemos conexión con el robot.
Fondo: Paisaje de Marte tomado por el Curiosity © NASA
1.1 Ventajas
Ventaja 1: Raspberry, Arduino o ambos
Lo primero que nos gustó es su versatilidad de que sirve tanto para ARDUINO, como para la RASPBERRY. Tiene un regulador LM2596 que proporciona una tensión estable de 5V para las dos placas. En la figura puedes ver que simplemente cambiando los jumpers amarillos de lugar decides quien actúa el Arduino o la Rasbperry, incluso los dos a la vez !! puedes hacer que los motores vayan con Arduino y los sensores con Raspberry.
Incluso deja en la parte superior los conectores del Arduino con la posibilidad de poner una Shield.
Opción Arduino
Para trabajar con el Arduino tiene en la parte trasera dos conectores exclusivos:
- 11=Conexión por UART (comunicación universal transmisor/receptor, asíncrono ) para poner un módulo Bluetooth por ejemplo un JY-MCU HC-06 igual que en el curso Arduino de Aularagón aquí esto posibilita utilizar Alphabot con el móvil o incluso con la voz
- 12=Una interface SPI para conectar un módulo wifi NRF24L01, no obstante recomendamos para usar wifi usar Raspberry
Opción Arduino+ RASPBERRY
Tiene un interruptor UART SWITCH que permite establecer una comunicación serie entre Raspberry y Arduino, conectando D1 del Arduino con P TX de Raspberry y D0 del Arduino con P RX de Rasperry.
Opción sólo Raspberry
En este curso SÓLO VAMOS A TRABAJAR CON LA RASPBERRY por lo tanto no trabajaremos con el conector UART pues la Raspberry ya tiene Bluetooth y Wifi integrados.
Ventaja 2: Buena relación prestaciones/precio (no calidad/precio)
Nosotros no somos comerciales, ni intermediarios, sólo somos formadores. Cuesta aproximadamente unos 100€ se puede conseguir en: (ojo, que hay modelos sin Raspberry o con Raspberry)
Ventaja 3 Pilas 18650
No son las "normales AA o AAA" pero proporcionan 3.7V y más de 1.000mAh cada una lo que asegura la alimentación del robot+raspberry de forma autónoma, esto es importante si lo vamos a dejar en marte :
Fuente: Fotomontaje del original NASA.gov
¿Los rovers reales que pilas usan?
Pues.... atómicas, aquí vemos la cápsula de Plutonio-238 de 4.5Kg (el Pu-239 es el que se usa en las bombas atómicas) de la Curiosity que permite que este rover siga vivo desde 2011.
De Idaho National Laboratory - fuel module, CC BY 2.0
¿Por qué?
Porque generan calor.
En los rovers marcianos, al principio usaban paneles solares, pero las tormentas de arena hacen malas jugadas llenándolos de polvo (ya vistes lo que le ha pasado a la Spirit) por lo tanto ahora usan estas pilas atómicas.
Utilizan la diferencia de temperatura entre este bloque radiactivo y el medio para generar electricidad con un fenómeno que se llama Termopila donde una soldadura de cobre y hierro a diferente temperatura genera electricidad. En la Curiosity proporciona 2.5kWh/dia frente a los 0.58 kWh de los paneles solares de las Mars. A medidad que se va descomponiendo el Plutonio pierde potencia, pero eso será dentro de 14 años que proporcionará 0.1kWh.
La sonda Cassini, La Galileo, New Horizons... también usan este tipo de pilas, incluso las Voyager que siguen vivas desde 1977.
Los rovers lunares usan paneles solares, pero como la luna carece de atmósfera, las noches lunares son gélidas para la electrónica y necesitan de estas pilas atómicas pero para generar calor.
Animated gif of the Yutu rover driving on to the lunar surface. Image: CCTV
1.2 Desventajas
Es importante que las conozcas:
Primera desventaja: CUIDADO CON LAS PILAS 18650
No son tan peligrosa como las pilas de Plutonio-238, pero tienen sus peligros. Le dedicamos una página especial
Segunda desventaja: No se puede utilizar la fuente de alimentación de la Raspberry con el chasis de abajo montado
Esto es importante mientras estamos programando este robot, hacer pruebas y depuraciones sin utilizar las pilas (son un engorro, sólo hay que ponerlas cuando ya lo tenemos todo depurado).
Se puede utilizar la fuente de alimentación de la Raspberry (output 3.000 mA) pero para conectarlo hay que quitar la placa de abajo
Y por supuesto levantar el robot para que no salga disparado conectado con el cable, que los motores trabajen en vacío y entonces sí que la fuente de alimentación lo puede soportar:
Tercera desventaja: FALLOS EN EL DISEÑO:
- Del brazo de robot, el pie no se ajusta bien a la placa y tampoco a la cámara web (en las fotos las flechas amarillas) Ver Chapuzas nº 1, 2 y 3 de DIY.
-
El brazo robot está situado demasiado hacia delante, lo que dificulta la posibilidad de colocar un sensor de Ultrasonidos en la parte delantera, esto lo hablaremos en este punto.
-
El acceso a la tarjeta microSD es difícil, una manera es utilizando unas pinzas de depilar (ver foto) o desmontando la tapa inferior.
- Otro defecto es la colocación del siguelíneas atrás del sentido de la marcha, esto lo veremos en el capítulo correspondiente y lo solucionaremos haciendo que vaya hacia atrás, pero claro, la cámara enfoca a la parte trasera y pierde su gracia.
Cuarta desventaja: La documentación en Internet no es muy amplia y buena.
- Al menos hay una wiki más o menos útil: https://www.waveshare.com/wiki/AlphaBot pero no encontramos ejemplos de uso en la red
En resumen
Las desventajas de diseño se sufren en el momento de montarlo y las baterías hay que tener cuidado con respetar la polaridad, pero la desventaja más importante es como hemos visto anteriormente, no se puede acceder a la alimentación por USB con la tapa inferior montada luego tenemos dos opciones: * Alimentar Alphabot con las pilas. (única opción cuando está en movimiento). * Desmontar la tapa inferior y alimentarlo por USB. Si elegimos esta opción hay que dejar las ruedas en alto para que los motores trabajen en vacío.
Como el método de trabajo es programar (quitar tapa, pues las baterías no duran todo el rato que se está en la programación) y probar (poner tapa pues está en movimiento) este kit puede resultar...
1.2.1 Ojo con las baterías 18650
Son las baterías que podemos encontrar en los portátiles, coches eléctricos... son de Litio, por lo tanto no tienen el efecto memoria de las Ni-Mh de las pilas recargables y tienen una alta capacidad.
¿Por qué no se utilizan en vez de las pilas recargables si son mejores?
Porque son PELIGROSAS :
EXPLOSIÓN
Puedes ver qué pasa con un simple cortocircuito, imagínate esta explosión en un recinto cerrado, en una linterna, en un armario... o peor: con tus alumnos
El vídeo es más impresionante : https://www.youtube.com/watch?v=ZTzEHsJVZhA
La 18650 del mClon viene montado dentro de la caja PowerBank
¿Por qué? Por estos peligros, para evitar su manipulación. Si abres la caja powerbank y conectas la batería al revés o dejas que lo manipulen los alumnos es tu responsabilidad.
Si alguna vez quieres reciclar las baterías del portatil, tienes que evitar estos cortocircuitos, su explosión puede causar daños graves ver
Estas baterías no son aptas para que el alumnado los manipule luego en Alphabot ES IMPORTANTE QUE LAS BATERÍAS SÓLO LO MANIPULE EL DOCENTE.
CUIDADO CON NO INTERCAMBIAR LA POLARIDAD
OJO ESTAS PILAS SON PELIGROSAS SI SE CORTOCIRCUITAN O NO SE RESPETA LA POLARIDAD, PUEDEN LLEGAR INCLUSO A EXPLOTAR. Y para complicarlo, no se ve bien (los símbolos + y - de las 18650 soy muy pequeños) y en Alphabot hay una contradicción, los símbolos de fuera en la placa no coinciden con los símbolos de dentro grabados en el portapilas ¿cuales son los verdaderos?: Los de fuera. Para que quede claro aquí tienes un dibujo:
CUIDADO CON LAS COMPRAS
Se pueden encontrar en tiendas online con cargador incluido. pero hay que tener precauciones.No te fies de las muy baratas, pues hay algunas que son falsas, LES PONEN HARINA..
BATERIAS PROTEGIDAS Y NO PROTEGIDAS
¿Qué es eso de la protección? La protección no quiere decir que estas protegido frente a una explosión, sino que están protegidas frente a que se descarguen del todo o esten mucho tiempo cargandose, alargando la vida de la batería. Añaden un chip entre la batería y el exterior que desconecta la batería cuando se alcanza valores críticos tanto por abajo cerca del 0% de carga como por arriba cerca del 100%.
Algunas están protegidas, pero lo normal es que no. Aquí para ver si la pila es protegida o no.
Las del AlphaBot NO ESTAN PROTEGIDAS ¿Por qué? porque las protegidas miden 67mm y no caben tiene que ser de 65 mm.
Las del mClon NO ESTAN PROTEGIDAS ¿Por qué? porque no caben en la caja powerbank, tiene que ser de 65 mm
1.3 DIY
Este robot es delicado y difícil de montar, hemos elaborada este pequeña guia de montaje o puedes hacer caso a la guia oficial que te puedes descargar aquí
Ojo, que quede bien claro que nosotros estamos para ayudarte en tu formación, no somos comerciales de este robot. O sea, ésto mejor que no:
Pero te queremos animar:
Nomenclatura:
- Parte delantera: La que tiene la cámara.
- Parte trasera la que tiene el siguelíneas.
El Paquete de piezas
Encontramos todas estas piezas, destacamos: * Placa de raspberry con microSD, pincho adaptador y fuente de alimentación (no fotografiado) * Tornillería abundante algunos tornillos son minúsculos.
Vamos a por ello (Advertencia: empieza si tienes tiempo por delante):
Los motores
Ponemos primero los dos soportes:
Atornillamos el motor con los tornillos largos
conectamos el motor
repetimos los mismos pasos con el otro motor.
Medidor de velocidad
Ponemos la rueda de agujeros para el medidor de velocidad:
Tiene que ir en este agujero van muy ajustados luego no es necesario atornillarlos. ACONSEJAMOS NO METERLOS AÚN sino después de colocar el brazo robótico
conectamos el sensor:
con la placa
Sensor de siguelíneas
Hay tres tipos de barras, elegimos siempre las largas (no sé para que sirven las pequeñas)
atornillamos en la parte trasera del robot
Conectamos
y aún no atornillamos, tiene que ir atornillado al final, cuando pongamos la tapa inferior. El sensor tiene que estar atrapado con el tornillo entre la barra y la tapa inferior. Esta foto es para que veas cómo tiene que quedar al final, pero aún no lo hagas:
Sensor distancia IR
Colocamos un tornillo de plástico que servirá de arandela aislante pues si no se hace, al atornillar hace un cortocircuito y el sensor no funciona bien:
utilizando los tornillos un poco más largos:
Atornillamos en la parte delantera en los agujeros extremos :
Conectamos
Y por abajo también:
Arduino (opcional)
Si decidimos conectar un Arduino ahora es el momento:
Raspberry
Antes de colocarlo:
Pasamos el cable de la cámara por la ranura de la placa del robot para que salga al exterior:
Ponemos el cable de la cámara, levantamos el plástico negro sin arrancarlo:
Y colocamos el cable, con el lado azul tal como está en la foto y volvemos a apretar el plástico negro para que fije el cable a la Raspberry:
Ahora ya podemos colocar la Raspberry en el zócalo de los GPIO: (si además tienes puesto un Arduino, queda el Arduino entre la Raspberry y la placa).
Aprovechamos y ponemos las barras largas para proteger los distintos elementos (Las 2 barras de la parte delantera pueden ir en esa posición o en los otros dos agujeros más adelantados).
Brazo robótico
Esta parte es la más difícil !!!
De momento algo sencillote: Conectar los servos CABLE MARRÓN A GND pasando los cables por el mismo agujero que están los cables de conexión del sensor de velocidad y el de proximidad:
El servo de abajo tiene que colocarse en esta pieza
entra ajustado pero entra:
colocamos la otra pieza:
Utilizamos los tornillos largos pero no los más largos y estrechos sino este:
Atornillamos:
Para el servo de arriba utilizamos un tornillo de punta pequeño:
Lo atornillamos en los dos lados del servo:
Y lo colocamos con la otra pieza:
CHAPUZA 1
Ahora vemos que la pieza de brazo del servo no se ajusta al hueco
La palabra "chapuza" es típica española, y también estos cuchillos albaceteños:
Los españoles estamos entrenados a resolver situaciones chapuzas:
El tornillo es uno en punta con arandela soldada:
CHAPUZA2
La parte que tiene que unir el servo de abajo con la plataforma de la placa tiene que ser con un brazo de servo QUE NO ENTRA:
Pero los maños no nos rendimos:
Esto no sé si está en los libros de ingeniería !!
Aún así hay que rebajar un poco más en los lados para que entre bien el brazo del servo blanco, puedes ver en la foto como con el cuchillo se ha rebajado un poco más a los lados para que la pieza blanca esté lo más prieta a la negra:.
Bien atornillado por la parte reversa (Nota: tendrás que agrandar los agujeros de la pieza blanca, un truco es utilizar un tornillo de punta, atornillarlo y destornillarlo):
Utilizando los tornillos finos y cortos:
Es un buen momento para colocar la cámara. Levantamos la pieza negra sin arrancarla:
Ponemos el cable con el lado azul mirando hacia la cámara como en la foto y volvemos a colocar la pieza negra:
Truco: Al encender el robot, tiene que encenderse un led rojo de la cámara. Si no es así es que has conectado la cinta mal.
CHAPUZA3
Mete la cámara a presión y verás: ¡¡ Es más grande la cámara que el soporte !!. Queda torcido, no es muy estético pero está bien sujeto:
Ahora viene el PUNTO DÉBIL DE ESTE ROBOT la unión del brazo robótico con la placa. Ponemos el servo de abajo con la plataforma:
Utilizaremos un tornillo con arandela soldada:
Y bien apretado pero sin reventar el servo, ojo:
Ahora utilizaremos los tornillos más largos con tuerca que lo utilizaremos de arandelas o tuercas de plástico y tuerca normal :
CHAPUZA4
¿Por qué utilizar la arandela de plástico? porque si no se utiliza, las tuercas hacen cortocircuitos con las soldaduras de la placa, luego necesitamos levantar un poco la plataforma del brazo robótico de la placa:
Atornillamos los 4 (por eso decíamos que no había que poner los sensores de velocidad aún) :
Y ponemos las 4 tuercas por la parte de atrás bien prietas OJO SE NECESITA MAÑA abstenerse los que no tengan uñas y dedos gordos:
Ahora ya podemos colocar los sensores de velocidad, que no hace falta atornillarlos pues entran muy ajustados y prietos:
Tiene que quedar que vean bien los agujeros de las ruedas:
Ruedas
Ponemos la rueda loca en la parte trasera:
Atornillamos
Ponemos las ruedas traseras, las pilas:
Acuérdate de poner bien los jumpers amarillos !!:
Y fin !! ha sido difícil pero piensa que en la realidad cuesta más:
1.4 Configuración
- INSTALAR SISTEMA OPERATIVO Tienes que instalar el sistema operativo Raspbian en la micro tarjeta SD (que ya tiene Python) para ello tienes que seguir los pasos de los apuntes de los apuntes Raspberry muy básico. Concrétamente el capítulo 3 si quieres manejar este robot via red local. Pero si además quieres controlar este robot remotamente por Internet, entonces te recomendamos intalar la imagen de Raspbian con los scripts de remote.it para poderlo manejar remotamente. Ver Capítulo 11-2 opción A
- CONECTARLO VIA WIFI Una vez instalado tienes que conectar la Raspberry a la wifi, para ello sigue los pasos marcados en el capítulo 4.
- OPCIONAL : COMUNICACIÓN VIA TEXTUAL Es interesante y útil comunicarte con la Raspberry via texto por SSH, cambiar el usuario, contraseña, y aprender a apagar por comando.
- OBLIGATORIO COMUNICACIÓN VIA GRÁFICA Es el método que se usará en este curso, por VNC lo tienes explicado en el capítulo 8.
¿Cómo ejecuto un programa?
Vía VNC de forma gráfica, creas un fichero con extensión .py le das dos cliks y ya está !! Se abre el editor de Python para que escribas tus programas. (pues Raspbian tiene Python de forma nativa). Se ejecuta con el botón Play (redondo verde de la figura) y se para con el rojo. Esta será la forma de trabajar en este curso. OJO ESTAMOS HABLANDO DEL ESCRITORIO DE LA RASPBERRY que desde tu ordenador lo estas viendo por VNC.
También se puede hacer de forma textual con el protocolo SSH ejecutando la orden python. Por ejemplo: Tenemos un programa llamado miprograma.py en la carpeta Aphpabot de la Raspberry luego las instrucciones serían en el terminal ssh:cd ~/AlphaBot/
sudo python miprograma.py
Desde Internet
El curso se puede hacer perfectamente desde LA RED LOCAL accediendo a la Raspberry por una IP fija tal y como hemos explicado en los enlaces del principio de esta misma página.
Pero es educativo aprender a usar este rover totalmente a distancia desde Internet, simplemente sustituyendo la IP de la Raspberry por la dirección que nos proporciona Remote.it siguiendo estos pasos por lo tanto es recomendable instalar de antemano el sistema operativo con los comandos de Remote.it ya preinstalados.
O sea: ¿Puedo manejar mi Alphabot en Marte si ponen Internet? Si. No es ciencia ficción, hay un plan para poner Internet en la luna en 2024.
De NASA/JPL/Cornell University, Maas Digital LLC, Dominio público
1.5 Vaya programación cutre!
Si eres un programador, te recomiendo que no sigas el curso, yo no soy un experto y seguro que estoy cometiendo muchos errores.
Hay dos formas de programar: sencilla pero no profesional y profesional pero no sencilla, pero, al igual que los coches, si funcionan bien, los dos llegan al destino.
Sólo nos falta poner el botijo 😁
#LaViñetaEconómica de #ElDespertarLiberal de @MasDeUno con @carlos__alsina en @OndaCero_es #Buenísima - @HUMORJMNIETO en @abc_es pic.twitter.com/GYpRgBETPi
— Carlos Rodríguez Braun (@rodriguezbraun) March 8, 2021
Como este curso está orientado para ayudar a los docentes a aplicar la robótica en el aula, preferimos ser sencillos pero que se entienda. Se admite comentarios, propuestas y los programas están en este Github para mejorar depuraciones.
Puedes optar por la programación profesional, en la página https://www.waveshare.com/wiki/AlphaBot tienes Software demo que te puedes descargar y puedes hacer las mismas propuestas, está programado en Python y utilizando programación orientada a objetos POO:
1.6 GPIO
Vamos a recordar lo que vimos aquí, dos cosas:
- Estos son los pines GPIO con la numeración BCM:
- Están diseñados para 3.3V sólo proporcionan 3mA cada pin luego NO conectes diréctamente componentes de 5V ni que consuman más corriente o de lo contrario ESTROPEARÁS LA RASPBERRY DE FORMA IRREVERSIBLE, o sea, directamente sólo LEDs con una resistencia de mínimo 1.1K tal y como vimos aqui, todo lo demás a través de chips drivers, por eso utilizamos este kit comercial.
En nuestro rover la conexión es la siguiente:
Librería RPI.GPIO
Necesitamos una librería GPIO que Raspbian lo tiene por defecto, pero por si acaso ejecuta estas instrucciones:
sudo apt-get install python-dev
sudo apt-get install pyton-rpi.gpio
Normalmente te dirá que las tienes instaladas en su última versión.
Para utlizar la librería, simplemente tenemos que poner esta instrucción:
import RPi.GPIO as GPIO
GPIO.setmode y GPI.setup
Hay dos formas de utilizar la numeración de las GPIO, respetando la misma numeración que los pines de la placa, entonces la instrucción que tenemos que poner en nuestros programas es GPIO.setmode(GPIO.BOARD)
o utilización de la numeración BCM GPIO.setmode(GPIO.BCM)
nosotros elegiremos esta última por ser más sencilla, aunque tiene la desventaja de que si cambian en el futuro la numeraciones en los BCM nuestro programa no servirá.
Una vez definido qué numeración usamos, tenemos que especificar en nuestro programa si tal GPIO es entrada o salida, por ejemplo la siguiente instrucción define el GPIO número 4 como entrada (7 en numeración BOARD) GPIO.setup(4, GPIO.IN)
¿Qué es lo que hay conectado en cada puerto GPIO de este rover?
Pues aquí lo tienes, cada uno lo vamos a ver a lo largo de este curso :
Interfaces | Puertos GPIO de la Raspberry Pi nomenclatura BCM |
---|---|
IN1 motores | 12 |
IN2 motores | 13 |
ENA motores | 6 |
IN3 motores | 20 |
IN4 motores | 21 |
ENB motores | 26 |
Sensor velocidad derecha | 7 |
Sensor velocidad izquierda | 8 |
Sensor IR obstáculos derecha | 16 |
Sensor IR obstáculos izquierda | 19 |
Sensor IR mando distancia | 18 |
Siguelineas CS | 5 |
Siguelíneas Clock | 25 |
Siguelíneas Address | 24 |
Siguelíneas DataOut | 23 |
Servo brazo eje X | 22 |
Servo brazo eje Z | 27 |
Ejemplo de utilización de la librería RPI.GPIO
El siguiente ejemplo enciende un LED puesto en el GPIO 4, durante 2 segundos
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.OUT) ## GPIO 4 como salida
GPIO.output(4,True) ##encendemos
time.sleep(2) ## espera 2 segundos
GPIO.output(4,False) ##APAGAMOS
No lo hagas pues en el 4 de este rover no hay puesto nada, mira el plano esquemático y en P4 (pin 7 real del conector RPI1) no hay nada conectado.
1.7 PWM
¿Qué es?
Para entender el funcionamiento de los motores, primero tenemos que hablar de esta señal especial.
La RASPBERRY igual que el ARDUINO (ver cap 2.4 curso Arduino) no es capaz de generar señales ANALÓGICAS. Un truco es generar una señal cuadrada de pulsación variable PWM (Pulse Width Modulation, Modulación de Ancho de Pulso) de esta forma "simula" una señal analógica.
¿Cómo se genera utilizando PYTHON y los pines GPIO?
Se realiza primero creando una variable especial PWM con la instrucción:
p = GPIO.PWM(canal, frecuencia) donde canal es el número de pin GPIO donde queremos generar la señal PWM de frecuencia dada en Hz
Con esto está creado pero no genera los pulsos, para eso se hace con la instrucción:
p.start(dc) donde dc=duty cycle en % es decir desde 0.0 hasta 100.0, por ejemplo en la figura anterior, la a) sería dc=25 el b) dc=50 y la gráfica c) sería un dc=75.
Para parar p.stop()
Please! ¿Un ejemplo?
Claro, vamos a ver un ejemplo sencillo que es encender un LED cada 2 segundos en el GPIO número 12:
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(12, GPIO.OUT) #definimos el GPIO12 como salida
p = GPIO.PWM(12, 0.5)
p.start(50)
Tampoco lo hagas en nuestro rover, pues en 12 está IN1 que controla los motores y ya veremos cómo se usa eso dentro de poco.
1.8 Kit de prestamo
Si haces el curso, está disponible este préstamo para que lo puedas hacer: