Diferencia entre revisiones de «Seguidor de Luz»
(→Trabajo a futuro) |
|||
| Línea 47: | Línea 47: | ||
return (num1 - tolerance)>num2 | return (num1 - tolerance)>num2 | ||
| − | Para eliminar las diferencias en las mediciones de los sensores provocadas por la luz ambiente almacenamos | + | Definimos las funciones que retornan el valor de cada uno de los 4 sensores de luz. |
| − | el valor inicial y para eliminar errores de medición de los sensores utilizamos el promedio de 10 mediciones | + | |
| + | Para eliminar las diferencias en las mediciones de los sensores provocadas por la luz ambiente almacenamos el valor inicial de cada sensor y para eliminar errores de medición de los sensores utilizamos el promedio de 10 mediciones. | ||
acumulateTopLight = 0 | acumulateTopLight = 0 | ||
| Línea 69: | Línea 70: | ||
acumulateRightLight += robot.getLight(6) | acumulateRightLight += robot.getLight(6) | ||
rightLight_init = acumulateRightLight /10 | rightLight_init = acumulateRightLight /10 | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
def getTopLight(): | def getTopLight(): | ||
acumulateTopLight = 0 | acumulateTopLight = 0 | ||
| Línea 145: | Línea 95: | ||
acumulateRightLight += robot.getLight(6) | acumulateRightLight += robot.getLight(6) | ||
return (acumulateRightLight/10) - rightLight_init | return (acumulateRightLight/10) - rightLight_init | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
Revisión del 17:11 27 jun 2020
Introducción
Materiales
- Kit Robótico Butia.
- 4 sensores de luz.
- Esfera de Espuma Plast.
- Carton sueco o similares.
- Cinta Aisladora.
- XO/pc con TurtleBots y el Plugin de Butia.
Construcción
Paso 1: Retirar la rueda derecha del Kit butia junto a su soporte.
Paso 2: Unir dos barras de encastre en forma de L y con dos tornillos fijarlas a la rueda.
Paso 3: Recortar un soporte auxiliar para el motor y con cinta aisladora unirlo al la rueda izquierda del robot Butiá.
Paso 4: Cortar un Cuadrado de cartón de 25 cm de lado, realizarle los agujeros correspondientes y con dos tornillos unirlo a la L de barras de encastre.
Paso 5: Tomar media esfera de espuma Plast y pegar con cinta doble faz los cuatro sensores de luz.
Paso 6: Conectar los sensores a los respectivo puertos de la placa Butiá. En este ejemplo : 1 - Arriba, 3 - Abajo, 5 - Izquierda, 6 Derecha.
Paso 7: Recortar dos soportes en cartón para que el robot Butiá permanezca en forma vertical y unirlos al robot.
Implementación
Importamos la librería PyBot
sys.path.insert(0, '/home/olpc/Activities/TurtleBots.activity/plugins/butia')
sys.path.insert(0, "/usr/share/sugar/activities/TurtleBots.activity/plugins/butia")
Importamos el módulo de pybot
from pybot import usb4butia
Generamos una instancia de la placa USB4Butia
robot = usb4butia.USB4Butia() robot.refresh()
Definimos una comprador de dos números aplicando un tolerancia
tolerance = 5000
def isBigger(num1, num2, tolerance):
return (num1 - tolerance)>num2
Definimos las funciones que retornan el valor de cada uno de los 4 sensores de luz.
Para eliminar las diferencias en las mediciones de los sensores provocadas por la luz ambiente almacenamos el valor inicial de cada sensor y para eliminar errores de medición de los sensores utilizamos el promedio de 10 mediciones.
acumulateTopLight = 0
for i in range(10):
acumulateTopLight += robot.getLight(1)
topLight_init = acumulateTopLight / 10
acumulateBottomLight = 0
for i in range(10):
acumulateBottomLight += robot.getLight(3)
bottomLight_init = acumulateBottomLight / 10
acumulateLeftLight = 0
for i in range(10):
acumulateLeftLight += robot.getLight(5)
leftLight_init = acumulateLeftLight / 10
acumulateRightLight = 0
for i in range(10):
acumulateRightLight += robot.getLight(6)
rightLight_init = acumulateRightLight /10
def getTopLight():
acumulateTopLight = 0
for i in range(10):
acumulateTopLight += robot.getLight(1)
return (acumulateTopLight/10) - topLight_init
def getBottomLight():
acumulateBottomLight = 0
for i in range(10):
acumulateBottomLight += robot.getLight(3)
return (acumulateBottomLight/10) - bottomLight_init
def getLeftLight():
acumulateLeftLight = 0
for i in range(10):
acumulateLeftLight += robot.getLight(5)
return (acumulateLeftLight/10) - leftLight_init
def getRightLight():
acumulateRightLight = 0
for i in range(10):
acumulateRightLight += robot.getLight(6)
return (acumulateRightLight/10) - rightLight_init