最近迷上了航模,研究了很多东西,感觉路走的长了还是适当要停下脚步休息下总结下。
这次DIY的是一块OSD设备,主要用于航模图传的叠加显示,原理也很简单就是atmel atmega328p+MAX7456芯片,网上卖的成品基本上都是一个原理图。
原理图
我按照我自己的需要做了适当的更改,去掉了DC-DC电路,直接用5V输入,因为摄像头都是5V的,所以DC-DC不是很有必要,体积上更加小了点, 打板回来立马就焊了一块,硬件马上就准备就绪了,接下来就是软件部分了,那部分还是花了些时间。问题是一开始不是很清楚刷机的方式以及可选的固件。
刚焊好的硬件芯片上没有bootloader,需要刷写bootloader
网上也有相关的教程 (以下相关部分参考自网上)
- 用Arduino连接硬件
- Arduino IDE打开arduino ISP 示例
- 选择板卡信息,然后选择USBASP,编译上传
- 选择OSD板卡信息,看你的硬件配置选择,然后选择Arduino As ISP,然后选烧录引导程序就可以了
- bootloader 烧录结束
然后就是固件以及字库了,在刷固件之前也需要额外的硬件设备,我用的就是TTL - USB烧录,但是记得DTR引脚需要引出并且和OSD上面的引脚连接,否则会失败。
主流的有两个固件
一个是这个ArduCAM OSD config,Option里面先选择刷固件,然后刷字库,因为是全新的,所以要按照这个顺序,否则不成功,这个就成功了,连上显示可以看到显示了,但是这个固件已经好久没有更新了,下面介绍另一个,个人觉得更加好。
另一个叫MW-OSD,开源的
网址:http://www.mwosd.com/
Github: https://github.com/ShikOfTheRa/scarab-osd
这个固件也有个配置的app,在github上可以下载,界面如下
注意的是这个app不是免费的,免费版本的不能保存OSD设置一个上传字库,可以看到按钮是灰色的,不是因为没有连接。。。但是可以通过这个app刷固件。
那怎么办呢,好在他们有给Arduino的源码,也在github上可以找到。
但是不能直接用,需要做一些简单的修改,首先要Arduino IDE打开MW_OSD这个文件
找到Config.h
需要选择硬件信息,把前面的注释去掉,相应的还要选择飞控类型,飞机类型就可以了。
但是这样还是不行的,固件上可以刷新,但是字体还是无法上传。。。
那怎么办呢,仔细研究Config.h 里面有一段installation Options
硬件连接上就用TTL-USB连MINIOSD, 因为已经有了bootloader,可以直接当Arduino来用,选择OSD板卡信息。
- 先去掉EEPROM_CLEAR的注释直接上传
- 注释EEPROM_CLEAR,反注释loadfont(其中之一),上传
- 全部注释掉,和原先图片上一样,再上传,这个很重要,不然硬件上一直在上传字库。
好了,至此就告一段落了,可以正常使用了。