Paso 6: Ensamble final código y compilar!
Tuvimos nuestra configuración de equipo de sexto sentido como un servidor web y modificar el programa de sexto sentido para escribir un solo carácter en un archivo de texto en el servidor web y acceder a ese archivo desde el frambuesa Pi para leer los valores como insumos para el control del coche.
El archivo de texto simplemente contenía uno de cinco caracteres en la posición actual de cada uno de los cuatro marcadores de colores base:
1, 2, 3, 4, 0
El código de Python en la Raspberry Pi (o el código de C en un Arduino) lee el carácter de la web archivo y descodifica en la acción apropiada para el coche.
Código de sexto sentido puede encontrarse en nuestro repositorio de git:
https://github.EECS.wsu.edu/mblaisde/TPAHRC
Este es el código de Python para la frambuesa Pi que todo lo une.
Pega esto en un archivo de python y ejecutar.
#Hardware Hackathon
#Code 1
# 14/11/15 #Ground -> pin 20 gris
#5V -> pin 2 3.3 # -> pin 1
#receive los datos #! / usr/bin/env python
importación urllib.request
servidor de impresión ("Pi Inicio ejecutar!")
forwardPin = # 17 GPIO pin3 blanco
backwardPin = 23 # perno 5 morado
leftPin = 27 #pin 13 gris
rightPin = #pin 22 15 rojo
de momento importar sueño de RPi importación GPIO importar tiempo
# establecer el modo de GPIO.setmode(GPIO. BCM)
setup() Def:
GPIO.setup (forwardPin, GPIO. HACIA FUERA)
GPIO.setup (backwardPin, GPIO. HACIA FUERA)
GPIO.setup (leftPin, GPIO. HACIA FUERA)
GPIO.setup (rightPin, GPIO. HACIA FUERA)
loop() Def:
Response=urllib.request.urlopen ('http://192.168.1.114/WriteLines.txt')
HTML=Str(Response.Read())-[2:1]
html = html.split("\\r\\n") [: -1]
Print(html)
Print(html[0])
Si (html [0] == "1"):
# Mover remite
GPIO.output (forwardPin, True)
Time.Sleep(.75)
GPIO.output (forwardPin, False)
Imprimir ("HTML 1)
Elif (html [0] == "2"):
# Mover hacia atrás
GPIO.output (backwardPin, True)
Time.Sleep(.75)
GPIO.output (backwardPin, False)
Imprimir ("HTML 2")
Elif (html [0] == "3"):
#/ / Girar a la izquierda
GPIO.output (forwardPin, True)
GPIO.output (leftPin, True)
Time.Sleep(.75)
GPIO.output (forwardPin, False)
GPIO.output (leftPin, False)
Imprimir ("HTML 3 a la izquierda")
Elif (html [0] == "4"):
#/ / Girar a la derecha
GPIO.output (forwardPin, True)
GPIO.output (rightPin, True)
Time.Sleep(.75)
GPIO.output (forwardPin, False)
GPIO.output (rightPin, False)
Imprimir ("HTML 4")
DEF main():
GPIO.setwarnings(False)
Setup()
while(1):
Loop()
Time.Sleep(.1)
Main()