欢迎来到天天文库
浏览记录
ID:27870701
大小:873.50 KB
页数:25页
时间:2018-12-06
《基于Arduino自制儿童小电脑.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于Arduino自制儿童小电脑 如果你家有小孩,一定能懂我做这个项目的初衷。我们每天都会玩着手机,敲着键盘跟朋友聊天,小孩子看见了就想模仿,但出于保护眼睛等一系列考虑,我们又不能让他们过早的接触电子设备。所以我就想到,能不能做一个小玩意让他们也尝试着学习阅读和书写呢?不过项目刚开始时确实挺困难,所以我又不断添加新功能以保持它对孩子的吸引力。 在开始写教程之前,我想感谢http://www.rinkydinkelectronics.com,我从上面汲取了很多营养,从各种库到代码,有了它们我才能玩转这块TFT触摸
2、屏。 所需零配件: ·ArduinoMega2560开发板。 ·一块3.2英寸的触摸屏和保护壳,别忘了触控笔。 ·一张SD卡,用来保存孩子的涂鸦。 ·ESP8266WiFi模块,以便设备连接互联网。 ·DS1703时钟模块。 ·电池适配器(找适合你所用电池的哦)。 ·一个漂亮的壳子 ·设定好一个互联网接入点,这样即使你不在家也可连上热点使用设备。 ·在服务器上创建一个随时能通过PHP访问的数据库。 ·为不同的孩子创建不同的电邮地址。 第一步:连接硬件 由于屏幕和外壳占据了Mega2560的所有
3、接口,所以我不得不在Mega开发板两边又焊接了几个接口,虽然看起来丑了点,但至少管用了。这样我们准备的DS1703和ESP8266模块,甚至电池都可以顺利连接了。 说到ESP8266WiFi模块,这次我算是走了狗屎运,连接时我直接将ESP8266模块的RX和TX接口连上了Mega开发板上的TX和RX接口,幸运的是,它居然运行无误。其实这不是正确的连接方法,我推荐你们还是参考下下面这个网页的连接方法吧: 随后你就可以将触摸屏连上Mega开发板并套上保护壳了。对了,别忘了插入准备好的SD卡。 第二步:载入软件
4、想要运行该设备,你需要两个软件组件。第一个是ArduinoSketch,第二个则是运行在你服务器上的PHP脚本和来自Arduino的HTTPGet请求。ESP8266上使用的HTTP1.0协议有些过时,用起来有些不舒服,你只能通过它发送HTTPGet请求和HTTPPost请求。所以你需要将来自Arduino的HTTPGet请求转换成STMP(简单电子邮件协议)或其他格式,而这正是PHP脚本的一部分。 Arduino 在Arduino1.5.6beta上,该Sketch的运行和测试都进行的很顺利,但升级到最新的1.6.0
5、就不行了(出现了TFT校准错误)。所以在你加载这个Sketch之前,请对其进行编辑并根据你的互联网接入点设置相应参数。下面是范例: #defineDEST_HOST“www.your_own_host.de” #defineSSID_HOME“FritzBoxHOME” #definePASS_HOME“ABCDEFGHIJKLMNOPQRSTUVWXYZ” 记住,DEST_HOST并不是你在服务器上的IP地址,所以你的PHP脚本不会在那里运行。在你的根目录里,Sketch会建立一个名为“Scripts”的文件夹,
6、而你的PHP脚本最终会上传到这里。 SSID_HOME和PASS_HOME则是互联网接入点的设置。想要通过路由器上网(我用的是德国的FritzBox路由),你就要进入路由器设置中心对其进行配置。想使用移动热点的话,你就要进入设置-》更多设置-》WLAN热点-》移动热点对其进行配置(安卓系统)。 下载了Sketch之后记得先阅读详细步骤并做出正确的配置调整。如果一切运行正常,在加载了Sketch之后,你就会看到主界面,上面会显示键盘,一些图标和WiFi状态栏(绿色为已连接,红色则为断开)。 PHP PHP脚本在这个项
7、目中起了很重要的作用,它是Arduino开发板和SMPT服务器之间的接口,你可以通过它收发邮件。它可以将开发板上反馈来的HTTPGet请求转换成相应的动作,完成阅读邮件,发送邮件和图片等工作。 第三步:使用应用程序:用户和邮件设置 用户 该程序可供三个不同用户使用,每个用户都可设定自己的头像(.c文件,和Sketch一起上传到RAM中)。这个格式比较少见,你可以通过网站JPG_to_Cconverter将一张32x32的JPG图片转换成一个.c文件。 创建三个用户时可使用下列代码(三个用户分别为Samira,K
8、ilian和Keanu): #defineSENDER_CNT3 //Photo.cFiles: externunsignedintkeanu[0x1024]; externunsignedintkilian[0x1024]; externunsignedintsamira[0x1024];
此文档下载收益归作者所有