打印

新手也能搞定!用单片机做个无线电灯开关,机械臂操作超酷炫​

[复制链接]
543|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jerry_jn|  楼主 | 2025-7-16 11:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 jerry_jn 于 2025-7-17 09:55 编辑

作为一个玩了几年单片机的,最近发现很多新手小伙伴总觉得 “做硬件” 是遥不可及的事。其实真不是!今天就带大家从零开始,用单片机做一个能用机械臂按电灯开关的无线控制器,材料好找、步骤简单,手残党也能轻松拿捏~​
先说说为啥要做这个?​
你有没有过这种经历:冬天窝在被窝里不想动,却要爬起来关灯;或者手里拿着东西腾不出手按开关?这个四轴飞行器械臂开关就能完美解决!它不用改装家里的电路,直接用两个小机械臂模拟人手按开关,安全性拉满,租房党也能放心用。​
材料清单(附采购小技巧)
做这个项目不用花大价钱,我列的都是性价比高的基础款:​
主控:STM32F103C8T6 最小系统板(新手选这个准没错,资料多到用不完)​
无线模块:NRF24L01(几十块钱就能搞定双向通信,稳定性远超蓝牙模块)​
机械臂:SG90 舵机 ×2(别看它小,力气大到能轻松按动开关,重量还轻)​
电源:18650 锂电池 + 充电模块(续航超给力,充一次能用半个月)​
其他:杜邦线、面包板、小木板(用来固定机械臂,快递盒剪一块也能凑合用)​
采购小技巧:某多多搜 “单片机新手套装”,经常能捡到带全部零件的套餐,比单买便宜 30%!​
制作步骤(全程无难点,跟着做就行)​
第一步:组装机械臂​
把两个 SG90 舵机用热熔胶固定在小木板上,角度调整成能正好碰到开关按钮(这里可以多试几次,别急着粘死)。记得给舵机臂装上调焦用的小拨片,增加接触面积,按开关更稳。​
第二步:搭建电路​
这一步别怕,照着接线图来就行,错了也不会烧零件(单片机没那么娇气):
STM32 的 5V 引脚接 NRF24L01 的 VCC​
舵机的信号线分别接 PA0 和 PA1​
无线模块的 SCK 接 PB13,MISO 接 PB14(具体看 datasheet,记错了也能调)​
实在不会接线的小伙伴,评论区扣 1,我发你带标注的实物图~​
第三步:写代码(附关键片段)​
不用自己从头写,我把代码精简到了 200 行,新手也能看懂:​

// 舵机转动函数,angle是角度(0-180)​
void Servo_SetAngle(u8 servo, u16 angle){​
    if(servo==1) TIM_SetCompare1(TIM2, angle+500);​
    else TIM_SetCompare2(TIM2, angle+500);​
}​

// 无线接收函数,收到指令就动机械臂​
void NRF24L01_RxHandle(){​
    if(NRF24L01_RxData(rxbuf,32)){​
        if(rxbuf[0]=='1'){ // 开电灯指令​
            Servo_SetAngle(1, 90); // 机械臂1转动90度​
            delay_ms(200);​
            Servo_SetAngle(1, 0); // 复位​
        }​
    }​
}​

完整代码我放在文末的网盘链接里了,直接下载烧录就行,还带详细注释。​
第四步:调试优化​
烧录完代码后先别急着固定,用遥控器(可以用另一个 NRF 模块做个小遥控器,或者直接用手机 APP)测试一下:按 “开” 键时,机械臂能不能准确碰到开关?力度够不够?如果按不动,就把舵机位置再调低 2 毫米,保证一次成功。​
避坑指南(这些错我全踩过)
舵机抖动?把电源换成锂电池,USB 供电容易因为电流不稳导致抖动​
无线距离近?给 NRF24L01 加个小天线,用铜丝弯一个就能增强信号​
机械臂错位?在开关旁边贴一小块海绵,增加缓冲,再也不怕按不准​
成品效果​
做好后你会发现,这小东西简直太香了!躺在床上用遥控器一按,机械臂 “咔哒” 一声就开灯,朋友来家里看到都问在哪买的~ 关键是全程自己动手,成就感直接拉满!

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

11

帖子

0

粉丝