覆盆子π机器人

  

从小对机器人非常感兴趣,正好身边有一个覆盆子π,平时就当Linux的服务器练练命令行,写写脚本。这次打算把覆盆子π的强大的GPIO都利用起来,做个小机器人。


首先从网上买了机器人相关的配件,主要是驱动机器人移动的电机,L298N电机驱动板,HC-SR04超声波距离探测传感器,机器人车身等配件。用来制作机器人的是覆盆子πB +。此型号一共有40个GPIO口,足以满足入门型机器人的制作要求。


以下是我连接L298N电机驱动板和HC-SR04距离传感器的GPIO针脚示意图。

































覆盆子π驱动电机的主要原理是,通过在电机两极上施加电压使之转动,利用两个针脚之间的高低电平差决定转动方向。


首先为了驱动电机,写了一个关于电动机的类文件。

pi@raspberrypi  ~/机器人/class 美元,cat  motor.py   # !/usr/bin/python   import  RPi.GPIO  as  GPIO   得到time  import 睡眠   import 系统   termios import 操作系统,遥控,时间      time_sleep =1   class 电动机:   ,,,RIGHT =15   ,,,LEFT =16   ,,,RIGHTB =13   ,,,LEFTB =11   ,,,RIGHTPWM =40   ,,,LEFTPWM =38         ,,,def  __init__(自我):   ,,,,,,,GPIO.setmode (GPIO.BOARD)   ,,,,,,,GPIO.setwarnings(假)      ,,,,,,,GPIO.setup (self.RIGHTPWM, GPIO.OUT)   ,,,,,,,self.rightpwm =, GPIO.PWM (self.RIGHTPWM, 500)   ,,,,,,,self.rightpwm.start (0)   ,,,,,,,GPIO.setup (self.RIGHT, GPIO.OUT)   ,,,,,,,GPIO.setup (self.RIGHTB, GPIO.OUT)   ,,,,,,,GPIO.setup (self.LEFTPWM, GPIO.OUT)   ,,,,,,,self.leftpwm =, GPIO.PWM (self.LEFTPWM, 500),   ,,,,,,,self.leftpwm.start (0)   ,,,,,,,GPIO.setup (self.LEFT, GPIO.OUT)   ,,,,,,,GPIO.setup (self.LEFTB, GPIO.OUT)   ,,,,,,,   ,,,def 电动机(rightspeed自我,leftspeed,左,右):,#,initiate 速度   ,,,,,,,self.rightpwm.ChangeDutyCycle (leftspeed * 100), #, leftspeed  0,用1   ,,,,,,,GPIO.output (self.RIGHTPWM,右),,,,,,,,,,,,#,right  True 或是错误的   ,,,,,,,self.leftpwm.ChangeDutyCycle (rightspeed * 100), #, rightspeed  0,用1   ,,,,,,,GPIO.output (self.LEFTPWM,左),,,,,,,,,,,,,,#,left  True 或是错误的   ,,   ,,,,   ,,,def 向前(自我、lspeed rspeed,秒):   ,,,,,,,GPIO.output (self.LEFTB,,假)   ,,,,,,,GPIO.output (self.LEFT,,真的)   ,,,,,,,GPIO.output (self.RIGHT,,真的)   ,,,,,,,GPIO.output (self.RIGHTB,,假)   ,,,,,,,self.motor (rspeed lspeed, 0, 0)   ,,,,,,,if  second 祝辞,0:   ,,,,,,,,,,,time . sleep(第二次)   ,,,,,,,,,,,self.stop ()   ,,,def 停止(自我):   ,,,,,,,self.motor (0, 0, 0, 0)      ,,,def 反向(自我,,lspeed, rspeed,,秒):   ,,,,,,,GPIO.output (self.LEFTB,,真的)   ,,,,,,,GPIO.output (self.LEFT,,假)   ,,,,,,,GPIO.output (self.RIGHT,,假)   ,,,,,,,GPIO.output (self.RIGHTB,,真的)   ,,,,,,,self.motor (rspeed lspeed, 0, 0)   ,,,,,,,if  second 祝辞,0:   ,,,,,,,,,,,time . sleep(第二次)   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

覆盆子π机器人