ipstBOT100506

Page 1

¡ÒÃÊà ҧáÅз´Åͧà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ 굄 â¹ÁÑµÔ 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


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.