高配版极速O艇制作教程
第一次写这种小文章,那就废话少说,先上几张图:
接近成品的半成品船
自制的PCB遥控器发送端
焊接过程小插曲
遥控器接收端(支持nrf24l01和蓝牙)
接下来开始正题。
首先先普及一下第一次准备DIY竞速艇所必备的小知识:
1.从船体结构来说:O艇和V艇比较适合竞速,在网上看了些前辈的经验,一般来说O艇更为合适,所以找图纸或设置图纸的时候还是倾向于O艇比较好。
2.电机的选取:要做竞速船就不用考虑有刷啦,选无刷的时候注意不要选成航模的哦(如果你真想竞速的),想要速度暴力点的话就选个大点的电机吧,想快就快,想慢就慢(重点的电机重心稳),不过位置要放好,待会儿说。
3.舵机的选取:不要买最便宜的那种!!!容易坏,拉力也不够。那就会有人问一定要用大舵机吗?答案是否,一边价位20以上的小舵机对付这种场合够了。
4.船的材料:PVC(想要牢固点就买厚点,想要船体轻点就买薄点),船尾因为要钻许多孔最好选择木板(一位船模师兄如是说)。
5.注意协调船内各部件的位置(电机、舵机、电池、电调,电池!!!决胜很关键的因素)。
6.最重要的是,一定要提前试船!!!否则比赛一定完。
接下来说一下遥控的制作:
1.无线模块推荐nrf24l01,有的人也用nrf905,不过我倾向于前者,因为引脚少好焊啊!!!并且传输距离差不多,不过记得选择带天线的模块!发送端带天线,接收端不用天线距离就够了。
2.单片机的选择:推荐51系列的STC12C560S2,与普通的51相比,它带有硬件AD采集
、SPI接口、2路PWM。这些功能完全是为这类场景设计的。
3.程序部分:由于比赛正在进行中,所以暂时不能透露,,,还是先露一部分吧,感兴趣的可以私聊。
发送端部分:
#include<STC12C5A60S2.H>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
#define TX_OK 0x20 //TX发送完成中断
//声明速度档位判定函数
uchar SpeedLevel(float a);
//声明舵机档位判定函数
uchar DuojiLevel(float b);
uchar flagLevel(float c);
//申明档位数据发送函数
void Data_TxPacket();
uchar code charcode1[]="电机状态:加速";
uchar code charcode2[]="电机状态:减速";
uchar code charcode3[]="舵机状态:左转";
uchar code charcode4[]="舵机状态:右转";
extern void delay_ms(unsigned char ms);
extern void LCD12864_Init();
extern void LcdShowStr(uchar x,uchar y,uchar *str);
extern uchar GetADCResult(uchar ch);
extern void InitADC();
extern uchar NRF24L01_TxPacket(uchar *txbuf);
extern void SPI_Init();
extern uchar NRF24L01_Check(void);
extern void NRF24L01_RT_Init(void);uchar dianjiflag,duojiflag,flag;
sbit led = P3^5;
sbit key=P2^1;
sbit key1=P2^2;
sbit key2=P2^0;
unsigned char rece_buf[3]; //数据缓存包
uchar KEY_Scan(uchar mode)
{static uchar key_up=1;if(mode) key_up=1;if(key_up&&((key==0)||(key1==0)||(key2==0))){delay_ms(5); //去抖动key_up=0;if(key==0) return 1;else if(key1==0) return 2;else return 3;}else if((key==1)&&(key1==1)&&(key2==1))key_up=1;return 0;
}
void main()
{}
接收端部分程序:
#include "STC12C5A60S2.H"
#include "nrf24l01_rx.h"
#define uchar unsigned char
#define left 'C'
#define right 'D'
#define up 'A'
#define down 'B'
#define stop 'F'char code str[] = "收到指令,向前!\n";
char code str1[] = "收到指令,向后!\n";
char code str2[] = "收到指令,向左!\n";
char code str3[] = "收到指令,向右!\n";
char code str4[] = "收到指令,停止!\n";bit flag_REC=0;
bit flag =0;
sbit led=P2^5;
sbit KEY0=P2^0;
sbit KEY1=P2^1;unsigned char i=0;
unsigned char dat=0;
unsigned char buff[5]=0; //接收缓冲字节void pwm_init()
{TMOD=TMOD | 0x02; //设置定时器0为工作方式2TH0=0xB8; //装初值 50hz 12Mhz时 B2TL0=0xB8;TR0=1; //启动定时器0CMOD=CMOD | 0x04; //选择定时器0溢出时钟CL=0X00;CH=0X00;CCAPM0=0X42; //允许比较器功能,P1.3用作pwm输出CCAP0L=243;CCAP0H=243;CCAPM1=0X42; //允许比较器功能,P1.4用作pwm输出CCAP1H=235;CCAP1L=235;CR=1;
}
void pwm_set(uchar x,uchar y)
{CCAP0H=x;CCAP0L=x;CCAP1H=y;CCAP1L=y;
}
/************************************************************************/
//字符串发送函数
void send_str( ) // 传送字串
{unsigned char i = 0;while(str[i] != '\0'){ SBUF = str[i];while(!TI); // 等特数据传送 TI = 0; // 清除数据传送标志i++; // 下一个字符}
}
最后祝大家DIY愉快,比赛结束后加上其他队员的联系方式、图片等~
———————————4月5日更新———————————
初赛在3月25日就结束了。虽然只是学校里的一个小小的比赛,但是还是见识到了许多高手。
初赛最直观的感受是船体对船速的影响十分大。向一些有经验的人请教过后,我们把电机位置放前面一些了,大概在船体中间的位置,目的是桨能够和多片的连线与船尾平行,并且桨最好能够和船面平行,这样一调整,电机的能够充分发挥它的威力。
我们的船体材料使用的是PVC板材,相比其他队伍的模板更重一些。有些队伍直接让淘宝商家把木板船粘好并且发送过来电机的位置都也已经固定好了,这样可以算作作弊了吧,毕竟比赛要求上写明船壳必须是自己做的。如果有主办方看到这篇文章,能够好好查查。
决赛在4月8日,希望我们的船能够取得好成绩!
(不知道为什么图就是传不上去 /哭泣、、、)
高配版极速O艇制作教程相关推荐
- 小米红米Note4X(高配版)解BL锁教程申请BootLoader解锁教程
* 小米 红米Note4X(高配版)线刷兼救砖_解账户锁_纯净刷机包_教程 * 远程解锁 一.准备工作 1.注册小米账号:点击注册(已有小米账号请忽视) 2.在手机中登陆[小米账号] 3.下载并解 ...
- kingcms php,KingCMS php版网站标签模版制作教程(二)
php版的标签 king:模块名称.模型名称 这样构成,以自定义模块的文章模型为例: {king:portal.article number='*' type='*' listid='*' listi ...
- 电脑系统(U盘安装):装机版U盘启动制作教程(附安装包)
装机版U盘启动盘工具下载地址: 链接: https://pan.baidu.com/s/1laMdmchT_oXo55nszySQWg 密码:
- 红米4 android os唤醒,红米4(Redmi 4 高配版)一键救砖教程,轻松刷回官方系统
红米4(Redmi 4 高配版)手机变砖了怎么办?对于经常刷机的安卓玩家来说,碰到刷机失败导致红米4(Redmi 4 高配版)手机无法启动甚至无法进入recovery都是在所难免的事,这个时候我们就需 ...
- ae手机版特效软件如何制作抖音热门视频飞天特效的教程
ae手机版特效软件如何制作抖音热门视频飞天特效的教程 ae手机版下载ae手机版特效软件下载ae手机版特效软件教程 抖音热门视频上的飞天特效.腾云驾雾特效等等视频很多人看完感觉惊奇,问手机可以做吗,其实 ...
- NeHe的OpenGL教程8(Bang翻译Delphi版)-如何制作立体透明效果
NeHe的OpenGL教程8(Bang翻译Delphi版)-如何制作立体透明效果 在这一课里,我将教会你如何制作立体透明效果,如下图: 将下图放在应用程序data目录下,起名NeHe.bmp prog ...
- OpenGL教程8(Bang翻译Delphi版)-如何制作立体透明效果 .
OpenGL教程8(Bang翻译Delphi版)-如何制作立体透明效果 在这一课里,我将教会你如何制作立体透明效果,如下图: 将下图放在应用程序data目录下,起名NeHe.bmp program l ...
- 手机计算机怎么改背景,qq聊天背景隔离区怎么制作?QQ隔离区背景制作教程(电脑版手机版)...
最近很火的qq隔离区聊天背景图片热烈受到小伙伴们的欢迎,不会制作此背景的只能在网上翻来覆去的寻找属于自己风格的背景,如今,小编为大家开了QQ隔离区背景制作教程,这下自己喜欢什么颜色,喜欢什么文字都可以 ...
- 微软官方纯净版Win10系统U盘启动制作教程
微软官方纯净版Win10系统U盘启动制作教程 一.准备工作 二.Win10系统U盘启动制作教程 叮嘟!这里是小啊呜的学习课程资料整理.好记性不如烂笔头,今天也是努力进步的一天.一起加油进阶吧! 一.准 ...
最新文章
- cisco路由器EIGRP配置实例
- 自定义类加载器在复杂类加载情况下的运行分析
- OpenCV检测ArUco板
- php显示控制器不存在,phpcms控制器不存在解决方法
- php token 验证,PHP如何实现Token验证
- MaxDos启动盘拆解
- Android 系统(264)---android进阶——自定义View
- ggplot2 | ggplot2作图语法入门
- 接口里面能有构造器吗?_家用弱电箱里空空如也,装修时应该怎么在里面接线呢?能拆掉吗?...
- 指针系统学习5-对使用字符指针变量和字符数组的讨论
- python连接sap接口_python 连接SAP的方法
- php银行学生助学贷款管理系统
- The JSR-133 Cookbook for Compiler Writers 中英对照版翻译
- 泛函分析 04.06 有界线性算子 - 习题课
- 中国电信物联网平台入门学习笔记1:资料获取
- 双目视觉焦距_双目视觉成像原理
- 麦子学院IT资源,web前端,UI设计,Java全套,IOS,android,产品经理,pyhton,网络安全,运维
- 红米2怎么升android l,红米2的1G内存少装app够用?怎样让1G内存的安卓手机多装app而不卡?...
- 字节跳动CVPR 2023论文精选来啦(内含一批图像生成新研究)
- 异或、异或和 的性质及应用总结
热门文章
- Python运维开发(CMDB资产管理系统)--环境部署(上)
- Java实现TCP/IP的ping连通性
- Java编程题小练习(初级):输入10个整数并进行排序输出。
- 安卓自动无限试玩,只需一根WiFi玩法
- 2023年软考信息安全工程师备考学习笔记汇总
- python房子代码,Python---20行代码爬取斗鱼平台房间数据(上)
- oracle 证件脱敏存储过程
- c语言小游戏跳一跳代码及注释,如何获得微信小游戏跳一跳源码以及源代码组合包括哪些...
- Proteus8.9软件安装教程|兼容WIN10
- mysql 未指定驱动程序_[ODBC驱动程序管理器]未发现数据源名称并且未指定默认驱动程序...