Blog Archives

【JoyTag Arduino 教程】如何使用Watchdog (看门狗)

*: WordPress代码高亮控件有BUG,明明是”,复制出来就变成“,导致示例程序无法在Arduino IDE里正常编译。 请到此处复制代码:http://forum.godpub.com/thread-30-1-1.html 何谓Watchdog? ATmega48A/PA/88A/PA/168A/PA/328/P has an Enhanced Watchdog Timer (WDT). The WDT is a timer counting cycles of a separate on-chip 128kHz oscillator. The WDT gives an interrupt or a system reset when the counter reaches a given

Posted in Arduino

Arduino QQ群:20085629

为了方便朋友们交流,新建了一个Arduino QQ群,群号20085629 欢迎各位朋友添加。

Posted in Arduino

使用EEPROM存储和读取数据

目的: 测试和了解Arduino板载EEPROM的使用。 原文地址: http://www.joytag.com/arduino/使用eeprom存储和读取数据/ (转载请注明出处) 正文: QQ群里一朋友问Arduino上如何使用EEPROM存储字符型数据,其实无论是字符型数据还是其它类型数据,或者类似文件、图片这样的对象,都是作为二进制数据存在的。 Arduino官方的有三个EEPROM的例子,分别是清空EEPROM、 写入EEPROM、读取EEPROM。而清空EEPROM,其本质就是把整个EEPROM的空间写入0。而读写的语法分别是:EEPROM.read(address)、EEPROM.write(address, value),是不是很简单? 下面是一个简单的例子,写入一组字符串到EEPROM中,然后读出来,通过串口监视器显示出来。

这个例子中,我对0至1023地址中写入0,来清空EEPROM,这是因为Arduino不同的微控制器有不同大小的EEPROM。对于Arduino UNO R3而言,微控制器是ATmega328,空间大小是1024字节。 The microcontrollers on the various Arduino boards have different amounts of EEPROM: 1024 bytes on the ATmega328, 512 bytes on the ATmega168 and ATmega8, 4 KB (4096 bytes) on the ATmega1280 and ATmega2560. 另外,需要注意的是EEPROM写入寿命的问题,这个很容易被忽略。 An EEPROM write takes 3.3 ms to complete. The EEPROM memory has a specified life of 100,000 write/erase cycles, so you may need to be careful about how often you write to it. 当写这个例子的时候,想到一个有意思的问题,就是对于1024个字节长度的EEPROM,我们如果在第1024、1025、1026处分别写入内容,那么会写到哪里去,读出又会读出哪些内容?通过测试,我们发现在1024、1025、1026处写入和读出内容,等同于在0、1、2处操作。感兴趣的读者可以自己修改代码测试。 结论: Arduino的EEPROM库提供了很方便的存储和读取功能,对EEPROM的操作简单直接。 文成仓促,错漏难免,如有发现,烦请赐教。 联系邮件:support@joytag.com 转载请注明出处:http://www.joytag.com/arduino/使用eeprom存储和读取数据/

Posted in Arduino

EZKT智能液晶测试报告

目的: 使用Arduino连接EZKT智能液晶 正文: 有幸从朋友那里拿到一块智能液晶,很好奇到底智能在哪里?于是迫不及待的使用Arduino UNO R3连接并进行测试。 这块液晶属于EZKT真彩系列-E系列,分辨率是320*240,网站上对这个系列的介绍:“真彩点阵液晶,软件界面简约、操作简单易用,屏显效果细腻,功能卓越,性能优越,可支持多行业应用”。据悉EZKT提供了功能强大的液晶开发工具,通过开发工具可以实现字库编辑、图片下载等操作,项目化的管理液晶屏的开发和使用。 很遗憾的是,我只拿到液晶屏,并未拿到用于开发的连接线缆,但是这并不妨碍我通过Arduino直接使用它。OK,闲言少叙,开工。 首先,让人惊讶的是,这款液晶连接起来十分简单。电源、地、RX、TX,4根线就可以让其工作,其中电源是使用Arduino板载的3.3V输出。接通电源后,屏幕即被点亮,显示的是EZKT液晶的功能介绍,同时也是一个使用DEMO。用户既可以用过这个界面对这款液晶有一个大概的了解,又可以通过这个DEMO对这款液晶能做什么有一个直观的概念。不得不说,菜单导航、触摸屏操作,还是很让人眼前一亮的。 接通电路后,下一步需要了解的是如何控制这款液晶。通过下载和查看这款液晶的说明书,我们知道这款液晶使用TTL232与其它系统通讯。并且实现了极为简洁和强大的通信指令(命令帧)。那对于Arduino来讲,控制起来就是相当简单了,Serial.write()足矣。 花几分钟时间,写个了小程序,分别调用了握手、清屏、关闭打开背光、设置前景色、指定区域填充、显示文本、使用蜂鸣器,等等。一切如预期的一样顺利。需要提及的是,这款液晶内置了多款字体的字库,做液晶应用,再也不用纠结汉字取模之类的问题了。 至此,我们这款液晶已经完全可以满足我们的需求,配合Arduino进行项目开发了。另外,从指令说明文档中我们可以看到,这款液晶还支持图像显示,常用的图形函数等等。也就是说我们完全可以再液晶上加载一副图像,然后再指定区域使用透明背景色的方式显示文本,酷吧。使用Arduino配合这款液晶,完全可以做出炫酷的界面了。 关于触控,这款强大的液晶同时支持触控功能。由于时间关系,未对这部分做更多的测试。不过看指令文档中,有两条反馈触屏按下和抬起位置的指令,那么实现触屏的功能不过是小菜一碟。 以上仅仅是直接使用这款液晶的感受,已经发现诸多让人惊喜的地方。如果再配合EZKT提供的强大的液晶开发工具,那么开发出炫酷的应用再也不受限于液晶设备了,而仅仅受限于想象力。更多的优点,更多的功能,还是留给各位自己发现吧。 结论: 这款液晶无愧于智能液晶的称号。欲了解更多信息,可以访问EZKT网站。本人硬件小白一枚,文中错漏难免,望不吝赐教。 附: EZKT网址: http://www.ezkt.com

Posted in Hareware

使用Raspberry打造个人NAS

本着折腾无止境的目的,打算把Raspberry打造成一个多功能的小盒子。比如说打印服务器啊,文件服务器啊,SVN服务器啊,等等等。 今天折腾了一下NAS。不算太成功,基本达成预期目的。 基本思路 1:存储空间 Raspberry系统是装在SD卡上的,别指望有太大的存储空间(我测试用的4G卡,更不用提了)。所以一般的方案是外接USB移动硬盘之类的。我用一个U盘做测试,这个没啥区别。 2:使用mount命令挂载到系统上。 或者编辑/etc/fstab 实现开机自动挂载 3:安装ntfs-3g,可以实现读取的是NTFS格式的移动硬盘 http://www.tuxera.com/community/ntfs-3g-download/ 4:通过安装samba实现网络共享 5:可以通过双盘备份来保证数据安全。(计划任务+rsync) 遇到的问题: 1:windows下无法连接到samba共享目录。 a)互相能ping通 b)防火墙关闭 后来发现windows上需要启用workstation服务,NETBIOS服务。 2:使用1A USB充电器供电,插上U盘后偶尔会死机。 估计和供电不足有关。不插U盘对samba进行测试,一切正常。 3:Linux下可以使用smbclient工具进行测试。(需安装samba客户端) 4:考虑是否使用更精简的系统,或者对系统进行精简实现对空间和资源占用的降低。 总结 看样子需要配备一个强大的电源,另外需要USB集线器来增加更多的USB插口。

Posted in Raspberry Pi(树莓派) Tagged with: , , , , , , ,

iRobot Roomba 790开箱报告

花了5600大洋从网上订购了一个iRobot Roomba 790扫地机器人,今天刚收到货。 大致看了一下, 1:体积比想象中的要大,看网上图片没有直观的感觉,拿到手发现这个家伙还是满大的。 2:重量不轻,很厚实,很沉重。这样很好,说明用料很扎实。 3:充电器铭牌上写的是(120VAC),店家给贴了个标签(220V-240V),据说是为了适合国内电压店家做了改装。 4:充电器插上以后有“吱吱吱”的电流声。(有可能因为从寒冷的室外进入室内产生水汽导致的?有待观察) 5:按提示弄好充电后,语音提示“充电错误一”。联系卖家,说电池没放好,拆开电池仓后把电池重新放一下,可以充电了。 6:按说明书所说,第一次应该进16小时充电模式( Refresh Charge mode)琥珀色灯快闪,但是实际进入的是正常充电模式琥珀色灯慢闪。 7:灯塔安装电池后,指示灯不亮。看说明书,说是灯塔要被roomba开启,开启时灯才会亮起来。 8:附带的工具箱比期望的差太多了,除了几个附件,也放不了啥。 9:购买的大套餐,价格比套餐一贵一点,回头看不是很有必要,附件够用一阵子了。 10:中文说明书提供了一些便利,但不是很详细。官网700系列用户手册相对更完整一些 http://www.irobot.com/Roomba700/includes/files/pdfs/EN_RoombaManual.pdf 11:买790没买780,是因为看重它的遥控器,780是红外遥控,这个是无线遥控。但是拿到手后发现遥控器没想象中的那么精致。需要吐槽的是,要四节7号电池,而且电池仓设计的很不合理,放电池的时候必须用手按着,否则会弹出来。 12:按给的手册试机一下,噪音比想象中的巨大得多。可能是心里预期太高了,也可能是第一次开机水土不服。过几天再看。 13:主机外包装上写着有编程和遥控接口,可以加功能或者远程监控状态,这个回头试试看。貌似有点吸引力。 iRobot® Create® Programming 其它还没想到,回头再补。 结论: 目前看,基本和预期的差不多,能编程是个惊喜,回头弄点啥玩。至于是否好用,需要进一步的使用后才能了解。

Posted in Interest(闲情逸致)

内心强大

——既然这个站打算送给孩子做礼物,那么就特意加了一个For Baby类别。随便记录一些东西,希望他长大识字后可以看到。 正文: 以前常看到有人QQ签名说自己内心强大,大多一笑了之。内心强大的人,不需要宣扬这点,而宣扬者往往欠缺。所以我这个标题不是宣扬自己如何内心强大,当然我的内心也不强大,而恰恰相反,我是一个极度敏感加脆弱的人。之所以起这个标题,发这个帖子,是希望你能做一个内心强大的人。 很多次,当我踌躇满志想做点什么的时候,打击就接踵而来。其实无论是生活上还是肉体上的打击,我都能坦然承受,而唯一不能承受往往是精神上的打击,让人绝望。有时候甚至想放弃这一切,包括生命,但是我没有勇气放弃你。当这种情绪来临的时候,茫然四顾,没有一个可以倾诉的人,没有一个可以让我依靠的支柱,“知音少,弦断有谁听”,真是恰好的形容。或许你长大一点,会是一个很好的听众吧,今天当你用稚嫩的嗓音说”爸爸不哭“的时候,我泪流成河。既然你现在懵懂,那么我就在这里述说给将来的你吧。 或许我不该在这里传达一些负面的情绪给你,而所谓的打击也往往只是鸡毛蒜皮的小事。但是孩子,将来生活中总会偶尔遇到些不如意的事情,或许当你哭闹着要喝酸奶、要玩手机,而我们没有满足你,也算是一种不如意。所以我们终将面对,也要学会面对。而我则是一个不成功的反面教材,我希望你比我强大。所以我胡乱的想想,胡乱的记记。 那么,如何强大呢?或者作为这方面的失败人士,我没有资本多说什么,那么就把所思所说的当作闲聊吧。 1:要有目标 有了目标就不会被打到,只要我们努力的前进,哪怕步伐再小。 我现在的目标就是你,希望能让你健康快乐的成长,希望能为你打磨一把锋利的宝剑,你能用它披荆斩棘,希望能为你撑起一片蓝天。因为这个目标,我坚持了许多,也放弃了许多。我知道或许自己做的不够好,很累很疲倦的时候,甚至想到放弃生命,留你自己面对这个复杂又残酷的世界。我承认我错了,从今以后,我会加倍努力,希望每天都贴近目标一点点。 说到目标是你,又想起我的父母,他们何尝不是像我对你一样对我充满期许。虽然一直都尽力做一个孝顺听话的孩子,但是我知道他们更期望我平安快乐。不养儿不知父母恩,有了你之后,我更加了解父母对我们的付出。尤其是近四个月多月,你的妈妈生病卧床不起,更是父母陪在我们的身边。由于我白天晚上都要照顾你的妈妈,所以爷爷奶奶白天带你玩,晚上还哄你睡觉,奶奶早晨还要给我们做早餐,一日三餐都是奶奶洗碗。直到我真的可以照顾得过来你们母子之后,他们才放心的回家。不管别人怎么说,怎么想,我对他们是万般的感激,也希望你能有一颗感恩的心,不辜负爷爷奶奶对你的爱。他们是不问回报,但是我们要做知恩的人,拥有一颗感恩的心。 说回目标,我不知道你将来会有什么样的理想和目标,或许内心深处挺希望你能和我一样成为一名程序员,期盼着用手指敲击键盘改变世界。当然,我连自己都没有改变,遑论改变世界了,但是我希望你可以,我希望我可以成为你强大的后盾。但是我更期望的是,你能够快乐,能够过自己想要的生活。 2:要有朋友 这点我做的不好,由于整体和电脑打交道,朋友少的可怜。偶尔那么几个也都在奔波忙碌。古人云:君子之交淡如水,小人之交甘若醴。但是真的淡如水的,往往会越来越淡,渐渐疏远了。就像我偶尔几个好友,有时候想联系一下,拿起电话却不知说啥,只好又悻悻的的放下。另外,现在的生活忙碌的像陀螺一样不停的旋转,也根本没有哪怕一丁点的时间与朋友小聚。对我的朋友,我真的要诚挚地表示一下我的歉意。 有几个积极的、阳光的好友,与他们一同分享快乐,共渡难关,互相学习,共同提高。那将是人生一大快事。不是都说快乐分享就是N份快乐,困难共担则是1/N份困难。我忘了原词怎么说的,但大致意思差不多了。同时从朋友的身上也能看到别人的优点,自己的缺点,等等等,所谓以人为镜吧。总之,交几个挚友还是要得的。 3:要有知识 这里的知识,不是单指你上学以后要学习的书本上的内容。而是泛指一切知识、技能、本领等。当你遨游在知识的海洋中,探索宇宙的真理,你就不会孤单和寂寞。古往今来的智者、科学家、艺术家、哲学家等都可以成为你的良师益友。你可以跨越时空与他们对话。 而如何获取知识,书籍无疑是最好的方式之一。当然现在网络这么发达,互联网也是很好的学习资源,就好比你自己在没人教导的情况下和IPAD学会了几首儿歌一样。将来你要更加学习善用各种网络资源。当然,不要沉迷,就像我们现在限制你玩PAD、手机一样,就是怕你沉迷,而你长大后,则要自己控制,这就是所谓的自制力。 好了,夜深了,你已然安静的入睡。每晚看你酣睡的样子,我的内心特别宁静,充溢着喜悦。再苦再累也觉得值了。我写的这些远远不够让你成为一个内心强大的人,或许里边一些观点还有一些偏谬,写得也混乱,但是就如前文所说的,随便记记随便聊聊,我相信你长大后,有足够的辨识能力,去其糟粕,取其精华。爸爸这就陪你去睡,我们一起做个美美的梦。 2014年3月23日 23:38分于家中

Posted in For Baby

利用Arduino连接LM35温度传感器测量室温

目的: 利用Arduino连接LM35温度传感器测量室温,学习Arduino以及LM35传感器的使用。 原文地址: http://www.joytag.com/arduino/sensor/利用arduino连接lm35温度传感器测量室温/ (转载请注明出处) 连接图&电路图: 略 问题总结: 1:管脚以及连线问题 LM35的管脚上没有标识,所以很难分清和记住管脚的对应关系以及如何连线。还好有手册可以查 http://www.ti.com/lit/ds/symlink/lm35.pdf 需要注意的是,文档中管脚示意图是”BOTTOM VIEW”(底部视图),也就是说是从管脚一侧向上看的视图,千万别弄反了。 2:输出电压与温度换算问题 当使用最简单的方式连接时(VS接5V直流电源,GND接地),那么VOUT的输出电压与摄氏温度成线性关系。0摄氏度对应0V, 每增加一摄氏度,电压增加10mV(毫伏)。 所以我们可以用万用表测试出电压值,直接转换成温度值。比如100mV就是10摄氏度。 使用程序,我们会读到0~1023范围内的一个数值。由于我们最终想读到的是温度值,而不是一个抽象的数字,所以我们需要把数字转换成温度(摄氏度)。网络上很多转换公式,很迷糊。这里自己做了一个直观的: val = data*5*1000/1024/10;          //data为读出的数值,val为换算后的温度 当然我们可以计算出后边的数值,直接套用进去,亦即: val = data*0.48828125; 3:读数变化幅度巨大的问题 当 所有连接就绪,代码运行起来后,发现室温的读数在19度到28度之间变化,这不科学啊。如果偏差有这么大,那么测试温度就没有意义了。重新连线,检查代 码,甚至怕传感器被连线影响,把管脚掰弯远离连线(自己汗一下),都没有解决问题。后来把9V电池的供电盒拔掉,只用USB供电,读数终 于稳定下来了。 百度了一下,说是电源噪声引起的信号变化,长见识了。(不过我原以为Arduino的电源接口部分会对这个做一些处理,莫非我买的是山寨板?) 4:误差问题 解决以上问题后,LCD的上读数基本稳定了,与温度计实际测试的室温基本相同。但是读数偶尔会上下差0.2左右,这个误差应该在合理范围内。为了让读数更 准确,我采取了2000次采样求平均值的方式,这样读数基本恒定了。 结论: 小小的LM35,本以为接上就可以呢,结果遇到这么些问题,看来还是要努力啊! 文成仓促,错漏难免,如有发现,烦请赐教。 联系邮件:support@joytag.com 转载请注明出处:http://www.joytag.com/arduino/sensor/利用arduino连接lm35温度传感器测量室温/

Posted in sensor(传感器)

十年磨一剑,现在开始磨

——送给宝宝的礼物。 Joytag.com 这个域名注册于2004年8月4日,近10载光阴,可谓久矣。 人说“十年磨一剑”,10年了,总该有些成就。但回首,这个域名几近荒废,期间断断续续放一些内容,由于精力有限,总是不了了之,万分惭愧。 最近接触了Arduino, Raspberry(树莓派)等开源硬件,打开了全新的一扇窗,激起了久违的兴趣。刚刚购置了设备,折腾了两天基本摸清了些头绪,但是还是有很多内容需要进一步了解和尝试。期间有些心得和体会,迫切的想记录下来以及分享给还在摸索中的朋友。于是乎萌生了做一个新网站的想法。希望她成为我学习和实践的好助手,也希望能为同在奋斗中的朋友提供哪怕一丁点的帮助。 好吧,“十年磨一剑,现在开始磨”。希望十年后,这个站能有一点点规模。 再说一下网站的名称,JoyTag,取义快乐标签,音译为“卓泰”。 我的宝宝名字中也含有一个“卓”字,寓意卓越,希望他能不断超越自己,攀登新的高峰。而这个域名原本打算给宝宝做一个成长记录站,”卓泰“是希望他能健康快乐幸福安泰。一直忙于琐事,网站一直没搭起来,愧对宝宝。现在就这个机会,把网站搭建起来,希望他长大一些可以一起参与进来,十年后,可以作为一份礼物送给他。希望他用这把闲置十年磨了十年的宝剑披荆斩棘,开创属于他的美好人生。 写的很乱,就这样吧。集中精力,开工了。

Posted in Arduino, Hareware, Interest(闲情逸致), Raspberry Pi(树莓派), Software

学习arduino

测试

Posted in Arduino