面包屑图标 当前位置: 首页
AI资讯
热点详情

Arduino遥控气垫船制作教程

AI热点日报
AI热点日报时间:2026-07-06
热点解读

这次想和大家分享一个非常有意思的项目——用433MHz射频模块无线控制一艘Arduino气垫船。通过自制的遥控器和接收器,这艘船可以灵活实现前进、后退、左转、右转。相比于红外遥控,无线电通信的优势很明显:距离更远,而且不需要对准视线。更重要的是,这些模块支持双向通信,虽然我们这个项目只用到了单向控制

这次想和大家分享一个非常有意思的项目——用433MHz射频模块无线控制一艘Arduino气垫船。通过自制的遥控器和接收器,这艘船可以灵活实现前进、后退、左转、右转。相比于红外遥控,无线电通信的优势很明显:距离更远,而且不需要对准视线。更重要的是,这些模块支持双向通信,虽然我们这个项目只用到了单向控制。好了,让我们一步步把它造出来。

可能有人知道,之前已经有不少基于433MHz射频模块的项目,比如射频遥控小车、家用电器控制等等。此外,还有蓝牙控制的树莓派汽车、DTMF手机控制的机器人,但今天的主角是一艘船。

Arduino RC 船所需的组件

  • 433MHz 发射器和接收器
  • Arduino(任何型号,推荐用 Pro Mini 以减小尺寸)
  • HT12E 和 HT12D 编解码芯片
  • 按钮 ×4
  • 电阻 1MΩ、47kΩ
  • L293D 电机驱动
  • 9V 电池(实际用了 7.4V)×2
  • 7805 稳压器 ×2
  • 直流电机 ×2
  • 电机叶片或螺旋桨(可用自制螺旋桨)×2
  • 0.1μF 电容 ×2
  • 普通 PCB

433MHz 射频发射器和接收器模块

这类射频模块在创客圈里非常受欢迎,成本低、连接简单,特别适合短距离通信项目。它们采用 ASK(幅移键控)调制方式——简单说就是通过载波幅度的变化来表示数字信号:发送“1”时发射载波,发送“0”时几乎不耗电。这一特性让它们在电池供电的项目中表现优秀。

433MHZ RF 发射器

这类发射模块体积小巧,通常只有 VCC、GND、DATA 三个引脚(有的还多一个天线引脚)。工作电压范围 3V~12V,没有任何可调元件。最大的优点就是低功耗——发送“0”时几乎不耗电流。

Arduino RC 船发射器框图

上面是发射器的框结构。四个按钮用于控制方向:前后左右。按键信号不能直接喂给编码器,所以中间加了一块 Arduino。可能有人会问为什么不用单片机直接编码?因为我们需要同时拉低编码器的两个并行输入来实现前后运动,单靠按钮做不到。Arduino 读取按钮状态后,将对应的并行数据送给 HT12E 编码器,编码器再转成串行输出,最后由射频发射器发射出去。

发射器电路图

看电路图:四个按钮的一侧分别连到 Arduino 的数字引脚 D6~D9,另一侧全部接地。按下按钮时,对应的引脚变为低电平。另外,HT12E 编码器的四个并行输入接到 Arduino 的 D2~D5,这样 Arduino 就可以灵活决定编码器的输入数据。

HT12E 是一款 12 位并行输入→串行输出编码器。其中 8 位(A0~A7)是地址位,可以用于区分不同的接收端。这里我们只控制一个接收器,所以全部接地。如果以后想用一个遥控器控制多个设备,可以在地址引脚上接 DIP 开关。剩下的 AD8~AD11 是控制位输入,它们会对应控制接收端解码器 HT12D 的 D0~D3 输出。编码器需要外接振荡器,5V 工作时的振荡电阻为 1.1MΩ(振荡频率约 3KHz)。编码器串行输出直接连到射频发射模块的 DATA 脚。

注意:Arduino 和发射模块都工作在 5V,如果用 6~12V 电池直接供电会烧元件。所以加了 7805 稳压器降压到 5V。输入电压可以接 6~12V 的任何电池。

搭建发射器电路

把所有元件焊在一块普通 PCB 上。射频项目容易受干扰,所以连线越短越好,最好用排针连接 Arduino 和发射模块。所有焊点直接焊在铜垫上,避免额外飞线。最后给发射模块焊上一小段天线,可以显著增加遥控距离。在连接 Arduino 和发射模块之前,务必先用万用表确认 7805 输出的电压是 5V。

上图是完成后的发射器顶视图,下图是底视图。

制作遥控器外壳

遥控器需要一个像样的外壳。这一步比较自由,这里分享一下个人做法:用 4mm 厚的 MDF 板(也可以用胶合板、泡沫板或纸板),裁出两块 10cm×5cm 的板子。在板上标记按钮位置,左侧放左右方向键,右侧放前进后退键。另一面将按钮焊接到主控电路上——普通按钮有四个引脚,每侧两个,一个脚接 Arduino 的相应数字引脚,另一个脚接地。如果分不清引脚,用万用表或查数据表确认。

连接完毕后,把控制电路夹在两块 MDF 板之间,用长螺栓固定紧。总之,外壳的创意全凭个人发挥。

433MHz 接收模块

接收模块同样小巧,一般有四个引脚:VCC、GND 和两个数据输出引脚。工作电压 5V,也是低功耗设计。有些模块带天线引脚,但这里用的没有。

接收器框图

工作流程:射频接收模块收到发射信号后输出串行数据,但串行数据不能直接控制电机,所以需要接解码器。HT12D 将串行数据还原成原始的并行数据,这一步不需要单片机,解码器输出可以直接驱动电机驱动 IC。

接收器电路图

HT12D 是一款 12 位串行输入→并行输出解码器。输入引脚接接收模块的串行输出。同样,8 位地址位(A0~A7)必须与发射器端一致,这里全部接地。剩下的 D8~D11 就是输出位。为了匹配振荡频率,需要在振荡引脚上接一个 33~56kΩ 电阻。第 17 脚可以接一个 LED 用来指示有效传输——只有接收器成功锁定发射器时才会亮起。接收器的电源输入也是 6~12V,同样用 7805 降压到 5V。

电机驱动选用 L293D,它可以减小尺寸和重量,而且正好能控制两个电机的正反转。L293D 有 16 个引脚,下面给出引脚排列图。

引脚 1 和 9 是使能端,这里接到 5V 保持电机始终使能。1A、2A、3A、4A 是控制引脚,1A 低、2A 高时电机正转;反之反转。我们将这些控制引脚接到解码器的输出。1Y、2Y、3Y、4Y 是电机连接端。Vcc2 是电机驱动电压引脚,如果电机电压高于 5V,就把 Vcc2 接到对应的电压源。这里用的是 5V 电机,所以 Vcc2 也接 5V。

搭建接收器电路

搭建接收器时,尺寸和重量是关键——毕竟要固定在船上,太重会影响浮力和运动。所以同样用小型通用 PCB,尽量少用飞线。把所有元件紧凑焊接,电机驱动器的引脚 8(Vcc2)直接接 5V。

建造遥控船体

船体材料试过几种,最后发现 thermocol(泡沫板)效果最好。我拿了一块 3cm 厚的 thermocol 板,把接收器电路放在上面,然后划出船的形状并切割出来。当然,船体的造型完全可以按自己的喜好来设计。

电机与螺旋桨

重量再次成为关键,所以电机要选轻巧的。这里用的是 5V、N20 型直流电机,体积小重量轻。为了抑制射频干扰,两个电机输入端各并联一个 0.1μF 电容。

螺旋桨可以用现成的,也可以自制。这里分享一个自制方法:找一小块塑料片,切出两小片,在蜡烛火焰上加热弯曲成形,然后在电机转轴中心钻个小孔固定上去。

Arduino RC 船的工作逻辑

这艘船有两个电机,暂且称为左电机和右电机。当电机顺时针旋转时(取决于螺旋桨安装方向),螺旋桨从前面吸入空气并从后面排出,产生向前的推力。反之,逆时针旋转则产生向后的推力。

  • 向前运动:左右电机都顺时针旋转。
  • 向后运动:左右电机都逆时针旋转。
  • 向左移动:只有右电机旋转,船从右侧获得推力,自然向左转。
  • 向右移动:只有左电机旋转,船从左侧获得推力,向右转。

我们将电机驱动器的四个控制输入连到解码器的输出 D8~D11。发射器端,通过按钮使 AD8~AD11 接地,从而激活对应的输出位。但前后运动需要同时控制两个电机,只按一个按钮做不到,所以发射端用了 Arduino 来组合按键信号。

遥控船的 Arduino 编程

编程部分非常简单,只需要基本的数字 I/O 和逻辑判断。完整程序如下,解释也一并给出。

定义引脚编号:四个按钮输入(f_button、b_button、l_button、r_button)和四个编码器输入控制引脚(m1~m4)。

int f_button = 9;
int b_button = 8;
int l_button = 7;
int r_button = 6;
int m1 = 2;
int m2 = 3;
int m3 = 4;
int m4 = 5;

在 setup() 中,按钮引脚设为输入上拉,控制引脚设为输出。

void setup() {
  pinMode(f_button, INPUT_PULLUP);
  pinMode(b_button, INPUT_PULLUP);
  pinMode(l_button, INPUT_PULLUP);
  pinMode(r_button, INPUT_PULLUP);
  pinMode(m1, OUTPUT);
  pinMode(m2, OUTPUT);
  pinMode(m3, OUTPUT);
  pinMode(m4, OUTPUT);
}

在 loop() 中,用 digitalRead 读取按钮状态。当按钮按下时对应引脚为 LOW,然后执行相应的条件判断。

前进按钮按下:

if (digitalRead(f_button) == LOW) {
  digitalWrite(m1, LOW);
  digitalWrite(m3, LOW);
  digitalWrite(m2, HIGH);
  digitalWrite(m4, HIGH);
}

这会将编码器的 m1 和 m2 拉低(具体对应哪个输出取决于接线),从而激活接收端两个电机同时正转。

后退按钮按下:

if (digitalRead(b_button) == LOW) {
  digitalWrite(m2, LOW);
  digitalWrite(m4, LOW);
  digitalWrite(m1, HIGH);
  digitalWrite(m3, HIGH);
}

左转按钮按下:

if (digitalRead(l_button) == LOW) {
  digitalWrite(m1, LOW);
  digitalWrite(m2, HIGH);
  digitalWrite(m3, HIGH);
  digitalWrite(m4, HIGH);
}

右转按钮按下:

if (digitalRead(r_button) == LOW) {
  digitalWrite(m1, HIGH);
  digitalWrite(m2, LOW);
  digitalWrite(m3, HIGH);
  digitalWrite(m4, HIGH);
}

编译代码后上传到发射端的 Arduino 板。

最后,把船放到水面上测试。如果运动方向不对,试着调换电机极性或螺旋桨的安装方向。另外也要注意船体两侧的重量平衡。

int f_button = 9;
int b_button = 8;
int l_button = 7;
int r_button = 6;
int m1 = 2;
int m2 = 3;
int m3 = 4;
int m4 = 5;

void setup() {
  pinMode(f_button, INPUT_PULLUP);
  pinMode(b_button, INPUT_PULLUP);
  pinMode(l_button, INPUT_PULLUP);
  pinMode(r_button, INPUT_PULLUP);
  pinMode(m1, OUTPUT);
  pinMode(m2, OUTPUT);
  pinMode(m3, OUTPUT);
  pinMode(m4, OUTPUT);
}

void loop() {
  if (digitalRead(f_button) == LOW) {
    digitalWrite(m1, LOW);
    digitalWrite(m3, LOW);
    digitalWrite(m2, HIGH);
    digitalWrite(m4, HIGH);
  }
  if (digitalRead(b_button) == LOW) {
    digitalWrite(m2, LOW);
    digitalWrite(m4, LOW);
    digitalWrite(m1, HIGH);
    digitalWrite(m3, HIGH);
  }
  if (digitalRead(l_button) == LOW) {
    digitalWrite(m1, LOW);
    digitalWrite(m2, HIGH);
    digitalWrite(m3, HIGH);
    digitalWrite(m4, HIGH);
  }
  if (digitalRead(r_button) == LOW) {
    digitalWrite(m1, HIGH);
    digitalWrite(m2, LOW);
    digitalWrite(m3, HIGH);
    digitalWrite(m4, HIGH);
  }
}
热点追踪提示词
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:Arduino遥控气垫船制作教程要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
来源:https://m.elecfans.com/article/1870292.html
Boat

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关热点
AI热点2026-07-06 18:52
AiRial Flights 个人AI旅行顾问轻松预订机票

无论是需要临时出差的商务精英,还是正在筹备家庭旅行、团体出游的组织者,在机票预订过程中,最令人头疼的莫过于在海量信息里反复对比、耗费精力。归根结底,核心目标很简单:快速锁定最理想的航班。 而下面这款工具,恰好就是专为解决这一痛点而设计的。 产品特色 它的核心亮点在于智能与省心——你只需大致描述出行需

AI热点2026-07-06 18:52
故事蜂AI智能在线儿童故事个性化生成平台

为孩子编故事这件事,经常让家长和老师感到为难:既要足够生动有趣,又要巧妙融入知识或道理,时间一长,创作灵感就容易枯竭。那么,有没有一款工具,只需简单提示,就能自动生成贴合孩子年龄和兴趣的故事?StoryBee正是为此设计的——它不像传统的故事生成器那样生硬,而是能灵活适配不同场景,让故事创作变得像聊

AI热点2026-07-06 18:52
AI辅助决策协作工具团队高效决策关键要素

需求人群团队在决策过程中,往往最怕反复争论、信息不对称,最后只能凭主观臆断。Decision Note 正是为破解这类难题而设计的——无论是日常的业务调整,还是影响公司战略方向的关键抉择,它都能提供有效支持。使用场景以具体场景为例:当团队为下一季度的营销策略争执不休时,可以通过 Decision N

AI热点2026-07-06 18:52
WriteMyCoverLetter专业智能辅助求职信的在线写作服务平台

首先来聊聊这款智能语音翻译与日程管理工具适合哪些人——WriteMyCoverLetter的定位非常清晰,无论你是单打独斗的自由职业者,还是带领数十人团队的管理者,在日常工作与生活中它都能发挥实用价值。它提供的是一种AI驱动的智能化辅助服务,帮你高效处理琐碎事务,让工作更顺手。 具体怎么用?适用场景

延伸阅读