树莓派制作遥控小车-新手教程

Posted rm-anton

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树莓派制作遥控小车-新手教程相关的知识,希望对你有一定的参考价值。

 

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  :[email protected]
 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  右拐

以上是关于树莓派制作遥控小车-新手教程的主要内容,如果未能解决你的问题,请参考以下文章

[树莓派] 轻松制作一个遥控小车(C++,Socket)

如何用一部红外遥控器来遥控操作树莓派上安装的影音中心

求助树莓派避障小车,遇到 python 了

使用树莓派DIY个人智能设备

用树莓派的方式打开小米手机:摇晃手机控制小车,前进后退加转弯,成本不到350元 | 开源...

树莓派小车By 树莓派爱好者ITJoker(通过C socket通信实现树莓派视频小车)