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


    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  右拐

  • 相关阅读:
    PAT 1006 Sign In and Sign Out
    PAT 1004. Counting Leaves
    JavaEE开发环境安装
    NoSql数据库探讨
    maven的配置
    VMWARE 下使用 32位 Ubuntu Linux ,不能给它分配超过3.5G 内存?
    XCODE 4.3 WITH NO GCC?
    在苹果虚拟机上跑 ROR —— Ruby on Rails On Vmware OSX 10.7.3
    推荐一首让人疯狂的好歌《Pumped Up Kicks》。好吧,顺便测下博客园可以写点无关技术的帖子吗?
    RUBY元编程学习之”编写你的第一种领域专属语言“
  • 原文地址:https://www.cnblogs.com/RM-Anton/p/9406805.html
Copyright © 2020-2023  润新知