使用合宙air101系统板DIY一个小船

这个故事还得从在校园湖边散步说起……水面上遥控船吸引了我……
视频演示:【划水的瓶子-哔哩哔哩】

材料清单:

合宙air101小板:9.9元

航模有刷电机:5元左右

L298N电机驱动板:6元左右
在这里插入图片描述
蓝牙模块:jdy33,7元左右

航模3s电池或者5-12V充电宝

工具:

热熔胶枪,烙铁,焊锡,杜邦线,剪刀……

功能:

能实现手机控制小船前进后退及行驶速度;超过信号距离,蓝牙断开后,小船停止运动。

硬件连接

在这里插入图片描述
原理:
在这里插入图片描述

代码:原理看注释

--定义限幅函数
function LimitThrust(T)
	if T>100 then
		T=100
	elseif T<0 then
		T=0
	end
	return T
end


function shache()--刹车
	--刹车
--控制电机L转动方向,逆时针
gpio.set(19,0)--PB3-->IN2
gpio.set(21,0)--pB5-->IN1
--上电后,先关闭PWM,
-- pwm.close(1)--关闭PWM0
--控制电机R转动方向,顺时针
gpio.set(1,0)--PA1-->IN3
gpio.set(4,0)--pA4-->IN4
--上电后,先关闭PWM,
-- pwm.close(0)--关闭PWM0
print("刹车,关闭PWM")
end

function qianjin(X,Y)--前进
	local T_start=40   --启动油门,慢慢调,T_start
	local TL=T_start-(50-X)+(Y-50)--左边电机,TL不超过100,得限幅
	local TR=T_start+(50-X)+(Y-50)--右边电机,TR不超过100,得限幅
	--控制电机L转动方向,逆时针,产生拉力
	gpio.set(19,1)--PB3-->IN2
	gpio.set(21,0)--pB5-->IN1
	--控制电机R转动方向,顺时针,产生拉力
	gpio.set(1,0)--PA1-->IN3
	gpio.set(4,1)--pA4-->IN4
	--限制在0-100内
	local speed_L=LimitThrust(TL)-- (0~100)
	local speed_R=LimitThrust(TR)-- (0~100)
	print("speed_L",speed_L)
	print("speed_R",speed_R)
	if speed_L==0 or speed_R==0 then
		pwm.close(0)--关闭PWM0
		pwm.close(1)--关闭PWM1
		print("PWM Close")
	else
		--Suart.write(id,"PWM open "..tostring(speed_x))--此函数只能发送字符串,不能发送数字,发送给手机
		pwm.open(1,50,speed_L,0,100)--占空比为0时,会出问题,所以用if else区分开,左边电机接PWM1
		pwm.open(0,50,speed_R,0,100)--占空比为0时,会出问题,所以用if else区分开,左边电机接PWM0
	end
end

function houtui(X,Y)--后退
	local T_start=40   --启动油门,慢慢调,T_start
	local TL=T_start-(50-X)+(50-Y)--左边电机,TL不超过100,得限幅
	local TR=T_start+(50-X)+(50-Y)--右边电机,TR不超过100,得限幅
	--控制电机L转动方向,顺时针,产生推力
	gpio.set(19,0)--PB3-->IN2
	gpio.set(21,1)--pB5-->IN1
	--控制电机R转动方向,顺时针,产生推力
	gpio.set(1,1)--PA1-->IN3
	gpio.set(4,0)--pA4-->IN4
	--限制在0-100内
	local speed_L=LimitThrust(TL)-- (0~100)
	local speed_R=LimitThrust(TR)-- (0~100)
	print("speed_L",speed_L)
	print("speed_R",speed_R)
	if speed_L==0 or speed_R==0 then
		pwm.close(0)--关闭PWM0
		pwm.close(1)--关闭PWM1
		print("PWM Close")
	else
		--Suart.write(id,"PWM open "..tostring(speed_x))--此函数只能发送字符串,不能发送数字,发送给手机
		pwm.open(1,50,speed_L,0,100)--占空比为0时,会出问题,所以用if else区分开,左边电机接PWM1
		pwm.open(0,50,speed_R,0,100)--占空比为0时,会出问题,所以用if else区分开,右边电机接PWM0
	end
end

RxData={[1]=0,[2]=0,[3]=0,[4]=0,[5]=0,}

function jiexi(rec_data)--解析数据帧
	--由于蓝牙端口或者连接会自动发送数据给串口,这种简单的通信方式会造成错误命令,但也可以利用这个做个保护机制
	--连接成功自动给串口发送:+CONNECTED              对应的RxData[1]=C ,ASSIC码为67。RxData[2]=O , ASSIC码为79。
	--蓝牙断开自动给串口发送:+DISCONNECT             对应的RxData[1]=D ,ASSIC码为68。RxData[2]=I ,ASSIC码为73。
	--解析手机发来的命令
	RxData[1]=string.byte(rec_data,1,1)--帧头OXA5,ASSIC码为165
	RxData[2]=string.byte(rec_data,2,2)--接收数据帧的第二个字符,x轴数据,0~100
	RxData[3]=string.byte(rec_data,3,3)--接收数据帧的第三个字符,y轴数据,0~100
	RxData[4]=string.byte(rec_data,4,4)--校验和,由手机app算好,发送过来
	RxData[5]=string.byte(rec_data,5,5)--帧尾OX5A,ASSIC码为90
end

--根据L298N使用说明,需设置引脚电平控制电机转向,选择
--控制电机L转动方向
--GPIO19-->PB3-->IN2
--GPIO21-->pB5-->IN1
gpio.setup(19, 0)
gpio.setup(21, 0)
--控制电机R转动方向
--GPIO1-->PA1-->IN3
--GPIO4-->pA4-->IN4
--先将引脚设置为输出模式,后续更改输出电平控制转向
gpio.setup(1, 0)
gpio.setup(4, 0)

--设置串口
uart.setup(1,9600)--设置串口1的波特率为9600
--打开串口1的回调函数,当串口1收到数据会自动调function函数
uart.on(1,"receive",function(id,len)
	Rec_data=uart.read(id,len)--将串口收到的数据读出
	jiexi(Rec_data)--解析数据帧
	if  (RxData[1]==165)and(RxData[5]==90)and(RxData[4]==RxData[2]+RxData[3]) then--判断是否为有效数据帧
			--print("x=",RxData[1],"y=",RxData[2])
			local x=RxData[2]
			local y=RxData[3]
			if (x>=0 and x<=100)and(y>=0 and y<=100)then--有效坐标数据
				if y>50 then--摇杆中位以上
					qianjin(x,y)--前进
				elseif (x==50 and y==50) then--摇杆中位
					shache();--刹车
				elseif y<50 then
					houtui(x,y)--后退
				end
			end
	elseif (RxData[2]==67 and RxData[3]==79)or(RxData[2]==68 and RxData[3]==73)  then--如果是蓝牙断开或者连接产生的提示字符串
		shache();--刹车
	end

end)

注意:
1,

--由于蓝牙端口或者连接会自动发送数据给串口,这种简单的通信方式会造成错误命令,但也可以利用这个做个保护机制
	--连接成功自动给串口发送:+CONNECTED              对应的RxData[1]=C ,ASSIC码为67。RxData[2]=O , ASSIC码为79--蓝牙断开自动给串口发送:+DISCONNECT             对应的RxData[1]=D ,ASSIC码为68。RxData[2]=I ,ASSIC码为73

2,调试时,不要上桨叶
3,电机会发烫,全靠热熔胶是不行的

感觉:真不错,100行代码不到搞定

视频:

手机端:

安装app:蓝牙调试器
配置步骤:
1,刷新蓝牙,连接蓝牙
在这里插入图片描述
2,进入专业调试,点击中间弹出,添加工程,进入通信设置,再编辑控件
在这里插入图片描述
通信设置:添加两个字符型变量,命名为 x,y,
在这里插入图片描述
再编辑控件:
添加组件,链接变量,调整组件大小
在这里插入图片描述
弄好返回,自动弹出设置x\y范围,设置为0-100,打开这个开关,摇杆会自动归中
在这里插入图片描述

点击运行:
在这里插入图片描述
可以愉快的玩耍了。

补充:

这个是协议
在这里插入图片描述
设置通信模式:仅操作控件时发生。拒绝无效通信
在这里插入图片描述

有改成其他单片机的需求,联系主页邮箱

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
http://www.amazon.cn/mn/detailApp/ref=sr_1_1?_encoding=UTF8&s=books&qid=1274085146&asin=B0011BY8OG&sr=8-1 小型电子监探装置制作DIY 作者:(美)Brad Graham (美)Kathy McGowan 译者:黄刚 小型电子监探装置制作DIY 基本信息 ·出版社:科学出版社 ·页码:288 页 ·出版日期:2007年04月 ·ISBN:9787030188229 ·条形码:9787030188229 ·版本:第1版 ·装帧:平装 ·开本:16开 产品信息有问题吗?请帮我们更新产品信息。 内容简介 《小型电子监探装置制作DIY》为“图解电子创新制作”丛书之一。全书共十五章,介绍101种小型电子监探装置的制作。主要内容包括监听和录音装置、电话和数码相机的改造、隐蔽摄像及其改造、夜视设备、监听器和信号发射器、计算机监控、无线电频率扫描器、保护和反制设备、激光监探装置以及小型视控间谍机器人等。 作者简介 作者:(美)Brad Graham (美)Kathy McGowan 译者:黄刚 编辑推荐 《小型电子监探装置制作DIY》通过详细的步骤说明,指导读者如何在少花费资金的情况下制作出各种有趣的监探装置。   《小型电子监探装置制作DIY》可作为安防设备研发人员的参考资料,亦可作为电子爱好者的参考书。 目录 1 绪论  关于本书  真相就摆在那里 2 监听和录音  项目1 微型录音机的改造  项目2 超高声音增益的麦克风前置扩音器  项目3 仿生学立体声间谍耳  项目4 抛物线碟盘麦克风  项目5 使用计算机处理音频  项目6 过滤背景噪声  项目7 妙借身体进行录音 3 电话设备改造  项目8 电话音频接口   项目9 自动电话录音机  项目10 通过声音激活的计算机电话记录程序  项目11 超隐秘的电话监听器  项目12 电话输入/输出盒  项目13 通过计算机效果伪装声音  项目14 简单的数字声音伪装电路  项目15 终极电话声音修改器  项目16 让计算机开口讲话  项目 17 全球范围内的电话监听 4 数码相机改造  项目18 增强处理数字照片  项目19 改造数码相机的快门  项目20 手提包中暗藏的数码相机  项目21 数码相机定时拍摄快门  项目22 移动感应的数码相机快门  项目23 数码相机远程瞄准器  项目24 远程数字拍摄系统 5 摄像机和视频  项目25 视频信号基础知识  项目26 录制视频信号  项目27 改造定时录像的VcR设备  项目28 移动感应控制的自动录像机  项目29 多个摄像头的自动切换器  项目30 在计算机上处理视频  项目31 打造网络摄像头 6 隐蔽摄像  项目32 使用微型摄像头  项目33 经典的看护摄像头  项目34 伪装成烟雾警报器的夜视摄像头  项目35 隐秘的记号笔摄像头  项目36 “所见即所得”太阳镜  项目37 远程摄像头  项目38  显微镜摄像头 7 摄像头平移和旋转控制  项目39 摄像头平移和旋转遥控传动装置基座  项目40 遥控传动装置基座  项目41 手动控制的传动装置基座  项目42 微型控制器控制的传动装置基座  项目43 追踪画面移动的摄像头 8 夜视设备 9  监听器和信号发射器 10 视频信号发射器 11 计算机监控 12 无线电频率扫描器 13 保护和反制设备 14 激光监探设备 15 打造小型视控间谍机器人 ……
http://www.amazon.cn/mn/detailApp/ref=sr_1_1?_encoding=UTF8&s=books&qid=1274085146&asin=B0011BY8OG&sr=8-1 小型电子监探装置制作DIY 作者:(美)Brad Graham (美)Kathy McGowan 译者:黄刚 小型电子监探装置制作DIY 基本信息 ·出版社:科学出版社 ·页码:288 页 ·出版日期:2007年04月 ·ISBN:9787030188229 ·条形码:9787030188229 ·版本:第1版 ·装帧:平装 ·开本:16开 产品信息有问题吗?请帮我们更新产品信息。 内容简介 《小型电子监探装置制作DIY》为“图解电子创新制作”丛书之一。全书共十五章,介绍101种小型电子监探装置的制作。主要内容包括监听和录音装置、电话和数码相机的改造、隐蔽摄像及其改造、夜视设备、监听器和信号发射器、计算机监控、无线电频率扫描器、保护和反制设备、激光监探装置以及小型视控间谍机器人等。 作者简介 作者:(美)Brad Graham (美)Kathy McGowan 译者:黄刚 编辑推荐 《小型电子监探装置制作DIY》通过详细的步骤说明,指导读者如何在少花费资金的情况下制作出各种有趣的监探装置。   《小型电子监探装置制作DIY》可作为安防设备研发人员的参考资料,亦可作为电子爱好者的参考书。 目录 1 绪论  关于本书  真相就摆在那里 2 监听和录音  项目1 微型录音机的改造  项目2 超高声音增益的麦克风前置扩音器  项目3 仿生学立体声间谍耳  项目4 抛物线碟盘麦克风  项目5 使用计算机处理音频  项目6 过滤背景噪声  项目7 妙借身体进行录音 3 电话设备改造  项目8 电话音频接口   项目9 自动电话录音机  项目10 通过声音激活的计算机电话记录程序  项目11 超隐秘的电话监听器  项目12 电话输入/输出盒  项目13 通过计算机效果伪装声音  项目14 简单的数字声音伪装电路  项目15 终极电话声音修改器  项目16 让计算机开口讲话  项目 17 全球范围内的电话监听 4 数码相机改造  项目18 增强处理数字照片  项目19 改造数码相机的快门  项目20 手提包中暗藏的数码相机  项目21 数码相机定时拍摄快门  项目22 移动感应的数码相机快门  项目23 数码相机远程瞄准器  项目24 远程数字拍摄系统 5 摄像机和视频  项目25 视频信号基础知识  项目26 录制视频信号  项目27 改造定时录像的VcR设备  项目28 移动感应控制的自动录像机  项目29 多个摄像头的自动切换器  项目30 在计算机上处理视频  项目31 打造网络摄像头 6 隐蔽摄像  项目32 使用微型摄像头  项目33 经典的看护摄像头  项目34 伪装成烟雾警报器的夜视摄像头  项目35 隐秘的记号笔摄像头  项目36 “所见即所得”太阳镜  项目37 远程摄像头  项目38  显微镜摄像头 7 摄像头平移和旋转控制  项目39 摄像头平移和旋转遥控传动装置基座  项目40 遥控传动装置基座  项目41 手动控制的传动装置基座  项目42 微型控制器控制的传动装置基座  项目43 追踪画面移动的摄像头 8 夜视设备 9  监听器和信号发射器 10 视频信号发射器 11 计算机监控 12 无线电频率扫描器 13 保护和反制设备 14 激光监探设备 15 打造小型视控间谍机器人 ……

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值