Pico-Servo-Driver使用方法

硬件连接

连接Pico的时候,请注意对应方向不要接反。可以观察模块上有USB丝印的一端与Pico的USB接口一端来判断方向(也可以根据模块上的排母的引脚标号与Pico的引脚标号判断)


程序下载

一:树莓派上直接下载 打开树莓派终端,执行:

  1. sudo apt-get install p7zip-full
  2. cd ~
  3. sudo wget https://www.waveshare.net/w/upload/3/31/Pico_Servo_Driver_Code.7z
  4. 7z Pico_Servo_Driver_Code.7z -o./Pico_Servo_Driver_Code.7z
  5. cd ~/Pico_Servo_Driver_Code

二:在资料栏下点击示例程序直接下载即可

树莓派环境使用

c

  • 以下教程为在树莓派上操作,但由于cmake的多平台、可移植的特点,在PC上也是能成功编译,但操作略有不同,需用户自行判断。

进行编译,请确保在c目录:

  1. cd ~/Pico_Servo_Driver_Code/c/

在文件夹中创建并进入build目录,并添加SDK: 其中 ../../pico-sdk 是你的SDK的目录。 我们示例程序中是有build的,直接进入即可

  1. cd build
  2. export PICO_SDK_PATH=../../pico-sdk
  3. (注意:务必写对你自己的SDK所在路径)

执行cmake自动生成Makefile文件

  1. cmake ..

执行make生成可执行文件,第一次编译时间比较久

  1. make -j9

编译完成,会生成uf2文件。 按住Pico板上的按键,将pico通过Micro USB线接到树莓派的USB接口,然后松开按键。接入之后,树莓派会自动识别到一个可移动盘(RPI-RP2),将build文件夹下的main.uf2 文件复制到识别的可移动盘(RPI-RP2)中即可。

  1. cp main.uf2 /media/pi/RPI-RP2/

python

树莓派环境下的使用

  • 1.刷好Micropython的固件,将pico_micropython_xxxxx.uf2 文件拷入pico中(下面Windows教程中有详细介绍)。

官方固件下载

  • 2.在树莓派上打开Thonny IDE (点击树莓派logo -> Programming -> Thonny Python IDE ),你可以在Help->About Thonny查看版本信息

以确保你的版本是有Pico支持包的,同样你可以点击Tools -> Options... -> Interpreter选择MicroPython(Raspberry Pi Pico 和ttyACM0端口
如图所示:

如果你当前的Thonny版本没有pico支持包,输入以下指令来更新Thonny IDE

  1. sudo apt upgrade thonny

3.点击File->Open...->python/Pico_Servo_Driver_Code/python/servo.py,运行脚本即可
实验现象通道一接上舵机,将会从0度旋转到180度,循环三次

Windows环境使用

c

Windows环境按装

下载例程

Pico_Servo_Driver例程

使用例程

注意:下面的图片仅供参考,步骤是一样的。
1. 打开对应C程序文件夹

2. 通过Vs coed打开,并选择对应编译工具

3. 点击编译按键进行编译

4.Pico-Eval-Board上的Reset按键按下可复位Pico,先按下BOOTSEL按键再按下RUN按键后释放Reset按键,Pico可进入磁盘模式无需插拔Pico,并将build文件下的UF2文件拖拽到RPI-RP2盘符中

5.此时Pico开始运行对应程序

代码简析

底层硬件接口

我们进行了底层的封装,由于硬件平台不一样,内部的实现是不一样的,如果需要了解内部实现可以去对应的目录中查看
在DEV_Config.c(.h)可以看到很多定义,在目录:...\c\lib\Config

  • 数据类型:
  1. #define UBYTE uint8_t
  2. #define UWORD uint16_t
  3. #define UDOUBLE uint32_t
  • 模块初始化与退出的处理:
  1. void DEV_Module_Init(void);
  2. void DEV_Module_Exit(void);
  • PWM初始化处理:
  1. void PWM_initialization();
  • 中断处理函数:
  1. void on_pwm_wrap();
  • 定义使用的通道
  1. #define CHANNE_N 0xFFFF // 0x0001表示0通道开启,0x0000表示通道全部关闭
  • 旋转的角度
  1. #define ROTATE_0 1700 //旋转到0°的位置
  2. #define ROTATE_45 3300 //旋转到45°的位置
  3. #define ROTATE_90 4940 //旋转到90°的位置
  4. #define ROTATE_135 6600 //旋转到135°的位置
  5. #define ROTATE_180 8250 //旋转到180°的位置

python

windows环境下的使用

  • 1.按住Pico板上的BOOTSET按键,将pico通过Micro USB线接到电脑的USB接口,待电脑识别出一个可移动硬盘(RPI-RP2)后,松开按键。
  • 2.下载pico_micropython_xxxxx.uf2 文件,复制到识别的可移动盘(RPI-RP2)中

官方固件下载

  • 3.打开Thonny IDE(注意:要使用最新版本的Thonny,否则是没有Pico的支持包的,当前Windows下的最新版本为v3.3.3)
  • 4.点击工具->设置->解释器,如图所示选择Pico及对应的端口


  • 5.文件->打开->servo.py,点击运行即可,如图所示说明程序已经运行:


实验现象与c程序完全相同,这里不再重复