210| 0
|
[K10项目分享] 行空板K10驱动舵机点亮屏 |
本帖最后由 meiyao 于 2025-2-7 16:01 编辑 行空板K10是一款集成了多种功能的开发板,适用于教学、物联网项目等多种场景,所以它可以做很多好玩的东西。 思路: 利用行空板与自己画的底板连接,插入的方式进行连接,要注意插入时,是有正反方向的,如果插入弄反了,会出现供电与通信不上的情况,还有可能出现烧坏相关元件和K10板的情况。 底板的功能主要是扩展相关的外设作用,上面可以连接1.25mm-2.0MM间距的通用连接器的IIC通信的外设. 底板上面还有一个PCA9685PW芯片,这个芯片可以同时控制多个舵机工作。 底板上面还有一个充电管理芯片,可以进行电池充电和升压功能的功能,可以同时满足K10与外设的工作,但是功率不能超过他的实际设定功率,功率过高会出现不能给其它外设供电不足的情况。 底板上面还有几个按键,是为了方向进行GPIO操作的,用来控制其它功能动作的,还包括充电指示,电源开关的作用。 一、硬件 1、行定板K10。 2、自己设计的底板。 3、舵机 硬件设计与它们的性能: 扩展板3D正面图: ![]() K10底板正面主要的器件是连接作用。 主要是给其它的通信外设进行连接,比如可以进行温度湿度传感器,IIC通信的键盘连接,中间黑色2.54MM的排针主要是给舵机进行连接的,电源和地PWM引脚需要注意方向,不能连接相反,可以并排8个舵机同时工作。 还有三个GPIO按键与一个电源开关,还有一个TYPE C供电输入口。 扩展板3D底部图: ![]() 扩展板3D底部图:主要是电源与PCA9685PW芯片,还包括1117LDO供电芯片。 原理图: ![]() 下图1红框中是2.0MM的连接器, 2黄框中是2.54MM舵机的连接位, 3白框是电源连接器接口, 当然还有与TYPE C并排的1.25连接器。 ![]() 芯片: PCA9685PW 厂商:NXP(恩智浦) 封装:TSSOP28 工作电压范围:2.3V至5.5V 输入/输出容差电压:5.5V 输出电流:25mA(5V时) 技术参数: 产品名称:SG90 9g 小型舵机 (S版) 厂家编号:SG90S 产品尺寸: 23x12.2x29mm 产品扭矩: 1.6kg/cm(4.8V) 反应速度: 0.1sec/60degree(4.8v) 工作电压: 4.8V 使用温度: 0-55度 动作死区: 10us 齿轮介质: 尼龙 工作模式: 模拟 包含: 1 x 9g 小型舵机 (S版) 带摇臂包 ![]() 二、焊接与连接事物图: 焊接完成图: ![]() 上面的图是手工焊接完成的实物照片,正反面照。 未焊接插座图: ![]() 底部图: ![]() 上面的两个是当时焊接过程的照片。 成品连接图: ![]() ![]() 三、代码: 这段代码使用 Adafruit PWM/Servo Driver (PCA9685) 模块来控制一个 16 通道的舵机系统。主要代码引入了必要的库,用于 I2C 通信和 Adafruit_PWMServoDriver.h 用于控制 PCA9685 模块,定义脉冲长度,通过 pwm.setPWMFreq(50); 设置 PWM 频率为 50 Hz,模拟舵机的标准更新频率,代码的主要功能是使舵机按照程序的设定正反工作。四、软件工作流程: ![]() 说明: 开始:程序启动点。 初始化设置:包含一些未执行的M5Stack初始化等,以及后续执行的Wire和pwm初始化相关操作。 设置 I2C 引脚 47,48:通过Wire.begin(47, 48)设置 I2C 通信的引脚。 初始化 PWM 驱动:使用pwm.begin()初始化Adafruit_PWMServoDriver。 设置 PWM 频率为 50Hz:调用pwm.setPWMFreq(50)设置 PWM 频率,以满足模拟舵机约 50Hz 的更新需求。 进入主循环:程序进入loop函数开始循环执行。 遍历 16 通道舵机:通过for循环遍历 1 到 16 通道的舵机。 设置当前通道舵机脉冲为 0.5:调用setServoPulse函数设置当前通道舵机的脉冲为 0.5 。 延迟 500 毫秒:调用delay(500)函数使程序暂停 500 毫秒。 遍历 16 通道舵机:再次通过for循环遍历 1 到 16 通道的舵机。 设置当前通道舵机脉冲为 2.5:调用setServoPulse函数设置当前通道舵机的脉冲为 2.5 。 延迟 500 毫秒:调用delay(500)函数使程序暂停 500 毫秒,之后回到主循环继续执行。 五、实际运行视频: ![]() 屏点亮效果图: ![]() |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed