Coldbloodanimal低成本自制航模电子设备系列之一和我一起用ATMEGA8做遥控器(8通道所有资料已公布)上7月份的时候,在5imx看到一个网友说想用ATMEGA系列8位单片机做遥控器、电调、陀螺仪、平衡仪一个系列,引起了我的极大兴趣,确实航模用的遥控器、电调、锁尾式陀螺仪、平衡仪这些产品,从技术的角度来说,应该是比较简单的东西,不知道为什么,国内的模友们自己做的很少,买成品的较多,而且很多人也是提到国产设备就指是垃圾设备,非国外的产品不买,其实这种精神并不利于我国航模事业的进步。个人认为,航模作为一项运动,从国家的角度来看,水平的提高,一方面是利用成品设备(当然也包括国外先进设备)组装调试出操控性非常好的航模,并通过个人的良好操作技能,能够在各种比赛中获得名次;但另一方面,应该是在航模运动中,不断地锻炼、培养、发掘出自己的技术力量。从航模及相关电子产品的种类发展来看,国外比我们要先进好几年,各类新的航模电子产品(如最初的无刷电机、电调等)或者新类型的航模(如四轴等)往往都是国外的爱好者们研究并应用之后,才传到国内来的。大家都说他们的创新能力很强,可是真正静下心来想一想,创新能力的发展不光要靠新的点子,还要破除技术的神秘感,要靠实际动手能力强,才能变成现实。我们现在爱好航模的人有很大一部分人是在校的学生,从我国的高等教育体系来看,学校教的过份注重理论,而轻实践,大家往往学了很多基础知识,而现实中却完全无法自己动手,他们自己有很多人都会觉得外国的技术很神秘。如果搞工科的学生都觉得技术神秘的话,我们的自主创新就会成为一句空话。而当你深入去了解那些我们以为很神秘的技术,特别是发现很多东西都是自己可以掌握,自己可以应用的东西的时候,也许我们离自主创新的天花板就只需轻轻一跃了。当然,从个人业余制作的角度来说,不要去选技术含量过高,自己完全无法实现的内容,如自制遥控器所需的芯片、自制陀螺仪芯片等等,那些创新是需要高端试验室环境和设备的,个人业余制作的条件完全不具备。但遥控器、电调、陀螺仪、平衡仪这些航模电子设备,则是我们可以实现的。我也准备用ATMEGA系列8位单片机做遥控器、电调、陀螺仪、平衡仪一个系列,当然由于我只是业余时间来做,我也不知道什么时候能够全部完成,我只能在这个论坛上做一点,发一点,也算是我的一点业余爱好吧,关注的人越多,我做的动力就越强,做的速度也会越快。我做的所有的东西最后都将开源,如果关注这系列内容的朋友多的话,我也将考虑编一本书,把做这些东西的所有技术细节,包括所用的单片机的关键技术、源程序关键内容的解释等等,全部写在书里面,让大家按照书的内容直接操作,便可制作出自己的航模电子设备。开端说了这么多废话,耽搁大家的时间了。先给大家报告一下我的进度,我所自制的所有的电子产品均遵循一个流程:即可行性分析—原型模型搭建—原型模型编程—基本功能测试—产品试制—产品上机测试、程序完善(可能反复)—定型。最近的2个月,我可能花了20多个晚上的时间,航模遥控器已经进入产品上机测试和程序完善阶段,舵机测试仪已完成基本功能测试,航模直升机用锁尾陀螺仪已完成基本功能测试,航模直升机用平衡仪已进入原型模型编程阶段,航模无刷电机用电调还处在原型模型搭建阶段。当然,最近这段时间由于占用业余时间太多,已经引了领导的强烈反对,后继进度可能有所放缓,但我会尽量地加快进度。现在正式进入第一个主要内容:和我一起用ATMEGA8做遥控器。可行性分析:一、现阶段商用遥控器已经有相当部分采用PCM编码了,从单片机的角度来说,PCM和PPM都应该是比较容易实现的,PPM编码以前大家认为抗干扰能力较弱,这主要是因为以前实现PPM的编解码很少用单片机,多用数字电路实现,对于这类电路来说,只要输入脉冲的上升沿达到一定的高度(宽度),都可以使其翻转。这样,一旦输入脉冲中含有干扰脉冲,就会造成输出混乱。但现在PPM的编解码都是用单片机来实现了,不存在干扰使其翻转的问题,无疑抗干扰能力又增强了不少。PCM编解码则是用模/数(A/D)和数/模(D/A)转换技术实现的,可以很方便的利用单片机编程,不增加或少增加成本,实现各种智能化设计。例如,将来的比例遥控设备完成可以采用个性化设计,在编解码电路中加上地址码,实现真正意义上的一对一控制。但PCM的编解码较PPM要复杂,因此有反映说采用PCM的商用遥控器速度要慢一些,而且各个厂家生产的不同型号的PCM比例遥控设备,其编码方式都不相同。结论:选用PPM在后端设备的选择余地上要大一些,可以提高开发速度,让我们把精力更多地放在遥控器功能开发上,因此选用PPM。二、后端设备及后端设备是自制还是选用商用后端设备包括发射端的高频发射板、接收机。由于我的专长主要在数字电路和程序设计,加上业余条件的限制,自制高频发射和接收板基本不可能,如果购买商用高频发射和接收板,可以自己做接收机,但商用2.4G的高频发射和接收板我在淘宝上查了查,一般要150元左右一套(两块),而且距离说是1000米,但很多已经购买的朋友评价时说都只有300-500米,性价比不高。自己做接收解码板来做PPM接收机技术含量比遥控器本身来说要低,就不花费时间了。结论:我手上正好有一个esky的0404g四通控,可以直接用其外壳、高频发射板和接收机。如果没有合适的旧控可供改装的,可以用飞梦,飞梦2.4g套装的价格只有200出头,而且距离应该在1000米以上。外壳自已做的话,绝对会非常山寨,影响大家的心情,所以用便宜的旧控或者模拟器改装应该是一个很好的方案。三、发射机用PPM板单片机选型发射机主要需要用ADC来采集电位器的位置,一个8个比例通道的遥控器需要至少有8路ADC,精度8位太低,遥杆的全行程才256个采样点,至少要10位,遥杆全行程达到1024个采样点。由于选用PPM编码,所以发射机的芯片每20ms才需要发出一组信号,主频不需要太高,8M以上完全能够应付。7月份的那个朋友说准备用ATMEGA8做,我查了查ATMEGA8的资料,觉得ATMEGA8完全能应付,加上在淘宝上一搜,ATMEGA8的开发板有20多元的,价格很便宜,用来搭建原型模型很便宜,好,就是它了!买了一块ATMEGA8和一块ATMEGA32的开发板,用ATMEGA8来搭遥控器的原型,用ATMEGA32来搭建锁尾陀螺仪和平衡仪的原型。ATMEGA8的开发板25元,ATMEGA32的开发板只买了板子,自己买的芯片来焊,也只花了25元左右。便宜吧?四、自制遥控器的基本功能遥控器的基本功能实现核心代码其实很简单,主要是端口置位、复位和延时,但要做得好用,那些设置的菜单很难设计,要花不少的时间。本着功能优先的原则,我打算先不做图形液晶显示,先用字符液晶显示。(还有一个不好说出口的理由,我买的便宜的ATMEGA8的单片机开发板正好有字符液晶的接口,如果要驱动图形液晶,还得自己做接口,嫌麻烦)基本的功能应该是大家经常用的那些,我实现的是:6通道(其实8通道也好,10通道也好,和6通道是一样的,主要是我的esky0404g的四通控的接收只能扩展到6通道,要再多做通道,就得花钱买飞梦的2.4g套装,配8通的接收了)、通道反向、中位调节、行程调节、模型类型(暂只打算支持固定翼和CCPM直升机,这应该是大家最喜闻乐见的两个类型了),油门和螺距两个5点曲线,陀螺仪感度调节,6个模型数据存储。可行性分析先写到这里,文字材料写了好几大段了,大家看着也累了,为了增加大家的兴趣,我先介绍介绍我的遥控器的原型模型搭建和产品试制。上图是我搭建的遥控器原型机,摇杆是从PC游戏手柄上拆的,四按键是从坏的DVD机上拆的,LCD1602液晶12元,atmega8开发板25元,像U盘一样的东西是esky0404g遥控器接电脑玩realflight的加密狗,用来验证原型机是否起效的。下图是遥控器原型机产生的波型图,是完全按照0404g的波形来生成的,0404g是可以改造成6通道的,其接收机也是可以改造成6通道的。遥控器原型机编程完成以后,用PC声卡示波器查看,各通道波形随遥杆变化正常。用加密狗之后,插入电脑USB口能找到遥控器,可以正常玩Realflight。原型机试验到此结束。1、原型机编程后准备制作的线路图2、自动布线后的电路板图3、打样的线路板4、焊好元件后的电路板5、正在安装的遥控器6、安装好后的遥控器内部7、安装好后的遥控器正面图先给大家发个下一步打算写的目录吧..一、一个晚上学会用atmega8制作舵机测试仪二、Atmega8简介及重要资源应用实例1、一个小时熟悉单片机基本概念2、半个小时了解atmega83、5分钟学会输出端口控制4、10分钟学会输入端口控制5、10分钟学会定时器6、10分钟学会ADC7、10分钟学会驱动按键8、10分钟学会EEPROM读写9、Lcd1602驱动例程(选学)三、舵机测试仪程序讲解四、六通道遥控器程序讲解要想进入下一步学习过程的朋友,可能需要有以下硬件及软件:1、任意一种类型的Atmega8学习板(须为全部引脚引出的版本,最好自带lcd1602液晶接口,最好支持BootLoader)、lcd1602液晶各一块,10k以上可变电位器5只,2、USBASP下载线3、声卡延长线一根,万用表表笔一对,鳄鱼夹一对。4、MultiinstrumentV3.0以上软件5、AVRStudio4以上软件声明一:由于目前对本项目感兴趣的人数不多,上述硬件设备投入在100元以下,我不保证完全能够按照预定写作计划写作,主要看参与人数与大家积极性,如果关注的人太少,最后我可能只发源程序或hex文件,不详细讲解。不对可能产生的任何风险及硬件设备投入负责。如不同意以上声明,请勿尝试学习本项目。一、一个晚上学会用atmega8制作舵机测试仪舵机测试仪是一个非常简单的应用,为了提高大家学习单片机的积极性,我们先不讲单片机的基础知识和程序,先让大家体验一下单片机的应用是多么地简单,而不是大家所想的高不可攀。通过这个过程,也让大家掌握如何向atmega8单片机写入程序,如何用计算机声卡示波器查看波形。所需材料:Atmega8单片机试验板一块,USBASP下载线一条,10k以上可变电阻器一只,利用计算机声卡延长线和万用表笔、鳄鱼夹制作的示波器表笔一只,航模用舵机一只。如下图所示。所需软件:USBASP下载软件、声卡示波器。舵机测试仪的HEX文件:SevoTest.rar(532Bytes)舵机测试仪的程序非常简单,全部代码不过几十行,我编程序的时候仅用了10多分钟。在第四章节将公布舵机测试仪的全部代码并逐行予以讲解。步骤:1、将示波器表笔插入计算机麦克风插口,设置计算机麦克风音量到合适大小。2、连接USBASP下载线至单片机试验板,注意插口方向不要插错。单片机试验板上有开关或跳线选择电源为5V或3.3V的,一定要选择为5V,否则可能烧单片机试验板稳压芯片。3、将USBASP插入计算机USB口,此时可看到USBASP的绿灯亮,单片机试验板上的电源灯也亮。4、打开USBASP下载软件,比较典型的是progisp1.72。5、先按“命令”、“读出识别字”,能正常读出atmega8芯片的识别号,如果不能正常读出,请检查单片机试验板、USBASP是否工作正常,连接线接触是否良好。6、如图所示设置atmega8的熔丝(可以理解为atmega8的基本设置,具体内容后面会讲),切记一定不能改变SPIEN熔丝,否则单片机会禁止USBASP烧写,只能用高压编程器恢复,很麻烦的。(注意:这里的熔丝设定是在采用16M的外接晶振时的,如果不是16M外接晶振,请仔细查看熔丝设定的规则后自行设定,或在帖子里留言,我来告诉大家该如何设定,另外,HEX文件也是基于16M外接晶振的,其它频率该HEX无法正常工作,如果采用其它频率的晶振,也可以留言给我,我提供其它频率的晶振的HEX文件)7、载入atmega8的hex文件,写入atmega8。8、取下USBASP,可变电阻器的固定阻值端分别接电源正负极,可变阻值(电位器)端接ADC7(PC7)。航模用舵机的黑线接地线,