11.3 Web Control

This version uses new-style automatic setup/destroy/mapping

Need to change /etc/webiopi

Imports

import webiopi

Retrieve GPIO lib

GPIO = webiopi.GPIO

---------------------------------------------

Constants definition

---------------------------------------------

Left motor GPIOs

L1=23 # H-Bridge 1

L2=24 # H-Bridge 2

LS=21 # H-Bridge 1,2EN

Right motor GPIOs

R1=25 # H-Bridge 3

R2=8 # H-Bridge 4

RS=25 # H-Bridge 3,4EN

---------------------------------------------

Convenient PWM Function

---------------------------------------------

Set the speed of two motors

def set_speed(speed):

GPIO.pulseRatio(LS, speed)

GPIO.pulseRatio(RS, speed)

---------------------------------------------

Left Motor Functions

---------------------------------------------

def left_stop():

GPIO.output(L1, GPIO.LOW)

GPIO.output(L2, GPIO.LOW)

def left_forward():

GPIO.output(L1, GPIO.HIGH)

GPIO.output(L2, GPIO.LOW)

def left_backward():

GPIO.output(L1, GPIO.LOW)

GPIO.output(L2, GPIO.HIGH)

---------------------------------------------

Right Motor Functions

---------------------------------------------

def right_stop():

GPIO.output(R1, GPIO.LOW)

GPIO.output(R2, GPIO.LOW)

def right_forward():

GPIO.output(R1, GPIO.HIGH)

GPIO.output(R2, GPIO.LOW)

def right_backward():

GPIO.output(R1, GPIO.LOW)

GPIO.output(R2, GPIO.HIGH)

---------------------------------------------

Macro definition part

---------------------------------------------

@webiopi.macro

def go_forward():

left_forward()

right_forward()

@webiopi.macro

def go_backward():

left_backward()

right_backward()

@webiopi.macro

def turn_left():

left_backward()

right_forward()

@webiopi.macro

def turn_right():

left_forward()

right_backward()

@webiopi.macro

def stop():

left_stop()

right_stop()

---------------------------------------------

Initialization part

---------------------------------------------

def setup():

Setup GPIOs

GPIO.setFunction(LS, GPIO.PWM)

GPIO.setFunction(L1, GPIO.OUT)

GPIO.setFunction(L2, GPIO.OUT)

GPIO.setFunction(RS, GPIO.PWM)

GPIO.setFunction(R1, GPIO.OUT)

GPIO.setFunction(R2, GPIO.OUT)

set_speed(0.5)

stop()

---------------------------------------------

Termination part

---------------------------------------------

def destroy():

Reset GPIO functions

GPIO.setFunction(LS, GPIO.IN)

GPIO.setFunction(L1, GPIO.IN)

GPIO.setFunction(L2, GPIO.IN)

GPIO.setFunction(RS, GPIO.IN)

GPIO.setFunction(R1, GPIO.IN)

GPIO.setFunction(R2, GPIO.IN)

results matching ""

    No results matching ""