樹莓派制作遙控小車-新手教程


 

1、樹莓派

2、充電寶

3、小車套件(底盤,車輪,電機,電池座)

6、L298N

4、導線,杜邦線

第一步接線:

 

ENA兩條線接在樹莓派的5、6端口

ENB兩條線接在樹莓派的13、19端口

IN4—IN4分別接在21、22、23、24

Out1 Out2接在左邊的電機

Out3 Out4接在右邊的電機

第二步寫程序:

1、創建文件夾

sudo nano car.py

2、寫代碼

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 #Author  :hstking
 4 #E-mail  :hstking@hotmail.com
 5 #Ctime   :2015/09/21
 6 #Mtime   :
 7 #Version :
 8  
 9  
10 import RPi.GPIO as GPIO
11 import time
12 import sys
13  
14  
15 ####  定義Car類
16 class Car(object):
17     def __init__(self):
18         self.enab_pin = [5,6,13,19]
19 ####  self.enab_pin是使能端的pin
20         self.inx_pin = [21,22,23,24]
21 ####  self.inx_pin是控制端in的pin
22         self.RightAhead_pin = self.inx_pin[0]
23         self.RightBack_pin = self.inx_pin[1]
24         self.LeftAhead_pin = self.inx_pin[2]
25         self.LeftBack_pin = self.inx_pin[3]
26 ####  分別是右輪前進,右輪退后,左輪前進,左輪退后的pin
27         self.setup()
28  
29 ####  setup函數初始化端口
30     def setup(self):
31         print "begin setup ena enb pin"
32         GPIO.setmode(GPIO.BCM)
33         GPIO.setwarnings(False)
34         for pin in self.enab_pin: 
35             GPIO.setup(pin,GPIO.OUT)
36             GPIO.output(pin,GPIO.HIGH)
37 ####  初始化使能端pin,設置成高電平
38         pin = None
39         for pin in self.inx_pin:
40             GPIO.setup(pin,GPIO.OUT)
41             GPIO.output(pin,GPIO.LOW)
42 ####  初始化控制端pin,設置成低電平
43         print "setup ena enb pin over"
44  
45 ####  fornt函數,小車前進
46     def front(self):
47         self.setup()
48         GPIO.output(self.RightAhead_pin,GPIO.HIGH)
49         GPIO.output(self.LeftAhead_pin,GPIO.HIGH)
50  
51 ####  leftFront函數,小車左拐彎
52     def leftFront(self):
53         self.setup()
54         GPIO.output(self.RightAhead_pin,GPIO.HIGH)
55  
56 ####  rightFront函數,小車右拐彎
57     def rightFront(self):
58         self.setup()
59         GPIO.output(self.LeftAhead_pin,GPIO.HIGH)
60  
61 ####  rear函數,小車后退
62     def rear(self):
63         self.setup()
64         GPIO.output(self.RightBack_pin,GPIO.HIGH)
65         GPIO.output(self.LeftBack_pin,GPIO.HIGH)
66  
67 ####  leftRear函數,小車左退
68     def leftRear(self):
69         self.setup()
70         GPIO.output(self.RightBack_pin,GPIO.HIGH)
71  
72 ####  rightRear函數,小車右退
73     def rightRear(self):
74         self.setup()
75         GPIO.output(self.LeftBack_pin,GPIO.HIGH)
76  
77 ####  定義main主函數
78 def main(status):
79     car = Car()
80     if status == "front":
81         car.front()
82     elif status == "leftFront":
83         car.leftFront()
84     elif status == "rightFront":
85         car.rightFront()
86     elif status == "rear":
87         car.rear()
88     elif status == "leftRear":
89         car.leftRear()
90     elif status == "rightRear":
91         car.rightRear()
92     elif status == "stop":
93         car.setup()
94              
95  
96 if __name__ == '__main__':
97     main(sys.argv[1])

 

3、保存並退出

大功告成我們可以開始玩小車了

Sudo python ./car.py front 前進

Sudo python ./car.py rear  后退

Sudo python ./car.py leftFront  左拐

Sudo python ./car.py rightFront  右拐


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM