zoukankan      html  css  js  c++  java
  • 树莓派制作遥控小车-新手教程

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

  • 相关阅读:
    小白带你学回溯算法
    C#属性默认值设置
    C#属性默认值设置
    《信息学奥赛一本通》分治算法 找数 例题
    《信息学奥赛一本通》 高精度减法。输入两个正整数,求它们的差。
    《信息学奥赛一本通》 高精度减法。输入两个正整数,求它们的差。
    《信息学奥赛一本通》 高精度减法。输入两个正整数,求它们的差。
    《信息学奥赛一本通》回文数(Noip 1999)
    《信息学奥赛一本通》回文数(Noip 1999)
    《信息学奥赛一本通》回文数(Noip 1999)
  • 原文地址:https://www.cnblogs.com/RM-Anton/p/9406805.html
Copyright © 2011-2022 走看看