Roomba o sea "Evita obstáculos"
Bueno ahora hay que hacer el típico programa que evite los obstáculos. Ya sabes detectar los obstáculos, ya sabes controlar el movimiento ¿a qué esperas?
Solución
La solución no es única, una propuesta es hacerlo con las librerías que hemos aprendido:
- Ponemos las librerías fichero MOVIMIENTOS.py y MOVIMIENTOSPASO.py en la misma carpeta que vamos a crear este programa y las incorporamos en el programa con import.
- También incorporamos las variables definidas en VARIABLES.py
- Si no detecta nada, que sigua hacia delante.
- Si detecta algo, según los dos o uno, que de unos pasos atrás y que gire.
Solución
Fichero Roomba.py
import RPi.GPIO as GPIO
import time
from VARIABLES import *
import MOVIMIENTOS
import MOVIMIENTOSPASO
while True:
sensorR= not (GPIO.input(DR))
sensorL= not (GPIO.input(DR))
if not(sensorR and sensorL):
MOVIMIENTOS.FORDWARD(50)
if (sensorR and sensorL):
MOVIMIENTOSPASO.BOTH(50,-10,50,-10)
if (sensorR and not(sensorL)):
MOVIMIENTOSPASO.BOTH(50,-5,50,-5)
MOVIMIENTOSPASO.BOTH(40,-5,40,5)
if (not(sensorR) and (sensorL)):
MOVIMIENTOSPASO.BOTH(50,-5,50,-5)
MOVIMIENTOSPASO.BOTH(40,5,40,-5)