专注电子技术学习与研究
当前位置:单片机教程网 >> STM32 >> 浏览文章

Rainbow STM32开源硬件《序》

作者:佚名   来源:本站原创   点击数:  更新时间:2014年04月17日   【字体:

   准备了很久,今天终于挤出一些空闲时间,开通了Rainbow STM32开源硬件的空间。
     今年年初,我给女儿买了一个火火兔故事机,女儿爱不释手,火火兔每天不厌其烦地给她讲故事、唱歌、播放音乐,给她的生活带来了很多乐趣。有一天我跟孩子的妈妈在聊天,感慨的是火火兔的发明者,将一个都濒临淘汰的MP3播放器和一个可爱的兔子结合起来,没想到这么受到小朋友的欢迎,我跟孩子的妈妈说,要是这个火火兔除了可以按键,如果能接受小朋友的语音指令,能够互动该多好啊!没想到女儿在旁边听到了,很天真的对我说:爸爸,我要!我考虑了一下,大学本科我学的是自动控制、硕士阶段学了软件,如果给女儿做一个应该是可行的,只是硬件设计已经10多年没有接触了,都不知道发展到什么程度了,不过反正有点基础,尝试一下还是可以的。
    说干就干,于是我开始在网上查资料,先从硬件入手,先后接触到了Arduino、Maple、PCDuino、树莓派等开源硬件,后来确定使用STM32的芯片,软件方便我做了10多年,各种语言都还算比较熟悉,一路下来比较简单。 折腾了两个月,终于给女儿做了一个简单的玩具:一个会听话的卧室灯,可以在自己的卧室呼叫:小神灯,神灯会问:小主人,请问有什么吩咐,此时如果你对它说:开灯,灯就开了,说“关灯”,灯就关了,说“给我讲个故事”,灯就开始讲故事,如果说“10分钟后关灯”,灯就会延时关掉;这个灯还可以播放音乐、给女儿唱歌,女儿非常喜欢,自豪地说“爸爸是个科学家”。
    这个小制作我采用了STM32F103RB+LD3320语音识别模块以及MP3播放模块,实现起来非常简单,真正要开发这个只需要两三天,实际上绝大部分时间是花在了准备阶段,准备什么呢?首先是开发板选型,一开始选用Arduino,从我第一天接触这个开源硬件,就深深被吸引了,Arduino模块化的设计,真正实现了硬件积木化,只是采用的AVR单片机个人感觉性能有些低,我的一个朋友给我说,你为什么不采用ARM单片机,除了是32位CPU、片上的资源也非常丰富,于是我将目光转向STM32,开始零基础学习STM32,一段时间下来,有了些心得,于是我就有了个想法,能不能做一个STM32版本的Arudino呢,琢磨了一下还是可行,于是就开始学习Arduino设计原理,折腾了一个多月,终于实现了Arduino的核心类库,包括对GPIO操作的封装、定时器、USART、SPI、DHT11传感器、能够实现智能学习的红外遥控类库、2.4G无线通信,同时成功移植了FreeRTOS、Fatfs等,期间还依据Arduino的Ethernet接口,基于END28J60网络模块实现了一个相对完善的TCP/IP协议栈,为了与Arduino保持尽可能的兼容,相关的接口函数我尽量和Arduino保持一致。开发语音采用C++、工具使用的是Keil5,由于使用了功能强大的开发工具+j-link(ST-Link)调试线,个人感觉开发方面要比Arduino好很多。
    小制作完成之后,下一步我准备做一些有关物联网的制作,在准备小制作的过程中形成了许多的C++/C程序,由于参照了Arduino的设计理念,个人感觉STM32的开发将变得很简单, 我希望我花了这么多时间形成的成果能够与更多的人分享,于是我找到了周工,周工从事硬件设计多年,设计经验丰富,我跟他谈了我的想法,希望设计一款面向物联网开发的开发板,这个开发板要求不仅仅能满足做实验,而且具备直接用于物联网产品的能力,经过我们讨论,一方面要板子足够小、同时包含的功能模块又要能满足物联网开发的需求,最后我们确定这个板子上的资源如下:
      1、CPU:STM32F103RB、 STM32F103RC等64脚CPU兼容
      2、板载ENC28J60网络模块
      3、 板载TF卡插槽
      4、板载IIC:AT24C08
      5、其它资源:带有DHT11温湿度传感器接口、红外遥控放大电路、2.4G无线通信模块NFR24L01接口等
    特别要说明的就是做红外遥控方面的问题,红外遥控接收、发送是家居智能、物联网开发中必不可少的部分,但是由于STM32是3.3V单片机,IO电流有限,所以在做红外遥控实验的时候有可能出现遥控不了电视、空调的情况,这种情况多半是由于红外发射功率不够的原因,我们在设计的时候充分考虑到了这个问题,专门设计了红外发射放大电路。
    现在板子的原型已经完成,等待进一步测试,周工问我,我们给板子起个什么名字呢?说实话,对于起名这种事情我还真不在行,刚好我和周工通话的时候在农村老家度假,天刚放晴,天上出现了彩虹,突然间我有了个主意,就叫Rainbow,彩虹代表绚丽多彩,让我们使用Rainbow STM32物联网开源硬件,开发出丰富多彩的电子产品吧!

Rainbow STM32F103RB电路原理图:http://pan.baidu.com/s/1sjCWJST

 

关闭窗口

相关文章