FPV Internet kontrollerad leksak grävmaskin (6 / 10 steg)
Steg 6: Webiopi och kontroll programvara (2)
Slutligen för att använda vår toy behöver vi skapa eller konfigurera vissa filer.
Skapa en mapp
$mkdir /home/pi/cambot
Komma in i mappen
$cd /home/pi/cambot
FIL 1. Stream.sh
Kopiera skriptet. Vi kommer att kalla den stream.sh. Det är bra att köra vår video streaming i bakgrunden. Vi kan förändra andelen enhet, bildupplösning och bildhastighet.
#! / bin/sh
PLUGINPATH = / usr/src/mjpg-streamer-kod/mjpg-streamer
STREAMER = $PLUGINPATH/mjpg_streamer
DEVICE = / dev/video0
UPPLÖSNING = 640 x 480
FRAMERATE = 25
HTTP_PORT = 8001# check för befintliga webbkamera
om [! -e "/ dev/video0"]; sedan
ECHO "stream.sh: fel - ingen/dev/video0 enhet" 2 > & 1 | logger
utgång 2
Fi
#PLUGINPATH = / usr/local/lib
$STREAMER -i "$PLUGINPATH/input_uvc.so -y - n -d $DEVICE - r $RESOLUTION -f $FRAMERATE" -o "$PLUGINPATH/output_http.so - n -p $HTTP_PORT" -b
FIL 2. cambot.py
Skapa en python fil som heter cambot.py
#imports
importera webiopi
# Libreria GPIO
GPIO = webiopi. GPIO
# -------------------------------------------------- #
# Definición constantes #
# -------------------------------------------------- #
# GPIOs fenor IZQUIERDA
L1 = 22 # Izquierda-adelante
L2 = 23 # Izquierda-atras
# GPIOs motor IZQUIERDA
R1 = 13 # izquierda-adelante
R2 = 19 #izquierda-atras
# GPIOs motor pluma
B1 = 25 # arriba
B2 = 26 # abajo
# GPIOs motor brazo
P1 = 24 # arriba
P2 = 16 # abajo
# -------------------------------------------------- #
# Funciones fenor derecho #
# -------------------------------------------------- #
def right_stop():
GPIO.output (L1, GPIO. LÅG)
GPIO.output (L2, GPIO. LÅG)
def right_forward():
GPIO.output (L1, GPIO. HÖG)
GPIO.output (L2, GPIO. LÅG)
def right_backward():
GPIO.output (L1, GPIO. LÅG)
GPIO.output (L2, GPIO. HÖG)
# -------------------------------------------------- #
# Funciones motor izquierdo #
# -------------------------------------------------- #
def left_stop():
GPIO.output (R1, GPIO. LÅG)
GPIO.output (R2, GPIO. LÅG)
def left_forward():
GPIO.output (R1, GPIO. HÖG)
GPIO.output (R2, GPIO. LÅG)
def left_backward():
GPIO.output (R1, GPIO. LÅG)
GPIO.output (R2, GPIO. HÖG)
# -------------------------------------------------- #
# Funciones motor pluma #
# -------------------------------------------------- #
def pluma_stop():
GPIO.output (B1, GPIO. LÅG)
GPIO.output (B2, GPIO. LÅG)
def pluma_sube():
GPIO.output (B1, GPIO. HÖG)
GPIO.output (B2, GPIO. LÅG)
def pluma_baja():
GPIO.output (B1, GPIO. LÅG)
GPIO.output (B2, GPIO. HÖG) ¡
# -------------------------------------------------- #
# Funciones motor brazo #
# -------------------------------------------------- #
def brazo_stop():
GPIO.output (P1, GPIO. LÅG)
GPIO.output (P2, GPIO. LÅG)
def brazo_sube():
GPIO.output (P1, GPIO. LÅG)
GPIO.output (P2, GPIO. HÖG)
def brazo_baja():
GPIO.output (P1, GPIO. HÖG)
GPIO.output (P2, GPIO. LÅG)
# -------------------------------------------------- #
# Definición makron #
# -------------------------------------------------- #
def go_forward():
right_forward()
left_forward()
def go_backward():
left_backward()
right_backward()
def turn_left():
right_forward()
left_backward()
def turn_right():
right_backward()
left_forward()
def stop():
left_stop()
right_stop()
def plumaarriba():
pluma_sube()
def plumaabajo():
pluma_baja()
def brazoarriba():
brazo_sube()
def brazoabajo():
brazo_baja()
def brazoplumastop():
pluma_stop()
brazo_stop()
# -------------------------------------------------- #
# Inicialización #
# -------------------------------------------------- #
def setup():
# Instalación GPIOs
GPIO.setFunction (L1, GPIO. OUT)
GPIO.setFunction (L2, GPIO. OUT)
GPIO.setFunction (R1, GPIO. OUT)
GPIO.setFunction (R2, GPIO. OUT)
GPIO.setFunction (B1, GPIO. OUT)
GPIO.setFunction (B2, GPIO. OUT)
GPIO.setFunction (P1, GPIO. OUT)
GPIO.setFunction (P2, GPIO. OUT)
def destroy():
# Resetea las funciones GPIO
GPIO.setFunction (L1, GPIO. I)
GPIO.setFunction (L2, GPIO. I)
GPIO.setFunction (R1, GPIO. I)
GPIO.setFunction (R2, GPIO. I)
GPIO.setFunction (B1, GPIO. I)
GPIO.setFunction (B2, GPIO. I)
GPIO.setFunction (P1, GPIO. I)
GPIO.setFunction (P2, GPIO. I)
I den här skriften ska vi definiera vilket gpio stift ska användas. Och makron som kommer att användas av en annan fil...
Konfigurationen är enkel. Vi initiera gpio stiften med ut, och vi ändra tillståndet för de olika rörelser med hög eller låg. Jag använde några ord på spanska. brazo = arm, pluma = boom