¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
1
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁØ Ëع ¹µ 굄 â¹Áѵ Ô IPST-BOT IPST-BOT robot kit activity manual
2 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
IPST-BOT robot kit Activity manual
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
ʧǹÅÔ¢ÊÔ·¸Ôµì ÒÁ ¾.Ã.º. ÅÔ¢ÊÔ·¸Ôì ¾.È. 2537 Ë ÒÁ¡ÒÃÅÍ¡àÅÕ¹äÁ ÇÒ Ê Ç¹Ë¹Ö§è Ê Ç¹ã´¢Í§Ë¹Ñ§Ê×ÍàÅ Á¹Õé ¹Í¡¨Ò¡¨Ðä´ ÃºÑ Í¹ØÒµ ã¤Ã¤ÇÃ㪠˹ѧÊ×ÍàÅ Á¹Õé 1. ¹Ñ¡àÃÕ¹ ¹ÔÊµÔ ¹Ñ¡ÈÖ¡ÉÒ áÅкؤ¤Å·ÑÇè ä»·ÕÁè ¤Õ ÇÒÁʹã¨ã¹¡ÒùíÒäÁâ¤Ã¤Í¹â·ÃÅàÅÍà 任ÃÐÂØ¡µ 㪠㹡Ò÷´Åͧ à¡ÕÂè ǡѺ¡Ò÷íÒ§Ò¹¢Í§ÃкºÍѵâ¹ÁÑµÔ ËÃ×Íʹã¨ã¹¡ÒÃàÃÕ¹ÃÙá Åз´ÅͧäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ã¹á¹Ç·Ò§ãËÁ ·ãÕè ª ¡Ô¨¡ÃÃÁËع ¹µ 굄 â¹ÁѵàÔ » ¹Ê×Íè 2. ʶҺѹ¡ÒÃÈÖ¡ÉÒ âçàÃÕ¹ ÇÔ·ÂÒÅÑ ÁËÒÇÔ·ÂÒÅÑ ·ÕÁè ¡Õ ÒÃà» ´¡ÒÃàÃÕ¹¡ÒÃÊ͹ÇÔªÒÍÔàÅç¡·ÃÍ¹Ô¡Ê ËÃ×ÍÀÒ¤ÇÔªÒ ÇÔÈÇ¡ÃÃÁÍÔàÅç¡·ÃÍ¹Ô¡Ê áÅФÍÁ¾ÔÇàµÍà 3. ¤³Ò¨Òà·ÁÕè ¤Õ ÇÒÁµ ͧ¡ÒÃÈÖ¡ÉÒ áÅÐàµÃÕÂÁ¡ÒÃàÃÕ¹¡ÒÃÊ͹ÇÔªÒäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ÃÇÁ¶Ö§ÇÔ·ÂÒÈÒʵà »ÃÐÂØ¡µ ·Õèµ Í§¡ÒúÙóҡÒäÇÒÁÃÙ ·Ò§ÍÔàÅç¡·ÃÍ¹Ô¡Ê -äÁâ¤Ã¤Í¹â·ÃÅàÅÍà --¡ÒÃà¢Õ¹â»Ãá¡ÃÁ¤ÍÁ¾ÔÇàµÍà ¡Ò÷´Åͧ·Ò§ÇÔ·ÂÒÈÒʵà ã¹ÃдѺÁѸÂÁÈÖ¡ÉÒ ÍÒªÕÇÈÖ¡ÉÒ áÅлÃÔÒµÃÕ ´íÒà¹Ô¹¡ÒèѴ¾ÔÁ¾ áÅШíÒ˹ ÒÂâ´Â ºÃÔÉ·Ñ ÍÔ¹â¹àǵտ àÍç¡à¾ÍÃÔàÁ¹µ ¨íÒ¡Ñ´ 108 «.ÊØ¢ÁØ ÇÔ· 101/2 ¶.ÊØ¢ÁØ ÇÔ· á¢Ç§ºÒ§¹Ò ࢵºÒ§¹Ò ¡ÃØ§à·¾Ï 10260 â·ÃÈѾ· 0-2747-7001-4 â·ÃÊÒà 0-2747-7005 ÃÒÂÅÐàÍÕ´·Õ»è ÃÒ¡¯ã¹Ë¹Ñ§Ê×ÍàÅ Á¹Õäé ´ ¼Ò ¹¡ÒõÃǨ·Ò¹Í ҧÅÐàÍÕ´áÅж ǹ¶Õè à¾×Íè ãË Á¤Õ ÇÒÁÊÁºÙó áÅÐ ¶Ù¡µ ͧÁÒ¡·ÕÊè ´Ø ÀÒÂãµ à§×Íè ¹ä¢áÅÐàÇÅÒ·Õ¾è §Ö ÁÕ¡Í ¹¡ÒèѴ¾ÔÁ¾ à¼Âá¾Ã ¤ÇÒÁàÊÕÂËÒÂÍѹÍÒ¨à¡Ô´¨Ò¡¡ÒùíÒ¢ ÍÁÙÅ ã¹Ë¹Ñ§Ê×ÍàÅ Á¹Õäé »ãª ·Ò§ºÃÔÉ·Ñ ÍÔ¹â¹àǵտ àÍç¡à¾ÍÃÔàÁ¹µ ¨íÒ¡Ñ´ ÁÔä´ ÁÀÕ ÒÃÐ㹡ÒÃÃѺ¼Ô´ªÍºáµ »ÃСÒÃã´ ¤ÇÒÁ¼Ô´¾ÅÒ´¤ÅÒ´à¤Å×Íè ¹·ÕÍè Ò¨ÁÕáÅÐä´ ÃºÑ ¡ÒèѴ¾ÔÁ¾ à¼Âá¾Ã ÍÍ¡ä»¹Ñ¹é ·Ò§ºÃÔÉ·Ñ Ï ¨Ð¾ÂÒÂÒÁªÕáé ¨§áÅÐá¡ ä¢ ã¹¡ÒèѴ¾ÔÁ¾ ¤ÃÑ§é µ Íä»
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
3
â¤Ã§¡Òà IPST-BOT ªØ´àÃÕ¹ÃÙ áÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËØ ¹Â¹µ Íѵâ¹ÁÑµÔ â¤Ã§¡ÒêشËع ¹µ IPST-BOT à» ¹â¤Ã§¡Ò÷յè Í ÂÍ´¨Ò¡ªØ´¡Å ͧÊÁͧ¡Å IPST-MicroBOX à¾×è͹íÒàʹÍá¹Ç·Ò§áÅСԨ¡ÃÃÁ㹡ÒûÃÐÂØ¡µ 㪠ªØ´¡Å ͧÊÁͧ¡ÅÁÒÊà ҧ໠¹ËØ ¹Â¹µ Íѵâ¹ÁÑµÔ ¢¹Ò´àÅç¡ËÃ×Í Programmable Mobile Robot â´ÂËع ¹µ ·ãÕè ª ã¹â¤Ã§¡ÒùÕàé » ¹ªØ´Ëع ¹µ 굄 â¹ÁÑµÔ ·Õ¢è ºÑ à¤Å×Íè ¹´ ÇÂà«Íà âÇÁÍàµÍà 㹡ÒôíÒà¹Ô¹¡Ô¨¡ÃÃÁ¢Í§ IPST-BOT ¹Ñ¹é ÊÒÁÒö´íÒà¹Ô¹¡Òõ ÍÂÍ´¨Ò¡ÍØ»¡Ã³ Áҵðҹ㹪ش ¡ÅÍ §ÊÁͧ¡Å IPST-MicroBOX ä´ à¾Õ§¨Ñ´ËÒÍØ»¡Ã³ ·Ò§¡Åà¾ÔÁè àµÔÁ ÍÒ·Ô ÁÍàµÍà , á¼ ¹°Ò¹, â¤Ã§ Êà ҧ, Å Í, ÂÒ§, ¡ÐºÐ¶ Ò¹ áÅÐἧǧ¨Ãà¾ÔèÁàµÔÁ¾ÔàÈÉ·Õèª ÇÂ㹡ÒúÃÔËÒþÅѧ§Ò¹ä¿¿ ÒáÅТѺ ÁÍàµÍà ·§Ñé ẺÁÍàµÍà 俵ç¾×¹é °Ò¹áÅÐà«Íà âÇÁÍàµÍÃ á¡ Ë¹Ø Â¹µ ËÃ×ͨШѴËÒà» ¹ªØ´¤Ãº¶ ǹ¡çä´ Çѵ¶Ø»ÃÐʧ¤ 㹡ÒôíÒà¹Ô¹¡ÒÃâ¤Ã§¡Òùդé Í× 1.à¾×è;Ѳ¹ÒãË ªØ´¡Å ͧÊÁͧ¡ÅÊÒÁÒö¹íÒä»ãª 㹡Ԩ¡ÃÃÁ·ÕèÁÕ¤ÇÒÁËÅÒ¡ËÅÒ â´Â੾ÒÐÍ ҧÂÔ觡Ѻ¡ÒèѴ¡Ô¨¡ÃÃÁà¡ÕèÂǡѺ¡ÒäǺ¤ØÁËØ ¹Â¹µ Íѵâ¹ÁÑµÔ 2.à¾×èÍà» ¹µÑÇÍ ҧËÃ×Í·Ò§àÅ×͡㹡ÒâÂÒÂâÍ¡ÒÊ ÊíÒËÃѺ¡ÒþѲ¹ÒÊ×èÍ¡ÒÃàÃÕ¹ ¡ÒÃÊ͹ÇÔ·ÂÒÈÒʵà áÅÐà·¤â¹âÅÂÕ·ãÕè ª Ë¹Ø Â¹µ à» ¹Ê×Íè ÊíÒËÃѺ¤ÃÙ-ÍÒ¨Òà3. à¾×èÍàµÃÕÂÁ¡ÒÃÊíÒËÃѺ¡Òý ¡ÍºÃÁà¾×èÍ¡ÒûÃÐÅͧ¤ÇÒÁÃÙ ¤ÇÒÁÊÒÁÒö㹡Òà à¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ ÊíÒËÃѺ¡ÒèѴÊ×Íè ËÃ×ͤÙÁ Í× »ÃСͺ㹡ÒÃàÃÕ¹ÃÙá ÅдíÒà¹Ô¹¡Ô¨¡ÃÃÁ¹Ñ¹é ä´ ¨´Ñ ·íÒ˹ѧÊ×Í¡Òà Êà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT ´ ÇÂÀÒÉÒ C à¾×Íè 㪠»ÃСͺ㹠¡ÒÃàÃÕ¹ÃÙá Åз´Åͧ¾Ã ÍÁ¡Ñ¹¹ÕÊé ÒÁÒö㪠˹ѧÊ×Í¡Ò÷´ÅͧáÅÐà¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ·Ñ§é 6 àÅ Á ·ÕÁè ãÕ ¹ªØ´ IPST-MicroBOX »ÃСͺ㹡ÒÃàÃÕ¹ÃÙá ÅзíÒ¤ÇÒÁࢠÒã¨Ã ÇÁ´ ÇÂä´ ªØ´ IPST-BOT robot kit à» ¹Ê×Íè ¡ÒÃàÃÕ¹ÃÙ· Ò§àÅ×Í¡ÊíÒËÃѺ¤ÃÙ-ÍÒ¨ÒàáÅйѡàÃÕ¹·ÕÁè ¤Õ ÇÒÁ»ÃÐʧ¤ 㹡Òõ ÍÂÍ´ ËÃ×Í»ÃÐÂØ¡µ 㪠ª´Ø ¡Å ͧÊÁͧ¡Å IPST-MicroBOX 㹡Ԩ¡ÃÃÁ´ Ò¹Ëع ¹µ 굄 â¹Áѵ·Ô ¤Õè Ǻ¤ØÁ´ ÇÂâ»Ãá¡ÃÁÀÒÉÒ C ´íÒà¹Ô¹¡ÒÃâ´Â ºÃÔÉ·Ñ ÍÔ¹â¹àǵտ àÍç¡à¾ÍÃÔàÁ¹µ ¨íÒ¡Ñ´ ¡ÒèѴËÒÊ×Íè ¡ÒÃàÃÕ¹ÃÙ¹ àÕé » ¹ä»ã¹ÃٻẺÊÁѤÃ㨠¡Òà ºÃÔ¡ÒÃà¡ÕÂè ǡѺ¡ÒèѴËÒáÅЫ ÍÁá«ÁÍØ»¡Ã³ ÍÂÙÀ ÒÂãµ ¤ÇÒÁÃѺ¼Ô´ªÍº¢Í§ºÃÔÉ·Ñ ÍÔ¹â¹àǵտ àÍç¡à¾ÍÃÔàÁ¹µ ¨íÒ¡Ñ´
4 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¤íÒªÕáé ¨§¨Ò¡¤³Ð¼Ùà ¢Õ¹/àÃÕºàÃÕ§ ¡ÒùíÒàʹ͢ ÍÁÙÅà¡ÕÂè ǡѺ¢ ÍÁÙŷҧ෤¹Ô¤áÅÐà·¤â¹âÅÂÕã¹Ë¹Ñ§Ê×ÍàÅ Á¹Õé à¡Ô´¨Ò¡¤ÇÒÁµ ͧ ¡Ò÷ըè Ð͸ԺÒ¡Ãкǹ¡ÒÃáÅÐËÅÑ¡¡Ò÷íÒ§Ò¹ ¢Í§ÍØ»¡Ã³ ã¹ÀÒ¾ÃÇÁ´ Ƕ ͤíÒ·Õ§è Ò Âà¾×Íè Êà ҧ ¤ÇÒÁࢠÒã¨á¡ ¼ÍÙ Ò ¹ ´Ñ§¹Ñ¹é ¡ÒÃá»Å¤íÒÈѾ· ·Ò§à·¤¹Ô¤ËÅÒÂæ ¤íÒÍÒ¨äÁ µÃ§µÒÁ¢ ͺÑѵ¢Ô ͧÃÒª ºÑ³±ÔµÂʶҹ áÅÐÁÕËÅÒÂæ ¤íÒ·ÕèÂѧäÁ ÁÕ¡ÒúÑѵÔÍ ҧ໠¹·Ò§¡Òà ¤³Ð¼Ù à¢Õ¹¨Ö§¢Í͹ØÒµ ºÑѵÈÔ ¾Ñ · ¢¹Öé ÁÒ㪠㹡ÒÃ͸ԺÒ â´ÂÁÕ¢Í ¨íÒ¡Ñ´à¾×Íè Í Ò§ÍÔ§ã¹Ë¹Ñ§Ê×ÍàÅ Á¹Õàé · Ò¹Ñ¹é ·Ñ§é ¹ÕÊé Òà˵ØËÅÑ¡¢Í§¢ ͪÕáé ¨§¹ÕÁé Ò¨Ò¡ ¡ÒÃÃǺÃÇÁ¢ ÍÁÙŢͧÍØ»¡Ã³ ã¹ÃкºÊÁͧ¡Å½ §µÑÇ áÅÐà·¤â¹âÅÂÕË¹Ø Â¹µ ÊÒí ËÃѺ¡ÒÃÈÖ¡ÉÒà¾×Íè ¹íÒÁÒàÃÕºàÃÕ§໠¹ÀÒÉÒä·Â¹Ñ¹é ·íÒä´ äÁ §Ò ¹ѡ ·Ò§¤³Ð ¼Ùà ¢Õ¹µ ͧ·íÒ¡ÒÃÃǺÃÇÁáÅз´Åͧà¾×Íè ãË á¹ ã¨Ç Ò ¤ÇÒÁࢠÒã¨ã¹¡Ãкǹ¡Ò÷íÒ§Ò¹µ Ò§æ ¹Ñ¹é ÁÕ¤ÇÒÁ ¤ÅÒ´à¤Å×Íè ¹¹ Í·ÕÊè ´Ø àÁ×Íè µ ͧ·íÒ¡ÒÃàÃÕºàÃÕ§ÍÍ¡ÁÒà» ¹ÀÒÉÒä·Â ÈѾ· ·Ò§à·¤¹Ô¤ËÅÒ¤íÒÁÕ¤ÇÒÁËÁÒÂ·Õ·è ºÑ « ͹ ¡Ñ¹ÁÒ¡ ¡ÒúÑѵÈÔ ¾Ñ · ¨§Ö à¡Ô´¨Ò¡¡Òû¯ÔºµÑ ¨Ô Ãԧà ÇÁ¡Ñº¤ÇÒÁËÁÒ·ҧÀÒÉÒÈÒʵà ´Ñ§¹Ñ¹é ËÒ¡ÁÕ¤ÇÒÁ ¤ÅÒ´à¤Å×Íè ¹ËÃ×ͼԴ¾ÅÒ´à¡Ô´¢Ö¹é ·Ò§¤³Ð¼Ùà ¢Õ¹¢Í¹ ÍÁÃѺáÅÐËÒ¡ä´ ÃºÑ ¤íÒ͸ԺÒÂËÃ×ͪÕáé ¹Ð¨Ò¡· Ò¹ ¼Ùà ¨Ù Ðä´ ·Òí ¡ÒêÕáé ¨§áÅлÃѺ»Ãا¢ ͼԴ¾ÅÒ´·ÕÍè Ò¨ÁÕàËŠҹѹé â´ÂàÃçÇ·ÕÊè ´Ø ·Ñ§é ¹Õàé ¾×Íè ãË ¡ÒþѲ¹ÒÊ×Íè ·Ò§ÇÔªÒ¡Òà â´Â੾ÒÐÍ ҧÂÔ§è ¡Ñº¤ÇÒÁÃÙ¢ ͧ෤â¹âÅÂÕÊÁÑÂãËÁ ÊÒÁÒö´íÒà¹Ô¹ä»ä´ Í ҧµ Íà¹×Íè § ÀÒÂãµ ¡ÒÃÁÕÊÇ ¹Ã ÇÁ¢Í§¼Ùà ãÙ ¹·Ø¡ÀÒ¤Ê Ç¹
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
5
ÊÒÃºÑ º··Õè 1 á¹Ð¹íÒ IPST-BOT robot kit ªØ´Ëع ¹µ 굄 â¹Áѵ.Ô .....................................................7 º··Õè 2 Êà ҧËع ¹µ IPST-BOT............................................................................................... 25 º··Õè 3 ¡ÒþѲ¹Òâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺªØ´Ëع ¹µ IPST-BOT...................................35 º··Õè 4 ªØ´¤íÒÊѧè ÀÒÂã¹äźÃÒÃբͧâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ¤Çº¤ØÁËع ¹µ IPST-BOT.........................................................................65 º··Õè 5 ¢Ñºà¤Å×Íè ¹Ëع ¹µ IPST-BOT.....................................................................................83 º··Õè 6 IPST-BOT ¡Ñº¡ÒÃËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇҧẺÊÑÁ¼ÑÊ................................................95 º··Õè 7 µÃǨ¨ÑºáÅÐÇÑ´ÃÐÂзҧ´ ÇÂáʧÍÔ¹¿ÃÒàô ........................................................115 º··Õè 8 Ëع ¹µ IPST-BOT ¡ÑºÀÒÃСԨµÃǨ¨ÑºàÊ ¹...........................................................125 º··Õè 9 Ëع ¹µ IPST-BOT ¡Ñº¡ÒâѺà«Íà âÇÁÍàµÍà ........................................................165
6 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
7
º··Õè 1
á¹Ð¹íÒ IPST-BOT
ªØ´ËØ ¹Â¹µ Íѵâ¹ÁѵÔà͹¡»ÃÐʧ¤ à¾×èÍ¡ÒÃàÃÕ¹ÃÙ IPST-BOT à» ¹ªØ´ÍØ»¡Ã³ ÊÒí ËÃѺÊà ҧáÅоѲ¹Òâ»Ãá¡ÃÁà¾×Íè ¤Çº¤ØÁËع ¹µ 굄 â¹Áѵ¢Ô ¹Ò´àÅç¡·Õ¢è ºÑ à¤Å×Íè ¹´ Ǫش࿠ͧ¢ÑºÁÍàµÍà 俵çáÅÐ/ËÃ×Íà«Íà âÇÁÍàµÍà â´Â㹪ش»ÃСͺ´ Ç ἧǧ¨Ã¤Çº¤ØÁËÅÑ¡«Ö§è ÁÕ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ໠¹ÍØ»¡Ã³ ËÅÑ¡, ἧǧ¨Ãâ»Ãá¡ÃÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍà , ἧǧ¨ÃÍØ»¡Ã³ µÃǨ¨Ñº ÊÑÒ³ËÃ×Íૹà«Íà (sensor) «Ö§è ÁÕËÅÒÂÃٻẺ, ªØ´à¿ ͧ¢ÑºÁÍàµÍà 俵ç, à«Íà âÇÁÍàµÍà áÅЪԹé Ê Ç¹·Ò§¡Å ·Õ¨è Òí à» ¹ ´Ñ§¹Ñ¹é ¨Ö§ÊÒÁÒö¹íÒËع ¹µ IPST-BOT ¹ÕÁé Ò㪠㹡ÒÃàÃÕ¹ÃÙ, ·´ÅͧáÅоѲ¹ÒËع ¹µ 굄 â¹ÁѵáÔ ºº â»Ãá¡ÃÁä´ Íѹ໠¹¡Òõ ÍÂÍ´¤ÇÒÁÃÙ¨ Ò¡ªØ´¡Å ͧÊÁͧ¡Å IPST-MicroBOX
1.1 ÃÒ¡ÒÃÍØ»¡Ã³ ·ãÕè ª ã¹Ëع ¹µ IPST-BOT
1. ἧǧ¨ÃËÅÑ¡ MicroBOX (ÊÒÁÒö㪠¨Ò¡ªØ´¡Å ͧÊÁͧ¡Å IPST-MicroBOX ä´ ) 2. ªØ´´Òǹ âËÅ´â»Ãá¡ÃÁ¼ Ò¹¾Íà µ USB 3. ἧǧ¨Ãä¿áÊ´§¼Å 2 ªØ´ (ÊÒÁÒö㪠¨Ò¡ªØ´¡Å ͧÊÁͧ¡Å IPST-MicroBOX ä´ ) 4. ἧǧ¨ÃÊÇÔµª 2 ªØ´ (ÊÒÁÒö㪠¨Ò¡ªØ´¡Å ͧÊÁͧ¡Å IPST-MicroBOX ä´ ) 5. âÁ´ÙŵÃǨ¨ÑºáÅÐÇÑ´ÃÐÂзҧẺÍÔ¹¿ÃÒàô (ÊÒÁÒö㪠¨Ò¡ªØ´¡Å ͧÊÁͧ¡Å IPST-MicroBOX ä´ ) 6. ἧǧ¨ÃÅíÒ⾧໠Ââ« (ÊÒÁÒö㪠¨Ò¡ªØ´¡Å ͧÊÁͧ¡Å IPST-MicroBOX ä´ ) 7. ἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô ZX-03 ¨íҹǹ 3 ªØ´ 8. ἧǧ¨ÃáÊ´§¼ÅâÁ´ÙÅ LCD áÅТѺÁÍàµÍà (Display-MOTOR) 9. ªØ´à¿ ͧ¢ÑºÁÍàµÍà 俵ç ÍѵÃÒ·´ 87:1 ¾Ã ÍÁÊÒµ Í ¨íҹǹ 2 µÑÇ 10. à«Íà âÇÁÍàµÍà ẺÁҵðҹ ¨íҹǹ 1 µÑÇ 11. Š;ÅÒʵԡ¡ÅÁÊíÒËÃѺªØ´à¿ ͧ¢ÑºÁÍàµÍà 俵çáÅÐÂÒ§ ¨íҹǹ 2 ªØ´ 12. ªØ´»ÃСͺŠÍÊÒ¾ҹ 13. ¡ÐºÐ¶ Ò¹¢¹Ò´ AA 5 ¡ ͹ ẺÁÕÊÒµ Í 14. á¼ ¹¡ÃÔ´¢¹Ò´ 80N60 ૹµÔàÁµÃáÅÐ 80N80 ૹµÔàÁµÃ ¨íҹǹ 2 ªØ´ 15. ªØ´»ÃСͺἠ¹°Ò¹ 16. ªÔ¹é µ Í/á· §µ ;ÅÒʵԡ 17. ªØ´©Ò¡âÅËÐ 18. ªØ´¹ÍµáÅÐÊ¡ÃÙ 19. á¼ ¹·´Êͺ¡ÒÃà¤Å×Íè ¹·Õµè ÒÁàÊ ¹¢Í§Ëع ¹µ 20. «Õ´ÃÕ ÍÁºÃèثͿµ áÇà áÅеÑÇÍ ҧâ»Ãá¡ÃÁ¡Ò÷´Åͧ 21. ˹ѧÊ×Í¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹Áѵ´Ô Ç ÂÀÒÉÒ C
8 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
1.2 ¤Ø³ÊÁºÑµ¢Ô ͧªØ´ÍØ»¡Ã³ ã¹Ê ǹäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ËÅÑ¡ 1.2.1 ἧǧ¨ÃËÅÑ¡ MicroBOX
ã¹ÃÙ»·Õè 1-1 áÊ´§Ê ǹ»ÃСͺ¢Í§á¼§Ç§¨ÃËÅÑ¡ Ê Ç¹ÃÙ»·Õè 1-2 à» ¹Ç§¨ÃÊÁºÙó ÁÕ¤³ Ø ÊÁºÑµâÔ ´ÂÊÃØ»´Ñ§¹Õé l 㪠äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ¢¹Ò´ 8 ºÔµàºÍà ATmega16 ¢Í§ Atmel ÀÒÂã¹ÁÕâÁ´ÙÅá»Å§ÊÑÒ³ ÍйÒÅÍ¡à» ¹´Ô¨µÔ ÍŤÇÒÁÅÐàÍÕ´ 10 ºÔµ ÁÕ˹ ǤÇÒÁ¨íÒâ»Ãá¡ÃÁẺá¿Åª 16 ¡ÔâÅ亵 â»Ãá¡ÃÁãËÁ ä´ 10,000 ¤ÃÑ§é ´ Ç¡Ãкǹ¡ÒÃâ»Ãá¡ÃÁã¹Ç§¨ÃËÃ×Í ISP (In-System Programming) ¼ Ò¹·Ò§¨Ø´µ Í ISP ÁÕ˹ Ç ¤ÇÒÁ¨íÒ¢ ÍÁÙÅÍÕÍ¾Õ ÃÍÁ 512 亵 áÅÐ˹ ǤÇÒÁ¨íÒ¢ ÍÁÙÅáÃÁ 1 ¡ÔâÅ亵 ÊÑÒ³¹ÒÌ ¡Ò 16MHz ¨Ò¡¤ÃÔʵÍÅ l ÁÕ¨´ Ø µ ;Íà µáºº 3 ¢Ò (¢Òä¿àÅÕÂé §, ÊÑÒ³ áÅСÃÒÇ´ ) ¨íҹǹ 24 ¨Ø´ Ạ§à» ¹¢Ò¾Íà µ ´Ô¨ÔµÍÅ 16 ¨Ø´ áÅТҾÍà µáºº´Ô¨ÔµÍÅËÃ×ÍÍйÒÅÍ¡ (¡íÒ˹´ä´ ) 8 ¨Ø´áÅÐÁըشµ Í¢Ò¾Íà µ C Ẻ 10 ¢Ò (¢Òä¿àÅÕÂé §, ÊÑÒ³ 8 ¢Ò¤×Í PC0 ¶Ö§ PC7 áÅСÃÒÇ´ ) ¨íҹǹ 1 ¨Ø´ l ÁÕ¨´ Ø µ Í¢Ò¾Íà µ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà à¾×Íè ¡ÒâÂÒÂÃкº l 㪠ä¿àÅÕÂ é §ã¹Â Ò¹ +6 ¶Ö§ +12V ¡ÃÐáÊ 500mA ÁÕǧ¨Ã¤Çº¤ØÁáç´Ñ¹¤§·Õè +5V l ÁÕÊÇÔµª RESET ¡Ò÷íÒ§Ò¹
PB3
PB2 PB0
¨Ø´µ ;Íà µÍÔ¹¾ØµàÍÒµ ¾µØ Ẻ´Ô¨µÔ ÍÅ (PB0 ¶Ö§ PB4)
PB1
TxD
RxD ISP
PD3
RESET
PD2
PD5
PD1
PD4
PD7
PD0
PD6
äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ATmega16
¨Ø´µ Í¢ÒäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ATmega16 â´ÂµÃ§
PB4
¨Ø´µ ͪشâ»Ãá¡ÃÁ ·Ñ§é Ẻ¾Íà µ¢¹Ò¹, ¨Ø´µ ;Íà µÍÔ¹¾ØµàÍÒµ ¾µØ ͹ءÃÁ áÅÐ USB Ẻ´Ô¨µÔ ÍÅ (PD0 ¶Ö§ PD7) ÊÇÔµª ÃàÕ «µ¡Ò÷íÒ§Ò¹
ON
OFF
PORTC
PA7
PA6
ÊÇÔµª POWER à» ´-» ´ä¿àÅÕÂé § LED áÊ´§Ê¶Ò¹Ðä¿àÅÕÂé § ¨Ø´µ ;Íà µÍÔ¹¾ØµàÍÒµ ¾µØ Ẻ´Ô¨µÔ ÍÅ (PC0 ¶Ö§ PC7)
ÃÙ»·Õè 1-1 áÊ´§Ê ǹ»ÃСͺËÅÑ¡¢Í§á¼§Ç§¨ÃËÅÑ¡ MicroBOX
PA3 PA5
PA1
PA2 PA4
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V
+ Vin DC input
ᨠ¡ÍÐá´»àµÍà ÊÒí ËÃѺ µ Íä¿àÅÕÂé § +6 ¶Ö§ +12V
PA0
ATMEGA16
¨Ø´µ Íä¿àÅÕÂé § +6 ¶Ö§ +12V Ẻà·Íà Á¹Ô ÍźÅçÍ¡
IPST MicroBOX
¨Ø´µ ;Íà µÍÔ¹¾ØµàÍÒµ ¾µØ Ẻ´Ô¨µÔ ÍÅáÅÐ ÍÔ¹¾ØµÍйÒÅÍ¡ (PA0 ¶Ö§ PA7)
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
+5V
R3 47R
+5V
MOSI RESET
C4 0.1/50V
R2 4.7k
9 SW1 Reset R4 150R
SCK MISO
R6 150R
J1 PB0
R7 150R
PA1
7 PB6/MISO
PA2
8 PB7/SCK
PA3 PA4 PA5 PA6 PA7
4 PB3
R11 150R
J5 PB4
6 PB5/MOSI
3 PB2
R10 150R
J4 PB3
1+ PA0 ATMEGA16
2 PB1
R9 150R
J3 PB2
PD0
+5V
J22 PORTC
22
R13 150R
PD1 PC0
PD2
23 PC1
R14 150R R15 150R R16 150R R17 150R
24 PC2
PD3
25
PC3
PD4
26 PC4
PD5
27
R18 150R
28
R19 150R
29
PC5
PD6
PC6
PD7
PC7
GND GND
XTAL1 12 C6 30pF
K1 + DC IN/OUT K2 AC/DC input 6-12V
R1 1k BD1 W04M
XTAL2 13 Xtal1 16MHz
S1 POWER
40 39 38 37 36 35 34 33
R20 150R
C2 1000/6.3V
C3 1000uF/6.3V
+5V J6 PA0
R21 150R
J7 PA1
R22 150R
J8 PA2
R23 150R
J9 PA3
R24 150R
J10 PA4
R25 150R
J11 PA5
R26 150R
J12 PA6
R27 150R
J13 PA7 +5V
5 PB4
R12 150R
C1 0.1/50V
RESET
1 PB0
R8 150R
J2 PB1
10 VCC
AREF
C5 0.1/50V
R5 150R
+5V
32
30 AVCC
D1 1N4002
IC1 LM2940-5.0 LED1
ÃÙ»·Õè 1-2 ǧ¨ÃÊÁºÙó ¢Í§á¼§Ç§¨ÃËÅÑ¡ MicroBOX
C7 30pF
+5V
14 15 16 17 18 19 20 21 11 31
R28 150R R29 150R R30 150R R31 150R R32 150R R33 150R R34 150R R35 150R
J14 PD0/RxD J15 PD1/TxD J16 PD2 J17 PD3 J18 PD4 J19 PD5 J20 PD6 J21 PD7
9
10 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
1.2.2 ἧǧ¨ÃáÊ´§¼ÅáÅФǺ¤ØÁÁÍàµÍà : Display-MOTOR à» ¹á¼§Ç§¨ÃàÊÃÔÁ·Õµè ´Ô µÑ§é ࢠҡѺἧǧ¨ÃËÅÑ¡ MicroBOX ¼ Ò¹¨Ø´µ Í¢Ò¾Íà µ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà à¾×Íè ¡ÒâÂÒÂÃкº áÊ´§ã¹ÃÙ»·Õè 1-3 áÅÐã¹ÃÙ»ÂѧáÊ´§Ê ǹ»ÃСͺµ Ò§æ ¢Í§á¼§Ç§¨Ã¹Õ´é Ç Â Ê Ç¹Ç§¨ÃÊÁºÙó áÊ´§ã¹ÃÙ»·Õè 1-4 ¤Ø³ÊÁºÑµ·Ô ҧ෤¹Ô¤·ÕÊè Òí ¤ÑÁÕ´§Ñ ¹Õé l ÁÕ¨´ Ø µ Íä¿àÅÕÂé § (DC INPUT) 2 ¨Ø´ ¼ Ò¹·Ò§¨Ø´µ ÍÊÒÂẺ¢Ñ¹Ê¡ÃÙáÅм Ò¹·Ò§á¨ ¡ÍÐá´»àµÍà â´ÂÁÕÊÇÔµª à» ´-» ´à¾×Íè µÑ´µ Íä¿àÅÕÂé §á¡ á¼§Ç§¨Ã l ÁÕǧ¨ÃµÃǨÊͺÃдѺä¿àÅÕÂ é §¢Í§ÃкºáÊ´§¼Å´ Ç LED 5 ´Ç§â´Â - LED ÊÕàËÅ×ͧ« ÒÂÊشᨠ§ÀÒÇÐÃдѺáç´Ñ¹¢Í§áºµàµÍÃÕÍè Í ¹ (LOW BATT.) - LED ÊÕàËÅ×ͧ㹵íÒá˹ §¶Ñ´ÁÒ á¨ §ÃдѺä¿àÅÕÂé §ÍÔ¹¾Øµ 5.4V - LED ÊÕà¢ÕÂÇã¹µíÒá˹ §¶Ñ´ÁÒ á¨ §ÃдѺä¿àÅÕÂé §ÍÔ¹¾Øµ 5.8V - LED ÊÕà¢ÕÂÇã¹µíÒá˹ §¶Ñ´ÁÒ á¨ §ÃдѺä¿àÅÕÂé §ÍÔ¹¾Øµ 6.2V - LED ÊÕá´§·Ò§¢ÇÒÊØ´ ᨠ§ÃдѺáç´Ñ¹ä¿àÅÕÂé §ÍÔ¹¾Øµ¢Í§á¼§Ç§¨ÃÊÙ§¡Ç Ò +7.5V «Ö§è ÍÒ¨·íÒãË à«Íà âÇÁÍàµÍà àÊÕÂËÒÂä´ ËÒ¡¹íÒÁÒµ ͡ѺÃкº (Í ҧäáçµÒÁà«Íà âÇÁÍàµÍà ºÒ§Ãع ºÒ§ÂÕËè Í ÊÒÁÒö ÃѺáç´Ñ¹ä¿àÅÕÂé §ÊÙ§¡Ç Ò +7.5V ¢ÍãË µÃǨÊͺ¤Ø³ÊÁºÑµ¢Ô ͧà«Íà âÇÁÍàµÍà ¡Í ¹ãª §Ò¹) ¨Ø´µ ;Íà µÍ¹Ø¡ÃÁ â´Â㪠ÊÒ CX-4 ¨Ø´µ ÍÍØ»¡Ã³ ÃкººÑÊ I C µÑǵ Ò¹·Ò¹»ÃѺ¤ Òä´ ¨Ø´µ Íä¿àÅÕÂé §¨Ò¡ÍÐá´»àµÍà ËÃ×ÍẵàµÍÃÕè +6 ¶Ö§ +12V µ ͡Ѻ¢Ò PA7 PORTC
PA7
PA6
IPST MicroBOX PA0
I P S T - B O T o ro b o t D i s p l a y - MO T E R a r d
¨Ø´µ Íà«Íà âÇÁÍàµÍà 5 µÑÇ (PB0 ¶Ö§ PB4)
M2
ἧǧ¨ÃáÊ´§¼ÅáÅÐ ¤Çº¤ØÁÁÍàµÍà ¨Ø´µ ÍÁÍàµÍà 俵ç 2 µÑÇ
M1
PD7 PD6
PD1
PD5
PD0
PD4
TxD
MOTOR OUTPUT PD3
* * * *! *"
RxD
ä¿á¨ §ÃдѺ¢Í§áºµàµÍÃÕè
Display-MOTOR
PD2
SW3
DisplayMotor
PB2
PB4
ἧǧ¨ÃËÅÑ¡ MicroBOX ÍÂÙ´ Ò ¹Å Ò§
SW2
+ -
PB0
PB3
SW1
S
PB1
RESET
SERVO
ATMEGA16
PA2
PA1
Over 7.5V
++ Vin -
PA3
RS-232 LOW BATT.
ÊÇÔµª à» ´-» ´
Vm OUT
DC INPUT
SDA
DC input
OFF
ON
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
KNOB PA7
PA4
PA5
âÁ´ÙÅ LCD 16 µÑÇÍÑ¡Éà 2 ºÃ÷Ѵ SW1 ¶Ö§ SW3 ÊÇÔµª Í¹Ô ¾Øµ
ON
SCL
ä¿áÊ´§¡Ò÷íÒ§Ò¹¢Í§ÁÍàµÍà 俵ç
ÃÙ»·Õè 1-3 áÊ´§Ê ǹ»ÃСͺ¢Í§á¼§Ç§¨ÃáÊ´§¼ÅáÅФǺ¤ØÁ¾Åѧ§Ò¹·Õãè ª 㹪شËع ¹µ MegaBOT
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l K1 MCU I/O VCC
1
10
AVCC 30 RC2 24
4
25
6
RC3
RC7
31
DSP1 LCD 16x2
RS E
29
VR1
3
Vo
LCD contrast
GND 2
D7 D6 D5 D4 D3 D2 D1 D0 R/W 14 13 12 11 10 9 8 7 5
20
+5V R1 2.2k
RC1 23
+5V
K3 SCL
RA6 34
K4 PA6
8
PD1/TxD GND GND
2 4
R2 150R
C4
14
8
5
C2
C2+
C1+
C2-
C1-
8 6
R5 10k
R7 10k
IC1
MAX3232
RxD TxD DTR GND
R9 10k
SW2 IC3 TB6612FNG
14
19 STBY 20 Vcc 21 12
AO1
AIN1
BO1
PD3 PD4
16 BIN2
BO2
PD5
15 PWMB
BO2
PD6 PD7
3
RB0 RB1 RB2 RB3 RB4
SERVO-1 SERVO-2 SERVO-3 SERVO-4 SERVO-5
K14 DC in 6-12V
SW1 ON ~
K8-K12 SERVO port
-
BO1
C9 1000PF 16V
11 12
LED3 - 5.8V
R12 1k
LED2 - 5.4V
LED1 - LOW BAT.
R13 1k R14 1k
K6 MOTOR-M1
R15 1k
LED6 MOTOR 1-DIR. LED7 MOTOR 2-DIR.
7 8
9 10 18
IC4 KIA78R05 G O I
+ BD1 KBP208
~
+Vm
4
1 2
AO2 5 6 AO2
AIN2
17 BIN1
K13 +VBATT
R11 1k
C7 0.1/63V
24
AO1
23 PWMA
PD2
+Vm
LED4 - 6.2V
+Vm 13
R8 150R
R10 1k
4
SW1
SW3
1 2 3 4 5
2
LED5 - >7.5V
K5 RS-232 +5V
R6 150R
5 3
1 2 3 4
+5V R4 150R
6
C3
3
9
C5
IC2
1
7
15
1
R9 10k
16
10
R3 150R
11
PB6 7 PB7
VR2 10k KNOB
7 ATtiny13
C1-C5 0.1/50V
15
PB5 6
R9 10k
+5V
C1
33
21
C6 0.1/50V
+Vm
K2 SDA
RC0 22
PD0/RxD
40
1
+V
RC6 28 27 RC5 26 RC4
RA7
K1 MCU I/O
+5V
+5V
11
R16 1k
K7 MOTOR-M2
C8 0.1/63V
L1 10PH
C10 220PF 10V Q1 FDS6680A
D1 MBR340
+5V
IC5 NCP1450-5.0 5 4
CE GND
OUT NC
ÃÙ»·Õè 1-4 ǧ¨Ã¢Í§á¼§Ç§¨ÃáÊ´§¼ÅáÅФǺ¤ØÁ¾Åѧ§Ò¹·Õãè ª 㹪شËع ¹µ IPST-BOT
1
C12 220PF 6.3V
2 3
C11 0.01PF 50V
12 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
ÁÕ¨´Ø µ Í +Vm OUT ÊíÒËÃѺµ Íä¿àÅÕÂé §ä»Âѧǧ¨Ã¢ÑºâËÅ´¡ÃÐáÊÊÙ§ÀÒ¹͡ â´Âµ ÍÁÒ¨Ò¡ ¨Ø´µ Íä¿àÅÕÂé § DC INPUT l ÁÕǧ¨Ã¤Çº¤ØÁä¿àÅÕÂ é § +5V ẺÊÇÔµªÔ§è ÊíÒËÃѺÃÑ¡ÉÒÃдѺä¿àÅÕÂé §ãË á¡ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà Í ҧÁÕàʶÕÂÃÀÒ¾ à¾×Íè ÃͧÃѺ¡ÒâѺÁÍàµÍà ¾Ã ÍÁ¡Ñ¹·Ñ§é 7 µÑÇ (ÁÍàµÍà 俵ç 2 µÑÇ áÅÐà«Íà âÇÁÍàµÍà 5 µÑÇ) l ÁÕÊÇÔµª ¡´µÔ´»Å Í´Ѻ¾Ã ÍÁ㪠§Ò¹ 3 ¨Ø´ l ¨Ø´µ ;Íà µÍÔ¹¾ØµàÍÒµ ¾µ Ø ´Ô¨µÔ ÍÅËÃ×ÍÍйÒÅÍ¡ 1 ¨Ø´ (PA6) l ¨Ø´µ ;Íà µÍÔ¹¾ØµàÍÒµ ¾µ Ø ´Ô¨µÔ ÍÅÃͧÃѺÃкººÑÊ I2C 2 ¨Ø´ (PC0 ËÃ×Í SCL ¡Ñº PC1 ËÃ×Í SDA) l ÁÕµÇ Ñ µ Ò¹·Ò¹»ÃѺ¤ Òä´ ÊÒí ËÃѺ·´Êͺǧ¨Ãá»Å§ÊÑÒ³ÍйÒÅÍ¡à» ¹´Ô¨µÔ ÍÅ â´Âµ Íà¢ Ò ¡Ñº¢Ò¾Íà µ PA7 l ÁÕǧ¨Ãàª×Í è Áµ ͡Ѻ¾Íà µÍ¹Ø¡ÃÁ RS-232 µ ÍÊÒÂÊÑÒ³¼ ҹᨠ¡âÁ´ÙÅÒ Ã l ¨Ñ´ÊÃèشµ Í¢Ò¾Íà µ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ÊÒí ËÃѺ¢Ñºà«Íà âÇÁÍàµÍà 5 ª ͧ¤×Í PB0 ¶Ö§ PB4 l ÁÕǧ¨Ã¢ÑºÁÍàµÍà 俵ç 2 ª ͧ áç´Ñ¹ÊÙ§ÊØ´·Õãè ª ä´ ¤Í × +12V
AA
AA
AA
AA
¡ÐºÐ¶ Ò ¹¢¹Ò´ AA 5 ¡ ͹ l ¶ Ò㪠ẵàµÍÃÕá è ººÍÑŤÒäŹ ¨Ðä´ áç´Ñ¹ +7.5V (1.5V x5) l ¶ Ò㪠ẵàµÍÃÕá è ºº»ÃШØä´ ¨Ðä´ áç´Ñ ¹ +6V (1.2V x5)
AA
l
ÊÒÂ俺ǡ (ÊÕá´§)
ÊÒÂä¿Åº (ÊÕ´Òí ) DC INPUT
PA7
SDA
PA6
IPST MicroBOX PA0
I P S T - B O T o ro b o t D i s p l a y - MO T E R a r d ATMEGA16
PA2
PA1
Over 7.5V
++Vin -
PA3
RS-232 LOW BATT.
M2
PD7 PD6
M1
PD5
PD1
PD4
PD0
PD3
TxD
MOTOR OUTPUT
PD2
* * * *! *"
RxD
DisplayMotor
SERVO
+ -
PB4
SW3
S
PB2
PB3
SW2
ä¿á¨ §ÃдѺ¢Í§áºµàµÍÃÕè
Display-MOTOR
PB0
PB1
SW1 RESET
ÊÇÔµª à» ´-» ´
Vm OUT
PORTC GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V
PA4
PA5
KNOB PA7
DC input
OFF
ON
ON
SCL
ἧǧ¨ÃáÊ´§¼ÅáÅÐ ¤Çº¤ØÁÁÍàµÍÃ
¨Ø´µ ÍÁÍàµÍà 俵ç 2 µÑÇ
¨Ø´µ Íà«Íà âÇÁÍàµÍà 5 µÑÇ (PB0 ¶Ö§ PB4) ἧǧ¨ÃËÅÑ¡ MicroBOX ÍÂÙ´ Ò ¹Å Ò§ àÁ×Íè µ ͡Ѻἧǧ¨Ã Display-MOTOR áÅ Ç ¡Òè ÒÂä¿àÅÕÂé §ãË ¡ÃзíÒ¼ Ò¹¨Ø´µ Íä¿àÅÕÂé § DC INPUT º¹á¼§Ç§¨Ã Display-MOTOR á·¹
ÃÙ»·Õè 1-5 ¡Òõ Í㪠§Ò¹á¼§Ç§¨ÃáÊ´§¼ÅáÅФǺ¤ØÁÁÍàµÍà ¡ºÑ ἧǧ¨ÃËÅÑ¡ MicroBOX
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
13
1.2.2 ªØ´´Òǹ âËÅ´â»Ãá¡ÃÁ¼ Ò¹·Ò§¾Íà µ USB 㪠㹡ÒôÒǹ âËÅ´â»Ãá¡ÃÁ·Õè¾Ñ²¹Ò¢Öé ¹¨Ò¡¤ÍÁ¾ÔÇàµÍà ä»Âѧ˹ ǤÇÒÁ¨íÒâ»Ãá¡ÃÁ¢Í§äÁâ¤Ã ¤Í¹â·ÃÅàÅÍà ATmega16 º¹á¼§Ç§¨Ã MicroBOX â´Â㪠§Ò¹Ã ÇÁ¡Ñº«Í¿µ áÇà ªÍ×è AVRProg ªØ´´Òǹ âËÅ´ ÊÒÁÒö㪠ä¿àÅÕÂé §¨Ò¡á¼§Ç§¨ÃËÅÑ¡ MicroBOX ä´ â´ÂµÃ§à¢ ҡѺ¤Í¹à¹ç¡àµÍà ISP ´Ñ§áÊ´§ã¹ÃÙ»·Õè 1-6
(¡) PX-4000 ªØ´´Òǹ âËÅ´â»Ãá¡ÃÁ¼ Ò¹¾Íà µ USB
µ ͡Ѻ¾Íà µ USB ¢Í§¤ÍÁ¾ÔÇàµÍà PA7
PA6
IPST MicroBOX PA0
I P S T - B O T o ro b o t ATMEGA16
PA2
PA1
Over 7.5V
++Vin -
PA3
SDA RS-232 LOW BATT.
Vm OUT
PORTC GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V
PA4
PA5
DC INPUT
DC input
OFF
ON
ON
SCL KNOB PA7
M2 M1
PD7 PD6
PD1
PD5
PD0
PD4
TxD
PD3
RxD
MOTOR OUTPUT
PD2
RESET
* * * *! *"
DisplayMotor
PB2
PB4
SW3
+ -
PB0
PB3
SW2
S
PB1
SW1
SERVO
D i s p l a y - MO T E R a r d
PX-4000
ªØ´â»Ãá¡ÃÁ ¼ Ò¹¾Íà µ USB
(¢) ¡Òõ Í PX-4000 ªØ´´Òǹ âËÅ´â»Ãá¡ÃÁ¼ Ò¹¾Íà µ USB ¡Ñºá¼§Ç§¨Ã MicroBOX
ÃÙ»·Õ1-6 è áÊ´§¡ÒôÒǹ âËÅ´â»Ãá¡ÃÁŧÊÙá ¼§Ç§¨ÃËÅÑ¡ MicroBOX ´ Ǫش´Òǹ âËÅ´¼ Ò¹¾Íà µ USB
14 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
1.3 ¤Ø³ÊÁºÑµ¢Ô ͧÍØ»¡Ã³ àÍÒµ ¾µØ 1.3.1 ἧǧ¨Ãä¿áÊ´§¼Å : ZX-LED 㪠LED ¢¹Ò´ 8 ÁÔÅÅÔàÁµÃ µ ͧ¡ÒÃÅͨԡ 1 㹡ÒâѺãË ÊÇ Ò§ ÁÕǧ¨ÃáÊ´§ã¹ÃÙ»·Õè 1-7 K1 SOUND
LED1 R1 (Default = 510)
S
+
+ S Q1 KRC102 (DTC114)
C1 10/16V
SP1 Piezo speaker
ÃÙ»·Õ1-7 è Ãٻà ҧáÅÐǧ¨Ã¢Í§á¼§Ç§¨Ãä¿áÊ´§¼Å ÃÙ»·Õè 1-8 Ãٻà ҧáÅÐǧ¨Ã¢Í§á¼§Ç§¨ÃÅíÒ⾧໠Ââ« ZX-LED ·Õãè ª 㹪شËع ¹µ IPST-BOT ZX-SPEAKER
1.3.2 ἧǧ¨ÃÅíÒ⾧໠Ââ« : ZX-SPEAKER ÁÕǧ¨ÃáÅÐ˹ ҵҢͧºÍà ´áÊ´§ã¹ÃÙ»·Õè 1-8 ¤Ø³ÊÁºÑµ·Ô ҧ෤¹Ô¤·ÕÊè Òí ¤ÑÁÕ´§Ñ ¹Õé l
㪠ÅÒí ⾧໠Ââ« ÁÕÍÁÔ ¾Õá´¹« 32:
l
ÁÕ¤Ò ¤ÇÒÁ¶Õàè Ãâ«á¹¹« ã¹Â Ò¹1 ¶Ö§ 3kHz
1.3.3 ªØ´à¿ ͧ¢ÑºÁÍàµÍà 俵ç à» ¹ÁÍàµÍà 俵ç·ÕÁè àÕ ¿ ͧ·´ÊíÒËÃѺà¾ÔÁè áçºÔ´ ÁÕû٠à ҧ˹ ÒµÒáÊ´§ã¹ÃÙ»·Õè 1-9 ÁÕªÍ×è Ãع Ç Ò BO-1 ¤Ø³ÊÁºÑµÔ ·Ò§à·¤¹Ô¤·ÕÊè Òí ¤ÑÁÕ´§Ñ ¹Õé l 㪠ä¿àÅÕÂ é §ã¹Â Ò¹ +4.8 ¶Ö§ +9Vdc l µ ͧ¡ÒáÃÐáÊä¿¿ Ò 130mA (·Õä è ¿àÅÕÂé § +6V áÅÐäÁ ÁâÕ ËÅ´) l ÍѵÃÒ·´ 87:1 l ¤ÇÒÁàÃçÇ 138 Ãͺµ Í¹Ò·Õ (·Õä è ¿àÅÕÂé § +6V áÅÐäÁ ÁâÕ ËÅ´) l ¹éÒí ˹ѡ 30 ¡ÃÑÁ l áçºÔ´ 1 ¡ÔâÅ¡ÃÑÁ-ૹµÔàÁµÃ
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
15
ÃÙ»·Õè 1-9 ªØ´à¿ ͧ¢ÑºÁÍàµÍà 俵çÃع BO-1 «Ö§è 㪠ã¹Ëع ¹µ IPST-BOT
1.3.4 à«Íà âÇÁÍàµÍà ẺÁҵðҹ ÁÕÊÒµ Í㪠§Ò¹ 3 àÊ ¹¤×Í ÊÒÂÊÑÒ³ (S) ÊÒÂä¿àÅÕÂé § (+V) áÅСÃÒÇ´ (G) ÀÒÂã¹à«Íà âÇÁÍàµÍà ÁÕ Ç§¨Ã¤Çº¤ØÁ¡ÒÃËÁعµÔ´µÑ§é ÍÂÙ ´Ñ§áÊ´§ã¹ÃÙ»·Õè 1-10 ¤Ø³ÊÁºÑµ·Ô ҧ෤¹Ô¤·ÕÊè Òí ¤ÑÁÕ´§Ñ ¹Õé l µ ͧ¡ÒÃä¿àÅÕÂ é §ã¹Â Ò¹ +4.8 ¶Ö§ +6Vdc l ¤ÇÒÁàÃçÇà©ÅÕ è 60 Ãͺµ Í¹Ò·Õ (·Õäè ¿àÅÕÂé § +5V áÅÐäÁ ÁâÕ ËÅ´) l ¹éÒí ˹ѡ 45 ¡ÃÑÁ l áçºÔ´ 3.40 ¡ÔâÅ¡ÃÑÁ-ૹµÔàÁµÃ ËÃ×Í 47 Í͹« -¹ÔÇ é l ¢¹Ò´ (¡Ç Ò§ N ÂÒÇ N ÊÙ§) 40.5 N 20 N 38 ÁÔÅÅÔàÁµÃ ËÃ×Í 1.60 N 0.79 N 1.50 ¹ÔÇ é l ÁÕ¨´ Ø »ÃѺᵠ§¤ ÒÈٹ ¡ÅÒ§ à¾×Íè ¡íÒ˹´¨Ø´ËÂØ´¹Ô§è ¢Í§á¡¹ËÁع
(¡)
(¢)
(¤)
ÃÙ»·Õè 1-10 áÊ´§Ãٻà ҧáÅÐÊ Ç¹»ÃСͺ¢Í§à«Íà âÇÁÍàµÍà Ẻ»ÃѺᵠ§á¡¹ËÁعÃͺµÑÇ (¡) Ãٻà ҧÀÒ¹͡ (¢) Ãкºà¿ ͧ·´ÀÒÂã¹ (¤) ἧǧ¨ÃÍÔàÅç¡·ÃÍ¹Ô¡Ê ·ãÕè ª ¤Çº¤ØÁ
16 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
1.4 ¤Ø³ÊÁºÑµ¢Ô ͧªØ´ÍØ»¡Ã³ µÃǨ¨ÑºÊÑÒ³ 1.4.1 ἧǧ¨ÃÊÇÔµª : ZX-SWITCH ÁÕǧ¨ÃáÊ´§ã¹ÃÙ»·Õè 1-11 »ÃСͺ´ ÇÂÊÇÔµª ¾Ã ÍÁä¿áÊ´§¼Å ãË àÍÒµ ¾µØ 2 Ẻ¤×Í ·Õªè Í § HIGH ¶ Ò¡´ÊÇÔµª ¨ÐÊ §Åͨԡ 1 ä¿ÊÕá´§µÔ´ ·Õªè Í § LOW ¶ Ò¡´ÊÇÔµª ¨ÐÊ §Åͨԡ 0 ä¿ÊÕà¢ÕÂǵԴ ¶ ÒäÁ ÁÕ¡Òá´ LED ´Ñº Åͨԡ·Õäè ´ ¡¨ç Ðä´ ¼Å¡ÅѺ¡Ñ¹ ZX-SWITCH
LOW
àÁ×Íè ¡´à» ¹Åͨԡ 1 áÅÐáÊ´§ä¿à» ¹ÊÕá´§
510
10k
S
LOW
S
HIGH
+
àÁ×Íè ¡´à» ¹Åͨԡ 0 áÅÐáÊ´§ä¿à» ¹ÊÕà¢ÕÂÇ
HIGH
SWITCH
,
+
,
R G
Bi-color LED
ÃÙ»·Õè 1-11 Ãٻà ҧáÅÐǧ¨Ã¢Í§á¼§Ç§¨ÃÊÇÔµª ·ãÕè ª 㹪ش¡Å ͧÊÁͧ¡Å IPST-MicroBOX áÅЪشËع ¹µ IPST-BOT
1.4.2 ἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô : ZX-03 ÁÕǧ¨ÃáÅÐ˹ ҵҢͧἧǧ¨ÃáÊ´§ã¹ÃÙ»·Õè 1-12 à» ¹á¼§Ç§¨Ã·Õãè ª 㹡ÒõÃǨÊͺ¡ÒÃÊз ͹¢Í§áʧ ÍÔ¹¿ÃÒàô¢Í§µÑǵÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô«Ö§è ÃÇÁµÑÇÊ §áÅеÑÇÃѺäÇ ã¹µÑǶѧà´ÕÂǡѹ â´ÂµÑǵÃǨ¨Ñºáʧ Êз ͹ÍÔ¹¿ÃÒàô·Õ¹è Òí ÁÒ㪠¤Í× TCRT5000 àÁ×Íè ¨ ÒÂä¿àÅÕÂé § LED ÍÔ¹¿ÃÒàôÀÒÂã¹µÑÇâÁ´ÙÅ TCRT5000 ¨Ðà»Å §áʧÍÍ¡ÁÒµÅÍ´àÇÅÒ Ê Ç¹µÑÇÃѺ«Ö§è à» ¹â¿âµ ·ÃÒ¹«ÔÊàµÍà ¨Ðä´ ÃºÑ áʧÍÔ¹¿ÃÒàô¨Ò¡¡ÒÃÊз ͹¡ÅѺ â´Â»ÃÔÁÒ³¢Í§áʧ·Õèä´ ÃѺ¨ÐÁÒ¡ËÃ×͹ Í ¨Ø´µ ÍÊÑÒ³ +V TCRT5000
OUT GND
10k
510
µÑǵÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô
ÃÙ»·Õè 1-12 ˹ ÒµÒáÅÐǧ¨Ã¢Í§á¼§Ç§¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô·Õãè ª 㹪شËع ¹µ IPST-BOT
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
17
¢Ö¹é ÍÂÙ¡ ºÑ Ç Ò ÁÕÇµÑ ¶ØÁÒ¡Õ´¢ÇÒ§ËÃ×ÍäÁ áÅÐÇѵ¶Ø¹¹Ñé ÁÕ¤ÇÒÁÊÒÁÒö㹡ÒÃÊз ͹áʧÍÔ¹¿ÃÒàÃ´ä´ ´àÕ ¾Õ§äà «Ö§è ¢Ö¹é ¡Ñº ÅÑ¡É³Ð¾×¹é ¼ÔÇáÅÐÊբͧÇѵ¶Ø â´ÂÇѵ¶ØÊ¢Õ ÒǼÔÇàÃÕº¨ÐÊз ͹áʧÍÔ¹¿ÃÒàÃ´ä´ ´Õ ·íÒãË µÇÑ ÃѺáʧÍÔ¹¿ÃÒàÃ´ä´ ÃºÑ áʧÊз ͹ÁÒ¡ Ê §¼ÅãË áç´Ñ¹·Õàè ÍÒµ ¾µØ ¢Í§Ç§¨ÃÊÙ§µÒÁä»´ Ç 㹢³Ð·ÕÇè µÑ ¶ØÊ´Õ Òí Êз ͹áʧÍÔ¹¿ÃÒàÃ´ä´ ¹Í  ·íÒãË µÑÇÃѺÍÔ¹¿ÃÒàÃ´Ê §áç´Ñ¹ÍÍ¡ÁÒµèíÒ ´ Ç Â¤Ø ³ ÊÁºÑ µÔ ´Ñ § ¡Å Ò Ç¨Ö § ¹Ô  Á¹í Òἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ ÍÔ¹¿ÃÒàô¹ÕÁé Ò㪠㹡ÒõÃǨ¨Ñº¾×¹é ËÃ×ÍàÊ ¹ â´Âµ ͧµÔ´µÑ§é äÇ ´Ò ¹Å Ò§¢Í§â¤Ã§Ëع ¹µ à¹×Íè §¨Ò¡á¼§Ç§¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô ZX-03 ãË ¼Å¡Ò÷íҧҹ໠¹áç´Ñ¹ä¿µÃ§ ´Ñ§¹Ñ¹é 㹡Òà 㪠§¹¡ÑºËع ¹µ IPST-BOT ¨Ö§µ ͧµ ÍÊÑҳࢠҡѺª ͧÍÔ¹¾ØµÍйÒÅÍ¡¢Í§á¼§Ç§¨ÃËÅÑ¡ MicroBOX 8 ª ͧ¤×Í ·Õªè Í § PA0 ¶Ö§ PA7 (PA7 äÁ á¹Ð¹íÒà¾ÃÒÐÁÕǧ¨ÃµÑǵ Ò¹·Ò¹»ÃѺ¤ Òä´ µÍ à ÇÁÍÂÙ´ Ç Â) ¨Ò¡¹Ñ¹é 㪠¤ÇÒÁÃÙ¨ Ò¡¡ÒÃÍ Ò¹ ¤ ÒÊÑÒ³ÍйÒÅÍ¡à¾×Íè Í Ò¹¤ Ҩҡἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàôáÅйíÒä»ãª 㹡ÒõÃǨ¨ÑºàÊ ¹µ Íä»
1.4.3 GP2D120 âÁ´ÙŵÃǨ¨ÑºÃÐÂзҧẺÍÔ¹¿ÃÒàô GP2D120 à» ¹âÁ´ÙŵÃǨ¨ÑºÃÐÂзҧẺÍÔ¹¿ÃÒàôÁÕ¢Òµ Í㪠§Ò¹ 3 ¢Ò¤×Í ¢Òµ Íä¿àÅÕÂé § (Vcc), ¢Ò¡ÃÒÇ´ (GND) áÅТÒáç´Ñ¹àÍÒµ ¾µØ (Vout) ¡ÒÃÍ Ò¹¤ Òáç´Ñ¹¨Ò¡ GP2D120 ¨Ðµ ͧÃÍãË ¾¹ ª ǧàµÃÕÂÁ¤ÇÒÁ¾Ã ÍÁ¢Í§ âÁ´ÙÅ¡ ͹ «Ö§è 㪠àÇÅÒ»ÃÐÁÒ³ 32.7 ¶Ö§ 52.9 ÁÔÅÅÔÇ¹Ô Ò·Õ (1 ÁÔÅÅÔÇ¹Ô Ò·Õ෠ҡѺ 0.001 ÇÔ¹Ò·Õ) ´Ñ§¹Ñ¹é 㹡ÒÃÍ Ò¹¤ Òáç ´Ñ¹¨Ö§¤ÇÃÃÍãË ¾¹ ª ǧàÇÅҴѧ¡Å ÒÇ仡 ͹ ´Ñ§áÊ´§¢ ÍÁÙÅàº×Íé §µ ¹ã¹ÃÙ»·Õè 1-13 ¤ Òáç´Ñ¹àÍÒµ ¾µØ ¢Í§ GP2D120 ·ÕÃè ÐÂзҧ 30 ૹµÔàÁµÃ·Õäè ¿àÅÕÂé § +5V ÍÂÙã ¹ª ǧ 0.25 ¶Ö§ 0.55V â´Â ¤ Ò¡ÅÒ§¤×Í 0.4V ª ǧ¢Í§¡ÒÃà»ÅÕÂè ¹á»Å§áç´Ñ¹àÍÒµ ¾µØ ·ÕÃè ÐÂзҧ 4 ૹµÔàÁµÃ¤×Í 2.25V s0.3V
18 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT LED ÍÔ¹¿ÃÒàôµÑÇÊ §
¡ÃÒ¿áÊ´§¡Ò÷íÒ§Ò¹¢Í§ GP2D120
µÑÇÃѺáʧÍÔ¹¿ÃÒàô
áç´Ñ¹àÍÒµ ¾Øµ (V) 2.8
GP2D12 GP2D120
2.4 Vout GND
Vcc
2.0 1.6
ä¿àÅÕé§
1.2 38.3±9.6
¡ÒÃÇÑ´ÃÐÂÐË Ò§ áç´Ñ¹àÍÒµ ¾Øµ
0.8
ÁÔÅÅÔÇÔ¹Ò·Õ
ÇÑ´¤ÃÑ駷Õè 1
ÇÑ´¤ÃÑ駷Õè 2
äÁ á¹ ¹Í¹
0.4
ÇÑ´¤ÃÑ駷Õè n
àÍÒµ ¾Øµ¤ÃÑ駷Õè 1 àÍÒµ ¾Øµ¤ÃÑ駷Õè 2
0
àÍÒµ ¾Øµ¤ÃÑ駷Õè n
L A
8
FvA X
12
16
20
24
28
ÃÐÂÐË Ò§¨Ò¡Çѵ¶Ø·µèÕ ÃǨ¨Ñº (cm)
32
Çѵ¶Ø
L A
F X
´Ñ§¹Ñ¹é ¤ Ò L ¨ÐÁÕ¤Ò à· Ò¡Ñº L
4
* 㪠¡ÃдÒÉà·Ò¢ÒÇÃع R-27 ¢Í§ Kodak «Ö§è ´ Ò¹¢ÒÇÁÕÍѵÃÒ¡ÒÃÊз ͹áʧ 90% à» ¹ Çѵ¶ØÊíÒËÃѺÊз ͹áʧà¾×èÍÇÑ´ÃÐÂзҧ
5 ÁÔÅÅÔÇÔ¹Ò·Õ
ËÅÑ¡¡Ò÷íÒ§Ò¹¢Í§âÁ´ÙÅÇÑ´ÃÐÂзҧ´ ÇÂáʧÍÔ¹¿ÃÒàô âÁ´ÙÅÇÑ´ÃÐÂзҧ´ ÇÂáʧÍÔ¹¿ÃÒàô ¨ÐÊ §áʧÍÔ¹¿ÃÒàô¨Ò¡ µÑÇÊ §ä»¡ÃзºÇѵ¶Ø¼Ò ¹àÅ¹Ê ¹¹Ù à¾×Íè â¿¡ÑÊáʧãË Á¤Õ ÇÒÁࢠÁáʧä»Âѧ ¨Ø´ã´¨Ø´Ë¹Ö§è àÁ×Íè áʧ仡ÃзºÇѵ¶Ø¨Ðà¡Ô´¡ÒáÃÐà¨Ô§¢Í§áʧä»ã¹·ÔÈ ·Ò§µ Ò§ æ áÊ§Ê Ç¹Ë¹Ö§è ¨Ð¡ÃÐà¨Ô§ä»ÂѧÀÒ¤ÃѺ â´ÂÁÕàÅ¹Ê ÀÒ¤ÃѺ·íÒ Ë¹ Ò·ÕÃè ÇÁáʧáÅСíÒ˹´¨Ø´µ¡¡Ãзº áʧ¨Ð¶Ù¡Ê §¼ Ò¹ä»Âѧâ¿âµ ·ÃÒ¹«ÔÊàµÍà ¨Òí ¹Ç¹ÁÒ¡·Õµè Í àÃÕ§µÑǡѹ໠¹Ê ǹÃѺáʧ ËÃ×ÍÍÐàÃÂ ÃºÑ áʧ µíÒá˹ §·Õáè ʧµ¡¡Ãзº¹ÕÊé ÒÁÒö¹íÒÁÒ¤íҹdzËÒÃÐÂзҧ (L) ¨Ò¡ÀÒ¤Ê §ä»ÂѧÇѵ¶Øä´ â´Â㪠ʵ٠ÃËÒÊÒÁàËÅÕÂè Á¤Å Ò´ѧ¹Õé
0
F Ê Ç¹ÃѺáʧ
LED ÍÔ¹¿ÃÒàô µÑÇÊ § /2 ,
:
â´Â¤ Ò·ÕèÇÑ´ä´ ¨Ò¡â¿âµ ·ÃÒ¹«ÔÊàµÍà ¨Ð¶Ù¡Ê §ä»Âѧǧ¨Ã »ÃÐÁÇżÅÊÑÒ³ ¡ ͹¨Ðà»ÅÕÂè ¹¤ Òà» ¹ÃдѺáç´Ñ¹ «Ö§è ãË ¼Å¡Òà à»ÅÕè¹á»Å§áç´Ñ¹µÒÁÃÐÂзҧ·ÕèµÃǨÇÑ´ä´
ÃÙ»·Õè 1-13 áÊ´§Ãٻà ҧ ¡ÒèѴ¢Ò ä´ÍÐá¡ÃÁàÇÅҨѧËÇСÒ÷íÒ§Ò¹ áÅСÃÒ¿áÊ´§¡Ò÷íÒ§Ò¹¢Í§ GP2D120
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
19
1.5 ¢ ÍÁÙŢͧÊÒÂÊÑÒ³·Õãè ª 㹪شËع ¹µ IPST-BOT 1.5.1 ÊÒ JST3AB-8 : ÊÒÂàª×Íè Áµ ÍÃÐËÇ Ò§á¼§Ç§¨Ã ÊÒ JST3AB-8 㪠àª×Íè Áµ ÍÃÐËÇ Ò§á¼§Ç§¨ÃËÅÑ¡ MicroBOX ¡Ñºá¼§Ç§¨ÃµÃǨ¨ÑºáÅÐἧǧ¨ÃÍØ»¡Ã³ µ Ò§æ à» ¹ÊÒÂá¾ 3 àÊ ¹ ÂÒÇ 8 ¹ÔÇé »ÅÒÂÊÒ´ Ò¹Ë¹Ö§è µÔ´µÑ§é ¤Í¹à¹ç¡àµÍà Ẻ JST 3 ¢Ò µÑÇàÁÕ ÃÐÂÐË Ò§ÃÐËÇ Ò§ ¢Ò 2 ÁÔÅÅÔàÁµÃ Ê Ç¹ÍÕ¡´ Ò¹Ë¹Ö§è µÔ´µÑ§é ¤Í¹à¹ç¡àµÍà Ẻ PCB 3 ¢Ò µÑÇàÁÕ ÃÐÂÐË Ò§ÃÐËÇ Ò§¢Ò 2.5 ÁÔÅÅÔàÁµÃ ÁÕ¡ÒèѴ¢Ò´Ñ§¹Õé ÃÐÂÐË Ò§ÃÐËÇ Ò§¢Ò 2.54 ÁÁ.
ÃÐÂÐË Ò§ÃÐËÇ Ò§¢Ò 2.00 ÁÁ.
GND S +5V
1.5.2 ÊÒ CX-4 : ÊÒÂàª×Íè Áµ ;Íà µÍ¹Ø¡ÃÁ ÊÒ CX-4 㪠àª×Íè Áµ Íἧǧ¨ÃáÊ´§¼ÅáÅТѺÁÍàµÍà (Display-MOTOR) ¡Ñº¾Íà µÍ¹Ø¡ÃÁ RS-232 ¢Í§¤ÍÁ¾ÔÇàµÍà ÁÕÅ¡Ñ É³Ðà» ¹ÊÒÂÁÑŵԤÍà ·ÁÕè ÊÕ ÒÂÊÑÒ³ÀÒÂã¹ 4 àÊ ¹ »ÅÒ´ Ò¹Ë¹Ö§è µÔ´µÑ§é ¤Í¹à¹ç¡àµÍà DB9 µÑÇàÁÕÂ Ê Ç¹ÍÕ¡´ Ò¹Ë¹Ö§è µÔ´µÑ§é »ÅÑ¡ê âÁ´ÙÅÒ Ã (RJ-11 6P4C : Ẻà´ÕÂǡѺ·Õãè ª ã¹à¤Ã×Íè §â·ÃÈѾ· ) ÁÕ¡ÒèѴ¢Ò´Ñ§¹Õé ¤Í¹à¹ç¡àµÍà DB-9 µÑÇàÁÕÂ
»ÅÑê¡âÁ´ÙÅ Òà RJ11 Ẻ 6P4C
# "
#
!
!
¢Ò RxD
!
¢Ò TxD
"
¢Ò DTR
#
¢Ò GND
´ ҹ˹ ÒÊÑÁ¼ÑÊ
"
20 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
1.6 ¢ ÍÁÙŢͧÍØ»¡Ã³ ·Ò§¡Å·Õãè ª 㹪شËع ¹µ IPST-BOT 1.6.1 Š;ÅÒʵԡÊíÒËÃѺªØ´à¿ ͧ¢ÑºÁÍàµÍà 俵ç BO-1 áÅÐÂÒ§ à» ¹Å Í¡ÅÁ ÁÕàÊ ¹¼ Ò¹Èٹ ¡ÅÒ§ 65 ÁÔÅÅÔàÁµÃ ÊÒÁÒöÊÇÁࢠҡѺ᡹¢Í§ªØ´à¿ ͧ¢ÑºÁÍàµÍà BO-1 ä´ ·Ñ¹·Õâ´ÂäÁ µÍ §´Ñ´á»Å§à¾ÔÁè àµÔÁ ¢Ñ¹ÂÖ´´ ÇÂÊ¡ÃÙà¡ÅÕÂǻŠÍ 2 ÁÔÅÅÔàÁµÃ Ê Ç¹ÂÒ§¢ÍºÅ Í·Õãè ª ÃÇ Á´ ǼÅÔµ¨Ò¡ ÂÒ§¾ÒÃÒ ¼ÔÇÁÕ´Í¡ÂÒ§à¾×Íè ª ÇÂà¾ÔÁè ÊÁÃö¹Ð㹡ÒÃà¡ÒÐ¾×¹é ¼ÔÇ
1.6.2 ªØ´»ÃСͺŠÍÊÒ¾ҹ à» ¹ªØ´ÊÒ¾ҹ¢¹Ò´µ Ò§æ ·ÕèÊÒÁÒö¹íÒÁÒµ ͡ѹà¾×èÍÊà ҧ໠¹Å ÍÊÒ¾ҹËÃ×ÍŠ͵չµÐ¢Òºä´ ËÅÒ ¢¹Ò´ à¢ Ò¡Ñ¹ä´ ´¡Õ ºÑ ªØ´»ÃСͺ°Ò¹ 㹪ش»ÃСͺ´ Ç ÊÒ¾ҹ 30 ¢ ͵ Í (2 ªÔ¹é ), 10 ¢ ͵ Í (4 ªÔ¹é ), 8 ¢ ͵ Í (4 ªÔ¹é ), Š͢Ѻ (2 µÑÇ), Å Í »ÃФͧÊÒ¾ҹãË (2 µÑÇ), Å Í»ÃФͧÊÒ¾ҹ¡ÅÒ§ (8 µÑÇ), Å Í»ÃФͧÊÒ¾ҹàÅç¡ (10 µÑÇ), ´ØÁÅ Í (12 µÑÇ), ᡹âÅËÐàÊ ¹¼ Ò¹Èٹ ¡ÅÒ§ 3 ÁÔÅÅÔàÁµÃ ÂÒÇ 110 ÁÔÅÅÔàÁµÃ (4 Íѹ) áÅЪشʡÃÙ·¨Õè Òí à» ¹
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
21
1.6.3 ªØ´»ÃСͺ°Ò¹ à» ¹ªØ´ÍØ»¡Ã³ ÊíÒËÃѺ»ÃСͺ໠¹°Ò¹ËÃ×Íâ¤Ã§µÑǶѧà͹¡»ÃÐʧ¤ 㹪ش»ÃСͺ´ ÇÂá¼ ¹°Ò¹ ¾ÅÒʵԡ·Õ¼è ÅÔµ¨Ò¡ÇÑÊ´Ø ABS ¢¹Ò´ 160N60 ÁÔÅÅÔàÁµÃ ÁÕâ٠¹Ò´ 3 ÁÔÅÅÔàÁµÃ·ÕÁè ÃÕ ÐÂÐË Ò§¡Ñ¹ 5 ÁÔÅÅÔàÁµÃ ÃÇÁ 341 ÃÙ, ©Ò¡Âִ᡹ŠÍÂÒÇ (2 µÑÇ), ©Ò¡Âִ᡹ŠÍÊѹé (2 µÑÇ) áÅЪشʡÃÙ·¨Õè Òí à» ¹ÊíÒËÃѺ¡ÒâѹÂÖ´
1.6.4 á¼ ¹¡ÃÔ´ à» ¹á¼ ¹¾ÅÒʵԡ·Õ¼è ÅÔµ¨Ò¡ÇÑÊ´Ø ABS ¢¹Ò´ 80N60 ÁÔÅÅÔàÁµÃ áÅÐ 80N80 ÁÔÅÅÔàÁµÃ Í ҧÅÐ 1 á¼ ¹ ã¹ áµ ÅÐÁÕâ٠¹Ò´ 3 ÁÔÅÅÔàÁµÃ·ÕÁè ÃÕ ÐÂÐË Ò§¡Ñ¹ 5 ÁÔÅÅÔàÁµÃ
1.6.5 ªÔ¹é µ ;ÅÒʵԡ à» ¹ªÔ¹é Ê Ç¹¾ÅÒʵԡá¢ç§à˹ÕÂÇ ÁÕ 3 Ẻ¤×Í ªÔ¹é µ Íá¹ÇµÃ§, ªÔ¹é µ ÍÁØÁ©Ò¡ áÅÐªÔ¹é µ ÍÁØÁ» Ò¹ ÊÒÁÒö àÊÕºµ Í¡Ñ¹ä´ ãª µÍ ¡Ñ¹à» ¹â¤Ã§Êà ҧËÃ×͵¡áµ § ºÃÃ¨Ø 3 Ẻ ẺÅÐ 5 ÊÕ ÊÕÅÐ 4 ªÔ¹é ÃÇÁ 60 ªÔ¹é µ ͪش
22 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
1.6.6 á· §µ ;ÅÒʵԡ à» ¹ªÔ¹é Ê Ç¹¾ÅÒʵԡá¢ç§à˹ÕÂÇã¹áµ ÅÐªÔ¹é ¨ÐÁÕâ٠¹Ò´ 3 ÁÔÅÅÔàÁµÃÊíÒËÃѺà ÍÂÊ¡ÃÙà¾×Íè µÔ´µÑ§é ËÃ×͵ ͡Ѻ ªÔ¹é Ê Ç¹â¤Ã§Êà ҧÍ×¹è æ ·Õ»è ÅÒ¢ͧᷠ§µ ÍÊÒÁÒöàÊÕºࢠҡѺªÔ¹é µ ;ÅÒÊµÔ¡ä´ ã¹ªØ´ÁÕ 3 ¢¹Ò´ ¤×Í 3, 5 áÅÐ 12 ÃÙ áµ ÅТ¹Ò´ÁÕ 4 ªÔ¹é
1.6.7 ©Ò¡âÅËÐ à» ¹ªÔ¹é Ê Ç¹âÅËÐ¡Ç Ò§ 7.5 ÁÔÅÅÔàÁµÃ·Õ´è ´Ñ à» ¹ÁØÁ©Ò¡ ã¹áµ ª¹Ôé ¨ÐÁÕâ٠¹Ò´ 3 ÁÔÅÅÔàÁµÃÊíÒËÃѺà ÍÂÊ¡ÃÙà¾×Íè µÔ´µÑ§é ËÃ×͵ ͡ѺªÔ¹é Ê Ç¹â¤Ã§Êà ҧÍ×¹è æ 㹪شÁÕ 4 ¢¹Ò´¤×Í 1N2 ÃÙ, 2N2 ÃÙ, 2N3 ÃÙ áÅÐ 2N5 ÃÙ áµ ÅТ¹Ò´ÁÕ 4 ªÔ¹é
1.6.8 Ê¡ÃÙáÅй͵ à» ¹ÍØ»¡Ã³ ÊÒí ËÃѺÂÖ´ªÔ¹é Ê Ç¹µ Ò§æ ࢠҴ Ç¡ѹ »ÃСͺ´ ÇÂÊ¡ÃÙà¡ÅÕÂǻŠÍ 2 ÁÔÅÅÔàÁµÃ (4 µÑÇ), 3N8 ÁÔÅÅÔàÁµÃ (4 µÑÇ), 3N10 ÁÔÅÅÔàÁµÃ (30 µÑÇ), 3N15 ÁÔÅÅÔàÁµÃ (4 µÑÇ), 3N40 ÁÔÅÅÔàÁµÃ (4 µÑÇ), Ê¡ÃÙËÇÑ µÑ´ 3N8 ÁÔÅÅÔàÁµÃ (4 µÑÇ), Ê¡ÃÙÁÍ× ËÁع 3N20 ÁÔÅÅÔàÁµÃ (3 µÑÇ) áÅй͵ 3 ÁÔÅÅÔàÁµÃ (30 µÑÇ)
1.6.9 àÊÒÃͧâÅËÐ à» ¹ÍØ»¡Ã³ ªÇ ÂÂÖ´ªÔ¹é Ê Ç¹µ Ò§æ áÅÐÃͧÃѺἧǧ¨Ã, á¼ ¹¡ÃÔ´áÅÐá¼ ¹°Ò¹ ·íÒ¨Ò¡âÅËЪغ¹Ôà¡ÔšѹʹÔÁ ÁÕÅ¡Ñ É³Ðà» ¹á· §·Ã§¡Ãк͡ÂÒÇ 25 ÁÔÅÅÔàÁµÃ ÀÒÂã¹ÁÕÃàÙ ¡ÅÕÂǵÅÍ´µÑÇÊíÒËÃѺ¢Ñ¹Ê¡ÃÙ 3 ÁÔÅÅÔàÁµÃ 㹪شÁÕ 3 µÑÇ
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
23
1.6.10 àÊÒÃͧ¾ÅÒʵԡ à» ¹ÍØ»¡Ã³ ÊÒí ËÃѺª ÇÂÂÖ´ªÔ¹é Ê Ç¹µ Ò§æ áÅлÃФͧÃͧÃѺἧǧ¨Ã, á¼ ¹¡ÃÔ´áÅÐá¼ ¹°Ò¹ ·íÒ¨Ò¡¾ ÅÒʵԡ ABS à˹ÕÂÇ ÊÒÁÒöµÑ´ä´ ÁÕÅ¡Ñ É³Ðà» ¹á· §·Ã§¡Ãк͡ ÀÒÂã¹ÁÕõ٠ÅÍ´µÑÇÊíÒËÃѺà ÍÂÊ¡ÃÙ 3 ÁÔÅÅÔàÁµÃ 㹪ش»ÃСͺ´ Ç àÊÒÃͧ¢¹Ò´ 3 ÁÔÅÅÔàÁµÃ (4 µÑÇ), 10 ÁÔÅÅÔàÁµÃ (4 µÑÇ), 15 ÁÔÅÅÔàÁµÃ (4 µÑÇ) áÅÐ 25 ÁÔÅÅÔàÁµÃ (4 µÑÇ)
1.6.11 ¡ÐºÐ¶ Ò¹ 㪠ÊíÒËÃѺºÃèØẵàµÍÃÕ袹Ҵ AA ¨íҹǹ 5 ¡ ͹ ÁÕÊÒµ Í¢ÑéǺǡáÅТÑéÇźÊíÒËÃѺµ ͡Ѻἧǧ¨Ã MicroBOX ä´ ·¹Ñ ·Õ
24 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
25
º··Õè 2
Êà ҧËع ¹µ IPST-BOT Ëع ¹µ IPST-BOT à» ¹Ëع ¹µ 굄 â¹Áѵ¢Ô ¹Ò´àÅç¡·Õ¤è Ǻ¤ØÁ´ ÇÂäÁâ¤Ã¤Í¹â·ÃÅàÅÍà AVR àºÍà ATmega16 «Ö§è ÊÒÁÒöÊà ҧ¢Ö¹é ¨Ò¡ÍØ»¡Ã³ áÅЪԹé Ê Ç¹¨íҹǹäÁ ÁÒ¡ áµ ÃͧÃѺ¤ÇÒÁµ ͧ¡ÒÃ㹡ÒÃàÃÕ¹ÃÙä ´ Í ҧ¤Ãº¶ ǹÃͺ´ Ò¹ äÁ ÇÒ ¨Ðà» ¹¡ÒäǺ¤ØÁà«Íà âÇÁÍàµÍà à¾×Íè ¢Ñºà¤Å×Íè ¹Ëع ¹µ ã¹Åѡɳе Ò§æ ·Ò§à¤Å×Íè ¹·Õµè ç ¶ÍÂËÅѧ ËÁعµÑÇ àÅÕÂé Ç « ÒÂáÅТÇÒ ¡ÒÃÍ Ò¹¤ Ò¨Ò¡µÑǵÃǨ¨Ñºª¹Ô´µ Ò§æ ·Ñ§é Ẻ´Ô¨µÔ ÍÅáÅÐÍйÒÅÍ¡à¾×Íè ¹íÒÁÒ㪠»ÃСͺ¡ÒõѴÊÔ¹ã¨ã¹¡Òà ·íÒ§Ò¹ÀÒÂãµ ÀÒÇÐà§×Íè ¹ä¢µ Ò§æ ¡ÒõԴµ ͡ѺÍØ»¡Ã³ áÊ´§¼ÅÍ ҧâÁ´ÙÅ LCD 㹺·¹Õ¹é Òí àʹ͡ÒûÃСͺµÑÇËع ¹µ IPST-BOT ẺÁҵðҹ áÅШÐ㪠â¤Ã§Êà ҧ¹Õàé » ¹ËÅѡ㹡Òà à¢Õ¹â»Ãá¡ÃÁà¾×Íè ¤Çº¤ØÁ¡Ò÷íÒ§Ò¹ Í ҧäáçµÒÁ ¼ÙÊ Ã Ò§ÊÒÁÒö´Ñ´á»Å§ãË áµ¡µ Ò§ÍÍ¡ä»ä´ ËÒ¡áµ àÁ×Íè ¹íÒÁÒ à¢Õ¹â»Ãá¡ÃÁ¨Ðµ ͧ¤íÒ¹Ö§¶Ö§¼Å¢Í§¡ÒôѴá»Å§·Ò§â¤Ã§Êà ҧ·ÕÁè µÕ Í ¡Ò÷íÒ§Ò¹¢Í§µÑǵÃǨ¨ÑºáÅÐâ»Ãá¡ÃÁ´ Ç IPST-BOT ATmega16 Micro-robot ¢Ñºà¤Å×è͹´ Ǫش࿠ͧ¢ÑºÁÍàµÍà 俵çáÅÐÅ ÍÊÒ¾ҹ l ¤Çº¤ØÁ´ ÇÂäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ATmega16 â»Ãá¡ÃÁä´ ã¹µÑÇ l ÊÒÁÒöµÔ´µÑ§é ἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ ÍÔ¹¿ÃÒàôà¾×Íè µÃǨ¨ÑºàÊ ¹, ἧǧ¨ÃÊÇÔµª µÃǨ¨Ñº¡Òê¹, âÁ´ÙÅÇÑ´ÃÐÂзҧẺ ÍÔ¹¿ÃÒàôà¾×èÍÇÑ´ÃÐÂзҧ áÅÐËźËÅÕ¡ÊÔ觡մ¢ÇҧẺäÁ ÊÑÁ¼ÑÊ, ἧǧ¨Ãàª×èÍÁµ ͡Ѻ¨ÍÂʵÔꡢͧà¤Ã×èͧàÅ ¹à¡ÁÊ à¾×èͤǺ¤ØÁẺ㪠ÊÒÂ, ἧǧ¨ÃÃѺáʧÍÔ¹¿ÃÒàô à¾×èͤǺ¤ØÁ¨Ò¡ÃÐÂÐä¡Å, âÁ´ÙÅÊ×èÍÊÒâ ÍÁÙÅäà ÊÒ ·Ñ§é XBee áÅкÅÙ·¸Ù l ÁÕâÁ´ÙÅ LCD ¢¹Ò´ 16 µÑÇÍÑ¡Éà 2 ºÃ÷ѴÊíÒËÃѺ áÊ´§¼Å¡Ò÷íÒ§Ò¹ l ÊÒÁÒö¢Ñº RC à«Íà âÇÁÍàµÍÃ ä´ Ê§Ù ÊØ´ 5 ª ͧ ¨Ö§ÊÒÁÒö µÔ´µÑ駡Åä¡à¤Å×è͹äËÇà¾ÔèÁàµÔÁä´ l 㪠ä¿àÅÕÂ é §¨Ò¡áºµàµÍÃÕè AA ẺÍÑŤÒäŹ ËÃ×ÍẺ»ÃШØä´ ¨íҹǹ 5 ¡ ͹ l ´Òǹ âËÅ´â»Ãá¡ÃÁẺã¹Ç§¨Ã´ Ǫشâ»Ãá¡ÃÁ¼ Ò¹¾Íà µ USB
l
26 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
ÃÒ¡ÒÃÍØ»¡Ã³ ÊÒ¾ҹ 30 ¢ ͵ Í x 2
á¼ ¹°Ò¹¾ÅÒʵԡ x 1
ἧǧ¨Ã MicroBox ·Õµè ´Ô µÑ§é ÊÒ¾ҹ 10 ¢ ͵ Í x 2 ἧǧ¨Ã Display-MOTOR áÅÐâÁ´ÙÅ LCD x 1 ªØ´à¿ ͧ¢ÑºÁÍàµÍà 87:1 x 2 Å Í»ÃФͧ¡ÅÒ§ x 2 ©Ò¡ÂÖ´Å Í»ÃФͧ x 2
ÊÒ¾ҹ 8 ¢ ͵ Í x 2 Å Í»ÃФͧàÅç¡ x 2 ´ØÁÅ Í»ÃФͧ x 2
á· §µ Í 5 ÃÙ x 3 ©Ò¡âÅËÐ 2x1 x 2 ¡ÐºÐ¶ Ò¹ 5 ¡ ͹ x 1 ©Ò¡âÅËÐ 3x2 x 3
Ê¡ÃÙà¡ÅÕÂǻŠÍ 2 ÁÁ. x 4 Ê¡ÃÙËÇÑ µÑ´ 3x8 ÁÁ. x 6
Š;ÅÒʵԡ x 2
á· §µ Í 12 ÃÙ x 1
Ê¡ÃÙ 3x15 ÁÁ. x 4 Ê¡ÃÙ 3x10 ÁÁ. x 25
Ê¡ÃÙ 3x25 ÁÁ. x 2
©Ò¡âÅËÐ 2x2 x 3 Ê¡ÃÙÁÍ× ËÁعÂÒÇ x 1 ἧǧ¨ÃÊÇÔµª x 2
¹Íµ 3 ÁÁ. x 30
àÊÒÃͧâÅËÐ 25 ÁÁ. x 3 ἧǧ¨ÃÅíÒ⾧ x 1 àÊÒÃͧ¾ÅÒʵԡ
âÁ´ÙÅ GP2D120 x 1
à«Íà âÇÁÍàµÍà x 1
ªÔ¹é µ Íá¹ÇµÃ§ x 1 ªÔ¹é µ ÍÁØÁ©Ò¡ x 4 àÊÒÃͧ¾ÅÒʵԡ 3 ÁÁ. x 2
ἧǧ¨ÃµÃǨ¨Ñºáʧ Êз ͹ÍÔ¹¿ÃÒàô x 3 ᡹¡ÅÁ x 2
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
27
¢Ñ鹵͹¡ÒÃÊà ҧËØ ¹Â¹µ IPST-BOT (1) ÂÖ´¡ÐºÐ¶ Ò¹ 5 ¡ ͹ࢠҡѺἠ¹à¾Åµ â´Â㪠ʡÃÙËÇÑ µÑ´ 3N8 ÁÁ. ¢Ñ¹ÂÖ´´ ǹ͵ 3 ÁÁ. (ã¹µíÒá˹ §´Ñ§ÃÙ») â´Â µ ͧ㪠¤ÇÒÁ¾ÂÒÂÒÁ¢Ñ¹ÂÖ´ à¹×Íè §¨Ò¡ÃÙà¨ÒÐÁÕµÒí á˹ §àËÅ×Íè Á¡Ñ¹àÅ硹 ÍÂ
¹Íµ 3 ÁÁ.
¹Íµ 3 ÁÁ.
(2) ¹íÒ©Ò¡âÅËÐ 3N2 ÂÖ´´ ÇÂÊ¡ÃÙËÇÑ µÑ´ 3N8 ÁÁ. áÅй͵ 3 ÁÁ. â´ÂÇÒ§©Ò¡âÅËÐäÇ ´Ò ¹Å Ò§´Ñ§ÃÙ»
ÃÙ·Õè 5
(3) ¹íÒÁÍàµÍÃ ÍµÑ ÃÒ·´ 87:1 Âִࢠҷջè ÅÒ¢ͧ©Ò¡âÅËÐ â´Â㪠ʡÃÙ 3N25 ÁÁ. ¢Ñ¹ÂÖ´´ ǹ͵ 3 ÁÁ. â´ÂËѹ´ Ò¹ ᡹ËÁع¢Í§ÁÍàµÍà ÍÍ¡´ Ò¹¹Í¡ ¨Ò¡¹Ñé¹¹íÒ©Ò¡Âִ᡹ŠͻÃФͧÂִࢠҷÕèá¼ ¹à¾Åµ´ ÇÂÊ¡ÃÙ 3N10 ÁÁ. ã¹ µíÒá˹ §´Ñ§ÃÙ»
ÃÙ·Õè 5
28 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
(4) ¹íÒŠ;ÅÒʵԡÂִࢠҡѺ᡹¢Í§ªØ´à¿ ͧ¢ÑºÁÍàµÍà ¨Ò¡¹Ñ¹é 㪠ʡÃÙà¡ÅÕÂǻŠÍ¢¹Ò´ 2 ÁÁ. ¢Ñ¹ÂÖ´ ¨Ò¡¹Ñ¹é ¹íÒ á¡¹Å ÍáÅÐÅ Í»ÃФͧ àÊÕºࢠҡѺ©Ò¡ÂÖ´á¡¹Å Í áÅ Ç㪠´ÁØ Å ÍÅçÍ¡Å Í»ÃФͧäÇ ·§Ñé Êͧ´ Ò¹
Ê¡ÃÙà¡ÅÕÂǻŠÍÂ
Å Í»ÃФͧ¡ÅÒ§
᡹ŠÍ
´ØÁÅ Í
(5) ¹íÒ©Ò¡âÅËÐ 2N1 ÂִࢠҡѺἠ¹à¾ÅµºÃÔàdz´ ҹ˹ Ңͧ¡ÐºÐ¶ Ò¹ áÅ Ç㪠ʡÃÙ 3N10 ÁÁ.¢Ñ¹ÂÖ´´ ǹ͵ 3 ÁÁ. ·íҷѧé Êͧ´ Ò¹¢Í§á¼ ¹°Ò¹à¾×Íè ãª Â´Ö ºÍà ´¤Çº¤ØÁËÅÑ¡
(6) ¹íÒàÊÒÃͧâÅËÐ 30 ÁÁ. Âִࢠҷմè Ò ¹ËÅѧ¢Í§Ëع ¹µ ã¹µíÒá˹ §¡Ö§è ¡ÅÒ§ â´ÂÃÙ·ãÕè ª 嫅 àÊÒÃͧ໠¹ÃÙ·Õè 4 ¹Ñº¨Ò¡ ¢Íº¢Í§á¼ ¹°Ò¹ ¨Ò¡¹Ñ¹é ¢Ñ¹ÂÖ´´ ÇÂÊ¡ÃÙ 3N10 ÁÁ.
ÃÙ·Õè 4
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
29
(7) ¹íÒÊÒ¾ҹÁÒ»ÃСͺ¡Ñ¹à» ¹Å ÍÊÒ¾ҹÊíÒËÃѺËع ¹µ IPST-BOT â´Â㪠ÊÒ¾ҹ 30 ¢ ͵ Í, 10 ¢ ͵ Í áÅÐ 8 ¢ ͵ Í Í ҧÅÐ 1 àÊ ¹ ·íÒàËÁ×͹¡Ñ¹ 2 àÊ ¹ ¨Ò¡¹Ñ¹é ÊÇÁࢠҷÕÅè Í ¢Í§Ëع ¹µ ´§Ñ ÃÙ» Êѧࡵ¤ÇÒÁµÖ§¢Í§ÊÒ¾ҹ¨Ðµ ͧäÁ µÖ§ËÃ×ÍË ͹à¡Ô¹ä»
(8) ¹íÒªÔ¹é µ Íá¹ÇµÃ§ÁÒÂִࢠҡѺἠ¹Ãͧ¢Í§á¼§Ç§¨Ã MIcroBOX ·Õµè ´Ô µÑ§é ἧǧ¨Ã Display-MOTOR áÅ Ç·Õè µíÒá˹ §¡Ö§è ¡ÅÒ§â´Â㪠ʡÃÙ 3N10 ÁÁ. áÅй͵ 3 ÁÁ. ¢Ñ¹ÂÖ´
30 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
(9) ¨Ò¡¹Ñ¹é ÂÖ´©Ò¡âÅËÐ 2N2 ࢠҡѺÃÙ嫅 ¢Í§á¼ ¹Ãͧἧǧ¨Ã¤Çº¤ØÁ 2 ÃÙ´Ò ¹µÃ§¢ ÒÁ´ Ò¹·ÕÂè ´Ö ªÔ¹é µ Íá¹ÇµÃ§ ´Ñ§ÃÙ» áŠǢѹÂÖ´ãË á¹ ¹´ ÇÂÊ¡ÃÙ 3N10 ÁÁ. áÅй͵ 3 ÁÁ. â´ÂãË Â´Ö Ê¡ÃÙࢠҷÕÃè «Ù §Öè ÍÂÙã ¡Å ¡ºÑ Ã;Ѻ¢Í§©Ò¡âÅËÐ
(10) ¹íÒÅ Í»ÃФͧàÅç¡ÊÇÁࢠҡѺ᡹ŠÍáÅ Ç» ´»ÅÒÂ᡹´ Ò¹Ë¹Ö§è ´ Ç´ØÁÅ Í »ÅÒÂÍÕ¡´ ҹ˹֧è ãË »Å ÍÂÇ Ò§äÇ ¡Í ¹ á¡¹Å Í Å Í»ÃФͧàÅç¡ ´ØÁÅ Í (11) ¹íÒἧǧ¨Ã¤Çº¤ØÁËÅÑ¡·ÕÂè ´Ö ©Ò¡âÅËШҡ¢Ñ¹é µÍ¹·Õè (9) ÁÒÇÒ§º¹â¤Ã§Ëع ¹µ ¨Ò¡¢Ñ¹é µÍ¹·Õè (6) â´Â¨Ñ´ãË µíÒá˹ §Ã٢ͧ©Ò¡âÅËзÕáè ¼§Ç§¨Ã¤Çº¤ØÁËÅÑ¡µÃ§¡ÑºÃÙ·©Õè Ò¡âÅËТͧâ¤Ã§Ëع ¹µ ¨Ò¡¹Ñ¹é ¹íÒá¡¹Å Í·Õµè ´Ô µÑ§é Å Í »ÃФͧàÅç¡áÅдØÁŠͨҡ¢Ñ¹é µÍ¹·Õè (10) ÁÒÊʹࢠÒä»ã¹Ã٢ͧ©Ò¡âÅËÐãË ¼Ò ¹ä»ÂѧÍÕ¡´ ҹ˹֧è
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
31
(12) ¨Ò¡¹Ñ¹é ÊÇÁÅ Í»ÃФͧàÅç¡à¢ Ò·Õ»è ÅÒ¢ͧ᡹ŠͷÕÇè Ò §ÍÂÙ áÅ ÇÂÖ´» ´ãË á¹ ¹´ Ç´ØÁÅ Í
(13) ¨Ò¡¢Ñ¹é µÍ¹ (12) ᡹ŠͷíÒ˹ Ò·Õàè ÊÁ×͹໠¹ºÒ¹¾ÑºÊíÒËÃѺ¡ÒÃà»ÅÕÂè ¹áºµàµÍÃÕè ã¹¢³Ð·ÕÅè Í »ÃФͧàÅç¡ãª »ÃÐ⪹ 㹡Òá´Å ÍÊÒ¾ҹãË Á¤Õ ÇÒÁµÖ§áÅСÃЪѺ¡ÑºÅ Í¡ÅÁãË ä´ ´¢Õ ¹Öé
(14) ¹íÒ¢ÑÇé ẵàµÍÃÕµè Í à¢ Ò¡Ñº¨Ø´µ Í DC. INPUT â´ÂÊÒÂÊÕá´§µ ÍࢠҢÑÇé ºÇ¡ (+) áÅÐÊÒÂÊÕ´Òí µ ÍࢠҡѺ¢ÑÇé ź (-)
32 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
(15) ¹íÒẵàµÍÃÕ¢è ¹Ò´ AA ¨íҹǹ 5 ¡ ͹ºÃèØŧ㹡кж Ò¹ ¨Ò¡¹Ñ¹é ¾Ñºá¼§Ç§¨Ã¤Çº¤ØÁËÅѡŧÁÒ» ´¡ÐºÐ¶ Ò¹ µíÒá˹ §Ã٢ͧªÔ¹é µ Íá¹ÇµÃ§¨ÐµÃ§¡Ñº¡ÑºÃ٢ͧàÊÒÃͧâÅËТͧâ¤Ã§Ëع ¹µ ¾Í´Õ ãË ãª Ê¡ÃÙÁÍ× ËÁعÂÒǢѹÂÖ´ãË á¹ ¹ ËÒ¡µ ͧ¡ÒÃà»ÅÕÂè ¹áºµàµÍÃÕ¡è Êç ÒÁÒö·íÒä´ §Ò Âæ ´ Ç¡ÒÃËÁعʡÃÙÁÍ× ËÁع¹ÕÍé Í¡ ¡ἧǧ¨Ã¤Çº¤ØÁ¢Ö¹é ¡çÊÒÁÒöà»ÅÕÂè ¹ ẵàµÍÃÕäè ´ Í ҧ§ Ò´ÒÂ
(16) µ ÍÊÒÂÁÍàµÍà ´Ò ¹« ÒÂà¢ Ò·Õ¨è ´Ø µ Í M1 áÅе ÍÊÒÂÁÍàµÍà ´Ò ¹¢ÇÒà¢ Ò·Õ¨è ´Ø µ Í M2
(17) ¹íÒªÔ¹é µ ÍÁØÁ©Ò¡àÊÕºࢠҡѺ·Ò§´ Ò¹ËÅѧ¢Í§ªØ´à¿ ͧ¢ÑºÁÍàµÍà à¾×Íè ¡ÃдѺãË ª´Ø ࿠ͧ¢ÑºÁÍàµÍà ÍÂÙã ¹á¹Ç ÃйҺ áŠǪ ÇÂãË ª´Ø ࿠ͧ¢ÑºÁÍàµÍÃ ä´ ÃºÑ ¡ÒõԴµÑ§é ÍÂÙã ¹µíÒá˹ §·ÕÁè ¹Ñè ¤§¢Ö¹é
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
33
(18) ¨Ò¡¹Ñ¹é ¹íÒἧǧ¨ÃÅíÒ⾧໠Ââ«ÁÒµÔ´µÑ§é ࢠҡѺâ¤Ã§Ëع ¹µ ã¹·Ò§»¯ÔºµÑ ¼Ô ãÙ ª §Ò¹ÊÒÁÒöµÔ´µÑ§é ã¹µíÒá˹ § Ç Ò§·Õãè ´¡çä´ ÊíÒËÃѺµÑÇÍ ҧ㹷չè àÕé Å×Í¡µÔ´µÑ§é äÇ ã¹µÍ¹ËÅѧ¢Í§â¤Ã§Ëع ¹µ â´Â㪠ʡÃÙ 3N15 ÁÁ. áÅй͵ 3 ÁÁ. ¢Ñ¹ÂÖ´ãË á¹ ¹ µ ÍÊÒÂÊÑÒ³¢Í§á¼§Ç§¨ÃÅíÒâ¾§à¢ Ò·Õ¨è ´Ø µ Í PB4 ¢Í§á¼§Ç§¨Ã¤Çº¤ØÁËÅÑ¡
¨Ðä´ Ë¹Ø Â¹µ IPST-BOT ·Õ¾è à ÍÁÊíÒËÃѺ¡ÒÃà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁà¾×Íè ·´Êͺ¡Ò÷íÒ§Ò¹
34 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
35
º··Õè 3 ¡ÒþѲ¹Òâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺªØ´Ëع ¹µ IPST-BOT ªØ´Ëع ¹µ IPST-BOT ä´ ÃºÑ ¡ÒÃÍ͡ẺãË ÃͧÃѺ¡Ñº¡ÒÃàÃÕ¹ÃÙ´ Ò ¹à·¤â¹âÅÂÕáÅн ¡¡Ãкǹ¡ÒäԴ ¼ Ò¹·Ò§¡ÒÃà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁ´ ÇÂÀÒÉÒ C à» ¹ËÅÑ¡ 㹺·¹Õàé » ¹¡ÒùíÒàʹͶ֧ͧ¤ »ÃСͺ·Ñ§é ËÁ´â´ÂÊÃØ» ¢Í§Ê×èÍ¡ÒÃàÃÕ¹ÃÙ ªØ´¹Õé¾Ã ÍÁ¡Ñºá¹Ð¹íÒµÑÇÍ ҧ¡ÒÃ㪠§Ò¹à¤Ã×èͧÁ×ÍÊíÒËÃѺ¾Ñ²¹Òâ»Ãá¡ÃÁáÅеÑÇÍ ҧ¢Í§¡Òà ·´Êͺ¡Ò÷íÒ§Ò¹·Ò§ÎÒà ´áÇÃ ã¹¢Ñ¹é µ ¹ à¾×Íè 㪠໠¹á¹Ç·Ò§ã¹¡ÒþѲ¹Òâ»Ãá¡ÃÁÊíÒËÃѺ¤Çº¤ØÁÊ×Íè Ëع ¹µ à¾×èÍ¡ÒÃÈÖ¡ÉÒµÑǹÕé
3.1 ͧ¤ »ÃСͺËÅÑ¡·Ò§ÎÒà ´áÇà ·ãÕè ª Êà ҧËع ¹µ IPST-BOT 3.1.1 ἧǧ¨Ã¤Çº¤ØÁËÅÑ¡ MicroBOX à» ¹á¼§Ç§¨ÃËÅÑ¡·Õãè ª 㹡ÒûÃÐÁÇżÅáÅФǺ¤ØÁ¡Ò÷íÒ§Ò¹ 3.1.2 ἧǧ¨ÃáÊ´§¼ÅáÅФǺ¤ØÁ¾Åѧ§Ò¹ Display-MOTOR à» ¹á¼§Ç§¨Ã·Õµè ´Ô µÑ§é ࢠҡѺἧǧ¨Ã¤Çº ¤ØÁËÅÑ¡à¾×Íè áÊ´§¼Å¡Ò÷íÒ§Ò¹, ¨Ñ´¡ÒÃä¿àÅÕÂé §ãË á¡ á¼§Ç§¨Ã¤Çº¤ØÁÍ ҧÁÕàʶÕÂÃÀÒ¾ áÅТѺÁÍàµÍà ·§Ñé Ẻ ÁÍàµÍà 俵绡µÔáÅÐà«Íà âÇÁÍàµÍà 3.1.3 ªØ´à¿ ͧ¢ÑºÁÍàµÍà 俵ç ÁÕ굄 ÃÒ·´ 87:1 ¨íҹǹ 2 µÑÇ ·íÒ˹ Ò·Õàè » ¹ÍØ»¡Ã³ ¢ºÑ à¤Å×Íè ¹¢Í§Ëع ¹µ 3.1.4 à«Íà âÇÁÍàµÍà ẺÁҵðҹ ᡹ËÁØ¹ä´ 180 ͧÈÒ ¨íҹǹ 1 µÑÇ 3.1.4 µÑǵÃǨ¨Ñºª¹Ô´µ Ò§æ ·Ñ§é Ẻ´Ô¨µÔ ÍÅáÅÐÍйÒÅÍ¡ 3.1.5 ªØ´â¤Ã§Êà ҧËع ¹µ áÅÐÍØ»¡Ã³ ·Ò§¡Å
3.2 ͧ¤ »ÃСͺËÅÑ¡·Ò§«Í¿µ áÇà ·ãÕè ª 㹡ÒþѲ¹Òâ»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ »ÃСͺ´ Ǫش«Í¿µ áÇà ¾Ñ²¹Òâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà AVR ã¹áºº ÁҵðҹáÅÐẺâÍྠ¹«ÍÃ Ê (open source) ·ÕèÊÒÁÒö¹íÒÁÒãª ä´ â´ÂäÁ µÍ §àÊÕ¤ Ò㪠¨Ò  «Í¿µ áÇà ËÅÑ¡·Õãè ª §Ò¹ 3.2.1 AVR Studio à» ¹ªØ´«Í¿µ áÇà ·¾Õè ² Ñ ¹Ò¢Ö¹é â´Â Atmel ¼Ù¼ ÅÔµäÁâ¤Ã¤Í¹â·ÃÅàÅÍà µÃСÙÅ AVR «Ö§è ¹íÒÁÒãª Í»Ø ¡Ã³ ËÅѡ㹡ÒäǺ¤ØÁ¡Ò÷íÒ§Ò¹¢Í§Ëع ¹µ â´Âã¹·Õ¹è ¨Õé Ð㪠AVR Studio ·íÒ˹ Ò·Õàè » ¹à·ç¡« àÍ´ÔàµÍà ÊíÒËÃѺ¡ÒÃÊà ҧä¿Å â»Ãà¨ç¡µ áÅЫÍà Ê⤠´ÀÒÉÒ C â´ÂÀÒÂã¹ AVR Studio ä´ ºÃèØà¤Ã×Íè §Á×Í·Õªè Ç ÂÍíҹǤÇÒÁ Êдǡµ Í¡ÒþѲ¹Òâ»Ãá¡ÃÁÀÒÉÒ C ·Ñ§é ÂѧÊÒÁÒöàª×Íè Á⧡Ò÷íÒ§Ò¹ã¹Ê ǹµ Ò§æ ¡Ñº¤ÍÁä¾àÅÍà ·¡Õè Òí ˹´ä´ ´ Ç â´Â¤ÍÁä¾àÅÍà ·¹Õè Òí ÁÒ㪠ÃÇ Á¡Ñ¹¤×Í WinAVR ÊÒÁÒöµÔ´µ ͡Ѻä¿Å äźÃÒÃÕ¹ÒÁÊ¡ØÅ .h «Ö§è ºÃèؿ§ ¡ ª¹Ñè ¢Í§ â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺµÔ´µ ͡ѺÍØ»¡Ã³ µÒ §æ ·Ñ§é ÂѧÊÒÁÒöµÔ´µ ͡Ѻ«Í¿µ áÇà ÊÒí ËÃѺâ»Ãá¡ÃÁ¢ ÍÁÙÅŧã¹
36 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ËÅÑ¡¢Í§á¼§Ç§¨Ã¤Çº¤ØÁËÅÑ¡ MicroBOX 㹪شËع ¹µ IPST-BOT ä´ ´Ç  ªØ´«Í¿µ áÇà AVR Studio ¾Ñ²¹ÒáÅÐà¼Âá¾Ã â´ÂäÁ ¤´Ô ÁÙŤ Òâ´Â Atmel «Ö§è à» ¹¼Ù¼ ÅÔµäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ATmega16 ·Õãè ª à» ¹ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ËÅÑ¡¢Í§ªØ´Ëع ¹µ IPST-BOT ÊíÒËÃѺàÇÍà ª¹Ñ ·Õ¹è Òí ÁÒãª ã¹·Õ¹è ¤Õé Í× AVR Studio 4.13 áÅÐ ÊÒÁÒö´Òǹ âËÅ´àÇÍà ª¹Ñè ·ÕÍè Ò¨ÁÕ·Õè www.atmel.com 3.2.2 WinAVR à» ¹«Í¿µ áÇà µÇÑ á»Åâ»Ãá¡ÃÁÀÒÉÒ C (C Compiler) à¾×Íè ãË ä´ ä¿Å ¼ÅÅѾ¸ ¹ÒÁÊ¡ØÅ .hex ¹íÒä»à¢Õ¹ŧã¹Ë¹ ǤÇÒÁ¨íÒâ»Ãá¡ÃÁ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ã¹á¼§Ç§¨Ã¤Çº¤ØÁËÅÑ¡µ Íä» â´Â WinAVR à» ¹«Í¿µ áÇà ẺâÍྠ¹«ÍÃ Ê (open source) ¾Ñ²¹Òµ ͨҡ GNU GCC ¤ÍÁä¾àÅÍà ÊÒÁÒö´Ù¢Í ÁÙÅà¾ÔÁè àµÔÁÃÇÁ ·Ñ§é ´Òǹ âËÅ´«Í¿µ áÇà ãËÁ æ (·ÕÍè Ò¨ÁÕ) ¨Ò¡ http://sourceforge.net/projects/winavr/ â´Â㹪شËع ¹µ IPST-BOT ¨ÐÍ Ò§ÍÔ§¡ÒÃà¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ¡Ñº WinAVR ã¹àÇÍà ª¹Ñ 20070525 àÁ×Íè ·íÒ¡ÒõԴµÑ§é WinAVR áŠǨÐÊÒÁÒö àª×Íè Á⧡Ò÷íҧҹࢠҡѺ AVR Studio ä´ ´Ñ§¹Ñ¹é ¨Ö§ÊÒÁÒö·íÒ¡ÒÃà¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C º¹ AVR Studio áÅ Ç ·íÒ¡ÒäÍÁä¾Å â»Ãá¡ÃÁ´ Ç WinAVR ä´ Í ҧµ Íà¹×Íè § â´Â¼ÅÅѾ¸ ¢Í§¡ÒäÍÁä¾Å ¨Ðä´ à» ¹ä¿Å ¹ÒÁÊ¡ØÅ .hex Íѹ໠¹ä¿Å ÃËÑÊÀÒÉÒà¤Ã×Íè §ËÃ×Í·Õàè ÃÕÂ¡Ç Ò áÁªÕ¹â¤ ´ â´Âä¿Å ¼ÅÅѾ¸ ·äÕè ´ ¨Ò¡¡ÒþѲ¹ÒÊÒÁÒö¹íÒä»´Òǹ âËÅ´ ŧÊÙä Áâ¤Ã¤Í¹â·ÃÅàÅÍà µÍ ä»ä´ ·¹Ñ ·Õ 3.2.3 ä¿Å äźÃÒÃÕ .h à» ¹ä¿Å ʹѺʹعªØ´¤íÒÊѧè ËÃ×Í¿ §¡ ª¹Ñè µ Ò§æ à¾×Íè ÍíҹǤÇÒÁÊдǡ㹡ÒÃÊà ҧ â»Ãá¡ÃÁ¤Çº¤ØÁ¡Ò÷íÒ§Ò¹¢Í§á¼§Ç§¨Ã MicroBOX Íѹ໠¹á¼§Ç§¨Ã¤Çº¤ØÁËÅÑ¡¢Í§ªØ´¡Å ͧÊÁͧ¡Å IPSTMicroBOX áÅÐËع ¹µ IPST-BOT ÍÒ·Ô ¤íÒÊÑ§è ¤Çº¤ØÁÍÔ¹¾Øµ/àÍÒµ ¾µØ ·Ñ§é ẺÊÑÒ³´Ô¨µÔ ÍÅáÅÐÍйÒÅÍ¡, ¤íÒÊÑ§è µÔ´µ Í¡ÅØÁ ÍØ»¡Ã³ µÃǨ¨ÑºËÃ×Íૹà«Íà Ẻµ Ò§æ, ¤íÒÊѧè Ê §¢ ÍÁÙÅä»Âѧ˹ ÇÂáÊ´§¼ÅâÁ´ÙÅ LCD à» ¹µ ¹ 3.2.4 «Í¿µ áÇà ÊÒí ËÃѺ´Òǹ âËÅ´â»Ãá¡ÃÁ ËÅѧ¨Ò¡·Õ¤è ÍÁä¿Å â»Ãá¡ÃÁÀÒÉÒ C áÅ Ç ä¿Å ¼ÅÅѾ¸ ·Õè ä´ à» ¹ä¿Å ¹ÒÁÊ¡ØÅ .hex «Ö觵 ͧ¹íÒä»â»Ãá¡ÃÁŧã¹Ë¹ ǤÇÒÁ¨íÒâ»Ãá¡ÃÁ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ATmega16 ÊíÒËÃѺ㹪شËع ¹µ IPST-BOT 㪠â»Ãá¡ÃÁ AVRProg à» ¹¼Å§Ò¹¢Í§ Atmel 㪠¡ºÑ ªØ´´Òǹ âËÅ´ â»Ãá¡ÃÁ¼ Ò¹¾Íà µ USB â´Â AVRProg ä´ ÃºÑ ¡ÒõԴµÑ§é 仾à ÍÁ¡Ñº¡ÒõԴµÑ§é «Í¿µ áÇà AVR Studio
3.3 ä¿Å äźÃÒÃÕÊè ¹ÑºÊ¹Ø¹¡Ò÷íÒ§Ò¹Ëع ¹µ 㹡ÒþѲ¹Òâ»Ãá¡ÃÁÀÒÉÒ C à¾×Íè ¤Çº¤ØÁËع ¹µ IPST-BOT ¹Ñ¹é ·Ò§¼Ùà ¢ÕÂ¹ä´ ¾²Ñ ¹Òä¿Å äźÃÒÃÕà¾ÕÍè ʹѺ ʹع¡Ò÷íÒ§Ò¹áÅÐÍíҹǤÇÒÁÊдǡ㹡ÒþѲ¹Òâ»Ãá¡ÃÁ â´Â¡ÅØÁ ¢Í§ä¿Å äźÃÒÃÕàËÅ Ò¹Õ¶é ¡Ù ¨Ñ´à¡çºäÇ ã¹ â¿Åà´Íà robot_include «Ö觺ÃèØÍÂ٠㹫մÕÃÍÁ·ÕèÁҾà ÍÁ¡ÑºªØ´ËØ ¹Â¹µ Ë Ã× Í´Òǹ âËÅ´ä´ ¨Ò¡ www.ipstmicrobox.com ä¿Å äźÃÒÃբͧªØ´Ëع ¹µ IPST-BOT (¨¹¶Ö§¢³Ð¹Õ)é ÁÕ´§Ñ ¹Õé 1. sleep.h ʹѺʹعªØ´¤íÒÊѧè à¡ÕÂè ǡѺ¡ÒÃ˹ ǧàÇÅÒ 2. in_out.h ʹѺʹعªØ´¤íÒÊѧè à¡ÕÂè ǡѺ¡ÒÃÍ Ò¹áÅÐà¢Õ¹¤ Ò¾Íà µÍÔ¹¾ØµàÍÒµ ¾µØ 3. sound.h ʹѺʹعªØ´¤íÒÊѧè à¡ÕÂè ǡѺ¡ÒáíÒà¹Ô´àÊÕ§ 4. lcd.h ʹѺʹعªØ´¤íÒÊѧè à¡ÕÂè ǡѺ¡ÒÃáÊ´§¢ ͤÇÒÁ·Õâè Á´ÙÅ LCD 5. analog.h ʹѺʹعªØ´¤íÒÊѧè à¡ÕÂè ǡѺ¡ÒÃÍ Ò¹¤ ÒÍÔ¹¾ØµÊÑÒ³ÍйÒÅÍ¡
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
37
6. serial.h ʹѺʹعªØ´¤íÒÊѧè à¡ÕÂè ǡѺ¡ÒÃÃÑºÊ §¢ ÍÁÙż Ò¹âÁ´ÙÅÊ×Íè ÊÒâ ÍÁÙÅ͹ءÃÁ â´Â·íÒ§Ò¹ à ÇÁ¡Ñºá¼§Ç§¨Ã Display-MOTOR 7. motor.h ʹѺʹعªØ´¤íÒÊÑ§è ¤Çº¤ØÁÁÍàµÍà 俵ç ·íҧҹà ÇÁ¡Ñºá¼§Ç§¨Ã¢ÑºÁÍàµÍà ZXDCM2 ËÃ×Í㪠¡ºÑ ǧ¨Ã¢ÑºÁÍàµÍà 俵纹ºÍà ´ Display-MOTOR 8. servo.h ʹѺʹعªØ´¤íÒÊѧè à¡ÕÂè ǡѺ¡ÒäǺ¤ØÁÁÍàµÍà à«Íà âÇ ·íҧҹà ÇÁ¡Ñºá¼§Ç§¨Ã Display-MOTOR 9. systick_timer.h ʹѺʹعªØ´¤íÒÊÑè§à¡ÕèÂǡѺ¡ÒèѺàÇÅÒà¾×èÍ¡ÒÃá»Ã¼ÅÅѾ¸ ·Ò§¡ÒÂÀÒ¾¢Í§ µÑǵÃǨ¨Ñºáºº¾ÔàÈÉàÁ×è͹íÒÁÒµ Í㪠§Ò¹¡ÑºËØ ¹Â¹µ 10. gp2d120_lib.h ʹѺʹعªØ´¤íÒÊѧè à¾×Íè 㪠§Ò¹âÁ´ÙŵÃǨ¨ÑºÃÐÂзҧẺÍÔ¹¿ÃÒàôàºÍà GP2D120 11. srf05_lib.h ʹѺʹعªØ´¤íÒÊѧè à¾×Íè 㪠§Ò¹âÁ´ÙŵÃǨ¨ÑºÃÐÂзҧ´ ǤÅ×¹è ÍÑŵà Ò⫹ԡÃع SRF05 12. cmps03_lib.h ʹѺʹعªØ´¤íÒÊѧè à¾×Íè 㪠§Ò¹âÁ´ÙÅà¢çÁ·ÔÈÍÔàÅç¡·ÃÍ¹Ô¡Ê Ã¹Ø CMPS03 㹡Òà àª×Íè Áµ ÍẺºÑÊ 2 ÊÒÂËÃ×ͺÑÊ I2C â´ÂãË ¼Å¢Í§¤ ÒÁØÁ 0 ¶Ö§ 359 ͧÈÒ 13. cmps03_pwm_lib.h ʹѺʹعªØ´¤íÒÊѧè à¾×Íè 㪠§Ò¹âÁ´ÙÅà¢çÁ·ÔÈÍÔàÅç¡·ÃÍ¹Ô¡Ê Ã¹Ø CMPS03 㹡ÒÃàª×Íè Áµ ÍẺ 1 ÊÒ¼ Ò¹·Ò§¨Ø´µ Í PWM â´ÂãË ¼Å¢Í§¤ ÒÁØÁà» ¹ 0, 10, 20..., 350 ͧÈÒ 14. sht11_lib.h ʹѺʹعªØ´¤íÒÊѧè à¾×Íè Í Ò¹¤ ÒÍسËÀÙÁáÔ ÅФÇÒÁª×¹é ÊÑÁ¾Ñ·¸ ã¹ÍÒ¡ÒȨҡâÁ´ÙÅ SHT11 15. joystick.h ʹѺʹعªØ´¤íÒÊѧè à¾×Íè µÔ´µ ͡Ѻ¨ÍÂʵԡê ËÃ×ͪش¤Çº¤ØÁ¢Í§à¤Ã×Íè §àÅ ¹ÇÔ´âÕ Íà¡ÁÊ à¾Å Ê൪Ñè¹ Í ҧäáçµÒÁ ¤³Ð¼Ù à¢Õ¹ÂѧÁÕ¡ÒþѲ¹Òä¿Å äźÃÒÃÕÊíÒËÃѺ㪠§Ò¹ªØ´ËØ ¹Â¹µ IPST-BOT ¡ÑºÍØ»¡Ã³ ¾ÔàÈÉÍ×¹è æ ÃÇÁ¶Ö§äźÃÒÃÕÊÒí ËÃѺà¾ÔÁè ¤ÇÒÁÊÒÁÒö㹡ÒûÃÐÁÇżŢͧªØ´¤Çº¤ØÁÍ ҧµ Íà¹×Íè § ÊÒÁÒöµÔ´µÒÁ ¢ ÒÇÊÒÃáÅдÒǹ âËÅ´äźÃÒÃÕà¾ÔÁè àµÔÁä´ ·Õè www.ipst-microbox.com
38 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
µÔ´µÑ駫Ϳµ áÇÃ
- AVR Studio «Í¿µ áÇà ÊíÒËÃѺà¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C - WinAVR «Í¿µ áÇà µÑÇá»Åâ»Ãá¡ÃÁÀÒÉÒ C (¤ÍÁä¾àÅÍà ) - «Í¿µ áÇà ÊíÒËÃѺâ»Ãá¡ÃÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍà - AVRProg ¡Ã³Õ㪠à¤Ã×èͧâ»Ãá¡ÃÁ¼ Ò¹¾Íà µ USB * OSPII ¡Ã³Õ㪠à¤Ã×èͧâ»Ãá¡ÃÁ¼ Ò¹¾Íà µ USB * - ä´ÃàÇÍà ¢Í§à¤Ã×èͧâ»Ãá¡ÃÁ¼ Ò¹¾Íà µ USB - AVR
Êà ҧä¿Å ¼Ñ§§Ò¹ËÃ×Íâ»Ãà¨ç¡µ
1. Êà ҧä¿Å â»Ãà¨ç¡µ ãËÁ 2. àÅ×Í¡Êà ҧâ»Ãà¨ç¡µ ¢Í§â»Ãá¡ÃÁÀÒÉÒ C 3. àÅ×Í¡äÁâ¤Ã¤Í¹â·ÃÅàÅÍà /¤ÇÒÁ¶ÕèÊÑÒ³¹ÒÌÔ¡Ò /ÃٻẺä¿Å ¼ÅÅѾ¸ 4. ¼¹Ç¡ä¿Å äźÃÒÃÕ·Õèµ Í§¡ÒÃ
à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C * µÔ´µÑ駵ÑÇã´µÑÇ˹Öè§ËÃ×Í·Ñé§ÊͧµÑÇ
¤ÍÁä¾Å
ä´ ä¿Å ¼ÅÅѾ¸ ¹ÒÁÊ¡ØÅ .hex
´Òǹ âËÅ´â»Ãá¡ÃÁ ¾Íà µ USB
´Òǹ âËÅ´¼ Ò¹¾Íà µ USB
1. 㪠à¤Ã×èͧâ»Ãá¡ÃÁ PX-4000 2. µ Íà¤Ã×èͧâ»Ãá¡ÃÁ¡ÑººÍà ´äÁâ¤Ã¤Í¹â·ÃÅàÅÍà áÅоÍà µ USB 3. ¨ ÒÂä¿ãË ¡ÑºÃкº 4. 㪠«Í¿µ áÇà AVRProg ËÃ×Í AVR OSPII 5. àÅ×Í¡äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ·Õèµ Í§¡Òà 6. ·íÒ¡ÒÃâ»Ãá¡ÃÁ
Ãѹâ»Ãá¡ÃÁ
1. » ´ä¿àÅÕé§ ¨Ò¡¹Ñ鹻Ŵ¡ÒÃàª×èÍÁµ ÍÃÐËÇ Ò§à¤Ã×èͧâ»Ãá¡ÃÁ¡Ñº ἧǧ¨Ã¤Çº¤ØÁËØ ¹Â¹µ IPST-BOT ÍÍ¡ 2. ¨ ÒÂä¿ãË ¡ÑºÃкº à¾×èÍàÃÔèÁµ ¹¡Ò÷íÒ§Ò¹
ÃÙ»·Õè 3-1 áÊ´§¼Ñ§§Ò¹¢Í§¡ÒþѲ¹Òâ»Ãá¡ÃÁà¾×Íè ¤Çº¤ØÁËع ¹µ IPST-BOT ´ ÇÂÀÒÉÒ C
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
39
3.5 ¢Ñ¹é µÍ¹¡ÒþѲ¹Òâ»Ãá¡ÃÁÀÒÉÒ C à¾×Íè ¤Çº¤ØÁËع ¹µ IPST-BOT ¢Ñ¹é µÍ¹¡ÒþѲ¹Òâ»Ãá¡ÃÁÊíÒËÃѺªØ´Ëع ¹µ IPST-BOT ÊÒÁÒöÊÃػ໠¹á¼¹ÀÒ¾ä´ ´§Ñ ÃÙ»·Õè 3-1
3.4 µÔ´µÑ§é â»Ãá¡ÃÁ 3.4.1 µÔ´µÑ§é â»Ãá¡ÃÁ AVR Studio (1) ´ÑºàºÔŤÅÔ¡·Õäè ¿Å µ´Ô µÑ§é aStudio4b528.exe ¨Ò¡â¿Åà´Íà Tools à AVR Studio4.13 ã¹á¼ ¹«Õ´ÃÕ ÍÁ·Õè ¨Ñ´ÁҾà ÍÁ¡ÑºªØ´Ëع ¹µ MegaBOT (2) ¨ÐࢠÒÊÙË ¹ Òµ Ò§áá¢Í§¡ÒõԴµÑ§é â»Ãá¡ÃÁ AVR Studio ´Ñ§ÃÙ» ¤ÅÔ¡·Õ»è ÁØ Next
(3) ¨Ò¡¹Ñ¹é ࢠÒÊÙË ¹ Òµ Ò§¢ ͵¡Å§à§×Íè ¹ä¢ÅÔ¢ÊÔ·¸ áÅСÒÃ㪠§Ò¹ «Ö§è ¨ÐÁÕÃÒÂÃÐàÍÕ´¢Í§¤Ø³ÊÁºÑµ¢Ô ͧà¤Ã×Íè § ¤ÍÁ¾ÔÇàµÍà áÅÐÃкº»®ÔºµÑ ¡Ô Ò÷ÕÊè ÒÁÒöÃͧÃѺ¡Ò÷íÒ§Ò¹¢Í§ AVR Studio (µÒÁÃٻ໠¹ àÇÍà ª¹Ñè 4) ÃÇÁ件֧ ª×Íè ºÃÔÉ·Ñ ¼Ù¼ ÅÔµáÅÐÍ×¹è æ â´ÂãË àÅ×Í¡ª ͧ I accept the terms of the license agreement ¨Ò¡¹Ñ¹é ¤ÅÔ¡·Õ»è ÁØ Next
40 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
(4) ࢠÒÊÙË ¹ Òµ Ò§¡ÒõԴµÑ§é ã¹ÅíҴѺ¶Ñ´ä» ·Õáè Ê´§ª×Íè ¾Ò¸¢Í§¤ÍÁ¾ÔÇàµÍà 㹡ÒõԴµÑ§é â»Ãá¡ÃÁ AVR Studio «Ö§è ¼Ùµ ´Ô µÑ§é ÊÒÁÒö»ÃѺà»ÅÕÂè ¹¾Ò¸ä´ â´Â¡ÒäÅÔ¡·Õ»è ÁØ Change áÅ Ç¡íÒ˹´¾Ò¸ãËÁ ·µÕè Í §¡Òà ¨Ò¡¹Ñ¹é ¤ÅÔ¡·Õ»è ÁØ Next
(5) ËÅѧ¨Ò¡¹Ñ¹é ࢠÒÊÙË ¹ Òµ Ò§¡ÒÃÍÑ»à¡Ã´ä´ÃàÇÍà USB ãË ¤ÅÔ¡·Õ»è ÁØ Next ¼ Ò¹ä» à¹×Íè §¨Ò¡ä´ÃàÇÍà ´§Ñ ¡Å ÒÇ äÁ Á¡Õ ÒÃ㪠§Ò¹ã´æ ¡ÑºªØ´Ëع ¹µ IPST-BOT
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
41
(6) ࢠÒÊÙË ¹ Òµ Ò§àÃÔÁè µ ¹¡ÒõԴµÑ§é â»Ãá¡ÃÁ ãË ¤ÅÔ¡·Õ»è ÁØ Install
(7) ËÅѧ¨Ò¡¹Ñ¹é ¨ÐàÃÔÁè ¡Ãкǹ¡ÒõԴµÑ§é â»Ãá¡ÃÁ AVR Studio Ãͨ¹¡Ãзѧè àÊÃç¨ÊÁºÙó (8) ¤ÅÔ¡·Õ»è ÁØ Finish à» ¹ÍѹàÊÃç¨ÊÔ¹é ¡ÒõԴµÑ§é â»Ãá¡ÃÁ AVR Studio
(9) ·´Êͺ¼Å¡ÒõԴµÑ§é â´Âà» ´â»Ãá¡ÃÁ AVR Studio ä»·Õè Start à Programs à Atmel AVR Tools à
AVR Studio 4 ËÅѧ¨Ò¡¹Ñ¹é ¨Ð»ÃÒ¡¯Ë¹ Òµ Ò§ËÅÑ¡¢Í§â»Ãá¡ÃÁ
42 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
3.4.2 µÔ´µÑ§é â»Ãá¡ÃÁ WinAVR (1) ´ÑºàºÔÅé ¤ÅÔ¡·Õäè ¿Å WinAVR-20070525-install.exe à¾×Íè àÃÔÁè ¡ÒõԴµÑ§é â»Ãá¡ÃÁ (2) ࢠÒÊÙË ¹ Òµ Ò§áá¢Í§¡ÒõԴµÑ§é â»Ãá¡ÃÁ WinAVR à» ¹¡ÒÃàÅ×Í¡ÀÒÉÒ㹡ÒõԴµÑ§é ¤ÅÔ¡·Õ»è ÁØ OK
(3) ¨Ò¡¹Ñ¹é ࢠÒÊÙË ¹ Òµ Ò§áÊ´§ÃÒÂÅÐàÍÕ´¡ÒôíÒà¹Ô¹¡ÒõԴµÑ§é â»Ãá¡ÃÁ WinAVR ¨Ò¡¹Ñ¹é ¤ÅÔ¡·Õ»è ÁØ µ Íä»>
(4) ࢠÒÊÙË ¹ Òµ Ò§áÊ´§ÃÒÂÅÐàÍÕ´áÅÐà§×Íè ¹ä¢ÊíÒËÃѺ¡ÒÃ㪠§Ò¹â»Ãá¡ÃÁ WinAVR ¨Ò¡¹Ñ¹é ¤ÅÔ¡·Õ»è ÁØ ÂÍÁÃѺ> (5) ¨Ò¡¹Ñ¹é ࢠÒÊÙË ¹ Òµ Ò§áÊ´§ª×Íè ¾Ò¸¢Í§¤ÍÁ¾ÔÇàµÍà ·µÕè Í §¡ÒõԴµÑ§é â»Ãá¡ÃÁ WinAVR áÅÐ¾×¹é ·Õ·è µÕè Í § ¡ÒÃ㪠ÊÒí ËÃѺ¡ÒõԴµÑ§é â»Ãá¡ÃÁ â´Â¼Ùµ ´Ô µÑ§é ÊÒÁÒöà»ÅÕÂè ¹¾Ò¸ä´ â´Â¡ÒäÅÔ¡·Õ»è ÁØ àÃÕ¡ËÒ... áÅ Ç¡íÒ˹´¾Ò¸ãËÁ ·Õµè Í §¡Òà á¹Ð¹íÒãË ¡Òí ˹´à» ¹¾Ò¸·Õàè ¤Ã×Íè §Á×Í¡íÒ˹´ãË µ§Ñé áµ µ¹ ¹Ñ¹è ¤×Í C:\WinAVR ¨Ò¡¹Ñ¹é ¤ÅÔ¡·Õ»è ÁØ µ Íä»>
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
43
(6) µ Íä»à¢ ÒÊÙË ¹ Òµ Ò§¡ÒáíÒ˹´¤Ø³ÊÁºÑµ¾Ô àÔ ÈÉ «Ö§è ¼Ùµ ´Ô µÑ§é ÊÒÁÒöàÅ×Í¡ÃÒ¡ÒõÒÁ·Õµè Í §¡Òà áŠǤÅÔ¡ ·Õ»è ÁØ µÔ´µÑ§é >
(7) ËÅѧ¨Ò¡¹Ñ¹é ¨ÐàÃÔÁè ¡Ãкǹ¡ÒõԴµÑ§é â»Ãá¡ÃÁ WinAVR áÅÐáÊ´§¤ÇÒÁ¤×ºË¹ ÒµÒÁÃÙ» ËÅѧ¨Ò¡¹Ñ¹é ãË ¼Ù µÔ´µÑé§Ãͨ¹¡ÃзÑ觡ÒõԴµÑé§àÊÃç¨ÊÁºÙó ËÅѧ¨Ò¡¹Ñé¹ãË ¤ÅÔ¡·Õè»Ø Á àÊÃç¨ÊÔ¹é à» ¹ÍÑ¹Ç Ò¡ÒõԴµÑé§â»Ãá¡ÃÁ WinAVR àÊÃç¨ÊÁºÙó
44 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
3.5 ¢Ñ¹é µÍ¹¡ÒþѲ¹Òâ»Ãá¡ÃÁÀÒÉÒ C ¢Í§ªØ´Ëع ¹µ IPST-BOT (1) Êà ҧ¼Ñ§§Ò¹ËÃ×Íâ»Ãà¨ç¡µ (Project) â´Â»¡µÔàÁ×Íè à» ´â»Ãá¡ÃÁ¤Ãѧé áá â»Ãá¡ÃÁ¨ÐáÊ´§àÁ¹ÙÊÒí ËÃѺ ¡ÒÃàÃÕ¡㪠§Ò¹â»Ãà¨ç¡µ à´ÔÁ·Õàè ¤Â㪠§Ò¹¡ ͹˹ Ò¹Õé ÊíÒËÃѺ¡ÒÃÊà ҧâ»Ãà¨ç¡µ ãËÁ ¤ÅÔ¡·Õ»è ÁØ ¤ÅÔ¡»ØÁ New Project ËÅѧ¨Ò¡à» ´â»Ãá¡ÃÁ AVR Studio
(2) ÊíÒËÃѺ¡Ã³Õ·Õè«Í¿µ áÇà äÁ ä´ áÊ´§Ë¹ Òµ Ò§¢Öé¹ÁÒ ÊÒÁÒöàÃÕ¡¤íÒÊÑ觡ÒÃÊà ҧâ»Ãà¨ç¡µ ä´ ¨Ò¡àÁ¹Ù Project à New Project ¨Ð»ÃÒ¡¯Ë¹ Òµ Ò§ÊíÒËÃѺ¡ÒÃÊà ҧ Project ¢Ö¹é ÁÒઠ¹à´ÕÂǡѹ
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
45
(3) ¨Ò¡¹Ñ¹é ¨Ð»ÃÒ¡¯Ë¹ Òµ Ò§ÊíÒËÃѺ¡ÒáíÒ˹´¤Ø³ÊÁºÑµ¢Ô ͧâ»Ãà¨ç¡µ 1 àÅ×Í¡ª¹Ô´â»Ãà¨ç¡µ (Project Type) à» ¹
2 µÑ§é ª×Íè â»Ãà¨ç¡µ
3 ¤ÅÔ¡à¾×Íè Êà ҧä¿Å «Íà Ê⤠´¢Ö¹é ÁÒ 4 àÅ×Í¡â¿Åà´Íà ÊÒí ËÃѺà¡çºä¿Å â»Ãà¨ç¡µ 5 ¤ÅÔ¡»ØÁ Finish ¨º¡ÒÃµÑ§é ¤ Òâ»Ãà¨ç¡µ ¡ÒþѲ¹Òâ»Ãá¡ÃÁ¢Í§ªØ´Ëع ¹µ IPST-BOT ¨Ð㪠ÀÒÉÒ C ´Ñ§¹Ñ¹é ¡ÒÃÊà ҧâ»Ãà¨ç¡µ ¨Ðµ ͧàÅ×Í¡ª¹Ô´â»Ãà¨ç¡µ (Project Type) à» ¹ ¨Ò¡¹Ñ¹é µÑ§é ª×Íè â»Ãà¨ç¡µ áÅ Ç¡Òà¤Ã×Íè §ËÁÒ¶١·ÕËè ¹ Ò à¾×Íè ãË Êà ҧä¿Å «Íà Ê⤠´¢Ö¹é ÁÒ â´Âª×Íè ¢Í§,«Íà Ê⤠´¨Ðà» ¹ª×Íè à´ÕÂǡѺâ»Ãà¨ç¡µ â´Â ËÑÇ¢ Í Íѵâ¹ÁÑµÔ ËÅѧ¨Ò¡¹Õ¤é ÅÔ¡·Õ»è ÁØ à¾×Íè ¨º¢Ñ¹é µÍ¹¡ÒÃÊà ҧâ»Ãà¨ç¡µ
46 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
(4) ¨ÐࢠÒÊÙË ¹ Òµ Ò§ËÅÑ¡¢Í§ AVR Studio
(5) ¡íÒ˹´¤Ø³ÊÁºÑµ¢Ô ͧäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ·ãÕè ª â´Âä»·Õàè Á¹Ù Project àÅ×Í¡ Configuration Option
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
¨Ð»ÃÒ¡¯Ë¹ Òµ Ò§ Project Option àÅ×Í¡¡íÒ˹´¤ ҴѧÃÙ»
1 àÅ×Í¡àºÍà äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ໠¹ ATmega16 ¡íÒ˹´¤ÇÒÁ¶ÕèÊÑÒ³¹ÒÌ ¡Òà» ¹ 16000000Hz «Ö§è ෠ҡѺ 16MHz àÅ×Í¡ÃٻẺ¡ÒèѴ¡Òâ¹Ò´ä¿Å à» ¹ -O0 ËÁÒ¶֧ äÁ Á¡Õ ÒèѴ¡Òâ¹Ò´ä¿Åì
2 ·íÒà¤Ã×Íè §ËÁÒÂàÅ×Í¡·Ñ§é ËÁ´ 3 àÅ×Í¡ãË Á¡Õ ÒÃÊà ҧä¿Å ¹ÒÁÊ¡ØÅ Hex
47
48 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
(6) ¢Ñ鹵͹µ Íä»à» ¹¡Òü¹Ç¡â¿Åà´Íà robot_include ·ÕèºÃèØä¿Å äźÃÒÃÕ¹ÒÁÊ¡ØÅ .h ¨íҹǹÁÒ¡ ¤ÅÔ¡àÅ×Í¡·ÕËè ÇÑ ¢ Í Include Directories ¨Ò¡¹Ñ¹é ¤ÅÔ¡»ØÁ Insert à¾×Íè ¼¹Ç¡ä¿Å äźÃÒÃÕ ´Ñ§ÃÙ»
¤ÅÔ¡·Õ»è ÁØ ¹Õé
¤ÅÔ¡·Õ¹è Õè
¤ ¹ËÒà¾×Íè àÅ×Í¡â¿Åà´Íà robot_include ·Õºè ÃèØä¿Å äźÃÒÃÕ ¨Ò¡¹Ñ¹é ¤ÅÔ¡»ØÁ OK
¨Ðä´ â¿Åà´Íà ·ºÕè ÃèØä¿Å äźÃÒÃÕ .h
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
49
(7) µ Íä»à» ¹¡ÒÃà¾ÔÁè àµÔÁäźÃÒÃÕà¡ÕÂè ǡѺ¡Òäíҹdz·Ò§¤³ÔµÈÒʵà â´ÂÂѧ¤§ÍÂÙ· ËÕè ¹ Òµ Ò§ Project Option ¤ÅÔ¡àÅ×Í¡·ÕËè ÇÑ ¢ Í Libraries áÅ ÇàÅ×Í¡ä¿Å äźÃÒÃÕ libm.a ¨Ò¡¹Ñ¹é ¤ÅÔ¡·Õ»è ÁØ à¾×Íè à¾ÔÁè äźÃÒÃÕࢠÒä» ã¹ä¿Å â»Ãà¨ç¡µ ¨Ò¡¹Ñ¹é ¤ÅÔ¡»ØÁ à» ¹¡ÒÃÊÔ¹é ÊØ´¡ÒáíÒ˹´¤ Ò Configuration
4 »ÃÒ¡¯ª×èÍä¿Å ·Õèµ Í§¡Òà à¾ÔÁè ࢠÒä»ã¹ä¿Å â»Ãà¨ç¡µ 3 ¤ÅÔ¡»ØÁ Add Library
1 ¤ÅÔ¡àÅ×Í¡ËÑÇ¢ Í Libraries 2 ¤ÅÔ¡àÅ×Í¡ä¿Å libm.a
5 ¤ÅÔ¡»ØÁ OK à¾×Íè Â×¹Âѹ¡ÒÃà¾ÔÁè ä¿Å
50 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
(10) à¢Õ¹â»Ãá¡ÃÁ·´Êͺµ Í仹ÕÅé §ã¹Ë¹ Òµ Ò§àÍ´ÔàµÍà #include <lcd.h> #include <sleep.h> void main() { while(1) { lcd("Hello world"); sleep(200); } }
à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ŧ㹠˹ Òµ Ò§àÍ´ÔàµÍà ¹Õé
F7 ¡çä´
(11) ¨Ò¡¹Ñ¹é ·íÒ¡ÒäÍÁä¾Å «Íà Ê⤠´ â´Â¡´·Õ»è ÁØ
ËÃ×ÍàÅ×Í¡·Õàè Á¹Ù Bulid à Build ËÃ×Í ¡´¤ÕÂÅ ´Ñ
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
51
(12) â»Ãá¡ÃÁ¨ÐáÊ´§¼ÅÅѾ¸ ·àÕè ¡Ô´¢Ö¹é ¨Ò¡¡ÒäÍÁä¾Å ·ËÕè ¹ Òµ Ò§ Build ´ ҹŠҧ â´Â¶ Ò¡ÒäÍÁä¾Å ¼Ò ¹ â»Ãá¡ÃÁ¨ÐáÊ´§¢ ͤÇÒÁ Build Succeeded ·Õºè Ã÷ѴÊØ´· Ò «Ö§è ÍÒ¨¨Ð¾ ǧ´ Ç¢ ͤÇÒÁઠ¹ Build Succeeded with 8 Warnings... «Ö§è ËÁÒ¶֧ ¡ÒäÍÁä¾Å àÊÃç¨ÊÔ¹ é ÊÁºÙó áµ Á¡Õ ÒÃᨠ§àµ×͹ãË ÃÐÇѧ ¢ ͼԴ¾ÅÒ´ÍÂÙ 8 µíÒá˹ § ºÃ÷Ѵᨠ§àµ×͹àËÅ Ò¹Õ¨é Ð¢Ö¹é µ ¹ºÃ÷Ѵ´ ǨشÊÕàËÅ×ͧ ÊíÒËÃѺ¡Ã³Õ··Õè Òí §Ò¹»¡µÔ¨Ð¢Ö¹é µ ¹ºÃ÷Ѵ´ ǨشÊÕà¢ÕÂÇ áÅж ÒÁÕ¢Í ¼Ô´¾ÅÒ´à¡Ô´¢Ö¹é ¢ ͼԴ¾ÅÒ´¹Ñ¹é ¨Ð¢Ö¹é µ ͹ºÃ÷Ѵ´ ǨشÊÕá´§
˹ Òµ Ò§ Build áÊ´§¼ÅÅѾ¸ ¢Í§¡ÒäÍÁä¾Å ä¿Å â»Ãà¨ç¡µ ¢ ͤÇÒÁᨠ§¼Å¡ÒäÍÁä¾Å àÊÃç¨ÊÁºÙó
52 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
(13) àÁ×Íè ¤ÍÁä¾Å ¼Ò ¹áÅ Ç ãË ·Òí ¡ÒõÃǨÊͺ¼Å¡ÒäÍÁä¾Å â´Âä»Âѧâ¿Åà´Íà ¢Í§â»Ãà¨ç¡µ ·ÊÕè à ҧ ¢Ö¹é ã¹·Õ¹è ¤Õé Í× c:/IPST-BOT (13.1) àÅ×͡ࢠÒä»ã¹â¿Åà´Íà ÂÍ Â Test (13.2) ¨Ò¡¹Ñ¹é àÅ×͡ࢠÒä»ã¹â¿Åà´Íà default ¨Ð¾ºä¿Å Test.hex Íѹ໠¹ä»ä¿Å ¼ÅÅѾ¸ ·¨Õè Ð ¹íÒä»ãª 㹡ÒÃâ»Ãá¡ÃÁŧã¹äÁâ¤Ã¤Í¹â·ÃÅàÅÍà º¹á¼§Ç§¨Ã MicroBOX
3.6 ¡ÒôÒǹ âËÅ´â»Ãá¡ÃÁà¾×Íè ·´Êͺ¡Ò÷íÒ§Ò¹·Ò§ÎÒà ´áÇà ¢Í§Ëع ¹µ IPST-BOT ËÅѧ¨Ò¡ä´ ä¿Å ¹ÒÁÊ¡ØÅ .hex ¨Ò¡¡ÒäÍÁä¾Å â»Ãá¡ÃÁÀÒÉÒ C áÅ Ç ÅíҴѺµ Í令×Í ¡ÒôÒǹ âËÅ´ËÃ×Í Ê §¢ ÍÁÙŢͧä¿Å .hex ¹Ñ¹é ä»Âѧ˹ ǤÇÒÁ¨íÒâ»Ãá¡ÃÁ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ATmega16 º¹á¼§Ç§¨ÃËÅÑ¡ MicroBOX ¢Í§Ëع ¹µ IPST-BOT «Ö§è ÁÕ¢¹Ñé µÍ¹â´ÂÊÃØ»ä´ 2 Ê Ç¹ËÅÑ¡´Ñ§¹Õé (1) àµÃÕÂÁ¡ÒÃàª×Íè Áµ ÍÃÐËÇ Ò§ªØ´â»Ãá¡ÃÁ PX-4000 ¡Ñº¤ÍÁ¾ÔÇàµÍà (2) ÇÔ¸¡Õ ÒÃ㪠§Ò¹ªØ´â»Ãá¡ÃÁ PX-4000 ÃÇÁ¡Ñº«Í¿µ áÇà AVRProg à¾×Íè â»Ãá¡ÃÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍÃ
3.6.1 ¢ ÍÁÙŷҧ෤¹Ô¤·Õ¤è Ç÷ÃÒº¢Í§ PX-4000 ªØ´â»Ãá¡ÃÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍà AVR ¼ Ò¹¾Íà µ USB àª×Íè Áµ ͡Ѻ¾Íà µ USB ¢Í§¤ÍÁ¾ÔÇàµÍà 㹡ÒÃ㪠§Ò¹ l â»Ãá¡ÃÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍà AVR ¼ Ò¹¤Í¹à¹ç¡àµÍà ISP ÊÒÁÒÃ¶Í Ò¹ à¢Õ¹ ź áÅл ͧ¡Ñ¹¡Òà l
Í Ò¹ä´
㪠ä¿àÅÕÂé § +5V ¨Ò¡ºÍà ´äÁâ¤Ã¤Í¹â·ÃÅàÅÍà AVR ·Õµè Í §¡ÒÃâ»Ãá¡ÃÁ l ·íÒ§Ò¹¼ Ò¹â»Ãá¡ÃÁ AVR Prog ·Õº è ÃèØÁÒÀÒÂ㹪ش«Í¿µ áÇà AVR Studio ËÃ×Í㪠«Í¿µ áÇà AvrOspII 㹡óշäÕè Á µÍ §¡Ò÷íÒ§Ò¹¼ Ò¹ AVR Studio l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
53
¡Ã³Õ㪠AVR Prog àºÍà ·âÕè »Ãá¡ÃÁä´ »ÃСͺ´ Ç AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4433 , AT90S8515 , AT90S8535 , ATmega128 , ATmega16 , ATmega161 , ATmega162 , ATmega163 , ATmega164P , ATmega165 , ATmega168 , ATmega32 , ATmega64 , ATmega8 , ATmega8515 , ATmega8535 , ATtiny12 , ATtiny13 , ATtiny15L , ATtiny2313, ATtiny26
¡Ã³Õ㪠Avr-Osp II àºÍà ·âÕè »Ãá¡ÃÁä´ »ÃСͺ´ Ç AT90CAN128, AT90CAN32, AT90CAN64, AT90PWM2, AT90PWM3, AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8515comp, AT90S8535, AT90S8535comp, ATmega103, ATmega103comp, ATmega128, ATmega1280, ATmega1281, ATmega16, ATmega161, ATmega161comp, ATmega162, ATmega163, ATmega165, ATmega168, ATmega169, ATmega2560, ATmega2561, ATmega32, ATmega323, ATmega325, ATmega3250, ATmega329, ATmega3290, ATmega406, ATmega48, ATmega64, ATmega640, ATmega644, ATmega645, ATmega6450, ATmega649, ATmega6490, ATmega8, ATmega8515, ATmega8535, ATmega88, ATtiny11, ATtiny12, ATtiny13, ATtiny15, ATtiny22, ATtiny2313,ATtiny24, ATtiny25, ATtiny26, ATtiny261, ATtiny28, ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85, ATtiny861
3.6.2 ¢Ñ¹é µÍ¹¡ÒÃàµÃÕÂÁ¡ÒÃàª×Íè Áµ ͪشâ»Ãá¡ÃÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ¼Ò ¹¾Íà µ USB 3.6.2.1 µÔ´µÑ§é ä´ÃàÇÍà ¢Í§ PX-4000 ÁÕ¢Ñ鹵͹µ Í仹Õé (1) ´ÑºàºÔŤÅÔ¡·Õäè ¿Å USBDriverInstallerV2.0.0.exe ¨Ò¡«Õ´ÃÕ ÍÁ㹪ش PX-4000 à¾×Íè àÃÔÁè µ ¹¡ÒõԴµÑ§é ä´ÃàÇÍà ¨Ð»ÃÒ¡¯ä´ÍÐÅçÍ¡ºç͡ᨠ§¡ÒõԴµÑ§é àÊÃç¨àÃÕºà ÍÂ
¡Ã³Õ·¤Õè ÍÁ¾ÔÇàµÍà Á¡Õ ÒõԴµÑ§é â»Ãá¡ÃÁ» ͧ¡Ñ¹äÇÃÑʨíҾǡ SpyBot ËÃ×Í AdAware ÍÒ¨ÁÕ¢Í ¤ÇÒÁᨠ§àµ×͹¡ÒÃà¢Õ¹ Registry ¢Í§Ãкº ¢ÍãË àÅ×Í¡ ÂÍÁÃѺ à¾×Íè ͹ØÒµãË à¢ Òä»à¢ÕÂ¹ä´ Áԩйѹé ä´ÃàÇÍà ¨ÐäÁ ÊÒÁÒö·íÒ§Ò¹ä´ Í ҧÊÁºÙó
54 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
(2) ¨Ò¡¹Ñ¹é àÊÕºÊÒ USB ¢Í§ PX-4000 ࢠҷվè Íà µ USB ÃÍÊÑ¡¤ÃÙ ¨¹¡Ãзѧè ä¿ÊÕ¹Òéí à§Ô¹á¨ §¤ÇÒÁ¾Ã ÍÁ 㹡ÒÃàª×èÍÁµ ͵ԴÊÇ Ò§ (4) µÃǨÊͺµíÒá˹ §¢Í§¾Íà µÍ¹Ø¡ÃÁàÊÁ×͹·ÕÊè à ҧ¢Ö¹é ¤ÅÔ¡·Õ»è ÁØ Start áÅ ÇàÅ×Í¡ä»·Õè Control Panel (5) ¨Ò¡¹Ñ¹é ´ÑºàºÔŤÅÔ¡àÅ×Í¡·Õè System (6) àÅ×Í¡ä»·Õáè ·ç» Hardware áŠǤÅÔ¡·Õè Device Manager
(7) µÃǨÊͺÃÒ¡ÒÃÎÒà ´áÇà ·ËÕè ÇÑ ¢ Í Port ¨Ð¾º USB Serial port ãË ´ÇÙ Ò ÁÕ¡ÒÃàÅ×Í¡µíÒá˹ §¢Í§¾Íà µ ͹ءÃÁ USB Serial port äÇ ·µÕè Òí á˹ §ã´ »¡µÔ¨Ðà» ¹ COM3 ¢Ö¹é ä» ãË ãª ¤Ò ¢Í§µíÒá˹ §¢Í§¾Íà µÍ¹Ø¡ÃÁàÊÁ×͹ ËÃ×Í USB Serial port ¹Õãé ¹¡ÒÃàª×Íè Áµ ͡Ѻà¤Ã×Íè §â»Ãá¡ÃÁµ Íä»
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
55
3.6.1.2 ¡ÒÃàµÃÕÂÁ¡ÒÃ㪠§Ò¹ PX-4000 ¡Ñº«Í¿µ áÇà AVR Prog. 㹡Ò÷íÒ§Ò¹»¡µÔ¢Í§ AVR Prog. µÑÇ«Í¿µ áÇà ¨Ð·íÒ¡Òä ¹ËÒÎÒà ´áÇà ¢Í§ªØ´â»Ãá¡ÃÁ·Õµè Í ¡Ñº¾Íà µÍ¹Ø¡ÃÁâ´ÂÍѵâ¹ÁÑµÔ ÊíÒËÃѺªØ´â»Ãá¡ÃÁ PX-4000 㪠¡ÒõԴµ ͡Ѻ¤ÍÁ¾ÔÇàµÍà ¼Ò ¹·Ò§¾Íà µÍ¹Ø¡ÃÁàÊÁ×͹ ·ÕÊè à ҧ¢Ö¹é ¨Ò¡ä´ÃàÇÍà ¢Í§ÍØ»¡Ã³ á»Å§ÊÑÒ³¾Íà µ USB à» ¹¾Íà µÍ¹Ø¡ÃÁ ·íÒãË ÊÒÁÒöÊà ҧµíÒá˹ §¢Í§ ¾Íà µÍ¹Ø¡ÃÁä´ ËÅÒµíÒá˹ § ÊíÒËÃѺ AVR Prog. ÊÒÁÒöµÃǨÊͺµíÒá˹ §¢Í§¾Íà µÍ¹Ø¡ÃÁàÊÁ×͹·ÕÊè à ҧ ¢Ö¹é äÁ à¡Ô¹µíÒá˹ § COM4 ËÒ¡¡ÒõԴµÑ§é ä´ÃàÇÍà ¢Í§ PX-4000 ·íÒãË à¡Ô´¾Íà µÍ¹Ø¡ÃÁàÊÁ×͹ËÃ×Í USB Serial port ã¹µíÒá˹ §äÁ à¡Ô¹ COM4 ¡ÒÃ㪠§Ò¹¡Ñº«Í¿µ áÇà AVR Prog. ¨ÐäÁ Á»Õ ËÒã´æ ÊÒÁÒö㪠§Ò¹ä´ ·¹Ñ ·Õ µÒÁ¢Ñ¹é µÍ¹µÒÁ»¡µÔ à¹×Íè §¨Ò¡ AVR Prog. ÃͧÃѺ¡Ò÷íÒ§Ò¹¡Ñº¾Íà µÍ¹Ø¡ÃÁä´ Ê§Ù ÊØ´¤×Í µíÒá˹ § COM4 áµ ¶ ÒËÒ¡ USB Serial port ·ÕèÊà ҧ¢Öé¹¹Ñé¹ÁÕ¤ ÒµíÒá˹ §ÊÙ§¡Ç Ò COM4 ¨Ðµ ͧÁÕ¢Ñ鹵͹à¾ÔèÁàµÔÁ㹡Òà à»ÅÕ蹤 ÒµíÒá˹ §¢Í§¾Íà µÍ¹Ø¡ÃÁàÊÁ×͹ â´ÂãË ´íÒà¹Ô¹¡ÒõÒÁ¢Ñ鹵͹´Ñ§µ Í仹Õé (1) µ Í PX-4000 ࢠҡѺ¾Íà µ USB Ãͨ¹¡Ãзѧè ä¿áÊ´§¤ÇÒÁ¾Ã ÍÁ¢Í§ PX-4000 µÔ´ÊÇ Ò§ (2) ¤ÅÔ¡·Õ»è ÁØ Start áÅ ÇàÅ×Í¡ä»·Õè Control Panel (3) ¨Ò¡¹Ñ¹é ´ÑºàºÔŤÅÔ¡àÅ×Í¡·Õè (4) àÅ×Í¡ä»·Õáè ·ç» Hardware áŠǤÅÔ¡·Õè Device Manager
(5) µÃǨÊͺÃÒ¡ÒÃÎÒà ´áÇà ·ËÕè ÇÑ ¢ Í Port ¨Ð¾º USB Serial port ãË ´ÇÙ Ò ÁÕ¡ÒÃàÅ×Í¡µíÒá˹ § ¢Í§¾Íà µÍ¹Ø¡ÃÁ USB Serial port äÇ ·µÕè Òí á˹ §ã´ ¶ ÒËÒ¡à» ¹ COM5 ¢Ö¹é ä» (¨Ò¡µÑÇÍ ҧ໠¹ COM10) ãË ¤ÅÔ¡ àÁÒÊ »ÁØ ¢ÇÒ·Õµè Òí á˹ § USB Serial port ¹Ñ¹é áÅ ÇàÅ×Í¡ Properties
56 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
(6) ¨Ð»ÃÒ¡¯Ë¹ Òµ Ò§ USB Serial Port (COM10) Properties (ËÁÒÂàÅ¢ COM ÍÒ¨à»ÅÕÂè ¹á»Å§ ä´ ã¹¤ÍÁ¾ÔÇàµÍà ᵠÅÐà¤Ã×èͧ) ãË àÅ×Í¡ä»·Õèá·ç» Port Setting «Öè§áÊ´§¤ Ò¡íÒ˹´ÃٻẺ¡ÒÃÊ×èÍÊÒâ ÍÁÙŠ͹ءÃÁ ãË ¡Òí ˹´¤ Òµ Ò§æ ´Ñ§ÃÙ» ¨Ò¡¹Ñ¹é ¤ÅÔ¡·Õ»è ÁØ Advance
(7) ˹ Òµ Ò§ Advanced Setting for COM10 »ÃÒ¡¯¢Ö¹é (ËÁÒÂàÅ¢ COM ÍÒ¨à»ÅÕÂè ¹á»Å§ä´ ) ¤ÅÔ¡ ·Õªè Í § COM Port Number à¾×Íè à»ÅÕÂè ¹à» ¹ COM4 (ËÃ×ÍËÁÒÂàÅ¢Í×¹è ÃÐËÇ Ò§ COM1 ¶Ö§ 4 )
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
57
(8) ¨Ò¡¹Ñ¹é ·íÒ¡ÒáíÒ˹´¤ Òµ Ò§æ µÒÁÃÙ» â´Â੾Òзժè Í § Latency Timer (msec) ¤ÇáíÒ˹´ à» ¹ 1 áÅзíÒà¤Ã×Íè §ËÁÒ·ժè Í § Serial Enumerator áŠǤÅÔ¡»ØÁ OK
(9) ¡ÅѺÁÒÂѧ˹ Òµ Ò§ USB Serial Port Properties ÍÕ¡¤Ãѧé áµ ËÁÒÂàÅ¢ COM port ·Õäè µàµÔÅ ºÒà ¨Ðà»ÅÕÂè ¹à» ¹ COM4 ¤ÅÔ¡»ØÁ OK à¾×Íè ¼ Ò¹¢Ñ¹é µÍ¹¹Õäé »
58 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
(10) ¨Ò¡¹Ñ¹é ãË »Å´ PX-4000 ÍÍ¡¨Ò¡¾Íà µ USB ¢Í§¤ÍÁ¾ÔÇàµÍà áÅ ÇàÊÕºࢠÒä»ãËÁ Í¡Õ ¤ÃÑ§é ¨Ò¡¹Ñ¹é ·íÒ¡ÒõÃǨÊͺµíÒá˹ §¢Í§¾Íà µÍ¹Ø¡ÃÁàÊÁ×͹´ ÇÂÇÔ¸¡Õ ÒÃà´ÔÁ ·Õäè ´ ¹Òí àʹÍä»áÅ Ç ¨Ð¾ºÇ ÒµíÒá˹ §¢Í§ ¾Íà µÍ¹Ø¡ÃÁàÊÁ×͹¨Ðà»ÅÕÂè ¹à» ¹ COM4 Í ҧÊÁºÙó
¨Ò¡¹ÕÊé ÒÁÒö¹íҪشâ»Ãá¡ÃÁ PX-4000 ÁÒ㪠¡ºÑ «Í¿µ áÇà AVRProg ÊíÒËÃѺâ»Ãá¡ÃÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍà AVR ä´ áÅ Ç
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
59
3.6.3 ÇÔ¸¡Õ ÒÃ㪠§Ò¹ªØ´â»Ãá¡ÃÁ PX-4000 ÃÇÁ¡Ñº«Í¿µ áÇà AVRProg à¾×Íè â»Ãá¡ÃÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍà (1) àª×Íè Áµ ͪشâ»Ãá¡ÃÁ PX-4000 ࢠҡѺἧǧ¨Ã¤Çº¤ØÁ¢Í§Ëع ¹µ IPST-BOT áŠǨ ÒÂä¿ãË á¡ Ãкº
(2) à» ´«Í¿µ áÇà AVR Prog â´ÂàÅ×Í¡·Õàè Á¹Ù Tool à AVR Prog...
60 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
(3) ÊíÒËÃѺ¡Ã³Õ·äÕè Á ä´ ¨Ò Âä¿â»Ãá¡ÃÁ¨ÐáÊ´§¢ ͤÇÒÁàµ×Í¹Ç Ò äÁ ÊÒÁÒöµÃǨ¾ºà¤Ã×Íè §â»Ãá¡ÃÁä´ ¨Ðµ ͧ¨ ÒÂä¿ãË ¡ºÑ ἧǧ¨ÃäÁâ¤Ã¤Í¹â·ÃÅàÅÍà AVR áÅе ÍÊÒÂࢠҡѺ¤ÍÁ¾ÔÇàµÍà ãË àÃÕºà Í¡ ͹㪠§Ò¹
(4) ÊíÒËÃѺ«Í¿µ áÇà AVR Prog Í͡ẺÁÒà¾×Íè 㪠§Ò¹¡ÑºäÁâ¤Ã¤Í¹â·ÃÅàÅÍà AVR â´Â੾ÒÐ ¨Ö§ÁÕàÁ¹Ù µ Ò§ æ ·Õãè ª §Ò¹§ ÒÂ
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
61
(5) àÃÔÁè µ ¹´ Ç¡ÒäÅÔ¡·Õ»è ÁØ à¾×Íè ࢠÒÊÙË ¹ Òµ Ò§¡ÒûÃѺµÑ§é ¤ Ò¾ÔàÈÉ¡ ͹ â´Â¡ÒûÃѺµÑ§é ¤ ҨР¡ÃзíÒà¾Õ§¤Ãѧé à´ÕÂÇ ¤ÃÑ§é µ Íä»äÁ ¨Òí à» ¹µ ͧ¡íÒ˹´¤ ÒàËÅ Ò¹ÕÍé ¡Õ
(6) ¡ÒáíÒ˹´¤ Òµ Ò§æ »ÃСͺ´ Ç (6.1) ¡íÒ˹´âËÁ´ã¹¡Òà Lock Bit à» ¹ Mode 1 à¾×Íè àÅ×Í¡äÁ µÍ §¡Òû ͧ¡Ñ¹¡ÒÃÍ Ò¹¢ ÍÁÙÅËÅѧ ¨Ò¡·Õ·è Òí ¡ÒÃâ»Ãá¡ÃÁàÃÕºà ÍÂáÅ Ç (ÍÒ¨¡íÒ˹´¤ ÒãËÁ à¾×Íè àÅ×Í¡» ͧ¡Ñ¹¡ÒÃÍ Ò¹ä´ ) (6.2) ¤ÅÔ¡àÅ×Í¡ª ͧ SPI Enable (ÊíÒ¤ÑÁÒ¡ Ë ÒÁàÅ×Í¡ÍÍ¡à´ç´¢Ò´)
ËÒ¡»Å´ÍÍ¡ áÅ Ç·íÒ¡ÒÃâ»Ãá¡ÃÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍà «Í¿µ áÇà AVR Prog ¨Ð·íÒ¡ÒÃâ»Ãá¡ÃÁãË ¨¹àÊÃç¨ÊÔ¹é áµ ¨ÐäÁ ÊÒÁÒö¹íÒªÔ»µÑÇà´ÔÁ¹Ñ¹ é ÁÒ·íÒ¡ÒÃâ»Ãá¡ÃÁãËÁ â´Â 㪠AVR Prog ä´ Í¡Õ µ ͧ¹íÒä»á¡ 䢴 Ç¡Ãкǹ¡ÒÃâ»Ãá¡ÃÁẺ㪠áç´Ñ¹ÊÙ§ ´ ÇÂà¤Ã×Íè §â»Ãá¡ÃÁ੾ÒÐ
ÍÒ·Ô ALL-11, AVR ISP Mark II à» ¹µ ¹ (6.3) ¡íÒ˹´âËÁ´¤ÇÒÁ¶Õ¢è ͧÍÍÊ«ÔÅàÅàµÍà ໠¹áºº Ext XTAL.,High frequency 㹡óշÕè äÁâ¤Ã¤Í¹â·ÃÅàÅÍà AVR µ ͤÃÔʵÍÅÀÒ¹͡à¾×Íè ¡íÒ˹´ÊÑÒ³¹ÒÌ ¡Ò (ÊíÒ¤ÑÁÒ¡ Ë ÒÁàÅ×Í¡ÍÍ¡
ËÃ×Íà»ÅÕÂè ¹á»Å§à´ç´¢Ò´ àÇ ¹áµ ¨Ð¨ ÒÂÊÑÒ³¹ÒÌ ¡Ò´ ÇÂÇÔ¸ÍÕ ¹×è )
(6.4) ¡´»ØÁ à¾×Íè ºÑ¹·Ö¡ÃٻẺ·Õ¡è Òí ˹´äÇ ¼Ùã ª §Ò¹ÊÒÁÒö¡´»ØÁ à¾×Íè ź¢ ÍÁÙÅã¹Ë¹ ǤÇÒÁ¨íÒâ»Ãá¡ÃÁÀÒÂã¹äÁâ¤Ã¤Í¹â·ÃÅàÅÍà áÅ Ç¡´»ØÁ à¾×èͨº¢Ñ鹵͹ ¡ÒõÑ駤 Ò¾ÔàÈÉ
62 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
(7) àÃÕ¡ä¿Å ¹ÒÁÊ¡ØÅ .hex â´Â¤ÅÔ¡·Õè â»Ãá¡ÃÁÀÒÉÒ C ã¹¢Ñ¹é µÍ¹·Õè (13) ¢Í§ËÑÇ¢ Í 3.5
ã¹·Õ¹è ãÕé Ë àÅ×Í¡ä¿Å Test.hex ·Õäè ´ ¨Ò¡¡ÒäÍÁä¾Å
(8) ¡´»ØÁ à¾×Íè â»Ãá¡ÃÁ¢ ÍÁÙÅä»ÂѧäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ä¿ÊÕá´§¢Í§à¤Ã×Íè §â»Ãá¡ÃÁ PX-4000 ¨ÐµÔ´ÊÇ Ò§ ¨¹¡Ç Ò¡ÒÃâ»Ãá¡ÃÁ¨ÐàÊÃç¨ÊÔ¹é ã¹¢³Ð·Õáè ¶ºáÊ´§Ê¶Ò¹Ð¨ÐáÊ´§¼Å¡Ò÷íÒ§Ò¹ã¹¢Ñ¹é µÍ¹ µ Ò§æ ¨¹¡ÒÃâ»Ãá¡ÃÁàÊÃç¨ÊÔ¹é äÁâ¤Ã¤Í¹â·ÃÅàÅÍà AVR º¹á¼§Ç§¨Ãà» ÒËÁÒ¨зíÒ§Ò¹·Ñ¹·Õ
·ÕËè ¹ Ò¨ÍáÊ´§¼Å¢Í§Ëع ¹µ MegaBOT áÊ´§¢ ͤÇÒÁ Hello world ·Õºè Ã÷Ѵº¹ ÊíÒËÃѺä¿áÊ´§¼Å¢Í§ PX-4000 ¨Ðᨠ§Ê¶Ò¹Ð¡Ò÷íÒ§Ò¹´Ñ§¹Õé 1. ÊÕà¢ÕÂÇ Ready ᨠ§¤ÇÒÁ¾Ã ÍÁ㹡Ò÷íÒ§Ò¹ áÅÐʶҹТͧä¿àÅÕÂé § 2. ÊÕá´§ Busy ᨠ§Ç Ò ¢³Ð¹Õéà¤Ã×èͧâ»Ãá¡ÃÁ¡íÒÅѧ·íÒ¡ÒõԴµ ͡ѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà áÅÐ «Í¿µ Çáà ·ãÕè ª 㹡ÒÃâ»Ãá¡ÃÁ äÁ ÇÒ ¨ÐµÔ´µ Íà¾×Íè Í Ò¹, à¢Õ¹, ź ËÃ×͵ÃǨÊͺ¢ ÍÁÙÅ ä¿ÊÕá´§¨ÐµÔ´ÊÇ Ò§ ã¹ ¢³Ð·Õèä¿ÊÕà¢ÕÂǨдѺŧ
3.6.4 ¡ÒÃ㪠§Ò¹ AVR Prog ¼ Ò¹·Ò§«Í¿µ áÇà AVR Studio â´ÂäÁ µÍ §Êà ҧä¿Å â»Ãà¨ç¡µ ¼Ùã ª §Ò¹ÊÒÁÒö㪠§Ò¹«Í¿µ áÇà AVR Prog ä´ â´ÂäÁ µÍ §Êà ҧä¿Å â»Ãà¨ç¡µ â´Â»¯ÔºµÑ µÔ ÒÁ¢Ñ¹é µÍ¹´Ñ§¹Õé (1) àª×Íè Áµ Í PX-4000 ࢠҡѺºÍà ´ËÅÑ¡ MicroBOX áÅоÍà µ USB ¢Í§¤ÍÁ¾ÔÇàµÍà (µ ͧṠã¨Ç Ò ¾Íà µ àª×Íè Áµ ͧ͢ PX-4000 ËÃ×Í USB Serial port ·Õàè ¡Ô´¢Ö¹é µ ͧÁÕµÒí á˹ §äÁ à¡Ô¹ COM4) (2) ¨ ÒÂä¿àÅÕÂé §ãË á¡ Ç§¨Ã (3) à» ´ Window Explorer ä»·Õè C:\Program Files\Atmel\AVR Tools\AvrProg ¨Ð¾ºä¿Å AvrProg.exe ´ÑºàºÔŤÅÔ¡·Õäè ¿Å ¹àÕé ¾×Íè Ãѹâ»Ãá¡ÃÁ AVRProg à¾Õ§෠ҹաé Êç ÒÁÒö㪠§Ò¹ AVR Prog µÒÁ¢Ñ¹é µÍ¹·Õè (3) ¶Ö§ (8) ¢Í§ËÑÇ¢ Í 3.6.3 㹡ÒÃâ»Ãá¡ÃÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍà AVR ä´
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
63
¢ ͤÇû¯ÔºµÑ ãÔ ¹¡Òõ Í·´Åͧ·Ò§ÎÒà ´áÇà ¢Í§ªØ´Ëع ¹µ IPST-BOT à¾×Íè ãË à¤Ã×Íè §Á×ÍáÅÐÍØ»¡Ã³ ÍÂÙã ¹ÊÀÒ¾·Õ¾è à ÍÁ·íÒ§Ò¹µÅÍ´àÇÅÒ ÊÔ§è ·Õ¤è ÇáÃзíÒ·Ø¡¤ÃÑ§é ·Õãè ª §Ò¹ªØ´ Ëع ¹µ IPST-BOT ¤×Í (1) » ´ÊÇÔµª POWER ·Ø¡¤ÃÑ§é ·ÕÁè ¡Õ ÒöʹËÃ×͵ ÍÊÒÂࢠҡѺ¤ÍÁ¾ÔÇàµÍà áÅЪشâ»Ãá¡ÃÁ (2) » ´ÊÇÔµª POWER ·Ø¡¤ÃÑ駷ÕèÁÕ¡Òõ ÍËÃ×ͻŴÊÒ¢ͧἧǧ¨ÃµÃǨ¨ÑºÊÑÒ³ËÃ×Í ÍØ»¡Ã³ ã´æ ࢠҡѺἧǧ¨Ã¤Çº¤ØÁ MicroBOX (3) ËÅѧ¨Ò¡·Õ·è ´ÅͧàÊÃç¨ã¹áµ ÅСÒ÷´Åͧ ¤Çû ´ÊÇÔµª ¡Í ¹ ·Õ¨è зíÒ¡ÒûŴÊÒÂÊÑÒ³ à¾×Íè µ Íἧǧ¨ÃãËÁ ࢠÒä»à¾×Íè ·íÒ¡Ò÷´Åͧã¹ËÑÇ¢ ÍãËÁ (4) 㹡Ԩ¡ÃÃÁ¡Ò÷´Åͧ·Õµè Í §¹íÒËع ¹µ ÁÒ·íÒ¡ÒÃà¤Å×Íè ¹·Õè ¤ÇûŴªØ´â»Ãá¡ÃÁÍÍ¡¨Ò¡ ἧǧ¨Ã MicroBOX ÍÍ¡¡ ͹àÊÁÍ à¾×Íè » ͧ¡Ñ¹¡ÒéشÃѧé ÊÒ¡Ѻ¾Íà µ USB ¢Í§¤ÍÁ¾ÔÇàµÍà (5) äÁ ¤ÇûŴËÃ×͵ ÍÊÒÂÊÑÒ³¢Í§á¼§Ç§¨Ãã´æ ࢠÒä»ã¹á¼§Ç§¨Ã MicroBOX ã¹¢³Ð·Õè MicroBOX ¡íÒÅѧ·íÒ§Ò¹ àÇ ¹áµ Á¢Õ ¹Ñé µÍ¹¡Òû¯ÔºµÑ ÍÔ ¹×è ã´·ÕÃè кØà¨ÒШ§Ç Òµ ͧÊÒÂÊÑҳ㹢³Ð·íÒ§Ò¹¢Í§ ¡Ò÷´Åͧ¹Ñ¹é æ (6) ËÒ¡ÁÕ¤ÇÒÁ¼Ô´¾ÅÒ´ã´æ à¡Ô´¢Ö¹é µ ͧ» ´ÊÇÔµª POWER ·Ñ¹·Õ (7) äÁ 㪠ÍÐá´»àµÍà 俵ç·ÕÁè áÕ Ã§´Ñ¹¢ÒÍÍ¡à¡Ô¹ +18V ¡Ñºá¼§Ç§¨Ã MicroBOX (8) àÅ×͡㪠áËÅ §¨ ÒÂä¿ÃÐËÇ Ò§áºµàµÍÃÕËè Ã×ÍÍÐá´»àµÍà à¾Õ§Í ҧã´Í ҧ˹֧è Ë ÒÁãª
¾Ã ÍÁ¡Ñ¹·Ñ§é ÊͧẺÍ ҧà´ç´¢Ò´
(9) ËÅѧ¨Ò¡àÊÃç¨ÊÔ¹é ¡Ò÷´Åͧ ãË »Å´ÊÒÂàª×Íè Áµ ͤÍÁ¾ÔÇàµÍà áÅÐÊÒ¢ͧÍÐá´»àµÍà ËÃ×Í áËÅ §¨ ÒÂä¿ ÃÇÁ·Ñ§é ¤ÇöʹẵàµÍÃÕÍè Í¡¨Ò¡á¼§Ç§¨Ã MicroBOX àÊÁÍ
64 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
65
º··Õè 4 ªØ´¤íÒÊÑè§ÀÒÂã¹äźÃÒÃÕ ¢Í§â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ ¤Çº¤ØÁËع ¹µ IPST-BOT à¾×Íè ãË ¡ÒþѲ¹Òâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ¤Çº¤ØÁËع ¹µ IPST-BOT à» ¹ä»Í ҧÊдǡáÅЧ Òµ Í¡Òà ¾Ñ²¹Ò ¨Ö§ä´ Á¡Õ ÒèѴ·íÒä¿Å äźÃÒÃÕ¨Òí ¹Ç¹ÁÒ¡à¾×Íè ÃͧÃѺ¡ÒõԴµ ͡ѺÍØ»¡Ã³ ÀÒ¹͡ äÁ ÇÒ ¨Ðà» ¹ÍØ»¡Ã³ àÍÒµ ¾ØµÊíÒËÃѺáÊ´§¼Å¡Ò÷íÒ§Ò¹, ǧ¨Ã¢ÑºÁÍàµÍà , ÍØ»¡Ã³ µÃǨ¨ÑºÊÑÒ³ËÃ×Íૹà«Íà ã¹áººµ Ò§æ ÃÇÁ¶Ö§ä¿Å äźÃÒÃÕà¡ÕÂè ǡѺ¡ÒáíÒ˹´ËÃ×ÍÊà ҧ°Ò¹àÇÅÒ â´Â¡ÒÃ㪠§Ò¹ä¿Å äźÃÒÃÕ¹¤Õé ÇäѴÅÍ¡à¡çºäÇ ã¹â¿Åà´Íà à´ÕÂÇ ¡Ñº«Íà Êâ»Ãá¡ÃÁËÅÑ¡à¾×Íè ¤ÇÒÁÊдǡ㹡ÒõÃǨÊͺáÅÐàª×Íè Áâ§ä¿Å ¨Ò¡¹Ñ¹é ¨Ö§¼¹Ç¡ä¿Å äźÃÒÃÕ·µÕè Í § ¡ÒÃ㪠§Ò¹à¢ Òä»ã¹«Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ´ ÇÂä´àÃ硵տ #include 㹵͹µ ¹¢Í§â»Ãá¡ÃÁ 㹺·¹Õé¹íÒàʹÍÃÒÂÅÐàÍÕ´¢Í§ä¿Å äźÃÒÃÕ¾×é¹°Ò¹áÅÐäźÃÒÃÕËÅÑ¡·Õè·íҧҹà ÇÁ¡Ñºá¼§Ç§¨ÃËÅÑ¡ MicroBOX, ἧǧ¨ÃáÊ´§¼ÅáÅФǺ¤ØÁ¾Åѧ§Ò¹ Display-MOTOR áÅÐἧǧ¨Ãµ ; ǧÍ×¹è æ ·ÕÁè ãÕ ¹ªØ´Ëع ¹µ IPST-BOT
66 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
4.1 äźÃÒÃÕ in_out.h à» ¹äźÃÒÃÕ·ºÕè Ãèت´Ø ¤íÒÊÑ§è ¡ÒÃÍ Ò¹áÅÐà¢Õ¹¤ ҡѺ¾Íà µÍÔ¹¾ØµàÍÒµ ¾µØ ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ¡ ͹ àÃÕ¡㪠§Ò¹¿ §¡ ªÑè¹ÀÒÂã¹äźÃÒÃÕ¡ÅØ Á¹Õé¼Ù ¾Ñ²¹Òµ ͧ¼¹Ç¡ä¿Å äźÃÒÃÕäÇ ·ÕèµÍ¹µ ¹¢Í§â»Ãá¡ÃÁ´ ǤíÒÊÑè§ #include <in_out.h>
4.1.1 ¿ §ªÑ¹è Í Ò¹¤ Ò¨Ò¡¾Íà µÍÔ¹¾Øµ in_a : Í Ò¹¤ ÒÊÑÒ³´Ô¨µÔ ÍŨҡ¾Íà µ A in_b : Í Ò¹¤ ÒÊÑÒ³´Ô¨µÔ ÍŨҡ¾Íà µ B in_c : Í Ò¹¤ ÒÊÑÒ³´Ô¨µÔ ÍŨҡ¾Íà µ C in_d : Í Ò¹¤ ÒÊÑÒ³´Ô¨µÔ ÍŨҡ¾Íà µ D
ÃٻẺ¿ §¡ ªÑè¹ char in_a(x) char in_b(x) char in_c(x) char in_d(x)
¾ÒÃÒÁÔàµÍà x ·íÒ˹ Ò·Õ¡è Òí ˹´¢Ò¾Íà µ·Õµè Í §¡Òà ÁÕ¤Ò µÑ§é áµ 0 ¶Ö§ 7
¡Òä׹¤ Ò
ÍÒ¨ÁÕ¤Ò à» ¹ 0 ËÃ×Í 1
µÑÇÍ ҧ·Õè 4-1 char x=0; x = in_b(2);
// »ÃСÒȵÑÇá»Ã x à¾×Íè à¡çº¤ Ò¼ÅÅѾ¸ ¨Ò¡ÒÃÍ Ò¹¤ ÒÃдѺÊÑÒ³ // Í Ò¹¤ ÒÃдѺÊÑÒ³´Ô¨µÔ ÍŨҡ¾Íà µ PB2 áÅ Çà¡çº¤ ÒäÇ ·µÕè ÇÑ á»Ã x
char x=0; x = in_d(4);
// »ÃСÒȵÑÇá»Ã x à¾×Íè à¡çº¤ Ò¼ÅÅѾ¸ ¨Ò¡ÒÃÍ Ò¹¤ ÒÃдѺÊÑÒ³ // Í Ò¹¤ ÒÃдѺÊÑÒ³´Ô¨µÔ ÍŨҡ¾Íà µ PD4 áÅ Çà¡çº¤ ÒäÇ ·µÕè ÇÑ á»Ã x
µÑÇÍ ҧ·Õè 4-2
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
4.1.2 ¿ §ªÑ¹è à¢Õ¹¢ ÍÁÙÅä»Âѧ¾Íà µàÍÒµ ¾µØ
out_a : ¡íÒ˹´¤ ҢͧÊÑÒ³´Ô¨µÔ ÍÅ·Õ¾è Íà µ A out_b : ¡íÒ˹´¤ ҢͧÊÑÒ³´Ô¨µÔ ÍÅ·Õ¾è Íà µ B out_c : ¡íÒ˹´¤ ҢͧÊÑÒ³´Ô¨µÔ ÍÅ·Õ¾è Íà µ C out_d : ¡íÒ˹´¤ ҢͧÊÑÒ³´Ô¨µÔ ÍÅ·Õ¾è Íà µ D
ÃٻẺ¿ §¡ ªÑè¹
out_a(char _bit,char _dat) out_b(char _bit,char _dat) out_c(char _bit,char _dat) out_d(char _bit,char _dat)
¾ÒÃÒÁÔàµÍÃ
_bit 㪠¡Òí ˹´¢Ò¾Íà µ·Õµè Í §¡Òà ÁÕ¤Ò µÑ§é áµ 0 ¶Ö§ 7 _dat 㪠¡Òí ˹´¤ Ңͧ¢ ÍÁÙÅ·Õ¢è Ò¾Íà µ ÁÕ¤Ò à» ¹ 0 ËÃ×Í 1
µÑÇÍ ҧ·Õè 4-3
out_a(3,1); out_b(6,0); out_d(7,0);
// ¡íÒ˹´ãË ¢Ò¾Íà µ PA3 à» ¹ 1 // ¡íÒ˹´ãË ¢Ò¾Íà µ PB6 à» ¹ 0 // ¡íÒ˹´ãË ¢Ò¾Íà µ PD7 à» ¹ 0
4.1.3 ¿ §ªÑ¹è ¡ÅѺÅͨԡãË ¡ºÑ ¾Íà µàÍÒµ ¾µØ toggle_a : ¡ÅѺÅͨԡ·Õ¢è Ò¾Íà µ A toggle_b : ¡ÅѺÅͨԡ·Õ¢è Ò¾Íà µ B toggle_c : ¡ÅѺÅͨԡ·Õ¢è Ò¾Íà µ C toggle_d : ¡ÅѺÅͨԡ·Õ¢è Ò¾Íà µ D
ÃٻẺ¿ §¡ ªÑè¹ toggle_a(x) toggle_b(x) toggle_c(x) toggle_d(x)
¾ÒÃÒÁÔàµÍÃ
x 㪠¡Òí ˹´¢Ò¾Íà µ·Õµè Í §¡ÒáÅѺÅͨԡ ÁÕ¤Ò µÑ§é áµ 0 ¶Ö§ 7
µÑÇÍ ҧ·Õè 4-4 toggle_a(2); toggle_d(4);
// ¡ÅѺÅͨԡ·Õ¾è Íà µ PA2 // ¡ÅѺÅͨԡ·Õ¾è Íà µ PD4
67
68 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
4.1.4 ¿ §ªÑ¹è sw à» ¹¿ §¡ ª¹Ñè ÊíÒËÃѺµÃǨÊͺʶҹÐÊÇÔµª SW1 ¶Ö§ SW3 º¹á¼§Ç§¨Ã Display-POWER »ÃСͺ´ Ç sw1() : µÃǨÊͺʶҹСÒá´ÊÇÔµª sw1 sw2() : µÃǨÊͺʶҹСÒá´ÊÇÔµª sw2 sw3() : µÃǨÊͺʶҹСÒá´ÊÇÔµª sw3
ÃٻẺ¿ §¡ ªÑè¹
à» ¹ÁÒâ¤Ã¿ §¡ ªÑè¹ÊíÒËÃÑºÍ Ò¹¤ ÒÅͨԡ¢Í§¢Ò¾Íà µ·Õèµ Íǧ¨ÃࢠҡѺÊÇÔµª
¡Òä׹¤ Ò
ã¹¢³Ð·ÕÊè ÇÔµª ¶¡Ù ¡´¨Ð¤×¹¤ Òà» ¹ 0 áÅÐàÁ×Íè äÁ ¶¡Ù ¡´¨Ð¤×¹¤ Òà» ¹ 1
µÑÇÍ ҧ·Õè 4-5
#include <in_out.h> #include <lcd.h> #include <sleep.h> void main() { while(1) { if(sw1()==0) { lcd( sw1 active! ); sleep(500); } else { lcd( #c ); } } }
// ÊíÒËÃѺàÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sw1 // ÊíÒËÃѺàÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè lcd // ÊíÒËÃѺàÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sleep // â»Ãá¡ÃÁËÅÑ¡ // ǹÃͺäÁ è٠º // µÃǨÊ꼂 ÒÊÇÔµª sw1 ¶Ù¡¡´ËÃ×ÍäÁ // áÊ´§¢ ͤÇÒÁÇ Ò ÊÇÔµª ¶¡Ù ¡´ // ˹ ǧàÇÅÒà¾×Íè áÊ´§¢ ͤÇÒÁªÑÇè ¤ÃÙ // ÊíÒËÃѺ¡Ã³Õ·ÊÕè ÇÔµª äÁ ¶¡Ù ¡´ // à¤ÅÕÂà ¢Í ¤ÇÒÁ·Õâè Á´ÙÅ LCD
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
69
4.1.5 ¿ §ªÑ¹è sw_press à» ¹¿ §¡ ª¹Ñè ÊíÒËÃÑºÍ Ò¹¤ ÒʶҹТͧÊÇÔµª SW1 ¶Ö§ SW3 º¹á¼§Ç§¨Ã Display-POWER »ÃСͺ´ Ç sw1_press() : µÃǨÊͺʶҹСÒá´ÊÇÔµª sw1 ã¹ÅѡɳÐÃͨ¹¡Ç Ò¨ÐÁÕ¡Òá´ÊÇÔµª sw1 à¡Ô´¢Ö¹é sw2_press() : µÃǨÊͺʶҹСÒá´ÊÇÔµª sw2 ã¹ÅѡɳÐÃͨ¹¡Ç Ò¨ÐÁÕ¡Òá´ÊÇÔµª sw2 à¡Ô´¢Ö¹é sw3_press() : µÃǨÊͺʶҹСÒá´ÊÇÔµª sw3 ã¹ÅѡɳÐÃͨ¹¡Ç Ò¨ÐÁÕ¡Òá´ÊÇÔµª sw3 à¡Ô´¢Ö¹é
ÃٻẺ¿ §¡ ªÑè¹
à» ¹ÁÒâ¤Ã¿ §¡ ªÑè¹ÊíÒËÃѺǹµÃǨÊͺ¡Òá´ÊÇÔµª ã´æ
µÑÇÍ ҧ·Õè 4-6
#include <in_out.h> #include <lcd.h> #include <sleep.h> void main() { int i=0; lcd( Press sw2 to run#c ); sw2_press(); while(1) { lcd( Count: %d ,i++); sleep(1000); } }
// ÊíÒËÃѺàÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sw1 // ÊíÒËÃѺàÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè lcd // ÊíÒËÃѺàÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sleep // â»Ãá¡ÃÁËÅÑ¡ // »ÃСÒȵÑÇá»Ãà¡çº¤ Ò¡ÒùѺ // áÊ´§¢ ͤÇÒÁᨠ§ãË ¡´ÊÇÔµª sw2 à¾×Íè ࢠÒÊÙà кº¡ÒùѺ¤ Ò // Ãͨ¹¡Ç Ò¨ÐÁÕ¡Òá´ÊÇÔµª sw2 ¨Ö§¨Ð¡ÃзíÒ¤íÒÊÑ§è ºÃ÷Ѵ¶Ñ´ä» // ǹÃͺäÁ è٠º // áÊ´§¤ Ò¡ÒùѺ¢Í§µÑÇá»Ã i ·Õâè Á´ÙÅ LCD // ˹ ǧàÇÅÒ»ÃÐÁÒ³ 1 ÇÔ¹Ò·Õ
70 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
4.2 äźÃÒÃÕ sleep.h à» ¹äźÃÒÃÕʹѺʹعªØ´¤íÒÊѧè à¡ÕÂè ǡѺ¡ÒÃ˹ ǧàÇÅÒã¹Ë¹ ÇÂÁÔÅÅÔÇ¹Ô Ò·Õ ¡ ͹àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè ÀÒÂã¹ äźÃÒÃÕ¡ÅØ Á¹Õé¼Ù ¾Ñ²¹Òµ ͧ¼¹Ç¡ä¿Å äźÃÒÃÕäÇ ·ÕèµÍ¹µ ¹¢Í§â»Ãá¡ÃÁ´ ǤíÒÊÑè§
#include <sleep.h> ÃٻẺ¿ §¡ ª¹Ñè
void sleep(unsigned int ms)
¾ÒÃÒÁÔàµÍÃ
ms 㪠¡Òí ˹´¤ ÒàÇÅÒ·Õµè Í §¡ÒÃ˹ ǧã¹Ë¹ ÇÂÁÔÅÅÔÇ¹Ô Ò·Õ ÁÕ¤Ò 0 ¶Ö§ 65,535 ෠ҹѹé
µÑÇÍ ҧ·Õè 4-7
sleep(20); sleep(1000);
// ˹ ǧàÇÅÒ»ÃÐÁÒ³ 20 ÁÔÅÅÔÇ¹Ô Ò·Õ // ˹ ǧàÇÅÒ»ÃÐÁÒ³ 1 ÇÔ¹Ò·Õ
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
71
4.3 äźÃÒÃÕ analog.h à» ¹äźÃÒÃÕ·ºÕè Ãèت´Ø ¤íÒÊÑ§è ¡ÒÃÍ Ò¹¤ Ò¨Ò¡¢Ò¾Íà µÍÔ¹¾ØµÍйÒÅÍ¡¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ¡ ͹àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè ÀÒÂã¹äźÃÒÃÕ¡ÅØÁ ¹Õ¼é ¾Ù ² Ñ ¹Òµ ͧ¼¹Ç¡ä¿Å äźÃÒÃÕäÇ ·µÕè ͹µ ¹¢Í§â»Ãá¡ÃÁ´ ǤíÒÊѧè
#include <analog.h>
4.3.1 ¿ §¡ ª¹Ñè analog à» ¹¿ §¡ ª¹Ñè Í Ò¹¤ Ò¨Ò¡âÁ´ÙÅá»Å§ÊÑÒ³ÍйÒÅÍ¡à» ¹´Ô¨µÔ ÍŢͧ¢Ò¾Íà µ A â´ÂâÁ´ÙÅá»Å§ÊÑÒ³ ÍйÒÅÍ¡à» ¹´Ô¨µÔ ÍŢͧäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ATmega16 ·Õãè ª ã¹á¼§Ç§¨ÃËÅÑ¡ MicroBOX ¢Í§ªØ´Ëع ¹µ IPST-BOT ÁÕ¤ÇÒÁÅÐàÍÕ´㹡ÒÃá»Å§ÊÑÒ³ 10 ºÔµ
ÃٻẺ¿ §¡ ªÑè¹
unsigned int analog(unsigned char channel)
¾ÒÃÒÁÔàµÍÃ
channel 㪠àÅ×Í¡¢Ò¾Íà µÍÔ¹¾ØµÍйÒÅÍ¡·Õµè Í §¡ÒÃÍ Ò¹¤ Ò ÁÕ¤Ò 0 ¶Ö§ 7 «Ö§è µÃ§¡Ñº¾Íà µ PA0 ¶Ö§ PA7
¡Òä׹¤ Ò
¤ Ò·Õäè ´ ¨Ò¡¿ §¡ ª¹Ñè ¹Õ¤é Í× ¢ ÍÁÙÅ´Ô¨µÔ ÍÅ·Õäè ´ ¨Ò¡¡ÒÃá»Å§ÊÑÒ³¢Í§âÁ´ÙÅá»Å§ÊÑÒ³ÍйÒÅÍ¡à» ¹ ´Ô¨µÔ ÍŨҡª ͧ·Õ¡è Òí ˹´ ¤ Ò·Õàè » ¹ä»ä´ ¤Í× 0 ¨¹¶Ö§ 1,023
µÑÇÍ ҧ·Õè 4-8
int adc_val=0; // ¡íÒ˹´µÑÇá»ÃÊíÒËÃѺà¡çº¤ ÒÍйÒÅÍ¡·ÕÍè Ò ¹ä´ adc_val = analog(2); // Í Ò¹¤ ÒÍйÒÅÍ¡ª ͧ 2 «Ö§è µÃ§¡Ñº¾Íà µ PA2 áÅ Çà¡çº¤ Ò·Õµè ÇÑ á»Ã adc_val
4.3.2 ¿ §¡ ª¹Ñè knob à» ¹¿ §¡ ª¹Ñè Í Ò¹¤ Ò¨Ò¡âÁ´ÙÅá»Å§ÊÑÒ³ÍйÒÅÍ¡à» ¹´Ô¨µÔ ÍŢͧ¢Ò¾Íà µ A7 â´Â੾ÒÐ à¹×Íè §¨Ò¡·Õ¢è Ò¹Õäé ´ µ ͵Ñǵ Ò¹·Ò¹»ÃѺ¤ Òä´ 10k: äÇ áÅзջè ÅÒ·ѧé Êͧ¢Òµ ͡Ѻä¿àÅÕÂé § +5V áÅСÃÒÇ´ ¨Ö§·íÒãË Ç§¨Ã¢Í§µÑǵ Ò¹·Ò¹ »ÃѺ¤ Òä´ ¹·Õé Òí ˹ Ò·Õàè ÊÁ×͹໠¹áËÅ §¨ ÒÂáç´Ñ¹»ÃѺ¤ Òä´ 0 ¶Ö§ +5V ÊíÒËÃѺ㪠·´Êͺ¡Ò÷íÒ§Ò¹¢Í§âÁ´ÙÅá»Å§ ÊÑÒ³ÍйÒÅÍ¡à» ¹´Ô¨µÔ ÍŢͧäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ATmega16 ÁÕ¤ÇÒÁÅÐàÍÕ´㹡ÒÃá»Å§ÊÑÒ³ 10 ºÔµ
ÃٻẺ¿ §¡ ª¹Ñè #define knob() analog(7)
¡Òä׹¤ Ò
¤ Ò·Õäè ´ ¨Ò¡¿ §¡ ª¹Ñè ¹Õ¤é Í× ¢ ÍÁÙÅ´Ô¨µÔ ÍÅ·Õäè ´ ¨Ò¡¡ÒÃá»Å§ÊÑÒ³¢Í§âÁ´ÙÅá»Å§ÊÑÒ³ÍйÒÅÍ¡à» ¹ ´Ô¨µÔ ÍŢͧÍÔ¹¾Øµ·Õ¢è Ò¾Íà µ PA7 ¤ Ò·Õàè » ¹ä»ä´ ¤Í× 0 ¨¹¶Ö§ 1,023
µÑÇÍ ҧ·Õè 4-9
int adc_val=0; adc_val = knob();
// ¡íÒ˹´µÑÇá»ÃÊíÒËÃѺà¡çº¤ ÒÍйÒÅÍ¡·ÕÍè Ò ¹ä´ // Í Ò¹¤ ÒÍйÒÅÍ¡¨Ò¡ KNOB áÅ Çà¡çº¤ Ò·Õµè ÇÑ á»Ã adc_val
72 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
4.4 äźÃÒÃÕ lcd.h à» ¹äźÃÒÃÕºÃèت´Ø ¤íÒÊѧè à¡ÕÂè ǡѺ¡ÒÃáÊ´§¢ ͤÇÒÁ·Õâè Á´ÙÅ LCD º¹á¼§Ç§¨Ã Display-POWER ¡ ͹ àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè ÀÒÂã¹äźÃÒÃÕ¡ÅØÁ ¹Õé ¼Ù¾ ² Ñ ¹Ò¤Ç÷íÒ¡Òü¹Ç¡äźÃÒÃÕ㹵͹µ ¹¢Í§â»Ãá¡ÃÁ´ ǤíÒÊѧè
#include <lcd.h>
4.4.1 ¿ §¡ ª¹Ñè lcd ËÃ×Í LCD à» ¹¿ §¡ ª¹Ñè áÊ´§¼Å¢ ͤÇÒÁ·Õâè Á´ÙÅ LCD Ẻ 16 µÑÇÍÑ¡Éà 2 ºÃ÷Ѵ
ÃٻẺ¿ §¡ ªÑè¹
void lcd(char *p,...)
¾ÒÃÒÁÔàµÍÃ
p 㪠¡Òí ˹´ÃٻẺ¢Í§¡ÒÃáÊ´§¼Å·Õâè Á´ÙÅ LCD â´ÂÊÒÁÒö¡íÒ˹´ÃٻẺ¡ÒÃá·Ã¡ÊÑÅѡɳ ¾àÔ ÈÉ à¾×Íè à ÇÁáÊ´§¼Å¤ Ò¢ ÍÁÙŵÑÇàÅ¢ä´ ÁÕÃÒÂÅÐàÍÕ´´Ñ§¹Õé ÃËÑʺѧ¤Ñº ¡Ò÷íÒ§Ò¹ %c ËÃ×Í %C áÊ´§¼ÅµÑÇÍÑ¡Éà 1 µÑÇ %d ËÃ×Í %D áÊ´§¼ÅµÑÇàÅ¢°Ò¹ÊԺ㹪 ǧ -32,768 ¶Ö§ +32,767 %l ËÃ×Í %L áÊ´§¼ÅµÑÇàÅ¢°Ò¹ÊԺ㹪 ǧ -2,147,483,648 ¶Ö§ +2,147,483,647 %f ËÃ×Í %F áÊ´§¼Å¢ ÍÁÙÅẺ¨íҹǹ¨ÃÔ§·È¹ÔÂÁ 3 ËÅÑ¡ #c ¤Õ¤ Òí ÊÑ§è ¾ÔàÈÉà¾×Íè Êѧè à¤ÅÕÂà ¢Í ¤ÇÒÁ¡ ͹áÊ´§¼Å㹤ÃÑ§é ¶Ñ´ä» #n ¤Õ¤ Òí ÊÑ§è ¾ÔàÈÉà¾×Íè ¹íÒ¢ ͤÇÒÁä»áÊ´§ÂѧºÃ÷Ѵ·Õè 2 (ºÃ÷ѴŠҧ) ËÁÒÂà赯 ¡ÒáíÒ˹´ÍСÔÇàÁ¹µ ¨Ðµ ͧµÃ§¡ÑºÅíҴѺÃËÑʺѧ¤Ñº·Õ¨è зíÒ§Ò¹¹Ñ¹é æ Áԩйѹé ÍÒ¨à¡Ô´¤ÇÒÁ ¼Ô´¾ÅҴ㹡ÒÃáÊ´§¼Å仨ҡ·Õè¼Ù ¾Ñ²¹Òâ»Ãá¡ÃÁµ ͧ¡ÒÃ
µÑÇÍ ҧ·Õè 4-10
lcd( Hello LCD ); // áÊ´§¢ ͤÇÒÁ Hello LCD ·Õâè Á´ÙÅ LCD ¼ÅÅѾ¸ ·âÕè Á´ÙÅ LCD à» ¹´Ñ§¹Õé +
H e l l o R L C D tB K i t D i s p l a y - PO W E R a r d
(ËÁÒÂà赯 : ¨Ðµ ͧÁÕ¡ÒÃÊà ҧä¿Å â»Ãà¨ç¡µ áÅÐà¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ·ÕÊè ÁºÙó ¨Ö§¨Ðä´ ¼Å¡Ò÷íÒ§Ò¹µÒÁ¹Õ)é
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
µÑÇÍ ҧ·Õè 4-11
lcd( abcdefghijklmnopqrstuvwxyz ); // áÊ´§¼Å¢ ͤÇÒÁ㹡óշÊÕè ÒÂÍÑ¡¢ÃÐà¡Ô¹ 16 µÑÇÍÑ¡Éà ÍÑ¡¢ÃеÑÇ¶Ñ´ä»¨Ð¢Ö¹é ºÃ÷Ѵ·Õè 2 ·Ñ¹·Õ ¼ÅÅѾ¸ ·âÕè Á´ÙÅ LCD à» ¹´Ñ§¹Õé +
a b c d e f g h i jk l m n o p q r s t u v w x yz W E R a r d
µÑÇÍ ҧ·Õè 4-12
lcd( Value: %d unit ,518); // áÊ´§¢ ͤÇÒÁà ÇÁ¡Ñº¢ ÍÁÙŵÑÇàÅ¢ 518 ·Õâè Á´ÙÅ LCD ¼ÅÅѾ¸ ·âÕè Á´ÙÅ LCD à» ¹´Ñ§¹Õé +
V a l u e : o 5 1 8B u n i t D i s p l a y - PO W E R a r d
µÑÇÍ ҧ·Õè 4-13
lcd( Value: %d ,analog(4)); // Í Ò¹¤ ÒÍйÒÅÍ¡·Õªè Í § 4 (¾Íà µ PA4) ÁÒáÊ´§·Õâè Á´ÙÅ LCD ¼ÅÅѾ¸ ·âÕè Á´ÙÅ LCD à» ¹´Ñ§¹Õé +
V a l u e : o x x xB u n i t D i s p l a y - PO W E R a r d
â´Â·Õè xxx ¤×ͤ Ò·ÕÍè Ò ¹ä´ ÁÕ¤Ò µÑ§é áµ 0 ¶Ö§ 1,023
73
74 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
µÑÇÍ ҧ·Õè 4-14
char c_test= j ; lcd( abcd%cxyz ,c_test); // áÊ´§ÍÑ¡¢ÃÐ j à ÇÁ¡Ñº¢ ͤÇÒÁÍ×¹è æ ¼ÅÅѾ¸ ·âÕè Á´ÙÅ LCD à» ¹´Ñ§¹Õé +
a b c d j x y z y zB u n i t D i s p l a y - PO W E R a r d
µÑÇÍ ҧ·Õè 4-15
lcd( Value: %f ,124.450); // áÊ´§¢ ͤÇÒÁà ÇÁ¡Ñº¢ ÍÁÙŵÑÇàÅ¢¨íҹǹ¨ÃÔ§·Õâè Á´ÙÅ LCD (·È¹ÔÂÁ 3 ËÅÑ¡) ¼ÅÅѾ¸ ·âÕè Á´ÙÅ LCD à» ¹´Ñ§¹Õé +
V a l u e : o 1 2 5. 4 5 0 t D i s p l a y - PO W E R a r d
µÑÇÍ ҧ·Õè 4-16
lcd( count1: %d #ncount2: %d ,12,48); // áÊ´§¢ ͤÇÒÁà ÇÁ¡Ñº 2 ÃËÑʤǺ¤ØÁ áÅФÕ¾ àÔ ÈÉ #n // à¾×Íè ¡íÒ˹´ãË ¡ÅØÁ ¢ ͤÇÒÁ·Õµè Í · Ò #n ¨Ð¶Ù¡¹íÒáÊ´§¼ÅºÃ÷Ѵ·Õè 2 ¼ÅÅѾ¸ ·âÕè Á´ÙÅ LCD à» ¹´Ñ§¹Õé +
c o u n t 1 : b 1 2B K i t c o u n t 2 : - 48 W E R a r d
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
75
4.5 äźÃÒÃÕ serial.h à» ¹äźÃÒÃÕºÃèت´Ø ¤íÒÊѧè à¡ÕÂè ǡѺ¡ÒÃÃÑºÊ §¢ ÍÁÙż Ò¹âÁ´ÙÅÊ×Íè ÊÒâ ÍÁÙÅ͹ءÃÁ UART ¢Í§äÁâ¤Ã¤Í¹ â·ÃÅàÅÍà ATmega16 ¼ ҹǧ¨Ãàª×Íè Áµ ;Íà µÍ¹Ø¡ÃÁ RS-232 º¹á¼§Ç§¨Ã Display-MOTOR ¡ ͹àÃÕ¡㪠§Ò¹ ¿ §¡ ª¹Ñè ÀÒÂã¹äźÃÒÃÕ¡ÅØÁ ¹Õé ¼Ù¾ ² Ñ ¹Ò¤Ç÷íÒ¡Òü¹Ç¡äźÃÒÃÕ㹵͹µ ¹¢Í§â»Ãá¡ÃÁ´ ǤíÒÊѧè
#include <serial.h> ¡ÒÃàª×èÍÁµ Í·Ò§ÎÒà ´áÇÃ
µ ÍÊÒÂàª×Íè Áµ ;Íà µÍ¹Ø¡ÃÁ ËÃ×ÍÊÒ CX-4 ࢠҡѺ¨Ø´µ ;Íà µÍ¹Ø¡ÃÁº¹á¼§Ç§¨Ã Display-MOTOR Ê Ç¹ »ÅÒÂÍÕ¡´ ҹ˹֧è à» ¹¤Í¹à¹ç¡àµÍà DB-9 µÑǼÙã Ë µÍ ࢠҡѺ¾Íà µÍ¹Ø¡ÃÁ¢Í§¤ÍÁ¾ÔÇàµÍà ᵠ¶Ò ËÒ¡¤ÍÁ¾ÔÇàµÍà ÁàÕ ©¾ÒÐ ¾Íà µ USB ¨Ðµ ͧ㪠µÇÑ á»Å§ÊÑÒ³¾Íà µ USB à» ¹¾Íà µÍ¹Ø¡ÃÁ RS-232 ª Ç (á¹Ð¹íÒÃع UCON-232S ¢Í§ INEX)
4.4.1 ¿ §¡ ª¹Ñè uart à» ¹¿ §¡ ª¹Ñè Ê §¢ ÍÁÙÅÊÒÂÍÑ¡¢ÃÐÍÍ¡·Ò§Ç§¨ÃÀÒ¤Ê §¢Í§âÁ´ÙÅ UART â´Â¡íÒ˹´ÍѵÃҺʹËÃ×ÍÍѵÃÒ àÃçÇ㹡Òö Ò·ʹ¢ ÍÁÙÅà» ¹¤ ÒµÑ§é µ ¹·Õè 9,600 ºÔµµ ÍÇÔ¹Ò·Õ
ÃٻẺ¿ §¡ ª¹Ñè
void uart(char *p,...)
¾ÒÃÒÁÔàµÍÃ
p 㪠¡Òí ˹´ÃٻẺ¢Í§¢ ͤÇÒÁ·Õµè Í §¡ÒÃÊ §ÍÍ¡·Ò§Ç§¨ÃÀÒ¤Ê §¢Í§âÁ´ÙÅ UART â´ÂÊÒÁÒö¡íÒ˹´ ÃٻẺ¡ÒÃá·Ã¡ÊÑÅѡɳ ¾àÔ ÈÉà¾×Íè à ÇÁáÊ´§¼Å¤ Ò¢ ÍÁÙŵÑÇàÅ¢ä´ ÁÕÃÒÂÅÐàÍÕ´´Ñ§¹Õé ÃËÑʺѧ¤Ñº ¡Ò÷íÒ§Ò¹ %c ËÃ×Í %C áÊ´§¼ÅµÑÇÍÑ¡Éà 1 µÑÇ %d ËÃ×Í %D áÊ´§¼ÅµÑÇàÅ¢°Ò¹ÊÔº 㹪 ǧ -32,768 ¶Ö§ +32,767 %l ËÃ×Í %L áÊ´§¼ÅµÑÇàÅ¢°Ò¹ÊÔº 㹪 ǧ -2,147,483,648 ¶Ö§ +2,147,483,647 %f ËÃ×Í %F áÊ´§¼Å¢ ÍÁÙÅẺ¨íҹǹ¨ÃÔ§·È¹ÔÂÁ 3 ËÅÑ¡ \r ¤Õ¤ Òí ÊÑ§è ¾ÔàÈÉà¾×Íè ¡íÒ˹´ãË ¢Í ¤ÇÒÁªÔ´ä»·Ò§´ Ò¹« Ò¢ͧºÃ÷Ѵ \n ¤Õ¤ Òí ÊÑ§è ¾ÔàÈÉà¾×Íè ¡íÒ˹´ãË ¢Í ¤ÇÒÁ¢Ö¹é ºÃ÷ѴãËÁ
4.4.2 ¿ §¡ ª¹Ñè uart_set_baud à» ¹¿ §¡ ª¹Ñè ¡íÒ˹´ÍѵÃҺʹ (baud rate) ÃÐËÇ Ò§âÁ´ÙÅ UART ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ¡Ñº¤ÍÁ¾ÔÇàµÍÃ
ÃٻẺ¿ §¡ ªÑè¹
void uart_set_baud(unsigned int baud)
¾ÒÃÒÁÔàµÍÃ
baud 㪠¡Òí ˹´¤ ÒÍѵÃҺʹã¹Ë¹ ǺԵµ ÍÇÔ¹Ò·Õ
µÑÇÍ ҧ·Õè 4-17
uart_set_baud(4800); // ¡íÒ˹´ÍѵÃҺʹ㹡ÒÃÊ×Íè ÊÒÃà» ¹ 4800 ºÔµµ ÍÇÔ¹Ò·Õ
76 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
4.4.3 ¿ §¡ ª¹Ñè uart_getkey à» ¹¿ §¡ ª¹Ñè ÃѺ¢ ÍÁÙÅࢠÒÊÙÇ §¨ÃµÑÇÃѺ¢Í§âÁ´ÙÅ UART ÀÒÂã¹äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ATmega16 ¢Í§¡Òà Ê×èÍÊÒâ ÍÁÙż Ò¹¾Íà µÍ¹Ø¡ÃÁ
ÃٻẺ¿ §¡ ª¹Ñè
char uart_getkey(void)
¡Òä׹¤ Ò
- ¤×¹¤ Òà» ¹ 0 àÁ×Íè äÁ Á¡Õ ÒÃÃѺÍÑ¡¢ÃÐã´æ ࢠÒÁÒÂѧǧ¨ÃÀÒ¤ÃѺ¢Í§âÁ´ÙÅ UART - àÁ×Íè ÁÕ¡ÒÃÃѺÍÑ¡¢ÃÐã´æ ࢠÒÁÒÂѧǧ¨ÃÀÒ¤ÃѺ ¡ç¨Ð¤×¹¤ Òà» ¹¢ ÍÁÙÅÃËÑÊáÍÊ¡Õ¢é ͧÍÑ¡¢ÃеÑǹѹé æ ·ÕÃè ºÑ ä´
µÑÇÍ ҧ·Õè 4-18
#include <serial.h> // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè uart_getkey #include <lcd.h> // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè lcd #include <sleep.h> // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sleep void main() // â»Ãá¡ÃÁËÅÑ¡ { while(1) // ǹÃͺäÁ è٠º { if(uart_getkey()== a ) // µÃǨ¨Ñº¡Òá´á» ¹¤Õ a { lcd( Key a Active! ); // áÊ´§¢ ͤÇÒÁÇ Ò ÊÒÁÒöÃѺ¢ ÍÁÙÅä´ sleep(1000); // ˹ ǧàÇÅÒà¾×Íè áÊ´§¢ ͤÇÒÁ»ÃÐÁÒ³ 1 ÇÔ¹Ò·Õ } else { lcd( #c ); // à¤ÅÕÂà ¢Í ¤ÇÒÁ·Õ¨è ÍáÊ´§¼Å¢Í§âÁ´ÙÅ LCD } } } ËÁÒÂà赯 ÊíÒËÃѺ¡ÒÃàÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè uart à¾×Íè Ê §¢ ÍÁÙÅÍÍ¡·Ò§ UART áÅп §¡ ª¹Ñè uart_getkey à¾×Íè µÃǨ¨ÑºÍÑ¡ÉÃÐã´æ¹Ñ¹é ÍѵÃҺʹ㹡ÒÃÊ×Íè ÊÒâ ÍÁÙÅÃÐËÇ Ò§âÁ´ÙÅ UART ä´ ¶¡Ù ¡íÒ˹´à» ¹ 9600 ºÔµµ ÍÇÔ¹Ò·Õ 8 ºÔµ¢ ÍÁÙÅ áÅÐäÁ 㪠§Ò¹ºÔµ¾ÒÃÔµâÕé ´ÂÍѵâ¹ÁÑµÔ (à» ¹¤ ÒµÑ§é µ ¹) ·Ñ§é ¹Õàé ¾×Íè Å´¤ÇÒÁ«Ñº« ͹㹡ÒÃà¢Õ¹â»Ãá¡ÃÁŧ áµ ¼¾Ù ² Ñ ¹Òâ»Ãá¡ÃÁÂѧÊÒÁÒöà»ÅÕÂè ¹á»Å§¤ ÒÍѵÃҺʹ㹡ÒÃÊ×Íè ÊÒâ ÍÁÙÅä´ â´Â㪠¿§ ¡ ª¹Ñè uart_set_baud áµ ¨Ðµ ͧ¤íÒ¹Ö§´ ÇÂÇ Ò àÁ×Íè ÍѵÃҺʹ㹡ÒÃÊ×Íè ÊÒâ ÍÁÙÅÊÙ§¢Ö¹é ÍÒ¨Ê §¼Åµ ͤÇÒÁ¶Ù¡µ ͧ㹡ÒÃÊ×Íè ÊÒâ ÍÁÙÅ´ ÇÂ
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
77
4.6 äźÃÒÃÕ motor.h à» ¹äźÃÒÃÕºÃèت´Ø ¤íÒÊѧè à¡ÕÂè ǡѺ¡ÒäǺ¤ØÁÁÍàµÍà 俵ç â´Â·íҧҹà ÇÁ¡ÑºÇ§¨Ã¢ÑºÁÍàµÍà 俵纹 ἧǧ¨Ã Display-MOTOR ´Ñ§ÃÙ»·Õè 4-1 ¡ ͹㪠§Ò¹¿ §¡ ª¹Ñè ã¹äźÃÒÃÕ¡ÅØÁ ¹Õ¤é Çü¹Ç¡äźÃÒÃÕ㹵͹µ ¹¢Í§ â»Ãá¡ÃÁ´ ǤíÒÊѧè
#include <motor.h> ¡ÒÃàª×èÍÁµ Í·Ò§ÎÒà ´áÇÃ
ÊíÒËÃѺÁÍàµÍà ªÍ § 1 - µ Í¢Ò¾Íà µ PD2 ¢Í§á¼§Ç§¨ÃËÅѡࢠҡѺÍÔ¹¾Øµ 1A ¢Í§Ç§¨Ã¢ÑºÁÍàµÍà (´Ùã¹Ç§¨ÃÃÙ»·Õè 1-4 º··Õè 1) - µ Í¢Ò¾Íà µ PD3 ¢Í§á¼§Ç§¨ÃËÅѡࢠҡѺ¨Ø´µ Í 1B ¢Í§Ç§¨Ã¢ÑºÁÍàµÍà (´Ùã¹Ç§¨ÃÃÙ»·Õè 1-4 º··Õè 1) - µ Í¢Ò¾Íà µ PD4 ¢Í§á¼§Ç§¨ÃËÅѡࢠҡѺ¨Ø´µ Í 1E ¢Í§Ç§¨Ã¢ÑºÁÍàµÍà (´Ùã¹Ç§¨ÃÃÙ»·Õè 1-4 º··Õè 1) ÊíÒËÃѺÁÍàµÍà ªÍ § 2 - µ Í¢Ò¾Íà µ PD7 ¢Í§á¼§Ç§¨ÃËÅѡࢠҡѺ¨Ø´µ Í 2A ¢Í§Ç§¨Ã¢ÑºÁÍàµÍà (´Ùã¹Ç§¨ÃÃÙ»·Õè 1-4 º··Õè 1) - µ Í¢Ò¾Íà µ PD6 ¢Í§á¼§Ç§¨ÃËÅѡࢠҡѺ¨Ø´µ Í 2B ¢Í§Ç§¨Ã¢ÑºÁÍàµÍà (´Ùã¹Ç§¨ÃÃÙ»·Õè 1-4 º··Õè 1) - µ Í¢Ò¾Íà µ PD5 ¢Í§á¼§Ç§¨ÃËÅѡࢠҡѺ¨Ø´µ Í 2E ¢Í§Ç§¨Ã¢ÑºÁÍàµÍà (´Ùã¹Ç§¨ÃÃÙ»·Õè 1-4 º··Õè 1)
Display-MOTOR
ἧǧ¨ÃáÊ´§¼ÅáÅФǺ¤ØÁÁÍàµÍà PORTC
PA6
IPST MicroBOX PA0
I P S T - B O T o ro b o t ATMEGA16
PA2
PA1
Over 7.5V
++ Vin -
PA3
SDA RS-232 LOW BATT.
Vm OUT
PA7
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
KNOB PA7
DC INPUT
DC input
OFF
ON
ON
SCL
M2 M1
PD7 PD6
PD1
PD5
PD0
PD4
TxD
PD3
RxD
MOTOR OUTPUT
PD2
* * * *! *"
DisplayMotor
PB2
PB4
SW3
+ -
PB0
PB3
SW2
S
PB1
RESET
SW1
SERVO
D i s p l a y - MO T E R a r d
Ê Ç¹¢Í§Ç§¨Ã ¢ÑºÁÍàµÍà 俵ç ¨Ø´µ ÍÁÍàµÍà 俵ç 2 µÑÇ
LED áÊ´§Ê¶Ò¹Ð¡Ò÷íÒ§Ò¹ ÊÕà¢ÕÂÇ : ËÁع仢 ҧ˹ Ò ÊÕá´§ : ËÁع¡ÅѺ·Ò§
ÃÙ»·Õè 4-1 áÊ´§Ê ǹ¢Í§Ç§¨Ã¢ÑºÁÍàµÍà º¹á¼§Ç§¨Ã Display-MOTOR
78 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
4.6.1 ¿ §¡ ª¹Ñè motor à» ¹¿ §¡ ªÑè¹ÊíÒËÃѺ¢ÑºÁÍàµÍà 俵ç
ÃٻẺ¿ §¡ ª¹Ñè
void motor(char _channel,int _power)
¾ÒÃÒÁÔàµÍÃ
_channel 㪠àÅ×Í¡ª ͧ¢Í§Ç§¨Ã¢ÑºÁÍàµÍà ·µÕè Í §¡ÒÃ㪠§Ò¹ _power 㪠¡Òí ˹´¡íÒÅѧ¢Ñº¢Í§Ç§¨Ã¢ÑºÁÍàµÍà ÁÕ¤Ò ÍÂÙã ¹ª ǧ -100 ¶Ö§ 100 ¶ Ò¡íÒ˹´¤ Ò _power ãË Á¤Õ Ò à» ¹ºÇ¡ (1 ¶Ö§ 100) ¨Ð·íÒãË ÁÍàµÍà ËÁعä»ã¹·Ôȷҧ˹֧è áµ ¶Ò ¡íÒ˹´¤ Ò _power ãË Á¤Õ Ò à» ¹Åº (-1 ¶Ö§ -100) ¨Ð·íÒãË ÁÍàµÍà ËÁعä»ã¹·ÔÈ·Ò§µÃ§¢ ÒÁ Ê Ç¹ã¹¡Ã³Õ¡Òí ˹´¤ Ò _power à» ¹ 0 ÁÍàµÍà ¨ÐËÂØ´ËÁع ᡹ËÁع¢Í§ÁÍàµÍà ໠¹ÍÔÊÃÐ (¶ ÒËÒ¡ µ ͧ¡Òúѧ¤ÑºËÃ×ÍàºÃ¡¤ÇÃàÃÕ¡㪠¿§ ¡ ª¹Ñè motor_stop ¨Ð·íÒ§Ò¹ä´ ÊÁºÙó ÁÒ¡¡Ç Ò)
µÑÇÍ ҧ·Õè 4-19
motor(1,60); ................ motor(1,-60); motor(2,100);
// ¢ÑºÁÍàµÍà ªÍ § 1 ´ Ç¡íÒÅѧ 60% ¢Í§¡íÒÅѧÊÙ§ÊØ´ // ¢ÑºÁÍàµÍà ªÍ § 1 ´ Ç¡íÒÅѧ 60% ¢Í§¡íÒÅѧÊÙ§ÊØ´ ãË ËÁع㹷ÔÈ·Ò§µÃ§¢ ÒÁ // ¢ÑºÁÍàµÍà ªÍ § 2 ´ Ç¡íÒÅѧ 100% (àµçÁ¾Ô¡´Ñ )
4.6.2 ¿ §¡ ª¹Ñè motor_stop à» ¹¿ §¡ ªÑè¹ÊíÒËÃѺºÑ§¤Ñºá¡¹ËÁعËÃ×ÍàºÃ¡ÁÍàµÍÃ
ÃٻẺ¿ §¡ ªÑè¹
void motor_stop(char _channel)
¾ÒÃÒÁÔàµÍÃ
_channel 㪠àÅ×͡ǧ¨Ã¢ÑºÁÍàµÍà ·µÕè Í §¡ÒÃàºÃ¡ÁÍàµÍà - 1 ¤×Í àÅ×Í¡àºÃ¡ÁÍàµÍà ·ªÕè Í §·Õè 1 - 2 ¤×Í àÅ×Í¡àºÃ¡ÁÍàµÍà ·ªÕè Í §·Õè 2 - ALL ¤×Í àÅ×Í¡àºÃ¡ÁÍàµÍà ·§Ñé Êͧª ͧ
µÑÇÍ ҧ·Õè 4-20 motor_stop(1); motor_stop(2); motor_stop(ALL);
// àºÃ¡ÁÍàµÍà ªÍ § 1 // àºÃ¡ÁÍàµÍà ªÍ § 2 // àºÃ¡ÁÍàµÍà ·§Ñé 2 ª ͧ (·Ñ§é ª ͧ 1 áÅÐ 2)
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
79
4.7 äźÃÒÃÕ sound.h à» ¹äźÃÒÃÕºÃèت´Ø ¤íÒÊѧè à¡ÕÂè ǡѺ¡ÒáíÒà¹Ô´àÊÕ§ â´Â·íҧҹà ÇÁ¡Ñºá¼§Ç§¨ÃÅíÒ⾧ ZX-SPEAKER ¡ ͹ àÃÕ¡㪠§Ò¹¿ §¡ ªÑè¹ÀÒÂã¹äźÃÒÃÕ¡ÅØ Á¹Õé¼Ù ¾Ñ²¹Ò¤Ç÷íÒ¡Òü¹Ç¡äźÃÒÃÕ㹵͹µ ¹¢Í§â»Ãá¡ÃÁ´ ǤíÒÊÑè§
#include <sound.h>
4.7.1 ¿ §¡ ª¹Ñè sound
à» ¹¿ §¡ ª¹Ñè ¡íÒà¹Ô´ÊÑÒ³¤ÇÒÁ¶Õàè ¾×Íè ¢ÑºÍÍ¡Âѧ¢Ò¾Íà µ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ATmega16 »ÃСͺ´ Ç sound_a àÅ×Í¡¡íÒà¹Ô´àÊÕ§·Õ¢è Ò¾Íà µã´æ ¢Í§¾Íà µ A sound_b àÅ×Í¡¡íÒà¹Ô´àÊÕ§·Õ¢è Ò¾Íà µã´æ ¢Í§¾Íà µ B sound_c àÅ×Í¡¡íÒà¹Ô´àÊÕ§·Õ¢è Ò¾Íà µã´æ ¢Í§¾Íà µ C sound_d àÅ×Í¡¡íÒà¹Ô´àÊÕ§·Õ¢è Ò¾Íà µã´æ ¢Í§¾Íà µ D
ÃٻẺ¿ §¡ ª¹Ñè
void sound_a(char ch,int freq,int time) void sound_b(char ch,int freq,int time) void sound_c(char ch,int freq,int time) void sound_d(char ch,int freq,int time)
¾ÒÃÒÁÔàµÍÃ
ch 㪠àÅ×Í¡¢Ò¾Íà µ·Õµè Í §¡ÒÃ㪠§Ò¹ ÁÕ¤Ò 0 ¶Ö§ 7 freq 㪠¡Òí ˹´¤ Ò¤ÇÒÁ¶ÕÊè Ñ Ò³àÊÕ§ time 㪠¡Òí ˹´ª ǧàÇÅÒ㹡ÒáíÒà¹Ô´àÊÕ§໠¹¨íҹǹàµçÁ෠Ңͧ 0.1 ÁÔÅÅÔÇ¹Ô Ò·Õ
4.7.2 ¿ §¡ ª¹Ñè beep
à» ¹¿ §¡ ª¹Ñè ÊíÒËÃѺ¡íÒà¹Ô´ÊÑÒ³¤ÇÒÁ¶Õè 2kHz à» ¹àÇÅÒ¹Ò¹ 10 ÁÔÅÅÔÇ¹Ô Ò·Õ à¾×Íè ¢ÑºÍÍ¡Âѧ¢Ò¾Íà µã´æ ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ATmega16 ¹Ñ¹è ¤×Í ¨Ðä´ Â¹Ô à» ¹àÊÕ§ µÔ´é ËÒ¡µ Íἧǧ¨ÃÅíÒ⾧ࢠҷբè Ò¾Íà µ·Õãè ª §Ò¹
ÃٻẺ¿ §¡ ª¹Ñè
void beep_a(char ch) void beep_b(char ch) void beep_c(char ch) void beep_d(char ch)
¾ÒÃÒÁÔàµÍÃ
ch 㪠àÅ×Í¡¢Ò¾Íà µ·Õµè Í §¡ÒÃ㪠§Ò¹ ÁÕ¤Ò 0 ¶Ö§ 7
µÑÇÍ ҧ·Õè 4-21
beep_d(2); // ¡íÒà¹Ô´àÊÕ§¤ÇÒÁ¶Õ»è ÃÐÁÒ³ 2kHz ¹Ò¹ 10 ÁÔÅÅÔÇ¹Ô Ò·Õ¨Ò¡¢Ò¾Íà µ PA2 sound_b(4,800,500); // ¡íÒà¹Ô´àÊÕ§¤ÇÒÁ¶Õ»è ÃÐÁÒ³ 800Hz ¹Ò¹ 50 ÁÔÅÅÔÇ¹Ô Ò·Õ¨Ò¡¢Ò¾Íà µ PB4
80 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
4.8 äźÃÒÃÕ servo.h à» ¹äźÃÒÃÕºÃèتش¤íÒÊÑè§à¡ÕèÂǡѺ¡ÒäǺ¤ØÁà«Íà âÇÁÍàµÍà ÁÕ¤ÇÒÁÊÒÁÒö㹤Ǻ¤ØÁµíÒá˹ §¢Í§ à«Íà âÇÁÍàµÍÃ ä´ ¶Ö§ 5 µÑÇã¹àÇÅÒà´ÕÂǡѹ â´Â·íҧҹà ÇÁ¡Ñºá¼§Ç§¨Ã Display-MOTOR ¡ ͹àÃÕ¡㪠§Ò¹ ¿ §¡ ªÑè¹ÀÒÂã¹äźÃÒÃÕ¡ÅØ Á¹Õé¼Ù ¾Ñ²¹Òµ ͧ¼¹Ç¡ä¿Å äźÃÒÃÕ¹Õé㹵͹µ ¹¢Í§â»Ãá¡ÃÁ´ ǤíÒÊÑè§
#include <servo.h>
AA
AA
AA
PORTC
PA7
PA6
IPST MicroBOX PA0
I P S T - B O T o ro b o t D i s p l a y - MO T E R a r d
Display-MOTOR
M2
PD7
¨Ø´µ Íà«Íà âÇÁÍàµÍà 5 µÑÇ (PB0 ¶Ö§ PB4)
M1
PD6
PD1
PD5
PD0
PD4
TxD
ä¿á¨ §ÃдѺ¢Í§áºµàµÍÃÕè
MOTOR OUTPUT PD3
RxD
ÊÇÔµª à» ´-» ´
ἧǧ¨ÃáÊ´§¼ÅáÅÐ ¤Çº¤ØÁÁÍàµÍÃ
PD2
* * * *! *"
DisplayMotor
PB2
PB4
SW3
+ -
PB0
PB3
SW2
S
PB1
RESET
SW1
SERVO
ATMEGA16
PA2
PA1
Over 7.5V
++ Vin -
PA3
RS-232 LOW BATT.
Vm OUT
DC INPUT
SDA
DC input
OFF
ON
ON
SCL KNOB PA7
ÊÒÂ俺ǡ (ÊÕá´§)
ÊÒÂä¿Åº (ÊÕ´íÒ)
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
ἧǧ¨ÃËÅÑ¡ MicroBOX ÍÂÙ ´ ҹŠҧ àÁ×è͵ ͡Ѻἧǧ¨Ã Display-MOTOR áÅ Ç ¡Òà ¨ ÒÂä¿àÅÕé§ãË ¡ÃзíÒ¼ Ò¹¨Ø´ µ Í ä¿àÅÕé  § DC INPUT º¹ ἧǧ¨Ã Display-MOTOR á·¹
AA
¡ÐºÐ¶ Ò¹¢¹Ò´ AA 5 ¡ ͹ l ¶ Ò㪠ẵàµÍÃÕèẺÍÑŤÒäŹ ¨Ðä´ áç´Ñ¹ +7.5V (1.5V x5) l ¶ Ò㪠ẵàµÍÃÕèẺ»ÃШØä´ ¨Ðä´ áç´Ñ¹ +6V (1.2V x5)
AA
àÁ×Íè ¼Ù¾ ² Ñ ¹ÒàÅ×͡㪠¡ÅØÁ ¿ §¡ ª¹Ñè ¤Çº¤ØÁà«Íà âÇÁÍàµÍà ¨Ò¡äźÃÒÃÕ servo.h â»Ãá¡ÃÁ¨ÐÁÕ¡ÒèѺ¨Í§¢Ò ¾Íà µ´Ñ§µ Í仹Õé àÁ×Íè 㪠§Ò¹à«Íà âÇÁÍàµÍà ªÍ § 0 â»Ãá¡ÃÁ¨Ð¨Í§¾Íà µ PB0 àÁ×Íè 㪠§Ò¹à«Íà âÇÁÍàµÍà ªÍ § 1 â»Ãá¡ÃÁ¨Ð¨Í§¾Íà µ PB1 àÁ×Íè 㪠§Ò¹à«Íà âÇÁÍàµÍà ªÍ § 2 â»Ãá¡ÃÁ¨Ð¨Í§¾Íà µ PB2 àÁ×Íè 㪠§Ò¹à«Íà âÇÁÍàµÍà ªÍ § 3 â»Ãá¡ÃÁ¨Ð¨Í§¾Íà µ PB3 àÁ×Íè 㪠§Ò¹à«Íà âÇÁÍàµÍà ªÍ § 4 â»Ãá¡ÃÁ¨Ð¨Í§¾Íà µ PB4
à«Íà âÇÁÍàµÍÃ
SERVO MOTOR Standard
ÃÙ»·Õè 4-2 áÊ´§¡Òõ Í㪠§Ò¹á¼§Ç§¨ÃËÅÑ¡ MicroBOX ¡Ñºá¼§Ç§¨Ã Display-MOTOR áÅÐà«Íà âÇÁÍàµÍÃ
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
81
´Ñ§¹Ñ¹é ¼Ù¾ ² Ñ ¹Ò¨íÒà» ¹µ ͧËÅÕ¡àÅÕÂè §¡ÒÃ㪠§Ò¹¢Ò¾Íà µ·Õ¶è ¡Ù ¨Í§ãª ·Òí §Ò¹Ã ÇÁ¡Ñºà«Íà âÇÁÍàµÍà à¾×Íè ãË ¡Ò÷íҧҹ໠¹ä»Í ҧ¶Ù¡µ ͧ ¡µÑÇÍ ҧ ¼Ù¾ ² Ñ ¹ÒÁÕ¡ÒÃ㪠§Ò¹à«Íà âÇÁÍàµÍà 2 µÑÇâ´ÂàÅ×Í¡µ Í㪠§Ò¹¡Ñºª ͧ 0 áÅÐ 1 ´Ñ§¹Ñ¹é ¼Ù¾ ² Ñ ¹ÒäÁ ¤Çõ ÍÍØ»¡Ã³ ã´æà¾×Íè 㪠§Ò¹¡Ñº¾Íà µ PB0 áÅÐ PB1 ã¹¢³Ð·ÕÂè §Ñ ¤§ÊÒÁÒöµ ÍÍØ»¡Ã³ ã´æà¾×Íè 㪠§Ò¹¡Ñº¾Íà µ PB2,PB3 áÅÐPB4 ä´ µÒÁ»¡µÔ
¡ÒÃàª×èÍÁµ Í·Ò§ÎÒà ´áÇÃ
µÔ´µÑ§é ἧǧ¨Ã Display-MOTOR ࢠҡѺἧǧ¨ÃËÅÑ¡ MicroBOX áÅе Íà«Íà âÇÁÍàµÍÃ à¢ Ò·Õ¨è ´Ø µ Í à«Íà âÇÁÍàµÍà º¹á¼§Ç§¨Ã Display-MOTOR ÊÒÁÒöµ Í㪠§Ò¹à«Íà âÇÁÍàµÍÃ ä´ ¾Ã ÍÁ¡Ñ¹ 5 µÑÇ ´Ñ§áÊ´§ã¹ÃÙ»·Õè 4-2
4.8.1. ¿ §¡ ª¹Ñè servo à» ¹¿ §¡ ªÑ蹡íÒ˹´µíÒá˹ §á¡¹ËÁع¢Í§à«Íà âÇÁÍàµÍà ¨ÐÊÒÁÒö㪠§Ò¹¡Ñºà«Íà âÇÁÍàµÍà Ẻ Áҵðҹ (ËÁØ¹ä´ 120 ¶Ö§ 180 ͧÈÒ) ·ÕÂè §Ñ äÁ Á¡Õ ÒûÃѺᵠ§ãË ËÁØ¹ä´ 360 ͧÈÒ
ÃٻẺ
void servo(unsigned char _ch,unsigned int _pos)
¾ÒÃÒÁÔàµÍÃ
_ch 㪠àÅ×Í¡ª ͧ¢Í§à«Íà âÇÁÍàµÍà ¡íÒ˹´à» ¹ 0 àÁ×Íè µ Í㪠§Ò¹à«Íà âÇÁÍàµÍà ªÍ § 0 ¡íÒ˹´à» ¹ 1 àÁ×Íè µ Í㪠§Ò¹à«Íà âÇÁÍàµÍà ªÍ § 1 ¡íÒ˹´à» ¹ 2 àÁ×Íè µ Í㪠§Ò¹à«Íà âÇÁÍàµÍà ªÍ § 2 ¡íÒ˹´à» ¹ 3 àÁ×Íè µ Í㪠§Ò¹à«Íà âÇÁÍàµÍà ªÍ § 3 ¡íÒ˹´à» ¹ 4 àÁ×Íè µ Í㪠§Ò¹à«Íà âÇÁÍàµÍà ªÍ § 4 _pos 㪠¡Òí ˹´µíÒá˹ §¢Í§à«Íà âÇÁÍàµÍà â´ÂÊ Ç¹ãË Á¤Õ Ò ã¹ª ǧ 20 ¶Ö§ 90 â´Â¼Ù¾ ² Ñ ¹Ò¨íÒà» ¹µ ͧ à¢Õ¹â»Ãá¡ÃÁ·´Êͺ»ÃѺ¤ ÒµíÒá˹ §ãË àËÁÒÐÊÁ¡Ñº¡ÒÃ㪠§Ò¹ÊíÒËÃѺà«Íà âÇÁÍàµÍà ã¹áµ ÅÐÃع ËÃ×͵ Ò§¼Ù¼ ÅÔµ¡Ñ¹ä»
4.8.2. ¿ §¡ ª¹Ñè servo_stop 㪠ÊíÒËÃѺËÂØ´¢Ñºà«Íà âÇÁÍàµÍà ·Ø¡ª ͧ¾Ã ÍÁ¡Ñ¹
ÃٻẺ
void servo_stop()
82 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
4.8.3. ¿ §¡ ª¹Ñè servo_pause 㪠ÊíÒËÃѺËÂØ´¡ÒâѺà«Íà âÇÁÍàµÍà 㹪 ͧ·Õè¡íÒ˹´
ÃٻẺ
void servo_pause(char _ch)
¾ÒÃÒÁÔàµÍÃ
_ch 㪠àÅ×Í¡ª ͧ¢Í§à«Íà âÇÁÍàµÍà ÁÕ¤Ò 0 ¶Ö§ 4
4.8.4. ¿ §¡ ª¹Ñè servo_resume à» ¹¿ §¡ ª¹Ñè ¢Ñºà«Íà âÇÁÍàµÍà 㹪 ͧ·Õ¡è Òí ˹´ à¾×Íè ¢Ñºá¡¹ËÁعãË ·Òí §Ò¹µ ͨҡ¡Ò÷íÒ§Ò¹¡ ͹˹ Ò¹Õé ·Õäè ´ ÃºÑ ¼Å¢Í§¿ §¡ ª¹Ñè servo_pause
ÃٻẺ
void servo_resume(char _ch)
¾ÒÃÒÁÔàµÍÃ
_ch 㪠àÅ×Í¡ª ͧ¢Í§à«Íà âÇÁÍàµÍà ÁÕ¤Ò 0 ¶Ö§ 4
4.8.4. ¿ §¡ ª¹Ñè servo_get_status à» ¹¿ §¡ ªÑè¹Í ҹʶҹСÒÃ㪠§Ò¹¢Í§à«Íà âÇÁÍàµÍà 㹪 ͧ·Õè¡íÒ˹´
ÃٻẺ
unsigned char servo_get_status(char _ch)
¾ÒÃÒÁÔàµÍÃ
_ch 㪠àÅ×Í¡ª ͧ¢Í§à«Íà âÇÁÍàµÍà ÁÕ¤Ò 0 ¶Ö§ 4
¡Òä׹¤ Ò ËÃ×ÍàºÃ¡ä´ )
- ¤×¹¤ Òà» ¹ 1 àÁ×Íè à«Íà âÇÁÍàµÍà 㹪 ͧ·Õµè Í §¡ÒõԴµ ÍÍÂÙ㠹ʶҹР¶Ù¡ãª §Ò¹ (ÊÒÁÒöºÑ§¤Ñºá¡¹
- ¤×¹¤ Òà» ¹ 0 àÁ×Íè à«Íà âÇÁÍàµÍà 㹪 ͧ·Õµè Í §¡ÒõԴµ ÍÍÂÙ㠹ʶҹРäÁ ä´ ¶¡Ù 㪠§Ò¹ (᡹ËÁع໠¹ÍÔÊÃÐ)
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
83
º··Õè 5 ¢Ñºà¤Å×Íè ¹Ëع ¹µ IPST-BOT µÑÇÍ ҧ¢Í§Ëع ¹µ IPST-BOT ·ÕÊè à ҧ¢Ö¹é 㹺··Õè 2 àÅ×͡㪠ÁÍàµÍà 俵ç໠¹ÍØ»¡Ã³ ËÅѡ㹡ÒâѺ à¤Å×Íè ¹ â´ÂÁÍàµÍà 俵ç·íҧҹà ÇÁ¡ÑºªØ´à¿ ͧà¾×Íè ·´ÃͺáÅÐà¾ÔÁè áçºÔ´ ·íÒãË ÊÒÁÒö¢Ñºà¤Å×Íè ¹Ëع ¹µ ãË à¤Å×Íè ¹·Õäè ´ 㹺·¹Õàé » ¹¡ÒùíÒàʹÍÃÒÂÅÐàÍÕ´áÅеÑÇÍ ҧ¡Ô¨¡ÃÃÁ¡Ò÷´ÅͧÃÇÁ¶Ö§â»Ãá¡ÃÁÀÒÉÒ C ·Õãè ª ã¹ ¡ÒäǺ¤ØÁãË Ë¹Ø Â¹µ IPST-BOT ÊÒÁÒöà¤Å×Íè ¹·Õãè ¹áºº¾×¹é °Ò¹ä´
5.1 ¡ÒèѴ¡ÒäǺ¤ØÁÁÍàµÍà 俵ç¢Í§Ëع ¹µ IPST-BOT ã¹Ëع ¹µ IPST-BOT 㪠ἧǧ¨Ã Display-MOTOR à» ¹ÍØ»¡Ã³ ËÅѡ㹡ÒèѴ¡ÒþÅѧ§Ò¹áÅÐàª×Íè Áµ Í ¢Ò¾Íà µ PD2 ¶Ö§ PD7 ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ¨Ò¡á¼§Ç§¨ÃËÅÑ¡ MicroBOX ÁÒÂѧǧ¨Ã¢ÑºÁÍàµÍà 俵ç 2 ª ͧ¤×Í ª ͧ M1 áÅÐ M2 â´Â ÊíÒËÃѺÁÍàµÍà ªÍ § 1 (M1) - µ Í¢Ò¾Íà µ PD2 ¢Í§á¼§Ç§¨ÃËÅѡࢠҡѺÍÔ¹¾Øµ 1A ¢Í§Ç§¨Ã¢ÑºÁÍàµÍà - µ Í¢Ò¾Íà µ PD3 ¢Í§á¼§Ç§¨ÃËÅѡࢠҡѺ¨Ø´µ Í 1B ¢Í§Ç§¨Ã¢ÑºÁÍàµÍà - µ Í¢Ò¾Íà µ PD4 ¢Í§á¼§Ç§¨ÃËÅѡࢠҡѺ¨Ø´µ Í 1E ¢Í§Ç§¨Ã¢ÑºÁÍàµÍà ÊíÒËÃѺÁÍàµÍà ªÍ § 2 - µ Í¢Ò¾Íà µ PD7 ¢Í§á¼§Ç§¨ÃËÅѡࢠҡѺ¨Ø´µ Í 2A ¢Í§Ç§¨Ã¢ÑºÁÍàµÍà - µ Í¢Ò¾Íà µ PD6 ¢Í§á¼§Ç§¨ÃËÅѡࢠҡѺ¨Ø´µ Í 2B ¢Í§Ç§¨Ã¢ÑºÁÍàµÍà - µ Í¢Ò¾Íà µ PD5 ¢Í§á¼§Ç§¨ÃËÅѡࢠҡѺ¨Ø´µ Í 2E ¢Í§Ç§¨Ã¢ÑºÁÍàµÍà áç´Ñ¹ä¿àÅÕÂé §ÁÍàµÍà 俵ç («Ö§è ã¹·Õ¹è ¤Õé Í× ªØ´à¿ ͧ¢ÑºÁÍàµÍà ) ä´ ÁҨҡẵàµÍÃÕ·è µÕè Í à¢ Ò¡Ñº¨Ø´µ Í DC. input â´ÂÃдѺä¿àÅÕ駷Õè㪠§Ò¹ä´ ¤×Í 4.8 ¶Ö§ 12V áÅФÇÃÁÕ¤ÇÒÁÊÒÁÒö㹡Òè Ò¡ÃÐáÊä¿¿ ÒäÁ ¹ ÍÂ¡Ç Ò 1800mAH ÊíÒËÃѺã¹Ëع ¹µ IPST-BOT àÅ×͡㪠ä¿àÅÕÂé §¨Ò¡áºµàµÍÃÕè AA ¨íҹǹ 5 ¡ ͹ ·íÒãË ä´ áç´Ñ¹ä¿ àÅÕé§ÁÍàµÍà 俵çã¹Â Ò¹ +6 ¶Ö§ +7.5V ¢Öé¹ÍÂÙ ¡Ñºª¹Ô´¢Í§áºµàµÍÃÕè (ẵàµÍÃÕèẺ»ÃШØÁÕáç´Ñ¹ 1 à«Åà· Ò ¡Ñº 1.2V Ê Ç¹áººÍÑŤÒäŹ ÁáÕ Ã§´Ñ¹ 1.5V) º¹á¼§Ç§¨Ã Display-MOTOR ÂѧÁÕǧ¨ÃµÃǨÊͺÃдѺä¿àÅÕÂé §á¨ §¼Å¡Ò÷íÒ§Ò¹´ Ç LED 5 ´Ç§ ËÒ¡ LED ÊÕᴧ㹵íÒá˹ §¢ÇÒÊØ´µÔ´¡Ð¾ÃÔº¨Ðà» ¹¡ÒÃᨠ§àµ×Í¹Ç Ò ¢³Ð¹Õäé ¿àÅÕÂé §ÁÕ¤Ò ÊÙ§¶Ö§ 7.5V ËÃ×ÍÁÒ¡¡Ç Ò ËÒ¡ ¹íÒà«Íà âÇÁÍàµÍà ÁÒµ Í㪠§Ò¹¨Ö§µ ͧÃÐÁÑ´ÃÐÇѧ㹨ش¹Õ´é Ç Â áµ ÊÒí ËÃѺªØ´à¿ ͧ¢ÑºÁÍàµÍà ÊÒÁÒÃ¶ãª ä´ Í ҧäÁ ÁÕ» ËÒ
84 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
5.3 ¡ÒáíÒ˹´µíÒá˹ §¢Í§ÁÍàµÍà ÊÒí ËÃѺËع ¹µ IPST-BOT àÁ×èÍ·íÒ¡ÒûÃСͺâ¤Ã§Êà ҧ¢Í§µÑÇËØ ¹Â¹µ IPST-BOT à» ¹·ÕèàÃÕºà ÍÂáÅ Ç ã¹ÅíҴѺµ Í仨ÐࢠÒÊÙ ¡Ãкǹ¡ÒûÃѺᵠ§à¾×èÍ·´Êͺ¡Ò÷íÒ§Ò¹¾×é¹°Ò¹¢Í§ËØ ¹Â¹µ ÊíÒËÃѺËع ¹µ IPST-BOT 㪠ÁÍàµÍà 俵ç¾Ã ÍÁªØ´à¿ ͧ¢Ñº 2 ªØ´ã¹¡ÒâѺà¤Å×Íè ¹ â´Â¡íÒ˹´ãË ÁÍàµÍà ªÍ § M1 ¢ÑºÅ Í« Ò ÁÍàµÍà ªÍ § M2 ¢ÑºÅ Í¢ÇÒ ´Ñ§áÊ´§¡ÒáíÒ˹´µíÒá˹ §¢Í§ÁÍàµÍà áÅЊͧ͢Ëع ¹µ µÒÁÃÙ»·Õè 5-1
·ÔÈ·Ò§´ ҹ˹ ҢͧËØ ¹Â¹µ IPST-BOT
PORTC
PA6
IPST MicroBOX PA0
I P S T - B O T o ro b o t ATMEGA16
PA2
PA1
Over 7.5V
++ Vin -
PA3
SDA RS-232 LOW BATT.
Vm OUT
PA7
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
DC INPUT
DC input
OFF
ON
ON
SCL KNOB PA7
ªØ´à¿ ͧÁÍàµÍà áÅÐÅ Í« Ò µ ÍࢠҷÕè¨Ø´µ Í M1
M2 M1
PD7
PD1
PD6
PD0
PD5
TxD
PD4
RxD
MOTOR OUTPUT PD3
* * * *! *"
PD2
SW3
DisplayMotor
PB2
PB4
SW2
+ -
PB0
PB3
SW1
S
PB1
RESET
SERVO
--- -- - - - --- --- --
ªØ´à¿ ͧÁÍàµÍà áÅЊ͢ÇÒ µ ÍࢠҷÕè¨Ø´µ Í M2
ÃÙ»·Õè 5-1 áÊ´§¡ÒáíÒ˹´µíÒá˹ §¢Í§ÁÍàµÍà 俵çáÅЊͧ͢Ëع ¹µ IPST-BOT
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
85
¡Ò÷´Åͧ·Õè 1 ·´Êͺ¡ÒâѺáÅзÔÈ·Ò§¡ÒÃËÁع¢Í§ªØ´à¿ ͧ ¢ÑºÁÍàµÍà 俵ç ¡Ò÷´Åͧ¹Õàé » ¹¡ÒÃà¢Õ¹â»Ãá¡ÃÁà¾×Íè ·´Êͺ¡Ò÷íÒ§Ò¹¢Í§Ç§¨Ã¢ÑºÁÍàµÍà 俵ç¢Í§Ëع ¹µ IPSTBOT ·Ñ§é ã¹´ Ò¹¢ÑÇé ¢Í§áç´Ñ¹·Õ¨è Ò Âä»ÂѧÁÍàµÍà áÅзÔÈ·Ò§¡ÒÃËÁع ·Ñ§é ¹Õàé ¾×Íè ãË Ë¹Ø Â¹µ ÊÒÁÒöà¤Å×Íè ¹·Õäè »ã¹ ·ÔÈ·Ò§·Õµè Í §¡ÒÃÍ ҧ¶Ù¡µ ͧ 㹡Ò÷´ÊͺãË µÍ ªØ´à¿ ͧ¢ÑºÁÍàµÍà ÊͧµÑÇࢠҡѺª ͧ M1 áÅÐ M2 áŠǶʹ Å ÍÊÒ¾ҹ¢Í§Ëع ¹µ ÍÍ¡ à¹×Íè §¨Ò¡µ ͧ¡ÒõÃǨÊͺ·ÔÈ·Ò§¡ÒÃËÁع¢Í§Å Í෠ҹѹé ÂѧäÁ µÍ §¡ÒÃãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õè
¡ÒÃàª×Íè Áµ Í·Ò§ÎÒà ´áÇà µ ͪش࿠ͧÁÍàµÍà 俵çࢠҡѺ¨Ø´µ Í M1 áÅÐ M2 ¢Í§á¼§Ç§¨Ã Display-MOTOR â´ÂÁÍàµÍà ·µÕè Í ¡Ñº¨Ø´ M1 à» ¹ÁÍàµÍà ·Ò§« Ò áÅÐÁÍàµÍà ·µÕè Í ¡Ñº¨Ø´ M2 à» ¹ÁÍàµÍà ·Ò§¢ÇÒ l
¢Ñ鹵͹¡Ò÷´Åͧ L1.1 Êà ҧä¿Å â»Ãà¨ç¡µ ªÍ×è motor_test áÅоÔÁ¾ â»Ãá¡ÃÁÀÒÉÒ C µÒÁâ»Ãá¡ÃÁ·Õè L1-1 L1.2 ¤ÍÁä¾Å ãË ä´ ä¿Å ¼ÅÅѾ¸ ¹ÒÁÊ¡ØÅ .hex áŠǹíÒä»´Òǹ âËŴŧÊÙá ¼§Ç§¨Ã¤Çº¤ØÁËÅÑ¡¢Í§Ëع ¹µ ´Ñ§ÃÙ»·Õè L1-1 L1.3 » ´ä¿àÅÕÂé § »Å´ªØ´â»Ãá¡ÃÁ¢ ÍÁÙÅÍÍ¡¨Ò¡Ëع ¹µ ¨Ò¡¹Ñ¹é à» ´ä¿àÅÕÂé §ÍÕ¡¤Ãѧé à¾×Íè àµÃÕÂÁ·´Êͺ¡Ò÷íÒ§Ò¹ L1.5 µ ÍÁÍàµÍà ´Ò ¹« ÒÂࢠҡѺàÍÒµ ¾µØ M1 áÅ ÇÃѹâ»Ãá¡ÃÁ´ Ç¡Òá´ÊÇÔµª RESET ã¹¢³Ð·Õâè »Ãá¡ÃÁ¡íÒÅѧ·íÒ§Ò¹ÍÂÙ¹ ¹Ñé ãË Ê§Ñ à¡µÇ ÒÁÍàµÍà ÅÍ « ÒÂËÁع仴 ҹ˹ ÒËÃ×ÍäÁ ¶ Ò㪠áÊ´§ Ç Ò¼Ù¾ ² Ñ ¹Òä´ µÍ ÊÒÂÊÑÒ³µÃ§¡Ñº¢ÑÇé ·Õ¡è Òí ˹´äÇ àÃÕºà ÍÂáÅ Ç ¶ ÒËÒ¡ÁÍàµÍà ËÁع¶ÍÂËÅѧãË ·Òí ¡ÒáÅѺ¢ÑÇé µ ͧ͢ÊÒÂÊÑÒ³ÁÍàµÍà Êѧࡵ¼ÅÅѾ¸ «§Öè ¼ÅÅѾ¸ ·äÕè ´ ¤ÇèзíÒãË ÁÍàµÍà ËÁع仢 ҧ˹ Ò L1.6 µ ÍÁÍàµÍà ´Ò ¹¢ÇÒࢠҡѺàÍÒµ ¾µØ M2 Êѧࡵ¡Ò÷íÒ§Ò¹¢Í§ÁÍàµÍà ËÒ¡¡Òõ Í¢ÑÇé ¢Í§ÁÍàµÍà ¶¡Ù µ ͧ ÁÍàµÍà ´Ò ¹¢ÇÒµ ͧËÁعä»ã¹·ÔÈ·Ò§´ ҹ˹ Ò ÊÑ§à¡µä´ ¨Ò¡ LED áÊ´§¢ÑÇé ¢Í§áç¡Ñ¹àÍÒµ ¾µØ à» ¹ÊÕà¢ÕÂÇ ËÒ¡¾ºÇ Ò ÁÍàµÍà ËÁع¶ÍÂËÅѧ ãË ¡ÅѺ¢ÑÇé µ ͧ͢ÊÒÂÊÑÒ³ÁÍàµÍà àËÁ×͹¡Ñºã¹¢Ñ¹é µÍ¹ L1.5 àÁ×Íè ä´ ¼ÅµÃ§µÒÁ¹Õãé Ë ¤§¡Òõ Í¢ÑÇé ¢Í§ÊÒÂÁÍàµÍà äÇ áºº¹Õé
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
PA7
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA6
IPST MicroBOX PA4
PA5
KNOB PA7
DC INPUT
PA0
I P S T - B O T o ro b o t ATMEGA16
PA2
PA1
Over 7.5V
++ Vin -
PA3
SDA RS-232 LOW BATT.
Vm OUT
ON
SCL
DC input
OFF
ON
PORTC
86 l
M2 M1
PD7 PD6
PD1
PD5
PD0
PD4
TxD
PD3
RxD
MOTOR OUTPUT
PD2
* * * *! *"
DisplayMotor
PB2
PB4
SW3
+ -
PB0
PB3
SW2
S
PB1
RESET
SW1
SERVO
-- - - -- - - -- -- - -- -
PX-4000
µ ͡Ѻ¾Íà µ USB ¢Í§¤ÍÁ¾ÔÇàµÍÃ
ÃÙ»·Õè L1-1 ¡ÒÃàª×Íè Áµ ͪشâ»Ãá¡ÃÁã¹áººµ Ò§æ à¾×Íè ´Òǹ âËÅ´â»Ãá¡ÃÁä»ÂѧËع ¹µ IPST-BOT
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
87
#include <motor.h> void main() { motor(1,80); motor(2,80); } ¤íÒ͸ԺÒÂâ»Ãá¡ÃÁ â»Ãá¡ÃÁÊÑ§è ¢ÑºÁÍàµÍà ªÍ § 1 áÅÐ 2 ´ Ç¡íÒÅѧ +80% ¢Í§¡íÒÅѧ¢ÑºÊÙ§ÊØ´ LED ËÃ×Íä¿áÊ´§Ê¶Ò¹Ð¡Òà ·íÒ§Ò¹¢Í§Ç§¨Ã¢ÑºÁÍàµÍà º¹á¼§Ç§¨Ã Display-MOTOR ¨ÐµÔ´ÊÇ Ò§à» ¹ÊÕà¢ÕÂÇ (㹡óշ¢Õè ºÑ ´ Ç¡íÒÅѧ¤ Òà» ¹Åº LED ¨ÐµÔ´ÊÇ Ò§à» ¹ÊÕá´§) â´Â·ÑÇè ä»à¾×Íè ãË à¢ Òã¨ä´ §Ò  ä¿áÊ´§¼Å¢Í§Ç§¨Ã¢ÑºÁÍàµÍà ᵠÅЪ ͧ¤ÇèÐÊÍ´¤Å ͧ¡Ñº·ÔÈ·Ò§¡ÒÃà¤Å×Íè ¹·Õ¢è ͧ Ëع ¹µ ¹Ñ¹è ¤×Í - Ëҡǧ¨Ã¢ÑºÁÍàµÍà ¶¡Ù ¢Ñº´ Ç¡íÒÅѧ俿 Òà» ¹¤ Һǡ ÁÍàµÍà ·µÕè Í ¡ÑºàÍÒµ ¾µØ ¢Í§Ç§¨Ã¢ÑºÁÍàµÍà ªÍ § ¹Ñ¹é æ ¤ÇèÐËÁعà¾×Íè ¢Ñºà¤Å×Íè ¹Ëع ¹µ 仢 ҧ˹ Ò ä¿áÊ´§Ê¶Ò¹Ðµ ͧµÔ´ÊÇ Ò§à» ¹ÊÕà¢ÕÂÇ - ã¹·Ò§¡ÅѺ¡Ñ¹ ¶ Òǧ¨Ã¢ÑºÁÍàµÍà ¶¡Ù ¢Ñº´ Ç¡íÒÅѧ俿 Òà» ¹¤ Òź ÁÍàµÍà ·µÕè Í ÍÂÙ¤ ÇèÐËÁعà¾×Íè ¢Ñº à¤Å×Íè ¹Ëع ¹µ ¶ÍÂËÅѧ áÅÐä¿áÊ´§Ê¶Ò¹Ðª ͧ´Ñ§¡Å Òǵ ͧµÔ´ÊÇ Ò§à» ¹ÊÕá´§
â»Ãá¡ÃÁ·Õè L1-1 ä¿Å motor_test.c â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ·´Êͺ¡ÒâѺÁÍàµÍà 俵ç¢Í§ Ëع ¹µ IPST-BOT
PORTC
PA6
IPST MicroBOX PA1
PA0
PB1
PB0
PB3
PB2
I P S T - B O T o ro b o t - - - - - - - - -- - - - - - -
M2 M1
PD7
MOTOR OUTPUT
PD6
SERVO
PD1
PD5
TxD
PD0
PD3
* * * *! *"
RxD
PD4
SW3
PD2
SW2
+ -
SW1
S
PB4
RESET
DisplayMotor
ATMEGA16
PA2
Vm OUT
PA7
PA3
Over 7.5V
++ Vin -
PA4
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA5
DC INPUT
SDA RS-232 LOW BATT.
DC input
OFF
ON
ON
SCL KNOB PA7
88 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
5.4 motor.h ä¿Å äźÃÒÃÕÊÒí ËÃѺ¤Çº¤ØÁ¡ÒâѺÁÍàµÍà 俵ç à» ¹äźÃÒÃÕºÃèت´Ø ¤íÒÊѧè à¡ÕÂè ǡѺ¡ÒäǺ¤ØÁÁÍàµÍà 俵ç â´Â·íҧҹà ÇÁ¡ÑºÇ§¨Ã¢ÑºÁÍàµÍà 俵纹ἧ ǧ¨Ã Display-MOTOR ¡ ͹㪠§Ò¹¿ §¡ ª¹Ñè ã¹äźÃÒÃÕ¡ÅØÁ ¹Õ¤é Çü¹Ç¡äźÃÒÃÕ㹵͹µ ¹¢Í§â»Ãá¡ÃÁ´ ǤíÒÊѧè
#include <motor.h>
5.4.1 ¿ §¡ ª¹Ñè motor
à» ¹¿ §¡ ªÑè¹ÊíÒËÃѺ¢ÑºÁÍàµÍà 俵ç
ÃٻẺ¿ §¡ ª¹Ñè
void motor(char _channel,int _power)
¾ÒÃÒÁÔàµÍÃ
_channel 㪠àÅ×Í¡ª ͧ¢Í§Ç§¨Ã¢ÑºÁÍàµÍà ·µÕè Í §¡ÒÃ㪠§Ò¹ _power 㪠¡Òí ˹´¡íÒÅѧ¢Ñº¢Í§Ç§¨Ã¢ÑºÁÍàµÍà ÁÕ¤Ò ÍÂÙã ¹ª ǧ -100 ¶Ö§ 100 ¶ Ò¡íÒ˹´¤ Ò _power ãË Á¤Õ Ò à» ¹ºÇ¡ (1 ¶Ö§ 100) ¨Ð·íÒãË ÁÍàµÍà ËÁعä»ã¹·Ôȷҧ˹֧è áµ ¶Ò ¡íÒ˹´¤ Ò _power ãË Á¤Õ Ò à» ¹Åº (-1 ¶Ö§ -100) ¨Ð·íÒãË ÁÍàµÍà ËÁعä»ã¹·ÔÈ·Ò§µÃ§¢ ÒÁ Ê Ç¹ã¹¡Ã³Õ¡Òí ˹´¤ Ò _power à» ¹ 0 ÁÍàµÍà ¨ÐËÂØ´ËÁع ᡹ËÁع¢Í§ÁÍàµÍà ໠¹ÍÔÊÃÐ (¶ ÒËÒ¡ µ ͧ¡Òúѧ¤ÑºËÃ×ÍàºÃ¡¤ÇÃàÃÕ¡㪠¿§ ¡ ª¹Ñè motor_stop ¨Ð·íÒ§Ò¹ä´ ÊÁºÙó ÁÒ¡¡Ç Ò) µÑÇÍ ҧ·Õè 5-1 motor(1,60); // ¢ÑºÁÍàµÍà ªÍ § 1 ´ Ç¡íÒÅѧ 60% ¢Í§¡íÒÅѧÊÙ§ÊØ´ ................ motor(1,-60); // ¢ÑºÁÍàµÍà ªÍ § 1 ´ Ç¡íÒÅѧ 60% ¢Í§¡íÒÅѧÊÙ§ÊØ´ ãË ËÁع㹷ÔÈ·Ò§µÃ§¢ ÒÁ motor(2,100); // ¢ÑºÁÍàµÍà ªÍ § 2 ´ Ç¡íÒÅѧ 100% (àµçÁ¾Ô¡´Ñ )
5.4.2 ¿ §¡ ª¹Ñè motor_stop
à» ¹¿ §¡ ªÑè¹ÊíÒËÃѺºÑ§¤Ñºá¡¹ËÁعËÃ×ÍàºÃ¡ÁÍàµÍÃ
ÃٻẺ¿ §¡ ª¹Ñè
void motor_stop(char _channel)
¾ÒÃÒÁÔàµÍÃ
_channel 㪠àÅ×͡ǧ¨Ã¢ÑºÁÍàµÍà ·µÕè Í §¡ÒÃàºÃ¡ÁÍàµÍà - 1 ¤×Í àÅ×Í¡àºÃ¡ÁÍàµÍà ·ªÕè Í §·Õè 1 - 2 ¤×Í àÅ×Í¡àºÃ¡ÁÍàµÍà ·ªÕè Í §·Õè 2 - ALL ¤×Í àÅ×Í¡àºÃ¡ÁÍàµÍà ·§Ñé Êͧª ͧ µÑÇÍ ҧ·Õè 5-2 motor_stop(1); // àºÃ¡ÁÍàµÍà ªÍ § 1 motor_stop(2); // àºÃ¡ÁÍàµÍà ªÍ § 2 motor_stop(ALL); // àºÃ¡ÁÍàµÍà ·§Ñé 2 ª ͧ (·Ñ§é ª ͧ 1 áÅÐ 2)
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
89
5.5 Êà ҧ¿ §¡ ª¹Ñè ¡ÒâѺà¤Å×Íè ¹Ëع ¹µ ¾¹×é °Ò¹ Ëع ¹µ IPST-BOT 㪠ÁÍàµÍà 俵ç㹡ÒâѺà¤Å×Íè ¹â´Â¡íÒ˹´ãË ª´Ø ࿠ͧ¢ÑºÁÍàµÍà ´Ò ¹« Òµ ÍࢠҡѺ àÍÒµ ¾µØ ¢Í§Ç§¨Ã¢ÑºÁÍàµÍà ªÍ § M1 Ê Ç¹ªØ´à¿ ͧ¢ÑºÁÍàµÍà ´Ò ¹¢ÇÒµ ͡ѺàÍÒµ ¾µØ ª ͧ M2 ´ Ò¹¡ÒÃà¢Õ¹â»Ãá¡ÃÁ ¤Çº¤ØÁ¡ÒÃà¤Å×Íè ¹·Õ¢è ͧËع ¹µ IPST-BOT ÊÒÁÒö¡ÃзíÒä´ ´Ç ¡ÒÃÊà ҧ¿ §¡ ª¹Ñè ¢Í§â»Ãá¡ÃÁÀÒÉÒ C ã¹·Õ¹è ÕéÁÕ 5 ÃٻẺ¾×¹é °Ò¹ »ÃСͺ´ Ç ¡ÒäǺ¤ØÁãË à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò, ¶ÍÂËÅѧµÃ§, àÅÕÂé Ç« ÒÂ, àÅÕÂé Ç¢ÇÒ áÅÐËÂØ´ 㹡ÒÃÊà ҧ¿ §¡ ªÑ蹤Ǻ¤ØÁ¡ÒÃà¤Å×è͹·Õè¹Õé¨Ð㪠¿ §¡ ªÑè¹¾×鹰ҹ㹡ÒäǺ¤ØÁÁÍàµÍà ¨Ò¡ä¿Å äźÃÒÃÕ motor.h áÅп §¡ ª¹Ñè ¡ÒÃ˹ ǧàÇÅÒ¨Ò¡äźÃÒÃÕ sleep.h ÁÒà ÇÁ¡Ñ¹Êà ҧ໠¹¿ §¡ ª¹Ñè ´Ñ§¹Õé
5.5.1 ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ ãË à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò Ëع ¹µ IPST-BOT ÊÒÁÒöà¤Å×Íè ¹·Õäè »¢ ҧ˹ Òä´ àÁ×Íè ªØ´à¿ Í§¢ÑºÁÍàµÍà ·§Ñé ¤Ù¶ ¡Ù ¢Ñºä»¢ ҧ˹ Ò Ë¹ Ò·Õè ¢Í§¿ §¡ ª¹Ñè ¹Õ¤é Í× ¤Çº¤ØÁãË ÁÍàµÍà ¢Í§Ëع ¹µ ËÁعä»ã¹·ÔÈ·Ò§·Õ·è Òí ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õäè »¢ ҧ˹ Ò ÊíÒËÃѺª×Íè ¢Í§ ¿ §¡ ª¹Ñè ¹Õ¤é Í× forward ÁÕ¾ÒÃÒÁÔàµÍà delay ÊíÒËÃѺÃѺ¤ ÒàÇÅÒ·Õµè Í §¡ÒáíÒ˹´ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò㹠˹ ÇÂÇÔ¹Ò·Õ µÑÇÍ ҧ¡ÒÃ㪠§Ò¹¿ §¡ ª¹Ñè forward ÁÕ´§Ñ ¹Õé #define POW 70 void forward(unsigned int delay) { motor(1,POW); // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع仢 ҧ˹ Ò´ Ç¡íÒÅѧÃдѺ 70 motor(2,POW); // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع仢 ҧ˹ Ò´ Ç¡íÒÅѧÃдѺ 70 sleep(delay); // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç }
PORTC
PA6
IPST MicroBOX PA1
PA0
PB1
PB0
PB3
PB2
I P S T - B O T o ro b o t --- --- -- --- --- --
M2
PD7
M1
PD5
PD1
PD6
PD0
MOTOR OUTPUT PD3
TxD
PD4
* * * *! *"
RxD
PD2
SW3
DisplayMotor
SW2
+ -
SW1
S
PB4
RESET
SERVO
ATMEGA16
PA2
Over 7.5V
++ Vin -
PA3
RS-232 LOW BATT.
Vm OUT
PA7
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
DC INPUT
SDA
DC input
OFF
ON
ON
SCL KNOB PA7
90 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
5.5.2 ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ ¶ÍÂËÅѧµÃ§ Ëع ¹µ IPST-BOT ÊÒÁÒöà¤Å×Íè ¹·Õ¶è ÍÂËÅѧµÃ§ä´ àÁ×Íè ªØ´à¿ Í§¢ÑºÁÍàµÍà ·§Ñé ¤Ù¶ ¡Ù ¢Ñºä»¢ Ò§ËÅѧ ˹ Ò ·Õ¢è ͧ¿ §¡ ª¹Ñè ¹Õ¤é Í× ¤Çº¤ØÁãË ÁÍàµÍà ¢Í§Ëع ¹µ ËÁعä»ã¹·ÔÈ·Ò§·Õ·è Òí ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¶è ÍÂËÅѧ ÊíÒËÃѺª×Íè ¢Í§¿ §¡ ª¹Ñè ¹Õ¤é Í× backward ÁÕ¾ÒÃÒÁÔàµÍà delay ÊíÒËÃѺÃѺ¤ ÒàÇÅÒ·Õµè Í §¡ÒáíÒ˹´ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¶è ÍÂËÅѧ µÃ§ã¹Ë¹ ÇÂÇÔ¹Ò·Õ µÑÇÍ ҧ¡ÒÃ㪠§Ò¹¿ §¡ ª¹Ñè backward ÁÕ´§Ñ ¹Õé #define POW 70 void backward(unsigned int delay) { motor(1,-POW); // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع¶ÍÂËÅѧ´ Ç¡íÒÅѧÃдѺ 70 motor(2,-POW); // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع¶ÍÂËÅѧ´ Ç¡íÒÅѧÃдѺ 70 sleep(delay); // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ ¶ÍÂËÅѧ }
PORTC
PA6
IPST MicroBOX PA0
PB1
PB0
PB3
PB2
I P S T - B O T o ro b o t - - -- - - -- -- -- - - --
M2
PD7
M1
PD5
PD1
PD6
TxD
PD0
PD3
RxD
MOTOR OUTPUT
PD4
* * * *! *"
PD2
SW3
DisplayMotor
SW2
+ -
SW1
S
PB4
RESET
SERVO
ATMEGA16
PA1
Over 7.5V
++ Vin -
PA3
PA2
RS-232 LOW BATT.
Vm OUT
PA7
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
DC INPUT
SDA
DC input
OFF
ON
ON
SCL KNOB PA7
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
91
5.5.3 ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç« Ò Ëع ¹µ IPST-BOT ÊÒÁÒöàÅÕÂé Ç« ÒÂä´ àÁ×Íè ÁÍàµÍà «Ò ÂËÁع¶ÍÂËÅѧ Ê Ç¹ÁÍàµÍà ¢ÇÒËÁع仢 ҧ˹ Ò µÑ§é ª×Íè ¿ §¡ ª¹Ñè ¹ÕÇé Ò turn_left ÁÕ¾ÒÃÒÁÔàµÍà delay ÊíÒËÃѺ¡íÒ˹´¤ ÒàÇÅÒ·Õµè Í §¡ÒÃãË Ë¹Ø Â¹µ àÅÕÂé Ç« Ò µÑÇÍ ҧ¡ÒÃ㪠§Ò¹¿ §¡ ª¹Ñè turn_left ÁÕ´§Ñ ¹Õé #define POW 70 void turn_left(unsigned int delay) { motor(1,-POW); // ÁÍàµÍà 1 (Å Í« ÒÂ) ËÁع¶ÍÂËÅѧ motor(2,POW); // ÁÍàµÍà 2 (Š͢ÇÒ) ËÁع仢 ҧ˹ Ò sleep(delay); // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç« Ò }
Vm
-
5V 7.
ON DC INPUT
Over - 7.5V
t
2
o
IPST MicroBOX
7 PD
7 PA
PA 1
PB
RxD 1 SW
0 2
1
PB
PB
T PD0
PB
SE RE
2 SWTxD
PD1
Rx
D
4 PD
3 PD
MOTOR1 OUTPUT PD
0 PD
M2
3 W
* * * *!S*"
M1
SW3
DisplayMotor S
SW2
SERVO
VO ER
D
2 PD
la isp
-
yM
+
SW1
+ -
0
6 PA
O ST oB IP icr M PB4
RESET
S
PA
A2 PB0 P PB2 4 3 PA PA PB1 PB3 5 PA
M AT
S
6 A1 EG
OB KN A7 P
or ot
5 PD
r
1
PA6 C RT PO
PA0
PA1
UT b TP OU OR T T O M O -I P S T - BB O T- o ro b o t - - - S- T- - --- - - - - - - - - P B4 B3 I -B2 D B1 Tx B0
o
M
o
+
PA2
PA3
32 SDA -2 RS-232 R S T. A T LOW BATT. SD BA W O L
M
PA7 L SC
6 PD
PORTC
KNOB PA7
PA4
PA5
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 DD PC7 GGNN+5V 00 PPCC CC11 PP CC22 PP 33 PPCC CC44 PP CC55 PP CC66 PP CC77 PP 55VV ++
er Ov
Vm OUT
ON DC
SCL
n Vi ++
OU
T
F OF
DC ut p in
ON
T PU IN
3 PB 4
X
92 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
5.5.4 ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç¢ÇÒ Ëع ¹µ IPST-BOT ÊÒÁÒöàÅÕÂé Ç¢ÇÒä´ àÁ×Íè ÁÍàµÍà «Ò ÂËÁع仢 ҧ˹ Ò Ê Ç¹ÁÍàµÍà ¢ÇÒËÁع¶ÍÂËÅѧ µÑ§é ª×Íè ¿ §¡ ª¹Ñè ¹ÕÇé Ò turn_right ÁÕ¾ÒÃÒÁÔàµÍà delay ÊíÒËÃѺ¡íÒ˹´¤ ÒàÇÅÒ·Õµè Í §¡ÒÃãË Ë¹Ø Â¹µ àÅÕÂé Ç¢ÇÒ µÑÇÍ ҧ¡ÒÃ㪠§Ò¹¿ §¡ ª¹Ñè turn_right ÁÕ´§Ñ ¹Õé #define POW 70 void turn_left(unsigned int delay) { motor(1,POW); // ÁÍàµÍà 1 ËÁع仢 ҧ˹ Ò motor(2,-POW); // ÁÍàµÍà 2 ËÁع¶ÍÂËÅѧ sleep(delay); // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç¢ÇÒ }
P PA7
PA6
P A0
IPST MicroBOX 0
I
P
S
PPOO RRTT CC
DC INPUT Over 7.5V
+
G P ND PC C0 P 1 P C2 P C3 P C4 PC C5 GND P 6 +5 C7 PC0 V PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V
PB
-
EG A1 6
ON
T DC - T - BB O T o r o b o t INPU IPS O SW T ON 1 T Ov - - - - -- - - o- - - - - - -er - SW 7. 2 r 5V o SW 3 b o t MOTOR OUTPUT B0 B1 Rx B2 D * * * *! *" SW1 SW2 B3 SW3 B4 Tx PD RESET D 0
PA0
OF F
OU
PB3
PB2
Vm
PB0
M2
2
M
PD 6
PU T
1
PD 4
UT
M1
OR
PD1 O
PD 7
PD 5
TxD
OT
M
ot or PD 3
yM
M
PD0
PD 2
Di sp la
RxD
-
-
PD 1
+ +Vin
+ -
+
PB4
DisplayMotor
S
S
SERVO
SE
RV O
PB1
in DC pu t
T
AT M
PA1
SC L RS-232 LOW BATT. S LO DA W BA R S TT -2 . 32
SDA
Vm OUT
2
PORTC
PA
1
ON
SCL
KNOB PA7
PA2 PB 2
4
T
PPAA 66
A4
P PA
PA4 PB 1
PB
PA5 PB PA3 3
RE SE
PPAA 77
X 5
I M PST ic ro BO
PA A3
KN PA OB 7
5.5.5 ¿ §¡ ª¹Ñè ËÂØ´Ëع ¹µ à¡Ô´¨Ò¡¡ÒÃ·Õªè ´Ø à¿ Í§¢ÑºÁÍàµÍà ·§Ñé ÊͧµÑǢͧËع ¹µ IPST-BOT ¶Ù¡ËÂØ´¢ÑºÊÑÒ³ µÑ§é ª×Íè ¿ §¡ ª¹Ñè Ç Ò pause µÑÇÍ ҧ¡ÒÃ㪠§Ò¹¿ §¡ ª¹Ñè pause ÁÕ´§Ñ ¹Õé void pause() { motor_stop(1); // ËÂØ´¢ÑºÁÍàµÍà 1 motor_stop(2); // ËÂØ´¢ÑºÁÍàµÍà 2 }
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
93
¡Ò÷´Åͧ·Õè 2 ·´Êͺ¢Ñºà¤Å×Íè ¹Ëع ¹µ IPST-BOT Ẻ¾×¹é °Ò¹ 㹡Ò÷´Åͧ¹Õàé » ¹¡Ò÷´Êͺ¤Çº¤ØÁãË Ë¹Ø Â¹µ IPST-BOT à¤Å×Íè ¹·Õáè ºº¾×¹é °Ò¹ â´Â¡íÒ˹´ãË à¤Å×Íè ¹·Õè 仢 ҧ˹ Òà» ¹àÇÅÒ 2 ÇÔ¹Ò·Õ áÅ ÇàÅÕÂé Ç« ÒÂà»ÅÕÂè ¹·Ôȷҧ໠¹àÇÅÒ 0.5 ÇÔ¹Ò·ÕÊÅѺä»ÁÒ
¢Ñ鹵͹¡Ò÷´Åͧ L2.1 Êà ҧä¿Å â»Ãà¨ç¡µ ªÍ×è robo_basic áÅоÔÁ¾ â»Ãá¡ÃÁÀÒÉÒ C µÒÁâ»Ãá¡ÃÁ·Õè L2-1 L2.2 ¤ÍÁä¾Å áÅдÒǹ âËÅ´â»Ãá¡ÃÁà¾×Íè ·´Êͺ¼ÅÅѾ¸ ¡Ò÷íÒ§Ò¹ L2.3 àÃÔÁè µ ¹Ãѹâ»Ãá¡ÃÁ ·Õâè Á´ÙÅ LCD ¢Í§Ëع ¹µ áÊ´§¢ ͤÇÒÁ Press SW1 à¾×Íè ᨠ§ãË ¡´ÊÇÔµª SW1 ·Õáè ¼§Ç§¨Ã Display-MOTOR º¹Ëع ¹µ IPST-BOT à¾×Íè Êѧè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õè L2.4 ¡´ÊÇÔµª SW1 ·ÕËè ¹Ø Â¹µ IPST-BOT Êѧࡵ¡Ò÷íÒ§Ò¹¢Í§Ëع ¹µ Ëع ¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò»ÃÐÁÒ³ 2 ÇÔ¹Ò·Õ ¨Ò¡¹Ñ¹é àÅÕÂé Ç« ÒÂà¾×Íè à»ÅÕÂè ¹·ÔÈ·Ò§¡ÒÃà¤Å×Íè ¹·Õ»è ÃÐÁÒ³ 0.5 ÇÔ¹Ò·Õ áÅ Ç¡ÅѺÁÒà¤Å×Íè ¹·Õµè ç ÊÅѺä»ÁÒઠ¹¹ÕÍé  ҧµ Íà¹×Íè § #include <motor.h> #include <sleep.h> #include <in_out.h> #include <lcd.h> #define POW 70 void forward(unsigned int delay) { motor(1,POW); motor(2,POW); sleep(delay); } void turn_left(unsigned int delay) { motor(1,-POW); motor(2,POW); sleep(delay); }
// àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè motor // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sleep // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sw1_press // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè lcd // ¡íÒ˹´¡íÒÅѧ¢Ñº¢Í§ÁÍàµÍà ¤§·Õ·è Õè 70% ¢Í§¡íÒÅѧ¢ÑºÊÙ§ÊØ´ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò // ÁÍàµÍà 1 ËÁع仢 ҧ˹ Ò // ÁÍàµÍà 2 ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç« Ò // ÁÍàµÍà 1 ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç« ÒÂ
â»Ãá¡ÃÁ·Õè L2-1 ä¿Å robo_basic.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ¤Çº¤ØÁãË Ë¹Ø Â¹µ IPST-BOT à¤Å×Íè ¹·Õè Ẻ¾×¹é °Ò¹ (ÁÕµÍ )
94 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
void main() { lcd( Press SW1 ); // áÊ´§¢ ͤÇÒÁᨠ§ãË ¡´ÊÇÔµª SW1 sw1_press(); // Ãͨ¹¡Ãзѧè ÊÇÔµª SW1 ¶Ù¡¡´ while(1) // ǹ·íÒ§Ò¹äÁ è٠º { forward(2000); // Ëع ¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò 2 ÇÔ¹Ò·Õ turn_left(500); // Ëع ¹µ àÅÕÂé Ç« ÒÂà» ¹àÇÅÒ 0.5 ÇÔ¹Ò·Õ } } ¤íÒ͸ԺÒÂâ»Ãá¡ÃÁ àÁ×Íè àÃÔÁè ·íÒ§Ò¹ â»Ãá¡ÃÁ¨ÐáÊ´§¢ ͤÇÒÁ·Õâè Á´ÙÅ LCD à» ¹ Press SW1 à¾×Íè ÃÍ¡Òá´ÊÇÔµª SW1 «Ö§è µ Íà¹×Íè § ÁÒ¨Ò¡ºÃ÷Ѵ¤íÒÊѧè sw1_press àÁ×Íè ÁÕ¡Òá´ÊÇÔµª SW1 â»Ãá¡ÃÁ¨Ö§¨Ð¡ÃзíÒ¤íÒÊѧè 㹺Ã÷Ѵ¶Ñ´ä»«Ö§è ¡ç¤Í× ¡ÒÃࢠÒä» ·íÒ§Ò¹ÀÒÂã¹ÅÙ» while(1){} «Ö§è ¡íÒ˹´ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò 2 ÇÔ¹Ò·ÕáÅ ÇàÅÕÂé Ç« ÒÂà¾×Íè à»ÅÕÂè ¹·ÔÈ·Ò§ª ǧ Êѹé æ à» ¹àÇÅÒ 0.5 ÇÔ¹Ò·Õ â»Ãá¡ÃÁ¨Ðǹ¡ÃзíÒ 2 ºÃ÷Ѵ¤íÒÊÑ§è ¹ÕÍé  ҧµ Íà¹×Íè § ´Ñ§¹Ñ¹é ¨ÐÊѧࡵàËç¹Ëع ¹µ à¤Å×Íè ¹·Õãè ¹ ·Ôȷҧǹ·Ç¹à¢çÁ¹ÒÌ ¡Ò ¤íÒ͸ԺÒÂà¾ÔÁè àµÔÁ ¡ÒáíÒ˹´¡íÒÅѧ¢ÑºÁÍàµÍà ÀÒÂã¹â»Ãá¡ÃÁ¹Õ¨é СÃзíÒ¼ Ò¹¡ÒáíÒ˹´¤ Òä»ÂѧµÑÇá»Ã POW 㹵͹µ ¹¢Í§ â»Ãá¡ÃÁ·ÕèºÃ÷Ѵ¤íÒÊÑè§ #define POW 70 ´Ñ§¹Ñ¹é 㹡Ò÷íÒ§Ò¹¢Í§¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ ´Ç ÂÁÍàµÍà ·§Ñé 2 ª ͧ¨Ð㪠ÃдѺ¡íÒÅѧ¢Ñº·Õè 70% ¢Í§¡íÒÅѧ ÊÙ§ÊØ´ 㹡óշµÕè Í §¡ÒÃà»ÅÕÂè ¹á»Å§¤ Ò¡íÒÅѧ¢Ñº·íÒä´ §Ò Âæ ´ Ç¡ÒÃᡠ䢤 ÒµÑÇàÅ¢·Õºè Ã÷Ѵ¤íÒÊÑ§è ´Ñ§¡Å ÒÇ «Ö§è ¨ÐÊ § ¼Åà»ÅÕÂè ¹á»Å§ä»Âѧ¤ ҢͧµÑÇá»Ã POW ·Ø¡¨Ø´ÀÒÂã¹â»Ãá¡ÃÁ
â»Ãá¡ÃÁ·Õè L2-1 ä¿Å robo_basic.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ¤Çº¤ØÁãË Ë¹Ø Â¹µ IPST-BOT à¤Å×Íè ¹·Õè Ẻ¾×¹é °Ò¹ (¨º)
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
95
º··Õè 6
IPST-BOT ¡Ñº¡ÒÃËźËÅÕ¡ ÊÔ觡մ¢ÇҧẺÊÑÁ¼ÑÊ ¡ÒÃàÃÕ¹ÃÙã ¹ÅíҴѺµ ÍÁÒËÅѧ¨Ò¡ÊÒÁÒö¢Ñºà¤Å×Íè ¹Ëع ¹µ ä´ ¤Í× ¡ÒÃÍ Ò¹¤ Ò¨Ò¡µÑǵÃǨ¨Ñºà¾×Íè ¹íÒÁÒ¡íÒ˹´ à» ¹à§×Íè ¹ä¢ã¹¡ÒÃà¤Å×Íè ¹·Õè µÑǵÃǨ¨Ñº¾×¹é °Ò¹·ÕÊè ´Ø ·ÕÊè ÒÁÒö·íÒ˹ Ò·Õ¹è ¤Õé Í× ÊÇÔµª (switch) 㹺·¹Õ¨é СŠÒǶ֧ ¡ÒûÃÐÂØ¡µ 㪠§Ò¹á¼§Ç§¨ÃÊÇÔµª ÃÇ Á¡ÑºËع ¹µ IPST-BOT à¾×Íè ¹íÒÁÒ㪠µÃǨ¨Ñº¡Òê¹ ·íÒãË Ë¹Ø Â¹µ ÃºÑ ÃÙä ´ ÇÒ à¤Å×Íè ¹·Õäè »¾ºÊÔ§è ¡Õ´¢ÇÒ§ ¨Ò¡¹Ñ¹é »ÃÐÁÇżÅà¾×Íè ¡íÒ˹´¡ÒÃà¤Å×Íè ¹·Õãè Ë ÊÒÁÒöà¤Å×Íè ¹·Õ¾è ¹ ÊÔ§è ¡Õ´¢ÇÒ§ä»ä´ ÍØ»¡Ã³ ÊÒí ¤Ñ·Õãè ª 㹡ÒÃàÃÕ¹ÃÙ¹ ¤Õé Í× á¼§Ç§¨ÃÊÇÔµª ÁÕǧ¨ÃáÅСÒ÷íÒ§Ò¹áÊ´§ã¹ÃÙ»·Õè 6-1 ¨Ø´µ Í·Õãè ª à» ¹ ËÅѡ㹡ÒÃàÃÕ¹ÃÙã ¹·Õ¹è ¤Õé Í× ¨Ø´µ ÍàÍÒµ ¾µØ LOW ¹Ñ¹è ¤×ÍàÁ×Íè ÊÇÔµª ¶¡Ù ¡´«Ö§è à·ÕÂºä´ ¡ºÑ ¡Ò깡ѺÊÔ§è ¡Õ´¢ÇÒ§ ÊÑÒ³ Åͨԡ·Õàè ÍÒµ ¾µØ ¨Ðà»ÅÕÂè ¹¨Ò¡Åͨԡ 1 à» ¹ 0 ¨¹¡Ç ҨлŠÍÂËÃ×ÍäÁ à¡Ô´¡Òê¹ ÊÑÒ³àÍÒµ ¾µØ ¨Ðà»ÅÕÂè ¹¡ÅѺ ä»à» ¹ 1 ÍÕ¡¤Ãѧé àÃÒÊÒÁÒö¹íҤسÊÁºÑµ¡Ô Ò÷íÒ§Ò¹¢Í§µÑǵÃǨ¨Ñºáºº¹Õé ÁÒ¡íÒ˹´à§×Íè ¹ä¢ã¹¡ÒÃà¤Å×Íè ¹·Õãè Ë ¡ºÑ Ëع ¹µ IPST-BOT â´ÂãË µ´Ô µÑ§é ÊÇÔµª ࢠҷմè Ò ¹Ë¹ ҢͧËع ¹µ àÁ×Íè Ëع ¹µ à¤Å×Íè ¹·Õäè »ª¹¡ÑºÊÔ§è ¡Õ´¢ÇÒ§ ¨Ð·íÒãË ÊÇÔµª ¶¡Ù ¡´ µÑǤǺ¤ØÁÃѺÃÙ¡ ÒÃà»ÅÕÂè ¹á»Å§¢Í§ÍÔ¹¾Øµ·Õµè Í ¡ÑºÊÇÔµª áÅ Ç·íÒ¡ÒäǺ¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¶è ÍÂËÅѧ µ Í´ Ç¡Òà à»ÅÕÂè ¹·ÔÈ·Ò§¡ÒÃà¤Å×Íè ¹·Õè à¾Õ§෠ҹÕËé ¹Ø Â¹µ ¡¨ç ÐÊÒÁÒöà¤Å×Íè ¹·Õ¼è Ò ¹ÊÔ§è ¡Õ´¢ÇÒ§ä»ä´ ZX-SWITCH
LOW
àÁ×Íè ¡´à» ¹Åͨԡ 1 áÅÐáÊ´§ä¿à» ¹ÊÕá´§
510
10k
5
LOW
5
HIGH
+
àÁ×Íè ¡´à» ¹Åͨԡ 0 áÅÐáÊ´§ä¿à» ¹ÊÕà¢ÕÂÇ
HIGH
SWITCH
,
+
,
4 /
Bi-color LED
·Õªè Í § HIGH ¶ Ò¡´ÊÇÔµª ¨ÐÊ §Åͨԡ 1 ÍÍ¡ä»·Õàè ÍÒµ ¾µØ ä¿ÊÕá´§µÔ´ ·Õªè Í § LOW ¶ Ò¡´ÊÇÔµª ¨ÐÊ §Åͨԡ 0 ÍÍ¡ä»·Õàè ÍÒµ ¾µØ ä¿ÊÕà¢ÕÂǵԴ ¶ ÒäÁ Á¡Õ Òá´ LED ´Ñº Åͨԡ·Õäè ´ ¡¨ç Ðä´ ¼Å¡ÅѺ¡Ñ¹
ÃÙ»·Õè 6-1 ǧ¨ÃáÅСÒ÷íÒ§Ò¹¢Í§á¼§Ç§¨ÃÊÇÔµª ·ãÕè ª 㹪شËع ¹µ IPST-BOT
96 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡Ò÷´Åͧ·Õè 3 µÃǨ¨Ñº¡Òê¹´ ÇÂÊÇÔµª 1 µÑÇ ¡Ò÷´Åͧ¹Õàé » ¹¡ÒÃà¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C à¾×Íè Í Ò¹¤ ÒʶҹСÒ÷íÒ§Ò¹¢Í§á¼§Ç§¨ÃÊÇÔµª «§Öè µ ͡Ѻ ¢Ò¾Íà µ PA0 ¢Í§Ëع ¹µ IPST-BOT ÁÒáÊ´§¼Å·Õâè Á´ÙÅ LCD
¡ÒÃàª×Íè Áµ Í·Ò§ÎÒà ´áÇà (µ Íà¾ÔÁè àµÔÁãË á¡ Ë¹Ø Â¹µ IPST-BOT) µ ÍÊÒ¨ҡ¾Íà µ PA0 ࢠҡѺª ͧ LOW ¢Í§á¼§Ç§¨ÃÊÇÔµª µÔ´µÑ§é ´ ҹ˹ ҵç¡ÅÒ§¢Í§Ëع ¹µ IPST-BOT µÒÁÃÙ»
l
ἧǧ¨ÃÊÇÔµª ª ͧ LOW ·ÔÈ·Ò§´ ҹ˹ Ңͧ ËØ ¹Â¹µ IPST-BOT
PORTC
PA7
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA6
IPST MicroBOX PA4
PA5
DC INPUT
PA0
I P S T - B O T o ro b o t ATMEGA16
PA2
PA1
Over 7.5V
++ Vin -
PA3
SDA RS-232 LOW BATT.
DC input
OFF
ON
ON
SCL KNOB PA7
Vm OUT
µ Íä»Âѧ¨Ø´µ Í PA0
ªØ´à¿ ͧÁÍàµÍà áÅÐÅ Í« Ò µ ÍࢠҷÕè¨Ø´µ Í M1
M2
PD7 PD6
M1
PD5
PD1
PD4
TxD
PD0
PD3
RxD
MOTOR OUTPUT
PD2
B0 B1 B2 B3 B4
DisplayMotor
PB2
PB4
SW3
+ -
PB0
PB3
SW2
S
PB1
RESET
SW1
SERVO
- - - -- - -- --- - -- - -
ªØ´à¿ ͧÁÍàµÍà áÅЊ͢ÇÒ µ ÍࢠҷÕè¨Ø´µ Í M2
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
97
#include <sleep.h> // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sleep #include <in_out.h> // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè in_a #include <lcd.h> // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè lcd void main() { while(1) // ÅٻǹÃͺäÁ è٠º { lcd( Switch1: %d ,in_a(0)); // Í Ò¹¤ ÒʶҹÐÊÇÔµª ·¾Õè Íà µ PA0 ÁÒáÊ´§¼Å·Õâè Á´ÙÅ LCD sleep(10); // ˹ ǧàÇÅÒ } } ¤íÒ͸ԺÒÂâ»Ãá¡ÃÁ â»Ãá¡ÃÁ¨Ð·íÒ§Ò¹ÀÒÂã¹ÅÙ» while(1){} â´ÂÀÒÂ㹨Ðà» ¹¡ÒÃÇ¹Í Ò¹¤ ÒʶҹÐÍÔ¹¾Øµ¢Í§á¼§Ç§¨ÃÊÇÔµª ·Õµè Í à¢ Ò¡Ñº¾Íà µ PA0 ¢Ö¹é ÁÒáÊ´§¼Å·Õâè Á´ÙÅ LCD¹Ñ¹è ¤×ÍàÁ×Íè ἧǧ¨ÃÊÇÔµª ¶¡Ù ¡´¨ÐãË ¤Ò ¼ÅÅѾ¸ à» ¹ 0 ¹Ñ¹è àͧ ËÁÒÂàËµØ ã¹¡Ã³Õ·¼Õè ¾Ù ² Ñ ¹ÒàÅ×Í¡µ Í㪠§Ò¹á¼§Ç§¨ÃÊÇÔµª ¨Ò¡ª ͧàÍÒµ ¾µØ HIGH ¨ÐãË ¼ÅÅѾ¸ µÃ§¢ ÒÁ¡Ñºª ͧ LOW ¡Å ÒǤ×Í ¨ÐÍ Ò¹¤ Òä´ à» ¹ 0 àÁ×Íè äÁ Á¡Õ Òá´ÊÇÔµª áÅÐÍ Ò¹¤ Òä´ à» ¹ 1 àÁ×Íè ÁÕ¡Òá´ÊÇÔµª
â»Ãá¡ÃÁ·Õè L3-1 ä¿Å switch1_test.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃÑºÍ Ò¹¤ Ңͧἧǧ¨ÃÊÇÔµª ¢Í§ Ëع ¹µ IPST-BOT
¢Ñ¹é µÍ¹¡Ò÷´Åͧ L3.1 Êà ҧä¿Å â»Ãà¨ç¡µ ªÍ×è switch1_test áÅоÔÁ¾ â»Ãá¡ÃÁÀÒÉÒ C µÒÁâ»Ãá¡ÃÁ·Õè L3-1 L3.2 ¤ÍÁä¾Å áÅдÒǹ âËÅ´â»Ãá¡ÃÁà¾×Íè ·´Êͺ¼ÅÅѾ¸ ¡Ò÷íÒ§Ò¹ L3.3 àÃÔÁè µ ¹Ãѹâ»Ãá¡ÃÁ ·Õâè Á´ÙÅ LCD ¢Í§Ëع ¹µ áÊ´§¢ ͤÇÒÁ Switch:
x
â´Â·Õè x ¤×ͤ Ò¢ ÍÁÙÅ·ÕÍè Ò ¹ä´ ¨Ò¡Ê¶Ò¹Ð¢Í§á¼§Ç§¨ÃÊÇÔµª L3.4 ¡´ÊÇÔµª ¤Ò §äÇ ¼ÅÅѾ¸ ·¤Õè Ò x ¨Ò¡¢ Í L3.3 ÁÕ¤Ò à» ¹ 0 áÅÐàÁ×Íè »Å ÍÂÊÇÔµª ¤ Ңͧ X ¨Ð¡ÅѺÁÒà» ¹ 1 ÍÕ¡¤Ãѧé
PORTC
PA7
PA6
PA2
PA1
PA0
I P S T - B O T o ro b o t ATMEGA16
PA3
Vm OUT
IPST MicroBOX PA4
Over 7.5V
++ Vin -
PA5
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
DC INPUT
SDA RS-232 LOW BATT.
DC input
ON
OFF
ON
SCL KNOB PA7
M2 M1
PD7
MOTOR OUTPUT
PD6
SERVO
PD1
PD5
TxD
PD0
PD3
* * * *! *"
RxD
PD4
SW3
PD2
PB4
SW2
+ -
PB3
PB2 SW1
S
PB1
PB0
RESET
DisplayMotor
- - - - - - - - -- - - - - - -
98 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡Ò÷´Åͧ·Õè 4 Ëع ¹µ ËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§ 㹡Ò÷´Åͧ¹Õéà» ¹¡ÒÃà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËØ ¹Â¹µ ãË ÊÒÁÒöµÃǨ¨ÑºÊÔ觡մ¢ÇÒ§´ Ç¡Òê¹ áÅ Ç à¤Å×Íè ¹·Õàè »ÅÕÂè ¹·ÔÈ·Ò§à¾×Íè ËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§ â´Â㪠µÇÑ µÃǨ¨Ñº¡Òê¹ËÃ×Íἧǧ¨ÃÊÇÔµª 1 µÑÇ«Ö§è µÔ´µÑ§é äÇ ´Ò ¹ ˹ ҢͧËع ¹µ â´ÂÁÕà§×Íè ¹ä¢¡Ò÷íÒ§Ò¹´Ñ§¹Õé 1. 㹡óշËÕè ¹Ø Â¹µ äÁ ¾º¡Òê¹ Ëع ¹µ ¨Ðà¤Å×Íè ¹·Õµè ç仢 ҧ˹ ÒÍ ҧµ Íà¹ÕÍè § 2. 㹡óշËÕè ¹Ø Â¹µ à¡Ô´¡Òê¹ ¨ÐÁÕ¡ÒâѺàÊÕ§àµ×͹ÍÍ¡ÁÒ 1 ¤ÃÑ§é ¨Ò¡¹Ñ¹é à¤Å×Íè ¹·Õ¶è ÍÂËÅѧ áÅ Çà»ÅÕÂè ¹·ÔÈ·Ò§¡ÒÃà¤Å×Íè ¹·ÕÁè Ò·Ò§« Ò áÅ Çà¤Å×Íè ¹·Õµè çµ Íä»à¾×Íè ËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§
¡ÒÃàª×Íè Áµ Í·Ò§ÎÒà ´áÇà (µ Íà¾ÔÁè àµÔÁãË á¡ Ë¹Ø Â¹µ IPST-BOT) µ ÍÊÒ¨ҡ¾Íà µ PA0 ࢠҡѺª ͧ LOW ¢Í§á¼§Ç§¨ÃÊÇÔµª µÔ´µÑ§é ´ ҹ˹ Ò (¨Ò¡¡Ò÷´Åͧ·Õè 3) l µ ÍÊÒ¨ҡ¾Íà µ PB4 ࢠҡѺἧǧ¨ÃÅíÒ⾧໠Ââ« l
ἧǧ¨ÃÊÇÔµª ª ͧ LOW ·ÔÈ·Ò§´ ҹ˹ Ңͧ ËØ ¹Â¹µ IPST-BOT
µ Íä»Âѧ¨Ø´µ Í PA0
PORTC
DC INPUT
SDA
PA6
IPST MicroBOX PA1
PA0
PB1
PB0
PB3
PB2
I P S T - B O T o ro b o t -- - -- - - - -- - - - - - -
ªØ´à¿ ͧÁÍàµÍà áÅÐÅ Í« Ò µ ÍࢠҷÕè¨Ø´µ Í M1
M2
PD7
M1
PD5
PD6
PD1
PD3
TxD
PD0
PD4
RxD
MOTOR OUTPUT
PD2
* * * *! *"
DisplayMotor
SW3
-
SW2
+
SW1
S
PB4
RESET
SERVO
ATMEGA16
PA2
Over 7.5V
++ Vin -
PA3
RS-232 LOW BATT.
Vm OUT
PA7
KNOB PA7
DC input
OFF
ON
ON
SCL GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
µ Íä»Âѧ¨Ø´µ Í PB4
ἧǧ¨Ã ÅíÒ⾧໠Ââ«
ªØ´à¿ ͧÁÍàµÍà áÅЊ͢ÇÒ µ ÍࢠҷÕè¨Ø´µ Í M2
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
¹íÒªÔ¹é µ ÍÁØÁ©Ò¡µÔ´µÑ§é ࢠҡѺἧǧ¨ÃÊÇÔµª â´Â 㪠ʡÃÙ 3x10 ÁÁ. áÅй͵ 3 ÁÁ.
99
µÔ´µÑ§é ࢠҡѺËع ¹µ IPST-BOT ·Õ´è Ò ¹Ë¹ Òâ´Â 㪠ʡÃÙ 3x10 ÁÁ. áÅй͵ 3 ÁÁ.
¢Ñ¹é µÍ¹¡Ò÷´Åͧ L4.1 Êà ҧä¿Å â»Ãà¨ç¡µ ªÍ×è robo_bumper1 áÅоÔÁ¾ â»Ãá¡ÃÁÀÒÉÒ C µÒÁâ»Ãá¡ÃÁ·Õè L4-1 L4.2 ¤ÍÁä¾Å áÅдÒǹ âËÅ´â»Ãá¡ÃÁà¾×Íè ·´Êͺ¼ÅÅѾ¸ ¡Ò÷íÒ§Ò¹ L4.3 àÃÔÁè µ ¹Ãѹâ»Ãá¡ÃÁ ·Õâè Á´ÙÅ LCD ¢Í§Ëع ¹µ áÊ´§¢ ͤÇÒÁ Press
SW1
à¾×Íè ᨠ§àµ×͹ãË ãË ¼ãÙ ª §Ò¹¡´ÊÇÔµª SW1 ·ÕËè ¹Ø Â¹µ L4.4 ¡´ÊÇÔµª SW1 ·ÕËè ¹Ø Â¹µ Ëع ¹µ ¨Ðà¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò ËÒ¡ª¹ÊÔ§è ¡Õ´¢ÇÒ§ Ëع ¹µ ¨Ðà¤Å×Íè ¹·Õ¶è ÍÂËÅѧ áÅ Çà»ÅÕÂè ¹·ÔÈ·Ò§ ä»·Ò§« Ò ¨Ò¡¹Ñ¹é ¨Ðà¤Å×Íè ¹·Õµè çµ Íä» ÊÔ觡մ¢ÇÒ§
DC INPUT
IPST MicroBOX
ON PU IN
r 7. 5V
DC
Ove
UT TP OU
2
Vm OUT
R
TO MO
T o r - - ob o t -
O
-
SC L
A
BA RSTT. 23
SD
LO W
-B
-
B3
B2
B1
B0
PD 1
RxD PD 0
M2
SW 2
MOTOR OUTPUT
M1
3
SW 1
T
DisplayMotor SW
SE
PB 4
Tx D
B4
-
-
T
S
-
P
-
SERVO
TxD
PD1
RE
PD7 PD6
M2
PD5 PD4
M1
PD3 PD2
-
KN PA OB 7
I
M2
Vm OUT
M1
SERVO ATMEGA16
SERVO
DisplayMotor
M2 M1
DisplayMotor
SERVO
DisplayMotor
M2
PD7
PD5
PD3
Vm OUT
M1
PD4
PD2
PD6
DisplayMotor
SERVO
PA6
IPST MicroBOX
Vm OUT
PA7
M2
PORTC
PD7
IPST MicroBOX
PD5
PA6
M1
MEG A1 6
PA7
PD3
AT
SE RVO
PORTC
PD6
IPST MicroBOX
PD4
PA6
PD2
r
IPST MicroBOX PORTC
DisplayMotor
pla yM oto PD 3
* * * *! *"
RxD
PB 2 PD0 PB 3
Dis
PA6
PA7
PA6
IPST MicroBOX
ATMEGA16
PD 5
SW3
PB 0 PB 1
PD 2
PA7 SW2
PD 4
PA7
SERVO
PORTC
SW1
A1
PD 7
S
M2
PB4
RESET P
+ -
PA 0
PA 3
S
MOTOR OUTPUT
PA 2
PB2
PD1
PB3
TxD
PD0
ON
PD 6
PA PA 66
PA0
PA1
* * * *! *"
RxD
Over 7.5V
+
PA PA 77
I M PST PB0 ic ro BO X PB1
PA2
PA3
SW3
+ -
SW2
S
SW1
-
DC INPUT
I P S T - B O T o ro b o t+ - - - - - - - - -- - - - - - -
PA 4
RESET
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V
PA4
PA5
++ Vin -
I P S T - B O T o ro b o t - - - - - - - - -- - - - - - -
G SCL PC ND PC 0 PC 1 KNOB PC 2 PA7 PC 3 SDA PC 4 RS-232 PC 5 LOW BATT. PC 6 +5V 7 PO PO RRTC TC
DC input
+ -
ON
OFF
S
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
MOTOR OUTPUT
PB4
PD1
PB2
TxD
PD0
Over 7.5V
PA 5
PB3
* * * *! *"
RxD
RS-232 LOW BATT. PD0 PD1
DC INPUT
PB0
SW3
TxD
ON
PB1
SW2
RxD SDA
MOTOR OUTPUT
PA0
SW1
+ -
RESET
KNOB PA7
SCL * * * *! *"
SW3
PA1
I P S T - B O T o ro b o t - - - - - - - - -- - - - - - -
SW2
PA2
Over 7.5V
RESET
SW1
PA3
RS-232 LOW BATT. PD0 PD1
DC INPUT
ON
PA4
TxD
S
MOTOR OUTPUT
PB4
PD1
RxD SDA
MOTOR OUTPUT
PB4 PA5
KNOB PA7
PB2
TxD
PD0
PB3
* * * *! *"
RxD
SCL * * * *! *"
+
PB0
SW3
SW3
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V
PB1
SW2
+ -
PB4
SW1
S
PB2
PB3
RESET
SW2
+ -
RESET
SW1
S
PA0
PB0
PA1
PB1
PA3
PA0
I P S T - B O T o ro b o t - - - - - - - - -- - - - - - -
PA2
PA1
Over 7.5V
++ Vin -
PA3
PA2
RS-232 LOW BATT.
PA4
DC INPUT
SDA
PB4 PA5
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
KNOB PA7
DC input
ON
OFF
ON
SCL
+V + in
T
ON
M1
PORTC ATMEGA16
inpDC ut
OFF
OU T
PB2
I P S T - B O T o ro b o t - - - - - - - - -- - - - - - -
Vm
PB3
Over 7.5V
+
PB0
SDA RS-232 LOW BATT.
Vm OUT
PA6
Vm OUT
ON
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V
PB1
PB2
PA0
PB3
PA1
PB0
PA2
PB1
PA3
PA0
I P S T - B O T o ro b o t - - - - - - - - -- - - - - - -
ÊÔ觡մ¢ÇÒ§
SCL KNOB PA7
PA4
PA1
++ Vin -
PA3
PA2
Over 7.5V
PA5
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
DC INPUT
SDA RS-232 LOW BATT.
DC input
OFF
ON
ON
SCL KNOB PA7
PA7
ÊÔ觡մ¢ÇÒ§
PORTC
ÊÔ觡մ¢ÇÒ§
100 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
#include <motor.h> #include <sleep.h> #include <in_out.h> #include <lcd.h> #include <sound.h> #define POW 70 void forward(unsigned int delay) { motor(1,POW); motor(2,POW); sleep(delay); } void backward(unsigned int delay) { motor(1,-POW); motor(2,-POW); sleep(delay); } void turn_left(unsigned int delay) { motor(1,-POW); motor(2,POW); sleep(delay); } void main() { char mid; lcd( Press SW1 ); sw1_press(); while(1) { mid = in_a(0); if(mid==0)
// àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè motor // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sleep // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sw1_press áÅÐ in_a // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè lcd // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè beep_b // ¡íÒ˹´¡íÒÅѧ¢Ñº¢Í§ÁÍàµÍà ·Õè 70 % ¢Í§¡íÒÅѧ¢ÑºÊÙ§ÊØ´ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ à´Ô¹Ë¹ ҵç // ÁÍàµÍà 1 ËÁع仢 ҧ˹ Ò // ÁÍàµÍà 2 ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ ¶ÍÂËÅѧµÃ§ // ÁÍàµÍà 1 ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 ËÁع¶ÍÂËÅѧ // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ ¶ÍÂËÅѧµÃ§ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç« Ò // ÁÍàµÍà 1 ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç« ÒÂ
// ¡íÒ˹´µÑÇá»Ãà¡çº¤ ÒʶҹСÒ깢ͧἧǧ¨ÃÊÇÔµª // áÊ´§¢ ͤÇÒÁᨠ§¼Ùã ª §Ò¹ãË ¡´ÊÇÔµª SW1 // Ãͨ¹¡Ãзѧè ÊÇÔµª SW1 ¶Ù¡¡´ // ÅٻǹÃͺäÁ è٠º // Í Ò¹¤ ÒʶҹСÒá´ÊÇÔµª ÁÒà¡çº·Õµè ÇÑ á»Ã mid // µÃǨÊ꼂 Òἧǧ¨ÃÊÇÔµª ¶¡Ù ¡´ãª ËÃ×ÍäÁ
â»Ãá¡ÃÁ·Õè L4-1 ä¿Å servo_robo_bumper1.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺËع ¹µ IPST-BOT à¤Å×Íè ¹·Õè µÃǨ¨ÑºáÅÐËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§´ ǵÑǵÃǨ¨Ñº¡Òê¹µÑÇà´ÕÂÇ (ÁÕµÍ )
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
{
}
beep_b(4); backward(1000); turn_left(800);
} else { forward(10); }
101
// ¶ ÒÊÇÔµª ¶¡Ù ¡´ ·íÒ¡ÒáíÒà¹Ô´àÊÕ§ 1 ¤Ãѧé // ¶ÍÂËÅѧµÃ§»ÃÐÁÒ³ 1 ÇÔ¹Ò·Õ // àÅÕÂé Ç« Ò 0.8 ÇÔ¹Ò·Õà¾×Íè à»ÅÕÂè ¹·ÔÈ·Ò§¡ÒÃà¤Å×Íè ¹·Õè
// Ëع ¹µ à¤Å×Íè ¹·Õäè »¢ ҧ˹ Òà» ¹ª ǧàÇÅÒÊѹé æ à¾Õ§ 0.01 ÇÔ¹Ò·Õ
} ¤íÒ͸ԺÒÂâ»Ãá¡ÃÁ àÁ×Íè â»Ãá¡ÃÁàÃÔÁè ·íÒ§Ò¹ ¨ÐÁÕ¡ÒÃáÊ´§¢ ͤÇÒÁ·Õâè Á´ÙÅ LCD à» ¹ Press SW1 à¾×Íè ÃÍ¡Òá´ÊÇÔµª SW1 ´ Ç¡Ò÷íÒ§Ò¹¢Í§¿ §¡ ª¹Ñè sw1_press àÁ×Íè ÁÕ¡Òá´ÊÇÔµª SW1 â»Ãá¡ÃÁ¨Ö§ÊÒÁÒö¡ÃзíÒ¤íÒÊѧè 㹺Ã÷Ѵ¶Ñ´ä» ä´ «Ö§è ¡ç¤Í× à¢ Òä»·íÒ§Ò¹ÀÒÂã¹ÅÙ» while(1){} Íѹ໠¹¡ÒÃÇ¹Í Ò¹¤ ÒʶҹÐÍÔ¹¾Øµ·Õ¾è Íà µ PA0 «Ö§è µ ͡Ѻἧǧ¨Ã ÊÇÔµª ÁÒà¡çº·Õµè ÇÑ á»Ã mid ¹Ñ¹è ¤×Í àÁ×Íè ἧǧ¨ÃÊÇÔµª ¶¡Ù ¡´¨ÐãË ¤Ò ¼ÅÅѾ¸ à» ¹ 0 ¨Ò¡¹Ñ¹é â»Ãá¡ÃÁ¨Ð¹íÒ¤ Ңͧ µÑÇá»Ãä»à»ÃÕºà·ÕºµÒÁ¡Ã³Õ´Ñ§¹Õé l ¡Ã³Õ if(mid==0) à» ¹¡ÒõÃǨÊÍºÇ Ò á¼§Ç§¨ÃÊÇÔµª ¶¡ Ù ¡´ËÃ×ÍäÁ «Ö§è ¶ Òà» ¹¨ÃÔ§ ¨ÐµÍºÊ¹Í§ ãË Ë¹Ø Â¹µ ¡Òí à¹Ô´àÊÕ§ áŠǶÍÂËÅѧ ¨Ò¡¹Ñ¹é àÅÕÂé Ç« ÒÂà¾×Íè ËźÊÔ§è ¡Õ´¢ÇÒ§ (¤ Ңͧ¡ÒÃ˹ ǧàÇÅÒ¹Ñ¹é ¼Ù¾ ² Ñ ¹ÒÊÒÁÒö »ÃÑºä´ µÒÁ¤ÇÒÁàËÁÒÐÊÁ) l ¡Ã³Õ else à» ¹¡Ã³Õ·Õè͹ØÁÒ¹Ç ÒËØ ¹Â¹µ ÂѧäÁ ¾ºÊÔ觡մ¢ÇÒ§ «Ö觶 Òà» ¹¨ÃÔ§¨ÐµÍºÊ¹Í§ãË ËØ ¹Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Òà» ¹ÃÐÂÐàÇÅÒÊѹé æ (¤ Ңͧ¡ÒÃ˹ ǧàÇÅÒáÅзÔȷҧ㹡ÒÃËźËÅÕ¡¹Ñ¹é ¼Ù¾ ² Ñ ¹ÒÊÒÁÒö»ÃѺ ä´ µÒÁ¤ÇÒÁàËÁÒÐÊÁ)
â»Ãá¡ÃÁ·Õè L4-1 ä¿Å robo_bumper1.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺËع ¹µ IPST-BOT à¤Å×Íè ¹·Õè µÃǨ¨ÑºáÅÐËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§´ ǵÑǵÃǨ¨Ñº¡Òê¹µÑÇà´ÕÂÇ (¨º)
PORTC
PA7
PA6
PA1
PA0
PB1
PB0
PB3
PB2
I P S T - B O T o ro b o t - - - - - - - - -- - - - - - -
PD7
M2
PD5
MOTOR OUTPUT
M1
PD1
PD6
TxD
PD0
PD4
SERVO
* * * *! *"
RxD
PD3
SW3
PD2
SW2
+ -
SW1
S
PB4
RESET
DisplayMotor
ATMEGA16
PA2
Vm OUT
IPST MicroBOX PA3
Over 7.5V
++ Vin -
PA4
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA5
DC INPUT
SDA RS-232 LOW BATT.
DC input
OFF
ON
ON
SCL KNOB PA7
102 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡Ò÷´Åͧ·Õè 5 µÃǨ¨Ñº¡Òê¹´ ÇÂÊÇÔµª 2 µÑÇ ¡Ò÷´Åͧ¹Õàé » ¹¡ÒÃà¢Õ¹â»Ãá¡ÃÁ·´Êͺ¡Ò÷íÒ§Ò¹¢Í§á¼§Ç§¨ÃÊÇÔµª 2 µÑÇ·Õµè Í à¢ Ò¡Ñº¢Ò¾Íà µ PA0 áÅÐ PA1 ¢Í§Ëع ¹µ IPST-BOT ÁÒáÊ´§¼Å·Õâè Á´ÙÅ LCD
¡ÒÃàª×Íè Áµ Í·Ò§ÎÒà ´áÇà (µ Íà¾ÔÁè àµÔÁãË á¡ Ë¹Ø Â¹µ IPST-BOT) µ ÍÊÒ¨ҡ¾Íà µ PA0 ࢠҡѺª ͧ LOW ¢Í§á¼§Ç§¨ÃÊÇÔµª µÇÑ ·Õè 1 l µ ÍÊÒ¨ҡ¾Íà µ PA1 ࢠҡѺª ͧ LOW ¢Í§á¼§Ç§¨ÃÊÇÔµª µÇ Ñ ·Õè 2 l
ἧǧ¨ÃÊÇÔµª ª ͧ LOW µ Íä»Âѧ¨Ø´µ Í PA0
µ Íä»Âѧ¨Ø´µ Í PA1
·ÔÈ·Ò§´ ҹ˹ Ңͧ ËØ ¹Â¹µ MegaBOT
PA7 PA7
PA6 PA6
IPST MicroBOX PA1
PA0
PB1
PB0
PB3
PB2
S w i t c h 1 : 1 OT B- - - *r *d S w i t c h 2 : 1* * * * a
PD7 PD6
PD1
PD5
PD0
PD3
PB4
TxD
PD4
B0 B1B2B3B4
RxD
PD2
SW3
-
SW2
G +
SW1 RESET
SERVO
ATMEGA16
PA2
Over 7.5V
++Vin -
PA3
RS-232 LOW BATT.
Vm OUT
PORTC PORTC GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
DC INPUT
SDA
DC input
OFF
ON
ON
SCL KNOB PA7
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
103
#include <sleep.h> // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sleep #include <in_out.h> // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè in_a #include <lcd.h> // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè lcd void main() { while(1) // ǹ·íÒ§Ò¹äÁ è٠º { lcd( Switch1: %d #nSwitch2: %d ,in_a(0),in_a(1)); // Í Ò¹¤ ÒʶҹТͧἧǧ¨ÃÊÇÔµª ·¾Õè Íà µ PA0 áÅÐ PA1 ÁÒáÊ´§¼Å·Õâè Á´ÙÅ LCD sleep(10); // ˹ ǧàÇÅÒàÅ硹 Í } } ¤íÒ͸ԺÒÂâ»Ãá¡ÃÁ â»Ãá¡ÃÁ¨Ð·íÒ§Ò¹ÀÒÂã¹ÅÙ» while(1){} «Ö§è à» ¹¡ÒÃÇ¹Í Ò¹¤ ÒʶҹТͧἧǧ¨ÃÊÇÔµª ·µÕè Í à¢ Ò¡Ñº¾Íà µ PA0 áÅÐ PA1 ÁÒáÊ´§·Õâè Á´ÙÅ LCD¹Ñ¹è ¤×ÍàÁ×Íè ἧǧ¨ÃÊÇÔµª µÇÑ ã´¶Ù¡¡´¨ÐãË ¤Ò ¼ÅÅѾ¸ à» ¹ 0
â»Ãá¡ÃÁ·Õè L5-1 ä¿Å switch2_test.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺËع ¹µ IPST-BOT 㹡ÒõÃǨ¨Ñº µÑǵÃǨ¨Ñº¡Òê¹ 2 µÑÇ
¢Ñ¹é µÍ¹¡Ò÷´Åͧ L5.1 Êà ҧä¿Å â»Ãà¨ç¡µ ªÍ×è switch2_test áÅоÔÁ¾ â»Ãá¡ÃÁÀÒÉÒ C µÒÁâ»Ãá¡ÃÁ·Õè L5-1 L5.2 ¤ÍÁä¾Å áÅдÒǹ âËÅ´â»Ãá¡ÃÁà¾×Íè ·´Êͺ¼ÅÅѾ¸ ¡Ò÷íÒ§Ò¹ L5.3 àÃÔÁè µ ¹Ãѹâ»Ãá¡ÃÁ ·Õâè Á´ÙÅ LCD ¢Í§Ëع ¹µ áÊ´§¢ ͤÇÒÁ Switch1:
x
Switch2:
y
PORTC
ON
PA7
PA6
SCL
PA1
PA0
Over 7.5V
I P S T - B O T o ro b o t ATMEGA16
PA2
Vm OUT
IPST MicroBOX
PA3
DC INPUT
SDA RS-232 LOW BATT.
++ Vin -
PA4
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA5
KNOB PA7
DC input
ON
OFF
â´Â·Õè x áÅÐ y ¤×ͤ Ò¢ ÍÁÙÅ·ÕÍè Ò ¹ä´ ¨Ò¡Ê¶Ò¹Ð¢Í§á¼§Ç§¨ÃÊÇÔµª µÇÑ ·Õè 1 ·Õµè Í ¡Ñº PA0 áÅеÑÇ·Õè 2 «Ö§è µ ͡Ѻ PA1 µÒÁÅíҴѺ L5.4 ËÅѧ¨Ò¡¹Ñ¹é ãË ¡´ÊÇÔµª µÇÑ ·Õè 1 ¤ Ò§äÇ ¼ÅÅѾ¸ ·¤Õè Ò x ¨Ò¡¢ Í L5.3 ÁÕ¤Ò à» ¹ 0 áÅÐàÁ×Íè »Å ÍÂÊÇÔµª ¤ Ңͧ x ¨Ð¡ÅѺÁÒà» ¹ 1 ÍÕ¡¤Ãѧé L5.5 ¡´ÊÇÔµª µÇÑ ·Õè 2 ¤ Ò§äÇ ¼ÅÅѾ¸ ·¤Õè Ò y ¨Ò¡¢ Í L5.3 ÁÕ¤Ò à» ¹ 0 áÅÐàÁ×Íè »Å ÍÂÊÇÔµª ¤ Ңͧ y ¨Ð¡ÅѺÁÒà» ¹ 1 ÍÕ¡¤Ãѧé PD7
M2
PD5
MOTOR OUTPUT
M1
PD1
PD6
TxD
PD0
PD4
SERVO
* * * *! *"
RxD
PD3
PB4
SW3
PD2
PB3
PB2
SW2
+ -
PB0
SW1
S
PB1
RESET
DisplayMotor
- - - - - - - - -- - - - - - -
104 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡Ò÷´Åͧ·Õè 6 Ëع ¹µ ËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§¨Ò¡µÑǵÃǨ¨Ñº¡Òê¹ 2 µÑÇ ÊíÒËÃѺ㹡Ò÷´Åͧ¹Õé¨Ðà» ¹¡ÒÃà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËØ ¹Â¹µ ËźËÅÕ¡ÊÔ觡մ¢ÇÒ§¨Ò¡¡Òê¹áºº ÊÑÁ¼ÑÊ´ ÇÂἧǧ¨ÃÊÇÔµª 2 µÑÇâ´ÂµÔ´µÑ§é äÇ ´Ò ¹Ë¹ Ò·Ò§« ÒÂáÅТÇҢͧµÑÇËع ¹µ â´ÂÁÕà§×Íè ¹ä¢¡Ò÷íÒ§Ò¹´Ñ§¹Õé 1. 㹡óշËÕè ¹Ø Â¹µ äÁ ¾º¡Òê¹ Ëع ¹µ ¨Ðà¤Å×Íè ¹·Õäè »¢ ҧ˹ ÒÍ ҧµ Íà¹×Íè § 2. ¡Ã³Õ·ËÕè ¹Ø Â¹µ ¾º¡Ò깢ͧἧǧ¨ÃÊÇÔµª ´Ò ¹« Ò Ëع ¹µ ¨ÐÊ §àÊÕ§ÊÑÒ³ µÔ´é ´Ñ§ 1 ¤ÃÑ§é ¨Ò¡¹Ñ¹é à¤Å×Íè ¹·Õ¶è ÍÂËÅѧ áÅ Çà»ÅÕÂè ¹àÊ ¹·Ò§¡ÒÃà¤Å×Íè ¹·Õàè ¾×Íè àÅÕÂé Ç¢ÇÒ 3. ¡Ã³Õ·ËÕè ¹Ø Â¹µ ¾º¡Ò깢ͧἧǧ¨ÃÊÇÔµª ´Ò ¹¢ÇÒ Ëع ¹µ ¨ÐÊ §àÊÕ§ÊÑÒ³ µÔ´é ´Ñ§ 1 ¤ÃÑ§é ¨Ò¡¹Ñ¹é à¤Å×Íè ¹·Õ¶è ÍÂËÅѧ áÅ Çà»ÅÕÂè ¹àÊ ¹·Ò§¡ÒÃà¤Å×Íè ¹·Õàè ¾×Íè àÅÕÂé Ç« Ò 4. ¡Ã³Õ·ËÕè ¹Ø Â¹µ ¾º¡Ò깢ͧἧǧ¨ÃÊÇÔµª ·§Ñé Êͧ´ Ò¹ Ëع ¹µ ¨ÐÊ §àÊÕ§ÊÑÒ³ µÔ´é ´Ñ§ 1 ¤Ãѧé ઠ¹¡Ñ¹¨Ò¡¹Ñ¹é à¤Å×Íè ¹·Õ¶è ÍÂËÅѧ áÅ Çà»ÅÕÂè ¹àÊ ¹·Ò§¡ÒÃà¤Å×Íè ¹·Õàè ¾×Íè àÅÕÂé Ç« Ò Í ҧäáçµÒÁ ¼Ù¾ ² Ñ ¹Òâ»Ãá¡ÃÁÊÒÁÒöà»ÅÕÂè ¹ËÃ×Í¡íÒ˹´à§×Íè ¹ä¢ã¹¡Ò÷íÒ§Ò¹ãËÁ ä´ µÒÁµ ͧ¡ÒÃ
¡ÒÃàª×Íè Áµ Í·Ò§ÎÒà ´áÇà (µ Íà¾ÔÁè àµÔÁãË á¡ Ë¹Ø Â¹µ IPST-BOT) µ ÍÊÒ¨ҡ¾Íà µ PA0 ࢠҡѺª ͧ LOW ¢Í§á¼§Ç§¨ÃÊÇÔµª µÇÑ ·Õè 1 l µ ÍÊÒ¨ҡ¾Íà µ PA1 ࢠҡѺª ͧ LOW ¢Í§á¼§Ç§¨ÃÊÇÔµª µÇ Ñ ·Õè 2 l µ ÍÊÒ¨ҡ¾Íà µ PB4 ࢠҡѺἧǧ¨ÃÅíÒ⾧໠Ââ« l
¡ÒÃµÔ ´ µÑé § ἧǧ¨ÃÊÇÔ µ ª ã Ë á ¡ ËØ ¹ ¹µ IPST-BOT ÊíÒËÃѺËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§´ Ç¡Òê¹ 1. µÔ´µÑ§é ªÔ¹é µ ÍÁØÁ©Ò¡à¢ ҡѺἧǧ¨ÃÊÇÔµª ´Ç  ʡÃÙ 3x10 ÁÁ. áÅй͵ 3 ÁÁ. ·íÒ 2 ªØ´ 2. ¨Ò¡¹Ñ¹é ¹íÒἧǧ¨ÃÊÇÔµª ·§Ñé ÊͧÁÒµÔ´µÑ§é ࢠҷÕè ÁØÁ« ÒÂáÅТÇÒ·Ò§´ ҹ˹ ҢͧËع ¹µ IPSTBOT â´ÂµÔ´µÑ§é ãË àÍÕ§·íÒÁØÁ»ÃÐÁÒ³ 45 ͧÈÒ ¨Ò¡¹Ñ¹é 㪠ʡÃÙ 3x10 ÁÁ. áÅй͵ 3 ÁÁ. ¢Ñ¹ÂÖ´ ªÔ¹é Ê Ç¹·Ñ§é ÊͧãË á¹ ¹
¢Ñ¹é µÍ¹¡Ò÷´Åͧ L6.1 Êà ҧä¿Å â»Ãà¨ç¡µ ªÍ×è robo_bumper2 áÅоÔÁ¾ â»Ãá¡ÃÁÀÒÉÒ C µÒÁâ»Ãá¡ÃÁ·Õè L6-1 L6.2 ¤ÍÁä¾Å áÅдÒǹ âËÅ´â»Ãá¡ÃÁà¾×Íè ·´Êͺ¼ÅÅѾ¸ ¡Ò÷íÒ§Ò¹
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
105
ἧǧ¨ÃÊÇÔµª ª ͧ LOW µ Íä»Âѧ¨Ø´µ Í PA0
µ Íä»Âѧ¨Ø´µ Í PA1
PORTC
DC INPUT
PA6
IPST MicroBOX PA0
PB1
PB0
PB3
PB2
S w i t c h 1 : 1 ro b o t Switch2: 1 - - - - - - -
M2
PD7
M1
PD1
PD6
PD0
PD5
TxD
PD3
RxD
MOTOR OUTPUT
PD4
* * * *! *"
PD2
SW3
DisplayMotor
SW2
+ -
SW1
S
PB4
RESET
SERVO
ATMEGA16
PA2
PA1
Over 7.5V
++ Vin -
PA3
SDA RS-232 LOW BATT.
Vm OUT
PA7
PA4
PA5
KNOB PA7
DC input
OFF
ON
ON
SCL GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
µ Íä»Âѧ¨Ø´µ Í PB4
·ÔÈ·Ò§´ ҹ˹ Ңͧ ËØ ¹Â¹µ IPST-BOT
L6.3 àÃÔÁè µ ¹Ãѹâ»Ãá¡ÃÁ ·Õâè Á´ÙÅ LCD ¢Í§Ëع ¹µ áÊ´§¢ ͤÇÒÁ Press
SW1
ᨠ§ãË ¡´ÊÇÔµª SW1 ·Õáè ¼§Ç§¨Ã Display-MOTOR º¹µÑÇËع ¹µ IPST-BOT à¾×Íè Êѧè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õè L6.4 ¡´ÊÇÔµª SW1 ·Õáè ¼§Ç§¨Ã Display-MOTOR áÅ ÇÊѧࡵ¡ÒÃà¤Å×Íè ¹·Õ¢è ͧËع ¹µ IPST-BOT Ëع ¹µ IPST-BOT ¨Ðà¤Å×Íè ¹·Õµè ç仢 ҧ˹ ÒÍ ҧµ Íà¹×Íè § ËÒ¡¾ºÊÔ§è ¡Õ´¢ÇÒ§áÅÐà¡Ô´¡Ò깵çµÒÁ à§×Íè ¹ä¢·Õ¡è Òí ˹´äÇ Ëع ¹µ IPST-BOT ¨Ðà»ÅÕÂè ¹¡ÒÃà¤Å×Íè ¹·Õàè ¾×Íè ËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§ä´
106 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
#include <motor.h> #include <sleep.h> #include <in_out.h> #include <lcd.h> #include <sound.h> #define POW 70 void forward(unsigned int delay) { motor(1,POW); motor(2,POW); sleep(delay); } void backward(unsigned int delay) { motor(1,-POW); motor(2,-POW); sleep(delay); } void turn_left(unsigned int delay) { motor(1,-POW); motor(2,POW); sleep(delay); } void turn_right(unsigned int delay) { motor(1,POW); motor(2,-POW); sleep(delay); } void main() { char left,right; lcd( Press SW1 ); sw1_press(); while(1) { left = in_a(0); right = in_a(1); if(left==1 && right==1)
// 㪠§Ò¹¿ §¡ ª¹Ñè motor // 㪠§Ò¹¿ §¡ ª¹Ñè sleep // 㪠§Ò¹¿ §¡ ª¹Ñè sw1_press áÅÐ in_a // 㪠§Ò¹¿ §¡ ª¹Ñè lcd // 㪠§Ò¹¿ §¡ ª¹Ñè beep_b // ¡íÒ˹´¡íÒÅѧ¢Ñº¢Í§ÁÍàµÍà ¤§·Õ·è Õè 70 % ¢Í§¡íÒÅѧ¢ÑºÊÙ§ÊØ´ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ à´Ô¹Ë¹ ҵç // ÁÍàµÍà 1 ËÁع仢 ҧ˹ Ò // ÁÍàµÍà 2 ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ ¶ÍÂËÅѧµÃ§ // ÁÍàµÍà 1 ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 ËÁع¶ÍÂËÅѧ // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ ¶ÍÂËÅѧ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç« Ò // ÁÍàµÍà 1 ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç« Ò // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç¢ÇÒ // ÁÍàµÍà 1 ËÁع仢 ҧ˹ Ò // ÁÍàµÍà 2 ËÁع¶ÍÂËÅѧ // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç¢ÇÒ // ¡íÒ˹´µÑÇá»Ãà¡çº¤ ÒʶҹСÒ깢ͧἧǧ¨ÃÊÇÔµª ´Ò « ÒÂáÅТÇÒ // áÊ´§¢ ͤÇÒÁᨠ§¼Ùã ª §Ò¹ãË ¡´ÊÇÔµª SW1 // Ãͨ¹¡Ãзѧè ÊÇÔµª SW1 ¶Ù¡¡´ // ÅٻǹÃͺäÁ è٠º // Í Ò¹¤ ÒʶҹСÒá´ÊÇÔµª ·Ò§´ Ò¹« ÒÂÁÒà¡çº·Õµè ÇÑ á»Ã left // Í Ò¹¤ ÒʶҹСÒá´ÊÇÔµª ·Ò§´ Ò¹¢ÇÒÁÒà¡çº·Õµè ÇÑ á»Ã right // µÃǨÊ꼂 Òἧǧ¨ÃÊÇÔµª ·§Ñé Êͧ´ Ò¹äÁ ¶¡Ù ¡´ãª ËÃ×ÍäÁ
â»Ãá¡ÃÁ·Õè L6-1 ä¿Å robo_bumper2.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺËع ¹µ IPST-BOT à¤Å×Íè ¹·Õè µÃǨ¨ÑºáÅÐËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§´ ǵÑǵÃǨ¨Ñº¡Òê¹ÊͧµÑÇ (ÁÕµÍ )
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
{
}
forward(10); } else if(left==0 && right==1) { beep_b(4); backward(1000); turn_right(800); } else if(left==1 && right==0) { beep_b(4); backward(1000); turn_left(800); } else if(left==0 && right==0) { beep_b(4); backward(1000); turn_left(1500); }
107
// Ëع ¹µ à¤Å×Íè ¹·Õäè »¢ ҧ˹ Ò» ¹ª ǧàÇÅÒÊѹé æ // µÃǨÊ꼂 Òἧǧ¨ÃÊÇÔµª ·Ò§´ Ò¹« Ò¶١¡´à¾Õ§µÑÇà´ÕÂÇ // ¡íÒà¹Ô´àÊÕ§ 1 ¨Ñ§ËÇÐ // ¶ÍÂËÅѧà¾×Íè àµÃÕÂÁËźÊÔ§è ¡Õ´¢ÇÒ§ // àÅÕÂé Ç¢ÇÒ 0.8 ÇÔ¹Ò·Õà¾×Íè àºÕÂè §àº¹·ÔÈ·Ò§ // µÃǨÊ꼂 Òἧǧ¨ÃÊÇÔµª ·Ò§´ Ò¹¢ÇÒ¶Ù¡¡´à¾Õ§µÑÇà´ÕÂÇ // ¡íÒà¹Ô´àÊÕ§ 1 ¨Ñ§ËÇÐ // ¶ÍÂËÅѧ1 ÇÔ¹Ò·Õà¾×Íè àµÃÕÂÁËźÊÔ§è ¡Õ´¢ÇÒ§ // àÅÕÂé Ç« ÒÂà¾×Íè àºÕÂè §àº¹·ÔÈ·Ò§»ÃÐÁÒ³ 0.8 ÇÔ¹Ò·Õ // µÃǨÊ꼂 Òἧǧ¨ÃÊÇÔµª ·§Ñé Êͧ´ Ò¹¶Ù¡¡´ãª ËÃ×ÍäÁ // ¡íÒà¹Ô´àÊÕ§ 1 µÔ´ê // ¶ÍÂËÅѧËźÊÔ§è ¡Õ´¢ÇÒ§»ÃÐÁÒ³ 1 ÇÔ¹Ò·Õ // àÅÕÂé Ç« ÒÂà¾×Íè àºÕÂè §àº¹·ÔÈ·Ò§»ÃÐÁÒ³ 1.5 ÇÔ¹Ò·Õ
} ¤íÒ͸ԺÒÂâ»Ãá¡ÃÁ àÃÔÁè µ ¹¡Ò÷íÒ§Ò¹ â»Ãá¡ÃÁ¨ÐáÊ´§¢ ͤÇÒÁ·Õâè Á´ÙÅ LCD à» ¹ Press SW1 à¾×Íè ÃÍ¡Òá´ÊÇÔµª SW1 àÁ×Íè ¾º¡Òá´ÊÇÔµª SW1 «Õ¾ÂÕ ¨Ù §Ö ࢠÒ仡ÃзíÒ¤íÒÊѧè ÀÒÂã¹ÅÙ» while(1){} à¾×Íè Ç¹Í Ò¹¤ ÒʶҹТͧἧǧ¨ÃÊÇÔµª ·Õè µ ÍࢠҡѺ¢Ò¾Íà µ PA0 áÅÐ PA1 ÁÒà¡çº·Õµè ÇÑ á»Ã left áÅÐ right àÁ×Íè ἧǧ¨ÃÊÇÔµª µÇÑ ã´¶Ù¡¡´¨ÐãË ¤Ò ¼ÅÅѾ¸ à» ¹ 0 ¨Ò¡¹Ñ¹é â»Ãá¡ÃÁ¨Ð¹íÒ¤ ҢͧµÑÇá»Ã·Ñ§é Êͧä»à»ÃÕºà·Õº 4 ¡Ã³Õ´§Ñ ¹Õé ¡Ã³Õ·Õè 1 : if(left==1 && right==1) µÃǨÊÍºÇ Ò äÁ Á¡Õ Òá´ÊÇÔµª ·§Ñé ÊͧµÑÇËÃ×ÍäÁ «Ö§è ¶ Òà» ¹¨ÃÔ§ (äÁ Á¡Õ Òá´) ¨ÐµÍºÊ¹Í§ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Òà» ¹ÃÐÂÐàÇÅÒÊѹé æ à¹×Íè §¨Ò¡ÂѧäÁ ¾ºÊÔ§è ¡Õ´¢ÇÒ§ ¡Ã³Õ·Õè 2 : else if(left==0 && right==1) µÃǨÊͺ¡Òá´ÊÇÔµª ´Ò ¹« ÒÂà¾Õ§µÑÇà´ÕÂÇ «Ö§è ¶ Òà» ¹¨ÃÔ§ (ÁÕ¡Òá´ÊÇÔµª ) ¨ÐµÍºÊ¹Í§ãË ¡íÒà¹Ô´ÊÑÒ³àÊÕ§ 1 ¨Ñ§ËÇÐ ¨Ò¡¹Ñé¹ËØ ¹Â¹µ à¤Å×è͹·Õè¶ÍÂËÅѧ áÅ ÇàÅÕéÂÇ¢ÇÒ à¾×Íè ËźÊÔ§è ¡Õ´¢ÇÒ§ (ÊíÒËÃѺª ǧàÇÅÒ㹡ÒÃ˹ ǧà¾×Íè »ÃѺ·ÔÈ·Ò§ÊÒÁÒö»ÃѺãË àËÁÒÐÊÁä´ Í¡Õ ) ¡Ã³Õ·Õè 3 : else if(left==1 && right==0) µÃǨÊͺ¡Òá´ÊÇÔµª ´Ò ¹¢ÇÒà¾Õ§µÑÇà´ÕÂÇ «Ö§è ¶ Òà» ¹¨ÃÔ§ (ÁÕ¡Òá´ÊÇÔµª ) ¨ÐµÍºÊ¹Í§ãË ¡íÒà¹Ô´ÊÑÒ³àÊÕ§ 1 ¨Ñ§ËÇÐ ¨Ò¡¹Ñé¹ËØ ¹Â¹µ à¤Å×è͹·Õè¶ÍÂËÅѧ áÅ ÇàÅÕéÂÇ« Ò à¾×èÍËźÊÔ觡մ¢ÇÒ§ ¡Ã³Õ·Õè 4 : else if(left==0 && right==0) à» ¹¡ÒõÃǨÊͺ¡Òá´ÊÇÔµª ·§Ñé ÊͧµÑÇ ¶ Òà» ¹¨ÃÔ§ (ÊÇÔµª ·Ñ§é ÊͧµÑǶ١¡´¾Ã ÍÁ¡Ñ¹) ¨ÐµÍºÊ¹Í§ãË ¡Òí à¹Ô´ÊÑÒ³àÊÕ§ 1 ¨Ñ§ËÇÐ ¨Ò¡¹Ñ¹é Ëع ¹µ à¤Å×Íè ¹·Õ¶è ÍÂËÅѧ áÅ Ç àÅÕéÂÇ¢ÇÒà¾×èÍËźÊÔ觡մ¢ÇÒ§
â»Ãá¡ÃÁ·Õè L6-1 ä¿Å robo_bumper2.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺËع ¹µ IPST-BOT à¤Å×Íè ¹·Õè µÃǨ¨ÑºáÅÐËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§´ ǵÑǵÃǨ¨Ñº¡Òê¹ÊͧµÑÇ (¨º)
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
ÊÔ觡մ¢ÇÒ§
PD7 PD6
PD7
M2
PD5
PD6
M1
PD3
PD4
6 PA 7 PA
Vm OUT
C RT PO
M2
PD7 PD6
M1
PD5
PD3
PD4
PD2
DisplayMotor
ATMEGA16
SERVO
Vm OUT
PD7
PD5
M2 M1 M2 M1
-
4 PB
PD7
+
2 PB
PD6
S
3 PB PD6
0 PB
PD3
P
PD4
O ST oB IP icr M
X
Vm OUT
1
IPST MicroBOX B1
PD2
PD2
M2
PD5 PD4
M1
PD3 PD2
DisplayMotor
SERVO
DisplayMotor
ATMEGA16
Vm OUT
IPST MicroBOX
ATMEGA16
0
PA6
PD5
-
PA
PA7
PD3
MOTOR OUTPUT Vin ++
3
PA
PD4
T
DC ut p in
PA 2
PD2
ON
5
4
PORTC
M
PD1
M
OU
F OF
PA6
PORTC PORTC
DisplayMotor
PA PA
PA
7 PD
PA7
PA6
IPST MicroBOX
PA7
PA6
IPST MicroBOX
6 PD
V 7.5
5 PD PD0
4 PD
TxD
Vm
ON
1 PD
DisplayMotor
PD1
MOTOR OUTPUT
++ Vin -
DD GGNN CC00 PP CC11 PP 22 PPCC CC33 PP CC44 PP CC55 PP CC66 PP CC77 PP 55VV ++
PA7 ATMEGA16
SERVO
PORTC
SERVO
PD0
T PU IN
ATMEGA16
Vm OUT
IPST MicroBOX
++ Vin -
TxD
DC
D Tx
B4
* * * *! *"
RxD
P
2 PD
S
B3
PB4
or SW3 ot M lay D3
SW2
sp Di
er Ov
B2
SERVO
DC input
* * * *! *"
RxD
DC input
Over 7.5V
2
O
B1
D Rx 0 PD
SW1
OFF
T
PB2
RESET
L SC
S
PB3
RV SE
6 A1 EG
ON
DC INPUT
I P S T - B O T o ro b o t - - - - -- -- -- - - -- - -
B0
PB0
PD1
3 -2 + - t RS T. o A T SD BA b UT W TP LO ro OU o OR T -OT O M -B -
P
3 SW
PB1
PD0
TxD
ON
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
-
M AT
2 SW
PB4
* * * *! *"
RxD
SDA RS-232 LOW BATT.
I -
T
PB2 SW3
MOTOR OUTPUT
OB KN A7 P
SCL
1 PA0 SW
SE
PB3
SW2
+ -
PB0 SW1
S
PB1
RESET
SW3
"
KNOB PA7
PA2
PA3 RE PA1
IPST - B O TPD1o r o b o t PD0 --- - -- - - --- --- - -
++ Vin -
TxD
Over 7.5V
PA4
+ -
PA0
RxD
MOTOR OUTPUT
PA5
S
* * * *! *"
DC input
OFF
ON
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PB0 PA4PB2 PA2
PB1 PA5PB3 PA3PB4 PA1
SW3
DC INPUT
OFF
PA0
RESET
SW2
SW2
+ -
PA1
ON
SCL
SW1
SW1
S
PA2
++ Vin -
PA3
Over 7.5V
I P S T - B O T o ro b o t --- - -- - - --- --- - RS-232 LOW BATT.
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
DC INPUT
Over 7.5V
DC input
OFF
ON
ON
SCL
SDA
RESET
ÊÔ觡մ¢ÇÒ§
SDA RS-232 LOW BATT.
KNOB PA7
RS-232 LOW BATT.
MOTOR OUTPUT
!
KNOB PA7
DC INPUT
SDA
I P S T - B O T o ro b o t - -- -- - -- --- - -- - -
PB4
PD1
PB2
TxD
PD0
PB3
PB4
RxD
PB0
* * * *! *"
PB1
PB3
PB2
+ -
PB0
ÊÔ觡մ¢ÇÒ§
S
PB1
RESET
SW3
PA0
PA0
-- - -- - -- --- - -- - -
SW2
PA1
PA1
I P S T - B O T o ro b o t
SW1
PA2
PA2
++ Vin -
PA3
Over 7.5V
PA3
DC INPUT
SDA RS-232 LOW BATT.
ON
SCL KNOB PA7
PA4
PA5
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
KNOB PA7
DC input
OFF
ON
ON
SCL
ON
PA6
PA7
ÊÔ§è ¡Õ´¢ÇÒ§
PORTC
108 l
2
1
ÀÒ¾áÊ´§¡Ò÷íÒ§Ò¹¢Í§Ëع ¹µ IPST-BOT à¾×Íè ËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§ àÁ×Í×è à¡Ô´¡Òê¹ÊÔ§è ¡Õ´¢ÇÒ§ ·Ò§« ÒÂ
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
ÊÔ§è ¡Õ´¢ÇÒ§
ÊÔ§è ¡Õ´¢ÇÒ§
PA6
IPST MicroBOX PD7 PD6
PD7
PD5
M2 M1
PD6
PD4
PD2
PD3
DisplayMotor
M2
PD5 PD4
M1
PD3 PD2
DisplayMotor
Vm OUT
ATMEGA16
Vm OUT
ATMEGA16
Vm OUT
ON
IN PU T
7.5 V
T
ORVm OUT OU TP U
OT
M PD 1
PD7 PD6
M2
PD5 PD4
PD 0
PD3 PD2
SW 2
DisplayMotor
SW 3
Rx D
SERVO
SW 1
T RE SE
MOTOR OUTPUT
M1
DC
Ov er
S T - ATMEGA16 -B O T o r - - ob o t B0 B1 B2 B3 B4 Tx D
SC L
S LO DA W BA R TT S-2 . 32
P
I
M2 M1 M2 M1
KN PA OB 7
Vm OUT
PD7
PD3
PD5 PD4
PD6 PD7
EG A1 6
O
PD6
AT M
SE RV
PD2
or
PORTC
DisplayMotor
ot
PD5
ay M
PD4
sp l
PD3
Di
IPST MicroBOX
PD2
PD 3
PD 2
PA6
DisplayMotor
PD 5
PD1
PD 4
PD0
2
PORTC
PA7
PA6
IPST MicroBOX
PA7
PA6
IPST MicroBOX
PB 3
TxD
PD 7
PB 2
PB 1
* * * *! *"
RxD
M
SW3
PD 6
SW2
PB 0
1
PA7
SW1
M
IPST MicroBOX ATMEGA16
T
PORTC
PA6
SERVO
OU
PA7
ATMEGA16
Vm
Over 7.5V
++ Vin -
0
1 RESET
DC input
PA
ON
DC INPUT
S
2
PA
OFF
PA
3
-
SCL
SDA RS-232 LOW BATT.
+ -
PA
+ +Vin
S
SERVO
SERVO
PORTC SERVO
PA7
++ Vin -
in DC pu t
ON
5
PB4
PD1
PA
PB2
PD0
TxD
MOTOR OUTPUT
PB3
RxD
PD1
MOTOR OUTPUT
I P S T - B O T o r o b o+ t - - - -- -- - --- - - - - -
4
PB0
PB1
* * * *! *"
PD0
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
X
SW3
PPOO RRTT CC
O
SW2
+ -
SW1
S
PB4
RESET
PA
PPAA 77
I M PST ic ro B
PA1
IPST - B O TPD1o r o b o t PD0 - - -- - --- -- -- - -- -
G P ND P C0 P C1 P C2 KNOB PC C3 PA7 PC5 4 PC P 6 +5 C7 V
PA4
MOTOR OUTPUT
Over 7.5V
PA2 PP PA0 AA66
TxD
ON
PA3
RxD
DC INPUT
TxD
ÊÔ§è ¡Õ´¢ÇÒ§
OF F
PA5
* * * *! *"
* * * *! *"
RxD
"
++ Vin -
PB2
SW3
+ -
PB3
SW2
S
PB0
SW1
SDA RS-232 LOW BATT.
DC input
SW3
MOTOR OUTPUT
DC input
OFF
ON
PB1
ON
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PB0 PA4PB2 PA2
RESET
PA0
PB1 PA5PB3 PA3PB4 PA1
KNOB PA7
OFF
PA0
PA1
I P S T - B O T o ro b o t - - -- - --- -- -- - -- SCL
ON
Over 7.5V
SW2
++ Vin -
PA2
PA3
RS-232 LOW BATT.
SW1
+ -
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
DC INPUT
SDA
Over 7.5V
DC input
OFF
ON
ON
SCL KNOB PA7
RS-232 LOW BATT.
S
RESET
ÊÔ§è ¡Õ´¢ÇÒ§
!
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PB2
PD1
PB0
TxD
PD0
PA0
PB4
RxD
PA2
PB2
* * * *! *"
DC INPUT
SDA
I P S T - B O T o ro b o t --- - -- -- --- - -- --
PB4
PB3
+ -
PB0 S
PB1
RESET
SW3
PB3
PA0
-- - --- - - --- - -- - -
SW2
PB1
PA1
I P S T - B O T o ro b o t
SW1
PA1
PA2
++ Vin -
PA3
Over 7.5V
PA3
DC INPUT
SDA RS-232 LOW BATT.
ON
SCL KNOB PA7
PA4
PA5
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
KNOB PA7
DC input
OFF
ON
ON
SCL
PORTC
109
PB 4
ÀÒ¾áÊ´§¡Ò÷íÒ§Ò¹¢Í§Ëع ¹µ IPST-BOT à¾×Íè ËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§ àÁ×Í×è à¡Ô´¡Òê¹ÊÔ§è ¡Õ´¢ÇÒ§ ·Ò§¢ÇÒ
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
ÊÔ§è ¡Õ´¢ÇÒ§
IPST MicroBOX
ATMEGA16
Vm OUT PD7
PD7
PD5
M2 M1
PD6
PD4
PD2
PD3
DisplayMotor
M2
PD5
PD6
M1
PD3
PD4
ON
IN PU T
7.5 V
T
ORVm OUT OU TP U
OT
M PD 1
Rx D
SW 3
PD5
PD7
PD4
PD6
PD 0
PD3 PD2
DisplayMotor
M2
DC
Ov er
SERVO
SW 1
T
MOTOR OUTPUT
M1
SC L
S LO DA W B R
P
I
RE SE
PD7
M2 M1
KN PA OB 7
PD7
M2 M1
PD6
PD3
PD5 PD4
PD2
AT S T. -23 S 2 T - ATMEGA16 -B O T o r - - ob o t B0 B1 B2 B3 B4 Tx D
Vm OUT
PD6
EG A1 6
O
SW 2
SERVO
DisplayMotor
PD2
Vm OUT
AT M
SE RV
PORTC
DisplayMotor
or
PD5
ot
PD3
lay M
IPST MicroBOX
PD4
Di sp
PA6
PD2
PD 3
PD 2
PORTC
DisplayMotor
PD 5
PD1
PD 4
PD0
2
IPST MicroBOX
PA7
PA6
IPST MicroBOX
PA7
PA6
IPST MicroBOX
PB 3
TxD
PD 7
PB 2
PB 1
* * * *! *"
RxD
M
SW3
PD 6
SW2
PB 0
1
PA7
PB4
SW1
M
PA6
ATMEGA16
T
PORTC
PA7 ATMEGA16
SERVO
PORTC SERVO
OU
0
+ -
PA
1 RESET
++ Vin -
ATMEGA16
Vm
Over 7.5V
S
SERVO
Vm OUT
PA6
++ Vin -
DC INPUT
S
2
PA
DC input
PA
3
ON
SCL
SDA RS-232 LOW BATT.
I P S T - B O T o r o b o+ t - - - -- -- - --- - - - - -
4
PA
-
OFF
PA
PB2
PB3
5
+ +Vin
ON
PA
PB0
PB1
PD1
PD1
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
X
PD0
TxD
PPOO RRTT CC
O
PB4
RxD
MOTOR OUTPUT
PPAA 77
I M PST ic ro B
PA1
PB2
* * * *! *"
G P ND P C0 P C1 P C2 KNOB PC C3 PA7 PC5 4 PC P 6 +5 C7 V
66
PB3
SW3
+ -
PB0 SW2
S
PB1
RESET
SW1
PA2 PP PA0 AA
PA3
IPST - B O TPD1o r o b o t PD0 -- - -- - -- --- -- - --
++ Vin -
TxD
MOTOR OUTPUT
Over 7.5V
PA4
+ -
PA0
RxD
DC INPUT
ON
PA5
S
* * * *! *"
PD0
MOTOR OUTPUT
in DC pu t
OF F
DC input
OFF
ON
ON
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PB0 PA4PB2 PA2
PB1 PA5PB3 PA3PB4 PA1
SW3
DC input
PA0
PA1
I P S T - B O T o ro b o t -- - -- - -- --- -- - --
SW2
TxD
ÊÔ§è ¡Õ´¢ÇÒ§
++ Vin -
PA2
PA3
SW1
OFF
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
Over 7.5V
SCL
RESET
* * * *! *"
RxD
DC input
OFF
ON
ON DC INPUT
RS-232 LOW BATT.
SDA RS-232 LOW BATT.
SW3
+ -
SW2
S
PB4
SW1
"
SDA
KNOB PA7
ON
PB2
RESET
MOTOR OUTPUT
SCL KNOB PA7
Over 7.5V
I P S T - B O T o ro b o t
ÊÔ§è ¡Õ´¢ÇÒ§
!
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PB3
PD1
PB0
PB4
TxD
PD0
PB1
PB2
* * * *! *"
RxD
PA0
PB3
+ -
PB0 S
PB1
SW3
PA1
PA0
SW2
PA2
PA1
- -- - -- -- --- - -- --
SW1
DC INPUT
SDA RS-232 LOW BATT.
- -- - -- -- --- - -- --
I P S T - B O T o ro b o t
RESET
PA3
PA2
Over 7.5V
++ Vin -
PA3
RS-232 LOW BATT.
ON
SCL KNOB PA7
PA4
PA5
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
DC INPUT
SDA
DC input
OFF
ON
ON
SCL KNOB PA7
PA7
ÊÔ§è ¡Õ´¢ÇÒ§
PORTC
110 l
PB 4
PORTC
ON
PA7
PA6
SCL
PA0
PB1
PB0
PB3
PB2
Over 7.5V
I P S T - B O T o ro b o t - - - - - - - - -- - - - - - -
PD7
M2
PD5
MOTOR OUTPUT
M1
PD1
PD6
TxD
PD0
PD4
SERVO
* * * *! *"
RxD
PD3
SW3
PD2
SW2
+ -
SW1
S
PB4
RESET
DisplayMotor
ATMEGA16
PA1
Vm OUT
IPST MicroBOX PA2
DC INPUT
SDA RS-232 LOW BATT.
++ Vin -
PA3
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
KNOB PA7
DC input
OFF
ON
PA5
ÀÒ¾áÊ´§¡Ò÷íÒ§Ò¹¢Í§Ëع ¹µ IPST-BOT à¾×Íè ËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§ àÁ×Í×è à¡Ô´¡Òê¹ ÊÔ觡մ¢ÇÒ§¾Ã ÍÁ¡Ñ¹·Ñé§Êͧ´ Ò¹
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
111
¡Ò÷´Åͧ·Õè 7 Ëع ¹µ ËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§´ Ç¡Òê¹áººÊØÁ ·ÔÈ·Ò§ 㹡Ò÷´Åͧ¹Õ¨é дѴá»Å§â»Ãá¡ÃÁ¤Çº¤ØÁ¨Ò¡¡Ò÷´Åͧ·Õè 6 á·¹·Õ¨è СíÒ˹´·ÔÈ·Ò§¡ÒÃà¤Å×Íè ¹·Õäè Ç µÒµÑÇËÅѧ¨Ò¡·ÕèµÃǨ¾º¡Òê¹ 㹡Ò÷´Åͧ¹Õé¨Ð·íÒ¡ÒÃÊØ Á¤ ÒµÑÇàÅ¢à¾×èÍ㪠໠¹µÑÇá»Ã˹Öè§ã¹¡ÒáíÒ˹´ à§×Íè ¹ä¢¢Í§¡ÒÃà»ÅÕÂè ¹·ÔÈ·Ò§¡ÒÃà¤Å×Íè ¹·Õè ÇÔ¸¡Õ Òùըé Ъ ÇÂãË Ë¹Ø Â¹µ ÊÒÁÒöËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§ã¹ÅѡɳÐÁØÁ ÍÑºä´ ´ãÕ ¹ÃдѺ˹֧è â´ÂÁÕà§×Íè ¹ä¢¡Ò÷íÒ§Ò¹´Ñ§¹Õé 1. 㹡óշËÕè ¹Ø Â¹µ äÁ ¾º¡Òê¹ (äÁ ¾ºÊÔ§è ¡Õ´¢ÇÒ§) Ëع ¹µ ¨Ðà¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò 2. àÁ×Íè Ëع ¹µ µÃǨ¾º¡Òê¹·Õ´è Ò ¹ã´´ ҹ˹֧è ËÃ×ͷѧé Êͧ´ Ò¹¾Ã ÍÁ¡Ñ¹ ¨ÐÊ §àÊÕ§ÊÑÒ³ 1 ¨Ñ§ËÇÐ ¨Ò¡¹Ñ¹é à¤Å×Íè ¹·Õ¶è ÍÂËÅѧ áÅ Ç·íÒ¡ÒÃÊØÁ ¤ Òà¾×Íè µÑ´ÊÔ¹ã¨àÅ×Í¡·Ôȷҧ㹡ÒÃàÅÕÂé Ç
¿ §¡ ªÑè¹ÊØ Á¤ ÒµÑÇàÅ¢ ¿ §¡ ª¹Ñè 㹡ÒÃÊØÁ ¤ ÒµÑÇàŢ͠ҧ§ ÒÂÊíÒËÃѺ㪠㹡Ò÷´Åͧ¹Õ¤é Í× ¿ §¡ ª¹Ñè rand «Ö§è ºÃèØÍÂÙã ¹ä¿Å äźÃÒÃÕ stdlib.h Íѹ໠¹Ë¹Ö§è ã¹ä¿Å äźÃÒÃÕÁҵðҹ¢Í§ WinAVR ¤ÍÁä¾àÅÍà (äÁ ¨Òí à» ¹µ ͧ¼¹Ç¡ä¿Å äźÃÒÃÕà¾ÔÁè àµÔÁ) ¿ §¡ ª¹Ñè ¹Õãé Ë ¼ÅÅѾ¸ ¨Ò¡¡ÒÃÊØÁ µÑÇàÅ¢µÑ§é áµ 0 ¶Ö§ 32767 ÁÕµÇÑ Í ҧ¡ÒÃàÃÕ¡㪠§Ò¹´Ñ§¹Õé µÑÇÍ ҧ·Õè L7-1 int x; x = rand(); ¼ÅÅѾ¸ x ÁÕ¤Ò ä´ µ§Ñé áµ 0 ¶Ö§ 32767 µÑÇÍ ҧ·Õè L7-2 int x; x = rand()%10; ¼ÅÅѾ¸ x ÁÕ¤Ò ä´ µ§Ñé áµ 0 ¶Ö§ 9 µÑÇÍ ҧ·Õè L7-3 int x; x = rand()%50; ¼ÅÅѾ¸ x ÁÕ¤Ò ä´ µ§Ñé áµ 0 ¶Ö§ 49 µÑÇÍ ҧ·Õè L7-4 int x; x = rand()%2; ¼ÅÅѾ¸ x ÁÕ¤Ò 0 áÅÐ 1 µÑÇÍ ҧ·Õè L7-5 int x; x = 5+rand()%11; ¼ÅÅѾ¸ x ÁÕ¤Ò ä´ µ§Ñé áµ 5 ¶Ö§ 15
112 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡ÒÃàª×Íè Áµ Í·Ò§ÎÒà ´áÇà (àËÁ×͹¡Ñº¡Ò÷´Åͧ·Õè 6) µ ÍÊÒ¨ҡ¾Íà µ PD0 ¡Ñºª ͧ LOW ¢Í§á¼§Ç§¨ÃÊÇÔµª µÇÑ ·Õè 1 l µ ÍÊÒ¨ҡ¾Íà µ PD1 ࢠҡѺª ͧ LOW ¢Í§á¼§Ç§¨ÃÊÇÔµª µÇ Ñ ·Õè 2 l µ ÍÊÒ¨ҡ¾Íà µ PB4 ࢠҡѺἧǧ¨ÃÅíÒ⾧໠Ââ« l
¢Ñ¹é µÍ¹¡Ò÷´Åͧ L7.1 Êà ҧä¿Å â»Ãà¨ç¡µ ªÍ×è robo_bumper3 áÅоÔÁ¾ â»Ãá¡ÃÁÀÒÉÒ C µÒÁâ»Ãá¡ÃÁ·Õè L7-1 L7.2 ¤ÍÁä¾Å áÅдÒǹ âËÅ´â»Ãá¡ÃÁà¾×Íè ·´Êͺ¼ÅÅѾ¸ ¡Ò÷íÒ§Ò¹ L7.3 àÃÔÁè µ ¹Ãѹâ»Ãá¡ÃÁ ·Õâè Á´ÙÅ LCD ¢Í§Ëع ¹µ áÊ´§¢ ͤÇÒÁ Press
SW1
ᨠ§ãË ¡´ÊÇÔµª SW1 ·Õáè ¼§Ç§¨Ã Display-MOTOR à¾×Íè Êѧè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õè L7.4 ¡´ÊÇÔµª SW1 ·Õáè ¼§Ç§¨Ã Display-MOTOR ¢Í§Ëع ¹µ IPST-BOT Êѧࡵ¡ÒÃà¤Å×Íè ¹·Õ¢è ͧËع ¹µ Ëع ¹µ IPST-BOT ¨Ðà¤Å×Íè ¹·Õµè ç仢 ҧ˹ ÒÍ ҧµ Íà¹×Íè § ËÒ¡¾ºÊÔ§è ¡Õ´¢ÇÒ§áÅÐà¡Ô´¡Òê¹ Ëع ¹µ IPST-BOT ¨Ðà»ÅÕÂè ¹¡ÒÃà¤Å×Íè ¹·Õàè ¾×Íè ËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§´ Ǥ Ò·ÕÊè ÁØ ÁÒä´ ¨Ò¡¤íÒÊѧè ã¹â»Ãá¡ÃÁ ·íÒãË àÃÒäÁ ÊÒÁÒö·Ã񼊫 ÅÇ §Ë¹ ÒÇ Ò Ëع ¹µ ¨Ðà¤Å×Íè ¹·ÕËè źËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§ä»ã¹·Ôȷҧ㴠´ ÇÂÇÔ¸¡Õ Òùըé ÐàËÁÒÐÊíÒËÃѺ ¡ÒÃá¡ » ËÒ㹡óշËÕè ¹Ø Â¹µ à¤Å×Íè ¹·Õàè ¢ Òä»ã¹ÁØÁÍѺ·ÕÁè ÅÕ ¡Ñ ɳÐà» ¹ÁØÁ©Ò¡ «Ö§è Ëҡ㪠â»Ãá¡ÃÁ㹡Ò÷´Åͧ·Õè 6 ·Õ¡è Òí ˹´Ç Ò àÁ×Íè ª¹·Ò§« ÒÂãË àÅÕÂé Ç¢ÇÒ áÅЪ¹·Ò§¢ÇÒãË àÅÕÂé Ç« Ò ¨Ð·íÒãË Ë¹Ø Â¹µ äÁ ÊÒÁÒöà¤Å×Íè ¹·ÕÍè Í¡ ¨Ò¡ÁØÁä´ áµ ´Ç ¡ÒÃ㪠෤¹Ô¤¡ÒÃÊØÁ ¤ ҨзíÒãË ·ÈÔ ·Ò§ã¹¡ÒÃàÅÕÂé Ç« ÒÂËÃ×Í¢ÇÒäÁ á¹ ¹Í¹ Ëع ¹µ ¨§Ö ÊÒÁÒö ÍÍ¡¨Ò¡ÁØÁÍѺ·ÕèÁÕÅѡɳÐà» ¹ÁØÁ©Ò¡ä´
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
#include <motor.h> #include <sleep.h> #include <in_out.h> #include <lcd.h> #include <sound.h> #define POW 70 void forward(unsigned int delay) { motor(1,POW); motor(2,POW); sleep(delay); } void backward(unsigned int delay) { motor(1,-POW); motor(2,-POW); sleep(delay); } void turn_left(unsigned int delay) { motor(1,-POW); motor(2,POW); sleep(delay); } void turn_right(unsigned int delay) { motor(1,POW); motor(2,-POW); sleep(delay); } void main() { char left,right; lcd( Press SW1 ); sw1_press(); while(1) { left = in_a(0); right = in_a(1); if(left==0 || right==0)
113
// 㪠§Ò¹¿ §¡ ª¹Ñè motor // 㪠§Ò¹¿ §¡ ª¹Ñè sleep // 㪠§Ò¹¿ §¡ ª¹Ñè sw1_press áÅÐ in_a // 㪠§Ò¹¿ §¡ ª¹Ñè lcd // 㪠§Ò¹¿ §¡ ª¹Ñè beep_b // ¡íÒ˹´¡íÒÅѧ¢Ñº¢Í§ÁÍàµÍà ¤§·Õ·è Õè 70 % ¢Í§¡íÒÅѧ¢ÑºÊÙ§ÊØ´ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò // ÁÍàµÍà 1 ËÁع仢 ҧ˹ Ò // ÁÍàµÍà 2 ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ ¶ÍÂËÅѧ // ÁÍàµÍà 1 ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 ËÁع¶ÍÂËÅѧ // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ ¶ÍÂËÅѧ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç« Ò // ÁÍàµÍà 1 ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç« Ò // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç¢ÇÒ // ÁÍàµÍà 1 ËÁع仢 ҧ˹ Ò // ÁÍàµÍà 2 ËÁع¶ÍÂËÅѧ // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç¢ÇÒ // ¡íÒ˹´µÑÇá»Ãà¡çº¤ ÒʶҹСÒ깢ͧἧǧ¨ÃÊÇÔµª ´Ò ¹« ÒÂáÅТÇÒ // áÊ´§¢ ͤÇÒÁᨠ§¼Ùã ª §Ò¹ãË ¡´ÊÇÔµª SW1 // Ãͨ¹¡Ãзѧè ÊÇÔµª SW1 ¶Ù¡¡´ // ǹÃͺäÁ è٠º // Í Ò¹¤ ÒʶҹСÒá´ÊÇÔµª ·Ò§« ÒÂÁÒà¡çº·Õµè ÇÑ á»Ã left // Í Ò¹¤ ÒʶҹСÒá´ÊÇÔµª ·Ò§¢ÇÒÁÒà¡çº·Õµè ÇÑ á»Ã right // µÃǨÊͺ¡Ò깢ͧÊÇÔµª ´Ò ¹ã´´ ҹ˹֧è ËÃ×ͷѧé Êͧ´ Ò¹¾Ã ÍÁ¡Ñ¹
â»Ãá¡ÃÁ·Õè L7-1 ä¿Å robo_bumper3.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺËع ¹µ IPST-BOT à¤Å×Íè ¹·Õè µÃǨ¨ÑºáÅÐËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§´ ǵÑǵÃǨ¨Ñº¡Òê¹ÊͧµÑÇẺÊØÁ ·ÔÈ·Ò§¡ÒÃà¤Å×Íè ¹·Õè (ÁÕµÍ )
114 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
{
beep_b(4); backward(1000); if(rand()%2==1) { } else {
// ¡íÒà¹Ô´àÊÕ§ 1 µÔ´ê // ¶ÍÂËÅѧà¾×Íè àµÃÕÂÁà»ÅÕÂè ¹·ÔÈ·Ò§¡ÒÃà¤Å×Íè ¹·Õè 1 ÇÔ¹Ò·Õ // ÊØÁ µÑÇàÅ¢ 2 ¤ Ò(Í񬊫 ¼ÅÅѾ¸ à» ¹ 0 ËÃ×Í 1) áÅ Ç // µÃǨÊÍºÇ Ò à» ¹ 1 ËÃ×ÍäÁ
turn_left(800);
// ¶ Òà» ¹ 1 ¡íÒ˹´ãË àÅÕÂé Ç« Ò 0.8 ÇÔ¹Ò·Õ
turn_right(800);
// ¶ Òà» ¹ 0 ¡íÒ˹´ãË àÅÕÂé Ç¢ÇÒ 0.8 ÇÔ¹Ò·Õ
} } else { forward(10); }
// Ëع ¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Òª ǧàÇÅÒÊѹé æ
} } ¤íÒ͸ԺÒÂâ»Ãá¡ÃÁ àÃÔÁè µ ¹¡Ò÷íÒ§Ò¹ â»Ãá¡ÃÁáÊ´§¢ ͤÇÒÁ·Õâè Á´ÙÅ LCD à» ¹ Press SW1 à¾×Íè ÃÍ¡Òá´ÊÇÔµª SW1 µ Íà¹×Íè § ¨Ò¡ºÃ÷Ѵ¤íÒÊÑ觶ѴÁÒ¤×Í sw1_press àÁ×è;º¡Òá´ÊÇÔµª SW1 â»Ãá¡ÃÁ¨Ö§¨ÐࢠÒ仡ÃзíÒ¤íÒÊÑè§ã¹ÀÒÂã¹ÅÙ» while(1){} «Ö§è à» ¹¡ÒÃÇ¹Í Ò¹¤ ÒʶҹÐÍÔ¹¾Øµ¢Í§á¼§Ç§¨ÃÊÇÔµª ·µÕè Í à¢ Ò¡Ñº¾Íà µ PA0 áÅÐ PA1 ÁÒà¡çº·Õµè ÇÑ á»Ã left áÅÐ right ¨Ò¡¹Ñ¹é â»Ãá¡ÃÁ¨Ð¹íÒ¤ ҢͧµÑÇá»Ã·Ñ§é Êͧä»à»ÃÕºà·Õº´Ñ§¹Õé ¡Ã³Õ if(left==0 || right==0) à» ¹¡ÒõÃǨÊͺ¡Ò깢ͧÊÇÔµª ´Ò ¹ã´´ ҹ˹֧è ËÃ×ͷѧé Êͧ´ Ò¹¾Ã ÍÁ ¡Ñ¹ ¶ Òà» ¹¨ÃÔ§ (ÁÕ¡Òá´ÊÇÔµª ËÃ×Í¡Ô´¡Òê¹) ¨ÐµÍºÊ¹Í§´ Ç¡ÒáíÒà¹Ô´àÊÕ§ÊÑÒ³ 1 ¤ÃÑ§é ¨Ò¡¹Ñ¹é Ëع ¹µ ¶ÍÂËÅѧáÅ Ç·íÒ¡ÒÃÊØÁ ¤ ÒµÑÇàÅ¢ÃÐËÇ Ò§ 0 ËÃ×Í 1 ෠ҹѹé à¾×Íè ¹íÒÁÒ¡íÒ˹´·Ôȷҧ㹡ÒÃàÅÕÂé Ç ¡Ã³Õ else à» ¹¡ÒÃ͹ØÁÒ¹Ç Ò á¼§Ç§¨ÃÊÇÔµª ·§Ñé ÊͧµÑÇäÁ ¶¡Ù ¡´ «Ö§è ¶ Òà» ¹¨ÃÔ§ (äÁ Á¡Õ Òá´ÊÇÔµª ËÃ×ÍäÁ ÁÕ ¡Òê¹à¡Ô´¢Ö¹é ) ¨ÐµÍºÊ¹Í§ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò
â»Ãá¡ÃÁ·Õè L7-1 ä¿Å robo_bumper3.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺËع ¹µ IPST-BOT à¤Å×Íè ¹·Õè µÃǨ¨ÑºáÅÐËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§´ ǵÑǵÃǨ¨Ñº¡Òê¹ÊͧµÑÇẺÊØÁ ·ÔÈ·Ò§¡ÒÃà¤Å×Íè ¹·Õè (¨º)
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
115
º··Õè 7 µÃǨ¨ÑºáÅÐÇÑ´ÃÐÂзҧ´ ÇÂáʧÍÔ¹¿ÃÒàô ÊíÒËÃѺ㹺·¹Õé¨Ð¡Å ÒǶ֧¡ÒûÃÐÂØ¡µ 㪠§Ò¹âÁ´ÙŵÃǨ¨ÑºáÅÐÇÑ´ÃÐÂзҧ´ ÇÂáʧÍÔ¹¿ÃÒàôàºÍà GP2D120 à ÇÁ¡ÑºËع ¹µ IPST-BOT ·íÒãË Ë¹Ø Â¹µ Á¤Õ ÇÒÁÊÒÁÒö㹡ÒõÃǨ¨ÑºÇѵ¶Øä´ â´ÂäÁ µÍ §ÊÑÁ¼ÑʡѺÇѵ¶Ø ·íÒãË ÊÒÁÒöà¤Å×Íè ¹·Õàè ¢ ÒËÒËÃ×ÍËźËÅÕ¡ä´ Í ҧ©ÅÒ´¢Ö¹é
7.1 ¤Ø³ÊÁºÑµ¢Ô ͧâÁ´ÙÅ GP2D120 GP2D120 à» ¹âÁ´ÙŵÃǨ¨ÑºÃÐÂзҧẺÍÔ¹¿ÃÒàôÁÕ¢Òµ Í㪠§Ò¹ 3 ¢Ò¤×Í ¢Òµ Íä¿àÅÕÂé § (Vcc), ¢Ò¡ÃÒÇ´ (GND) áÅТÒáç´Ñ¹àÍÒµ ¾µØ (Vout) ¡ÒÃÍ Ò¹¤ Òáç´Ñ¹¨Ò¡ GP2D120 ¨Ðµ ͧÃÍãË ¾¹ ª ǧàµÃÕÂÁ¤ÇÒÁ¾Ã ÍÁ¢Í§ âÁ´ÙÅ¡ ͹ «Ö§è 㪠àÇÅÒ»ÃÐÁÒ³ 32.7 ¶Ö§ 52.9 ÁÔÅÅÔÇ¹Ô Ò·Õ (1 ÁÔÅÅÔÇ¹Ô Ò·Õ෠ҡѺ 0.001 ÇÔ¹Ò·Õ) ´Ñ§¹Ñ¹é ¡ÒÃÍ Ò¹¤ Òáç´Ñ¹¨Ö§ ¤ÇÃÃÍãË ¾¹ ª ǧàÇÅҴѧ¡Å ÒÇ仡 ͹ ¤ Òáç´Ñ¹àÍÒµ ¾µØ ¢Í§ GP2D120 ·ÕÃè ÐÂзҧ 30 ૹµÔàÁµÃ·Õäè ¿àÅÕÂé § +5V ÍÂÙã ¹ª ǧ 0.25 ¶Ö§ 0.55V â´Â¤ Ò ¡ÅÒ§¤×Í 0.4V ª ǧ¢Í§¡ÒÃà»ÅÕÂè ¹á»Å§áç´Ñ¹àÍÒµ ¾µØ ·ÕÃè ÐÂзҧ 4 ૹµÔàÁµÃ¤×Í 2.25V s0.3V LED ÍÔ¹¿ÃÒàôµÑÇÊ §
¡ÃÒ¿áÊ´§¡Ò÷íÒ§Ò¹¢Í§ GP2D120
µÑÇÃѺáʧÍÔ¹¿ÃÒàô
áç´Ñ¹àÍÒµ ¾Øµ (V) 2.8
/2 , /2 ,
2.4 Vout GND
Vcc
2.0 1.6
ä¿àÅÕé§
1.2 38.3±9.6
¡ÒÃÇÑ´ÃÐÂÐË Ò§ áç´Ñ¹àÍÒµ ¾Øµ
0.8
ÁÔÅÅÔÇÔ¹Ò·Õ
ÇÑ´¤ÃÑ駷Õè 1 äÁ á¹ ¹Í¹
ÇÑ´¤ÃÑ駷Õè 2
0.4
ÇÑ´¤ÃÑ駷Õè n
àÍÒµ ¾Øµ¤ÃÑ駷Õè 1 àÍÒµ ¾Øµ¤ÃÑ駷Õè 2 5 ÁÔÅÅÔÇÔ¹Ò·Õ
0
àÍÒµ ¾Øµ¤ÃÑ駷Õè n
0
4
8
12
16
20
24
28
ÃÐÂÐË Ò§¨Ò¡Çѵ¶Ø·µèÕ ÃǨ¨Ñº (cm)
32
* 㪠¡ÃдÒÉà·Ò¢ÒÇÃع R-27 ¢Í§ Kodak «Ö§è ´ Ò¹¢ÒÇÁÕÍѵÃÒ¡ÒÃÊз ͹áʧ 90% à» ¹ Çѵ¶ØÊíÒËÃѺÊз ͹áʧà¾×èÍÇÑ´ÃÐÂзҧ
ÃÙ»·Õè 7-1 áÊ´§Ë¹ ÒµÒ, ¡ÒèѴ¢Ò áÅСÃÒ¿¤Ø³ÊÁºÑµ¢Ô ͧ GP2D120 âÁ´ÙÅÇÑ´ÃÐÂзҧ´ ÇÂáʧÍÔ¹¿ÃÒàô
116 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
7.2 ä¿Å äźÃÒÃÕ gp2d120_lib.h ÊíÒËÃѺ㪠§Ò¹à¾×Íè µÔ´µ ͡ѺâÁ´ÙÅ GP2D120 ä¿Å äźÃÒÃÕ gp2d120_lib.h ºÃèت´Ø ¤íÒÊѧè ËÃ×Í¿ §¡ ª¹Ñè â»Ãá¡ÃÁÀÒÉÒ C à¾×Íè 㪠§Ò¹âÁ´ÙÅ GP2D120 ¡ ͹ àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè ÀÒÂã¹äźÃÒÃÕ¹¼Õé ¾Ù ² Ñ ¹Òµ ͧ¼¹Ç¡ä¿Å äźÃÒÃÕ㹵͹µ ¹¢Í§â»Ãá¡ÃÁ´ ǤíÒÊѧè
#include <gp2d120_lib.h>
7.2.1 ¡ÒÃàª×èÍÁµ Í·Ò§ÎÒà ´áÇà à¹×Íè §¨Ò¡âÁ´ÙÅ GP2D120 à» ¹µÑǵÃǨ¨Ñº·Õãè Ë ¼Å¡Ò÷íҧҹ໠¹áç´Ñ¹ä¿µÃ§·ÕÊè ÁÑ ¾Ñ¹¸ ¡ºÑ ÃÐÂзҧ·ÕÇè ´Ñ ä´ ã¹¡ÒÃ㪠§Ò¹¨Ö§µ ͧµ ͡Ѻª ͧÍÔ¹¾ØµÍйÒÅÍ¡ã´æ ¢Í§á¼§Ç§¨Ã¤Çº¤ØÁËع ¹µ ã¹·Õ¹è ¤Õé Í× ¨Ø´µ Í¢Ò¾Íà µ PA0 ¶Ö§ PA7
7.2.2 ¿ §¡ ª¹Ñè getdist ã¹äźÃÒÃÕ gp2d120_lib.h ÁÕ¿§ ¡ ª¹Ñè ·ÕÊè ¹ÑºÊ¹Ø¹¡Ò÷íÒ§Ò¹Ë¹Ö§è ¿ §¡ ª¹Ñè ¤×Í getdist 㪠ÍÒ ¹¤ ÒÃÐÂзҧ·ÕÇè ´Ñ ä´ ¨Ò¡âÁ´ÙÅ GP2D120 ã¹Ë¹ ÇÂૹµÔàÁµÃ ÃٻẺ
unsigned int getdist(char adc_ch)
¾ÒÃÒÁÔàµÍà adc_ch 㪠¡Òí ˹´ª ͧÍÔ¹¾ØµÍйÒÅÍ¡·ÕµÍ ¡ÑºâÁ´ÙÅ GP2D120 ¡Òä׹¤ Ò ¤×¹¤ Òà» ¹ÃÐÂзҧã¹Ë¹ ÇÂૹµÔàÁµÃ
7.3 ¡ÒõԴµÑ§é âÁ´ÙÅ GP2D120 ࢠҡѺËع ¹µ IPST-BOT ¨Ò¡º··Õè 6 Ëع ¹µ IPST-BOT ÊÒÁÒöËźËÅÕ¡ÊÔ§è ¡Õ´¢Ç񤊫 ´Ç ¡Òê¹ ÊíÒËÃѺ㹺·¹Õ¨é Ðà» ¹¡ÒþѲ¹Ò ¤ÇÒÁÊÒÁÒö¢Í§Ëع ¹µ IPST-BOT ä»ÍÕ¡ÃÐ´ÑºË¹Ö§è ´ Ç¡ÒÃ㪠âÁ´ÙÅ GP2D120 ÁÒª ÇÂ㹡ÒõÃǨ¨ÑºÃÐÂÐË Ò§¨Ò¡ ÊÔ§è ¡Õ´¢ÇÒ§ à¾×Íè ãË Ë¹Ø Â¹µ ÊÒÁÒöà¤Å×Íè ¹·Õàè ¾×Íè ËźËÅÕ¡ÊÔ§è ¡Õ´¢Ç񤊫 â´ÂäÁ ÊÁÑ ¼ÑÊ ¡ÒõԴµÑ§é âÁ´ÙÅ GP2D120 ÁÕ´§Ñ ¹Õé (1) ¹íÒâÁ´ÙÅ GP2D120 ÂִࢠҡѺ©Ò¡âÅËÐ 2N2 ´ ÇÂÊ¡ÃÙ 3N10 ÁÁ. áÅй͵ 3 ÁÁ. ¨Ò¡¹Ñ¹é ¹íÒ©Ò¡âÅËÐ 3N2 ¢Ñ¹ÂÖ´¡Ñº »ÅÒÂÍÕ¡´ Ò¹¢Í§©Ò¡âÅËÐ 2N2 ´ ÇÂÊ¡ÃÙ 3N10 ÁÁ. áÅй͵ 3 ÁÁ. âÁ´ÙÅ GP2D120
ÂÖ´©Ò¡âÅËÐ 2x2 ࢠҡѺÃÙ嫅 ´ Ò¹Ë¹Ö§è ¢Í§ GP2D120 ´ ÇÂÊ¡ÃÙ 3x10 ÁÁ. ¹Íµ 3 ÁÁ.
ÂÖ´©Ò¡âÅËÐ 3x2 ࢠҡѺ »ÅÒ¢ͧ©Ò¡âÅËÐ 2x2 ´ ÇÂÊ¡ÃÙ 3x10 ÁÁ. áÅÐ ¹Íµ 3 ÁÁ.
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
117
(2) ¹íÒâÁ´ÙÅ GP2D120 ÂִࢠҡѺ´ ҹ˹ ҢͧËع ¹µ â´Â㪠ʡÃÙ 3N10 ÁÁ. áÅй͵ 3 ÁÁ. ¢Ñ¹ÂÖ´ ã¹µíÒá˹ §´Ñ§ÃÙ» ¨Ò¡¹Ñ¹é ·íÒ¡ÒûÃѺá¹Ç¢Í§âÁ´ÙÅ GP2D120 ãË ÍÂÙã ¹á¹ÇÃйҺáÅТѹʡÃÙ嫅 ãË á¹ ¹
(3) àÊÕºÊÒÂÊÑÒ³¢Í§âÁ´ÙÅ GP2D120 à¢ Ò·Õ¨è ´Ø µ Í PA4 ¨Ðä´ Ë¹Ø Â¹µ IPST-BOT ·ÕÊè ÒÁÒöµÃǨ¨ÑºÊÔ§è ¡Õ´¢ÇÒ§ ẺäÁ ÊÁÑ ¼ÑÊ ¾Ã ÍÁÊíÒËÃѺ¡ÒÃà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁµ Íä»
118 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡Ò÷´Åͧ·Õè 8 µÃǨ¨ÑºáÅÐÇÑ´¤ ÒÃÐÂзҧ¨Ò¡âÁ´ÙÅ GP2D120 ¡Ò÷´Åͧ¹Õàé » ¹¡ÒÃà¢Õ¹â»Ãá¡ÃÁà¾×Íè Í Ò¹¤ ÒÃÐÂзҧ¨Ò¡âÁ´ÙÅ GP2D120 â´Â¹íÒ¤ Ò·ÕÍè Ò ¹ä´ ÁÒáÊ´§ ·Õâè Á´ÙÅ LCD ¢Í§Ëع ¹µ IPST-BOT
¡ÒÃàª×èÍÁµ Í·Ò§ÎÒà ´áÇà l
µ ÍÊÒ¨ҡ¾Íà µ PA4 ࢠҡѺâÁ´ÙÅ GP2D120
/2 ,
PORTC
DC INPUT
PA6
IPST MicroBOX PA0
PB1
PB0
PB3
PB2
I P S T - B O T o ro b o t - -- -- -- - --- - - - --
M2 M1
PD7 PD6
PD1
PD5
PD0
PD4
TxD
PD3
RxD
MOTOR OUTPUT
PD2
* * * *! *"
DisplayMotor
SW3
+ -
SW2
S
PB4
RESET
SW1
SERVO
ATMEGA16
PA2
PA1
Over 7.5V
++ Vin -
PA3
SDA RS-232 LOW BATT.
Vm OUT
PA7
PA4
PA5
KNOB PA7
DC input
OFF
ON
ON
SCL GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
µ Í GP2D120 ࢠҷÕè¨Ø´µ Í PA4
¢Ñ鹵͹¡Ò÷´Åͧ L8.1 Êà ҧä¿Å â»Ãà¨ç¡µ ªÍ×è gp2d120_test áÅоÔÁ¾ â»Ãá¡ÃÁÀÒÉÒ C µÒÁâ»Ãá¡ÃÁ·Õè L8-1 L8.2 ¤ÍÁä¾Å áÅдÒǹ âËÅ´â»Ãá¡ÃÁà¾×Íè ·´Êͺ¼ÅÅѾ¸ ¡Ò÷íÒ§Ò¹
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
119
#include <sleep.h> // ¼¹Ç¡ä¿Å äźÃÒÃÕÊÒí ËÃѺ¿ §¡ ª¹Ñè sleep #include <lcd.h> // ¼¹Ç¡ä¿Å äźÃÒÃÕÊÒí ËÃѺ¿ §¡ ª¹Ñè lcd #include <gp2d120_lib.h> // ¼¹Ç¡ä¿Å äźÃÒÃÕÊÒí ËÃѺ¿ §¡ ª¹Ñè getdist void main() { int dist; // ¡íÒ˹´µÑÇá»Ãà¡çº¤ ÒÃÐÂзҧ¨Ò¡ GP2D120 while(1) // ÅٻǹÃͺäÁ è٠º { dist = getdist(4); // Í Ò¹¤ ÒÃÐÂзҧ¨Ò¡ GP2D120 if(dist>=4 && dist<=32) // à»ÃÕºà·ÕºÃÐÂÐ·Ò§Ç ÒÍÂÙã ¹¢Íºà¢µ·Õ¶è ¡Ù µ ͧËÃ×ÍäÁ { lcd( Distance: %d cm ,dist); // áÊ´§¤ ÒÃÐÂзҧ·ÕÍè Ò ¹ä´ ¨Ò¡ GP2D120 ·Õâè Á´ÙÅ LCD } else { lcd( Out of Range! ); // áÊ´§¢ ͤÇÒÁᨠ§àµ×͹ÃÐÂзҧÍÂÙ¹ Í¡¢Íºà¢µ¡ÒÃÇÑ´ } sleep(200); // ˹ ǧàÇÅÒáµ ÅÐÃͺ㹡Ò÷íÒ§Ò¹ } } ¤íÒ͸ԺÒÂâ»Ãá¡ÃÁ â»Ãá¡ÃÁ¨Ð·íÒ§Ò¹ÀÒÂã¹ÅÙ» while(1){} â´Â¤ ÒÃÐÂзҧ·ÕÍè Ò ¹ä´ ¨Ò¡âÁ´ÙÅ GP2D120 ¨Ò¡¤íÒÊѧè getdist ¨Ð¶Ù¡à¡çºäÇ ·µÕè ÇÑ á»Ã dist ¨Ò¡¹Ñ¹é ¨Ð¶Ù¡¹íÒä»ÇÔà¤ÃÒÐË ÇÒ ÍÂÙã ¹ª ǧ 4 ¶Ö§ 32 ૹµÔàÁµÃËÃ×ÍäÁ ¡Í ¹¡ÒùíÒä»áÊ´§ ¼Å·Õâè Á´ÙÅ LCD â´Â¶ Ò¾ºÇ ÒÍÂÙ¹ Í¡à˹×͢ͺࢵ´Ñ§¡Å ÒǨж×ÍÇ Ò¢ ÍÁÙÅ·Õäè ´ Áҹѹé äÁ ÊÒÁÒöàª×Íè ¶×Íä´ «§Öè ¨ÐáÊ´§ ¢ ͤÇÒÁ·Õâè Á´ÙÅ LCD à» ¹ Out of Range! áÅСÃкǹ¡Ò÷ѧé ËÁ´¨íÒ·íÒ§Ò¹«éÒí æà´ÔÁÀÒÂãµ à§×Íè ¹ä¢·Õàè » ¹¨ÃÔ§ µÅÍ´¡ÒŢͧÅÙ» while(1){}
â»Ãá¡ÃÁ·Õè L8-1 ä¿Å gp2d120_test.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺËع ¹µ IPST-BOT à¾×Íè Í Ò¹¤ Ò¨Ò¡ GP2D120 âÁ´ÙÅÇÑ´ÃÐÂзҧ´ ÇÂáʧÍÔ¹¿ÃÒàô
120 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
L8.3 àÃÔÁè µ ¹Ãѹâ»Ãá¡ÃÁ ·Õâè Á´ÙÅ LCD ¢Í§Ëع ¹µ áÊ´§¢ ͤÇÒÁ Distance:
xxx
cm
â´Â·Õè xxx ¤×ͤ ÒÃÐÂзҧ·ÕÇè ´Ñ ä´ ã¹Ë¹ ÇÂૹµÔàÁµÃ áÅÐáÊ´§¼Åà» ¹ Out
of
Range!
àÁ×Íè ÃÐÂзҧ·ÕÇè ´Ñ ä´ ÍÂÙ¹ Í¡à˹×͢ͺࢵ 4 ¶Ö§ 32 ૹµÔàÁµÃ L8.4 ¹íÒÇѵ¶ØËÃ×ÍÁ×Í¢ÇÒ§´ ҹ˹ ҢͧâÁ´ÙÅ GP2D120 ã¹ÃÐÂзíÒ¡Òä×Í 4 ¶Ö§ 32 ૹµÔàÁµÃ ¨Ò¡¹Ñ¹é àÅ×Íè ¹Çѵ¶Ø ࢠÒáÅÐÍÍ¡Ë Ò§¨Ò¡âÁ´ÙÅ GP2D120 Êѧࡵ¤ ÒÃÐÂзҧ·ÕÍè Ò ¹ä´ ·âÕè Á´ÙÅ LCD ¶ ÒËÒ¡Çѵ¶ØÍÂÙã ¹ÃÐÂзíÒ¡ÒâͧâÁ´ÙÅ GP2D120 ·Õâè Á´ÙÅ LCD ¨ÐáÊ´§¤ ҢͧÃÐÂÐË Ò§ÃÐËÇ Ò§Çѵ¶Ø ¡ÑºâÁ´ÙÅ GP2D120 ã¹Ë¹ ÇÂૹµÔàÁµÃÍÍ¡ÁÒ áµ ¶Ò ËÒ¡Çѵ¶ØËÃ×ÍÊÔ§è ¡Õ´¢ÇÒ§¹Ñ¹é äÁ ÍÂÙã ¹ÃÐÂзíÒ¡Òà ·Õâè Á´ÙÅ LCD ¨ÐáÊ´§¢ ͤÇÒÁ Out of Range! á·¹
PA4
PA1
PA3
PA0
PA2
PA6 PA7 PORTC
SCL
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
ON
OFF
DC input
»ÃѺÃÐÂÐË Ò§¢Í§ÊÔ觡մ¢ÇÒ§ ãË à¢ Òã¡Å áÅÐË Ò§ÍÍ¡ 㹪 ǧ 3 ¶Ö§ 45 ૹµÔàÁµÃ
ON
PA7
PA6
SCL
PA1
PA0
PB1
PB0
PB3
PB2
Over 7.5V
I P S T - B O T o ro b o t - - - - - - - - -- - - - - - -
PD7
M2
PD5
MOTOR OUTPUT
M1
PD1
PD6
TxD
PD0
PD4
SERVO
* * * *! *"
RxD
PD3
SW3
PD2
SW2
+ -
SW1
S
PB4
RESET
DisplayMotor
ATMEGA16
PA2
Vm OUT
IPST MicroBOX PA3
DC INPUT
SDA RS-232 LOW BATT.
++ Vin -
PA4
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA5
KNOB PA7
DC input
OFF
ON
PORTC
Vm OUT
ON
Over 7.5V
PB3
PB1
PB2
PB0
PB4
++ Vin -
S
+ -
M2
DC INPUT
PD7
M1
MOTOR OUTPUT
PD5
PD6
SDA RS-232 LOW BATT.
PD1
TxD
B0 B1 B2 B3 B4
RxD
PD3
PD4
GP2D120
SW3
I P S T - B O T o ro b o t - - - - - - - - -- - - - - - -
SW2
PD0
DisplayMotor PD2
IPST MicroBOX
PA5
SW1
KNOB PA7
RESET ATMEGA16
SERVO
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
121
¡Ò÷´Åͧ·Õè 9 ËØ ¹Â¹µ ËźËÅÕ¡ÊÔ觡մ¢ÇҧẺäÁ ÊÑÁ¼ÑÊ ¡Ò÷´Åͧ¹Õàé » ¹¡ÒþѲ¹Ò¤ÇÒÁÊÒÁÒö¢Í§Ëع ¹µ IPST-BOT ¨Ò¡·Õàè ¤Âà¤Å×Íè ¹·ÕËè źËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§ ´ Ç¡Òê¹ ÁҶ֧㹡Ò÷´Åͧ¹Õ¨é Ð㪠âÁ´ÙÅ GPD120 ࢠÒÁÒª ÇÂ㹡ÒõÃǨ¨ÑºáÅÐËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇҧẺäÁ ÊÑÁ¼ÑÊ â´ÂÁÕà§×Íè ¹ä¢¡Ò÷íÒ§Ò¹´Ñ§¹Õé 1. ¡Ã³ÕäÁ ¾ºÊÔ§è ¡Õ´¡ÇÒ§ã¹ÃÐÂÐ 4 ¶Ö§ 14 ૹµÔàÁµÃ Ëع ¹µ ¨Ðà¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò 2. ¡Ã³Õ¾ºÊÔ§è ¡Õ´¡ÇÒ§ã¹ÃÐÂеѧé áµ 15 ૹµÔàÁµÃ¢Ö¹é ä» Ëع ¹µ ¨Ðà¤Å×Íè ¹·Õ¶è ÍÂËÅѧáÅ ÇËÁع µÑÇä»·Ò§« ÒÂà¾×Íè à»ÅÕÂè ¹·ÔÈ·Ò§à¤Å×Íè ¹·Õè
¢Ñ鹵͹¡Ò÷´Åͧ L9.1 Êà ҧä¿Å â»Ãà¨ç¡µ ªÍ×è robo_ranger áÅоÔÁ¾ â»Ãá¡ÃÁÀÒÉÒ C µÒÁâ»Ãá¡ÃÁ·Õè L9-1 L9.2 ¤ÍÁä¾Å áÅдÒǹ âËÅ´â»Ãá¡ÃÁà¾×Íè ·´Êͺ¼ÅÅѾ¸ ¡Ò÷íÒ§Ò¹ L9.3 àÃÔÁè µ ¹Ãѹâ»Ãá¡ÃÁ ·Õâè Á´ÙÅ LCD ¢Í§Ëع ¹µ áÊ´§¢ ͤÇÒÁ Press
SW1
ᨠ§ãË ¼ãÙ ª §Ò¹¡´ÊÇÔµª SW1 ·Õºè Íà ´ Display-power ¢Í§Ëع ¹µ IPST-BOT à¾×Íè Êѧè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õè L9.4 ¡´ÊÇÔµª SW1 ·Õºè Íà ´ Display-MOTOR ¢Í§Ëع ¹µ IPST-BOT Êѧࡵ¡ÒÃà¤Å×Íè ¹·Õ¢è ͧËع ¹µ áÅ Ç·´Åͧ 㪠ÁÍ× ËÃ×ÍÇÒ§Çѵ¶Øà¾×Íè ¡Õ´¢ÇÒ§¡ÒÃà¤Å×Íè ¹·Õ¢è ͧËع ¹µ Ëع ¹µ IPST-BOT ¨Ðà¤Å×Íè ¹·Õµè ç仢 ҧ˹ ÒÍ ҧµ Íà¹×Íè § ¨¹¡ÃÐ·Ñ§è µÃǨ¨Ñº¾ºÊÔ§è ¡Õ´¢ÇÒ§ Ëع ¹µ ¨Ð¶ÍÂËÅѧáÅ ÇËÁعµÑÇä»·Ò§« Ò ¨Ò¡¹Ñ¹é à¤Å×Íè ¹·Õµè çà¾×Íè ·íÒãË ÊÒÁÒöËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§ä»ä´ áµ ¶Ò ËÒ¡ËÁع µÑÇáÅ ÇÂѧ¾ºÊÔ§è ¡Õ´¢ÇÒ§ Ëع ¹µ ¨Ð¶ÍÂËÅѧÍÕ¡¤Ãѧé áÅ ÇËÁعµÑÇä»·Ò§« Ò ¨Ðà» ¹àª ¹¹Õ¨é ¹¡Ç Ҩо ¹ÊÔ§è ¡Õ´¢ÇÒ§ ¨Ö§à¤Å×Íè ¹·Õµè ç¼ Ò¹ä»ä´
122 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
ÊÔ觡մ¢ÇÒ§
ÊÔ§è ¡Õ´¢ÇÒ§
<15 ૹµÔàÁµÃ
/2 , /2 ,
/2 ,
Vm OUT
PD7
PD5
M2 M1
PD2
PA7
PA6
IPST MicroBOX
ATMEGA16
IPST - B O TPD1o r o b o t PD0
PD6
PD3
TxD
Over 7.5V
PD4
RxD
MOTOR OUTPUT
DisplayMotor
M2
PD7
PD5
SERVO
PORTC
IPST MicroBOX
M1
ATMEGA16
PA6
PD6
PA7
Vm OUT
IPST MicroBOX
PD3
Vm OUT
PA6
PD4
PORTC
DC INPUT
* * * *! *"
++ Vin -
PD2
DC input
OFF
DisplayMotor
PA7
ATMEGA16
PORTC
++ Vin -
SERVO
DC input
OFF
SW3
-
RESET
SW2
+
PD1
ON
SCL
SDA RS-232 LOW BATT.
SW1
S
PD0
- - - - - -- - -- - - - -- ON
TxD
Over 7.5V
I P S T - B O T o ro b o t
KNOB PA7
PA0
RxD
DC INPUT
SDA RS-232 LOW BATT.
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
* * * *! *"
PB1 PA5PB3 PA3PB4 PA1
-
SW3
+
SW2
S
PB4
RESET
SW1
MOTOR OUTPUT
PB0 PA4PB2 PA2
PB3
PB2
PA0
PB0
PA1
PB1
PA2
PA0
PA3
PA1
I P S T - B O T o ro b o t - - - - - -- - -- - - - - - -
ON
SCL KNOB PA7
PA4
PA5
Over 7.5V
++ Vin -
PA2
PA3
RS-232 LOW BATT.
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
SDA
ON
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
DC INPUT
DC input
OFF
ON
ON
SCL KNOB PA7
PD7
M2
PD5
ON
OU TP UT
ON
PD7
M2 M1
PD6
PD5
PD3
PD4
PD2
.5 V
OU TP UT
-
t
-
o
-
M OT OR
b
-
-
--
T
B4 B3
PD 1
B2 B1
B0
SW 3 SW 2
PD 0
O
-
-
-B
-
T
-
S
-
-
P
-
ro o
SC L
I
-
Tx D
IN PU T DC
Ov er 7
PD 1
Rx D PD 0
SW 3 SW 2 SW 1
-
Rx D
M OT OR
SD
KN PA OB 7
RE SE T
S LO DA W BA R TT S-2 . 32
IN PU T
.5 V
PB 4
M1
PD6
SW 1
B4
B3
B2
B1
SE RV O
B0
Tx D PD 1
Rx D
PD3 PD0 PD2
PD4
AT M
DisplayMotor
RE SE T
-
ot
-
yM
EG A1 6
-
KN PA OB 7
DC
Ov er 7
DC
OU T Vm POUT UT
M OT OR
pla
-
Dis
-
LO A I W BA RS P TT -2 S . 32 T G-P- - B O 2D T 12- - o r 0 o b o t B0 B1 B2 B3 B4 Tx D
SC L
ON .5 V
IN PU T
Ov er 7
T o r - - ob o t -
O
-
or
IPST MicroBOX
-B
PD 3 PD 2
PA6
T
PD 5
PD 4
ATMEGA16
PD 7
PD 6
PA7
-
M 1
SERVO SW 2 SW 3
SE RV O
M 2
SW 1
EG A1 6
RE SE T
AT M
OU T
PORTC
SC L
or
Vm
S LO DA W BA R TT S-2 . 32
ot
PB 3
PB 3 PB 4
ÀÒ¾áÊ´§¡Ò÷íÒ§Ò¹¢Í§Ëع ¹µ IPST-BOT à¾×Íè ËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇҧẺäÁ ÊÁÑ ¼ÑÊ
Dis
pla yM
EG A1 6
SE RV O
S
PD 3
PB 2
PD 5
PB 0 PB 1
-
PD 2
PA 0
PA 3
+
PD 4
AT M
PA 2
PA 5
S
PD 7
or
PA 4
-
M 2
ot
P
OU T
yM
I
Vm
pla
-
+ +Vin
PD 6
PD 3
Dis
ON
M 1
PD 5 PD 2
KN PA OB 7
PD 7 PD 4
PD1
M 2
PD0
PD 6
TxD
in DC pu t
OF F
G P ND P C0 P C1 P C2 P C3 P C4 P C5 PC C6 +5 7 V
PA 1
MOTOR OUTPUT
M 1
GP 2D 12 0
OU T
GP 2D 12 0
Vm
* * * *! *"
RxD
I M PST ic ro BO X
PB 2
PB 1
SW3
-
SW2
PB 0
+
PB4
SW1
-
PPAA 66
++ Vin -
S
S
PB2
PB3
RESET
+
PPAA 77
Over 7.5V
- - - -- - - - -- -- - - - -
PB0 PA 1
DC INPUT
SDA RS-232 LOW BATT.
I P S T - B O T o r o+ b ot -
PA 0
PB 2
PB 4
DC input
PA0
PB1 I M PST ic ro BO X
PA 2
OFF
PPAA 77
PA2
PPAAPA1 66
PA 3
-
PB 3 ON
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA3 PA 5
PB 0 PB 1
ON
PPOO RRTT CC
PA5 PA 4
PD1
PPOO RRTT CC
PA 1
-
S
PA 0
PA 3
SCL
-
PB4
I M PST ic ro BO X
ON
PD0
MOTOR OUTPUT
DisplayMotor
PB3
PB2
PPOO RRTT CC
PPAA 66
PA 2
PA 5
in DC pu t
+ +Vin
G P ND P C0 P C1 P C2 P C3 P C4 P C5 P C6 +5 C7 V
PA 4
G P ND P C0 P C1 KNOB P C2 P C3 PA7 P C4 P C5 P C6 +5 C7 V
TxD
in DC pu t
OF F
PPAA 77
/2 ,
* * * *! *"
RxD
ÊÔ§è ¡Õ´¢ÇÒ§
ON
+ +Vin
SW3
"
ÊÔ§è ¡Õ´¢ÇÒ§
OF F
SW2
+
PB0
!
SW1
S
PB1
RESET
SERVO
- - - - - -- - -- - - - -- -
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
#include <motor.h> #include <sleep.h> #include <in_out.h> #include <lcd.h> #include <gp2d120_lib.h> #define POW 70 void forward(unsigned int delay) { motor(1,POW); motor(2,POW); sleep(delay); } void backward(unsigned int delay) { motor(1,-POW); motor(2,-POW); sleep(delay); } void turn_left(unsigned int delay) { motor(1,-POW); motor(2,POW); sleep(delay); } void turn_right(unsigned int delay) { motor(1,POW); motor(2,-POW); sleep(delay); } void main() { unsigned int dist; lcd( Press SW1 ); sw1_press();
123
// àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè motor // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sleep // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sw1_press // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè lcd // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè getdist // ¡íÒ˹´¡íÒÅѧ¢Ñº¢Í§ÁÍàµÍà ¤§·Õ·è Õè 70 % ¢Í§¡íÒÅѧ¢ÑºÊÙ§ÊØ´ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع仢 ҧ˹ Ò // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ à´Ô¹Ë¹ ҵç // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ ¶ÍÂËÅѧµÃ§ // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع¶ÍÂËÅѧ // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ à´Ô¹¶ÍÂËÅѧµÃ§ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç« Ò // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç« Ò // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç¢ÇÒ // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع仢 ҧ˹ Ò // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع¶ÍÂËÅѧ // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç¢ÇÒ
// ¡íÒ˹´µÑÇá»Ãà¡çº¤ ÒÃÐÂзҧ¨Ò¡âÁ´ÙÅ GP2D120 // áÊ´§¢ ͤÇÒÁᨠ§¼Ùã ª §Ò¹ãË ¡´ÊÇÔµª SW1 // Ãͨ¹¡Ãзѧè ÊÇÔµª SW1 ¶Ù¡¡´
â»Ãá¡ÃÁ·Õè L8-1 ä¿Å servo_robo_ranger.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺËع ¹µ IPST-BOT à¤Å×Íè ¹·Õè ËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇҧẺäÁ ÊÁÑ ¼ÑÊ (ÁÕµÍ )
124 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
while(1) { dist = getdist(4); if(dist>=4 && dist<15) { backward(1000); turn_left(1500); } else { forward(10); } }
// ÅٻǹÃͺäÁ è٠º // Í Ò¹¤ ÒÃÐÂзҧ¨Ò¡ GP2D120 // à»ÃÕºà·ÕºÃÐÂÐ·Ò§Ç Ò¾ºÊÔ§è ¡Õ´¢Çҧ㹪 ǧ 4 ¶Ö§ 14 «Á. ËÃ×ÍäÁ // ¶ Ò¾ºÊÔ§è ¡Õ´¢ÇÒ§ Ëع ¹µ ¨Ð¶ÍÂËÅѧ 1 ÇÔ¹Ò·Õ // àÅÕÂé Ç« Ò 1.5 ÇÔ¹Ò·Õ
// Ëع ¹µ à¤Å×Íè ¹·Õäè »¢ ҧ˹ Ò 0.01 ÇÔ¹Ò·Õ
} ¤íÒ͸ԺÒÂâ»Ãá¡ÃÁ àÃÔÁè µ ¹¡Ò÷íÒ§Ò¹ â»Ãá¡ÃÁáÊ´§¢ ͤÇÒÁ·Õâè Á´ÙÅ LCD à» ¹ Press SW1 à¾×Íè ÃÍ¡Òá´ÊÇÔµª SW1 àÁ×Íè ¾º ¡Òá´ÊÇÔµª SW1 «Õ¾ÂÕ ¨Ù СÃзíÒ¤íÒÊѧè ã¹ÅÙ» while(1){} Íѹ໠¹¡ÒÃÇ¹Í Ò¹¤ ÒÃÐÂзҧ¨Ò¡âÁ´ÙÅ GP2D120 «Ö§è µ ͡Ѻ¾Íà µ PA4 ÁÒà¡çº·Õµè ÇÑ á»Ã dist ¨Ò¡¹Ñ¹é â»Ãá¡ÃÁ¨Ð¹íÒ¤ ÒÃÐÂзҧ·Õäè ´ ÁÒµÃǨÊͺ´Ñ§¹Õé ¡Ã³Õ if(dist>=4 && dist<15) à» ¹¡ÒõÃǨÊÍºÇ Ò ¾ºÊÔ§è ¡Õ´¢Çҧ㹪 ǧ 4 ¶Ö§ 14 ૹµÔàÁµÃ ËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ (ÁÕʧÔè ¡Õ´¢ÇÒ§) ¨ÐµÍºÊ¹Í§â´Â¢Ñºà¤Å×Íè ¹Ëع ¹µ IPST-BOT ãË ¶ÍÂËÅѧ 0.5 ÇÔ¹Ò·Õ áÅ ÇàÅÕÂé Ç« ÒÂà¾×Íè ËźÊÔ§è ¡Õ´¢ÇÒ§ ¡Ã³Õ else à» ¹Ê ǹ¡íÒ˹´¤íÒÊÑ§è µÍºÊ¹Í§àÁ×Íè ÃÐÂзյè ÃǨ¨Ñºä´ à¡Ô¹ 14 ૹµÔàÁµÃ (15 ૹµÔàÁµÃ¢Ö¹é ä») â´ÂµÍºÊ¹Í§ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò´ ÇÂÃÐÂÐàÇÅÒÊѹé æ à¹×Íè §¨Ò¡ËÒ¡äÁ ¾ºÊÔ§è ¡Õ´¢ÇÒ§ã¹ÃÐÂÐ 4 ¶Ö§ 14 ૹµÔàÁµÃ Ëع ¹µ IPST-BOT ¨ÐµÕ¤ÇÒÁÇ Ò äÁ ¾ºÊÔ§è ¡Õ´¢ÇÒ§ ¼Ù¾ ² Ñ ¹Òâ»Ãá¡ÃÁÊÒÁÒö»ÃѺᡠ¤Ò ÃÐÂзҧ 㹡ÒõÃǨ¨ÑºÊÔ觡մ¢ÇÒ§ãË àËÁÒÐÊÁä´ µÒÁµ ͧ¡Òà à¾ÔÁè àµÔÁ ÊíÒËÃѺ¡ÒþѲ¹Òâ»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ ÃÇ Á¡ÑºâÁ´ÙÅ GP2D120 ¹Ñ¹é ¨ÐàÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè getdist ¨Ò¡äźÃÒÃÕ gp2d120_lib.h à¾×Íè àÃÕÂ¡Í Ò¹¤ ÒÃÐÂзҧ¨Ò¡ÊÔ§è ¡Õ´¢ÇÒ§ã¹Ë¹ ÇÂૹµÔàÁµÃ â´Âµ ͧµ ÍâÁ´ÙÅ GP2D120 ¡Ñº¢Ò¾Íà µ PA0 ¶Ö§ PA7 ෠ҹѹé áÅÐÊÒÁÒöµ Í㪠§Ò¹ä´ ¾Ã ÍÁ¡Ñ¹ÁÒ¡¡Ç Ò 1 µÑÇ ÍÒ¨µÔ´µÑ§é âÁ´ÙÅ GP2D120 äÇ ·Õè´ Ò¹¢ Ò§ËÃ×Í´ Ò¹ËÅѧà¾×èÍ·íÒ˹ Ò·ÕèµÃǨ¨ÑºÊÔ觡մ¢Çҧ㹷ÔÈ·Ò§Í×è¹à¾ÔèÁàµÔÁ
â»Ãá¡ÃÁ·Õè L8-1 ä¿Å servo_robo_ranger.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺËع ¹µ IPST-BOT à¤Å×Íè ¹·Õè ËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇҧẺäÁ ÊÁÑ ¼ÑÊ (¨º)
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
125
º··Õè 8
Ëع ¹µ IPST-BOT ¡Ñº ÀÒÃСԨµÃǨ¨ÑºàÊ ¹ ˹֧è ÀÒÃСԨ¢Í§¡ÒÃàÃÕ¹ÃÙà ¾×Íè ¤Çº¤ØÁËع ¹µ 굄 â¹Áѵ¢Ô ¹Ò´àÅ硤×Í ¡ÒõÃǨ¨ÑºàÊ ¹áÅСÒÃà¤Å×Íè ¹·Õµè ÒÁàÊ ¹ ÊíÒËÃѺªØ´Ëع ¹µ IPST-BOT ¡çÊÒÁÒö»¯ÔºµÑ ÀÔ ÒÃСԨ¹Õäé ´ â´Âà¹×Íé ËÒ㹺·¹Õ¨é ÐàÃÔÁè µ ¹´ Ç¡ÒÃ͸ԺÒ¡Ò÷íÒ§Ò¹¢Í§ µÑǵÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô«Ö§è ¹íÒÁÒ»ÃÐÂØ¡µ 㪠§Ò¹à» ¹µÑǵÃǨ¨ÑºàÊ ¹ ¡ÒÃàµÃÕÂÁʹÒÁ·´Êͺ µÑÇÍ ҧ¡ÒûÃѺ áµ §¤ ҢͧµÑǵÃǨ¨Ñºà¾×Íè ãË ÊÒÁÒöµÃǨ¨ÑºàÊ ¹ä´ Í ҧÁÕ»ÃÐÊÔ·¸ÔÀÒ¾ ¨Ò¡¹Ñ¹é ࢠÒÊÙ¡ Ò÷´Åͧà¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C à¾×Íè ¤ ¹ËÒàÊ ¹ à¤Å×Íè ¹·Õãè ¹¾×¹é ·Õ·è ¡Õè Òí ˹´ áÅСÒÃà¤Å×Íè ¹·Õµè ÒÁàÊ ¹·Ñ§é ẺäÁ ¾¨Ô Òóҷҧá¡áÅоԨÒóҷҧá¡ ´Ñ§¹Ñ¹é ¢ÍãË ¼·Ù ´Åͧ¾ÂÒÂÒÁ·íÒ¤ÇÒÁࢠÒã¨áÅзíÒ¡Ò÷´Åͧ仵ÒÁÅíҴѺ à¹×Íè §¨Ò¡à¹×Íé Ëҷѧé ËÁ´ÁÕ¤ÇÒÁ à¡ÕÂè Ç¢ ͧ¡Ñ¹ áÅе ͧ㪠¤ÇÒÁÃÙ¨ Ò¡¡Ò÷´Åͧ¡ ͹˹ ÒÁÒà ÇÁ´ ÇÂ
8.1 ¤Ø³ÊÁºÑµ¢Ô ͧἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô à» ¹á¼§Ç§¨Ã·Õãè ª 㹡ÒõÃǨÊͺ¡ÒÃÊз ͹¢Í§áʧÍÔ¹¿ÃÒàô¢Í§µÑǵÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô«Ö§è ÃÇÁµÑÇÊ §áÅеÑÇÃѺäÇ ã¹µÑǶѧà´ÕÂǡѹ â´ÂµÑǵÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô·Õ¹è Òí ÁÒ㪠¤Í× TCRT5000 ã¹ÃÙ»·Õè 8-1 áÊ´§¡Ò÷íÒ§Ò¹¢Í§á¼§Ç§¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàôàÁ×Íè ¹íÒÁÒ㪠§Ò¹¡Ñº¾×¹é ¼ÔÇÊÕ¢ÒÇáÅдíÒ
510
10k
+V
TCRT5000
OUT
áç´Ñ¹àÍÒµ ¾Øµ¤ ÒÊÙ§
510
GND
LED ÍÔ¹¿ÃÒàô
10k
¡ÃÐáÊä¿¿ Ò
TCRT5000
¡ÃÐáÊä¿¿ Ò
+V
OUT
áç´Ñ¹àÍÒµ ¾Øµ¤ ÒµíèÒ GND
LED ÍÔ¹¿ÃÒàô â¿âµ ·ÃÒ¹«ÔÊàµÍà ¾×é¹ÊÕ¢ÒÇ
â¿âµ ·ÃÒ¹«ÔÊàµÍà ¾×é¹ÊÕ´íÒ
ÃÙ»·Õè 8-1 áÊ´§¡Ò÷íÒ§Ò¹¢Í§á¼§Ç§¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô¡Ñº¾×¹é ¼ÔÇÊÕ¢ÒÇáÅдíÒ
126 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
àÁ×Íè ¨ ÒÂä¿àÅÕÂé § LED ÍÔ¹¿ÃÒàôÀÒÂã¹µÑÇâÁ´ÙÅ TCRT5000 ¨Ðà»Å §áʧÍÍ¡ÁÒµÅÍ´àÇÅÒ Ê Ç¹µÑÇÃѺ«Ö§è à» ¹ â¿âµ ·ÃÒ¹«ÔÊàµÍà ¨Ðä´ ÃѺáʧÍÔ¹¿ÃÒàô¨Ò¡¡ÒÃÊз ͹¡ÅѺ â´Â»ÃÔÁÒ³¢Í§áʧ·Õèä´ ÃѺ¨ÐÁÒ¡ËÃ×͹ Í ¢Ö¹é ÍÂÙ¡ ºÑ Ç Ò ÁÕÇµÑ ¶ØÁÒ¡Õ´¢ÇÒ§ËÃ×ÍäÁ áÅÐÇѵ¶Ø¹¹Ñé ÁÕ¤ÇÒÁÊÒÁÒö㹡ÒÃÊз ͹áʧÍÔ¹¿ÃÒàÃ´ä´ ´àÕ ¾Õ§äà «Ö§è ¢Ö¹é ¡Ñº ÅÑ¡É³Ð¾×¹é ¼ÔÇáÅÐÊբͧÇѵ¶Ø â´ÂÇѵ¶ØÊ¢Õ ÒǼÔÇàÃÕº¨ÐÊз ͹áʧÍÔ¹¿ÃÒàÃ´ä´ ´Õ ·íÒãË µÇÑ ÃѺáʧÍÔ¹¿ÃÒàÃ´ä´ ÃºÑ áʧ Êз ͹ÁÒ¡ Ê §¼ÅãË áç´Ñ¹·Õàè ÍÒµ ¾µØ ¢Í§Ç§¨ÃÊÙ§µÒÁä»´ Ç 㹢³Ð·ÕÇè µÑ ¶ØÊ´Õ Òí Êз ͹áʧÍÔ¹¿ÃÒàÃ´ä´ ¹Í  ·íÒãË µÑÇÃѺÍÔ¹¿ÃÒàÃ´Ê §áç´Ñ¹ÍÍ¡ÁÒµèÒí ´ ǤسÊÁºÑµ´Ô §Ñ ¡Å ÒǨ֧¹ÔÂÁ¹íÒἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô¹ÕÁé Ò㪠㹡ÒõÃǨ¨Ñº¾×¹é ËÃ×ÍàÊ ¹ â´Âµ ͧµÔ´µÑ§é äÇ ´Ò ¹Å Ò§¢Í§â¤Ã§Ëع ¹µ
8.2 ¡ÒÃàµÃÕÂÁ¤ÇÒÁ¾Ã ÍÁ¡ ͹¾Ñ²¹Òâ»Ãá¡ÃÁà¾×Íè ¢Ñºà¤Å×Íè ¹Ëع ¹µ µÃǨ¨ÑºàÊ ¹ 8.2.1 àµÃÕÂÁÍØ»¡Ã³ ÊíÒËÃѺÊà ҧʹÒÁ·´Êͺ
㹡ÒþѲ¹Òâ»Ãá¡ÃÁà¾×Íè ¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ÒÁàÊ ¹ â´Â㪠µÇÑ µÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô㹠¡ÒÃÇÔà¤ÃÒÐË àÊ ¹áÅо׹é ʹÒÁ¹Ñ¹é ¨Ðà» ¹¡ÒáíÒ˹´à§×Íè ¹ä¢à¾ÕÍè à»ÃÕºà·Õº¡Ñº¤ ÒÍ Ò§ÍÔ§¤ ÒË¹Ö§è ·Õäè ´ ¨Ò¡¡Ò÷´Êͺ Í Ò¹¤ ҢͧÊÀÒÇÐáʧ·Õäè ´ ¨Ò¡àÊ ¹áÅо׹é ʹÒÁ·Õãè ª §Ò¹¨ÃÔ§ â´ÂÍÒÈѤÇÒÁᵡµ Ò§¢Í§¡ÒÃÊз ͹áʧÍÔ¹¿ÃÒàô¢Í§ áµ ÅÐ¾×¹é ¼ÔÇ·ÕÁè ÊÕ µÕ Ò §¡Ñ¹ ઠ¹ ¾×¹é ¼ÔÇÊÕ¢ÒÇÊÒÁÒöÊз ͹áʧÍÔ¹¿ÃÒàÃ´ä´ ´Õ Ê Ç¹¾×¹é ¼ÔÇÊÕ´Òí ÊÒÁÒöÊз ͹áʧ ÍÔ¹¿ÃÒàÃ´ä´ ¹Í  à¹×Íè §¨Ò¡ÊÕ´Òí ÁÕ¤ÇÒÁÊÒÁÒö㹡Òôٴ¡Å×¹áʧÍÔ¹¿ÃÒàÃ´ä´ ÁÒ¡ ¡ÒÃàÃÕ¹ÃÙã ¹º·¹Õàé Å×͡㪠ʹÒÁ ·´ÊÍºÍ Ò§ÍÔ§·ÕÁè ¾Õ ¹×é ʹÒÁà» ¹ÊÕ¢ÒÇáÅÐàÊ ¹à» ¹ÊÕ´Òí ´Ñ§¹Ñ¹é ¢Íá¹Ð¹íÒãË ¼¾Ù ²Ñ ¹ÒÊà ҧʹÒÁ·´Êͺ¢Ö¹é ÁÒ¡ ͹ ÊíÒËÃѺʹÒÁ·´ÊͺµÑÇÍ ҧ·Õãè ª ã¹Ë¹Ñ§Ê×ÍàÅ Á¹Õé ·íÒ¨Ò¡á¼ ¹¾ÅÒʵԡÅÙ¡¿Ù¡ (ËÃ×ͪ×Íè àÃÕ¡¡Ñ¹·ÑÇè ä»Ç Ò á¼ ¹ ¿ Çà¨Íà ºÍà ´) ÁÒµÔ´à·»ÊÕ´Òí â´ÂÁÕÍ»Ø ¡Ã³ áÅÐà¤Ã×Íè §Á×Í·Õãè ª ´§Ñ ¹Õé 1. á¼ ¹¾ÅÒʵԡÅÙ¡¿Ù¡ (ËÃ×ͪ×Íè àÃÕ¡¡Ñ¹·ÑÇè ä»Ç Ò á¼ ¹¿ Çà¨Íà ºÍà ´) ÊÕ¢ÒÇ 1 á¼ ¹ ¢¹Ò´ 90 N 60 ૹµÔàÁµÃ ÍÒ¨àÅç¡ãË ¡Ç Ò¹Õäé ´ ¢ÍãË Á¾Õ ¹×é ·ÕÁè Ò¡¾ÍÊíÒËÃѺ¡ÒÃà¤Å×Íè ¹·Õ¢è ͧËع ¹µ IPST-BOT 2. à·»¾Ñ¹ÊÒÂä¿ÊÕ´Òí ¢¹Ò´ 1 ¹ÔÇé ¨íҹǹ 2 Á ǹ á¹Ð¹íÒÂÕËè Í 3M à¹×Íè §¨Ò¡ÁÕ¤ÇÒÁÂ×´ËÂع ÊÙ§ ÊÒÁÒö µÔ´à» ¹àÊ ¹â¤ §ä´ ´Õ 3. ¡ÃÃä¡ÃÊíÒËÃѺµÑ´à·»¾Ñ¹ÊÒÂä¿
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
127
8.2.3 µÔ´µÑ§é ἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàÃ´á¡ Ë¹Ø Â¹µ IPST-BOT ¨Ø´»ÃÐʧ¤ ¢Í§¡ÒÃ㪠§Ò¹á¼§Ç§¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàôã¹Ëع ¹µ IPST-BOT ¤×Í ¹íÒÁÒµÃǨ¨Ñº ¾×¹é áÅÐàÊ ¹ ´Ñ§¹Ñ¹é ¨Ö§µ ͧµÔ´µÑ§é ἧǧ¨ÃµÃǨ¨Ñº¹Õäé Ç ·ãÕè µ °Ò¹Ëع ¹µ ÁÕ¢¹Ñé µÍ¹´Ñ§¹Õé (1) Âִἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàôࢠҡѺᷠ§µ Í 5 ÃÙà¨Òд ÇÂÊ¡ÃÙ 3N10 ÁÁ. áÅй͵ 3 ÁÁ. â´ÂÃÐËÇ Ò§ ἧǧ¨Ã¡Ñºá· §µ ÍãË ¹Òí àÊÒÃͧ¾ÅÒʵԡ 3 ÁÁ. ¤Ñ¹è àÍÒäÇ ·íÒàËÁ×͹¡Ñ¹ 3 ªØ´ ¹Íµ 3 ÁÁ. á· §µ Í 5 ÃÙ àÊÒÃͧ 3 ÁÁ. ἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô Ê¡ÃÙ 3x10 ÁÁ. (2) » ´ÊÇÔµª ¨Ò Âä¿àÅÕÂé §¢Í§Ëع ¹µ IPST-BOT ¨Ò¡¹Ñ¹é ¶Í´á¼§Ç§¨ÃËÅÑ¡¢Í§Ëع ¹µ IPST-BOT ÍÍ¡ ¹íÒἧǧ¨Ã µÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô·ÕÂè ´Ö ¡Ñºá· §µ ͨҡ¢Ñ¹é µÍ¹·Õè (1) ·Ñ§é 3 ªØ´ÂִࢠҡѺ´ ҹ˹ ҢͧËع ¹µ â´Â㪠ᷠ§ µ Í 12 ÃÙÃͧáÅÐÂÖ´´ ÇÂÊ¡ÃÙ 3N15 ÁÁ. áÅй͵ 3 ÁÁ. ·Õµè Òí á˹ §´Ñ§áÊ´§ã¹ÃÙ» ¨Ò¡¹Ñ¹é àÊÕºÊÒÂÊÑÒ³¢Í§á¼§ ǧ¨ÃµÃǨ¨ÑºáʧÊз ͹´ Ò¹« ÒÂ, ¡ÅÒ§áÅТÇÒà¢ Ò·Õ¨è ´Ø µ Í PA0, PA1 áÅÐ PA2 ¢Í§Ëع ¹µ IPST-BOT µÒÁÅíҴѺ ¨Ðä´ Ë¹Ø Â¹µ IPST-BOT ·ÕÊè ÒÁÒöµÃǨ¨Ñº¾×¹é áÅÐàÊ ¹ ¾Ã ÍÁÊíÒËÃѺ¡ÒÃà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁµ Íä»
ÂÖ´á· §µ Í·Õµè ´Ô µÑ§é ἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàôࢠҷÕè µíÒá˹ §¹Õé (à»ÅÕÂè ¹µíÒá˹ §ä´ µÒÁ¤ÇÒÁàËÁÒÐÊÁ) ¡ÒõԴµÑ§é ἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàôã¹ÅѡɳйÕàé ¾×Íè 㪠§Ò¹á¼§Ç§¨ÃµÃǨ¨Ñº´Ñ§¡Å ÒÇà» ¹ µÑǵÃǨ¨Ñº¾×¹é ËÃ×ÍàÊ ¹ «Ö§è ÊÒÁÒöµÃǨ¨Ñºä´ ·§Ñé àÊ ¹ÊÕ¢ÒÇáÅÐÊÕ´Òí
128 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
8.2.2 ¡íÒ˹´¤ ÒÍ Ò§ÍÔ§à¾×èÍᡤÇÒÁᵡµ Ò§ÃÐËÇ Ò§àÊ ¹áÅо×é¹Ê¹ÒÁ 㹡ÒáíÒ˹´¤ ÒÍ Ò§ÍÔ§à¾×Íè 㪠㹡ÒÃà»ÃÕºà·Õºà¾×Íè ãË Ë¹Ø Â¹µ ·ÃÒºÇ Ò µÑǵÃǨ¨Ñº¾ºàÊ ¹ËÃ×;׹é ʹÒÁ¹Ñ¹é â´Â·ÑÇè 仨ÐÍÒÈÑ¡ÒÃà¢Õ¹â»Ãá¡ÃÁÍ Ò¹¤ ÒÍйÒÅÍ¡¨Ò¡á¼§Ç§¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàôᵠÅеÑÇ¢Ö¹é ÁÒáÊ´§ ¼Åà¾×Íè Êѧࡵ¤ Ò¼ÅÅѾ¸ ·äÕè ´ ¨Ò¡àÊ ¹áÅо׹é ʹÒÁÁÕ¤Ò áµ¡µ Ò§¡Ñ¹à¾Õ§äà »¡µÔáŠǤ ҷѧé Êͧµ ͧᵡµ Ò§¡Ñ¹¾ÍÊÁ¤Çà 㹡ÒÃà¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C à¾×Íè Í Ò¹¤ Ҩҡἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô¢Í§á¼§Ç§¨Ã¤Çº¤ØÁ ã¹Ëع ¹µ IPST-BOT ¨Ð㪠¿§ ¡ ª¹Ñè analog ¨Ò¡ä¿Å äźÃÒÃÕ analog.h «Ö§è ãË ¤Ò ¼ÅÅѾ¸ 0 ¶Ö§ 1023 àÁ×Íè ἧǧ¨Ã µÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàôä»ÍÂÙº ÃÔàdzµíÒá˹ §¢Í§àÊ ¹ÊÕ´Òí ¨ÐãË ¤Ò µèÒí ÁÕá¹Çâ¹ ÁàÍÕ§价ҧ¤ Ò 0 ¶ Òä»ÍÂÙã ¹ ºÃÔàdz¾×¹é ʹÒÁÊÕ¢ÒǨÐãË ¤Ò ÊÙ§·ÕÁè áÕ ¹Çâ¹ ÁàÍÕ§价ҧ¤ Ò 1023 ÊÒÁÒö·´ÊÍºä´ ¨Ò¡¡Ò÷´Åͧ·Õè 10 «Ö§è ª ÇÂãË ¼Ù¾ ² Ñ ¹Òâ»Ãá¡ÃÁÊÒÁÒö¡íÒ˹´¤ ÒÍ Ò§ÍÔ§ÊíÒËÃѺ㪠à»ÃÕºà·Õºà¾×Íè á¡áÂÐÃÐËÇ Ò§àÊ ¹áÅо׹é ʹÒÁ «Ö§è ¨Ð¹íÒä» ãª ã¹¡ÒþѲ¹Òâ»Ãá¡ÃÁà¾×Íè ¤Çº¤ØÁãË Ë¹Ø Â¹µ IPST-BOT ÊÒÁÒöµÃǨ¨ÑºáÅÐà¤Å×Íè ¹·Õµè ÒÁàÊ ¹ä´
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
129
¡Ò÷´Åͧ·Õè 10 ¡íÒ˹´¤ ÒÍ Ò§ÍÔ§ÊíÒËÃѺ¡ÒõÃǨ¨ÑºàÊ ¹ 㹡Ò÷´Åͧ¹Õàé » ¹¡Ò÷´Êͺà¾×Íè ËÒ¤ ÒÍ Ò§ÍÔ§ÊíÒËÃѺ㪠㹡ÒõÃǨ¨ÑºàÊ ¹¢Í§Ëع ¹µ IPST-BOT ´ Ç ¡ÒÃà¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C Í Ò¹¤ ҢͧʹÒÁ·´Êͺ´ ÇÂἧǧ¨Ã¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô â´Â·ÕËè ¹Ø Â¹µ IPSTBOT ä´ µ´Ô µÑ§é ἧǧ¨Ã¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàôäÇ ãµ °Ò¹Ëع ¹µ ·Ò§´ ҹ˹ Ò¨íҹǹ 3 µÑÇ â´Âἧǧ¨ÃµÃǨ ¨Ñº´ Ò¹« Òµ ͡Ѻ¾Íà µ PA0, ἧǧ¨ÃµÃǨ¨ÑºµÃ§¡ÅÒ§µ ͡Ѻ¾Íà µ PA1 áÅÐἧǧ¨ÃµÃǨ¨Ñº´ Ò¹¢ÇÒµ ͡Ѻ ¾Íà µ PA2 ¢Í§á¼§Ç§¨Ã¤Çº¤ØÁ¢Í§Ëع ¹µ IPST-BOT ¨Ò¡¹Ñ¹é ¹íÒ¤ Ò·Õäè ´ ÁÒ»ÃÐÁÇżÅáÅ ÇáÊ´§¼Å·Õâè Á´ÙÅ LCD ¢Í§Ëع ¹µ IPST-BOT
Êà ҧʹÒÁ·´Êͺ ʹÒÁ·´Êͺ㹡Ò÷´Åͧ¹ÕÁé ¾Õ ¹×é ʹÒÁà» ¹ÊÕ¢ÒÇ áÅ Ç㪠෻¾Ñ¹ÊÒÂ俵Դ໠¹ÃÙ»ÊÕàè ËÅÕÂè ÁÁØÁ⤠§µÒÁÃÙ»
¢¹Ò´¢Í§Ê¹ÒÁÊÒÁÒö»ÃѺᵠ§ä´ µÒÁ¤ÇÒÁàËÁÒÐÊÁ ÊíÒËÃѺ¤³Ð¼Ùà ¢Õ¹㪠ἠ¹¾ÅÒʵԡÅÙ¡¿Ù¡ÊÕ¢ÒÇ ¢¹Ò´ 90 N 60 ૹµÔàÁµÃ ¹íÒÁÒµÔ´à·»à¾×Íè Êà ҧ¡ÃͺàÊ ¹â¤ §¢¹Ò´ 70 N 40 ૹµÔàÁµÃ
¡ÒÃàª×èÍÁµ Í·Ò§ÎÒà ´áÇà µ ÍÊÒ¨ҡ¾Íà µ PA0 ࢠҡѺἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô㵠°Ò¹Ëع ¹µ ´Ò ¹Ë¹ ÒÁØÁ« Ò l µ ÍÊÒ¨ҡ¾Íà µ PA1 ࢠҡѺἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô㵠°Ò¹Ëع ¹µ ´Ò ¹Ë¹ ҵç¡ÅÒ§ l µ ÍÊÒ¨ҡ¾Íà µ PA2 ࢠҡѺἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô㵠°Ò¹Ëع ¹µ ´Ò ¹Ë¹ ÒÁØÁ¢ÇÒ l
130 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¢Ñ鹵͹¡Ò÷´Åͧ L10.1 Êà ҧä¿Å â»Ãà¨ç¡µ ªÍ×è reflect_test áÅоÔÁ¾ â»Ãá¡ÃÁÀÒÉÒ C µÒÁâ»Ãá¡ÃÁ·Õè L10-1 L10.2 ¤ÍÁä¾Å áÅдÒǹ âËÅ´â»Ãá¡ÃÁà¾×Íè ·´Êͺ¼ÅÅѾ¸ ¡Ò÷íÒ§Ò¹ L10.3 àÃÔÁè µ ¹Ãѹâ»Ãá¡ÃÁ ·Õâè Á´ÙÅ LCD ¢Í§Ëع ¹µ áÊ´§¢ ͤÇÒÁ L
xxx
R
zzz
M
yyy
â´Â·Õè xxx ,yyy áÅÐ zzz ¤×ͤ Ò¢ ÍÁÙÅ´Ô¨µÔ ÍÅ·Õäè ´ ¨Ò¡¡ÒÃÍ Ò¹¤ Ҩҡἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô ·Õµè ´Ô µÑ§é ÍÂÙã µ °Ò¹Ëع ¹µ ´Ò ¹« ÒÂ, ¡ÅÒ§ áÅТÇÒµÒÁÅíҴѺ «Ö§è ¼ Ò¹¡Ãкǹ¡ÒÃá»Å§ÊÑÒ³ÍйÒÅÍ¡à» ¹ ´Ô¨µÔ ÍÅáÅ Ç #include <sleep.h> // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sleep #include <analog.h> // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè analog #include <lcd.h> // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè lcd void main() { while(1) // ÅٻǹÃͺäÁ è٠º { lcd( L %d M %d #nR %d ,analog(0),analog(1),analog(2)); // Í Ò¹¤ ÒÍйÒÅÍ¡¨Ò¡á¼§Ç§¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô·Õ¾è Íà µ PA0,PA1 áÅÐ PA2 ÁÒáÊ´§¼Å·Õè // âÁ´ÙÅ LCD sleep(10); // ˹ ǧàÇÅÒàÅ硹 Í } } ¤íÒ͸ԺÒÂâ»Ãá¡ÃÁ â»Ãá¡ÃÁ¨Ð·íÒ§Ò¹ÀÒÂã¹ÅÙ» while(1){} à¾×Íè Í Ò¹¤ Ҩҡἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô·Õ¾è Íà µ PA0,PA1 áÅÐ PA2 áŠǼ Ò¹¡Ãкǹ¡ÒÃá»Å§ÊÑҳ໠¹¢ ÍÁÙÅ´Ô¨µÔ ÍÅà¾×Íè ¹íÒÁÒáÊ´§·Õâè Á´ÙÅ LCD ¢Í§Ëع ¹µ IPST-BOT
â»Ãá¡ÃÁ·Õè L10-1 ä¿Å reflect_test.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺËع ¹µ IPST-BOT à¾×Íè Í Ò¹¤ Ò¨Ò¡ ἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô 3 ¨Ø´ÁÒáÊ´§·Õâè Á´ÙÅ LCD
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
131
L10.4 ¹íÒËع ¹µ ä»ÇÒ§äÇ º¹¾×¹é ʹÒÁÊÕ¢ÒÇ Í Ò¹áÅкѹ·Ö¡¤ Ò·ÕÇè ´Ñ ä´ «§Öè áÊ´§º¹âÁ´ÙÅ LCD ἧǧ¨ÃµÃǨ¨Ñº·Ñ§é 3 ªØ´¤ÇÃÍ Ò¹¤ Òä´ ã¡Å à¤Õ§¡Ñ¹ ãË ·Òí ¡ÒÃà©ÅÕÂè ¤ Ò·Õäè ´ ¢Í§á¼§Ç§¨ÃµÃǨ¨Ñºáʧ Êз ͹ÍÔ¹¿ÃÒàô·Ñ§é 3 ªØ´ ã¹¢Ñ¹é µÍ¹¹Õ¢é ͧ¼Ùà ¢ÕÂ¹ä´ ¤Ò »ÃÐÁÒ³ 950
PORTC
PA6
IPST MicroBOX PA1
PA0
PB1
PB0
PB3
PB2
I P S T - B O T o ro b o t ATMEGA16
PA2
Vm OUT
PA7
PA3
Over 7.5V
++ Vin -
PA4
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA5
DC INPUT
SDA RS-232 LOW BATT.
DC input
ON
OFF
ON
SCL KNOB PA7
PD5
PD7
M2
PD3
MOTOR OUTPUT
M1
PD1
PD6
TxD
PD0
PD4
B0 B1 B2 B3 B4
RxD
PD2
SERVO
-
SW3
+
SW2
S
PB4
SW1
DisplayMotor
- - - - - - - - -- - - - - - -
RESET
L10.5 ÇÒ§Ëع ¹µ ãË á¼§Ç§¨ÃµÃǨ¨Ñº·Ñ§é 3 ªØ´ÍÂÙà ˹×ÍàÊ ¹ÊÕ´Òí Í Ò¹áÅкѹ·Ö¡¤ Ò·ÕÇè ´Ñ ä´ «§Öè áÊ´§º¹âÁ´ÙÅ LCD ἧǧ¨ÃµÃǨ¨Ñº·Ñ§é 3 ªØ´¤ÇÃÍ Ò¹¤ Òä´ ã¡Å à¤Õ§¡Ñ¹ ã¹¢Ñ¹é µÍ¹¹Õ¢é ͧ¼Ùà ¢ÕÂ¹ä´ ¤Ò à©ÅÕÂè »ÃÐÁÒ³ 250
PORTC
PA6
IPST MicroBOX PA1
PA0
I P S T - B O T o ro b o t ATMEGA16
PA2
++ Vin -
PA3
Over 7.5V
Vm OUT
PA7
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
DC INPUT
SDA RS-232 LOW BATT.
DC input
OFF
ON
ON
SCL KNOB PA7
M2
PD7
M1
PD5
MOTOR OUTPUT PD3
PD1
PD6
TxD
PD0
PD4
PB4
* * * *! *"
RxD
PD2
PB2 SW3
DisplayMotor
PB3
SW2
+ -
PB0 SW1
S
PB1
RESET
SERVO
- -- - - - -- --- -- - --
PORTC
ON
PA7
PA6
SCL
PA1
PA0
PB1
PB0
PB3
PB2
Over 7.5V
I P S T - B O T o ro b o t - - - - - - - - -- - - - - - -
M2
PD5
PD7
MOTOR OUTPUT
M1
PD1
PD4
TxD
PD0
PD6
SERVO
* * * *! *"
RxD
PD3
SW3
PD2
SW2
+ -
SW1
S
PB4
RESET
DisplayMotor
ATMEGA16
PA2
Vm OUT
IPST MicroBOX
PA3
DC INPUT
SDA RS-232 LOW BATT.
++ Vin -
PA4
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA5
KNOB PA7
DC input
ON
OFF
L10.6 ¤íҹdzËÒ¤ ÒÍ Ò§ÍÔ§·Õãè ª 㹡ÒÃá¡áÂо׹é ʹÒÁÊÕ¢ÒǡѺàÊ ¹ÊÕ´Òí ¢Í§Ê¹ÒÁ ´Ñ§¹Õé ¤ ÒÍ Ò§ÍÔ§ = (¤ Ò¡ÒÃÊз ͹áʧ·Õäè ´ ¨Ò¡¾×¹é ʹÒÁÊÕ¢ÒÇ + ¤ Ò¡ÒÃÊз ͹áʧ·Õäè ´ ¨Ò¡àÊ ¹ÊÕ´Òí ) / 2 = (950+250) / 2 =600 Í ҧäáçµÒÁ 㹡ÒÃ㪠§Ò¹¨ÃÔ§ÍÒ¨¡íÒ˹´¤ ÒãË ¡Ç Ò§¡Ç Ò¹Õäé ´ áµ ¤ÇÃÍÂÙã ¹ª ǧ 250 ¶Ö§ 950 áµ äÁ ¤ÇÃàÅ×Í¡¤ Ò·Õãè ¡Å ¡ºÑ 250 áÅÐ 950 ÁÒ¡à¡Ô¹ä» ÊíÒËÃѺ¡ÒáµÑÇÍ ҧµ ͨҡ¹Õäé » ¨ÐÂÖ´¤ ÒÍ Ò§ÍÔ§äÇ ·Õè 600
132 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡Ò÷´Åͧ·Õè 11 ËØ ¹Â¹µ à¤Å×è͹·ÕèÀÒÂ㹡ÃͺàÊ ¹ÊÕ´íÒ
PA 4
PA 3
ST o IP icr M
PA 5
6 PA
BO
X
㹡Ò÷´Åͧ¹Õàé » ¹¡ÒÃà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ IPST-BOT ãË à¤Å×Íè ¹·ÕÀè ÒÂ㹡ÃͺÊÕàè ËÅÕÂè ÁÁØÁ⤠§ ·ÕÁè àÕ Ê ¹ÊÕ´Òí Å ÍÁÃͺ (Ẻà´ÕÂǡѺʹÒÁ㹡Ò÷´Åͧ·Õè 10) â´Â㹡Ò÷´Åͧ¹Õ¨é Ð㪠§Ò¹á¼§Ç§¨ÃµÃǨ¨Ñºáʧ Êз ͹ÍÔ¹¿ÃÒàôà¾Õ§ 2 µÑÇ·Õµè ´Ô µÑ§é ãµ °Ò¹Ëع ¹µ ´Ò ¹Ë¹ ÒÁØÁ« ÒÂáÅТÇÒ
PA 0
OB KN A7 P
7 PA
PA 2
PA 1
P T
-
DC
SE RV O B0
PD 5
M 1
PD 6
PD 4
PD 7
T PU UT O M 2
yM ot la
R TO O M
1 PD
Dis p
-
D Tx
B4
0 PD
or
B3
+ +Vin
S
B2
D Rx
B1
PD 3
3
V .5 r7
SW
in DC pu t
ON
2
e Ov
SW PD 2
OF F
T PU IN
1
-
SW
-
t o -b o -r o -T O --B - + -
-
AT M EG A1 6
ON
S
-
T SE RE
O UT
I
PB 2
Vm
PB 0
PB 3 PB 4
G P ND P C0 P C1 L P C2 32 SCP C3 -2 P C4 RS T. P C5 A T P C6 SD BA + C7 5V W LO
C RT PO
PB 1
¡ÒÃàª×èÍÁµ Í·Ò§ÎÒà ´áÇà µ ÍÊÒ¨ҡ¾Íà µ PA0 ࢠҡѺἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô㵠°Ò¹Ëع ¹µ ´Ò ¹Ë¹ ÒÁØÁ« Ò l µ ÍÊÒ¨ҡ¾Íà µ PA2 ࢠҡѺἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô㵠°Ò¹Ëع ¹µ ´Ò ¹Ë¹ ÒÁØÁ¢ÇÒ l
¢Ñ鹵͹¡Ò÷´Åͧ L11.1 Êà ҧä¿Å â»Ãà¨ç¡µ ªÍ×è robo_inner áÅоÔÁ¾ â»Ãá¡ÃÁÀÒÉÒ C µÒÁâ»Ãá¡ÃÁ·Õè L11-1 L11.2 ¤ÍÁä¾Å áÅдÒǹ âËÅ´â»Ãá¡ÃÁà¾×Íè ·´Êͺ¼ÅÅѾ¸ ¡Ò÷íÒ§Ò¹
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
#include <motor.h> #include <sleep.h> #include <in_out.h> #include <analog.h> #include <lcd.h> #define POW 70 #define REF 600 void forward(unsigned int delay) { motor(1,POW); motor(2,POW); sleep(delay); } void backward(unsigned int delay) { motor(1,-POW); motor(2,-POW); sleep(delay); } void turn_left(unsigned int delay) { motor(1,-POW); motor(2,POW); sleep(delay); } void turn_right(unsigned int delay) { motor(1,POW); motor(2,-POW); sleep(delay); } void main() { unsigned int left,right; lcd( Press SW1 );
133
// àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè motor // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sleep // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sw1_press // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè analong // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè lcd // ¡íÒ˹´¡íÒÅѧ¢Ñº¢Í§ÁÍàµÍà ¤§·Õ·è Õè 70 % ¢Í§¡íÒÅѧ¢ÑºÊÙ§ÊØ´ // ¡íÒ˹´¤ ÒÍ Ò§Íԧ㹡ÒÃà»ÃÕºà·ÕºàÊ ¹áÅо׹é ʹÒÁ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ µÃ§ä»¢ ҧ˹ Ò // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع仢 ҧ˹ Ò // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ à´Ô¹Ë¹ ҵç // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ ¶ÍÂËÅѧµÃ§ // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع¶ÍÂËÅѧ // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ à´Ô¹¶ÍÂËÅѧµÃ§ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç« Ò // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç« Ò // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç¢ÇÒ // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع仢 ҧ˹ Ò // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع¶ÍÂËÅѧ // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç¢ÇÒ
// ¡íÒ˹´µÑÇá»Ãà¡çº¤ Ò·ÕÍè Ò ¹ä´ ¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹·Ñ§é « ÒÂáÅТÇÒ // áÊ´§¢ ͤÇÒÁᨠ§ãË ¡´ÊÇÔµª SW1
â»Ãá¡ÃÁ·Õè L11-1 ä¿Å robo_inner.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ¤Çº¤ØÁãË Ë¹Ø Â¹µ IPST-BOT à¤Å×Íè ¹·ÕÍè ÂÙã ¹¡ÃͺàÊ ¹ÊÕ´Òí (ÁÕµÍ )
134 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
sw1_press(); while(1) { left = analog(0); right = analog(2); if(left>REF && right>REF) { forward(10); } else if(left<REF && right>REF) { backward(1000); turn_right(1500); } else if(left>REF && right<REF) { backward(1000); turn_left(1500); } else if(left<REF && right<REF) { backward(1000); turn_left(1500); } }
// Ãͨ¹¡Ãзѧè ÊÇÔµª SW1 ¶Ù¡¡´ // ǹÃͺäÁ è٠º // Í Ò¹¤ Ò¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« ÒÂÁÒà¡çº·Õµè ÇÑ á»Ã left // Í Ò¹¤ Ò¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒÁÒà¡çº·Õµè ÇÑ á»Ã right // µÃǨÊÍºÇ Ò µÑǵÃǨ¨ÑºàÊ ¹·Ñ§é Êͧ´ Ò¹äÁ 处 äÁ ¾ºàÊ ¹ // ¶ Ò㪠(äÁ ¾ºàÊ ¹) Ëع ¹µ à¤Å×Íè ¹·Õäè »¢ ҧ˹ Ò // µÃǨÊÍºÇ Ò µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò¾ºàÊ ¹à¾Õ§µÑÇà´ÕÂÇËÃ×ÍäÁ // ¶ Ò㪠ãË ¶ÍÂËÅѧÍÍ¡¨Ò¡àÊ ¹ 1 ÇÔ¹Ò·Õ // àÅÕÂé Ç¢ÇÒ 1.5 ÇÔ¹Ò·Õ // µÃǨÊÍºÇ Ò µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒ¾ºàÊ ¹à¾Õ§µÑÇà´ÕÂÇËÃ×ÍäÁ // ¶ Ò㪠ãË ¶ÍÂËÅѧÍÍ¡¨Ò¡àÊ ¹ 1 ÇÔ¹Ò·Õ // àÅÕÂé Ç« Ò 1.5 ÇÔ¹Ò·Õ // µÃǨÊÍºÇ Ò µÑǵÃǨ¨ÑºàÊ ¹·Ñ§é Êͧ´ Ò¹¾ºàÊ ¹ãª ËÃ×ÍäÁ // ¶ Ò㪠¶ÍÂËÅѧÍÍ¡¨Ò¡àÊ ¹ 1 ÇÔ¹Ò·Õ // àÅÕÂé Ç« Ò 1.5 ÇÔ¹Ò·Õ
} ¤íÒ͸ԺÒÂâ»Ãá¡ÃÁ àÁ×Íè àÃÔÁè ·íÒ§Ò¹ ·Õâè Á´ÙÅ LCD áÊ´§¢ ͤÇÒÁ Press SW1 à¾×Íè ÃÍ¡Òá´ÊÇÔµª SW1 àÁ×Íè ¾º¡Òá´ÊÇÔµª SW1 «Õ¾ÂÕ ¨Ù §Ö ÊÒÁÒö¡ÃзíÒ¤íÒÊѧè 㹺Ã÷Ѵ¶Ñ´ä»ä´ «Ö§è ¡ç¤Í× à¢ Òä»·íÒ§Ò¹ÀÒÂã¹ÅÙ» while(1){} à¾×Íè Ç¹Í Ò¹¤ Ҩҡἧǧ¨Ã µÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô·Õµè Í à¢ Ò¡Ñºãµ °Ò¹Ëع ¹µ ´Ò ¹Ë¹ ÒÁØÁ« Ò (¾Íà µ PA0) áÅТÇÒ(¾Íà µ PA2) ÁÒà¡çº·Õè µÑÇá»Ã left áÅÐ right µÒÁÅíҴѺ ¹íÒä»à»ÃÕºà·Õº¡Ñº¤ ÒÍ Ò§ÍÔ§ ·íÒãË ·ÃÒºÇ Ò Ëع ¹µ ¾º¾×¹é ÊÕ¢ÒÇËÃ×ÍàÊ ¹ÊÕ´Òí ¶ Òἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàôµÑÇã´ãË ¤Ò ¼ÅÅѾ¸ ¢Í ÁÙÅ´Ô¨µÔ ÍÅÁÒ¡¡Ç Ò REF (¤ ÒÍ Ò§Íԧ෠ҡѺ 600) ¨ÐµÑ´ÊÔ¹Ç Ò Ëع ¹µ µÃǨ¾º¾×¹é ʹÒÁÊÕ¢ÒÇ ã¹·Ò§¡ÅѺ¡Ñ¹ ¶ Ò¾ºÇ Ò¤ Ò¢ ÍÁÙÅ´Ô¨µÔ ÍÅ·ÕÍè Ò ¹ä´ ¨Ò¡á¼§Ç§¨ÃµÃǨ¨Ñº áʧÊз ͹ÍÔ¹¿ÃÒàôÁÕ¤Ò ¹ ÍÂ¡Ç Ò REF ¨ÐµÑ´ÊÔ¹Ç Ò Ëع ¹µ ¾ºàÊ ¹ÊÕ´Òí áÅ Ç
â»Ãá¡ÃÁ·Õè L11-1 ä¿Å robo_inner.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ¤Çº¤ØÁãË Ë¹Ø Â¹µ IPST-BOT à¤Å×Íè ¹·ÕÍè ÂÙã ¹¡ÃͺàÊ ¹ÊÕ´Òí (ÁÕµÍ )
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
135
¨Ò¡¹Ñ¹é â»Ãá¡ÃÁ¨Ð¹íÒ¤ ҢͧµÑÇá»Ã·Ñ§é Êͧä»à»ÃÕºà·ÕÂºä´ 4 ¡Ã³Õ´§Ñ ¹Õé ¡Ã³Õ if(left>REF && right>REF) à» ¹¡ÒõÃǨÊÍºÇ Ò µÑǵÃǨ¨ÑºäÁ ¾ºàÊ ¹ãª ËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ (äÁ ¾ºàÊ ¹) ¨ÐµÍºÊ¹Í§ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò ¡Ã³Õ else if(left<REF && right>REF) à» ¹¡ÒõÃǨÊÍºÇ Ò µÑǵÃǨ¨Ñº´ Ò¹« Ò¾ºàÊ ¹à¾Õ§µÑÇà´ÕÂÇ ËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ (¾ºàÊ ¹) ¨ÐµÍºÊ¹Í§ãË Ë¹Ø Â¹µ ¶ÍÂËÅѧáÅ ÇàÅÕÂé Ç¢ÇÒà¾×Íè à»ÅÕÂè ¹·ÔÈ·Ò§¡ÒÃà¤Å×Íè ¹·Õè ¡Ã³Õ else if(left>REF && right<REF) à» ¹¡ÒõÃǨÊÍºÇ Ò µÑǵÃǨ¨Ñº´ Ò¹¢ÇÒ¾ºàÊ ¹à¾Õ§µÑÇà´ÕÂÇ ËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ (¾ºàÊ ¹) ¨ÐµÍºÊ¹Í§ãË Ë¹Ø Â¹µ ¶ÍÂËÅѧáÅ ÇàÅÕÂé Ç« ÒÂà¾×Íè à»ÅÕÂè ¹·ÔÈ·Ò§¡ÒÃà¤Å×Íè ¹·Õè ¡Ã³Õ else if(left<REF && right<REF) à» ¹¡ÒõÃǨÊÍºÇ Ò µÑǵÃǨ¨ÑºàÊ ¹·Ñ§é Êͧ´ Ò¹¾ºàÊ ¹ãª ËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ (¾ºàÊ ¹) ¨ÐµÍºÊ¹Í§ãË Ë¹Ø Â¹µ ¶ÍÂËÅѧáÅ ÇàÅÕÂé Ç« ÒÂà¾×Íè à»ÅÕÂè ¹·ÔÈ·Ò§¡ÒÃà¤Å×Íè ¹·Õè ¨Ò¡ËÅÑ¡¡ÒÃ㹡ÒõÃǨ¨ÑºàÊ ¹´Ñ§¡Å ÒÇ ¼Ù¾ ² Ñ ¹ÒÊÒÁÒö¹íÒ仾Ѳ¹Òâ»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ ãË à¤Å×Íè ¹·ÕÀè Ò 㹡ÃͺàÊ ¹ÊÕàè ËÅÕÂè Áâ´Â㪠ἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàôà¾Õ§ 1 µÑÇ¡çä´ ËÁÒÂà赯 ¤ ÒÍ Ò§ÍÔ§ REF ÊíÒËÃѺà»ÃÕºà·ÕºàÊ ¹áÅо׹é ʹÒÁ㹡Ò÷´Åͧ¹Õ¤é Í× 600 ä´ ÁÒ¨Ò¡¡Ò÷´Åͧ·Õè 10 ¼Ù¾ ² Ñ ¹ÒÍ񬊫 ¤Ò ·Õáè µ¡µ Ò§ÍÍ¡ä» ·Ñ§é ¹Õ¢é ¹Öé ÍÂÙ¡ ºÑ » ¨¨ÑÂÀÒ¹͡Í×¹è æ ÍÒ·Ô »ÃÔÁÒ³áʧÍÔ¹¿ÃÒàôâ´ÂÃͺʹÒÁ·´ Êͺ «Öè§ÁÒ¨Ò¡´Ç§ÍҷԵ , ËÅÍ´ä¿áººäÊ ËÃ×ÍáËÅ §¡íÒà¹Ô´áʧÍÔ¹¿ÃÒàôÍ×è¹æÃÇÁ¶Ö§ÃÐÂÐË Ò§¨Ò¡µÑǵÃǨ¨Ñº ¶Ö§¾×¹é ʹÒÁ à» ¹µ ¹
â»Ãá¡ÃÁ·Õè L11-1 ä¿Å robo_inner.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ¤Çº¤ØÁãË Ë¹Ø Â¹µ IPST-BOT à¤Å×Íè ¹·ÕÍè ÂÙã ¹¡ÃͺàÊ ¹ÊÕ´Òí (¨º) L11.3 àÃÔÁè µ ¹Ãѹâ»Ãá¡ÃÁ ·Õâè Á´ÙÅ LCD ¢Í§Ëع ¹µ áÊ´§¢ ͤÇÒÁ Press
SW1
ᨠ§ãË ¡´ÊÇÔµª SW1 ·Õáè ¼§Ç§¨Ã Display-MOTOR ¢Í§Ëع ¹µ IPST-BOT à¾×Íè Êѧè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õè L11.4 ¡´ÊÇÔµª SW1 ·Õáè ¼§Ç§¨Ã Display-MOTOR ¢Í§Ëع ¹µ IPST-BOT Êѧࡵ¡ÒÃà¤Å×Íè ¹·Õ¢è ͧËع ¹µ Ëع ¹µ IPST-BOT ¨Ðà¤Å×Íè ¹·ÕÍè ÂÙÀ ÒÂ㹡ÃͺàÊ ¹ÊÕ´Òí â´ÂàÁ×Íè ἧǧ¨Ã¨ÑºáʧÊз ͹¾ºàÊ ¹ÊÕ´Òí äÁâ¤Ã ¤Í¹â·ÃÅàÅÍà ¨Ð¤Çº¤ØÁãË Ë¹Ø Â¹µ ¶ÍÂËÅѧ áÅ Çà»ÅÕÂè ¹·ÔÈ·Ò§¡ÒÃà¤Å×Íè ¹·Õè ¨ÐÁÕÅ¡Ñ É³Ð¤Å ÒÂæ ¡Ñº¡ÒÃËź ËÅÕ¡Çѵ¶ØẺÊÑÁ¼ÑÊ ËÒ¡áµ à»ÅÕÂè ¹¨Ò¡¡ÒõÃǨ¨Ñº¡Òê¹ÁÒà» ¹¡ÒõÃǨ¨ÑºàÊ ¹ÊÕ´Òí áÅо׹é ÊÕ¢ÒÇá·¹
PORTC
PA6
IPST MicroBOX PA1
PA0
PB1
PB0
PB3
PB2
I P S T - B O T o ro b o t - - - - - - - - -- - - - - - -
PD7
M2
PD5
MOTOR OUTPUT
M1
PD1
PD6
TxD
PD0
PD4
SERVO
* * * *! *"
RxD
PD3
SW3
PD2
SW2
+ -
SW1
S
PB4
RESET
DisplayMotor
ATMEGA16
PA2
Vm OUT
PA7
PA3
Over 7.5V
++ Vin -
PA4
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA5
DC INPUT
SDA RS-232 LOW BATT.
DC input
OFF
ON
ON
SCL KNOB PA7
136 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡Ò÷´Åͧ·Õè 12 Ëع ¹µ µÃǨ¨ÑºàÊ ¹à¤Å×Íè ¹·Õáè ººÊÅѺ¿ ¹»ÅÒ
PA7
PA6
PO RT C
GN PC0 D PC PC 1 PC 2 PC 3 PC 4 PC65 PC +5 7 V RS-23 2
AT ME GA 1 6
IP ST --B -OT -or -ob ot ----
+
Í ҧ¹ Í 30 ૹµÔàÁµÃ
㹡Ò÷´Åͧ¹Õ¹é Òí àʹ͵ÑÇÍ ҧà¾ÔÁè àµÔÁ¢Í§¡Òä ¹ËÒáÅеÃǨ¨ÑºàÊ ¹¢Í§Ëع ¹µ IPST-BOT â´Â¡íÒ˹´ ãË ÁàÕ Ê ¹ÊÕ´Òí 2 àÊ ¹·Õ¢è ¹Ò¹¡Ñ¹ ¨Ò¡¹Ñ¹é »Å ÍÂËع ¹µ ãË à¤Å×Íè ¹·Õâè ´ÂàÍÕ§·íÒÁØÁ»ÃÐÁÒ³ 45 ͧÈҡѺàÊ ¹ÊÕ´Òí Ëع ¹µ ¨Ðà¤Å×Íè ¹·Õµè ç仢 ҧ˹ ÒÍ ҧµ Íà¹×Íè § ¨¹¡ÃÐ·Ñ§è µÃǨ¾ºàÊ ¹¡ç¨ÐËѹµÑÇàÅÕÂé ÇáÅ Çà¤Å×Íè ¹·Õµè 稹¡Ç ҨеÃǨ¾ºàÊ ¹ ¡ç¨ÐàÅÕÂé ÇÍÕ¡¤ÃÑ§é ·íҧҹઠ¹¹Õäé »µÅÍ´ ·íÒãË Ë¹Ø Â¹µ ÁàÕ Ê ¹·Ò§¡ÒÃà¤Å×Íè ¹·Õãè ¹ÅѡɳФŠÒÂÊÅѺ¿ ¹»ÅÒËÃ×Í«Ô¡á«¡ ä»ÁÒÃÐËÇ Ò§àÊ ¹ÊÕ´Òí ·Ñ§é ÊͧàÊ ¹ ´Ñ§ÃÙ»
-
.
Êà ҧʹÒÁ·´Êͺ 㪠ἠ¹¾ÅÒʵԡÅÙ¡¿Ù¡¢¹Ò´ 90x60 ૹµÔàÁµÃ¨Ò¡¡Ò÷´Åͧ·Õè 11 (ËÃ×Í¢¹Ò´Í×¹è ¡çä´ µÒÁµ ͧ¡Òà ᵠ¤ÇÃÁÕ¢¹Ò´ãË à¾Õ§¾ÍãË Ë¹Ø Â¹µ ÊÒÁÒöà¤Å×Íè ¹·Õäè ´ â´ÂÊдǡ) ÁÒ·íÒà» ¹¾×¹é ʹÒÁ áŠǵԴ෻ÊÕ´Òí 2 àÊ ¹ ãË ¢¹Ò¹¡Ñ¹ â´ÂÁÕÃÐÂÐË Ò§Í ҧ¹ Í 30 ૹµÔàÁµÃ à¾×Íè ãË Ë¹Ø Â¹µ Á¾Õ ¹×é ·Õàè ¾Õ§¾Í㹡ÒÃà¤Å×Íè ¹·Õè
¡ÒÃàª×èÍÁµ Í·Ò§ÎÒà ´áÇà (µ Íà¾ÔèÁàµÔÁ¨Ò¡ªØ´ËØ ¹Â¹µ ) àËÁ×͹¡Ñº¡Ò÷´Åͧ·Õè 11 ¤×Í l µ ÍÊÒ¨ҡ¾Íà µ PA0 ࢠҡѺἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô㵠°Ò¹Ëع ¹µ ´Ò ¹Ë¹ ÒÁØÁ« Ò l µ ÍÊÒ¨ҡ¾Íà µ PA2 ࢠҡѺἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô㵠°Ò¹Ëع ¹µ ´Ò ¹Ë¹ ÒÁØÁ¢ÇÒ
¢Ñ鹵͹¡Ò÷´Åͧ L12.1 Êà ҧä¿Å â»Ãà¨ç¡µ ªÍ×è robo_pingpong áÅоÔÁ¾ â»Ãá¡ÃÁÀÒÉÒ C µÒÁâ»Ãá¡ÃÁ·Õè L12-1 L12.2 ¤ÍÁä¾Å áÅдÒǹ âËÅ´â»Ãá¡ÃÁà¾×Íè ·´Êͺ¼ÅÅѾ¸ ¡Ò÷íÒ§Ò¹ L12.3 ÇÒ§Ëع ¹µ ·¨Õè ´Ø »Å ͵ÑÇ â´ÂàÍÕ§·íÒÁØÁ¡ÑºàÊ ¹ÊÕ´Òí »ÃÐÁÒ³ 45 ͧÈÒ
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
137
L12.4 àÃÔÁè µ ¹Ãѹâ»Ãá¡ÃÁ ·Õâè Á´ÙÅ LCD áÊ´§¢ ͤÇÒÁᨠ§ãË ¡´ÊÇÔµª SW1 ·Õáè ¼§Ç§¨Ã Display-MOTOR ¢Í§Ëع ¹µ IPST-BOT à¾×Íè Êѧè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õè L12.5 ¡´ÊÇÔµª SW1 ·Õáè ¼§Ç§¨Ã Display-MOTOR ¢Í§Ëع ¹µ IPST-BOT Êѧࡵ¡ÒÃà¤Å×Íè ¹·Õ¢è ͧËع ¹µ Ëع ¹µ IPST-BOT ¨Ðà¤Å×Íè ¹·Õµè çÍ ҧµ Íà¹×Íè § ¨¹¾ºàÊ ¹ ¡ç¨ÐËÁعµÑÇàÅÕÂé Ç·íÒÁØÁ»ÃÐÁÒ³ 90 ͧÈÒ ¨Ò¡¹Ñ¹é à¤Å×Íè ¹·Õµè çÍÕ¡¤ÃÑ§é ¨¹¾ºàÊ ¹ÍÕ¡´ Ò¹Ë¹Ö§è ¡ç¨ÐËÁعµÑÇàÅÕÂé ÇáÅ Çà¤Å×Íè ¹·Õµè ç¡ÅѺä»ÍÕ¡´ ҹ˹֧è ã¹ÅѡɳР«Ô¡-á«¡ä»ÁÒËÃ×ÍÊÅѺ¿ ¹»ÅÒ â´ÂËع ¹µ ¨Ðà¤Å×Íè ¹·ÕÍè ÂÙà ÐËÇ Ò§àÊ ¹ÊÕ´Òí ·Ñ§é 2 ½ § ãË ¼¾Ù ² Ñ ¹Òâ»Ãá¡ÃÁÊÑ§à¡µÇ Ò ¡ÒÃà¤Å×Íè ¹·Õáè ÅÐÁØÁ㹡ÒÃàÅÕÂé Çà¾×Íè ·ÔÈ·Ò§¢Í§Ëع ¹µ àËÁÒÐÊÁáÅ ÇËÃ×ÍäÁ ¶ ÒÂѧäÁ ÊÁºÙó à¾Õ§¾Í ¼Ù¾ ² Ñ ¹Ò â»Ãá¡ÃÁÊÒÁÒö»ÃѺ¤ ÒàÇÅÒ㹡ÒÃ˹ ǧÊíÒËÃѺ¡ÒÃàÅÕÂé ÇÀÒÂã¹â»Ãá¡ÃÁãË àËÁÒÐÊÁ áÅ Ç¡ÅѺ价íÒµÒÁ¢Ñ¹é µÍ¹·Õè L12.2 äÅ ÅÒí ´ÑºÅ§ÁÒÍÕ¡¤ÃÑ§é ¨¹¡ÃÐ·Ñ§è ¡Ò÷íÒ§Ò¹¢Í§Ëع ¹µ à» ¹·Õ¹è Ò ¾Í㨠#include <motor.h> #include <sleep.h> #include <in_out.h> #include <analog.h> #include <lcd.h> #define POW 70 #define REF 600 void forward(unsigned int delay) { motor(1,POW); motor(2,POW); sleep(delay); } void backward(unsigned int delay) { motor(1,-POW); motor(2,-POW); sleep(delay); } void turn_left(unsigned int delay) { motor(1,-POW); motor(2,POW); sleep(delay); }
// àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè motor // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sleep // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sw1_press // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè analong // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè lcd // ¡íÒ˹´¡íÒÅѧ¢Ñº¢Í§ÁÍàµÍà ¤§·Õ·è Õè 70 % ¢Í§¡íÒÅѧ¢ÑºÊÙ§ÊØ´ // ¡íÒ˹´¤ ÒÍ Ò§Íԧ㹡ÒÃà»ÃÕºà·ÕºàÊ ¹áÅо׹é ʹÒÁ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ µÃ§ä»¢ ҧ˹ Ò // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع仢 ҧ˹ Ò // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·ÕµÃ§ä»¢ ҧ˹ Ò // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ ¶ÍÂËÅѧµÃ§ // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع¶ÍÂËÅѧ // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ ¶ÍÂËÅѧµÃ§ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç« Ò // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç« ÒÂ
â»Ãá¡ÃÁ·Õè L12-1 ä¿Å robo_pingpong.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ¤Çº¤ØÁãË Ë¹Ø Â¹µ IPST-BOT à¤Å×Íè ¹·Õ«è ¡Ô -á«¡ËÃ×ÍÊÅѺ¿ ¹»ÅÒ (ÁÕµÍ )
138 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
void turn_right(unsigned int delay) // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç¢ÇÒ { motor(1,POW); // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع仢 ҧ˹ Ò motor(2,-POW); // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع¶ÍÂËÅѧ sleep(delay); // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç¢ÇÒ } void main() { unsigned int left,right; // ¡íÒ˹´µÑÇá»Ãà¡çº¤ Ò·ÕÍè Ò ¹ä´ ¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« ÒÂáÅТÇÒ lcd( Press SW1 ); // áÊ´§¢ ͤÇÒÁãË ¡´ÊÇÔµª SW1 sw1_press(); // Ãͨ¹¡Ãзѧè ÊÇÔµª SW1 ¶Ù¡¡´ while(1) // ÅٻǹÃͺäÁ è٠º { left = analog(0); // Í Ò¹¤ Ò¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹´ Ò¹« ÒÂÁÒà¡çº·Õµè ÇÑ á»Ã left right = analog(2); // Í Ò¹¤ Ò¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒÁÒà¡çº·Õµè ÇÑ á»Ã right if(left>REF && right>REF) // µÃǨÊÍºÇ Ò µÑǵÃǨ¨ÑºàÊ ¹·Ñ§é Êͧ´ Ò¹ÂѧäÁ ¾ºàÊ ¹ãª ËÃ×ÍäÁ { forward(10); // ¶ Ò㪠(äÁ ¾ºàÊ ¹) Ëع ¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Òà» ¹ª ǧàÇÅÒÊѹé æ } else if(left<REF && right>REF) // µÃǨÊÍºÇ Ò µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò¾ºàÊ ¹à¾Õ§µÑÇà´ÕÂÇ { //»ÃÐàÁÔ¹Ç Ò à¤Å×Íè ¹·Õäè »¾ºàÊ ¹´ Ò¹´ Ò¹º¹ turn_right(1500); // àÅÕÂé Ç¢ÇÒ 1.5 ÇÔ¹Ò·Õ } else if(left>REF && right<REF) // µÃǨÊÍºÇ Ò µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒ¾ºàÊ ¹à¾Õ§µÑÇà´ÕÂÇ { // »ÃÐàÁÔ¹Ç Ò à¤Å×Íè ¹·Õäè »¾ºàÊ ¹´ ҹŠҧ turn_left(1500); // àÅÕÂé Ç« Ò 1.5 ÇÔ¹Ò·Õ } else if(left<REF && right<REF) // µÃǨÊÍºÇ Ò µÑǵÃǨ¨ÑºàÊ ¹·Ñ§é Êͧ´ Ò¹¾ºàÊ ¹ãª ËÃ×ÍäÁ { backward(10); // ¶ÍÂËÅÑ§Ë Ò§¨Ò¡àÊ ¹ } } } ¤íÒ͸ԺÒÂâ»Ãá¡ÃÁ àÃÔÁè µ ¹¡Ò÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁ´ Ç¡ÒÃáÊ´§¢ ͤÇÒÁ·Õâè Á´ÙÅ LCD à» ¹ Press SW1 à¾×Íè ÃÍ¡Òá´ÊÇÔµª SW1 àÁ×Íè ¡´ÊÇÔµª SW1 «Õ¾ÂÕ ¨Ù ÐࢠÒä»·íÒ§Ò¹ÀÒÂã¹ÅÙ» while(1){} à¾×Íè Ç¹Í Ò¹¤ Ҩҡἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ ÍÔ¹¿ÃÒàô·Ñé§ÊͧµÑÇ·Õèµ ÍࢠҡѺ㵠°Ò¹ËØ ¹Â¹µ ´ ҹ˹ ÒÁØÁ« Ò (¾Íà µ PA0) áÅд ҹ˹ ÒÁØÁ¢ÇÒ (¾Íà µ PA2) ÁÒà¡çº·Õµè ÇÑ á»Ã left áÅÐ right µÒÁÅíҴѺ à¾×Íè µÃǨÊÍºÇ Ò µÑǵÃǨ¨ÑºµÑÇã´·Õ¾è ºàÊ ¹ ¨Ò¡¹Ñ¹é ¡íÒ˹´¡ÒÃà¤Å×Íè ¹·Õè µÒÁà§×Íè ¹ä¢ «Ö§è ÁÕ·§Ñé ÊÔ¹é 4 ¡Ã³Õ¤Í×
â»Ãá¡ÃÁ·Õè L12-1 ä¿Å robo_pingpong.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ¤Çº¤ØÁãË Ë¹Ø Â¹µ IPST-BOT à¤Å×Íè ¹·Õ«è ¡Ô -á«¡ËÃ×ÍÊÅѺ¿ ¹»ÅÒ (ÁÕµÍ )
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
139
1. ¡Ã³Õ if(left>REF && right>REF) à» ¹¡ÒõÃǨÊÍºÇ Ò µÑǵÃǨ¨ÑºàÊ ¹·Ñ§é Êͧ´ Ò¹ÂѧäÁ ¾ºàÊ ¹ 㪠ËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ (äÁ ¾ºàÊ ¹) ¨ÐµÍºÊ¹Í§ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ ÒÍ ҧµ Íà¹×Íè § 2. ¡Ã³Õ else if(left<REF && right>REF) à» ¹¡ÒõÃǨÊÍºÇ Ò µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò¾ºàÊ ¹à¾Õ§ µÑÇà´ÕÂÇËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ 㹡óչ¨Õé еդÇÒÁÇ Ò Ëع ¹µ ¾ºàÊ ¹¢Íºº¹ â»Ãá¡ÃÁ¨Ð¡íÒ˹´ãË Ë¹Ø Â¹µ àÅÕÂé Ç¢ÇÒà¾×Íè àÅÕÂè §ÍÍ¡¨Ò¡àÊ ¹ â´Â¼Ù¾ ²Ñ ¹Òâ»Ãá¡ÃÁÊÒÁÒö»ÃѺ¤ ÒàÇÅÒ˹ ǧ·Õãè ª 㹡ÒÃàÅÕÂé Çà¾×Íè ãË ä´ ÁÁØ ã¹¡ÒÃàÅÕÂé ǵÑǵÒÁµ ͧ¡Òà 3. ¡Ã³Õ else if(left>REF && right<REF) à» ¹¡ÒõÃǨÊÍºÇ Ò µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒ¾ºàÊ ¹à¾Õ§ µÑÇà´ÕÂÇËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ 㹡óչ¨Õé еդÇÒÁÇ Ò Ëع ¹µ ¾ºàÊ ¹¢ÍºÅ Ò§ â»Ãá¡ÃÁ¨Ð¡íÒ˹´ãË Ë¹Ø Â¹µ àÅÕÂé Ç« Ò à¾×èÍàÅÕè§ÍÍ¡¨Ò¡àÊ ¹ 4. ¡Ã³Õ else if(left<REF && right<REF) à» ¹¡ÒõÃǨÊÍºÇ Ò µÑǵÃǨ¨ÑºàÊ ¹·Ñ§é Êͧ´ Ò¹¾ºàÊ ¹ ËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ (¾ºàÊ ¹) ¨ÐµÍºÊ¹Í§ãË Ë¹Ø Â¹µ ¶ÍÂËÅѧ໠¹ª ǧàÇÅÒÊѹé æ à¾×Íè àÅÕÂè §ÍÍ¡¨Ò¡àÊ ¹ ¹Í¡¨Ò¡¹Õ¼é ¾Ù ² Ñ ¹Òâ»Ãá¡ÃÁÍÒ¨à¾ÔÁè àµÔÁ¤íÒÊѧè ãË Ë¹Ø Â¹µ àÅÕÂé Ç´ Ǥ ÒÁØÁ·Õáè µ¡µ Ò§ÍÍ¡ä» à¾×Íè ãË ä´ Ã»Ù áºº¡Òà à¤Å×Íè ¹·Õáè ºº«Ô¡-á«¡ËÃ×ÍÊÑź¿ ¹»ÅÒ·ÕÊè ÁºÙó ÃÇÁ¶Ö§ÍÒ¨µ ͧ»ÃѺᵠ§µíÒá˹ §áÅÐÃÐÂÐË Ò§¢Í§µÑǵÃǨ¨ÑºàÊ ¹¨Ò¡ ¾×¹é ¡ÒûÃѺᵠ§·Ò§¡Åà· Ò·Õ¨è Òí à» ¹ à¾×Íè ãË ¡ÒÃà¤Å×Íè ¹·Õ¢è ͧËع ¹µ à» ¹ä»µÒÁ·Õµè Í §¡ÒÃ
â»Ãá¡ÃÁ·Õè L12-1 ä¿Å robo_pingpong.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ¤Çº¤ØÁãË Ë¹Ø Â¹µ IPST-BOT à¤Å×Íè ¹·Õ«è ¡Ô -á«¡ËÃ×ÍÊÅѺ¿ ¹»ÅÒ (¨º)
PORTC
PA7
PA6
PA1
PA0
PB1
PB0
PB3
PB2
I P S T - B O T o ro b o t - - - - - - - - -- - - - - - -
PD7
M2
PD5
MOTOR OUTPUT
M1
PD1
PD6
TxD
PD0
PD4
SERVO
* * * *! *"
RxD
PD3
SW3
PD2
SW2
+ -
SW1
S
PB4
RESET
DisplayMotor
ATMEGA16
PA2
Vm OUT
IPST MicroBOX PA3
Over 7.5V
++ Vin -
PA4
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA5
DC INPUT
SDA RS-232 LOW BATT.
DC input
ON
OFF
ON
SCL KNOB PA7
140 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡Ò÷´Åͧ·Õè 13 Ëع ¹µ à¤Å×Íè ¹·Õµè ÒÁàÊ ¹â´Â㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 2 µÑÇ ËÅѧ¨Ò¡àÃÕ¹ÃÙá Åз´Åͧ¡ÒõÃǨ¨ÑºàÊ ¹ÁÒ¨Ò¡¡Ò÷´Åͧ·Õè 11 áÅÐ 12 áÅ Ç µ Í仹ըé ÐࢠÒÊÙÀ ÒÃСԨ ËÅÑ¡»ÃСÒÃË¹Ö§è ¢Í§Ëع ¹µ IPST-BOT ¹Ñ¹è ¤×Í¡ÒÃà¤Å×Íè ¹·Õµè ÒÁàÊ ¹ 㹡Ò÷´Åͧ¹Õàé » ¹¡Ò÷´Åͧ¤Çº¤ØÁËع ¹µ à¤Å×Íè ¹·Õµè ÒÁàÊ ¹ÊÕ´Òí áÅÐÁÕàÊ ¹µÑ´ 2 ¨Ø´·Õ¡è §Öè ¡ÅÒ§µÒÁÃٻʹÒÁ·´Êͺ·Õè L13-1 â´Â㪠ἧǧ¨ÃµÃǨ¨Ñºáʧ Êз ͹ÍÔ¹¿ÃÒàô 2 µÑÇ·Õµè ´Ô µÑ§é ãµ °Ò¹Ëع ¹µ ´Ò ¹Ë¹ ÒÁØÁ« ÒÂáÅТÇÒ ÊíÒËÃѺµÑǵÃǨ¨Ñº·ÕÍè ÂÙµ ç¡ÅÒ§¨Ð¶Í´ ÍÍ¡ËÃ×ÍäÁ ¡äç ´ â´ÂÁÕà§×Íè ¹ä¢´Ñ§µ Í仹Õé 1. Ëع ¹µ µÍ §à¤Å×Íè ¹·Õµè ÒÁàÊ ¹ÊÕ´Òí ·Õ¡è Òí ˹´ 2. àÁ×Íè Ëع ¹µ ¾ºàÊ ¹µÑ´¨Ðµ ͧËÂØ´ÃÍ·Õ¨è ´Ø µÑ´à» ¹àÇÅÒ 3 ÇÔ¹Ò·Õ áŠǨ֧à¤Å×Íè ¹·Õµè Í ä»
ËÅÑ¡¡Òþ×é¹°Ò¹¢Í§ËØ ¹Â¹µ à¤Å×è͹·ÕèµÒÁàÊ ¹áººãª µÑǵÃǨ¨ÑºàÊ ¹ 2 µÑÇ ËÑÇã¨ËÅÑ¡¢Í§Ëع ¹µ à¤Å×Íè ¹·Õµè ÒÁàÊ ¹¤×Í ¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õâè ´Â·Õµè ÇÑ µÃǨ¨ÑºàÊ ¹·Ñ§é ÊͧµÑÇÍÂÙ ã¹µíÒ˹ §·Õ¤è à ÍÁàÊ ¹ ´Ñ§¹Ñ¹é ¨Ðà¡Ô´à˵ءÒó ¢¹Öé ·Ñ§é ËÁ´ 4 ¡Ã³Õ «Ö§è ÊÒÁÒö¹íÒÁÒ㪠¡Òí ˹´à§×Íè ¹ä¢¢Í§¡Ò÷íÒ§Ò¹ ä´ ´§Ñ ¹Õé
ÃÙ»·Õè L13-1 ʹÒÁ·´ÊͺËع ¹µ IPST-BOT à¤Å×Íè ¹·Õµè ÒÁàÊ ¹â´Â㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 2 µÑÇ ·íÒ¨Ò¡á¼ ¹ ¾ÅÒʵԡÅÙ¡¿Ù¡ÊÕ¢ÒÇ áŠǵԴ෻ÊÕ´Òí µÒÁẺ
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
141
¡Ã³Õ·Õè 1 ËØ ¹Â¹µ ÍÂÙ ã¹á¹ÇàÊ ¹¢Í§Ê¹ÒÁËÃ×ͤà ÍÁàÊ ¹
PORTC
PA7
PA6
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V RS-232 +
AT ME GA1 6
IPST- BOTo robot - - - - - - - - -- - - - - - -
.
µíÒá˹ §¢Í§µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò ÍÂÙº ÃÔàdz¾×¹é ÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µíÒá˹ §¢Í§µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒ ÍÂÙº ÃÔàdz¾×¹é ÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) ¡ÒäǺ¤ØÁËع ¹µ àÁ×Íè ¾ºà˵ءÒó ¹Õé ¤ÇõͺʹͧãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ ÒáÅ Ç˹ ǧ àÇÅÒ㹡ÒÃà¤Å×Íè ¹·Õªè Ç §Êѹé æ
¡Ã³Õ·Õè 2 ËØ ¹Â¹µ à¤Å×è͹·Õè¾ ¹¨Ò¡àÊ ¹ä»·Ò§¢ÇÒ
PA
7
PA
6
PO RT C
GN PC D PC 0 PC 1 PC 2 PC 3 PC 4 PC 5 PC 6 +5V7 RS -232
AT ME GA 1 6
IP ST --B -OT -or -ob -ot ---
+
-
.
µíÒá˹ §¢Í§µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò ÍÂÙº ¹àÊ ¹ÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µíÒá˹ §¢Í§µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒ ÍÂÙº ÃÔàdz¾×¹é ÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) ¡ÒäǺ¤ØÁËع ¹µ àÁ×Íè ¾ºà˵ءÒó ¹Õé ¤ÇõͺʹͧãË Ë¹Ø Â¹µ àÅÕÂé Ç« ÒÂáÅ Ç˹ ǧàÇÅÒ㹡Òà à¤Å×Íè ¹·Õªè Ç §Êѹé æ à¾×Íè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¡è ÅѺ令à ÍÁàÊ ¹
142 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡Ã³Õ·Õè 3 Ëع ¹µ àÍÕ§¨Ò¡àÊ ¹·Ò§ä»´ Ò¹« ÒÂ
C RT PO
+
D GN 0 PC 1 PC 2 PC 3 PC 4 PC 5 PC 6 PC 7 PC +5V
PA
-232 RS
7 PA
6
AT ME 1 GA 6
ot ob -or - OT --B -ST -IP -.
µíÒá˹ §¢Í§µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò ÍÂÙº ÃÔàdz¾×¹é ÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µíÒá˹ §¢Í§µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒ ÍÂÙº ¹àÊ ¹ÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) ¡ÒäǺ¤ØÁËع ¹µ àÁ×Íè ¾ºà˵ءÒó ¹Õé ¤ÇõͺʹͧãË Ë¹Ø Â¹µ àÅÕÂé Ç¢ÇÒ áÅ Ç˹ ǧàÇÅÒ㹡Òà à¤Å×Íè ¹·Õªè Ç §Êѹé æ à¾×Íè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¡è ÅѺ令à ÍÁàÊ ¹
¡Ã³Õ·Õè 4 ËØ ¹Â¹µ ¾ºàÊ ¹µÑ´ËÃ×ÍÍҨ໠¹·Ò§á¡
PORTC
PA7
PA6
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V RS-232 +
AT ME GA1 6
IPST- BOTo robot - - - - - - - - -- - - - - - -
.
µíÒá˹ §¢Í§µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò ÍÂÙº ¹àÊ ¹ÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µíÒá˹ §¢Í§µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒ ÍÂÙº ¹àÊ ¹ÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) ¡ÒäǺ¤ØÁËع ¹µ àÁ×Íè ¾ºà˵ءÒó ¹Õé ¼Ù¾ ² Ñ ¹ÒÍÒ¨àÅ×Í¡ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç,àÅÕÂé Ç« Ò ,àÅÕÂé Ç ¢ÇÒ,ËÂØ´ ËÃ×ͶÍÂËÅÑ§ä´ µÒÁµ ͧ¡Òà ¢Ö¹é ÍÂÙ¡ ºÑ à» ÒËÁÒÂ㹡Ò÷íÒÀÒÃСԨ
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
143
¡ÒÃàª×èÍÁµ Í·Ò§ÎÒà ´áÇà µ ÍÊÒ¨ҡ¾Íà µ PA0 ࢠҡѺἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô㵠°Ò¹Ëع ¹µ ´Ò ¹Ë¹ ÒÁØÁ« Ò l µ ÍÊÒ¨ҡ¾Íà µ PA2 ࢠҡѺἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô㵠°Ò¹Ëع ¹µ ´Ò ¹Ë¹ ÒÁØÁ¢ÇÒ ¡ÒÃàª×Íè Áµ ͹Õàé ËÁ×͹¡Ñº¡Ò÷´Åͧ·Õè 11 áÅÐ 12 l
¢Ñ鹵͹¡Ò÷´Åͧ L13.1 Êà ҧä¿Å â»Ãà¨ç¡µ ªÍ×è robo_line1 áÅоÔÁ¾ â»Ãá¡ÃÁÀÒÉÒ C µÒÁâ»Ãá¡ÃÁ·Õè L13-1 L13.2 ¤ÍÁä¾Å áÅдÒǹ âËÅ´â»Ãá¡ÃÁà¾×Íè ·´Êͺ¼ÅÅѾ¸ ¡Ò÷íÒ§Ò¹ L13.3 ¹íÒËع ¹µ IPST-BOT ä»ÇÒ§¤Ã ÍÁàÊ ¹ÊÕ´Òí ã¹µíÒá˹ §·Õäè Á 㪠¨´Ø µÑ´ L13.4 àÃÔÁè µ ¹Ãѹâ»Ãá¡ÃÁ ·Õâè Á´ÙÅ LCD ¢Í§Ëع ¹µ áÊ´§¢ ͤÇÒÁ Press
SW1
PA6
ᨠ§ãË ¡´ÊÇÔµª SW1 ·Õáè ¼§Ç§¨Ã Display-MOTOR ¢Í§Ëع ¹µ IPST-BOT à¾×Íè Êѧè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õè L13.5 ¡´ÊÇÔµª SW1 ·Õáè ¼§Ç§¨Ã Display-MOTOR ¢Í§Ëع ¹µ IPST-BOT Êѧࡵ¡ÒÃà¤Å×Íè ¹·Õ¢è ͧËع ¹µ Ëع ¹µ ¨Ðà¤Å×Íè ¹·Õµè ÒÁàÊ ¹ÊÕ´Òí àÁ×Íè ¾ºàÊ ¹µÑ´ ¨ÐËÂØ´¹Ô§è »ÃÐÁÒ³ 3 ÇÔ¹Ò·Õ ËÅѧ¨Ò¡¹Ñ¹é ¨Ö§à¤Å×Íè ¹·Õè µÒÁàÊ ¹µ Íä»
PORTC
PA7
+
AT ME GA1 6
IPST- BOTo robo t - - - - - - - - -- - - - - - -
.
PA6 +
.
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V
PORTC
RS-232
PA7
t o b or o T O B - T S P I --- ----- - -------
AT ME GA1 6
PORTC
PA7 +
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V RS-232
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V
RS-232
.
I P S T - B O T o ro b o t - - - - - - - - -- - - - - - -
AT ME GA1 6
PA6
144 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
#include <motor.h> #include <sleep.h> #include <in_out.h> #include <analog.h> #include <lcd.h> #define POW 70 #define REF 600 void forward(unsigned int delay) { motor(1,POW); motor(2,POW); sleep(delay); } void backward(unsigned int delay) { motor(1,-POW); motor(2,-POW); sleep(delay); } void turn_left(unsigned int delay) { motor(1,-POW); motor(2,POW); sleep(delay); } void turn_right(unsigned int delay) { motor(1,POW); motor(2,-POW); sleep(delay); } void pause() { motor_stop(1); motor_stop(2); } void main() { unsigned int left,right; lcd( Press SW1 ); sw1_press(); while(1)
// àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè motor // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sleep // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sw1_press // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè analong // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè lcd // ¡íÒ˹´¡íÒÅѧ¢Ñº¢Í§ÁÍàµÍà ¤§·Õ·è Õè 70 % ¢Í§¡íÒÅѧ¢ÑºÊÙ§ÊØ´ // ¡íÒ˹´¤ ÒÍ Ò§Íԧ㹡ÒÃà»ÃÕºà·ÕºàÊ ¹áÅо׹é ʹÒÁ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ µÃ§ä»¢ ҧ˹ Ò // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع仢 ҧ˹ Ò // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·ÕµÃ§ä»¢ ҧ˹ Ò // ¿ §¡ ªÑ蹢Ѻà¤Å×è͹ËØ ¹Â¹µ ¶ÍÂËÅѧµÃ§ // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع¶ÍÂËÅѧ // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ ¶ÍÂËÅѧµÃ§ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç« Ò // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç« Ò // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç¢ÇÒ // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع仢 ҧ˹ Ò // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع¶ÍÂËÅѧ // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç¢ÇÒ // ¿ §¡ ª¹Ñè ËÂØ´¡ÒÃà¤Å×Íè ¹·ÕËè ¹Ø Â¹µ // ËÂØ´¢ÑºÁÍàµÍà 1 // ËÂØ´¢ÑºÁÍàµÍà 2
// ¡íÒ˹´µÑÇá»Ãà¡çº¤ Ò·ÕÍè Ò ¹ä´ ¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« ÒÂáÅТÇÒ // áÊ´§¢ ͤÇÒÁãË ¡´ÊÇÔµª SW1 // Ãͨ¹¡Ãзѧè ÊÇÔµª SW1 ¶Ù¡¡´ // ÅٻǹÃͺäÁ è٠º
â»Ãá¡ÃÁ·Õè L13-1 ä¿Å robo_line1.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ¤Çº¤ØÁãË Ë¹Ø Â¹µ IPST-BOT à¤Å×Íè ¹·Õµè ÒÁàÊ ¹â´Â㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 2 µÑÇ (ÁÕµÍ )
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
{
}
}
left = analog(0); right = analog(2); if(left>REF && right>REF) { forward(10); } else if(left<REF && right>REF) { turn_left(10); } else if(left>REF && right<REF) { turn_right(10); } else if(left<REF && right<REF) { pause(); sleep(3000); forward(500); }
145
// Í Ò¹¤ Ò¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« ÒÂÁÒà¡çº·Õµè ÇÑ á»Ã left // Í Ò¹¤ Ò¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒÁÒà¡çº·Õµè ÇÑ á»Ã right // µÃǨÊÍºÇ Ò Ëع ¹µ ¤Ã ÍÁàÊ ¹ãª ËÃ×ÍäÁ // Ëع ¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Òà» ¹àÇÅÒÊѹé æ // µÃǨÊ꼂 ÒËع ¹µ àÍÕ§ÁÒ·Ò§¢ÇÒ¨Ò¡àÊ ¹ // àÅÕÂé Ç« Ò 0.01 ÇÔ¹Ò·Õ à¾×Íè ¾ÂÒÂÒÁ¤Ã ÍÁàÊ ¹ // µÃǨÊÍºÇ Ò Ëع ¹µ à¤Å×Íè ¹·ÕÍè Í¡¨Ò¡àÊ ¹ä»·Ò§« ÒÂËÃ×ÍäÁ // ¶ Ò㪠àÅÕÂé Ç¢ÇÒ 0.01 ÇÔ¹Ò·Õ à¾×Íè ¤Çº¤ØÁãË Ë¹Ø Â¹µ ¡ÅѺÁҤà ÍÁàÊ ¹ // µÃǨÊÍºÇ Ò Ëع ¹µ ¾ºàÊ ¹µÑ´ËÃ×ÍäÁ // ¶ Ò¾º ËÂØ´¡ÒÃà¤Å×Íè ¹·ÕËè ¹Ø Â¹µ // ˹ ǧàÇÅÒÊíÒËÃѺ¡ÒÃËÂØ´Ëع ¹µ 3 ÇÔ¹Ò·Õ // Ëع ¹µ à¤Å×Íè ¹·Õµè ç仢 §Ò˹ Ò 0.5 ÇÔ¹Ò·Õà¾×Íè ¢ ÒÁàÊ ¹µÑ´·ÕÍè ÂÙã µ µÇÑ Ëع ¹µ
¤íÒ͸ԺÒÂâ»Ãá¡ÃÁ à§×Íè ¹ä¢ã¹¡ÒõÃǨÊͺ¤ ҢͧµÑǵÃǨ¨Ñºà¾×Íè ¹íÒÁÒ¡íÒ˹´ÅѡɳСÒÃà¤Å×Íè ¹·ÕÁè ´Õ Ç Â¡Ñ¹ 4 ¡Ã³Õ¤Í× 1. ¡Ã³Õ if(left>REF && right>REF) à» ¹¡ÒõÃǨÊÍºÇ ÒµÑǵÃǨ¨ÑºàÊ ¹·Ñ§é Êͧ´ Ò¹ÂѧäÁ ¾ºàÊ ¹ãª ËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ (¤×ÍäÁ ¾º) µÕ¤ÇÒÁÇ Ò Ëع ¹µ à¤Å×Íè ¹·Õ¤è à ÍÁàÊ ¹ÍÂÙ ¨Ö§¡íÒ˹´ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò 2. ¡Ã³Õ else if(left<REF && right>REF) à» ¹¡ÒõÃǨÊÍºÇ Ò µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò¾ºàÊ ¹à¾Õ§ µÑÇà´ÕÂÇËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ áÊ´§Ç Ò Ëع ¹µ ¡Òí Åѧà¤Å×Íè ¹·Õ¾è ¹ ¨Ò¡àÊ ¹ä»·Ò§¢ÇÒ ¨Ö§µ ͧ¤Çº¤ØÁãË Ë¹Ø Â¹µ àÅÕÂé Ç« Ò ´ Ǥ ÒàÇÅÒÊѹé æ à¾×Íè ¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¡è ÅѺÁҤà ÍÁàÊ ¹ÍÕ¡¤Ãѧé 3. ¡Ã³Õ else if(left>REF && right<REF) à» ¹¡ÒõÃǨÊÍºÇ Ò µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒ¾ºàÊ ¹à¾Õ§ µÑÇà´ÕÂÇËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ áÊ´§Ç Ò Ëع ¹µ ¡Òí Åѧà¤Å×Íè ¹·Õ¾è ¹ ¨Ò¡àÊ ¹ä»·Ò§« Ò ¨Ö§µ ͧ¤Çº¤ØÁãË Ë¹Ø Â¹µ àÅÕÂé Ç¢ÇÒ ´ Ǥ ÒàÇÅÒÊѹé æ à¾×Íè ¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¡è ÅѺÁҤà ÍÁàÊ ¹ÍÕ¡¤Ãѧé 4. ¡Ã³Õ else if(left<REF && right<REF) à» ¹¡ÒõÃǨÊÍºÇ Ò µÑǵÃǨ¨ÑºàÊ ¹·Ñ§é Êͧ´ Ò¹¾ºàÊ ¹ ËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ (¤×;ºàÊ ¹) áÊ´§Ç Ò Ëع ¹µ à¤Å×Íè ¹·Õ¾è º¨Ø´µÑ´ËÃ×ͷҧᡠ¨Ö§¤Çº¤ØÁãË Ë¹Ø Â¹µ ËÂØ´ÍÂÙ· µÕè Òí á˹ § ¹Ñ¹é à» ¹àÇÅÒ»ÃÐÁÒ³ 3 ÇÔ¹Ò·Õ ¨Ò¡¹Ñ¹é ¨Ö§à¤Å×Íè ¹·Õµè ç໠¹àÇÅÒ 0.5 ÇÔ¹Ò·Õ à¾×Íè ¢ ÒÁàÊ ¹µÑ´
Í ҧäáçµÒÁ ÊíÒËÃѺ¡ÒáíÒ˹´¤ ҢͧàÇÅÒã¹áµ ÅЪ ǧ¢Í§¡ÒÃà¤Å×è͹·Õè¹Ñé¹¼Ù ¾Ñ²¹ÒÊÒÁÒö»ÃÑºá¡ ä´ à¾×èÍãË àËÁÒÐÊÁ ¡ÑºÊ¶Ò¹¡Òó áÅÐÊÀÒ¾áÇ´Å ÍÍÁ¢Í§Ê¹ÒÁã¹¢³Ð¹Ñé¹ PORTC
ON
PA7
PA6
SCL
PA0
PB1
PB0
PB3
PB2
Over 7.5V
I P S T - B O T o ro b o t - - - - - - - - -- - - - - - -
M2
PD5
PD7
MOTOR OUTPUT
M1
PD1
PD4
TxD
PD0
PD6
SERVO
* * * *! *"
RxD
PD3
SW3
PD2
SW2
+ -
SW1
S
PB4
RESET
DisplayMotor
ATMEGA16
PA1
Vm OUT
IPST MicroBOX PA2
DC INPUT
SDA RS-232 LOW BATT.
++ Vin -
PA3
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
KNOB PA7
DC input
OFF
ON
PA5
â»Ãá¡ÃÁ·Õè L13-1 ä¿Å robo_line1.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ¤Çº¤ØÁãË Ë¹Ø Â¹µ IPST-BOT à¤Å×Íè ¹·Õµè ÒÁàÊ ¹â´Â㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 2 µÑÇ (¨º)
146 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡Ò÷´Åͧ·Õè 14 Ëع ¹µ à¤Å×Íè ¹·Õµè ÒÁàÊ ¹â´Â㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 3 µÑÇ ã¹¡Ò÷´Åͧ¹Õàé » ¹¡Òõ ÍÂÍ´¨Ò¡¡Ò÷´Åͧ·Õè 13 ´ Ç¡ÒÃà¾ÔÁè ἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô à¾×Íè ¹íÒÁÒ㪠§Ò¹à» ¹µÑǵÃǨ¨ÑºàÊ ¹µÑÇ·Õè 3 â´ÂµÔ´µÑ§é ࢠҷյè Òí áË §¡ÅÒ§ÃÐËÇ Ò§µÑǵÃǨ¨ÑкàÊ ¹´ Ò¹« ÒÂáÅТÇÒ (Ëҡ㹡Ò÷´Åͧ·Õè 13 äÁ ä´ ¶Í´á¼§Ç§¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô·Õµè ´Ô µÑ§é ÍÂÙã µ °Ò¹Ëع ¹µ µÃ§¡ÅÒ§ÍÍ¡ ¡çÊÒÁÒö㪠§Ò¹µ Íä´ àÅÂ) ·Ñ§é ¹Õàé ¾×Íè ª ÇÂãË Ë¹Ø Â¹µ IPST-BOT ÊÒÁÒöµÃǨ¨ÑºàÊ ¹ã¹ÅѡɳТͧàÊ ¹µÑ´ËÃ×Í·Ò§ áÂ¡ä´ ´ÂÕ §Ôè ¢Ö¹é ÊíÒËÃѺʹÒÁ·´Êͺ¹Ñ¹é ¨Ð㪠Ẻà´ÕÂǡѺ¡Ò÷´Åͧ·Õè 13 ÃÇÁ¶Ö§¡ÒÃàª×Íè Áµ Í·Ò§ÎÒà ´áÇà ´Ç  ·Õàè ¾ÔÁè àµÔÁࢠÒÁÒ¤×Í µ ͧµ ÍÊÒ¨ҡἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàôµÑÇ·Õµè ´Ô µÑ§é äÇ µÃ§¡ÅÒ§¢Í§°Ò¹Ëع ¹µ ÁÒࢠҷբè Ò¾Íà µ PA1 ¢Í§á¼§Ç§¨Ã¤Çº¤ØÁËع ¹µ IPST-BOT à§×Íè ¹ä¢ã¹¡Ò÷íÒ§Ò¹¢Í§Ëع ¹µ IPST-BOT 㹡Ò÷´Åͧ¹Õ¤é Í× 1. Ëع ¹µ µÍ §à¤Å×Íè ¹·Õµè ÒÁàÊ ¹ÊÕ´Òí ·Õ¡è Òí ˹´ 2. àÁ×Íè Ëع ¹µ ¾ºàÊ ¹µÑ´¨Ðµ ͧËÂØ´ÃÍ·Õ¨è ´Ø µÑ´à» ¹àÇÅÒ 3 ÇÔ¹Ò·Õ áŠǨ֧à¤Å×Íè ¹·Õµè Í ä»
ËÅÑ¡¡Òþ×é¹°Ò¹¢Í§ËØ ¹Â¹µ à¤Å×è͹·ÕèµÒÁàÊ ¹áººãª µÑǵÃǨ¨ÑºàÊ ¹ 3 µÑÇ ËÑÇã¨ËÅÑ¡¢Í§Ëع ¹µ à¤Å×Íè ¹·Õµè ÒÁàÊ ¹¤×Í ¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õâè ´Â·Õµè ÇÑ µÃǨ¨ÑºàÊ ¹ÊͧµÑÇ·Ò§´ Ò¹ « ÒÂáÅТÇÒÍÂÙã ¹µíÒ˹ §·Õ¤è à ÍÁàÊ ¹ Ê Ç¹µÑǵÃǨ¨ÑºàÊ ¹µÃ§¡ÅÒ§¨ÐÍÂÙº ¹àÊ ¹ ´Ñ§¹Ñ¹é ¨Ðà¡Ô´à˵ءÒó ¢¹Öé ·Ñ§é ËÁ´ 6 ¡Ã³Õ «Ö§è ÊÒÁÒö¹íÒÁÒ㪠¡Òí ˹´à§×Íè ¹ä¢¢Í§¡Ò÷íÒ§Ò¹ä´ ´§Ñ ¹Õé
¡Ã³Õ·Õè 1 ËØ ¹Â¹µ ÍÂÙ ã¹á¹ÇàÊ ¹¢Í§Ê¹ÒÁËÃ×ͤà ÍÁàÊ ¹
PORTC
PA7
PA6
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V RS-232 +
U
AT ME GA1 6
IPST- BOTo robot - - - - - - - - -- - - - - - -
.
µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò µÃǨ¨Ñº¾º¾×¹é ʹÒÁÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹µÃ§¡ÅÒ§ µÃǨ¨Ñº¾ºàÊ ¹ÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒ µÃǨ¨Ñº¾º¾×¹é ʹÒÁÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) ¡ÒäǺ¤ØÁËع ¹µ àÁ×Íè ¾ºà˵ءÒó ¹¤Õé Í× ¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò áÅ Ç˹ ǧ àÇÅÒ㹡ÒÃà¤Å×Íè ¹·Õªè Ç §Êѹé æ
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
147
¡Ã³Õ·Õè 2 ËØ ¹Â¹µ à¤Å×è͹·Õè¾ ¹¨Ò¡àÊ ¹ä»·Ò§¢ÇÒ
PA 7
PA 6
PO RT C
GN PC D PC 0 PC21 PC PC 3 PC54 PC PC 6 +5 7 V RS-2 32
+
AT ME GA 1 6
IP ST --B -OT -or -ob ot ----
-
.
µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò µÃǨ¨Ñº¾ºàÊ ¹ÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹µÃ§¡ÅÒ§ µÃǨ¨Ñº¾º¾×¹é ʹÒÁÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒ µÃǨ¨Ñº¾º¾×¹é ʹÒÁÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) ¡ÒäǺ¤ØÁËع ¹µ àÁ×Íè ¾ºà˵ءÒó ¹¤Õé Í× ¤Çº¤ØÁãË Ë¹Ø Â¹µ àÅÕÂé Ç« Ò áÅ Ç˹ ǧàÇÅÒ㹡ÒÃà¤Å×Íè ¹·Õè ª ǧÊѹé æ à¾×Íè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¡è ÅѺ令à ÍÁàÊ ¹
¡Ã³Õ·Õè 3 Ëع ¹µ àÍÕ§¨Ò¡àÊ ¹·Ò§ä»´ Ò¹« ÒÂ
+
C RT PO D GN PC01 PC 2 PC PC34 PC 5 PC PC67 PC V +5
32 RS-2
PA 7
PA 6
AT ME 1 GA 6
ot -ob or - - OT --B - ST -IP --.
µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò µÃǨ¨Ñº¾º¾×¹é ʹÒÁÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹µÃ§¡ÅÒ§ µÃǨ¨Ñº¾º¾×¹é ʹÒÁÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒ µÃǨ¨Ñº¾ºàÊ ¹ÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) ¡ÒäǺ¤ØÁËع ¹µ àÁ×Íè ¾ºà˵ءÒó ¹Õé ¤Çº¤ØÁãË Ë¹Ø Â¹µ àÅÕÂé Ç¢ÇÒ áÅ Ç˹ ǧàÇÅÒ㹡ÒÃà¤Å×Íè ¹·Õè ª ǧÊѹé æ à¾×Íè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¡è ÅѺ令à ÍÁàÊ ¹
148 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡Ã³Õ·Õè 4 Ëع ¹µ ¾º·Ò§á¡´ Ò¹« ÒÂ
PORTC
PA7
PA6
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V RS-232 +
AT ME GA1 6
IPST- BOTo robot - - - - - - - - -- - - - - - -
.
µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò µÃǨ¨Ñº¾ºàÊ ¹ÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹µÃ§¡ÅÒ§ µÃǨ¨Ñº¾ºàÊ ¹ÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒ µÃǨ¨Ñº¾º¾×¹é ʹÒÁÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) àÁ×Íè ¾ºà˵ءÒó ¹Õé ¼Ù¾ ² Ñ ¹ÒÍÒ¨àÅ×Í¡Êѧè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò,àÅÕÂé Ç« Ò , àÅÕÂé Ç¢ÇÒ, ËÂØ´ËÃ×ͶÍÂËÅÑ§ä´ µÒÁµ ͧ¡Òà ¢Ö¹é ÍÂÙ¡ ºÑ à» ÒËÁÒÂ㹡Ò÷íÒÀÒÃСԨ
¡Ã³Õ·Õè 5 Ëع ¹µ ¾º·Ò§á¡´ Ò¹¢ÇÒ
PORTC
PA7
PA6
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V RS-232 +
AT ME GA1 6
IPST- BOTo robot - - - - - - - - -- - - - - - -
.
µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò µÃǨ¨Ñº¾º¾×¹é ʹÒÁÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹µÃ§¡ÅÒ§ µÃǨ¨Ñº¾ºàÊ ¹ÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒ µÃǨ¨Ñº¾ºàÊ ¹ÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) àÁ×Íè ¾ºà˵ءÒó ¹Õé ¼Ù¾ ² Ñ ¹ÒÍÒ¨àÅ×Í¡Êѧè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò,àÅÕÂé Ç« Ò , àÅÕÂé Ç¢ÇÒ, ËÂØ´ËÃ×ͶÍÂËÅÑ§ä´ µÒÁµ ͧ¡Òà ¢Ö¹é ÍÂÙ¡ ºÑ à» ÒËÁÒÂ㹡Ò÷íÒÀÒÃСԨ
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
149
¡Ã³Õ·Õè 6 Ëع ¹µ ¾º·Ò§á¡·Õàè » ¹àÊ ¹µÑ´
PORTC
PA7
PA6
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V RS-232 +
AT ME GA1 6
IPST- BOTo robot - - - - - - - - -- - - - - - -
.
µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò µÃǨ¨Ñº¾ºàÊ ¹ÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹µÃ§¡ÅÒ§ µÃǨ¨Ñº¾ºàÊ ¹ÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒ µÃǨ¨Ñº¾ºàÊ ¹ÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) àÁ×Íè ¾ºà˵ءÒó ¹Õé ¼Ù¾ ² Ñ ¹ÒÍÒ¨àÅ×Í¡Êѧè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò,àÅÕÂé Ç« Ò , àÅÕÂé Ç¢ÇÒ, ËÂØ´ËÃ×ͶÍÂËÅÑ§ä´ µÒÁµ ͧ¡Òà ¢Ö¹é ÍÂÙ¡ ºÑ à» ÒËÁÒÂ㹡Ò÷íÒÀÒÃСԨ
¢Ñ鹵͹¡Ò÷´Åͧ L14.1 Êà ҧä¿Å â»Ãà¨ç¡µ ªÍ×è robo_line2 áÅоÔÁ¾ â»Ãá¡ÃÁÀÒÉÒ C µÒÁâ»Ãá¡ÃÁ·Õè L13-1 L14.2 ¤ÍÁä¾Å áÅдÒǹ âËÅ´â»Ãá¡ÃÁà¾×Íè ·´Êͺ¼ÅÅѾ¸ ¡Ò÷íÒ§Ò¹ L14.3 ¹íÒËع ¹µ IPST-BOT ä»ÇÒ§¤Ã ÍÁàÊ ¹ÊÕ´Òí ã¹µíÒá˹ §·Õäè Á 㪠¨´Ø µÑ´ L14.4 àÃÔÁè µ ¹Ãѹâ»Ãá¡ÃÁ ·Õâè Á´ÙÅ LCD ¢Í§Ëع ¹µ áÊ´§¢ ͤÇÒÁ Press
SW1
ᨠ§ãË ¡´ÊÇÔµª SW1 ·Õáè ¼§Ç§¨Ã Display-MOTOR ¢Í§Ëع ¹µ IPST-BOT à¾×Íè Êѧè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õè L14.5 ¡´ÊÇÔµª SW1 ·Õáè ¼§Ç§¨Ã Display-MOTOR ¢Í§Ëع ¹µ IPST-BOT Êѧࡵ¡ÒÃà¤Å×Íè ¹·Õ¢è ͧËع ¹µ Ëع ¹µ ¨Ðà¤Å×Íè ¹·Õµè ÒÁàÊ ¹ÊÕ´Òí àÁ×Íè ¾ºàÊ ¹µÑ´ ¨ÐËÂØ´¹Ô§è »ÃÐÁÒ³ 3 ÇÔ¹Ò·Õ ËÅѧ¨Ò¡¹Ñ¹é ¨Ö§à¤Å×Íè ¹·Õè µÒÁàÊ ¹µ Íä» (àËÁ×͹¡Ñº¡Ò÷´Åͧ·Õè 13)
150 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
#include <motor.h> #include <sleep.h> #include <in_out.h> #include <analog.h> #include <lcd.h> #define POW 70 #define REF 600 void forward(unsigned int delay) { motor(1,POW); motor(2,POW); sleep(delay); } void backward(unsigned int delay) { motor(1,-POW); motor(2,-POW); sleep(delay); } void turn_left(unsigned int delay) { motor(1,-POW); motor(2,POW); sleep(delay); } void turn_right(unsigned int delay) { motor(1,POW); motor(2,-POW); sleep(delay); } void pause() { motor_stop(1); motor_stop(2); } void main() { unsigned int left,mid,right; lcd( Press SW1 ); sw1_press(); while(1)
// àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè motor // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sleep // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sw1_press // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè analong // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè lcd // ¡íÒ˹´¡íÒÅѧ¢Ñº¢Í§ÁÍàµÍà ¤§·Õ·è Õè 70 % ¢Í§¡íÒÅѧ¢ÑºÊÙ§ÊØ´ // ¡íÒ˹´¤ ÒÍ Ò§Íԧ㹡ÒÃà»ÃÕºà·ÕºàÊ ¹áÅо׹é ʹÒÁ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ µÃ§ä»¢ ҧ˹ Ò // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع仢 ҧ˹ Ò // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·ÕµÃ§ä»¢ ҧ˹ Ò // ¿ §¡ ªÑ蹢Ѻà¤Å×è͹ËØ ¹Â¹µ ¶ÍÂËÅѧµÃ§ // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع¶ÍÂËÅѧ // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ ¶ÍÂËÅѧµÃ§ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç« Ò // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç« Ò // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç¢ÇÒ // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع仢 ҧ˹ Ò // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع¶ÍÂËÅѧ // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç¢ÇÒ // ¿ §¡ ª¹Ñè ËÂØ´¡ÒÃà¤Å×Íè ¹·ÕËè ¹Ø Â¹µ // ËÂØ´¢ÑºÁÍàµÍà 1 // ËÂØ´¢ÑºÁÍàµÍà 2
// ¡íÒ˹´µÑÇá»Ãà¡çº¤ Ò·ÕÍè Ò ¹ä´ ¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« ÒÂ,¡ÅÒ§áÅТÇÒ // áÊ´§¢ ͤÇÒÁᨠ§ãË ¡´ÊÇÔµª SW1 // Ãͨ¹¡Ãзѧè ÊÇÔµª SW1 ¶Ù¡¡´
â»Ãá¡ÃÁ·Õè L14-1 ä¿Å robo_line2.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ¤Çº¤ØÁãË Ë¹Ø Â¹µ IPST-BOT à¤Å×Íè ¹·Õµè ÒÁàÊ ¹â´Â㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 3 µÑÇ (ÁÕµÍ )
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
{
left = analog(0); mid = analog(1); right = analog(2); if(left>REF && mid<REF && right>REF) { forward(10); } else if(left<REF && mid>REF && right>REF) { turn_left(10); } else if(left>REF && mid>REF && right<REF) { turn_right(10); } else if(left<REF && mid<REF && right<REF) { pause(); sleep(3000); forward(500); }
151
// Í Ò¹¤ Ò¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« ÒÂÁÒà¡çº·Õµè ÇÑ á»Ã left // Í Ò¹¤ Ò¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹µÃ§¡ÅÒ§ÁÒà¡çº·Õµè ÇÑ á»Ã mid // Í Ò¹¤ Ò¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒÁÒà¡çº·Õµè ÇÑ á»Ã right // µÃǨÊ꼂 ÒËع ¹µ ¤Ã ÍÁàÊ ¹ãª ËÃ×ÍäÁ // ¶ Ò㪠Ëع ¹µ ¨Ðà¤Å×Íè ¹·Õµè ç仢 ҧ˹ Òà» ¹àÇÅÒÊѹé æ // µÃǨÊÍºÇ Ò Ëع ¹µ à¤Å×Íè ¹·Õ¾è ¹ ¨Ò¡àÊ ¹ä»·Ò§¢ÇÒËÃ×ÍäÁ // ¶ Ò㪠Ëع ¹µ àÅÕÂé Ç« Ò 0.01 ÇÔ¹Ò·Õà¾×Íè ¡ÅѺÁҤà ÍÁàÊ ¹ // µÃǨÊÍºÇ Ò Ëع ¹µ à¤Å×Íè ¹·Õ¾è ¹ ¨Ò¡àÊ ¹ä»·Ò§« ÒÂËÃ×ÍäÁ // ¶ Ò㪠Ëع ¹µ àÅÕÂé Ç¢ÇÒ 0.01 ÇÔ¹Ò·Õ à¾×Íè ¡ÅѺÁҤà ÍÁàÊ ¹ // µÃǨÊ꼂 ÒËع ¹µ ¾ºàÊ ¹µÑ´ËÃ×ÍäÁ // ¶ Ò㪠ËÂØ´¡ÒÃà¤Å×Íè ¹·ÕËè ¹Ø Â¹µ // ˹ ǧàÇÅÒÊíÒËÃѺ¡ÒÃËÂØ´Ëع ¹µ 3 ÇÔ¹Ò·Õ // Ëع ¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò 0.5 ÇÔ¹Ò·Õà¾×Íè ¢ ÒÁàÊ ¹µÑ´
} ¤íÒ͸ԺÒÂâ»Ãá¡ÃÁ à§×Íè ¹ä¢ã¹¡ÒõÃǨÊͺ¤ ҢͧµÑǵÃǨ¨Ñºà¾×Íè ¡íÒ˹´ÅѡɳСÒÃà¤Å×Íè ¹·ÕÊè Òí ËÃѺ¡Ò÷´Åͧ¹ÕÁé Õ 4 ¡Ã³Õ¤Í× 1. ¡Ã³Õ if(left>REF && mid<REF && right>REF) à» ¹¡ÒõÃǨÊÍºÇ Ò Ëع ¹µ ¤Ã ÍÁàÊ ¹ËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§¨Ð¤Çº¤ØÁãË ËØ ¹Â¹µ à¤Å×è͹·ÕèµÃ§ä»¢ ҧ˹ Òã¹àÇÅÒÊÑé¹æ 2. ¡Ã³Õ else if(left<REF && mid>REF && right>REF) à» ¹¡ÒõÃǨÊÍºÇ Ò Ëع ¹µ à¤Å×Íè ¹·Õ¾è ¹ ¨Ò¡àÊ ¹ÁÒ·Ò§¢ÇÒËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ ¨Ð¤Çº¤ØÁãË Ë¹Ø Â¹µ àÅÕÂé Ç« ÒÂà¾×Íè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¡è ÅѺÁҤà ÍÁàÊ ¹ÍÕ¡¤Ãѧé 3. ¡Ã³Õ else if(left>REF && mid>REF && right<REF) à» ¹¡ÒõÃǨÊÍºÇ Ò Ëع ¹µ à¤Å×Íè ¹·Õ¾è ¹ ¨Ò¡àÊ ¹ÁÒ·Ò§« ÒÂËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ ¨Ð¤Çº¤ØÁãË Ë¹Ø Â¹µ àÅÕÂé Ç¢ÇÒà¾×Íè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¡è ÅѺÁҤà ÍÁàÊ ¹ÍÕ¡¤Ãѧé 4. ¡Ã³Õ else if(left<REF && mid<REF && right<REF) à» ¹¡ÒõÃǨÊÍºÇ Ò Ëع ¹µ à¤Å×Íè ¹·Õ¾è º ¨Ø´µÑ´ËÃ×Í·Ò§á¡ËÃ×ÍäÁ ¶ Ò¾º¨Ð¤Çº¤ØÁãË ËØ ¹Â¹µ ËÂØ´ÍÂÙ ·ÕèµíÒá˹ §¹Ñé¹à» ¹àÇÅÒ»ÃÐÁÒ³ 3 ÇÔ¹Ò·Õ ¨Ò¡¹Ñ鹨֧ à¤Å×Íè ¹·Õµè ç໠¹àÇÅÒ 0.5 ÇÔ¹Ò·Õ à¾×Íè ¢ ÒÁàÊ ¹µÑ´
â»Ãá¡ÃÁ·Õè L14-1 ä¿Å robo_line2.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ¤Çº¤ØÁãË Ë¹Ø Â¹µ IPST-BOT à¤Å×Íè ¹·Õµè ÒÁàÊ ¹â´Â㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 3 µÑÇ (¨º)
152 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
º·ÊÃØ»à¾ÔèÁàµÔÁ ¨Ò¡µÑÇÍ ҧ¡Ò÷´Åͧ·Õè 13 áÅÐ 14 ¡ÒäǺ¤ØÁËع ¹µ ãË à¤Å×Íè ¹·Õµè ÒÁàÊ ¹ãª ËÅÑ¡¡ÒÃà´ÕÂǡѹ áÅÐÁÕÀÒÃÐ ¡Ô¨àËÁ×͹¡Ñ¹ ¤ÇÒÁᵡµ Ò§ÍÂÙ· ¨Õè Òí ¹Ç¹¢Í§µÑǵÃǨ¨ÑºàÊ ¹ â´Â¡Ò÷´Åͧ·Õè 13 㪠2 µÑÇ ã¹¢³Ð·Õãè ¹¡Ò÷´Åͧ·Õè 14 㪠3 µÑÇ ·Ñ§é ¹Õàé » ¹à¾ÃÒÐʹÒÁ·´ÊͺäÁ Á¤Õ ÇÒÁ«Ñº« ͹ÁÒ¡à¡Ô¹ä» ¡ÒÃ㪠§Ò¹µÑǵÃǨ¨ÑºàÊ ¹à¾Õ§ 2 µÑǨ֧ÊÒÁÒö ÃͧÃÑºä´ ·Ç Ò㹡óշÊÕè ¹ÒÁ·´ÊͺÁÕ¤ÇÒÁ«Ñº« ͹ÁÒ¡¢Ö¹é ઠ¹ Áշҧᡫ ÒÂËÃ×ͷҧᡢÇÒ ¡ÒÃ㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 3 µÑǨÐãË ¼ÅÅѾ¸ 㹡ÒÃÇÔà¤ÃÒÐË àÊ ¹·Ò§ä´ ·áÕè Á ¹ÂíÒ¡Ç Ò ¢ÍãË ¾¨Ô ÒóҡóÕà»ÃÕºà·Õº´Ñ§µ Í仹Õé
(1) ¡Ã³ÕÁ·Õ ҧᡫ Ò (1.1) àÁ×Íè 㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 2 µÑÇ
PA
7
PA
6
PO RT C
GN PC D PC 0 PC 1 PC 2 PC 3 PC 4 PC 5 PC 6 +5 7 V
PORTC
RS -232
PA7
PA6
AT ME GA 1 6
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V
IP ST --B -OT -or -ob -ot ---
RS-232 +
AT ME GA1 6
+
IPST- BOTo robot - - - - - - - - -- - - - - - -
-
. .
¨Ð¾ºÇ Ò µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò¨оºàÊ ¹à¾Õ§µÑÇà´ÕÂÇ «Ö§è ·íÒãË äÁ ÊÒÁÒöÊÃØ»ä´ ÇÒ ¢³Ð¹Õé Ëع ¹µ ¡Òí Åѧà¤Å×Íè ¹·Õ¾è ¹ ¨Ò¡àÊ ¹ä»·Ò§¢ÇÒËÃ×Íà¤Å×Íè ¹·Õ¾è º·Ò§á¡« Ò (1.2) àÁ×Íè 㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 3 µÑÇ
PORTC
PA7
PA6
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V RS-232 +
AT ME GA1 6
I P S T - B O T o ro b o t - - - - - - - - -- - - - - - -
.
¨Ð¾ºÇ Ò µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« ÒÂáÅеç¡ÅÒ§¾ºàÊ ¹ ·íÒãË ÊÒÁÒöÊÃØ»ä´ ª´Ñ à¨¹Ç Ò ¢³Ð¹Õé Ëع ¹µ à¤Å×Íè ¹·ÕÁè Ò¾º·Ò§á¡« ÒÂ
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
153
(2) ¡Ã³ÕÁ·Õ ҧᡢÇÒ (2.1) àÁ×Íè 㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 2 µÑÇ
PO +
C RT
D GN 0 PC 1 PC 2 PC 3 PC 4 PC 5 PC 6 PC 7 PC V +5
PA
-232 RS
7 PA
6
PORTC
PA7
PA6
AT ME 1 GA 6
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V
ot ob -or - OT --B - ST -IP ---
RS-232 +
AT ME GA1 6
I P S T - B O T o ro b o t - - - - - - - - -- - - - - - -
.
.
¨ÐàËç¹Ç Ò µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇҨоºàÊ ¹à¾Õ§µÑÇà´ÕÂÇ «Ö§è ·íÒãË äÁ ÊÒÁÒöÊÃØ»ä´ ÇÒ ¢³Ð¹Õé Ëع ¹µ ¡Òí Åѧà¤Å×Íè ¹·Õ¾è ¹ ¨Ò¡àÊ ¹ä»·Ò§« ÒÂËÃ×Íà¤Å×Íè ¹·Õ¾è º·Ò§á¡¢ÇÒ (2.2) àÁ×Íè 㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 3 µÑÇ
PORTC
PA7
PA6
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V RS-232 +
AT ME GA1 6
I P S T - B O T o ro b o t - - - - - - - - -- - - - - - -
.
¨Ð¾ºÇ Ò µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒáÅеç¡ÅÒ§¾ºàÊ ¹ ·íÒãË ÊÃØ»ä´ ªÑ´à¨¹Ç Ò ¢³Ð¹ÕéËØ ¹Â¹µ à¤Å×Íè ¹·ÕÁè Ò¾º·Ò§á¡¢ÇÒ
PORTC
PA6
IPST MicroBOX PA1
PA0
PB1
PB0
PB3
PB2
I P S T - B O T o ro b o t - - - - - - - - -- - - - - - -
PD7
M2
PD5
MOTOR OUTPUT
M1
PD1
PD6
TxD
PD0
PD4
SERVO
* * * *! *"
RxD
PD3
SW3
PD2
SW2
+ -
SW1
S
PB4
RESET
DisplayMotor
ATMEGA16
PA2
Vm OUT
PA7
PA3
Over 7.5V
++ Vin -
PA4
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA5
DC INPUT
SDA RS-232 LOW BATT.
DC input
OFF
ON
ON
SCL KNOB PA7
154 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡Ò÷´Åͧ·Õè 15 Ëع ¹µ µÃǨ¨Ñº·Ò§á¡áÅÐàÊ ¹µÑ´ 㹡Ò÷´Åͧ¹Õàé » ¹¡Òõ ÍÂÍ´¨Ò¡¡Ò÷´Åͧ·Õè 14 â´Âà¾ÔÁè ¤ÇÒÁ«Ñº« ͹¢Í§Ê¹ÒÁ·´ÊͺáÅÐà§×Íè ¹ä¢ ã¹¡ÒÃà¤Å×Íè ¹·Õµè ÒÁàÊ ¹ÁÒ¡¢Ö¹é ¡Ñ§áÊ´§ã¹Ê¹ÒÁ·´Êͺ¢Í§¡Ò÷´Åͧ¹Õãé ¹ÃÙ»·Õè L15-1 â´ÂËع ¹µ IPST-BOT µ ͧ㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 3 µÑÇ㹡Òû¯ÔºµÑ ÀÔ ÒÃСԨ¹Õé à§×Íè ¹ä¢ã¹¡Ò÷íÒ§Ò¹ÁÕ´§Ñ ¹Õé 1. Ëع ¹µ µÍ §¶Ù¡»Å ͵ÑǨҡ¨Ø´àÃÔÁè µ ¹ 2. Ëع ¹µ µÍ §à¤Å×Íè ¹·Õ¼è Ò ¹·Ò§á¡« ÒÂáÅТÇÒã¹ÃÐËÇ Ò§·Ò§·Õäè »·Ò§á¡àÊ ¹µÑ´ 3. àÁ×Íè ÁÒ¶Ö§·Ò§á¡àÊ ¹µÑ´µ ͧàÅÕÂé Ç« ÒÂáÅ Çà¤Å×Íè ¹·Õµè ÒÁàÊ ¹¢Í§Ê¹ÒÁã¹·ÔȷҧǹµÒÁà¢çÁ¹ÒÌ ¡Ò
¡ÒÃàª×èÍÁµ Í·Ò§ÎÒà ´áÇà µ ÍÊÒ¨ҡ¾Íà µ PA0 ࢠҡѺἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô㵠°Ò¹Ëع ¹µ ´Ò ¹Ë¹ ÒÁØÁ« Ò l µ ÍÊÒ¨ҡ¾Íà µ PA1 ࢠҡѺἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô㵠°Ò¹Ëع ¹µ ´Ò ¹Ë¹ ҵç¡ÅÒ§ l µ ÍÊÒ¨ҡ¾Íà µ PA2 ࢠҡѺἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô㵠°Ò¹Ëع ¹µ ´Ò ¹Ë¹ ÒÁØÁ¢ÇÒ l
¢Ñ鹵͹¡Ò÷´Åͧ L15.1 Êà ҧä¿Å â»Ãà¨ç¡µ ªÍ×è servo_robo_line3 áÅоÔÁ¾ â»Ãá¡ÃÁÀÒÉÒ C µÒÁâ»Ãá¡ÃÁ·Õè L15-1 L15.2 ¤ÍÁä¾Å áÅдÒǹ âËÅ´â»Ãá¡ÃÁà¾×Íè ·´Êͺ¼ÅÅѾ¸ ¡Ò÷íÒ§Ò¹ L15.3 ¹íÒËع ¹µ IPST-BOT ä»ÇÒ§¤Ã ÍÁàÊ ¹ÊÕ´Òí ã¹µíÒá˹ §·Õäè Á 㪠¨´Ø µÑ´ L15.4 àÃÔÁè µ ¹Ãѹâ»Ãá¡ÃÁ ·Õâè Á´ÙÅ LCD ¢Í§Ëع ¹µ áÊ´§¢ ͤÇÒÁ Press
SW1
ᨠ§ãË ¡´ÊÇÔµª SW1 ·Õáè ¼§Ç§¨Ã Display-MOTOR ¢Í§Ëع ¹µ IPST-BOT à¾×Íè Êѧè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õè
¨Ø´àÃÔèÁµ ¹
·Ò§á¡àÊ ¹µÑ´
ÃÙ»·Õè L15-1 ʹÒÁ·´Êͺ¢Í§Ëع ¹µ à¤Å×Íè ¹·Õµè ÒÁàÊ ¹ã¹¡Ò÷´Åͧ·Õè 15
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
#include <motor.h> #include <sleep.h> #include <in_out.h> #include <analog.h> #include <lcd.h> #define POW 70 #define REF 600 void forward(unsigned int delay) { motor(1,POW); motor(2,POW); sleep(delay); } void backward(unsigned int delay) { motor(1,-POW); motor(2,-POW); sleep(delay); } void turn_left(unsigned int delay) { motor(1,-POW); motor(2,POW); sleep(delay); } void turn_right(unsigned int delay) { motor(1,POW); motor(2,-POW); sleep(delay); } void main() { unsigned int left,mid,right; lcd( Press SW1 ); sw1_press(); while(1) { left = analog(0); mid = analog(1);
155
// àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè motor // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sleep // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sw1_press // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè analong // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè lcd // ¡íÒ˹´¡íÒÅѧ¢Ñº¢Í§ÁÍàµÍà ¤§·Õ·è Õè 70 % ¢Í§¡íÒÅѧ¢ÑºÊÙ§ÊØ´ // ¡íÒ˹´¤ ÒÍ Ò§Íԧ㹡ÒÃà»ÃÕºà·ÕºàÊ ¹áÅо׹é ʹÒÁ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ µÃ§ä»¢ ҧ˹ Ò // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع仢 ҧ˹ Ò // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·ÕµÃ§ä»¢ ҧ˹ Ò // ¿ §¡ ªÑ蹢Ѻà¤Å×è͹ËØ ¹Â¹µ ¶ÍÂËÅѧµÃ§ // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع¶ÍÂËÅѧ // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ ¶ÍÂËÅѧµÃ§ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç« Ò // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç« Ò // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç¢ÇÒ // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع仢 ҧ˹ Ò // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع¶ÍÂËÅѧ // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç¢ÇÒ
// ¡íÒ˹´µÑÇá»Ãà¡çº¤ Ò·ÕÍè Ò ¹ä´ ¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« ÒÂ,¡ÅÒ§áÅТÇÒ // áÊ´§¢ ͤÇÒÁᨠ§ãË ¡´ÊÇÔµª SW1 // Ãͨ¹¡Ãзѧè ÊÇÔµª SW1 ¶Ù¡¡´ // Í Ò¹¤ Ò¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« ÒÂÁÒà¡çº·Õµè ÇÑ á»Ã left // Í Ò¹¤ Ò¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹µÃ§¡ÅÒ§ÁÒà¡çº·Õµè ÇÑ á»Ã mid
â»Ãá¡ÃÁ·Õè L15-1 ä¿Å robo_line3.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ¤Çº¤ØÁãË Ë¹Ø Â¹µ IPST-BOT à¤Å×Íè ¹·Õè µÒÁàÊ ¹áººÁÕ¡ÒõÃǨÊͺ¨Ø´µÑ´áÅзҧá¡â´Â㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 3 µÑÇ (ÁÕµÍ )
156 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
right = analog(2); if(left>REF && mid<REF && right>REF) { forward(10); } else if(left<REF && mid>REF && right>REF) { turn_left(10);
}
}
// Í Ò¹¤ Ò¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒÁÒà¡çº·Õµè ÇÑ á»Ã right // µÃǨÊÍºÇ Ò Ëع ¹µ ¤Ã ÍÁàÊ ¹ËÃ×ÍäÁ // ¶ Ò㪠¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õäè »¢ ҧ˹ Ò // µÃǨÊÍºÇ Ò Ëع ¹µ à¤Å×Íè ¹·Õ¾è ¹ ¨Ò¡àÊ ¹ä»·Ò§¢ÇÒËÃ×ÍäÁ // ¶ Ò㪠àÅÕÂé Ç« Ò´ Ǥ ÒàÇÅÒÊѹé æ 0.01 ÇÔ¹Ò·Õ // à¾×Íè ¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¡è ÅѺÁҤà ÍÁàÊ ¹
} else if(left>REF && mid>REF && right<REF) // µÃǨÊÍºÇ Ò Ëع ¹µ à¤Å×Íè ¹·Õ¾è ¹ ¨Ò¡àÊ ¹ä»·Ò§« ÒÂËÃ×ÍäÁ { turn_right(10); // ¶ Ò㪠àÅÕÂé Ç¢ÇÒ´ Ǥ ÒàÇÅÒÊѹé æ 0.01 ÇÔ¹Ò·Õ // à¾×Íè ¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¡è ÅѺÁҤà ÍÁàÊ ¹ } else if(left<REF && mid<REF && right>REF) // µÃǨÊÍºÇ Ò Ëع ¹µ ¾º·Ò§á¡« ÒÂËÃ×ÍäÁ { forward(10); // ¶ Ò㪠¤Çº¤ØÁãË à¤Å×Íè ¹·Õµè çà¾×Íè ¼ Ò¹·Ò§á¡« Ò } else if(left>REF && mid<REF && right<REF) // µÃǨÊÍºÇ Ò Ëع ¹µ ¾º·Ò§á¡¢ÇÒËÃ×ÍäÁ { forward(10); // ¶ Ò㪠¤Çº¤ØÁãË à¤Å×Íè ¹·Õµè çà¾×Íè ¼ Ò¹·Ò§á¡¢ÇÒ } else if(left<REF && mid<REF && right<REF) // µÃǨÊÍºÇ Ò Ëع ¹µ ¾ºàÊ ¹µÑ´ËÃ×ÍäÁ { forward(100); // ¶ Ò㪠¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õäè »¢ ҧ˹ Òà¾×Íè ¢ ÒÁàÊ ¹µÑ´ turn_left(300); // àÅÕÂé Ç« Ò 0.3 ÇÔ¹Ò·Õà¾×Íè ¤Çº¤ØÁãË Ë¹Ø Â¹µ // à¤Å×Íè ¹·Õäè »¤Ã ÍÁàÊ ¹·Ò§´ Ò¹« Ò·շè Ò§á¡àÊ ¹µÑ´ }
¤íÒ͸ԺÒÂâ»Ãá¡ÃÁ à§×Íè ¹ä¢ã¹¡ÒõÃǨÊͺ¤ ҢͧµÑǵÃǨ¨Ñº à¾×Íè ¡íÒ˹´ÅѡɳСÒÃà¤Å×Íè ¹·ÕÊè Òí ËÃѺ¡Ò÷´Åͧ¹ÕÁé Õ 6 ¡Ã³Õ¤Í× 1. ¡Ã³Õ if(left>REF && mid<REF && right>REF) à» ¹¡ÒõÃǨÊÍºÇ Ò Ëع ¹µ ¤Ã ÍÁàÊ ¹ËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ ¨Ð¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Òã¹àÇÅÒÊѹé æ 2. ¡Ã³Õ else if(left<REF && mid>REF && right>REF) à» ¹¡ÒõÃǨÊÍºÇ Ò Ëع ¹µ à¤Å×Íè ¹·Õ¾è ¹ ¨Ò¡àÊ ¹ÁÒ·Ò§¢ÇÒËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ ¨Ð¤Çº¤ØÁãË Ë¹Ø Â¹µ àÅÕÂé Ç« ÒÂà¾×Íè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¡è ÅѺÁҤà ÍÁàÊ ¹ÍÕ¡¤Ãѧé 3. ¡Ã³Õ else if(left>REF && mid>REF && right<REF) à» ¹¡ÒõÃǨÊÍºÇ Ò Ëع ¹µ à¤Å×Íè ¹·Õ¾è ¹ ¨Ò¡àÊ ¹ÁÒ·Ò§« ÒÂËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ ¨Ð¤Çº¤ØÁãË Ë¹Ø Â¹µ àÅÕÂé Ç¢ÇÒà¾×Íè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¡è ÅѺÁҤà ÍÁàÊ ¹ÍÕ¡¤Ãѧé
â»Ãá¡ÃÁ·Õè L15-1 ä¿Å robo_line3.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ¤Çº¤ØÁãË Ë¹Ø Â¹µ IPST-BOT à¤Å×Íè ¹·Õè µÒÁàÊ ¹áººÁÕ¡ÒõÃǨÊͺ¨Ø´µÑ´áÅзҧá¡â´Â㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 3 µÑÇ (ÁÕµÍ )
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
157
4. ¡Ã³Õ else if(left<REF && mid<REF && right>REF) à» ¹¡ÒõÃǨÊÍºÇ Ò Ëع ¹µ ¾º·Ò§á¡ « ÒÂËÃ×ÍäÁ ¶ Ò¾º ¨Ð¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Òà¾×Íè ¼ Ò¹·Ò§á¡« Ò 5. ¡Ã³Õ else if(left>REF && mid<REF && right<REF) à» ¹¡ÒõÃǨÊÍºÇ Ò Ëع ¹µ ¾º·Ò§á¡ ¢ÇÒËÃ×ÍäÁ ¶ Ò¾º ¨Ð¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Òà¾×Íè ¼ Ò¹·Ò§á¡¢ÇÒ 6. ¡Ã³Õ else if(left<REF && mid<REF && right<REF) à» ¹¡ÒõÃǨÊ꼂 ÒËع ¹µ ¾ºàÊ ¹µÑ´ËÃ×Í äÁ ¶ Ò¾º ¨Ð¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò 0.1 ÇÔ¹Ò·ÕáÅ ÇàÅÕÂé Ç« Ò 0.3 ÇÔ¹Ò·Õ ¨Ò¡¹Ñ¹é ࢠÒÊÙ¡ Ãкǹ ¡ÒõÃǨÊͺà§×è͹䢢ͧ¡ÒÃà¤Å×è͹·ÕèµÒÁàÊ ¹
â»Ãá¡ÃÁ·Õè L15-1 ä¿Å robo_line3.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ¤Çº¤ØÁãË Ë¹Ø Â¹µ IPST-BOT à¤Å×Íè ¹·Õè µÒÁàÊ ¹áººÁÕ¡ÒõÃǨÊͺ¨Ø´µÑ´áÅзҧá¡â´Â㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 3 µÑÇ (¨º) L15.5 ¡´ÊÇÔµª SW1 ·Õáè ¼§Ç§¨Ã Display-MOTOR ¢Í§Ëع ¹µ IPST-BOT Êѧࡵ¡ÒÃà¤Å×Íè ¹·Õ¢è ͧËع ¹µ Ëع ¹µ ¨Ðà¤Å×Íè ¹·Õµè ÒÁàÊ ¹ÊÕ´Òí â´ÂäÁ àÅÕÂé ÇàÁ×Íè ¾º·Ò§á¡« ÒÂáÅТÇÒ àÁ×Íè ¾º·Ò§á¡àÊ ¹µÑ´ Ëع ¹µ ¨ÐàÅÕÂé Ç« ÒÂáÅÐà¤Å×Íè ¹·Õµè ÒÁàÊ ¹â¤ §ã¹·ÔȷҧǹµÒÁà¢çÁ¹ÒÌ ¡ÒÍ ҧµ Íà¹×Íè § ·Ò§á¡àÊ ¹µÑ´
PA6
¨Ø´àÃÔèÁµ ¹ PA7 PORTC
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V
RS-232
.
I P S T - B O T o ro b o t ----- --- ----- -- -
AT ME GA1 6
+
à¾ÔèÁàµÔÁ ¨Ò¡¡Ò÷´Åͧ·Õ¼è Ò ¹ÁÒʹÒÁ·´Êͺ¨ÐÁÕàÊ ¹à» ¹ÊÕ´Òí áÅо׹é à» ¹ÊÕ¢ÒÇ ¶ Òà»ÅÕÂè ¹à» ¹¾×¹é ÊÕ´Òí áÅÐàÊ ¹ à» ¹ÊÕ¢ÒÇ ¡ÒÃà¢Õ¹â»Ãá¡ÃÁà¾×Íè ¤Çº¤ØÁ¡Ò÷íÒ§Ò¹ÂѧÊÒÁÒö㪠ËÅÑ¡¡ÒÃ㹡ÒÃÇÔà¤ÃÒÐË àÊ ¹áÅо׹é ʹÒÁ¨Ò¡¡Òà ·´Åͧ·Õè 10 áÅÐËÅÑ¡¡ÒâѺà¤Å×Íè ¹Ëع ¹µ ¨Ò¡¡Ò÷´Åͧ·Õè 11 ¶Ö§ 15 à» ¹á¹Ç·Ò§ã¹¡ÒþѲ¹Òâ»Ãá¡ÃÁä´ Â¡µÑÇÍ ҧ ¶ Òµ ͧ¡Ò÷´Ê꼂 ÒËع ¹µ ¾ºàÊ ¹µÑ´ËÃ×ÍäÁ 㹡óշ¾ Õè ¹×é ʹÒÁà» ¹ÊÕ¢ÒÇáÅÐàÊ ¹à» ¹ÊÕ´Òí ¨Ð㪠à§×Íè ¹ä¢µ Í仹Õãé ¹¡ÒõÃǨÊͺ
else if(left<REF && mid<REF && right<REF)
ᵶ ÒËÒ¡¾×¹é ʹÒÁà» ¹ÊÕ´Òí áÅÐàÊ ¹à» ¹ÊÕ¢ÒÇ ¨Ð㪠à§×Íè ¹ä¢µ Í仹յé ÃǨÊͺ᷹
else if(left>REF && mid>REF && right>REF)
PORTC
ON
PA7
PA6
SCL
PA0
Over 7.5V
I P S T - B O T o ro b o t ATMEGA16
PA1
Vm OUT
IPST MicroBOX PA2
DC INPUT
SDA RS-232 LOW BATT.
++ Vin -
PA3
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
KNOB PA7
DC input
OFF
ON
PA5
PD7
M2
PD5
MOTOR OUTPUT
M1
PD1
PD6
TxD
PD0
PD4
SERVO
* * * *! *"
RxD
PD3
PB4
SW3
PD2
PB2 SW2
+ -
PB3
SW1
S
PB0
RESET
DisplayMotor
- - - - - - - - -- - - - - - PB1
à¹×Íè §¨Ò¡àÊ ¹à»ÅÕÂè ¹à» ¹ÊÕ¢ÒÇ ´Ñ§¹Ñ¹é ¶ ÒÍ Ò¹¤ Ò¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹µíÒá˹ §ã´ áŠǾºÇ ÒÁÕ¤Ò ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§ ¨Ð¶×ÍÇ Ò µÑǵÃǨ¨ÑºàÊ ¹µíÒá˹ §¹Ñ¹é ¾ºàÊ ¹ÊÕ¢ÒÇ
158 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡Ò÷´Åͧ·Õè 16 Ëع ¹µ à¤Å×Íè ¹·Õµè ÒÁàÊ ¹ÊÕ¢ÒÇâ´Â㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 3 µÑÇ ã¹¡Ò÷´Åͧ¹Õ¹é Òí àʹÍá¹Ç·Ò§¡ÒþѲ¹Òâ»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ IPST-BOT ãË ÊÒÁÒöà¤Å×Íè ¹·Õµè ÒÁ àÊ ¹ÊÕ¢ÒǺ¹¾×¹é ʹÒÁÊÕ´Òí «Ö§è à» ¹¡Ã³ÕµÃ§¢ ÒÁ¡ÑºÊ¹ÒÁ·´Êͺ·Õ¼è Ò ¹ã¹¡Ò÷´Åͧ·Õè 10 ¶Ö§ 15 â´ÂʹÒÁ·´Êͺ 㹡Ò÷´Åͧ¹ÕÁé ÅÕ ¡Ñ ɳÐà´ÕÂǡѺʹÒÁ·´Êͺ㹡Ò÷´Åͧ·Õè 11 à¾Õ§¡ÅѺÊÕ¨Ò¡àÊ ¹ÊÕ´Òí à» ¹àÊ ¹ÊÕ¢ÒÇáÅШҡ ¾×¹é ʹÒÁÊÕ¢ÒÇà» ¹ÊÕ´Òí ´Ñ§áÊ´§ã¹ÃÙ»·Õè L16-1 à§×Íè ¹ä¢¡Ò÷íҧҹ໠¹´Ñ§¹Õé 1. Ëع ¹µ ¨Ðµ ͧà¤Å×Íè ¹·Õµè ÒÁàÊ ¹ÊÕ¢ÒÇ·Õ¡è Òí ˹´ 2. àÁ×Íè Ëع ¹µ ¾ºàÊ ¹µÑ´¨Ðµ ͧËÂØ´ÃÍà» ¹àÇÅÒ 3 ÇÔ¹Ò·Õâ´Â»ÃÐÁÒ³ áŠǨ֧à¤Å×Íè ¹·Õµè Í ä»ä´
Êà ҧʹÒÁ·´Êͺ
㪠ἠ¹¾ÅÒʵԡÅÙ¡¿Ù¡ÊÕ´Òí ¢¹Ò´ 90x60 ૹµÔàÁµÃ (ËÃ×Í¢¹Ò´Í×¹è ¡çä´ µÒÁµ ͧ¡Òà ᵠ¤ÇÃÁÕ¢¹Ò´ãË à¾Õ§¾ÍãË Ë¹Ø Â¹µ ÊÒÁÒöà¤Å×Íè ¹·Õäè ´ â´ÂÊдǡ) ÁÒ·íÒà» ¹¾×¹é ʹÒÁ áŠǵԴ෻ÊÕ¢ÒÇãË à» ¹¡ÃͺàÊ ¹â¤ §áÅÐ ÁÕàÊ ¹µÑ´ 2 ¨Ø´µÒÁµÑÇÍ ҧã¹ÃÙ»·Õè L16-1
ËÅÑ¡¡ÒÃ¾×¹é °Ò¹¢Í§Ëع ¹µ à¤Å×Íè ¹·Õµè ÒÁàÊ ¹ÊÕ¢ÒÇẺ㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 3 µÑÇ
ËÑÇã¨ËÅÑ¡¢Í§Ëع ¹µ à¤Å×Íè ¹·Õµè ÒÁàÊ ¹¤×Í ¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õâè ´Â·Õµè ÇÑ µÃǨ¨ÑºàÊ ¹ÊͧµÑÇ·Ò§´ Ò¹ « ÒÂáÅТÇÒÍÂÙã ¹µíÒ˹ §·Õ¤è à ÍÁàÊ ¹ Ê Ç¹µÑǵÃǨ¨ÑºàÊ ¹µÃ§¡ÅÒ§¨ÐÍÂÙº ¹àÊ ¹ ´Ñ§¹Ñ¹é ¨Ðà¡Ô´à˵ءÒó ¢¹Öé ·Ñ§é ËÁ´ 6 ¡Ã³Õ «Ö§è ÊÒÁÒö¹íÒÁÒ㪠¡Òí ˹´à§×Íè ¹ä¢¢Í§¡Ò÷íÒ§Ò¹ä´ ´§Ñ ¹Õé
PORTC
PA7
PA6
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V RS-232 +
AT ME GA1 6
IPST- BOTo robot - - - - - - - - -- - - - - - -
.
ÃÙ»·Õè L16-1 ʹÒÁ·´Êͺ¢Í§Ëع ¹µ à¤Å×Íè ¹·Õµè ÒÁàÊ ¹ã¹¡Ò÷´Åͧ·Õè 16
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
159
¡Ã³Õ·Õè 1 ËØ ¹Â¹µ ÍÂÙ ã¹á¹ÇàÊ ¹¢Í§Ê¹ÒÁËÃ×ͤà ÍÁàÊ ¹
PORTC
PA7
PA6
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V RS-232 +
AT ME GA1 6
IPST- BOTo robo t - - - - - - - - -- - - - - - -
.
·Õèª Ç§ÊÑé¹æ
µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò µÃǨ¨Ñº¾º¾×¹é ʹÒÁÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹µÃ§¡ÅÒ§ µÃǨ¨Ñº¾ºàÊ ¹ÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒ µÃǨ¨Ñº¾º¾×¹é ʹÒÁÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) àÁ×Íè ¾ºà˵ءÒó ¹Õé µ ͧ¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò áÅ Ç˹ ǧàÇÅÒ㹡ÒÃà¤Å×Íè ¹
¡Ã³Õ·Õè 2 Ëع ¹µ àÍÕ§¨Ò¡àÊ ¹·Ò§ä»´ Ò¹¢ÇÒ
PA
7
PA
6
PO RT C
GN PC D PC 0 PC 1 PC 2 PC 3 PC 4 PC 5 PC 6 +5 7 V RS -232
AT ME GA 1 6
IP ST --B -OT -or -ob -ot ---
+
-
.
µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò µÃǨ¨Ñº¾ºàÊ ¹ÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹µÃ§¡ÅÒ§ µÃǨ¨Ñº¾º¾×¹é ʹÒÁÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒ µÃǨ¨Ñº¾º¾×¹é ʹÒÁÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) àÁ×Íè ¾ºà˵ءÒó ¹Õé µ ͧ¤Çº¤ØÁãË Ë¹Ø Â¹µ àÅÕÂé Ç« ÒÂáÅ Ç˹ ǧàÇÅÒ㹡ÒÃà¤Å×Íè ¹·Õªè Ç §Êѹé æ à¾×Íè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¡è ÅѺ令à ÍÁàÊ ¹
160 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡Ã³Õ·Õè 3 Ëع ¹µ àÍÕ§¨Ò¡àÊ ¹·Ò§ä»´ Ò¹« ÒÂ
C RT PO
+
D GN 0 PC 1 PC 2 PC 3 PC 4 PC 5 PC 6 PC 7 PC V +5
PA
-232 RS
7
PA
6
AT ME 1 GA 6
ot ob -or - OT --B -ST -IP -.
µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò µÃǨ¨Ñº¾º¾×¹é ʹÒÁÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹µÃ§¡ÅÒ§ µÃǨ¨Ñº¾º¾×¹é ʹÒÁÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒ µÃǨ¨Ñº¾ºàÊ ¹ÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) àÁ×Íè ¾ºà˵ءÒó ¹Õé µ ͧ¤Çº¤ØÁãË Ë¹Ø Â¹µ àÅÕÂé Ç¢ÇÒáÅ Ç˹ ǧàÇÅÒ㹡ÒÃà¤Å×Íè ¹·Õªè Ç §Êѹé æ à¾×Íè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¡è ÅѺ令à ÍÁàÊ ¹
¡Ã³Õ·Õè 4 Ëع ¹µ ¾º·Ò§á¡´ Ò¹« ÒÂ
PORTC
PA7
PA6
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V RS-232 +
AT ME GA1 6
IPST- BOTo robot - - - - - - - - -- - - - - - -
.
µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò µÃǨ¨Ñº¾ºàÊ ¹ÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹µÃ§¡ÅÒ§ µÃǨ¨Ñº¾ºàÊ ¹ÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒ µÃǨ¨Ñº¾º¾×¹é ʹÒÁÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) àÁ×Íè ¾ºà˵ءÒó ¹Õé ¼Ù¾ ² Ñ ¹ÒÍÒ¨àÅ×Í¡Êѧè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò,àÅÕÂé Ç« Ò , àÅÕÂé Ç¢ÇÒ, ËÂØ´ËÃ×ͶÍÂËÅÑ§ä´ µÒÁµ ͧ¡Òà ¢Ö¹é ÍÂÙ¡ ºÑ à» ÒËÁÒÂ㹡Ò÷íÒÀÒÃСԨ
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
161
¡Ã³Õ·Õè 5 Ëع ¹µ ¾º·Ò§á¡´ Ò¹¢ÇÒ
PORTC
PA7
PA6
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V RS-232 +
AT ME GA1 6
IPST- BOTo robot - - - - - - - - -- - - - - - -
.
µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò µÃǨ¨Ñº¾º¾×¹é ʹÒÁÊÕ´Òí (Í Ò¹¤ Òä´ ¹Í Â¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹µÃ§¡ÅÒ§ µÃǨ¨Ñº¾ºàÊ ¹ÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒ µÃǨ¨Ñº¾ºàÊ ¹ÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) àÁ×Íè ¾ºà˵ءÒó ¹Õé ¼Ù¾ ² Ñ ¹ÒÍÒ¨àÅ×Í¡Êѧè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò,àÅÕÂé Ç« Ò , àÅÕÂé Ç¢ÇÒ, ËÂØ´ËÃ×ͶÍÂËÅÑ§ä´ µÒÁµ ͧ¡Òà ¢Ö¹é ÍÂÙ¡ ºÑ à» ÒËÁÒÂ㹡Ò÷íÒÀÒÃСԨ
¡Ã³Õ·Õè 6 Ëع ¹µ ¾º·Ò§á¡·Õàè » ¹àÊ ¹µÑ´ ¹Ñ¹è ¤×Í
PORTC
PA7
PA6
GND PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 +5V RS-232 +
AT ME GA1 6
IPST- BOTo robot - - - - - - - - -- - - - - - -
.
µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« Ò µÃǨ¨Ñº¾ºàÊ ¹ÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹µÃ§¡ÅÒ§ µÃǨ¨Ñº¾ºàÊ ¹ÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒ µÃǨ¨Ñº¾ºàÊ ¹ÊÕ¢ÒÇ (Í Ò¹¤ Òä´ ÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§) àÁ×Íè ¾ºà˵ءÒó ¹Õé ¼Ù¾ ² Ñ ¹ÒÍÒ¨àÅ×Í¡Êѧè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò,àÅÕÂé Ç« Ò , àÅÕÂé Ç¢ÇÒ, ËÂØ´ËÃ×ͶÍÂËÅÑ§ä´ µÒÁµ ͧ¡Òà ¢Ö¹é ÍÂÙ¡ ºÑ à» ÒËÁÒÂ㹡Ò÷íÒÀÒÃСԨ
162 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡ÒÃàª×Íè Áµ Í·Ò§ÎÒà ´áÇà (àËÁ×͹¡Ñº¡Ò÷´Åͧ·Õè 14 áÅÐ 15) µ ÍÊÒ¨ҡ¾Íà µ PA0 ࢠҡѺἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô㵠°Ò¹Ëع ¹µ ´Ò ¹Ë¹ ÒÁØÁ« Ò l µ ÍÊÒ¨ҡ¾Íà µ PA1 ࢠҡѺἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô㵠°Ò¹Ëع ¹µ ´Ò ¹Ë¹ ҵç¡ÅÒ§ l µ ÍÊÒ¨ҡ¾Íà µ PA2 ࢠҡѺἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô㵠°Ò¹Ëع ¹µ ´Ò ¹Ë¹ ÒÁØÁ¢ÇÒ l
¢Ñ鹵͹¡Ò÷´Åͧ L16.1 Êà ҧä¿Å â»Ãà¨ç¡µ ªÍ×è servo_robo_line4 áÅоÔÁ¾ â»Ãá¡ÃÁÀÒÉÒ C µÒÁâ»Ãá¡ÃÁ·Õè L16-1 L16.2 ¤ÍÁä¾Å áÅдÒǹ âËÅ´â»Ãá¡ÃÁà¾×Íè ·´Êͺ¼ÅÅѾ¸ ¡Ò÷íÒ§Ò¹ #include <motor.h> #include <sleep.h> #include <in_out.h> #include <analog.h> #include <lcd.h> #define POW 70 #define REF 600 void forward(unsigned int delay) { motor(1,POW); motor(2,POW); sleep(delay); } void backward(unsigned int delay) { motor(1,-POW); motor(2,-POW); sleep(delay); } void turn_left(unsigned int delay) { motor(1,-POW); motor(2,POW); sleep(delay); } void turn_right(unsigned int delay) { motor(1,POW); motor(2,-POW); sleep(delay); }
// àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè motor // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sleep // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sw1_press // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè analong // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè lcd // ¡íÒ˹´¡íÒÅѧ¢Ñº¢Í§ÁÍàµÍà ¤§·Õ·è Õè 70 % ¢Í§¡íÒÅѧ¢ÑºÊÙ§ÊØ´ // ¡íÒ˹´¤ ÒÍ Ò§Íԧ㹡ÒÃà»ÃÕºà·ÕºàÊ ¹áÅо׹é ʹÒÁ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ µÃ§ä»¢ ҧ˹ Ò // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع仢 ҧ˹ Ò // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·ÕµÃ§ä»¢ ҧ˹ Ò // ¿ §¡ ªÑ蹢Ѻà¤Å×è͹ËØ ¹Â¹µ ¶ÍÂËÅѧµÃ§ // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع¶ÍÂËÅѧ // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ ¶ÍÂËÅѧµÃ§ // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç« Ò // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع¶ÍÂËÅѧ // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع仢 ҧ˹ Ò // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç« Ò // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç¢ÇÒ // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع仢 ҧ˹ Ò // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع¶ÍÂËÅѧ // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç¢ÇÒ
â»Ãá¡ÃÁ·Õè L16-1 ä¿Å robo_line4.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ¤Çº¤ØÁãË Ë¹Ø Â¹µ IPST-BOT à¤Å×Íè ¹·Õè µÒÁàÊ ¹ÊÕ¢ÒÇâ´Â㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 3 µÑÇ (ÁÕµÍ )
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
163
void pause() { servo_pause(0); // ËÂØ´¢ÑºÅ Í´ Ò¹« Ò servo_pause(1); // ËÂØ´¢ÑºÅ Í´ Ò¹¢ÇÒ } void main() { unsigned int left,mid,right; // ¡íÒ˹´µÑÇá»Ãà¡çº¤ Ò·ÕÍè Ò ¹ä´ ¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« ÒÂ, ¡ÅÒ§áÅТÇÒ lcd( Press SW1 ); // áÊ´§¢ ͤÇÒÁᨠ§ãË ¡´ÊÇÔµª SW1 sw1_press(); // Ãͨ¹¡Ãзѧè ÊÇÔµª SW1 ¶Ù¡¡´ while(1) { left = analog(0); // Í Ò¹¤ Ò¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹« ÒÂÁÒà¡çº·Õµè ÇÑ á»Ã left mid = analog(1); // Í Ò¹¤ Ò¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹µÃ§¡ÅÒ§ÁÒà¡çº·Õµè ÇÑ á»Ã mid right = analog(2); // Í Ò¹¤ Ò¨Ò¡µÑǵÃǨ¨ÑºàÊ ¹´ Ò¹¢ÇÒÁÒà¡çº·Õµè ÇÑ á»Ã right if(left<REF && mid>REF && right<REF) // µÃǨÊ꼂 ÒËع ¹µ ¤Ã ÍÁàÊ ¹ËÃ×ÍäÁ { forward(10); // ¶ Ò㪠¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õäè »¢ ҧ˹ Ò㹪 ǧàÇÅÒÊѹé æ } else if(left>REF && mid<REF && right<REF) // µÃǨÊÍºÇ Ò Ëع ¹µ à¤Å×Íè ¹·Õ¾è ¹ ¨Ò¡àÊ ¹ä»·Ò§¢ÇÒËÃ×ÍäÁ { turn_left(10); // ¶ Ò㪠àÅÕÂé Ç« Ò´ Ǥ ÒàÇÅÒÊѹé æ 0.01 ÇÔ¹Ò·Õ // à¾×Íè ¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¡è ÅѺÁҤà ÍÁàÊ ¹ } else if(left<REF && mid<REF && right>REF) // µÃǨÊÍºÇ Ò Ëع ¹µ à¤Å×Íè ¹·Õ¾è ¹ ¨Ò¡àÊ ¹ä»·Ò§« ÒÂËÃ×ÍäÁ { turn_right(10); // ¶ Ò㪠àÅÕÂé Ç¢ÇÒ´ Ǥ ÒàÇÅÒÊѹé æ 0.01 ÇÔ¹Ò·Õ // à¾×Íè ¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¡è ÅѺÁҤà ÍÁàÊ ¹ } else if(left>REF && mid>REF && right>REF) // µÃǨÊÍºÇ Ò Ëع ¹µ ¾ºàÊ ¹µÑ´ËÃ×ÍäÁ { pause(); // ¶ Ò¾ºàÊ ¹µÑ´ ¤Çº¤ØÁãË Ë¹Ø Â¹µ ËÂØ´à¤Å×Íè ¹·Õè sleep(3000); // ˹ ǧàÇÅÒ 3 ÇÔ¹Ò·Õ forward(500); // Ëع ¹µ à¤Å×Íè ¹·Õäè »¢ ҧ˹ Òà¾×Íè ¢ ÒÁàÊ ¹µÑ´ } } }
¤íÒ͸ԺÒÂâ»Ãá¡ÃÁ àÃÔÁè µ ¹¡Ò÷íÒ§Ò¹ â»Ãá¡ÃÁ¨ÐáÊ´§¢ ͤÇÒÁ·Õâè Á´ÙÅ LCD à» ¹ Press SW1 à¾×Íè ÃÍ¡Òá´ÊÇÔµª SW1 àÁ×Íè ¡´ÊÇÔµª SW1 «Õ¾ÂÕ ¨Ù ÐࢠÒä»·íÒ§Ò¹ÀÒÂã¹ÅÙ» while(1){} à¾×Íè Ç¹Í Ò¹¤ Ҩҡἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô·Ñ§é
â»Ãá¡ÃÁ·Õè L16-1 ä¿Å robo_line4.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ¤Çº¤ØÁãË Ë¹Ø Â¹µ IPST-BOT à¤Å×Íè ¹·Õè µÒÁàÊ ¹ÊÕ¢ÒÇâ´Â㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 3 µÑÇ (ÁÕµÍ )
164 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
3 µÑÇ·Õµè Í ¡Ñº¨Ø´µ ;Íà µ PA0 (´ Ò¹« ÒÂ),¾Íà µ PA1 (µÃ§¡ÅÒ§) áÅоÍà µ PA2 (´ Ò¹¢ÇÒ) «Ö§è ¹íÒÁÒ㪠໠¹µÑÇ µÃǨ¨ÑºàÊ ¹ÁÒà¡çº·Õµè ÇÑ á»Ã left , mid áÅÐ right µÒÁÅíҴѺ ¤ ÒÍ Ò§ÍÔ§·Õè㪠à»ÃÕºà·Õº¤×Í 600 à¡çºäÇ ã¹µÑÇá»Ã REF ËÒ¡¤ Ò·ÕèÍ Ò¹ä´ ¨Ò¡µÑǵÃǨ¨ÑºàÁ×èͼ Ò¹¡ÒÃá»Å§ à» ¹¢ ÍÁÙÅ´Ô¨¨Ô µÍÅáÅ ÇÁÒ¡¡Ç Ò¤ ÒÍ Ò§ÍÔ§ REF ¨Ð¶×ÍÇ Ò µÑǵÃǨ¨ÑºµÑÇ¹Ñ¹é ¾ºàÊ ¹ÊÕ¢ÒÇ áµ ¶Ò ËÒ¡¤ Ò¹ ÍÂ¡Ç Ò¤ ÒÍ Ò§ÍÔ§ ¨Ð¶×ÍÇ Ò µÑǵÃǨ¨ÑºµíÒá˹ §¹Ñ¹é µÃǨ¾º¾×¹é ʹÒÁÊÕ´Òí à§×Íè ¹ä¢ã¹¡ÒõÃǨÊͺ¤ ҢͧµÑǵÃǨ¨Ñº à¾×Íè ¡íÒ˹´ÅѡɳСÒÃà¤Å×Íè ¹·ÕÊè Òí ËÃѺ¡Ò÷´Åͧ¹ÕÁé Õ 4 ¡Ã³Õ¤Í× 1. ¡Ã³Õ if(left<REF && mid>REF && right<REF) à» ¹¡ÒõÃǨÊÍºÇ Ò Ëع ¹µ ¤Ã ÍÁàÊ ¹ÊÕ¢ÒÇ ËÃ×ÍäÁ ¶ Ò㪠¨Ð¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò 2. ¡Ã³Õ else if(left>REF && mid<REF && right<REF) à» ¹¡ÒõÃǨÊÍºÇ Ò Ëع ¹µ à¤Å×Íè ¹·Õ¾è ¹ ¨Ò¡àÊ ¹ÁÒ·Ò§¢ÇÒËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ ¨Ð¤Çº¤ØÁãË ËØ ¹Â¹µ àÅÕéÂÇ« Ò´ Ǥ ÒàÇÅÒÊÑé¹æ à¾×èÍãË ËØ ¹Â¹µ à¤Å×è͹·Õè¡ÅѺ ÁҤà ÍÁàÊ ¹ÍÕ¡¤ÃÑé§ 3. ¡Ã³Õ else if(left<REF && mid<REF && right>REF) à» ¹¡ÒõÃǨÊÍºÇ Ò Ëع ¹µ à¤Å×Íè ¹·Õ¾è ¹ ¨Ò¡àÊ ¹ÁÒ·Ò§« ÒÂËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ ¨Ð¤Çº¤ØÁãË ËØ ¹Â¹µ àÅÕéÂÇ¢ÇÒ´ Ǥ ÒàÇÅÒÊÑé¹æ à¾×èÍãË ËØ ¹Â¹µ à¤Å×è͹·Õè¡ÅѺ ÁҤà ÍÁàÊ ¹ÍÕ¡¤ÃÑé§ 4. ¡Ã³Õ else if(left>REF && mid>REF && right>REF) à» ¹¡ÒõÃǨÊÍºÇ Ò Ëع ¹µ ¾ºàÊ ¹µÑ´ÊÕ¢ÒÇ ËÃ×ÍäÁ ¶ Ò¾º ¨Ð¤Çº¤ØÁãË Ë¹Ø Â¹µ ËÂØ´ÍÂÙ· µÕè Òí á˹ §¹Ñ¹é à» ¹àÇÅÒ 3 ÇÔ¹Ò·Õ ¨Ò¡¹Ñ¹é ¨Ö§à¤Å×Íè ¹·Õµè çà¾×Íè ¢ ÒÁàÊ ¹µÑ´ Í ҧäáçµÒÁ ÊíÒËÃѺ¡ÒáíÒ˹´¤ ҢͧàÇÅÒã¹áµ ÅЪ ǧ¢Í§¡ÒÃà¤Å×Íè ¹·Õ¹è ¹Ñé ¼Ù¾ ² Ñ ¹ÒÊÒÁÒö»ÃÑºá¡ ä´ à¾×Íè ãË àËÁÒÐÊÁ¡ÑºÊ¶Ò¹¡Òó áÅÐÊÀÒ¾áÇ´Å ÍÍÁ¢Í§Ê¹ÒÁã¹¢³Ð¹Ñ¹é
â»Ãá¡ÃÁ·Õè L16-1 ä¿Å robo_line4.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ¤Çº¤ØÁãË Ë¹Ø Â¹µ IPST-BOT à¤Å×Íè ¹·Õè µÒÁàÊ ¹ÊÕ¢ÒÇâ´Â㪠µÇÑ µÃǨ¨ÑºàÊ ¹ 3 µÑÇ (¨º) L16.3 ¹íÒËع ¹µ IPST-BOT ä»ÇÒ§¤Ã ÍÁàÊ ¹ÊÕ¢ÒÇã¹µíÒá˹ §·Õäè Á 㪠¨´Ø µÑ´ L16.4 àÃÔÁè µ ¹Ãѹâ»Ãá¡ÃÁ ·Õâè Á´ÙÅ LCD ¢Í§Ëع ¹µ áÊ´§¢ ͤÇÒÁ Press
SW1
ᨠ§ãË ¡´ÊÇÔµª SW1 ·Õáè ¼§Ç§¨Ã Display-MOTOR ¢Í§Ëع ¹µ IPST-BOT à¾×Íè Êѧè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õè L16.5 ¡´ÊÇÔµª SW1 ·Õáè ¼§Ç§¨Ã Display-MOTOR ¢Í§Ëع ¹µ IPST-BOT Êѧࡵ¡ÒÃà¤Å×Íè ¹·Õ¢è ͧËع ¹µ Ëع ¹µ ¨Ðà¤Å×Íè ¹·Õµè ÒÁàÊ ¹ÊÕ¢ÒÇ àÁ×Íè ¾ºàÊ ¹µÑ´ ¨ÐËÂØ´¹Ô§è »ÃÐÁÒ³ 3 ÇÔ¹Ò·Õ ËÅѧ¨Ò¡¹Ñ¹é ¨Ö§à¤Å×Íè ¹·Õè µÒÁàÊ ¹µ Íä»
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
165
º··Õè 9 IPST-BOT ¡Ñº¡ÒâѺà«Íà âÇÁÍàµÍÃì 㹺·¹Õ¹é Òí àʹ͡ÒäǺ¤ØÁà«Íà âÇÁÍàµÍà ¢Í§Ëع ¹µ IPST-BOT â´Âἧǧ¨Ã¤Çº¤ØÁËÅÑ¡¢Í§Ëع ¹µ ÊÒÁÒö¢Ñºà«Íà âÇÁÍàµÍÃ ä´ 5 µÑÇ ¼ Ò¹·Ò§¨Ø´µ ;Íà µ PB0 ¶Ö§ PB4 «Ö§è ¨ÐàÃÕÂ¡Ç Ò àÍÒµ ¾µØ à«Íà âÇÁÍàµÍà ªÍ § 0 ¶Ö§ 4 µÒÁÅíҴѺ â´ÂÁÕ¡ÒÃ㪠ä¿àÅÕÂé §à«Íà âÇÁÍàµÍà ¼Ò ¹ÁÒ·Ò§¨Ø´µ ͧ͢ἧǧ¨Ã Display-MOTOR
9.1 ËÅÑ¡¡Ò÷íÒ§Ò¹¢Í§à«Íà âÇÁÍàµÍà à«Íà âÇÁÍàµÍà ·ãÕè ª ã¹Ëع ¹µ IPST-BOT à» ¹à«Íà âÇÁÍàµÍà ẺÍйÒÅÍ¡¢¹Ò´àÅç¡ ºÒ§¤Ãѧé àÃÕÂ¡Ç Ò R/C à«Íà âÇÁÍàµÍà â´Â R/C ÁÒ¨Ò¡¤íÒÇ Ò Radio Control à¹×Íè §¨Ò¡ã¹Í´Õµ à«Íà âÇÁÍàµÍà Á¡Ñ ¹íÒä»ãª 㹡ÒâѺ à¤Å×Íè ¹¡Åä¡ã¹à¤Ã×Íè §ºÔ¹, ö ËÃ×ÍàÃ×Í·Õºè §Ñ ¤Ñº´ ǤÅ×¹è ÇÔ·ÂØ ¡ÒáíÒ˹´ª×Íè R/C à¾×Íè ãË ·ÃÒº¶Ö§»ÃÐàÀ·¢Í§§Ò¹ ·Õè¹íÒà«Íà âÇÁÍàµÍà ¹Õéä»ãª ¹Ñè¹àͧ à«Íà âÇÁÍàµÍà ໠¹ÍØ»¡Ã³ áÁ àËÅç¡ä¿¿ ÒáººË¹Ö§è ·Õãè ª 㹡ÒÃËÁعµÑǢѺ (actuator) ä»ÂѧµíÒá˹ §µ Ò§æ ´ Ç ¤ÇÒÁáÁ ¹ÂíÒ »¡µÔáÅ Çà«Íà âÇÁÍàµÍà ·ÂÕè §Ñ äÁ ä´ ÃºÑ ¡ÒûÃѺᵠ§ã´æ ¹Ñ¹é ¨Ð㪠§Ò¹¡Ñ¹ÍÂÙ㠹ö, àÃ×Í ËÃ×Íà¤Ã×Íè §ºÔ¹ºÑ§¤Ñº ÇÔ·ÂØ à¾×Íè ·íÒ˹ Ò·Õ¤è Ǻ¤ØÁµíÒá˹ §¢Í§ÍØ»¡Ã³ ઠ¹ ¡Òúѧ¤ÑºàÅÕÂé ǢͧöºÑ§¤ÑºÇÔ·ÂØ ËÃ×Í㪠ÊÒí ËÃѺ»ÃѺËÒ§àÊ×ͧ͢ àÃ×ÍËÃ×Íà¤Ã×Íè §ºÔ¹ «Ö§è §Ò¹àËÅ Ò¹Õµé Í §¡ÒÃáçºÔ´¢Í§ÁÍàµÍà ·ÊÕè §Ù ¾ÍÊÁ¤Çôѧ¹Ñ¹é à«Íà âÇÁÍàµÍà ¨§Ö ÁÕ굄 ÃÒ·´·ÕÁè Ò¡ ¾ÍÊÁ¤ÇÃà¾×Íè ãË ÊÒÁÒöÃͧÃѺ§Ò¹´Ñ§¡Å ÒÇä´ à«Íà âÇÁÍàµÍà ÁÁÕ ÁØ ã¹¡ÒÃËÁعÁҵðҹ¤×Í 0 ¶Ö§ 90 ͧÈÒ áÅÐ 0 ¶Ö§ 180 ͧÈÒ » ¨¨Øº¹Ñ ¹ÔÂÁã¹áºº 0 ¶Ö§ 180 ͧÈÒ â´ÂÊÒÁÒö´Ñ´á»Å§ãË ËÁØ¹ä´ ¤ÃºÃͺ 360 ͧÈÒ´ Ç ÊÒµ Í㪠§Ò¹ÁҵðҹÁÕ 3 àÊ ¹¤×Í ÊÒÂÊÑÒ³ (S), ÊÒÂä¿àÅÕÂé § (+V) áÅÐÊÒ¡ÃÒÇ´ (G)
(¡)
(¢)
(¤)
ÃÙ»·Õè 9-1 áÊ´§Ãٻà ҧáÅÐÊ Ç¹»ÃСͺ¢Í§à«Íà âÇÁÍàµÍà (¡) Ãٻà ҧÀÒ¹͡ (¢) Ãкºà¿ ͧ·´ÀÒÂã¹ (¤) ἧǧ¨ÃÍÔàÅç¡·ÃÍ¹Ô¡Ê ·ãÕè ª ¤Çº¤ØÁ
166 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
(¡) ¤Í¹à¹ç¡àµÍà Ẻ S (¢) ¤Í¹à¹ç¡àµÍà Ẻ J
ÃÙ»·Õè 9-2 ÅѡɳФ͹à¹ç¡àµÍà ¢Í§à«Íà âÇÁÍàµÍà » ¨¨Øº¹Ñ à«Íà âÇÁÍàµÍà Á´Õ Ç Â¡Ñ¹ 2 ª¹Ô´ËÅÑ¡æ ¤×Í ª¹Ô´ÍйÒÅÍ¡áÅдԨµÔ ÍÅ Ãٻà ҧÀÒ¹͡¢Í§à«Íà âÇ ÁÍàµÍà ·§Ñé Êͧª¹Ô´¨Ð¤Å Ò¡ѹÁÒ¡ ¤ÇÒÁᵡµ Ò§¨ÐÍÂÙ· ÇÕè §¨Ã¤Çº¤ØÁ·ÕÍè ÂÙÀ ÒÂã¹ â´Â㹪¹Ô´ÍйÒÅÍ¡¨Ð㪠ǧ¨Ã ÍÔàÅç¡·Ã͹¡Ê ·»Õè ÃСͺ´ ÇÂÍØ»¡Ã³ ÊÒÃ¡Ö§è µÑǹíÒ ¨íҾǡ ·ÃÒ¹«ÔÊàµÍà ÁÍÊ࿵ ËÃ×ÍäÍ«ÕÍÍ»áÍÁ» à» ¹ËÅÑ¡ ã¹ ¢³Ð·Õªè ¹Ô´´Ô¨µÔ ÍŨÐ㪠äÁâ¤Ãâ»Ãà«Êà«Íà ËÃ×ÍäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ໠¹µÑǤǺ¤ØÁËÅÑ¡ ã¹ÃÙ»·Õè 9-1 áÊ´§Ãٻà ҧ ¢Í§à«Íà âÇÁÍàµÍà Áҵðҹ
9.1.1 ¤Í¹à¹ç¡µÍà ¢Í§à«Íà âÇÁÍàµÍà ÃÙ»·Õè 9-2 áÊ´§ÅѡɳТͧ¤Í¹à¹ç¡àµÍà ·ãÕè ª 㹡ÒÃàª×Íè Áµ ͧ͢à«Íà âÇÁÍàµÍà ÁÕ´Ç Â¡Ñ¹ 2 Áҵðҹ¤×Í áºº S áÅÐẺ J ¡ÒèѴ¢Ò¨ÐàËÁ×͹¡Ñ¹ ¤ÇÒÁᵡµ Ò§¤×Í ÅѡɳТͧ¤Í¹à¹ç¡àµÍà áÅСÒáíÒ˹´ÊբͧÊÒ ÊÑÒ³ ÊíÒËÃѺÂÕËè Í Futaba ¢Í§Õ»è ¹Ø ¡íÒ˹´ãË ¤Í¹à¹ç¡àµÍà Ẻ J ÁÕ»¡ Â×¹è ÍÍ¡ÁÒà¾ÔÁè ¢Ö¹é ã¹´ Ò¹à´ÕÂǡѺÊÒ ÊÑÒ³ áÅСíÒ˹´ãË ÊÒÂÊÑÒ³ÁÕÊ¢Õ ÒÇ Ê Ç¹áºº S ÊÒÂÊÑÒ³¨Ðà» ¹ÊÕ¢ÒÇ áÅФ͹à¹ç¡àµÍà ¨ÐàÃÕºàËÁ×͹ ¡Ñ¹·Ñ§é Êͧ´ Ò¹¢Í§ÊÒÂàª×Íè Áµ Í Ê Ç¹ÊÒÂä¿àÅÕÂé §à» ¹ÊÕá´§ áÅÐÊÒ¡ÃÒÇ´ à» ¹ÊÕ´Òí àËÁ×͹¡Ñ¹·Ñ§é ÊͧẺ Í ҧäáçµÒÁ ÁÕ¤ÇÒÁà» ¹ä»ä´ ·¼Õè ¼Ù ÅÔµÍ×¹è æ ÍÒ¨¡íÒ˹´ÃٻẺáÅÐÊբͧÊÒÂÊÑҳᵡµ Ò§ÍÍ¡ä» áµ ¡ÒèѴàÃÕ§µíÒá˹ §¨ÐàËÁ×͹¡Ñ¹
9.1.2 â¤Ã§Êà ҧ¢Í§à«Íà âÇÁÍàµÍà ã¹ÃÙ»·Õè 9-3 áÊ´§â¤Ã§Êà ҧÀÒÂ㹢ͧà«Íà âÇÁÍàµÍÃ Ê Ç¹»ÃСͺËÅÑ¡¤×Í ÁÍàµÍà 俵碹ҴàÅç¡, ªØ´à¿ ͧ·´, ἧǧ¨Ã¤Çº¤ØÁ áÅеÑǵ Ò¹·Ò¹»ÃѺ¤ Òä´ (POT : Potentiometer) ᡹¢Í§ÁÍàµÍà 俵ç¨Ðµ Í à¢ Ò¡ÑºªØ´à¿ ͧ à¾×èÍÅ´¤ÇÒÁàÃçÇÃͺŧ Ê §¼ÅãË áçºÔ´·Õè᡹ËÁعÁÒ¡¢Öé¹ ·Ñé§ËÁ´·íҧҹà ÇÁ¡Ñ¹ÀÒÂãµ ¤ÇÒÁ ÊÑÁ¾Ñ¹¸ P = kwg â´Â·Õè P ¤×Í ¾Åѧ§Ò¹·Õ»è Í ¹ãË á¡ ÁÍàµÍà k ¤×Í ¤ Ò¤§·Õè w ¤×Í ¤ÇÒÁàÃçÇÃͺ ã¹Ë¹ Ç Ãͺµ Í¹Ò·Õ (rpm : round per minute) g ¤×Í áçºÔ´ËÃ×Í·Íà ¤ (torque)
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
167
᡹ËÁع ªØ´à¿ ͧ
POT
µÑǵ Ò¹·Ò¹ »ÃѺ¤ Òä´
ÁÍàµÍà 俵ç
ἧǧ¨Ã ¤Çº¤ØÁ ÊÒÂÊÑÒ³ (ÊÕàËÅ×ͧËÃ×Í¢ÒÇ) ä¿àÅÕé§ (+Vm - ÊÕá´§) ¡ÃÒÇ´ (ÊÕ´íÒ)
ÃÙ»·Õè 9-3 â¤Ã§Êà ҧÀÒÂ㹢ͧà«Íà âÇÁÍàµÍà ¶ ÒËÒ¡¾Åѧ§Ò¹·Õ¨è Ò ÂãË ¤§·Õè àÁ×Íè Å´¤ÇÒÁàÃçÇÃͺŧ ¹Ñ¹è  ÍÁ·íÒáçºÔ´¢Í§ÁÍàµÍà à¾ÔÁè ¢Ö¹é ¡ÒÃËÁع¢Í§ÁÍàµÍÃ ä´ ÃºÑ ¡ÒäǺ¤ØÁ¨Ò¡Ç§¨Ã¤Çº¤ØÁ â´ÂÁÕ POT à» ¹µÑÇ¡íÒ˹´¢Íºà¢µ¢Í§á¡¹ËÁع «Ö§è ËÒ¡äÁ Á¡Õ ÒûÃѺᵠ§ã´æ ᡹ËÁع¢Í§ÁÍàµÍà ¨ÐÊÒÁÒöËÁØ¹ä´ ã¹¢Íºà¢µ 0 ¶Ö§ 180 ͧÈÒ ´Ñ§¹Ñ¹é 㹡ÒûÃѺ áµ §ãË à«Íà âÇÁÍàµÍà ÊÒÁÒö¢Ñºá¡¹ËÁØ¹ä´ ÃͺµÑǨ֧ÁÑ¡¨Ðãª Ç¡Õ Òöʹ POT ÍÍ¡ áÅ Çá·¹·Õ´è Ç ÂµÑǵ Ò¹·Ò¹¤ Ò ¤§·Õè 2 µÑÇ ËÃ×Í´Ñ´á»Å§ãË á¡¹ËÁع¢Í§ POT ÊÒÁÒöËÁØ¹ä´ ÃͺµÑÇ á¡¹ËÁع¢Í§à«Íà âÇÁÍàµÍà ¨ÐÁÕÊÇ ¹»ÅÒÂà» ¹Ã ͧ࿠ͧ (spline) à¾×Íè ãË ÊÒÁÒöµÔ´µÑ§é ÍØ»¡Ã³ ·ãÕè ª 㹡Òà àª×Íè Áâ§ä»ÂѧµÑǢѺËÃ×Í¡Åä¡Í×¹è æ ÍØ»¡Ã³ ·ãÕè ª àª×Íè Á⧹ѹé àÃÕÂ¡Ç Ò ÎÍà ¹ (horn) «Ö§è ÁÕ´Ç Â¡Ñ¹ËÅÒÂÃٻẺ·Ñ§é Ẻ à» ¹á¢¹, à» ¹á· §, ¡Ò¡ºÒ·, á¼ ¹¡ÅÁ à» ¹µ ¹ ÊíÒËÃѺà ͧ࿠ͧ¢Í§à«Íà âÇÁÍàµÍà ᵠÅÐÂÕËè Í ¡çÁ¨Õ Òí ¹Ç¹äÁ ෠ҡѹ â´Â¢Í§ Hitec ¨ÐÁÕ 24 à ͧ࿠ͧ Ê Ç¹¢Í§ Futaba ÁÕ 25 à ͧ࿠ͧ ·íÒãË ÎÍà ¹¢Í§·Ñ§é ÊͧÂÕËè Í ãª ÃÇ Á¡Ñ¹äÁ ä´
9.1.3 ÊÑÒ³¾ÑÅÊ ÊÒí ËÃѺ¤Çº¤ØÁà«Íà âÇÁÍàµÍà ¡ÒäǺ¤ØÁà«Íà âÇÁÍàµÍà ·Òí ä´ â´Â¡ÒÃÊà ҧÊÑÒ³¾ÑÅÊ »Í ¹ãË ¡ºÑ ǧ¨Ã¤Çº¤ØÁÀÒÂã¹à«Íà âÇÁÍàµÍà ´Ñ§ã¹ ÃÙ»·Õè 9-4 àÃÔÁè µ ¹ãË Êà ҧ¾ÑÅÊ ¤ÒºàÇÅÒ 20 ÁÔÅÅÔÇ¹Ô Ò·Õ áÅ Ç»ÃѺ¤ÇÒÁ¡Ç Ò§¢Í§¾ÑÅÊ ªÇ §ºÇ¡ â´Â¾ÑÅÊ ¡Ç Ò§ 1 ÁÔÅÅÔÇ¹Ô Ò·Õ ÁÍàµÍà ¨ÐËÁع仵íÒá˹ §« ÒÂÁ×ÍÊØ´ ¶ ÒÊ §¾ÑÅÊ ¡Ç Ò§ 1.5 ÁÔÅÅÔÇ¹Ô Ò·Õ á¡¹ËÁع¢Í§ÁÍàµÍà ¨Ðà¤Å×Íè ¹·Õäè »ÂѧµíÒá˹ § ¡Ö§è ¡ÅÒ§ áÅж ÒÊ §¾ÑÅÊ ¡Ç Ò§ 2 ÁÔÅÅÔÇ¹Ô Ò·Õ á¡¹ËÁع¢Í§ÁÍàµÍà ¨Ðà¤Å×Íè ¹·Õäè »ÂѧµíÒá˹ §¢ÇÒÁ×ÍÊØ´ ¡Òû ͹ÊÑÒ³¾ÑÅÊ ·ÁÕè ¤Õ ÒºàÇÅÒª ǧºÇ¡µÑ§é áµ 1.5 ¶Ö§ 2 ÁÔÅÅÔÇ¹Ô Ò·Õ¨Ð·íÒãË à«Íà âÇÁÍàµÍà ËÁع·Ç¹ à¢çÁ¹ÒÌ ¡Ò â´Â¶ Ò¤ Ò¤ÇÒÁ¡Ç Ò§¾ÑÅÊ Â§Ôè Ë Ò§¨Ò¡ 1.5 ÁÔÅÅÔÇ¹Ô Ò·ÕÁÒ¡à· Òã´ ¤ÇÒÁàÃçÇ㹡ÒÃËÁع¡ç¨ÐÁÒ¡¢Ö¹é à· Ò¹Ñ¹é ¹Ñ¹è ¤×Í ¤ÇÒÁàÃçÇÊÙ§ÊØ´¢Í§¡ÒÃËÁع·Ç¹à¢çÁ¹ÒÌ ¡Ò¨Ðà¡Ô´¢Ö¹é àÁ×Íè ÊÑÒ³¾ÑÅÊ ¤Çº¤ØÁ·Õ¤è ÇÒÁ¡Ç Ò§ 2 ÁÔÅÅÔÇ¹Ô Ò·Õ
168 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¾ÑÅÊ ¡Ç Ò§ 1 ¶Ö§ 2 ÁÔÅÅÔÇ¹Ô Ò·Õ
¤ÒºàÇÅÒ 20 ÁÔÅÅÔÇ¹Ô Ò·Õ
(¡) ÅѡɳТͧÊÑÒ³¾ÑÅÊ ·ãÕè ª 㹡ÒäǺ¤ØÁà«Íà âÇÁÍàµÍÃ
¾ÑÅÊ ¡Ç Ò§ 1 ÁÔÅÅÔÇ¹Ô Ò·Õ
(¢) ÊÑÒ³¾ÑÅÊ ¡Ç Ò§ 1 ÁÔÅÅÔÇ¹Ô Ò·Õ ·íÒãË ÁÍàµÍà ¢ºÑ ᡹ËÁعä»Âѧ µíÒá˹ §« ÒÂÊØ´
STA N D A RD SERV O M O TO R
¾ÑÅÊ ¡Ç Ò§ 1.5 ÁÔÅÅÔÇ¹Ô Ò·Õ
(¤) ÊÑÒ³¾ÑÅÊ ¡Ç Ò§ 1.5 ÁÔÅÅÔÇ¹Ô Ò·Õ ·íÒãË ÁÍàµÍà ¢ºÑ ᡹ËÁØ¹ä»¡Ö§è ¡ÅÒ§
STA N D A RD SERV O M O TO R
¾ÑÅÊ ¡Ç Ò§ 2 ÁÔÅÅÔÇ¹Ô Ò·Õ
(§) ÊÑÒ³¾ÑÅÊ ¡Ç Ò§ 2 ÁÔÅÅÔÇ¹Ô Ò·Õ ·íÒãË ÁÍàµÍà ¢ºÑ ᡹ËÁعä»Âѧ µíÒá˹ §¢ÇÒÊØ´
ÃÙ»·Õè 9-4 áÊ´§¾ÑÅÊ ·ãÕè ª ¤Çº¤ØÁà«Íà âÇÁÍàµÍÃ
STA N D A RD SERV O M O TO R
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
169
¡Òû ͹ÊÑÒ³¾ÑÅÊ ·ÁÕè ¤Õ ÒºàÇÅÒª ǧºÇ¡µÑ§é áµ 1 仨¹¶Ö§ 1.5 ÁÔÅÅÔÇ¹Ô Ò·Õ ·íÒãË à«Íà âÇÁÍàµÍà ËÁع µÒÁà¢çÁ¹ÒÌ ¡Ò «Ö觶 Ò¤ Ò¤ÇÒÁ¡Ç Ò§¾ÑÅÊ à¢ Òã¡Å 1 ÁÔÅÅÔÇÔ¹Ò·Õ¤ÇÒÁàÃçÇ㹡ÒÃËÁع¢Í§à«Íà âÇÁÍàµÍà ¡ç¨ÐÁÒ¡ ¹Ñ¹è ¤×Í ¤ÇÒÁàÃçÇÊÙ§ÊØ´¢Í§¡ÒÃËÁعµÒÁà¢çÁ¹ÒÌ ¡Ò¨Ðà¡Ô´¢Ö¹é àÁ×Íè ÊÑÒ³¾ÑÅÊ ¤Çº¤ØÁ·Õ¤è ÇÒÁ¡Ç Ò§ 1 ÁÔÅÅÔÇ¹Ô Ò·Õ
9.1.4 ¡Ò÷íÒ§Ò¹¢Í§á¼§Ç§¨Ã¤Çº¤ØÁã¹à«Íà âÇÁÍàµÍà ª¹Ô´ÍйÒÅÍ¡ ¡ÒÃËÁع¢Í§à«Íà âÇÁÍàµÍà ¹¹Ñé ¨ÐäÁ ä´ ËÁع໠¹ÍÔÊÃÐàËÁ×͹ÁÍàµÍà ·ÇÑè æ ä» â´Âª ǧÃÐÂСÒÃËÁع »¡µÔ¨ÐÍÂÙà ÐËÇ Ò§ 0 ¶Ö§ 180 ͧÈÒ µíÒá˹ §¡ÒÃËÁع¢Í§á¡¹ÁÍàµÍà ã¹à«Íà âÇÁÍàµÍà ¹ÊÕé ÒÁÒö¤Çº¤ØÁä´ Í ҧ áÁ ¹ÂíÒ à¹×Íè §¨Ò¡ÀÒÂã¹à«Íà âÇÁÍàµÍà ÁÇÕ §¨ÃÍÔàÅç¡·ÃÍ¹Ô¡Ê ·Òí ˹ Ò·Õµè ÃǨÊͺµíÒá˹ §¢Í§à«Íà âÇÁÍàµÍà ÍÂÙ µÅÍ´àÇÅÒ ÅѡɳСÒõÃǨÊͺ¨Ð㪠¡Òû ͹¡ÅѺ¤ ÒµíÒá˹ §¨Ò¡µÑǵ Ò¹·Ò¹»ÃѺ¤ Òä´ áŠǹíÒ¤ Ò¹Õäé »à»ÃÕº à·Õº¡Ñº¤ Ò¾ÑÅÊ ·Õè» Í¹à¢ Ò·Ò§¢Ò¤Çº¤ØÁ ¤ Ңͧ¼Åµ Ò§·Õèä´ ¨Ðä»»ÃѺµíÒá˹ §¢Í§ÁÍàµÍà ¨¹äÁ à¡Ô´¤ Ҽŵ Ò§ ¡ç¨Ðä´ µíÒá˹ §¢Í§ÁÍàµÍà ·ÕèáÁ ¹ÂíÒ ã¹ÃÙ»·Õè 9-5 áÊ´§ä´ÍÐá¡ÃÁ¡Ò÷íÒ§Ò¹¢Í§á¼§Ç§¨Ã¤Çº¤ØÁã¹à«Íà âÇÁÍàµÍà ª¹Ô´ÍйÒÅÍ¡ ÊÑÒ³ ¾ÑÅÊ ¤Çº¤ØÁ¶Ù¡Ê §à¢ ÒÁÒ·Ò§ÍÔ¹¾Øµ ¨Ð¶Ù¡Ê §ä»Âѧǧ¨Ã¡íÒà¹Ô´ÊÑÒ³¾ÑÅÊ ÀÒÂã¹´ Ç â´ÂÁÕ¤ÇÒÁ¡Ç Ò§·Õàè » ¹ÊÑ´ Ê Ç¹¡ÑºµíÒá˹ §¢Í§á¡¹ËÁع㹻 ¨¨Øº¹Ñ ·Ñ§é ÊÑÒ³¾ÑÅÊ ·¡Õè Òí à¹Ô´¢Ö¹é ÀÒÂ㹡ѺÊÑÒ³¾ÑÅÊ ¤Çº¤ØÁ¨Ð¶Ù¡Ê §ä» Âѧǧ¨Ãà»ÃÕºà·Õº à¾×Íè ·íÒ¡ÒÃËÑ¡Å Ò§ÊÑÒ³ â´Â·ÔÈ·Ò§¢Í§ÊÑÒ³¨Ð¢Ö¹é ÍÂÙ¡ ºÑ Ç Ò ÃÐËÇ Ò§ÊÑÒ³¾ÑÅÊ ¤Çº ¤ØÁ·Ò§ÍÔ¹¾Øµ¡ÑºÊÑÒ³¾ÑÅÊ ÀÒÂã¹ ÊÑÒ³¾ÑÅÊ ã´ÁÕ¤ÇÒÁ¡Ç Ò§ÁÒ¡¡Ç Ò â´ÂàÍÒµ ¾Øµ·Õèä´ à» ¹ÊÑÒ³Åͨԡ 0 ËÃ×Í 1 áÅ ÇÊ §ä»Âѧǧ¨Ã¢ÑºÁÍàµÍà Ẻ H-ºÃÔ´¨ à¾×Íè ¡íÒ˹´·ÔÈ·Ò§¡ÒÃËÁع ·Ò§´ Ò¹¤ Ò¤ÇÒÁᵡµ Ò§·Õè à¡Ô´¢Ö¹é ÃÐËÇ Ò§¾ÑÅÊ ·§Ñé ÊͧÊÑÒ³¨Ð¶Ù¡Ê §ä»Âѧǧ¨Ãà¾ÔÁè ¤ÇÒÁ¡Ç Ò§¾ÑÅÊ à¾×Íè Êà ҧÊÑÒ³¾ÑÅÊ ÊÒí ËÃÑºÊ §ä» ¢ÑºÁÍàµÍà ¼Ò ¹Ç§¨Ã¢ÑºÁÍàµÍà Ẻ H-ºÃÔ´¨ â´Â¤ÇÒÁᵡµ Ò§¢Í§¤ÇÒÁ¡Ç Ò§¾ÑÅÊ 1% ·íÒãË à¡Ô´ÊÑÒ³¾ÑÅÊ ÊíÒËÃѺ¢ÑºÁÍàµÍà ã¹ÃдѺ 50% áÅФÇÒÁàÃçǹըé ÐŴŧàÁ×Íè ᡹ËÁع¢Í§ÁÍàµÍà à¤Å×Íè ¹·Õàè ¢ ÒÊÙµ Òí á˹ §·Õ¡è Òí ˹´ Íѹ໠¹¼ÅÁÒ¨Ò¡¤ÇÒÁᵡµ Ò§¢Í§¤ÇÒÁ¡Ç Ò§ÊÑÒ³¾ÑÅÊ àÃÔÁè Ŵŧ áÅÐËÂشŧàÁ×Íè ÊÑÒ³¾ÑÅÊ ·¹Õè Òí ÁÒà»ÃÕº à·ÕºÁÕ¤ Ò¤ÇÒÁ¡Ç ҧ෠ҡѹ ÊÑÒ³¾ÑÅÊ ·µÕè Ò §¡Ñ¹ ÍÔ¹¾Øµ
ǧ¨Ãà»ÃÕºà·Õº ¤ÇÒÁ¡Ç Ò§ ÊÑÒ³¾ÑÅÊ
ǧ¨Ã¡íÒà¹Ô´ ÊÑÒ³¾ÑÅÊ ÀÒÂã¹
ǧ¨Ãà¾ÔÁè ¤ÇÒÁ¡Ç Ò§ ÊÑÒ³¾ÑÅÊ ÊÑÒ³¡íÒ˹´·ÔÈ·Ò§
᡹ËÁع ǧ¨Ã¢Ñº ÁÍàµÍà H-ºÃÔ´¨
ÁÍàµÍÃ
ªØ´à¿ ͧ µÑǵ Ò¹·Ò¹ »ÃѺ¤ Òä´
ÊÑÒ³µíÒá˹ §» ͹¡ÅѺ
ÃÙ»·Õè 9-5 ä´ÍÐá¡ÃÁ¡Ò÷íÒ§Ò¹¢Í§á¼§Ç§¨Ã¤Çº¤ØÁã¹à«Íà âÇÁÍàµÍà ª¹Ô´ÍйÒÅÍ¡
170 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
9.1.5 ÇÑʴآͧ࿠ͧã¹à«Íà âÇÁÍàµÍà ªØ´à¿ ͧã¹à«Íà âÇÁÍàµÍà â´ÂÊ Ç¹ãË ¼ÅÔµÁÒ¨Ò¡ÇÑÊ´Ø 3 ª¹Ô´¤×Í (1) ä¹Å ͹ : à» ¹ÇÑÊ´Ø·¹Õè ÂÔ Á¹íÒÁÒ㪠¼ÅԵ࿠ͧÁÒ¡·ÕÊè ´Ø à¹×Íè §¨Ò¡ÁÕ¹Òéí ˹ѡàºÒ áÅÐÁÕàÊÕ§ú¡Ç¹ ¹ ÍÂàÁ×Íè ·íÒ§Ò¹ ¤ÇÒÁ·¹·Ò¹¾ÍÊÁ¤Çà ÁÑ¡¾ºã¹à«Íà âÇÁÍàµÍà ¢¹Ò´àÅç¡áÅÐÃÒ¤Ò¶Ù¡ (2) âÅËÐ : ࿠ͧ·Õ¼è ÅÔµ´ ÇÂâÅËÐÁÕ¤ÇÒÁ·¹·Ò¹ÊÙ§ á¢ç§áç ÊÒÁÒö·¹áçàÊÕ´·Ò¹àÁ×Íè ࿠ͧ¢º ¡Ñ¹ä´ ʧ٠ÁÒ¡ ·íÒãË ÊÒÁÒö¹íÒÁÒÊà ҧà«Íà âÇÁÍàµÍà ·ÁÕè áÕ Ã§ºÔ´ÊÙ§ÁÒ¡ä´ âÅËÐ·Õ¾è ºÁÒ¡·ÕÊè ´Ø ã¹¡ÒùíÒÁÒ¼ÅԵ࿠ͧ ¤×Í ·Í§àËÅ×ͧ áÅж ÒËÒ¡ÁÕ§º»ÃÐÁÒ³ÁÒ¡à¾Õ§¾Í ¤ÇÃàÅ×͡㪠à«Íà âÇÁÍàµÍà ·ãÕè ª ࿠ͧ·Õ¼è ÅÔµ¨Ò¡ä·à·à¹ÕÂÁ (3) ¤Òà ºÍä¹µ (Karbonite) : à» ¹ÇÑʴؾàÔ ÈÉ·Õ·è Òí ÁÒ¨Ò¡¤Òà ºÍ¹ áÅ Çá»ÃÃÙ»ÁÒà» ¹ÇÑÊ´Ø·¤Õè Å Ò ¾ÅÒʵԡ Hitec à» ¹¼Ù· ¹Õè Òí à·¤â¹âÅÂÕ¹ÁÕé Ò㪠໠¹Çѵ¶Ø´ºÔ 㹡ÒüÅԵ࿠ͧ â´Â¤Òà ºÍä¹µ ¨ÐÁÕ¤ÇÒÁá¢ç§áçáÅÐ ·¹·Ò¹ÁÒ¡¡Ç Ò࿠ͧä¹Å͹ ã¹¢³Ð·ÕÁè ¹Õ Òéí ˹ѡàºÒ ´Ñ§ã¹à«Íà âÇÁÍàµÍà ÊÁÑÂãËÁ ¨§Ö ¹ÔÂÁ㪠࿠ͧ·Õ¼è ÅÔµ¨Ò¡ÇÑÊ´Ø ª¹Ô´¹Õé â´Â੾ÒÐÍ ҧÂÔ§è ã¹à«Íà âÇÁÍàµÍà ª¹Ô´´Ô¨µÔ ÍÅ·Õãè ª Ë¹Ø Â¹µ Humanoid
9.1.6 ¤Ø³ÊÁºÑµ·Ô ҧ෤¹Ô¤·ÕÊè Òí ¤Ñ¢Í§à«Íà âÇÁÍàµÍà ÁÕ 2 ¤ Ò¤×Í ¤ÇÒÁàÃçÇ (speed) áÅÐ áçºÔ´ËÃ×Í·Íà ¤ (torque) ¤ÇÒÁàÃçÇËÁÒ¶֧ ÃÐÂÐàÇÅÒ·Õ·è Òí ãË á¡¹ËÁع ¢Í§ÁÍàµÍà à¤Å×Íè ¹·ÕÊè µÙ Òí á˹ §ÁØÁ·Õ¡è Òí ˹´ ÍÒ·Ô à«Íà âÇÁÍàµÍà Á¤Õ ÇÒÁàÃçÇ 0.15 ÇÔ¹Ò·ÕÊÒí ËÃѺ 60 ͧÈÒ ËÁÒ¶֧ à«Íà âÇÁÍàµÍà µÇÑ ¹ÕÊé ÒÁÒö¢ÑºãË á¡¹ËÁعà¤Å×Íè ¹·Õäè »ÂѧµíÒá˹ §ÁØÁ 60 ͧÈÒÀÒÂã¹àÇÅÒ 0.15 ÇÔ¹Ò·Õ Ê Ç¹áçºÔ´ÁÑ¡¨Ð»ÃÒ¡¯ã¹Ë¹ Ç¢ͧÍ͹« -¹ÔÇé (ounce-inches : oz-in) ËÃ×Í ¡ÔâÅ¡ÃÑÁ-ૹµÔàÁµÃ (kg-cm) à» ¹¤Ø³ÊÁºÑµÔ·Õè¨ÐºÍ¡µ ͼ٠㪠§Ò¹Ç Ò à«Íà âÇÁÍàµÍà µÑǹÕéÁÕáç㹡ÒâѺâËÅ´·ÕèÁÕ¹éíÒ˹ѡã¹Ë¹ ÇÂÍ͹« ãË ÊÒÁÒöà¤Å×Íè ¹·Õäè »ä´ 1 ¹ÔÇé ËÃ×͹éÒí ˹ѡã¹Ë¹ Ç¡ÔâÅ¡ÃÑÁãË à¤Å×Íè ¹·Õäè »ä´ 1 ૹµÔàÁµÃ (¹éÒí ˹ѡ 1 Í͹« à· Ò ¡Ñº 0.028 ¡ÔâÅ¡ÃÑÁâ´Â»ÃÐÁÒ³ ËÃ×Í 1 ¡ÔâÅ¡ÃÑÁ෠ҡѺ 35.274 Í͹« ) Í ҧäáçµÒÁ ¤ Ңͧ¤ÇÒÁàÃçÇáÅÐáçºÔ´µ ͧÊÑÁ¾Ñ¹¸ ¡ºÑ áç´Ñ¹ä¿àÅÕÂé §·Õ¨è Ò ÂãË á¡ à«Íà âÇÁÍàµÍà ´Ç  «Ö§è ÁÑ¡¨Ðáç´Ñ¹ 4.8 ËÃ×Í 6V ¹Í¡¨Ò¡¹Ñ¹é ÂѧÁÕ»¨ ¨ÑÂà¡ÕÂè ǡѺáçàÊÕ´·Ò¹ã¹Ãкºà¿ ͧÀÒÂã¹à«Íà âÇÁÍàµÍà ¡ÒÃËÅ ÍÅ×¹è ¡ÒÃàª×Íè Áâ§ÃÐËÇ Ò§à¿ Í§µ Í࿠ͧ㹪ش࿠ͧ·´ ·ÕÊè § ¼ÅãË ¤ÇÒÁàÃçÇáÅÐáçºÔ´¢Í§à«Íà âÇÁÍàµÍà à»ÅÕÂè ¹á»Å§ä»ä´
9.2 ¡ÒèѴ¡ÒäǺ¤ØÁà«Íà âÇÁÍàµÍà ¢Í§Ëع ¹µ IPST-BOT ã¹Ëع ¹µ IPST-BOT 㪠ἧǧ¨Ã Display-MOTOR à» ¹ÍØ»¡Ã³ ËÅѡ㹡ÒèѴ¡ÒþÅѧ§Ò¹áÅÐàª×Íè Áµ Í ¢Ò¾Íà µ PB0 ¶Ö§ PB4 ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ¨Ò¡á¼§Ç§¨ÃËÅÑ¡ MicroBOX ÁÒÂѧ¨Ø´µ Íà«Íà âÇÁÍàµÍà â´Â º¹á¼§Ç§¨Ã Display-MOTOR ¨Ñ´ÊÃèشµ Íà«Íà âÇÁÍàµÍà äÇ 5 ª ͧ ¡íÒ˹´ª×Íè à» ¹ 0 ¶Ö§ 4 áç´Ñ¹ä¿àÅÕÂé §à«Íà âÇÁÍàµÍÃ ä´ ÁҨҡẵàµÍÃÕ·è µÕè Í à¢ Ò¡Ñº¨Ø´µ Í DC. input â´ÂÃдѺä¿àÅÕÂé §·Õàè ËÁÒÐÊÁ ¤×Í 4.8 ¶Ö§ 7.5V áÅФÇÃÁÕÊÒÁÒö㹡Òè Ò¡ÃÐáÊä¿¿ ÒäÁ ¹Í Â¡Ç Ò 1800mAH ÃдѺáç´Ñ¹ä¿àÅÕÂé §·Õàè «Íà âÇ ÁÍàµÍà ¢¹Ò´àÅç¡·Ø¡Ãع ÊÒÁÒöÃÑºä´ ¤Í× +6V ÁÕºÒ§Ãع ·ÕÊè ÒÁÒÃ¶ãª ä´ ¶§Ö +7.5V ¢ÍãË µÃǨÊͺ¤Ø³ÊÁºÑµáÔ ÅÐ ¢ ͨíÒ¡Ñ´¹Õ¨é Ò¡¢ ÍÁÙŢͧà«Íà âÇÁÍàµÍà ¡Í ¹ º¹á¼§Ç§¨Ã Display-MOTOR ÂѧÁÕǧ¨ÃµÃǨÊͺÃдѺä¿àÅÕÂé §á¨ §¼Å¡Ò÷íÒ§Ò¹´ Ç LED 5 ´Ç§ ËÒ¡ LED ÊÕᴧ㹵íÒá˹ §¢ÇÒÊØ´µÔ´¡Ð¾ÃÔº¨Ðà» ¹¡ÒÃᨠ§àµ×Í¹Ç Ò ¢³Ð¹Õäé ¿àÅÕÂé §ÁÕ¤Ò ÊÙ§¶Ö§ 7.5V ËÃ×ÍÁÒ¡¡Ç Ò ËÒ¡ ¹íÒà«Íà âÇÁÍàµÍà ÁÒµ Í㪠§Ò¹¨Ö§µ ͧÃÐÁÑ´ÃÐÇѧ㹨ش¹Õé´ ÇÂ
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
171
ÊѧࡵÃдѺáç´Ñ¹ä¿àÅÕ駤ÇÃÍÂ٠㹪 ǧ 4.8 ¶Ö§ 6V (LED ÊÕà¢ÕÂÇÁ·Ñ§é 2 ´Ç§µÔ´ÊÇ Ò§) ËÒ¡ÊÙ§¶Ö§ 7.5V (LED ÊÕá´§ µÔ´ÊÇ Ò§) µ ͧµÃǨÊͺ¾Ô¡Ñ´ä¿àÅÕ駢ͧ à«Íà âÇÁÍàµÍà ·Õè¹íÒÁÒµ Í㪠§Ò¹¡ Í¹Ç Ò ·¹ä´ ËÃ×ÍäÁ ) PORTC
PA6
IPST MicroBOX PA0
I P S T - B O T o ro b o t ATMEGA16
PA2
PA1
Over 7.5V
++ Vin -
PA3
SDA RS-232 LOW BATT.
Vm OUT
PA7
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
DC INPUT
DC input
OFF
ON
ON
SCL KNOB PA7
M2 M1
PD7 PD6
PD1
PD5
PD0
PD4
TxD
PD3
RxD
MOTOR OUTPUT
PD2
* * * *! *"
DisplayMotor
PB2
PB4
SW3
+ -
PB0
PB3
SW2
S
PB1
RESET
SW1
SERVO
-- --- --- -- --- ---
¨Ø´µ Íà«Íà âÇÁÍàµÍà 5 µÑÇ ª ͧ 0 ¶Ö§ 4 (PB0 ¶Ö§ PB4)
ÃÙ»·Õè 9-6 áÊ´§µíÒá˹ §¨Ø´µ Íà«Íà âÇÁÍàµÍà ¢Í§Ëع ¹µ IPST-BOT
9.3 äźÃÒÃÕ servo.h ÊíÒËÃѺ¤Çº¤ØÁ¡ÒâѺà«Íà âÇÁÍàµÍà ËÑÇã¨ËÅÑ¡¢Í§¡ÒäǺ¤ØÁà«Íà âÇÁÍàµÍà »ÃСÒÃË¹Ö§è ¤×Í ¡ÒÃÊà ҧÊÑÒ³¾ÑÅÊ «Ö§è ä´ ÁÒ¨Ò¡¡ÒÃà¢Õ¹ â»Ãá¡ÃÁà¾×èÍ¡íÒ˹´ãË äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ·íÒ¡ÒÃÊà ҧÊÑÒ³¾ÑÅÊ µÒÁ·Õèµ Í§¡ÒÃÍÍ¡ÁÒ à¾×èͪ ÇÂãË ¡Òà à¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁ´ ÇÂÀÒÉÒ C ã¹Ëع ¹µ IPST-BOT Êдǡ¢Ö¹é ¨Ö§µ ͧ¼¹Ç¡ä¿Å äźÃÒÃÕ servo.h ࢠÒÁÒ ä¿Å äźÃÒÃÕ servo.h ºÃèتش¤íÒÊÑ觷Õè¨íÒà» ¹ã¹¡ÒäǺ¤ØÁà«Íà âÇÁÍàµÍà ÊÒÁÒöÃͧÃѺ¡ÒäǺ¤ØÁ à«Íà âÇÁÍàµÍÃ ä´ ¶§Ö 5 µÑÇã¹àÇÅÒà´ÕÂǡѹ ¡ ͹àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè ÀÒÂã¹äźÃÒÃÕ¡ÅØÁ ¹Õ¼é ¾Ù ² Ñ ¹Òµ ͧ¼¹Ç¡ä¿Å äźÃÒÃÕ㹵͹µ ¹¢Í§â»Ãá¡ÃÁ´ ǤíÒÊÑè§
#include <servo.h>
172 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
àÁ×Íè ¼Ù¾ ² Ñ ¹ÒàÅ×͡㪠¡ÅØÁ ¿ §¡ ª¹Ñè ¤Çº¤ØÁà«Íà âÇÁÍàµÍà ¨Ò¡äźÃÒÃÕ servo.h â»Ãá¡ÃÁ¨ÐÁÕ¡ÒèѺ¨Í§¢Ò ¾Íà µ´Ñ§µ Í仹Õé àÁ×Íè 㪠§Ò¹à«Íà âÇÁÍàµÍà ªÍ § 0 â»Ãá¡ÃÁ¨Ð¨Í§¾Íà µ PB0 àÁ×Íè 㪠§Ò¹à«Íà âÇÁÍàµÍà ªÍ § 1 â»Ãá¡ÃÁ¨Ð¨Í§¾Íà µ PB1 àÁ×Íè 㪠§Ò¹à«Íà âÇÁÍàµÍà ªÍ § 2 â»Ãá¡ÃÁ¨Ð¨Í§¾Íà µ PB2 àÁ×Íè 㪠§Ò¹à«Íà âÇÁÍàµÍà ªÍ § 3 â»Ãá¡ÃÁ¨Ð¨Í§¾Íà µ PB3 àÁ×Íè 㪠§Ò¹à«Íà âÇÁÍàµÍà ªÍ § 4 â»Ãá¡ÃÁ¨Ð¨Í§¾Íà µ PB4 ´Ñ§¹Ñé¹¼Ù ¾Ñ²¹Ò¨íÒà» ¹µ ͧËÅÕ¡àÅÕ觡ÒÃ㪠§Ò¹¢Ò¾Íà µ·Õè¶Ù¡¨Í§ãª ·íҧҹà ÇÁ¡Ñºà«Íà âÇÁÍàµÍà à¾×èÍãË ¡Ò÷íҧҹ໠¹ä»Í ҧ¶Ù¡µ ͧ ¡µÑÇÍ ҧ ¼Ù ¾Ñ²¹ÒÁÕ¡ÒÃ㪠§Ò¹à«Íà âÇÁÍàµÍà 2 µÑÇâ´ÂàÅ×Í¡µ Í㪠§Ò¹¡Ñºª ͧ 0 áÅÐ 1 ´Ñ§¹Ñ¹é ¼Ù¾ ² Ñ ¹ÒäÁ ¤Çõ ÍÍØ»¡Ã³ ã´æ à¾×Íè 㪠§Ò¹¡Ñº¾Íà µ PB0 áÅÐ PB1 ã¹¢³Ð·ÕÂè §Ñ ¤§ÊÒÁÒöµ ÍÍØ»¡Ã³ ã´æà¾×Íè 㪠§Ò¹¡Ñº¾Íà µ PB2,PB3 áÅÐPB4 ä´ µÒÁ»¡µÔ
9.3.1 ¿ §¡ ª¹Ñè servo 㪠ÊÒí ËÃѺ¡íÒ˹´µíÒá˹ §¢Í§¡ÒÃËÁعãË ¡ºÑ à«Íà âÇÁÍàµÍà ¨ÐÊÒÁÒö㪠§Ò¹¡Ñºà«Íà âÇÁÍàµÍà Ẻ Áҵðҹ «Ö§è »¡µÔÊÒÁÒöËÁØ¹ä´ 120 ¶Ö§ 180 ͧÈÒ ÃٻẺ
void servo(unsigned char _ch,unsigned int _pos)
¾ÒÃÒÁÔàµÍà _ch 㪠àÅ×Í¡ª ͧ¢Í§à«Íà âÇÁÍàµÍà ¡íÒ˹´à» ¹ 0 àÁ×Íè µ Í㪠§Ò¹à«Íà âÇÁÍàµÍà ªÍ § 0 ¡íÒ˹´à» ¹ 1 àÁ×Íè µ Í㪠§Ò¹à«Íà âÇÁÍàµÍà ªÍ § 1 ¡íÒ˹´à» ¹ 2 àÁ×Íè µ Í㪠§Ò¹à«Íà âÇÁÍàµÍà ªÍ § 2 ¡íÒ˹´à» ¹ 3 àÁ×Íè µ Í㪠§Ò¹à«Íà âÇÁÍàµÍà ªÍ § 3 ¡íÒ˹´à» ¹ 4 àÁ×Íè µ Í㪠§Ò¹à«Íà âÇÁÍàµÍà ªÍ § 4 _pos 㪠¡Òí ˹´µíÒá˹ §¢Í§à«Íà âÇÁÍàµÍà â´ÂÊ Ç¹ãË Á¤Õ Ò ã¹ª ǧ 20 ¶Ö§ 90 â´Â¼Ù¾ ² Ñ ¹Ò¨íÒà» ¹µ ͧ à¢Õ¹â»Ãá¡ÃÁ·´Êͺ»ÃѺ¤ ÒµíÒá˹ §ãË àËÁÒÐÊÁ¡Ñº¡ÒÃ㪠§Ò¹ÊíÒËÃѺà«Íà âÇÁÍàµÍà ã¹áµ ÅÐÃع ËÃ×͵ Ò§¼Ù¼ ÅÔµ¡Ñ¹ä»
9.3.2 ¿ §¡ ª¹Ñè servo_stop 㪠ËÂØ´¡Ò÷íÒ§Ò¹¢Í§à«Íà âÇÁÍàµÍà ·Ø¡ª ͧ¾Ã ÍÁ¡Ñ¹ ÃٻẺ
void servo_stop()
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
173
9.3.3. ¿ §¡ ª¹Ñè servo_pause 㪠ÊíÒËÃѺËÂØ´¡ÒâѺà«Íà âÇÁÍàµÍà 㹪 ͧ·Õè¡íÒ˹´ ÃٻẺ
void servo_pause(char _ch)
¾ÒÃÒÁÔàµÍà _ch 㪠àÅ×Í¡ª ͧ¢Í§à«Íà âÇÁÍàµÍà ÁÕ¤Ò 0 ¶Ö§ 4
9.3.4 ¿ §¡ ª¹Ñè servo_resume à» ¹¿ §¡ ª¹Ñè ¢Ñºà«Íà âÇÁÍàµÍà 㹪 ͧ·Õ¡è Òí ˹´ à¾×Íè ¢Ñºá¡¹ËÁعãË ·Òí §Ò¹µ ͨҡ¡Ò÷íÒ§Ò¹¡ ͹˹ Ò¹Õé ·Õäè ´ ÃºÑ ¼Å¢Í§¿ §¡ ª¹Ñè servo_pause ÃٻẺ
void servo_resume(char _ch)
¾ÒÃÒÁÔàµÍà _ch 㪠àÅ×Í¡ª ͧ¢Í§à«Íà âÇÁÍàµÍà ÁÕ¤Ò 0 ¶Ö§ 4
9.3.5 ¿ §¡ ª¹Ñè servo_get_status à» ¹¿ §¡ ªÑè¹Í ҹʶҹСÒÃ㪠§Ò¹¢Í§à«Íà âÇÁÍàµÍà 㹪 ͧ·Õè¡íÒ˹´ ÃٻẺ
unsigned char servo_get_status(char _ch)
¾ÒÃÒÁÔàµÍà _ch 㪠àÅ×Í¡ª ͧ¢Í§à«Íà âÇÁÍàµÍà ÁÕ¤Ò 0 ¶Ö§ 4 ¡Òä׹¤ Ò - ¤×¹¤ Òà» ¹ 1 àÁ×Íè à«Íà âÇÁÍàµÍà 㹪 ͧ·Õµè Í §¡ÒõԴµ ÍÍÂÙ㠹ʶҹР¶Ù¡ãª §Ò¹ (ÊÒÁÒöºÑ§¤Ñºá¡¹ ËÃ×ÍàºÃ¡ä´ ) - ¤×¹¤ Òà» ¹ 0 àÁ×Íè à«Íà âÇÁÍàµÍà 㹪 ͧ·Õµè Í §¡ÒõԴµ ÍÍÂÙ㠹ʶҹРäÁ ä´ ¶¡Ù 㪠§Ò¹ (᡹ËÁع໠¹ÍÔÊÃÐ)
174 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
9.4 ¡ÒõԴµÑ§é âÁ´ÙÅ GP2D120 ࢠҡѺà«Íà âÇÁÍàµÍà áÅÐËع ¹µ IPST-BOT ¨Ò¡º··Õè 7 Ëع ¹µ IPST-BOT ÊÒÁÒöËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇҧẺäÁ ÊÑÁ¼ÑÊ´ Ç¡ÒÃ㪠âÁ´ÙÅ GP2D120 áµ Á¢Õ Í ¨íÒ¡Ñ´µÃ§·ÕÊè ÒÁÒöµÃǨÊÍºä´ à¾Õ§·ÔÈ·Ò§µÃ§Ë¹ Ò·ÔÈà´ÕÂÇ ã¹º·¹Õ¨é §Ö ¹íÒâÁ´ÙÅ GP2D120 ÁÒÂִࢠҡѺ à«Íà âÇÁÍàµÍà áÅеԴµÑ§é ࢠҡѺËع ¹µ IPST-BOT ·íÒãË Ë¹Ø Â¹µ ÊÒÁÒöµÃǨ¨ÑºÊÔ觡մ¢Ç񤊫 3 ·ÔÈ·Ò§´ Ç ¡ÒâѺà«Íà âÇÁÍàµÍà ãË ËÁع¨Ò¡« ÒÂÁÒ¢ÇÒ ËÃ×Í¢ÇÒÁÒ« Ò áŠǵÃǨ¨Ñº¤ Ò·Õäè ´ ¨Ò¡âÁ´ÙÅ GP2D120 ã¹ÁØÁµ Ò§æ ·Õè᡹ËÁع¢Í§à«Íà âÇÁÍàµÍà à¤Å×è͹·Õèä» ¡ÒõԴµÑ§é ÍØ»¡Ã³ ·Ñé§ËÁ´ÁÕ¢Ñ鹵͹´Ñ§¹Õé (1) ¹íÒâÁ´ÙÅ GP2D120 ÂִࢠҡѺ©Ò¡âÅËÐ 2N2 ´ ÇÂÊ¡ÃÙ 3N10 ÁÁ. áÅй͵ 3 ÁÁ. ¨Ò¡¹Ñé¹¹íÒ©Ò¡âÅËÐ 3N2 ¢Ñ¹ÂÖ´¡Ñº»ÅÒÂÍÕ¡´ Ò¹¢Í§©Ò¡âÅËÐ 2N2 ´ ÇÂÊ¡ÃÙ 3N10 ÁÁ. áÅй͵ 3 ÁÁ. (àËÁ×͹¡Ñº¢Ñ¹é µÍ¹ã¹ËÑÇ¢ Í 7.3 º··Õè 7) âÁ´ÙÅ GP2D120
ÂÖ´©Ò¡âÅËÐ 2x2 ࢠҡѺÃÙÂÖ´´ Ò¹ ˹Ö觢ͧ GP2D120 ´ ÇÂÊ¡ÃÙ 3x10 ÁÁ. ¹Íµ 3 ÁÁ. (2) ¹íÒà«Íà âÇÁÍàµÍÃ Â´Ö à¢ Ò¡ÑºàÊÒÃͧâÅËÐ 30 ÁÁ. ã¹µíÒá˹ §´Ñ§áÊ´§ã¹ÃÙ»
ÂÖ´©Ò¡âÅËÐ 3x2 ࢠҡѺ »ÅÒ¢ͧ©Ò¡âÅËÐ 2x2 ´ ÇÂÊ¡ÃÙ 3x10 ÁÁ. áÅÐ ¹Íµ 3 ÁÁ.
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
175
(3) ¨Ò¡¹Ñ¹é ¹íÒâÁ´ÙÅ GP2D120 ¨Ò¡¢Ñ¹é µÍ¹·Õè (1) µÔ´µÑ§é ࢠҡѺ¡ Ò¹ËÁع¢Í§à«Íà âÇÁÍàµÍà â´Â㪠ʡÃÙà¡ÅÕÂǻŠÍ 2 ÁÁ.¢Ñ¹ÂÖ´ 2 ¨Ø´´Ñ§ÃÙ» 㹡ÒÃÂÖ´µ ͧ¤íÒ¹Ö§¶Ö§·ÔÈ·Ò§¢Í§âÁ´ÙÅ GP2D120 ´ Ç â´Âµ ͧ»ÃѺ¡ Ò¹ËÁع¢Í§à«Íà âÇÁÍàµÍà ãË ÍÂÙã ¹µíÒá˹ §·Õµè ´Ô µÑ§é âÁ´ÙÅ GP2D120 áÅ Ç ·íÒãË âÁ´ÙÅ GP2D120 ÊÒÁÒöµÃǨ¨ÑºÊÔ§è ¡Õ´¢Çҧ㹠·Ôȵç˹ ҢͧËØ ¹Â¹µ
Ê¡ÃÙà¡ÅÕÂǻŠÍ 2 ÁÁ.
STA ND ARD SERV O M O TO R
(4) ¹íÒà«Íà âÇÁÍàµÍÃ Â´Ö à¢ Ò·Õ´è Ò ¹Ë¹ ҢͧËع ¹µ ã¹µíÒá˹ §´Ñ§ÃÙ» àÊÕºÊÒÂÊÑÒ³¢Í§ GP2D120 à¢ Ò·Õ¨è ´Ø µ Í PA4 áÅе ÍÊÒ¢ͧà«Íà âÇÁÍàµÍÃ à¢ Ò·Õ¨è ´Ø µ Íà«Íà âÇÁÍàµÍà ªÍ § B0 à» ¹ÍѹàÊÃç¨àÃÕºà ÍÂ
176 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡Ò÷´Åͧ·Õè 17 ·´Êͺ»ÃѺ¤ ÒµíÒá˹ §¢Í§à«Íà âÇÁÍàµÍà 㹡Ò÷´Åͧ¹Õéà» ¹¡ÒÃà¢Õ¹â»Ãá¡ÃÁ·´Êͺ¤Çº¤ØÁµíÒá˹ §¢Í§à«Íà âÇÁÍàµÍà ª ͧ 0 ¢Í§ËØ ¹Â¹µ IPST-BOT ´ Ç¡Òá´ÊÇÔµª SW1 (à¾×Íè à¾ÔÁè ¤ ÒµíÒá˹ §) áÅÐ SW2 (à¾×Íè Å´¤ ÒµíÒá˹ §) ¾Ã ÍÁ¡ÑºµÃǨÊͺ¤ Ò µíÒá˹ §Í Ò§ÍÔ§¢Í§à«Íà âÇÁÍàµÍà ·¹Õè Òí ÁÒµ Í㪠§Ò¹´ Ç â´ÂáÊ´§¼Å¤ ÒµíÒá˹ §Í Ò§ÍÔ§·Õâè Á´ÙÅ LCD ¢Í§á¼§ ǧ¨Ã Display-MOTOR º¹Ëع ¹µ IPST-BOT
¡ÒÃàª×Íè Áµ Í·Ò§ÎÒà ´áÇà (µ Íà¾ÔÁè àµÔÁ¨Ò¡Ëع ¹µ ) l
µ Íà«Íà âÇÁÍàµÍà ࢠҡѺª ͧ¢Ñºà«Íà âÇÁÍàµÍà ªÍ § 0 (B0)
¢Ñ¹é µÍ¹¡Ò÷´Åͧ L17.1 Êà ҧä¿Å â»Ãà¨ç¡µ ªÍ×è servo_test áÅоÔÁ¾ â»Ãá¡ÃÁÀÒÉÒ C µÒÁâ»Ãá¡ÃÁ·Õè L17-1 L17.2 ¤ÍÁä¾Å áÅдÒǹ âËÅ´â»Ãá¡ÃÁà¾×Íè ·´Êͺ¼ÅÅѾ¸ ¡Ò÷íÒ§Ò¹ L17.3 àÃÔÁè µ ¹Ãѹâ»Ãá¡ÃÁ ·Õâè Á´ÙÅ LCD ¢Í§Ëع ¹µ áÊ´§¤ ÒµíÒá˹ §¡ÒâѺ» ¨¨Øº¹Ñ ¢Í§à«Íà âÇÁÍàµÍà â´ÂáÊ´§¼Åà» ¹ Position:
xx
â´Â·Õè xx ¤×ͤ ÒµíÒá˹ §¢Í§à«Íà âÇÁÍàµÍà L17.4 ¨Ò¡¹Ñ¹é ·´Åͧ¡´ÊÇÔµª SW1 (ÊÒÁÒö¡´¤ 񤊫 ) ·Õáè ¼§Ç§¨Ã Display-MOTOR º¹Ëع ¹µ IPST-BOT à¾×Íè »ÃѺà¾ÔÁè ¤ ÒµíÒá˹ §¢Í§à«Íà âÇÁÍàµÍà µíÒá˹ §á¡¹ËÁع¢Í§à«Íà âÇÁÍàµÍà ¨Ðà¾ÔÁè ¢Ö¹é ¾Ã ÍÁ¡ÑºÁÕ¡ÒÃáÊ´§¤ ÒµíÒá˹ §º¹âÁ´ÙÅ LCD ´ Ç àÁ×Íè ¤ ÒµíÒá˹ §à¡Ô¹¨Ò¡ 90 ÁÒ¡æ ÍÒ¨·íÒãË à«Íà âÇÁÍàµÍà ¢Ò´àʶÕÂÃÀҾ㹡ÒÃÃÑ¡ÉÒµíÒá˹ § L17.5 ¡´ÊÇÔµª SW2 (ÊÒÁÒö¡´¤ 񤊫 ) ·Õáè ¼§Ç§¨Ã Display-MOTOR º¹Ëع ¹µ IPST-BOT à¾×Íè »ÃѺŴ¤ Ò µíÒá˹ §¢Í§à«Íà âÇÁÍàµÍà µíÒá˹ §á¡¹ËÁع¢Í§à«Íà âÇÁÍàµÍà ¨Ðà¾ÔÁè ¢Ö¹é ¾Ã ÍÁ¡ÑºÁÕ¡ÒÃáÊ´§¤ ÒµíÒá˹ §º¹âÁ´ÙÅ LCD ´ Ç àÁ×Íè ¤ ÒµíÒá˹ §µèÒí ¡Ç Ò 20 ÁÒ¡æ ÍÒ¨·íÒãË à«Íà âÇÁÍàµÍà ¢Ò´àʶÕÂÃÀҾ㹡ÒÃÃÑ¡ÉÒµíÒá˹ § ËÁÒÂà赯 ÊíÒËÃѺª ǧµíÒá˹ §¢Í§à«Íà âÇÁÍàµÍà ã¹áµ Åмټ ÅÔµ·Õ¼è ¾Ù ² Ñ ¹Ò¨Ñ´ËÒÁÒ㪠§Ò¹¹Ñ¹é ÍÒ¨ÁÕªÇ § µíÒá˹ §ËÃ×Í·ÔÈ·Ò§¢Í§µíÒá˹ §áµ¡µ Ò§¡Ñ¹º Ò§ ¼Ù¾ ² Ñ ¹Ò¨Ö§µ ͧà¢Õ¹â»Ãá¡ÃÁ·´Êͺ¤ ÒµíÒá˹ §¢Í§à«Íà âÇ ÁÍàµÍà à¾×èÍ·Õè¨Ðä´ ·ÃÒºÇ ÒàÁ×è͵ ͧ¡Òúѧ¤ÑºãË à«Íà âÇÁÍàµÍà ä»ÍÂÙ ã¹µíÒá˹ §·Õèµ Í§¡Òèе ͧ¡íÒ˹´¤ Ò µíÒá˹ §à» ¹à· Òã´ÀÒÂã¹â»Ãá¡ÃÁ¤Çº¤ØÁ â´Â·ÑÇè ä» ÁÑ¡¨ÐÁÕ¤Ò ÍÂÙã ¹ª ǧ 20 ¶Ö§ 90
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
177
#include <lcd.h> // ¼¹Ç¡ä¿Å äźÃÒÃÕÊÒí ËÃѺ¿ §¡ ª¹Ñè lcd #include <sleep.h> // ¼¹Ç¡ä¿Å äźÃÒÃÕÊÒí ËÃѺ¿ §¡ ª¹Ñè sleep #include <servo.h> // ¼¹Ç¡ä¿Å äźÃÒÃÕÊÒí ËÃѺ¿ §¡ ª¹Ñè servo #include <in_out.h> // ¼¹Ç¡ä¿Å äźÃÒÃÕÊÒí ËÃѺ¿ §¡ ª¹Ñè sw1áÅÐ sw2 void main() { unsigned char pos=20; // ¡íÒ˹´µÑÇá»ÃÊíÒËÃѺ¤Çº¤ØÁµíÒá˹ §¢Í§à«Íà âÇÁÍàµÍà while(1) // ÅٻǹÃͺäÁ è٠º { lcd( Position: %d ,pos); // áÊ´§¤ ÒµíÒá˹ §¢Í§à«Íà âÇÁÍàµÍà servo(0,pos); // ¡íÒ˹´µíÒá˹ §¡ÒâѺ¢Í§à«Íà âÇÁÍàµÍà ªÍ § 0 ¨Ò¡µÑÇá»Ã pos if(sw1()==0) // µÃǨÊͺ¡Òá´ÊÇÔµª SW1 { pos++; // à¾ÔÁè ¤ ÒµíÒá˹ §¢Ö¹é 1 ¤ Ò sleep(100); // ˹ ǧàÇÅÒà¾×Íè Å´ÊÑҳú¡Ç¹¢Í§ÊÇÔµª } if(sw2()==0) // µÃǨÊͺ¡Òá´ÊÇÔµª SW2 { pos ; // Å´¤ ÒµíÒá˹ §Å§ 1 ¤ Ò sleep(100); // ˹ ǧàÇÅÒà¾×Íè Å´ÊÑҳú¡Ç¹¢Í§ÊÇÔµª } } } ¤íÒ͸ԺÒÂâ»Ãá¡ÃÁ â»Ãá¡ÃÁ¨Ð·íÒ§Ò¹ÀÒÂã¹ÅÙ» while(1){} à¾×Íè ǹáÊ´§¼Å¤ ÒµíÒá˹ §¢Í§à«Íà âÇÁÍàµÍà ªÍ § 0 áÅСíÒ˹´ ¤ ÒµíÒá˹ §Í ҧµ Íà¹×Íè § ¾Ã ÍÁ·Ñ§é µÃǨÊͺ¡ÒÃà¾ÔÁè áÅÐÅ´¤ ÒµíÒá˹ §¢Í§à«Íà âÇÁÍàµÍà ¨Ò¡¡Òá´ÊÇÔµª SW1 áÅÐ SW2 µÒÁÅíҴѺ â´Ââ»Ãá¡ÃÁ¨Ðǹ·íҧҹઠ¹¹ÕÍé  ҧµ Íà¹×Íè §
â»Ãá¡ÃÁ·Õè L17-1 ä¿Å servo_test.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺËع ¹µ IPST-BOT ¤Çº¤ØÁµíÒá¹ § ᡹ËÁع¢Í§à«Íà âÇÁÍàµÍÃ
PORTC
PA7
PA6
PA2
PA1
PA0
PB1
PB0
PB3
PB2
I P S T - B O T o ro b o t ATMEGA16
PA3
Vm OUT
IPST MicroBOX PA4
Over 7.5V
++ Vin -
PA5
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
DC INPUT
SDA RS-232 LOW BATT.
DC input
ON
OFF
ON
SCL KNOB PA7
M2
PD5
M1
PD7
MOTOR OUTPUT
PD4
PD1
PD6
SERVO
TxD
PD0
PD3
* * * *! *"
RxD
PD2
SW3
+ -
SW2
S
PB4
SW1
DisplayMotor
- - - - - - - - -- - - - - - -
RESET
178 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
¡Ò÷´Åͧ·Õè 18 µÃǨÊͺÊÔ§è ¡Õ´¢ÇÒ§ 3 ·ÔÈ·Ò§ 㹡Ò÷´Åͧ¹Õàé » ¹¡ÒÃ㪠§Ò¹à«Íà âÇÁÍàµÍà ÃÇ Á¡ÑºâÁ´ÙÅÇÑ´ÃÐÂзҧ GP2D120 㹡ÒõÃǨ¨ÑºÊÔ§è ¡Õ´ ¢ÇÒ§ 3 ·ÔÈ·Ò§á¡ Ë¹Ø Â¹µ IPST-BOT â´ÂµÔ´µÑ§é âÁ´ÙÅ GP2D120 äÇ º¹á¡¹ËÁع¢Í§à«Íà âÇÁÍàµÍà (ÂִẺ ÁÑ¹è ¤§) ·íÒãË ·ÈÔ ·Ò§ã¹¡ÒõÃǨ¨ÑºÊÔ§è ¡Õ´¢ÇÒ§¢Í§âÁ´ÙÅ GP2D120 ÊÒÁÒö¤Ãͺ¤ÅØÁä´ 3 ·Ôȷҧ㹷Ôȵç ˹ Ò, ·Ò§« Ò áÅТÇÒ à» ¹ÁØÁ 0 ¶Ö§ 180 ͧÈÒ ´Ñ§ÃÙ»·Õè L18-1 ÁÕà§×Íè ¹ä¢¡Ò÷íÒ§Ò¹´Ñ§¹Õé 1. ¡Ã³Õ·ËÕè ¹Ø Â¹µ äÁ ¾ºÊÔ§è ¡Õ´¡ÇÒ§ã¹ÃÐÂÐ 4 ¶Ö§ 12 ૹµÔàÁµÃ Ëع ¹µ ¨Ðà¤Å×Íè ¹·Õµè ç仢 ҧ˹ Òµ Íà¹×Íè § 2. ¡Ã³Õ·ËÕè ¹Ø Â¹µ ¾ºÊÔ§è ¡Õ´¡ÇÒ§ã¹ÃÐÂеѧé áµ 13 ૹµÔàÁµÃ¢Ö¹é ä»ã¹·ÔÈ·Ò§µÃ§Ë¹ Ò ¨ÐÁÕ¡ÒõÃǨÊͺ ÊÔ§è ¡Õ´¢ÇÒ§·Ò§´ Ò¹« ÒÂáÅТÇÒ ¨Ò¡¹Ñ¹é ¹íÒ¤ ÒÁÒà»ÃÕºà·Õºà¾×Íè »ÃÐàÁÔ¹·ÔÈ·Ò§·Õ¨è Ð㪠㹡ÒÃà¤Å×Íè ¹·Õµè Í ä» ´Ñ§¹Õé 2.1 µÃǨÊÍºÇ Ò ÃÐÂзҧ¨Ò¡ÊÔ觡մ¢ÇÒ§·Ò§« ÒÂÁÒ¡¡Ç Ò·Ò§¢ÇÒáÅÐÁÒ¡¡Ç Ò 25 ૹµÔàÁµÃ (ÃÐÂзҧ¢Ñ¹é µèÒí ·Õ¤è Ò´Ç ÒËع ¹µ ¨Ðà´Ô¹·Ò§µ Íä»ä´ ) ËÃ×ÍäÁ «Ö§è ¶ Òà» ¹¨ÃÔ§¨Ð͹ØÁÒ¹Ç Ò ·Ò§« Ò à¤Å×Íè ¹·Õäè ´ Êдǡ¡Ç Ò ¨Ö§ÊÑ§è ¢Ñºà¤Å×Íè ¹Ëع ¹µ ãË àÅÕÂé Ç« Ò 2.2 µÃǨÊÍºÇ Ò ÃÐÂзҧ¨Ò¡ÊÔ觡մ¢ÇÒ§·Ò§¢ÇÒÁÒ¡¡Ç Ò·Ò§« ÒÂáÅÐÁÒ¡¡Ç Ò 25 ૹµÔàÁµÃËÃ×ÍäÁ ¶ Òà» ¹¨ÃÔ§ ¨Ð͹ØÁÒ¹Ç Ò·Ò§¢ÇÒà¤Å×Íè ¹·Õäè ´ Êдǡ¡Ç Ò ¨Ö§ÊÑ§è ¢Ñºà¤Å×Íè ¹Ëع ¹µ ãË àÅÕÂé Ç¢ÇÒ 2.3 ËÒ¡¤ Ò·Õäè ´ äÁ µÃ§¡Ñºà§×Íè ¹ä¢ 2.1 áÅÐ 2.2 ¡ç¨Ð͹ØÁÒ¹Ç Ò ÃÐÂзҧ¨Ò¡ÊÔ§è ¡Õ´¢ÇÒ§´ Ò¹¢ÇÒ áÅЫ Ò¹ ÍÂ¡Ç Ò 25 ૹµÔàÁµÃ ¨Ö§Êѧè ãË ¢ºÑ à¤Å×Íè ¹Ëع ¹µ ¶ÍÂËÅѧ áŠǨ֧àÅÕÂé Ç¢ÇÒà¾×Íè à»ÅÕÂè ¹àÊ ¹·Ò§ ÁØÁµÃǨ¨Ñº 90 ͧÈÒ (µÃǨ¨ÑºÇѵ¶Ø´ ҹ˹ Ò)
M2
PD7
M1
PD5
PD1
PD6
PD0
MOTOR OUTPUT PD3
TxD
PD4
* * * *! *"
RxD
PD2
PD7 PD6
M2
PD5 PD4
SW3
M1
PD3 PD2
DisplayMotor
SERVO
M2
PD7
M1
PD5
PD6
SW2
DisplayMotor
IPST MicroBOX
PD3
SW1
SERVO
PA6
PD4
RESET
+ -
PD2
Vm OUT
Vm OUT
PA7
Vm OUT
PORTC ATMEGA16
ATMEGA16
I P S T - B O T o ro b o t - - --- --- -- --- ---
S
MOTOR OUTPUT
PB4
PORTC
DisplayMotor
PB2
PA7
PA6
IPST MicroBOX
ATMEGA16
IPST MicroBOX PB3
SERVO
PA6
PB0
PD1
PA7
PB1
PD0
Over 7.5V
++ Vin -
PA0
TxD
DC INPUT
SDA RS-232 LOW BATT.
DC input
PA1
* * * *! *"
RxD
OFF
PA2
SW3
ON
PA3
SW2
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
SW1
+ -
PB4
RESET
S
PB3
PB2
PD1
MOTOR OUTPUT
PB0
PD0
Over 7.5V
I P S T - B O T o ro b o t
ON
SCL KNOB PA7
-- --- --- -- -- - --PB1
TxD
RS-232 LOW BATT.
++ Vin -
PA0
PB4
* * * *! *"
RxD
DC INPUT
SDA
DC input
PA1
PB3
PB2
+ -
PB0 S
PB1
SW3
OFF
PA2
PA0
PA3
PA1
SW2
ON
KNOB PA7
- - -- - --- -- --- ---
SW1
ON
SCL GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
PA2
Over 7.5V
++ Vin -
PA3
RS-232 LOW BATT.
DC input
OFF
ON
GND GND PC0 PC0 PC1 PC1 PC2 PC2 PC3 PC3 PC4 PC4 PC5 PC5 PC6 PC6 PC7 PC7 +5V +5V
PA4
PA5
DC INPUT
SDA
I P S T - B O T o ro b o t
RESET
STANDARD SERVO MOTOR
STANDARD SERVO MOTOR
STANDARD SERVO MOTOR
ON
SCL KNOB PA7
ÁØÁµÃǨ¨Ñº 180 ͧÈÒ (µÃǨ¨ÑºÇѵ¶Ø´ Ò¹¢ÇÒ)
PORTC
ÁØÁµÃǨ¨Ñº 0 ͧÈÒ (µÃǨ¨ÑºÇѵ¶Ø´ Ò¹« ÒÂ)
ÃÙ»·Õè L18-1 ·ÔÈ·Ò§áÅÐÁØÁ㹡ÒõÃǨ¨ÑºÇѵ¶ØËÃ×ÍÊÔ§è ¡Õ´¢ÇÒ§¢Í§Ëع ¹µ IPST-BOT â´Â㪠à«Íà âÇ ÁÍàµÍà ÃÇ Á¡ÑºâÁ´ÙÅÇÑ´ÃÐÂзҧ GP1D120
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
179
¡ÒÃàµÃÕÂÁ¡Òá ͹¡ÒþѲ¹Òâ»Ãá¡ÃÁ 㹡Ò÷´Åͧ¹Õ¨é Òí à» ¹µ ͧÁÕ¢Í ÁÙÅà¾ÔÁè àµÔÁà¡ÕÂè ǡѺ¡ÒäǺ¤ØÁµíÒá˹ §¢Í§à«Íà âÇÁÍàµÍà à¾×Íè ãË ä´ ¤Ò µíÒá˹ §ã¹¡ÒõÃǨ¨ÑºÊÔ§è ¡Õ´¢ÇÒ§µÃ§Ë¹ Ò, ´ Ò¹« Ò áÅд Ò¹¢ÇÒËع ¹µ ¨Ö§µ ͧÁÕ¡ÒÃàµÃÕÂÁ¡Òôѧ¹Õé (1) ¡ ͹µÔ´µÑ§é âÁ´ÙÅ GP2D120 ࢠҡѺ᡹à«Íà âÇÁÍàµÍà ¼Ù¾ ² Ñ ¹Òµ ͧµÃǨÊͺÁØÁ㹡ÒÃËÁع¢Í§§ ᡹à«Íà âÇÁÍàµÍà ¡Í ¹Ç Ò àÁ×Íè ËÁع᡹ÁÒÂѧµíÒá˹ §« ÒÂÊØ´áÅТÇÒÊØ´¨Ðà¡Ô´ÁØÁ¡ÇÒ´¢Í§á¡¹à«Íà âÇÁÍàµÍà ෠Òã´ ÊÒÁÒö·íÒãË à¡Ô´µíÒá˹ §Í§ÈÒµÒÁÃÙ»·Õè L18-1 ä´ ËÃ×ÍäÁ ¨Ö§µ ͧÁÕ¡ÒûÃѺᵠ§¡Åä¡¡ÒõԴµÑé§âÁ´ÙÅ GP2D120 à¾×Íè ãË ä´ ÁÁØ ã¹¡ÒÃËÁعµÑÇâÁ´ÙÅ GP2D120 µÒÁµ ͧ¡Òà ¨Ò¡¹Ñ¹é ¨Ö§µÔ´µÑ§é ¡Åä¡·Õàè ¾ÔÁè àµÔÁࢠÒÁҡѺ â¤Ã§Êà ҧËع ¹µ ãË á¹ ¹ (2) ÍÒÈÑ¡Ãкǹ¡Òèҡ¡Ò÷´Åͧ·Õè 17 à¾×èͤ ¹ËÒ¤ ÒµíÒá˹ §á¡¹ËÁع¢Í§à«Íà âÇÁÍàµÍà 㹡Òà µÃǨ¨ÑºÇѵ¶ØµÃ§Ë¹ Ò, ´ Ò¹« Ò áÅд Ò¹¢ÇҢͧâÁ´ÙÅ GP2D120 â´ÂºÑ¹·Ö¡¼ÅÅѾ¸ ´§Ñ ¡Å ÒÇà¾×Íè ¹íÒÁÒ㪠㹡Òà ¾Ñ²¹Òâ»Ãá¡ÃÁµ Íä» ¨Ò¡¡Ò÷´Êͺâ´Â㪠¡Ãкǹ¡Òèҡ¡Ò÷´Åͧ·Õè 17 ·íÒãË ä´ ¢Í ÁÙŵÑÇÍ ҧ´Ñ§µ Í仹Õé (㹡Ò÷´Êͺ ¨ÃÔ§¢Í§áµ ÅФ¹Í񬊫 ¤Ò ·Õáè µ¡µ Ò§¡Ñ¹ä») ¤ ÒµíÒá˹ §¢Í§à«Íà âÇÁÍàµÍà ··Õè Òí ãË âÁ´ÙÅ GP2D120 ÁÕ·ÈÔ ·Ò§¡ÒõÃǨ¨ÑºµÃ§Ë¹ Ò¤×Í 55 ¤ ÒµíÒá˹ §¢Í§à«Íà âÇÁÍàµÍà ··Õè Òí ãË âÁ´ÙÅ GP2D120 ÁÕ·ÈÔ ·Ò§µÃǨ¨Ñº´ Ò¹« Ò¤×Í 86 ¤ ÒµíÒá˹ §¢Í§à«Íà âÇÁÍàµÍà ··Õè Òí ãË âÁ´ÙÅ GP2D120 ÁÕ·ÈÔ ·Ò§µÃǨ¨Ñº´ Ò¹¢ÇÒ¤×Í 18 ã¹ÅíҴѺ¶Ñ´ä»¨Ð¹íÒ¢ ÍÁÙŷѧé 3 ¤ Òä»ãª ÍÒ §Íԧ㹡ÒþѲ¹Òâ»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ IPST-BOT µ Íä»
¡ÒÃàª×Íè Áµ Í·Ò§ÎÒà ´áÇà (µ Íà¾ÔÁè àµÔÁ¨Ò¡ªØ´Ëع ¹µ ) µ ÍÊÒ¨ҡ¾Íà µ PA4 ࢠҡѺâÁ´ÙÅ GP2D120 l µ Íà«Íà âÇÁÍàµÍà ࢠҡѺ¨Ø´µ Íà«Íà âÇÁÍàµÍà ªÍ § 0 ¢Í§ºÍà ´ Display-MOTOR º¹Ëع ¹µ IPST-BOT l
¢Ñ¹é µÍ¹¡Ò÷´Åͧ L18.1 Êà ҧä¿Å â»Ãà¨ç¡µ ªÍ×è robo_searcher áÅоÔÁ¾ â»Ãá¡ÃÁÀÒÉÒ C µÒÁâ»Ãá¡ÃÁ·Õè L18-1 L18.2 ¤ÍÁä¾Å áÅдÒǹ âËÅ´â»Ãá¡ÃÁà¾×Íè ·´Êͺ¼ÅÅѾ¸ ¡Ò÷íÒ§Ò¹ L18.3 àÃÔÁè µ ¹Ãѹâ»Ãá¡ÃÁ ·Õâè Á´ÙÅ LCD ¢Í§Ëع ¹µ áÊ´§¼Åà» ¹ Press
SW1
à¾×Íè ᨠ§àµ×͹ãË ãË ¼ãÙ ª §Ò¹¡´ÊÇÔµª SW1 ·Õáè ¼§Ç§¨Ã Display-MOTOR à¾×Íè Êѧè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õè L18.4 ËÅѧ¨Ò¡¹Ñ¹é ãË ¡´ÊÇÔµª SW1 ·Õáè ¼§Ç§¨Ã Display-MOTOR ¢Í§Ëع ¹µ IPST-BOT Ëع ¹µ ¨Ð¾ÂÒÂÒÁà¤Å×Íè ¹·Õµè ÒÁà§×Íè ¹ä¢·Ñ§é 2 ¢ Í·Õ¡è Å ÒÇäÇ ã¹µÍ¹µ ¹ ¼Ù¾ ² Ñ ¹ÒÍÒ¨·´Êͺ´ Ç¡ÒùíÒ ¡ÃдÒÉËÃ×Í㪠Á×Í¢Çҧ˹ ÒâÁ´ÙÅ GP2D120 ã¹ÃÐÂзíÒ¡ÒÃã¹Åѡɳе Ò§æ à¾×èÍ·´Êͺ¡Ò÷íÒ§Ò¹¢Í§ â»Ãá¡ÃÁ¤Çº¤ØÁ
180 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
#include <motor.h> // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè motor #include <sleep.h> // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sleep #include <in_out.h> // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè sw1_press #include <lcd.h> // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè lcd #include <servo.h> // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè servo #include <gp2d120_lib.h> // àÃÕ¡㪠§Ò¹¿ §¡ ª¹Ñè getdist #define POW 70 // ¡íÒ˹´¡íÒÅѧ¢Ñº¢Í§ÁÍàµÍà ¤§·Õ·è Õè 70 % ¢Í§¡íÒÅѧ¢ÑºÊÙ§ÊØ´ #define GET_MID 55 // ¡íÒ˹´¤ ÒµíÒá˹ §à«Íà âÇÁÍàµÍà ··Õè Òí ãË âÁ´ÙÅ GP2D120 ÁÕ·ÈÔ µÃǨ¨ÑºµÃ§Ë¹ Ò #define GET_LEFT 86 // ¡íÒ˹´¤ ÒµíÒá˹ §à«Íà âÇÁÍàµÍà ··Õè Òí ãË âÁ´ÙÅ GP2D120 ÁÕ·ÈÔ µÃǨ¨Ñº´ Ò¹« Ò #define GET_RIGHT 18 // ¡íÒ˹´¤ ÒµíÒá˹ §à«Íà âÇÁÍàµÍà ··Õè Òí ãË âÁ´ÙÅ GP2D120 ÁÕ·ÈÔ µÃǨ¨Ñº´ Ò¹¢ÇÒ #define DIST_MIN 25 // ¡íÒ˹´¤ ÒÃÐÂзҧ¢Ñ¹é µèÒí ·Õ¤è Ò´Ç ÒËع ¹µ ¨Ðà´Ô¹·Ò§µ Íä»ä´ void forward(unsigned int delay) // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ à¤Å×Íè ¹·Õµè ç¢ ҧ˹ Ò { motor(1,POW); // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع仢 ҧ˹ Ò motor(2,POW); // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع仢 ҧ˹ Ò sleep(delay); // ˹ ǧàÇÅÒ } void backward(unsigned int delay) // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ ¶ÍÂËÅѧµÃ§ { motor(1,-POW); // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع¶ÍÂËÅѧ motor(2,-POW); // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع¶ÍÂËÅѧ sleep(delay); // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ à´Ô¹¶ÍÂËÅѧµÃ§ } void turn_left(unsigned int delay) // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç« Ò { motor(1,-POW); // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع¶ÍÂËÅѧ motor(2,POW); // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع仢 ҧ˹ Ò sleep(delay); // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç« Ò } void turn_right(unsigned int delay) // ¿ §¡ ª¹Ñè ¢Ñºà¤Å×Íè ¹Ëع ¹µ àÅÕÂé Ç¢ÇÒ { motor(1,POW); // ÁÍàµÍà 1 (Å Í´ Ò¹« ÒÂ) ËÁع仢 ҧ˹ Ò motor(2,-POW); // ÁÍàµÍà 2 (Å Í´ Ò¹¢ÇÒ) ËÁع¶ÍÂËÅѧ sleep(delay); // ˹ ǧàÇÅÒà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Ç¢ÇÒ }
â»Ãá¡ÃÁ·Õè L18-1 ä¿Å robo_searcher.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺËع ¹µ IPST-BOT 㹡ÒõÃǨ¨Ñº ÊÔ§è ¡Õ´¢ÇÒ§ËÃ×ÍÇѵ¶Ø 3 ·ÔÈ·Ò§ (ÁÕµÍ )
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
181
void pause() // ¿ §¡ ª¹Ñè ËÂØ´¡ÒÃà¤Å×Íè ¹·ÕËè ¹Ø Â¹µ { motor_stop(1); // ËÂØ´¢ÑºÁÍàµÍà 1 motor_stop(2); // ËÂØ´¢ÑºÁÍàµÍà 2 } void main() { unsigned int dist,dist_l,dist_r; // ¡íÒ˹´µÑÇá»Ãà¡çº¤ ÒÃÐÂзҧ·ÕÇè ´Ñ ä´ ã¹·ÔÈ·Ò§µÃ§Ë¹ Ò, ´ Ò¹« Ò áÅд Ò¹¢ÇÒµÒÁÅíҴѺ servo(0,GET_MID); // ¡íÒ˹´µíÒá˹ §¡ÒâѺ¢Í§à«Íà âÇÁÍàµÍà ªÍ § 0 à¾×Íè âÁ´ÙÅ GP2D120 ÍÂÙµ Òí á˹ §µÃ§Ë¹ Ò lcd( Press SW1 ); // áÊ´§¢ ͤÇÒÁᨠ§ãË ¡´ÊÇÔµª SW1 sw1_press(); // Ãͨ¹¡Ãзѧè ÊÇÔµª SW1 ¶Ù¡¡´ while(1) // ǹ·íÒ§Ò¹äÁ è٠º { servo(0,GET_MID); // ¡íÒ˹´µíÒá˹ §¡ÒâѺ¢Í§à«Íà âÇÁÍàµÍà ªÍ § 0 à¾×Íè ãË µÇÑ µÃǨ¨ÑºÍÂÙµ Òí á˹ §ÁͧµÃ§Ë¹ Ò dist = getdist(4); // µÃǨ¨ÑºÃÐÂзҧÃÐËÇ Ò§ÊÔ§è ¡Õ´¢ÇÒ§µÃ§Ë¹ ҡѺµÑǵÃǨ¨Ñº if(dist>=4 && dist<=12) // à»ÃÕºà·ÕºÃÐÂзҧ¢Í§¡ÒþºÊÔ§è ¡Õ´¢ÇÒ§ÍÂÙã ¹ª ǧ 4 ¶Ö§ 12 «Á. ËÃ×ÍäÁ { pause(); // ËÂØ´¡ÒÃà¤Å×Íè ¹·Õ¢è ͧËع ¹µ servo(0,GET_LEFT); // ¡íÒ˹´µíÒá˹ §¡ÒâѺ¢Í§à«Íà âÇÁÍàµÍà ªÍ § 0 // à¾×Íè ãË µÇÑ µÃǨ¨ÑºÍÂÙã ¹µíÒá˹ §Áͧ´ Ò¹« Ò sleep(1000); // ˹ ǧàÇÅÒãË à«Íà âÇÁÍàµÍà ¢ºÑ ᡹ËÁع¨¹¡ÃÐ·Ñ§è µÑǵÃǨ¨Ñº // ÍÂÙã ¹µíÒá˹ §Áͧ´ Ò¹« Ò dist_l = getdist(4); // µÃǨ¨ÑºÃÐÂзҧÃÐËÇ Ò§ÊÔ§è ¡Õ´¢ÇÒ§¡ÑºµÑǵÃǨ¨Ñº servo(0,GET_RIGHT); // ¡íÒ˹´µíÒá˹ §¡ÒâѺ¢Í§à«Íà âÇÁÍàµÍà ªÍ § 0 // à¾×Íè ãË µÇÑ µÃǨ¨ÑºÍÂÙã ¹µíÒá˹ §Áͧ´ Ò¹¢ÇÒ sleep(1000); // ˹ ǧàÇÅÒãË à«Íà âÇÁÍàµÍà ¢ºÑ ᡹ËÁع¨¹¡ÃÐ·Ñ§è µÑǵÃǨ¨Ñº // ÍÂÙã ¹µíÒá˹ §Áͧ´ Ò¹¢ÇÒ dist_r = getdist(4); // Í Ò¹¤ ÒÃÐÂзҧ´ Ò¹¢ÇÒ servo(0,GET_MID); // ¡íÒ˹´µíÒá˹ §¡ÒâѺ¢Í§à«Íà âÇÁÍàµÍà ªÍ § 0 // à¾×Íè ¡ÅѺÁÒÍÂÙµ Òí á˹ §ÁͧµÃ§Ë¹ Ò sleep(1000); // ˹ ǧàÇÅÒãË à«Íà âÇÁÍàµÍà àÅ×Íè ¹µíÒá˹ §ÁÒÁͧµÃ§Ë¹ Ò if(dist_l>=dist_r && dist_l>DIST_MIN) // µÃǨÊ꼂 ÒÃÐÂзҧ¨Ò¡ÊÔ§è ¡Õ´¢ÇÒ§´ Ò¹« ÒÂÁÒ¡¡Ç ÒËÃ×Í෠ҡѺ´ Ò¹¢ÇÒáÅÐÁÒ¡¡Ç Ò 25 «Á.
â»Ãá¡ÃÁ·Õè L18-1 ä¿Å robo_searcher.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺËع ¹µ IPST-BOT 㹡ÒõÃǨ¨Ñº ÊÔ§è ¡Õ´¢ÇÒ§ËÃ×ÍÇѵ¶Ø 3 ·ÔÈ·Ò§ (ÁÕµÍ )
182 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT
{
turn_left(300);
// àÅÕÂé Ç« Ò 0.3 ÇÔ¹Ò·Õ
} else if(dist_r>dist_l && dist_r>DIST_MIN) // µÃǨÊ꼂 ÒÃÐÂзҧ¨Ò¡ÊÔ§è ¡Õ´¢ÇÒ§´ Ò¹¢ÇÒÁÒ¡¡Ç Ò´ Ò¹« ÒÂáÅÐÁÒ¡¡Ç Ò 25 ૹµÔàÁµÃ { turn_right(300); // àÅÕÂé Ç¢ÇÒ 0.3 ÇÔ¹Ò·Õ } else // ͹ØÁÒ¹Ç ÒÃÐÂзҧ¨Ò¡ÊÔ§è ¡Õ´¢ÇÒ§´ Ò¹¢ÇÒáÅд Ò¹« Ò¹ ÍÂ¡Ç Ò 25 ૹµÔàÁµÃ { backward(1000); // ¶ÍÂËÅѧËźÊÔ§è ¡Õ´¢ÇÒ§ 1 ÇÔ¹Ò·Õ turn_right(500); // àÅÕÂé Ç« Ò 0.5 ÇÔ¹Ò·Õ }
}
} else { forward(10); }
// Ëع ¹µ à¤Å×Íè ¹·Õäè »¢ ҧ˹ Ò˹ Òà» ¹ª ǧàÇÅÒÊѹé æ
} ¤íÒ͸ԺÒÂâ»Ãá¡ÃÁ àÃÔÁè µ ¹¡Ò÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁ¨ÐáÊ´§¢ ͤÇÒÁ·Õâè Á´ÙÅ LCD à» ¹ Press SW1 à¾×Íè ÃÍ¡Òá´ÊÇÔµª SW1 ÷¨Ò¡¹Ñ¹é ¡íÒ˹´µíÒá˹ §¡ÒâѺ¢Í§à«Íà âÇÁÍàµÍà ªÍ § 0 ÁÒÍÂÙµ Òí á˹ §ÁͧµÃ§Ë¹ Òà¾×Íè àµÃÕÂÁ¾Ã ÍÁ㹡Ò÷íÒ§Ò¹ ¨Ò¡¹Ñ¹é ÃÍ¡Òá´ÊÇÔµª ¨Ò¡ºÃ÷Ѵ¤íÒÊÑ§è ¶Ñ´ÁÒ¤×Í sw1_press áÅÐàÁ×Íè ¾º¡Òá´ÊÇÔµª SW1 â»Ãá¡ÃÁ¨Ö§¨ÐÊÒÁÒö ·íÒ¤íÒÊѧè 㹺Ã÷Ѵ¶Ñ´ä»ä´ «§Öè ¡ç¤Í× à¢ Òä»·íÒ§Ò¹ÀÒÂã¹ÅÙ» while(1){} â´ÂÀÒÂ㹨Ðà» ¹¡ÒÃÇ¹Í Ò¹¤ ÒÃÐÂзҧ¨Ò¡âÁ´Ù Å GP2D120 ÁÒà¡çº·Õµè ÇÑ á»Ã dist ¨Ò¡¹Ñ¹é â»Ãá¡ÃÁ¨Ð¹íÒ¤ ÒÃÐÂзҧ·Õäè ´ ä»à»ÃÕºà·ÕºµÒÁ¡Ã³Õ·§Ñé 2 ¡Ã³ÕËÅÑ¡´Ñ§¹Õé 1. ¡Ã³Õ if(dist>=4 && dist<=12) à»ÃÕºà·ÕºÃÐÂÐ·Ò§Ç Ò¾ºÊÔ§è ¡Õ´¢Çҧ㹪 ǧ 4 ¶Ö§ 12 «Á. ËÃ×ÍäÁ «Ö§è ¶ Òà» ¹¨ÃÔ§Êѧè ãË Ë¹Ø Â¹µ ËÂØ´¡ÒÃà¤Å×Íè ¹·Õáè ŠǨ֧·íÒ¡ÒõÃǨÊͺ¡Ã³ÕÂÍ Âµ Íä»ÍÕ¡â´Â¡ÒÃÊѧè ãË à«Íà âÇÁÍàµÍà à»ÅÕÂè ¹ä»ÍÂÙµ Òí á˹ §·Õ·è Òí ãË âÁ´ÙÅ GP2D120 Áͧ´ Ò¹« ÒÂáÅд Ò¹¢ÇÒà¾×Íè à¡çº¤ ÒÃÐÂзҧ·Ñ§é Êͧ½ § ÁÒ·íÒ¡ÒÃà»ÃÕº à·ÕÂºÇ Ò½ § ã´ÁͧàËç¹ÃÐÂÐ·Ò§ä´ ÁÒ¡¡Ç ҡѹ(·Ò§Êдǡ¡Ç Ò)áÅÐÍ ҧ¹ ͵ ͧÁÒ¡¡Ç ÒÃÐÂзҧ¢Ñ¹é µèÒí ¤×Í 25 «Á. â´ÂËÅѧ¨Ò¡¡ÒÃà»ÃÕºà·ÕºàÁ×Íè ¾ºÇ Ò·Ò§´ Ò¹ã´Êдǡ¡Ç ÒËع ¹µ ¨Ð·íÒ¡ÒÃàÅÕÂé Çà¾×Íè à¤Å×Íè ¹·Õäè »´ Ò¹¹Ñ¹é áµ ã¹¡Ã³Õ ·Õ¾è ºÇ ÒÃзҧ·Ñ§é Êͧ´ ҹ෠ҡѹ¨Ð¡íÒ˹´ãË Ë¹Ø Â¹µ àÅÕÂé Çä»·Ò§« ÒÂá·¹ Ê Ç¹ã¹¡Ã³Õ·¾Õè ºÇ Ò´ Ò¹·ÕÁè ÃÕ ÐÂзҧÁÒ¡¡Ç Ò áµ ÁÃÕ ÐÂзҧµèÒí ¡Ç ÒÃÐÂзҧ¢Ñ¹é µèÒí ¤×Í 25 «Á. Ëع ¹µ ¨Ð¶ÍÂËÅѧËź áÅ ÇàÅÕÂé Çä»·Ò§´ Ò¹¢ÇÒá·¹ 2. ¡Ã³Õ else à» ¹¡Ã³Õ·ÍÕè ¹ØÁÒ¹ä´ ÇÒ ÂѧäÁ ¾ºÊÔ§è ¡Õ´¢ÇÒ§ «Ö§è ¶ Òà» ¹¨ÃÔ§¨ÐµÍºÊ¹Í§ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè Ã§ä» ¢ ҧ˹ Òà» ¹ª ǧàÇÅÒÊѹé æ »ÃÐÁÒ³ 0.01 ÇÔ¹Ò·Õ (ÍÒ¨»ÃѺᡠÃÐÂÐàÇÅÒ㹡ÒÃ˹ ǧµÒÁ¤ÇÒÁàËÁÒÐÊÁÍÕ¡¤Ãѧé ˹֧è )
â»Ãá¡ÃÁ·Õè L18-1 ä¿Å robo_searcher.c «Íà Êâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺËع ¹µ IPST-BOT 㹡ÒõÃǨ¨Ñº ÊÔ§è ¡Õ´¢ÇÒ§ËÃ×ÍÇѵ¶Ø 3 ·ÔÈ·Ò§ (¨º)
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT l
183
184 l
¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ IPST-BOT