主要目的是基于树莓派4B,将小车的python2到python3迁移改造,实现各种功能
下面是树莓派的GPIO引脚映射图
参考这个图,确认不同部件的GPIO的引脚连线,需要注意参考2. Basic Recipes — gpiozero 2.0.1 Documentation,gpiozero使用BCM引脚(即板子上标识的GPIO xx引脚),下面的引脚指的是同一个
>>> led = LED(17)
>>> led = LED("GPIO17")
>>> led = LED("BCM17")
>>> led = LED("BOARD11")
>>> led = LED("WPI0")
>>> led = LED("J8:11")
下面是另一种包括wiringPi的管脚对应图
我的小车的引脚配置如下所示,
部件 | 功能及示例程序 | BOARD引脚 | BCM/GPIO引脚 |
---|---|---|---|
按钮 | 作为输入开关,启动或着关闭对应的功能 | 21 | 19 |
buzz | src/new/passive_buzzer.py,外接喇叭播放特定的音乐 | 11 | 17 |
红绿灯 | 板子上固定的红绿灯,可以作实验 | 红25绿24 | 红6绿5 |
舵机 | |||
云台 |
参考WiringPi/WiringPi: The arguably fastest GPIO Library for the Raspberry Pi在树莓派上安装WiringPi
-
参考Simple Guide to the Raspberry Pi GPIO Header - Raspberry Pi Spy确认当前配置的每个部件在树莓派中GPIO的连接方式,填写上面的表格
-
使用gpiozero和wiringpi改造如下程序
- buzzer
- button
- basic movement
- infrad_avoid
- open cv follow hand
- 电机原理可以参考树莓派 3 + L298N模块 驱动直流电机 - 简书,每个电机有3个引脚,两个引脚用来通电,第3只引脚通过PWM的方式控制电机转动的速度,已经封装在gpiozero的Motor类中。具体参考basic_move.py的内容
- 基于adafruit/Adafruit_CircuitPython_PCA9685: Adafruit CircuitPython driver for PCA9685 16-channel, 12-bit PWM LED servo driver chip.实现对PCA9685的控制
- 基于adafruit/Adafruit_CircuitPython_ServoKit: CircuitPython helper library for the PWM/Servo FeatherWing, Shield and Pi HAT kits.和Python & CircuitPython | Adafruit PCA9685 16-Channel Servo Driver | Adafruit Learning System实现对云台的控制