raspberry pi 遙控車

14
Raspberry Pi 車 •車車4020D034 車車車 4020D037 車車車 4020D063 車車車 4020D068 車車車

Upload: chen-weizhi

Post on 14-Apr-2017

96 views

Category:

Software


5 download

TRANSCRIPT

Meeting

Raspberry Pi 4020D034 4020D037 4020D063 4020D068

1

OutlineL298N GPIO

2

WEB_for_Pi_Car Web_Get_Control_Car Python

PythonPiGETGETup() = 1astern() = 2left () = 3right() = 4stop() = OtherPiGPIOGPIOPi3Wi-FiAP

L298N IN GPIOOUT IC

ENA( ENB )IN1( IN3 )IN2( IN4 )OUT1( OUT3 )OUT2( OUT4 )0XXXX1001010111010111

GPIOIN1 A1 = 36IN2 B1 = 32IN3 A2 = 38IN4 B2 = 40IN1 A3 = 31IN2 B3 = 33IN3 A4 = 37IN4 B4 = 35

6

Import WEB Server GPIO

PORT WEB Server

GPIO

GPIO

get Float

get

9

index.html

get

init

WEB Server

10

index.html get

12

Thank you for listening!

import SimpleHTTPServerimport SocketServerimport RPi.GPIO as GPIO

PORT = 80

# Right frontA1 = 36B1 = 32

# Left frontA2 = 38B2 = 40

# Right rearA3 = 31B3 = 33

# Left rearA4 = 37B4 = 35

# Init SetGPIO.setmode(GPIO.BOARD)GPIO.setwarnings(False)

GPIO.setup(A1, GPIO.OUT)GPIO.setup(B1, GPIO.OUT)

GPIO.setup(A2, GPIO.OUT)GPIO.setup(B2, GPIO.OUT)

GPIO.setup(A3, GPIO.OUT)GPIO.setup(B3, GPIO.OUT)

GPIO.setup(A4, GPIO.OUT)GPIO.setup(B4, GPIO.OUT)

def stop(): GPIO.output(A1, False) GPIO.output(B1, False)

GPIO.output(A2, False) GPIO.output(B2, False)

GPIO.output(A3, False) GPIO.output(B3, False)

GPIO.output(A4, False) GPIO.output(B4, False)

def up(): GPIO.output(A1, True) GPIO.output(B1, False)

GPIO.output(A2, True) GPIO.output(B2, False)

GPIO.output(A3, True) GPIO.output(B3, False)

GPIO.output(A4, True) GPIO.output(B4, False)

def astern(): GPIO.output(A1, False) GPIO.output(B1, True)

GPIO.output(A2, False) GPIO.output(B2, True)

GPIO.output(A3, False) GPIO.output(B3, True)

GPIO.output(A4, False) GPIO.output(B4, True)

def right(): GPIO.output(A1, False) GPIO.output(B1, False)

GPIO.output(A2, True) GPIO.output(B2, False)

GPIO.output(A3, False) GPIO.output(B3, False)

GPIO.output(A4, True) GPIO.output(B4, False)

def left(): GPIO.output(A1, True) GPIO.output(B1, False)

GPIO.output(A2, False) GPIO.output(B2, False)

GPIO.output(A3, True) GPIO.output(B3, False)

GPIO.output(A4, False) GPIO.output(B4, False)

def isfloat(value): try: float(value) return True except ValueError: return False

def RPi_Control(Object, Value): if Object == "CAR" and isfloat(Value): Value = float(Value) if Value == 1: up() return True if Value == 2: astern() return True if Value == 3: left() return True if Value == 4: right() return True stop() return False

class Handler(SimpleHTTPServer. SimpleHTTPRequestHandler): def do_GET(self):

# Open index.html file = open("/home/pi/car/index.html", "r") self.wfile.write(file.read()) file.close()

#self.path value have "?" ex. /?n=10 if "?" in self.path and "&" not in self.path:

#self.path split "?" -> / and n=10 reserved n=10 query_str = self.path.split("?", 1)[1]

#query_str split "=" -> n and 10 #Ctrl_Obj = n Ctrl_Value = 10 Ctrl_Obj, Ctrl_Value = query_str.split("=", 1)

RPi_Control(Ctrl_Obj, Ctrl_Value)

stop()

httpd = SocketServer.TCPServer(("", PORT), Handler)

sa = httpd.socket.getsockname()print "Serving HTTP on", sa[0], "port", sa[1], "..."httpd.serve_forever()

Control Panel

Straight

Astern

Left

Right

OStop