2017b/Member/ibu/Mission3
¤ò¥Æ¥ó¥×¥ì¡¼¥È¤Ë¤·¤ÆºîÀ®
[
¥È¥Ã¥×
] [
¿·µ¬
|
°ìÍ÷
|
¸¡º÷
|
ºÇ½ª¹¹¿·
|
¥Ø¥ë¥×
|
¥í¥°¥¤¥ó
]
³«»Ï¹Ô:
Ìܼ¡
#contents
//image 640*480 or 320*240
²ÝÂêÀâÌÀ¥Ú¡¼¥¸¡§[[2017b/Mission3]]
*À߷פˤĤ¤¤Æ [#i01274e7]
»ÈÍѵ¡¡§LEGO MINDSTORMS EV3
**Àß·×»×ÁÛ [#ef4da535]
Åö½é¤ÏÀè¤ÎÀ߷פμ«Í³ÅÙ¤ò¾å¤²¤ë¤¿¤á¡¢¥ß¥Ç¥£¥¢¥à¥â¡¼¥¿£±¤Ä¤Ë¤è¤ë¡¢¥¥ã¥Ã¥Á¡¦¾º¹ßµ¡Ç½¤Î¼ÂÁõ¤·¤¿¥¢¡¼¥à¤Î´°À®¤òÌܻؤ·¤¿¡£~
¤³¤Îµ¡¹½¤ÎÀ߷פÏÈó¾ï¤ËÆñ¹Ò¤·¡¢Â¿¤¯¤Î»þ´Ö¤òÈñ¤ä¤·¤Æ¤·¤Þ¤Ã¤¿¡£¤³¤ì¤Ë¤è¤ê¸å¤Î¥×¥í¥°¥é¥ß¥ó¥°¤Î¼ÑµÍ¤á¤¬´Å¤¯¤Ê¤ë¤³¤È¤Ë¤Ê¤ë¡£~
¤·¤«¤·ºÇ½ªÅª¤Ë¤Ï¥¢¡¼¥àµ¡¹½¤ÎÀ߷פËÀ®¸ù¤·¡¢ÉôÉÊ¿ô¤Ë¤â;͵¤¬¤Ç¤Æ¤¤¿¤¿¤á¡¢£²ÂæÂÎÀ©¤Ç¤Î²ÝÂê¿ë¹Ô¤ò¼Â¸½¤Ç¤¤¿¡£~
£²ÂæÂÎÀ©¤Ë¤è¤ê»þ´Öû½Ì¤âÁÀ¤¨¤ë¤È»×¤ï¤ì¤¿¤¬¡¢¼ÂºÝ¤É¤¦¤Ê¤Ã¤¿¤«¤Ï¸å½Ò¡£
ÌÞÏÀº£²ó¤â»æ¤òÆ°¤«¤¹¤Î¤Ïº¤Æñ¤Ç¤¢¤Ã¤¿¡£
**¥¢¡¼¥à³«È¯ [#ce983a4f]
//»îºî¥¢¡¼¥à¼Ì¿¿
***»îºîA·¿ [#fc20299a]
#ref(./proto_armA-1.jpg,80%,»îºî¥¢¡¼¥àA)
ÀèÀ¸¤Ë¶µ¤¨¤Æ¤¤¤¿¤À¤¤¤¿µ¡¹½¤ò»²¹Í¤Ë¡¢»õ¼Ö¤ÎÁȤ߹ç¤ï¤»¤Ë¤è¤Ã¤Æ¥¥ã¥Ã¥Á¡¦¾º¹ß¤ò¥â¡¼¥¿£±¤Ä¤Ç¼Â¸½¤¹¤ë¥¢¡¼¥à¤ò»îºî¤·¤¿¡£~
±¿Æ°¤ÎÊý¸þ¤òÊÑ´¹¤¹¤ë²Õ½ê¤Ë¤Ï¥Ù¡¼¥¸¥å¿§¤Î¥Ù¥Ù¥ë¥®¥¢Æ±»Î¤ò³ú¤ß¹ç¤ï¤»¤Æ¤¤¤ë¡£
ÎòÂå¤Îµ¡¹½¤ÎÃæ¤Ç¤âÈ´·²¤Î³Ê¹¥Îɤµ¤ò¸Ø¤ë¤¬¡¢¤¤¤¯¤Ä¤«ÌäÂ꤬¤¢¤Ã¤¿¡£~
-¥Ù¡¼¥¸¥å¿§¤Î¥Ù¥Ù¥ë¥®¥¢Æ±»Î¤Î³ú¤ß¹ç¤ï¤»¤¬°¤¤¡£~
-ÉôÉÊÅÀ¿ô¤¬Â¿¤¯¡¢½ÅÎ̤¬½Å¤¯¤Ê¤ê¡¢À°È÷À¤â°¤¤¡£~
-³ú¤ß¹ç¤ï¤»¤Î°¤µ¤È½ÅÎÌÌäÂ꤬½Å¤Ê¤ê¡¢¿®ÍêÀ¤¬Ä㤤¡£
¥Ó¥¸¥å¥¢¥ë¤ò½Å»ë¤·¤¹¤®¤¿¤Î¤«¤â¤·¤ì¤Ê¤¤¡£
¤³¤ì¤é¤ÎÅÀ¤«¤é¡¢ºÆÀ߷פò»î¤ß¤¿¡£
***»îºîB·¿ [#zd0dec86]
#ref(./proto_armB-2.jpg,50%,»îºî¥¢¡¼¥àB)
A·¿¤Î¼ºÇÔ¤«¤é¥â¡¼¥¿£±¤Ä¤Ë¤è¤ë¥¥ã¥Ã¥Á¡¦¾º¹ßµ¡Ç½¤Î¼Â¸½¤ËºÃÀÞ¤·¡¢¥ß¥Ç¥£¥¢¥à¥â¡¼¥¿£²¤Ä¤ò»È¤¤Ã±½ã¤Ë·Ò¤²¤¿¡£~
»þ´ÖŪͱͽ¤ËÇ÷¤é¤ì¤ÆÀ¸¤Þ¤ì¤¿µÞ¤ÉʤǤ¢¤ë¡£~
º¬¸µ¤Ç»Ù¤¨¤ë¥ß¥Ç¥£¥¢¥à¥â¡¼¥¿¤Ï¿É¤½¤¦¤À¤¬¡¢¥Û¡¼¥ë¥É¾õÂ֤ˤ¹¤ì¤ÐÁ°Éô¤â»Ù¤¨¤ë¤³¤È¤Ï¤Ç¤¤ë¡£~
ñ½ã¤Êʬ°ÂÄꤷ¤¿Æ°ºî¤¬´üÂԤǤ¤¿¡£~
¤³¤Î·¿¤ÎÌäÂêÅÀ¤Ï¡¢
-¥â¡¼¥¿¤¬¥Û¡¼¥ë¥É¾õÂ֤Ǥʤ±¤ì¤Ð»Ù¤¨¤é¤ì¤Ê¤¤¤Î¤ÏÉÔÊؤǤ¢¤ê¡¢·ç´Ù¤Ç¤¢¤ë¡£~
-¤½¤â¤½¤âÌÜɸ¤Ç¤¢¤Ã¤¿¥â¡¼¥¿£±¤Ä¤Ë¤è¤ëÀ߷פ¬¼Â¸½¤Ç¤¤Æ¤¤¤Ê¤¤¡£~
-³Ê¹¥°¤¤¡£~
-µ»½ÑÅÀ¤â˾¤á¤½¤¦¤Ë̵¤¤¡£~
A·¿¥¢¡¼¥à¤ÎºÃÀÞ¤«¤éΩ¤Áľ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£
¤³¤ì¤é¤ÎÅÀ¤«¤éµ¤¤ò¼è¤êľ¤·¤ÆºÆÀ߷פò¹Ô¤Ã¤¿¡£
***»îºîC·¿ [#k939f45b]
#ref(./proto_armC.jpg,70%,»îºî¥¢¡¼¥àC)
¥¿¡¼¥ó¥Æ¡¼¥Ö¥ë·¿¥®¥¢¤È¥Ù¥Ù¥ë¥®¥¢¤ò³èÍѤ·¡¢¤´¤¯¥·¥ó¥×¥ë¤Ê·Á¤Ç¥¥ã¥Ã¥Á¡¦¾º¹ßµ¡Ç½¤ò¼Â¸½¤·¤¿¡£~
Ãæ¿´¤òÄ̤뼴¤ò²ó¤¹¤È¡¢¥Ù¥Ù¥ë¥®¥¢¤«¤é¥¿¡¼¥ó¥Æ¡¼¥Ö¥ë·¿¥®¥¢¤òÄ̤¸¤Æ±¿Æ°Êý¸þ¤òÊÑ´¹¤¹¤ë¡£~
¥¿¡¼¥ó¥Æ¡¼¥Ö¥ë·¿¥®¥¢¾åÉô¤¬²ó¤ë¤È¡¢¿¤Ó¤¿Çò¥Ó¡¼¥à¤¬³«ÊĤ·¡¢¥³¥Ã¥×¤òÄϤó¤Ç¥Ó¡¼¥à¤ÎÆ°¤¤¬À©¸Â¤µ¤ì¤ë¤È¼´¤Î²óž¤Ë¤¢¤ï¤»¤Æ¾å¤Ø»ý¤Á¾å¤¬¤Ã¤Æ¤¤¤¯¡£~
¶¹¤¤²ÄÆ°°è¤òĶ¤¨¤Æ¥â¡¼¥¿¤ò²ó¤·¤Æ¤·¤Þ¤¦¤È¡¢¤¹¤°¤Ë¤¢¤Á¤³¤Á¤Î¥®¥¢¤¬³°¤ì»Ï¤á¤ëÁ¡ºÙ¤Ê»Ò¤Ç¤¢¤ë¡£~
¤½¤Î¤¿¤á¡¢°·¤¤¤Ë¤Ï¶ìÏ«¤µ¤»¤é¤ì¤¿¡£~
¤·¤«¤·¤½¤ì°Ê³°¤Ë¤ÏÌäÂê̵¤¯¡¢¤³¤ì¤ò´ð¤Ë¼ÂÀﵡ¤Î³«È¯¤Ë¼è¤ê³Ý¤«¤Ã¤¿¡£~
¥â¡¼¥¿¤«¤é¼´¤Ë¤É¤¦¤ä¤Ã¤Æ±¿Æ°¤òÅÁ¤¨¤ë¤«¤Ç¤Þ¤¿¶ìǺ¤¹¤ë¤¬¡¢¾Ü¤·¤¯¤Ï²¼µ¤Ë¤Æ¡£
**¼ÖíÒ³«È¯ [#f9767635]
***»îºîµ·¿ [#z10f4a63]
#ref(./chassis_proto1.jpg,50%,»îºî¥·¥ã¡¼¥·£±)
»îºî¥¢¡¼¥àA/B·¿¤ËÂбþ¤¹¤ë¼ÖíÒ¡£~
¥Ç¥Õ¥©¥ë¥È¤Î¼ÖÂΤ«¤éÁ°Éô¤ò³ÈÄ¥¤·¡¢¥â¡¼¥¿¤äĶ²»ÇÈ¥»¥ó¥µ¤ò¼è¤êÉÕ¤±¤ë¶õ´Ö¤ò³ÎÊݤ·¤Æ¤¤¤ë¡£~
¥¢¡¼¥à¤ÎÉÔÎɤ«¤éÇÑ°Æ¡£~
¼Â¤Ï¥«¥é¡¼¥»¥ó¥µ¤Î¼è¤êÉÕ¤±°ÌÃ֤ˤâÉÔÈ÷¤¬¤¢¤ë¡£
***»îºî¶·¿ [#q9a2c1cc]
#ref(./machine_proto4.jpg,100%,»îºîµ¡)
»îºî¥¢¡¼¥àC·¿¤ËÂбþ¤·¡¢´°À®µ¡¤Î¸µ¤Ë¤Ê¤ë¼ÖíҤǤ¢¤ë¡£~
¼Ì¿¿¤ÎÄ̤ꡢ¥ß¥Ç¥£¥¢¥à¥â¡¼¥¿¤ò²£ÃÖ¤¤·¡¢¥®¥¢¤ò¤¤¤¯¤Ä¤«Ãæ·Ñ¤·¤Æ¼´¤Ø±¿Æ°¤òÅÁ¤¨¤ë¡£~
ºÇ½é¤Ï¥â¡¼¥¿¤ò½ÄÃÖ¤¤·¡¢¼´¤ÎÃæ¿´¤Ë±¿Æ°¤òÅÁ¤¨¤ëÊý¿Ë¤À¤Ã¤¿¤¬¡¢¥¹¥Ú¡¼¥¹Åª¤ÊÌäÂ꤫¤éÄü¤á¤¿¡£~
¥¢¡¼¥à¤Î¼´¤Ë¤ÏÁ¡ºÙ¤Ê±¿Æ°¤òÅÁ¤¨¤ëɬÍפ¬¤¢¤ë¤Î¤È¡¢Æ°ºî¤¹¤ë¥¢¡¼¥àµ¡¹½¤È¥â¡¼¥¿¤Î´³¾Ä¤òÈò¤±¤ë¤¿¤á¤Ë¤Ç¤¤ë¤À¤±¥®¥¢¤òÃæ·Ñ¤·¤ÆÎ¥¤·¤ÆÇÛÃÖ¤·¤¿¡£~
¥¢¡¼¥à¤Î¼´¤Îľ²¼¤Ë¤Ï¥«¥é¡¼¥»¥ó¥µ¤â¤¢¤ê¡¢¤³¤Î¶¹¤¤¥¹¥Ú¡¼¥¹¤Ë¿µ¡Ç½¤òµÍ¤á¹þ¤ó¤À¤¿¤á¡¢ÉôÉÊ£±¤Ä¸ò´¹¤¹¤ë¤Ë¤â°ì¶ìÏ«¤·¤Æ¤·¤Þ¤¦¡£~
½Å¿´¤âÄ㤯ÍÞ¤¨¤é¤ì¤¿¤Î¤Ï¤è¤«¤Ã¤¿¤¬¡¢Á¡ºÙ¤ÊC·¿¥¢¡¼¥à¤ÈÁê¤Þ¤Ã¤Æ¡¢À°È÷À¤ÏÎɤ¤¤È¤Ï¸À¤¨¤Ê¤¤¡£~
¤Þ¤¿¡¢Ä¶²»ÇÈ¥»¥ó¥µ¤Î¼è¤êÉÕ¤±°ÌÃÖ¤ËÃ×̿Ū¤Ê¥ß¥¹¤¬¤¢¤Ã¤¿¡£~
¥¢¡¼¥à¤Î¾º¹ß¤Ë¹ç¤ï¤»¤ÆĶ²»ÇÈ¥»¥ó¥µ¤â¾å²¼¤·¤Æ¤·¤Þ¤¦¤Î¤Ç¤¢¤ë¡£~
»æ¥³¥Ã¥×¤òÄϤó¤À¤éÌܱ£¤·¾õÂ֤ˤʤ뤳¤Îµ¡ÂΤˤϡ¢¤â¤¦¾¯¤·²þÎɤ¬É¬ÍפÀ¤Ã¤¿¡£
**´°À®µ¡ [#af776022]
#ref(./fin_machines.jpg,100%,´°À®µ¡)
»îºî¶·¿¤«¤é¡¢Ä¶²»ÇÈ¥»¥ó¥µ¤Î¼è¤êÉÕ¤±°ÌÃ֤ȥ¢¡¼¥à¤Î·Á¾õ¤òÊѹ¹¤·¤¿¡£~
Ķ²»ÇÈ¥»¥ó¥µ¤Ï¥¢¡¼¥à¤Î²¼Éô¤Ë¥·¥ã¡¼¥·¤È·Ò¤²¤Æ¡¢¥¢¡¼¥à¤È°ì½ï¤Ë¾å¤ò¸þ¤¯·ç´Ù¤ò²þÁ±¤·¤¿¡£~
º£¤Þ¤ÇĶ²»ÇÈ¥»¥ó¥µ¤¬¥³¥Ã¥×¤òÆ⦤«¤é»Ù¤¨¤ëÌò³ä¤òô¤Ã¤Æ¤¿¤¿¤á¡¢Âå¤ï¤ê¤ËÆ⦤«¤é»Ù¤¨¤ë¥Ó¡¼¥à¤â¼è¤êÉÕ¤±¡£~
¤Þ¤¿¡¢¥¢¡¼¥à¤Ï²¿ÅÙ¤â¤Î¥³¥Ã¥×¥¥ã¥Ã¥Á¼Â¸³¤ò¹Ô¤¤¡¢°ÂÄꤷ¤Æ¥³¥Ã¥×¤òÄϤá¤ë·Á¾õ¤òÌϺ÷¤·¡¢ºÇ½ªÅª¤Ë¤³¤Î¤è¤¦¤Ê·Á¾õ¤Ë¤Ê¤Ã¤¿¡£~
¥¢¡¼¥à¤ä³Æ¼ï¥»¥ó¥µ¤Ë¤è¤Ã¤Æ½Å¿´¤¬Á°Éô´ó¤ê¤Ë¤Ê¤Ã¤¿¤¬¡¢EV3¤ò¸åÊý¤Ë¸ÇÄꤷ¤Æ°ÂÄꤵ¤»¤Æ¤¤¤ë¡£~
À°È÷À¤Ï°¤¤¤Þ¤Þ¤À¤¬¡¢¥³¥ó¥Ñ¥¯¥È¤Ë³Ê¹¥¤è¤¯¤Þ¤È¤Þ¤Ã¤¿¤³¤Î¼ÖíҤϾå½ÐÍè¤À¤È»×¤¦¡£
¼Ì¿¿¤Ï¡¢´°À®µ¡¤ò£²Âæ·¤¨¤Æ»£¤Ã¤¿¤â¤Î¤Ç¤¢¤ë¡£~
¸«Ê¬¤±¤ä¤¹¤¤¤è¤¦¤ËEV3¤Îξü¤Î¥Ñ¡¼¥Ä¤Î¿§¤òÊѤ¨¤Æ¤¢¤ë¡£~
µÞ¥Ô¥Ã¥Áºî¶È¤ÇEV3¤È¤Î¸ÇÄêÊýË¡¤Ë°ã¤¤¤¬¸«¤é¤ì¤ë¤¬¡¢µ¤¤Ë¤¹¤ë¤Û¤É¤Ç¤Ï¤Ê¤¤¡£
*ÀïάÊý¿Ë [#w4c6e2cf]
#ref(./tactics.jpg,around,100%,Àïά¿Þ)
¤½¤ì¤¾¤ì¤Î¼ÖíÒ¤ÏA¡¢DÃÏÅÀ¤òƱ»þ¤Ë¥¹¥¿¡¼¥È¤¹¤ë¡£~
LEFT:
|LEFT:250 |RIGHT:250 |c
|COLOR(green):~£±¹æ¼Ö |LEFT:COLOR(red):~£²¹æ¼Ö |h
|COLOR(green):D¤ò¥¹¥¿¡¼¥È |LEFT:COLOR(red):A¤ò¥¹¥¿¡¼¥È |
|COLOR(green):¡¥³¥Ã¥×²ó¼ý(1¸ÄÌÜ) |LEFT:COLOR(red):¡¥³¥Ã¥×²ó¼ý |
|COLOR(green):¢ ¥Ô¥ó¥Ý¥ó¶ÌÅêÆþ(1²óÌÜ) |LEFT:COLOR(red):ÂÔµ¡ |
|COLOR(green):£¥³¥Ã¥×½Å¤Í¤Æ²ó¼ý(£²¸ÄÌÜ) |LEFT:COLOR(red):ÂÔµ¡ |
|COLOR(green):¤¥Ô¥ó¥Ý¥ó¶ÌÅêÆþ(2²óÌÜ) |LEFT:COLOR(red):ÂÔµ¡ |
|COLOR(green):¥¥³¥Ã¥×¤òYÃÏÅÀ¤Ë£²¸Ä½Å¤ÍÃÖ¤¯|LEFT:COLOR(red):ÂÔµ¡ |
|COLOR(green):¦D¤ØÂàÈò¤·¡¢¿®¹æÁ÷¿® |LEFT:COLOR(red):¢¿®¹æ¼õ¿®¡¢¹ÔÆ°³«»Ï |
|COLOR(green):ÂÔµ¡ |LEFT:COLOR(red):£¥Ô¥ó¥Ý¥ó¶ÌÅêÆþ |
|COLOR(green):ÂÔµ¡ |LEFT:COLOR(red):¤¥³¥Ã¥×¤òYÃÏÅÀ¤Ø½Å¤Í¤ë(ÍýÁÛ) |
&size(7){(ɽÁȤ߼«ÂΤò´ó¤»¤ëÊýË¡¤¬¤ï¤«¤é¤º¡¢²èÁü¤Î²ó¤ê¹þ¤ß¤òÍøÍѤ·¤Æɽ¤Î°ÌÃÖÄ´À°¤ò¹Ô¤Ã¤¿¡£Ã¼Ëö¤Ë¤è¤Ã¤Æ¤Ï¥ì¥¤¥¢¥¦¥È¤¬Êø²õ¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£)};
#clear
¤É¤Á¤é¤«¤Ë¤Ê¤Ë¤«¤·¤é¤Î¥È¥é¥Ö¥ë¤¬¤¢¤Ã¤Æ¤â¡¢¤â¤¦°ìÊý¤¬À®¤·¿ë¤²¤ë¡¢¤È¤¤¤¦¥ê¥¹¥¯Ê¬»¶¤ò¿Þ¤ëÁÀ¤¤¤À¡£~
¤·¤«¤·¡¢£²ÂæÂÎÀ©¤Ë¤è¤ë¥Ç¥á¥ê¥Ã¥È¤â¤¢¤Ã¤¿¡£~
EV3¤Ë¤È¤Ã¤Æ¤Î¡ÉÆ°¤¯¾ã³²Êª¡É¤òÁý¤ä¤·¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¤¢¤ë¡£~
£²Âæ¤Î¾×ÆÍ¡¢Ä¶²»ÇÈ¥»¥ó¥µ¤Ë¤è¤ë¥³¥Ã¥×¸¡ÃΤΥߥ¹¤òÈò¤±¤ë¤¿¤á¤ËÄÌ¿®¤ò¹Ô¤¤¡¢£²Â椬Ʊ»þ¤ËÃæ±û¥¾¡¼¥ó¤ËÆþ¤é¤Ê¤¤¤è¤¦¤Ë¿Þ¤Ã¤¿¡£
¤â¤¦¾¯¤·£²Âæ¤Ç¤¢¤ëÍøÅÀ¤ò³è¤«¤·¤¿Àïά¤òºÎ¤ê¤¿¤«¤Ã¤¿¤¬¡¢Ç¡²¿¤»¤ó»þ´Ö¤¬Â¤ê¤Ê¤«¤Ã¤¿¡£
¤Þ¤¿¡¢¤³¤ÎÄÌ¿®Àïά¤â¥í¥Ü¥³¥ó¤Þ¤Ç¤Ë´Ö¤Ë¹ç¤ï¤Ê¤«¤Ã¤¿¡£~
ÄÌ¿®¥×¥í¥°¥é¥à¤Î¤ß¤Î¥³¡¼¥Ç¥£¥ó¥°¤Ï°ì±þ½ª¤¨¡¢¼ÖíÒ¤ËÅëºÜ¤»¤ºEV3ËÜÂÎƱ»Î¤Î¤ß¤Ç¤Î¥Æ¥¹¥È¤Î¤ß¹Ô¤Ã¤ÆÀ®¸ù¤·¤Æ¤¤¤ë¡£~
¤·¤«¤·¼Â¹Ô¥×¥í¥°¥é¥à¤ËÁȤ߹þ¤ó¤Ç¤Î¥Æ¥¹¥È¤Ï´Ö¤Ë¹ç¤ï¤º¡¢°ìÅÙ¤â¹Ô¤¨¤Æ¤¤¤Ê¤¤¡£~
·ë²Ì¡¢¥í¥Ü¥³¥óľÁ°¤ËµÞî±Í½Äê¤òÊѹ¹¤·¡¢2¹æ¼Ö¤Ï¥Ô¥ó¥Ý¥ó¶ÌÅêÆþ¤Þ¤Ç¹Ô¤Ã¤¿¸å¤ËÂàÈò¤·¤Æ¤¤¤ë¡£~
&size(7){ÂàÈò¸å¡¢£±¹æ¼Ö¤¬´èÄ¥¤ë´Ö¤Ë¥¢¡¼¥à¤Î¾å²¼¤ò·«¤êÊÖ¤·±þ±ç¤ò¹Ô¤ª¤¦¤È¤·¤¿¤¬¡¢¤Ê¤¼¤«Æ°¤«¤Ê¤«¤Ã¤¿¡£};
¸å½Ò¤Î¼Â¹Ô¥×¥í¥°¥é¥à¤Ë¤ÏÄÌ¿®¥×¥í¥°¥é¥à¤òÁȤ߹þ¤ó¤Ç¤¢¤ë¤¬¡¢¥í¥Ü¥³¥ó»þ¤ÎÄ̤ꥳ¥á¥ó¥È¥¢¥¦¥È¤·¤Æ¤¤¤ë¡£
*¥×¥í¥°¥é¥à [#xebec167]
¸À¸ì¡§python3
**´Ø¿ô·² [#e212318a]
¥é¥¤¥ó¥È¥ì¡¼¥¹¤â¹Ô¤¦¤¬¡¢ºÙ¤«¤ÊÄê¿ô¤òÄ´À°¤·¤¿Â¾¤Ï²ÝÂꣲ¤Î´Ø¿ô¤ÈƱ¤¸¤Ç¤¢¤ë¤¿¤á¡¢¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¹Ô¤¦¤¿¤á¤Î´Ø¿ôÉôʬ¤Ï¾Êά¤·¤Æ¤¤¤ë¡£~
¾Ü¤·¤¯¤Ï[[Tracer_ver.1.7.3>2017b/Member/ibu/Mission2#ibdb1e7a]]¤ò»²¾È¡£
import ev3dev.ev3 as ev3
import time
mr = ev3.LargeMotor('outC')
assert mr.connected, "Connect right large motor to port C"
ml = ev3.LargeMotor('outD')
assert ml.connected, "Connect left large motor to port A"
arm = ev3.MediumMotor('outB')
assert arm.connected, "Connect arm medium motor to port B"
cs = ev3.ColorSensor()
assert cs.connected, "Connect a color sensor to any sensor port"
cs.mode = 'COL-REFLECT'
us = ev3.UltrasonicSensor()
assert us.connected, "Connect a color sensor to any sensor port"
us.mode = 'US-DIST-CM'
position_sp_to_angle = 1.55 #position_sp¤Ë¤è¤ë°ÜÆ°»þ¡¢³ÑÅÙ¤ËÊÑ´¹¤¹¤ë¤¿¤á¤ÎÄê¿ô
target_val = 50 #¥é¥¤¥ó¥È¥ì¡¼¥¹»þ¤Î¥«¥é¡¼¥»¥ó¥µ¤ÎÌÜɸÃÍ
std_speed = 22 #ɸ½à¤ÎÁö¹Ô®ÅÙ
kp = std_speed*0.04 #¥é¥¤¥ó¤Î¶³¦¤ØÌá¤ë¶¯¤µ
position_sp_to_cm = 20.05 #position_sp¤Ë¤è¤ë°ÜÆ°»þ¡¢Ãͤòcm¤ËÊÑ´¹¤¹¤ë¤¿¤á¤ÎÄê¿ô
intersection_time = 0.23/1.8 #Àþ¾åÁö¹Ô»þ¡¢¸òº¹ÅÀ¸¡ÃΤÈȽÃǤ¹¤ë»þ´Ö
angle_stabilization_time = 0.3*1.8 #Áö¹Ô¤¹¤ë¶³¦¤òÊѹ¹¤¹¤ëºÝ¤Î°ÜÆ°»þ´Ö
def init_arm(): #¥¢¡¼¥à¥â¡¼¥¿¤Î¥ê¥»¥Ã¥È¡¢»æ¥³¥Ã¥×¤òÄϤó¤À°ÌÃ֤ǹԤ¦
'pos_positive: to inside, pos_negative: to outside'
arm.reset() # del stop_action='hold'
input('Press Enter to initialize closed arm position')
arm.reset()
def arm_open(): #¥¢¡¼¥à¤ò³«¤¯¡¢init_arm¤Î¸å¤Ë»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤
arm.run_to_abs_pos(position_sp=200,
speed_sp=std_speed*5,
stop_action="hold")
arm.wait_while("running")
def cup_catch(): #¥³¥Ã¥×¤ò¥¥ã¥Ã¥Á¤¹¤ë
mr.run_forever(speed_sp=std_speed*5)
ml.run_forever(speed_sp=std_speed*5)
while us.value() > 50:
pass
for motor in mr, ml:
motor.stop(stop_action='brake')
move(5)
arm.run_to_abs_pos(position_sp=0,
speed_sp=std_speed*5,
stop_action="hold")
arm.wait_while("running")
move(-5)
def cup_a_little_lift(): #¥¢¡¼¥à¤ò¤ï¤º¤«¤Ë»ý¤Á¾å¤²¤ë¡¢¥Ô¥ó¥Ý¥ó¶ÌÅêÆþÍÑ¡£init_arm¤Î¸å¤Ë»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
arm.run_to_abs_pos(position_sp=-42,
speed_sp=std_speed*5,
stop_action="hold")
arm.wait_while("running")
def cup_lift(): #¥¢¡¼¥à¤ò´°Á´¤Ë»ý¤Á¾å¤²¤ë¡£¥³¥Ã¥×½Å¤ÍÍÑ¡£init_arm¸å¤Ë»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
arm.run_to_abs_pos(position_sp=-230,
speed_sp=std_speed*5,
stop_action="hold")
arm.wait_while("running")
def search_min_d(search_time=4.5, i=1): #Ķ²»ÇÈ¥»¥ó¥µ¤Ë¤è¤ë¥³¥Ã¥×¥µ¡¼¥Á¡£
if i == 1: ##°ú¿ôsearch_time¤Ë¤Ï¥³¥Ã¥×¥µ¡¼¥Á¤ò¹Ô¤¦»þ´Ö(s)¡¢i¤Çº¸Àû²ó¡¢±¦Àû²ó¤É¤Á¤é¤Ç¥µ¡¼¥Á¤ò»Ï¤á¤ë¤«»ØÄê¡£
sign = [1, -1] #i=1¤Çº¸¼þ¤ê¡¢i=-1¤Ç±¦¼þ¤ê
elif i == -1: #Í¿¤¨¤é¤ì¤¿»þ´Ö¡¦¼þ²ó¤Ç·×¬¤·¤¿Ãæ¤Ç¡¢µ÷Î¥¤¬ºÇû¤À¤Ã¤¿Êý¸þ¤Ø¸þ¤¯¡£
sign = [-1, 1]
min_d = 500¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡#¥³¥Ã¥×¤Þ¤Ç¤Îµ÷Î¥¡Ömin_d¡×¤Î½é´üÃͤò500¤È¤·¡¢¤½¤ì°Ê²¼¤ò¸¡Ãμ¡ÂèÂåÆþ¤·¤Æ¤¤¤¯
start_time = time.time()
mr.run_forever(speed_sp=sign[0]*std_speed*5) #£±½äÌÜ¡¢¤³¤³¤Çmin_d¤ò·èÄê
ml.run_forever(speed_sp=sign[1]*std_speed*5)
while time.time()-start_time < search_time:
if min_d > us.value():
min_d = us.value()
for motor in mr, ml:
motor.stop(stop_action='brake')
start_time = time.time()
mr.run_forever(speed_sp=sign[1]*std_speed*5) #£²½äÌÜ¡¢min_d°Ê²¼¤Îµ÷Î¥¤ò¸¡ÃΤ·¤¿¤éÄä»ß
ml.run_forever(speed_sp=sign[0]*std_speed*5)
while time.time()-start_time < search_time:
if us.value() <= min_d:
for motor in mr, ml:
motor.stop(stop_action='brake')
return
for motor in mr, ml:
motor.stop(stop_action='brake')
search_min_d(search_time) #£²½äÌܤÇÄä»ß¤Ç¤¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ºÆµ¢¸Æ¤Ó½Ð¤·
def line_adjust_by_edge(edge): #¸òº¹ÅÀ¸í¸¡ÃΤβóÈòÍÑ¡¢°ú¿ô¤Ë¤Ï¥È¥ì¡¼¥¹¤¹¤ë¶³¦¤òleft_edge¤«right_edge¤ÇÍ¿¤¨¤ë¡£
for motor in mr, ml:
motor.run_direct()
while abs(cs.value()-target_val) > 10:
line_following(edge) #line_following´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Ï[[Tracer_ver.1.7.3>2017b/Member/ibu/Mission2#ibdb1e7a]]¤Ø
for motor in mr, ml:
motor.stop(stop_action='brake')
def line_adjust_by_time(edge, stab_time=angle_stabilization_time): #¸òº¹ÅÀ¸í¸¡ÃΤβóÈòÍÑ
for motor in mr, ml: #¤³¤Á¤é¤Ï¸òº¹ÅÀ¤ÈȽÃǤ¹¤ë¤Þ¤Ç¤ÎÀþ¾åÁö¹Ô¤Î»þ´Ö¤ò»ØÄê¤Ç¤¤ë
motor.run_direct()
start_time = time.time()
while time.time()-start_time < stab_time:
line_following(edge)
for motor in mr, ml:
motor.stop(stop_action='brake')
def run_until_line(): #Àþ¤ò¸«¤Ä¤±¤ë¤Þ¤ÇÁö¹Ô¤¹¤ë
for motor in mr, ml:
motor.run_forever(speed_sp=std_speed*5)
while abs(cs.value()-target_val) > 10:
pass
for motor in mr, ml:
motor.stop(stop_action='brake')
***1¹æ¼Ö¼Â¹Ô¥×¥í¥°¥é¥à [#c8e7611b]
DÃÏÅÀ¤ò¥¹¥¿¡¼¥È¤¹¤ë¼ÖíÒ¤Î¥×¥í¥°¥é¥à¡£~
Á°½Ò¤ÎÄ̤ꡢÄÌ¿®Éôʬ¤Ï¥³¥á¥ó¥È¥¢¥¦¥È¤·¤Æ¤¤¤ë¡£
#!/usr/bin/env python3
from def_red_v016 import *
#import paho.mqtt.client as mqtt # paho¤Î¥é¥¤¥Ö¥é¥ê¤ò¥¤¥ó¥Ý¡¼¥È
#client = mqtt.Client() # MQTT¤Î¥¯¥é¥¤¥¢¥ó¥È¤òÀ¸À®
def arm_set(): #¥¢¡¼¥à°ÌÃÖ¤òÄ´À°¤¹¤ë¤¿¤á¤Îµ¡Ç½
a = input('w, s')
while a in {'w', 's'}:
if a == 'w':
arm.run_timed(time_sp=0.1*1000, speed_sp=200, stop_action='brake')
arm.wait_while('running')
elif a == 's':
arm.run_timed(time_sp=0.1*1000, speed_sp=-200, stop_action='brake')
arm.wait_while('running')
a = input('w, s')
'''
def mqtt_send(x): #ÃͤòÁ÷¿®
position = x #°ÌÃÖ¾ðÊó¤ò¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ÇÁ÷¿®
client.publish("position", position) # "position"¤È¤¤¤¦¥È¥Ô¥Ã¥¯¤Ç¥Ö¥í¡¼¥«¤ËÁ÷¤ë
print("send_position_"+x)
'''
def main():
#client.connect("10.60.2.156",1883, 60) # ¥Ö¥í¡¼¥«¤ËÀܳ¡¢(60ÉðʾåÀܳ¤¬¤Ê¤¤¤ÈÀÚÃÇ)
line_adjust_by_time('left_edge', 1.3)
run_until_intersection('left_edge')
intersection_turn_left()
change_following_edge()
run_until_intersection('right_edge')
intersection_turn_right()
line_adjust_by_time('right_edge', 1)
run_until_intersection('right_edge')
circle(145) # intersection,change direction
arm_open()
move(-4)
search_min_d(1)
cup_catch()
circle(-105)
move(1)
line_adjust_by_time('left_edge', 1)
circle(-20)
run_until_intersection('left_edge')
cup_a_little_lift()
move(4)
circle(35)
move(5)
cup_a_little_lift()
move(10)
cup_lift()
circle(-30)
move(-5)
search_min_d(1, -1)
cup_catch()
arm_open()
cup_a_little_lift()
circle(60)
cup_lift()
circle(-140)
arm_open()
move(-4)
circle(-90)
#mqtt_send(1)
move(50)
#client.disconnect() # ÀÚÃÇ
if __name__ == '__main__':
arm_set()
init_arm()
main()
***2¹æ¼Ö¼Â¹Ô¥×¥í¥°¥é¥à [#yf6609ff]
AÃÏÅÀ¤ò¥¹¥¿¡¼¥È¤¹¤ë¼ÖíÒ¤Î¥×¥í¥°¥é¥à¡£~
ÄÌ¿®¥×¥í¥°¥é¥à¤¬´Ö¤Ë¹ç¤ï¤Ê¤«¤Ã¤¿¤¿¤á¡¢¥Ô¥ó¥Ý¥ó¶Ì¤òÅêÆþ¤·¤¿¸å¤Ë²¼¤¬¤ê¡¢°Ê¹ß¤ò¥³¥á¥ó¥È¥¢¥¦¥È¤·¤Æ¤¤¤ë¡£
#!/usr/bin/env python3
from def_green_v016 import *
'''
import paho.mqtt.client as mqtt
client = mqtt.Client() # MQTT¤Î¥¯¥é¥¤¥¢¥ó¥È¤òÀ¸À®
position = 0
def on_connect(client, userdata, flags, rc): # ¥Ö¥í¡¼¥«¤ËÀܳ¤·¤¿»þ¤Ë¼Â¹Ô¤µ¤ì¤ë´Ø¿ô(¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô)¤òÄêµÁ¤·¤Æ¤ª¤¯
print("Connected with result code "+str(rc))
client.subscribe("position") # "position"¤È¤¤¤¦¥È¥Ô¥Ã¥¯¥¹¤ò¹ØÆÉ
def on_message(client, userdata, msg): # ¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¼è¤Ã¤¿»þ¤Ë¼Â¹Ô¤µ¤ì¤ë´Ø¿ô(¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô)¤òÄêµÁ¤·¤Æ¤ª¤¯
position = int(msg.payload) # payload¤È¤¤¤¦ÊÑ¿ô¤Ë¥á¥Ã¥»¡¼¥¸¤¬Æþ¤ë
print(position)
'''
def arm_set(): #¥¢¡¼¥à°ÌÃÖ¤òÄ´À°¤¹¤ë¤¿¤á¤Îµ¡Ç½
a = input('w, s')
while a in {'w', 's'}:
if a == 'w':
arm.run_timed(time_sp=0.25*1000, speed_sp=200, stop_action='brake')
arm.wait_while('running')
elif a == 's':
arm.run_timed(time_sp=0.25*1000, speed_sp=-200, stop_action='brake')
arm.wait_while('running')
a = input('w, s')
def main():
'''
client.on_connect = on_connect # ¾å¤ÇÄêµÁ¤·¤¿¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô¤òÅϤ¹
client.on_message = on_message # ¾å¤ÇÄêµÁ¤·¤¿¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô¤òÅϤ¹
client.connect("localhost",1883, 60) # ¥Ö¥í¡¼¥«(¼«Ê¬¼«¿È¤Ê¤Î¤Çlocalhost)¤Î1883È֥ݡ¼¥È¤ËÀܳ (Keep Alive ¤Ï60ÉÃ)
client.loop_start() # ¥á¥Ã¥»¡¼¥¸¼õ¿®¥ë¡¼¥×¤Î³«»Ï
'''
run_until_line()
move(4)
line_adjust_by_edge('right_edge')
run_until_intersection('right_edge')
circle(33)
arm_open()
search_min_d(0.8)
cup_catch()
circle(-160)
line_adjust_by_edge('left_edge')
run_until_intersection('left_edge')
intersection_turn_left()
line_adjust_by_time('left_edge', 1.3)
cup_a_little_lift()
move(5)
cup_lift()
move(-50)
'''
line_adjust_by_time('left_edge', 5)
run_until_intersection('left_edge')
while position != 1:
pass
move(15)
circle(35*1.2)
line_adjust_by_edge('left_edge')
line_adjust_by_time('left_edge', 3)
run_until_intersection('left_edge')
intersection_turn_left()
run_until_intersection('left_edge')
circle(-27)
arm_open()
client.loop_stop() # ¼õ¿®¥ë¡¼¥×¤òÄä»ß
client.disconnect() # Àܳ¤òÀÚÃÇ
'''
if __name__ == '__main__':
arm_set()
init_arm()
main()
*·ë²Ì¡¦´¶ÁÛ [#j271ecf1]
¥×¥í¥°¥é¥à¤¬¥®¥ê¥®¥ê¤Ç´Ö¤Ë¹ç¤ï¤º¡¢Êý¿ËÄ̤ê¤Ë¼Â¹Ô¤µ¤»¤ë¤³¤È¤¹¤é¤Ç¤¤Ê¤«¤Ã¤¿¡£~
¤·¤«¤·¡¢Ã°Ç°¤ÊÄ´À°¤Î¤ª¤«¤²¤Ç¥Ý¥¤¥ó¥È¤Ï¤¢¤ëÄøÅÙ²Ô¤°»ö¤¬¤Ç¤¡¢¥í¥Ü¥³¥ó¤Ï£²°Ì¤Ç½ª¤¨¤ë¤³¤È¤¬¤Ç¤¤¿¡£~
¤â¤·¤¢¤È£±Æü;͵¤¬¤¢¤ê¡¢Êý¿ËÄ̤ê¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤Ç¤¤Æ¤¤¤ì¤Ð¡¢¤â¤¦¾¯¤·Îɤ¤·ë²Ì¤Ë¤Ê¤Ã¤¿¤À¤í¤¦¡£~
¤³¤Î¸¶°ø¤Ï¥í¥Ü¥Ã¥ÈÀ߷ס¢Æä˥¢¡¼¥à³«È¯¤Ç»þ´Ö¤ò¤«¤±²á¤®¤¿¤³¤È¤Ç¤â¤¢¤ë¡£~
»öÁ°¤Ë¸«Ä̤·¤òΩ¤Æ¡¢¥í¥ÜÀ©ºî¼«ÂΤηײè¤òΩ¤Æ¤Æ¤ª¤±¤Ð¤è¤¤¤Î¤À¤¬¡¢¤½¤ì¤Ë̵Íý¤Ë¹ç¤ï¤»¤¿·ë²ÌÀ¸¤Þ¤ì¤¿¤Î¤¬[[B·¿¥¢¡¼¥à>2017b/Member/ibu/Mission3#zd0dec86]]¤Ç¤¢¤ë¡£~
¤³¤ì¤òÀ߷פ·Ä¾¤·¤Æ»þ´Ö¤ò¤«¤±¤¿È½ÃǤϴְã¤Ã¤Æ¤¤¤Ê¤¤¤È¿®¤¸¤¿¤¤¡£~
·ë²Ì¤Ï¤É¤¦¤Ç¤¢¤ì¡¢¥í¥Ü¥Æ¥£¥¯¥¹ÆþÌ祼¥ß¤òÄ̤¸¤Æ¿¤¯¤Î·Ð¸³¤òÀѤळ¤È¤¬¤Ç¤¡¢Æ±»þ¤Ë³Ú¤·¤à¤³¤È¤¬¤Ç¤¤¿¡£~
ÆÃ¤Ë¥×¥í¥°¥é¥ß¥ó¥°·Ð¸³¡¢¥Á¡¼¥à¥×¥í¥¸¥§¥¯¥È¤Ç¤Î¶¦Æ±ºî¶È·Ð¸³¤Ï¾Íè¤ËÌòΩ¤Ã¤Æ¤¯¤ì¤ë¤Ï¤º¤À¡£~
&br;
ÍèµÒ¿ô¥«¥¦¥ó¥¿¡¼ &color(white,black){&counter;};
&br;
½ªÎ»¹Ô:
Ìܼ¡
#contents
//image 640*480 or 320*240
²ÝÂêÀâÌÀ¥Ú¡¼¥¸¡§[[2017b/Mission3]]
*À߷פˤĤ¤¤Æ [#i01274e7]
»ÈÍѵ¡¡§LEGO MINDSTORMS EV3
**Àß·×»×ÁÛ [#ef4da535]
Åö½é¤ÏÀè¤ÎÀ߷פμ«Í³ÅÙ¤ò¾å¤²¤ë¤¿¤á¡¢¥ß¥Ç¥£¥¢¥à¥â¡¼¥¿£±¤Ä¤Ë¤è¤ë¡¢¥¥ã¥Ã¥Á¡¦¾º¹ßµ¡Ç½¤Î¼ÂÁõ¤·¤¿¥¢¡¼¥à¤Î´°À®¤òÌܻؤ·¤¿¡£~
¤³¤Îµ¡¹½¤ÎÀ߷פÏÈó¾ï¤ËÆñ¹Ò¤·¡¢Â¿¤¯¤Î»þ´Ö¤òÈñ¤ä¤·¤Æ¤·¤Þ¤Ã¤¿¡£¤³¤ì¤Ë¤è¤ê¸å¤Î¥×¥í¥°¥é¥ß¥ó¥°¤Î¼ÑµÍ¤á¤¬´Å¤¯¤Ê¤ë¤³¤È¤Ë¤Ê¤ë¡£~
¤·¤«¤·ºÇ½ªÅª¤Ë¤Ï¥¢¡¼¥àµ¡¹½¤ÎÀ߷פËÀ®¸ù¤·¡¢ÉôÉÊ¿ô¤Ë¤â;͵¤¬¤Ç¤Æ¤¤¿¤¿¤á¡¢£²ÂæÂÎÀ©¤Ç¤Î²ÝÂê¿ë¹Ô¤ò¼Â¸½¤Ç¤¤¿¡£~
£²ÂæÂÎÀ©¤Ë¤è¤ê»þ´Öû½Ì¤âÁÀ¤¨¤ë¤È»×¤ï¤ì¤¿¤¬¡¢¼ÂºÝ¤É¤¦¤Ê¤Ã¤¿¤«¤Ï¸å½Ò¡£
ÌÞÏÀº£²ó¤â»æ¤òÆ°¤«¤¹¤Î¤Ïº¤Æñ¤Ç¤¢¤Ã¤¿¡£
**¥¢¡¼¥à³«È¯ [#ce983a4f]
//»îºî¥¢¡¼¥à¼Ì¿¿
***»îºîA·¿ [#fc20299a]
#ref(./proto_armA-1.jpg,80%,»îºî¥¢¡¼¥àA)
ÀèÀ¸¤Ë¶µ¤¨¤Æ¤¤¤¿¤À¤¤¤¿µ¡¹½¤ò»²¹Í¤Ë¡¢»õ¼Ö¤ÎÁȤ߹ç¤ï¤»¤Ë¤è¤Ã¤Æ¥¥ã¥Ã¥Á¡¦¾º¹ß¤ò¥â¡¼¥¿£±¤Ä¤Ç¼Â¸½¤¹¤ë¥¢¡¼¥à¤ò»îºî¤·¤¿¡£~
±¿Æ°¤ÎÊý¸þ¤òÊÑ´¹¤¹¤ë²Õ½ê¤Ë¤Ï¥Ù¡¼¥¸¥å¿§¤Î¥Ù¥Ù¥ë¥®¥¢Æ±»Î¤ò³ú¤ß¹ç¤ï¤»¤Æ¤¤¤ë¡£
ÎòÂå¤Îµ¡¹½¤ÎÃæ¤Ç¤âÈ´·²¤Î³Ê¹¥Îɤµ¤ò¸Ø¤ë¤¬¡¢¤¤¤¯¤Ä¤«ÌäÂ꤬¤¢¤Ã¤¿¡£~
-¥Ù¡¼¥¸¥å¿§¤Î¥Ù¥Ù¥ë¥®¥¢Æ±»Î¤Î³ú¤ß¹ç¤ï¤»¤¬°¤¤¡£~
-ÉôÉÊÅÀ¿ô¤¬Â¿¤¯¡¢½ÅÎ̤¬½Å¤¯¤Ê¤ê¡¢À°È÷À¤â°¤¤¡£~
-³ú¤ß¹ç¤ï¤»¤Î°¤µ¤È½ÅÎÌÌäÂ꤬½Å¤Ê¤ê¡¢¿®ÍêÀ¤¬Ä㤤¡£
¥Ó¥¸¥å¥¢¥ë¤ò½Å»ë¤·¤¹¤®¤¿¤Î¤«¤â¤·¤ì¤Ê¤¤¡£
¤³¤ì¤é¤ÎÅÀ¤«¤é¡¢ºÆÀ߷פò»î¤ß¤¿¡£
***»îºîB·¿ [#zd0dec86]
#ref(./proto_armB-2.jpg,50%,»îºî¥¢¡¼¥àB)
A·¿¤Î¼ºÇÔ¤«¤é¥â¡¼¥¿£±¤Ä¤Ë¤è¤ë¥¥ã¥Ã¥Á¡¦¾º¹ßµ¡Ç½¤Î¼Â¸½¤ËºÃÀÞ¤·¡¢¥ß¥Ç¥£¥¢¥à¥â¡¼¥¿£²¤Ä¤ò»È¤¤Ã±½ã¤Ë·Ò¤²¤¿¡£~
»þ´ÖŪͱͽ¤ËÇ÷¤é¤ì¤ÆÀ¸¤Þ¤ì¤¿µÞ¤ÉʤǤ¢¤ë¡£~
º¬¸µ¤Ç»Ù¤¨¤ë¥ß¥Ç¥£¥¢¥à¥â¡¼¥¿¤Ï¿É¤½¤¦¤À¤¬¡¢¥Û¡¼¥ë¥É¾õÂ֤ˤ¹¤ì¤ÐÁ°Éô¤â»Ù¤¨¤ë¤³¤È¤Ï¤Ç¤¤ë¡£~
ñ½ã¤Êʬ°ÂÄꤷ¤¿Æ°ºî¤¬´üÂԤǤ¤¿¡£~
¤³¤Î·¿¤ÎÌäÂêÅÀ¤Ï¡¢
-¥â¡¼¥¿¤¬¥Û¡¼¥ë¥É¾õÂ֤Ǥʤ±¤ì¤Ð»Ù¤¨¤é¤ì¤Ê¤¤¤Î¤ÏÉÔÊؤǤ¢¤ê¡¢·ç´Ù¤Ç¤¢¤ë¡£~
-¤½¤â¤½¤âÌÜɸ¤Ç¤¢¤Ã¤¿¥â¡¼¥¿£±¤Ä¤Ë¤è¤ëÀ߷פ¬¼Â¸½¤Ç¤¤Æ¤¤¤Ê¤¤¡£~
-³Ê¹¥°¤¤¡£~
-µ»½ÑÅÀ¤â˾¤á¤½¤¦¤Ë̵¤¤¡£~
A·¿¥¢¡¼¥à¤ÎºÃÀÞ¤«¤éΩ¤Áľ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£
¤³¤ì¤é¤ÎÅÀ¤«¤éµ¤¤ò¼è¤êľ¤·¤ÆºÆÀ߷פò¹Ô¤Ã¤¿¡£
***»îºîC·¿ [#k939f45b]
#ref(./proto_armC.jpg,70%,»îºî¥¢¡¼¥àC)
¥¿¡¼¥ó¥Æ¡¼¥Ö¥ë·¿¥®¥¢¤È¥Ù¥Ù¥ë¥®¥¢¤ò³èÍѤ·¡¢¤´¤¯¥·¥ó¥×¥ë¤Ê·Á¤Ç¥¥ã¥Ã¥Á¡¦¾º¹ßµ¡Ç½¤ò¼Â¸½¤·¤¿¡£~
Ãæ¿´¤òÄ̤뼴¤ò²ó¤¹¤È¡¢¥Ù¥Ù¥ë¥®¥¢¤«¤é¥¿¡¼¥ó¥Æ¡¼¥Ö¥ë·¿¥®¥¢¤òÄ̤¸¤Æ±¿Æ°Êý¸þ¤òÊÑ´¹¤¹¤ë¡£~
¥¿¡¼¥ó¥Æ¡¼¥Ö¥ë·¿¥®¥¢¾åÉô¤¬²ó¤ë¤È¡¢¿¤Ó¤¿Çò¥Ó¡¼¥à¤¬³«ÊĤ·¡¢¥³¥Ã¥×¤òÄϤó¤Ç¥Ó¡¼¥à¤ÎÆ°¤¤¬À©¸Â¤µ¤ì¤ë¤È¼´¤Î²óž¤Ë¤¢¤ï¤»¤Æ¾å¤Ø»ý¤Á¾å¤¬¤Ã¤Æ¤¤¤¯¡£~
¶¹¤¤²ÄÆ°°è¤òĶ¤¨¤Æ¥â¡¼¥¿¤ò²ó¤·¤Æ¤·¤Þ¤¦¤È¡¢¤¹¤°¤Ë¤¢¤Á¤³¤Á¤Î¥®¥¢¤¬³°¤ì»Ï¤á¤ëÁ¡ºÙ¤Ê»Ò¤Ç¤¢¤ë¡£~
¤½¤Î¤¿¤á¡¢°·¤¤¤Ë¤Ï¶ìÏ«¤µ¤»¤é¤ì¤¿¡£~
¤·¤«¤·¤½¤ì°Ê³°¤Ë¤ÏÌäÂê̵¤¯¡¢¤³¤ì¤ò´ð¤Ë¼ÂÀﵡ¤Î³«È¯¤Ë¼è¤ê³Ý¤«¤Ã¤¿¡£~
¥â¡¼¥¿¤«¤é¼´¤Ë¤É¤¦¤ä¤Ã¤Æ±¿Æ°¤òÅÁ¤¨¤ë¤«¤Ç¤Þ¤¿¶ìǺ¤¹¤ë¤¬¡¢¾Ü¤·¤¯¤Ï²¼µ¤Ë¤Æ¡£
**¼ÖíÒ³«È¯ [#f9767635]
***»îºîµ·¿ [#z10f4a63]
#ref(./chassis_proto1.jpg,50%,»îºî¥·¥ã¡¼¥·£±)
»îºî¥¢¡¼¥àA/B·¿¤ËÂбþ¤¹¤ë¼ÖíÒ¡£~
¥Ç¥Õ¥©¥ë¥È¤Î¼ÖÂΤ«¤éÁ°Éô¤ò³ÈÄ¥¤·¡¢¥â¡¼¥¿¤äĶ²»ÇÈ¥»¥ó¥µ¤ò¼è¤êÉÕ¤±¤ë¶õ´Ö¤ò³ÎÊݤ·¤Æ¤¤¤ë¡£~
¥¢¡¼¥à¤ÎÉÔÎɤ«¤éÇÑ°Æ¡£~
¼Â¤Ï¥«¥é¡¼¥»¥ó¥µ¤Î¼è¤êÉÕ¤±°ÌÃ֤ˤâÉÔÈ÷¤¬¤¢¤ë¡£
***»îºî¶·¿ [#q9a2c1cc]
#ref(./machine_proto4.jpg,100%,»îºîµ¡)
»îºî¥¢¡¼¥àC·¿¤ËÂбþ¤·¡¢´°À®µ¡¤Î¸µ¤Ë¤Ê¤ë¼ÖíҤǤ¢¤ë¡£~
¼Ì¿¿¤ÎÄ̤ꡢ¥ß¥Ç¥£¥¢¥à¥â¡¼¥¿¤ò²£ÃÖ¤¤·¡¢¥®¥¢¤ò¤¤¤¯¤Ä¤«Ãæ·Ñ¤·¤Æ¼´¤Ø±¿Æ°¤òÅÁ¤¨¤ë¡£~
ºÇ½é¤Ï¥â¡¼¥¿¤ò½ÄÃÖ¤¤·¡¢¼´¤ÎÃæ¿´¤Ë±¿Æ°¤òÅÁ¤¨¤ëÊý¿Ë¤À¤Ã¤¿¤¬¡¢¥¹¥Ú¡¼¥¹Åª¤ÊÌäÂ꤫¤éÄü¤á¤¿¡£~
¥¢¡¼¥à¤Î¼´¤Ë¤ÏÁ¡ºÙ¤Ê±¿Æ°¤òÅÁ¤¨¤ëɬÍפ¬¤¢¤ë¤Î¤È¡¢Æ°ºî¤¹¤ë¥¢¡¼¥àµ¡¹½¤È¥â¡¼¥¿¤Î´³¾Ä¤òÈò¤±¤ë¤¿¤á¤Ë¤Ç¤¤ë¤À¤±¥®¥¢¤òÃæ·Ñ¤·¤ÆÎ¥¤·¤ÆÇÛÃÖ¤·¤¿¡£~
¥¢¡¼¥à¤Î¼´¤Îľ²¼¤Ë¤Ï¥«¥é¡¼¥»¥ó¥µ¤â¤¢¤ê¡¢¤³¤Î¶¹¤¤¥¹¥Ú¡¼¥¹¤Ë¿µ¡Ç½¤òµÍ¤á¹þ¤ó¤À¤¿¤á¡¢ÉôÉÊ£±¤Ä¸ò´¹¤¹¤ë¤Ë¤â°ì¶ìÏ«¤·¤Æ¤·¤Þ¤¦¡£~
½Å¿´¤âÄ㤯ÍÞ¤¨¤é¤ì¤¿¤Î¤Ï¤è¤«¤Ã¤¿¤¬¡¢Á¡ºÙ¤ÊC·¿¥¢¡¼¥à¤ÈÁê¤Þ¤Ã¤Æ¡¢À°È÷À¤ÏÎɤ¤¤È¤Ï¸À¤¨¤Ê¤¤¡£~
¤Þ¤¿¡¢Ä¶²»ÇÈ¥»¥ó¥µ¤Î¼è¤êÉÕ¤±°ÌÃÖ¤ËÃ×̿Ū¤Ê¥ß¥¹¤¬¤¢¤Ã¤¿¡£~
¥¢¡¼¥à¤Î¾º¹ß¤Ë¹ç¤ï¤»¤ÆĶ²»ÇÈ¥»¥ó¥µ¤â¾å²¼¤·¤Æ¤·¤Þ¤¦¤Î¤Ç¤¢¤ë¡£~
»æ¥³¥Ã¥×¤òÄϤó¤À¤éÌܱ£¤·¾õÂ֤ˤʤ뤳¤Îµ¡ÂΤˤϡ¢¤â¤¦¾¯¤·²þÎɤ¬É¬ÍפÀ¤Ã¤¿¡£
**´°À®µ¡ [#af776022]
#ref(./fin_machines.jpg,100%,´°À®µ¡)
»îºî¶·¿¤«¤é¡¢Ä¶²»ÇÈ¥»¥ó¥µ¤Î¼è¤êÉÕ¤±°ÌÃ֤ȥ¢¡¼¥à¤Î·Á¾õ¤òÊѹ¹¤·¤¿¡£~
Ķ²»ÇÈ¥»¥ó¥µ¤Ï¥¢¡¼¥à¤Î²¼Éô¤Ë¥·¥ã¡¼¥·¤È·Ò¤²¤Æ¡¢¥¢¡¼¥à¤È°ì½ï¤Ë¾å¤ò¸þ¤¯·ç´Ù¤ò²þÁ±¤·¤¿¡£~
º£¤Þ¤ÇĶ²»ÇÈ¥»¥ó¥µ¤¬¥³¥Ã¥×¤òÆ⦤«¤é»Ù¤¨¤ëÌò³ä¤òô¤Ã¤Æ¤¿¤¿¤á¡¢Âå¤ï¤ê¤ËÆ⦤«¤é»Ù¤¨¤ë¥Ó¡¼¥à¤â¼è¤êÉÕ¤±¡£~
¤Þ¤¿¡¢¥¢¡¼¥à¤Ï²¿ÅÙ¤â¤Î¥³¥Ã¥×¥¥ã¥Ã¥Á¼Â¸³¤ò¹Ô¤¤¡¢°ÂÄꤷ¤Æ¥³¥Ã¥×¤òÄϤá¤ë·Á¾õ¤òÌϺ÷¤·¡¢ºÇ½ªÅª¤Ë¤³¤Î¤è¤¦¤Ê·Á¾õ¤Ë¤Ê¤Ã¤¿¡£~
¥¢¡¼¥à¤ä³Æ¼ï¥»¥ó¥µ¤Ë¤è¤Ã¤Æ½Å¿´¤¬Á°Éô´ó¤ê¤Ë¤Ê¤Ã¤¿¤¬¡¢EV3¤ò¸åÊý¤Ë¸ÇÄꤷ¤Æ°ÂÄꤵ¤»¤Æ¤¤¤ë¡£~
À°È÷À¤Ï°¤¤¤Þ¤Þ¤À¤¬¡¢¥³¥ó¥Ñ¥¯¥È¤Ë³Ê¹¥¤è¤¯¤Þ¤È¤Þ¤Ã¤¿¤³¤Î¼ÖíҤϾå½ÐÍè¤À¤È»×¤¦¡£
¼Ì¿¿¤Ï¡¢´°À®µ¡¤ò£²Âæ·¤¨¤Æ»£¤Ã¤¿¤â¤Î¤Ç¤¢¤ë¡£~
¸«Ê¬¤±¤ä¤¹¤¤¤è¤¦¤ËEV3¤Îξü¤Î¥Ñ¡¼¥Ä¤Î¿§¤òÊѤ¨¤Æ¤¢¤ë¡£~
µÞ¥Ô¥Ã¥Áºî¶È¤ÇEV3¤È¤Î¸ÇÄêÊýË¡¤Ë°ã¤¤¤¬¸«¤é¤ì¤ë¤¬¡¢µ¤¤Ë¤¹¤ë¤Û¤É¤Ç¤Ï¤Ê¤¤¡£
*ÀïάÊý¿Ë [#w4c6e2cf]
#ref(./tactics.jpg,around,100%,Àïά¿Þ)
¤½¤ì¤¾¤ì¤Î¼ÖíÒ¤ÏA¡¢DÃÏÅÀ¤òƱ»þ¤Ë¥¹¥¿¡¼¥È¤¹¤ë¡£~
LEFT:
|LEFT:250 |RIGHT:250 |c
|COLOR(green):~£±¹æ¼Ö |LEFT:COLOR(red):~£²¹æ¼Ö |h
|COLOR(green):D¤ò¥¹¥¿¡¼¥È |LEFT:COLOR(red):A¤ò¥¹¥¿¡¼¥È |
|COLOR(green):¡¥³¥Ã¥×²ó¼ý(1¸ÄÌÜ) |LEFT:COLOR(red):¡¥³¥Ã¥×²ó¼ý |
|COLOR(green):¢ ¥Ô¥ó¥Ý¥ó¶ÌÅêÆþ(1²óÌÜ) |LEFT:COLOR(red):ÂÔµ¡ |
|COLOR(green):£¥³¥Ã¥×½Å¤Í¤Æ²ó¼ý(£²¸ÄÌÜ) |LEFT:COLOR(red):ÂÔµ¡ |
|COLOR(green):¤¥Ô¥ó¥Ý¥ó¶ÌÅêÆþ(2²óÌÜ) |LEFT:COLOR(red):ÂÔµ¡ |
|COLOR(green):¥¥³¥Ã¥×¤òYÃÏÅÀ¤Ë£²¸Ä½Å¤ÍÃÖ¤¯|LEFT:COLOR(red):ÂÔµ¡ |
|COLOR(green):¦D¤ØÂàÈò¤·¡¢¿®¹æÁ÷¿® |LEFT:COLOR(red):¢¿®¹æ¼õ¿®¡¢¹ÔÆ°³«»Ï |
|COLOR(green):ÂÔµ¡ |LEFT:COLOR(red):£¥Ô¥ó¥Ý¥ó¶ÌÅêÆþ |
|COLOR(green):ÂÔµ¡ |LEFT:COLOR(red):¤¥³¥Ã¥×¤òYÃÏÅÀ¤Ø½Å¤Í¤ë(ÍýÁÛ) |
&size(7){(ɽÁȤ߼«ÂΤò´ó¤»¤ëÊýË¡¤¬¤ï¤«¤é¤º¡¢²èÁü¤Î²ó¤ê¹þ¤ß¤òÍøÍѤ·¤Æɽ¤Î°ÌÃÖÄ´À°¤ò¹Ô¤Ã¤¿¡£Ã¼Ëö¤Ë¤è¤Ã¤Æ¤Ï¥ì¥¤¥¢¥¦¥È¤¬Êø²õ¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£)};
#clear
¤É¤Á¤é¤«¤Ë¤Ê¤Ë¤«¤·¤é¤Î¥È¥é¥Ö¥ë¤¬¤¢¤Ã¤Æ¤â¡¢¤â¤¦°ìÊý¤¬À®¤·¿ë¤²¤ë¡¢¤È¤¤¤¦¥ê¥¹¥¯Ê¬»¶¤ò¿Þ¤ëÁÀ¤¤¤À¡£~
¤·¤«¤·¡¢£²ÂæÂÎÀ©¤Ë¤è¤ë¥Ç¥á¥ê¥Ã¥È¤â¤¢¤Ã¤¿¡£~
EV3¤Ë¤È¤Ã¤Æ¤Î¡ÉÆ°¤¯¾ã³²Êª¡É¤òÁý¤ä¤·¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¤¢¤ë¡£~
£²Âæ¤Î¾×ÆÍ¡¢Ä¶²»ÇÈ¥»¥ó¥µ¤Ë¤è¤ë¥³¥Ã¥×¸¡ÃΤΥߥ¹¤òÈò¤±¤ë¤¿¤á¤ËÄÌ¿®¤ò¹Ô¤¤¡¢£²Â椬Ʊ»þ¤ËÃæ±û¥¾¡¼¥ó¤ËÆþ¤é¤Ê¤¤¤è¤¦¤Ë¿Þ¤Ã¤¿¡£
¤â¤¦¾¯¤·£²Âæ¤Ç¤¢¤ëÍøÅÀ¤ò³è¤«¤·¤¿Àïά¤òºÎ¤ê¤¿¤«¤Ã¤¿¤¬¡¢Ç¡²¿¤»¤ó»þ´Ö¤¬Â¤ê¤Ê¤«¤Ã¤¿¡£
¤Þ¤¿¡¢¤³¤ÎÄÌ¿®Àïά¤â¥í¥Ü¥³¥ó¤Þ¤Ç¤Ë´Ö¤Ë¹ç¤ï¤Ê¤«¤Ã¤¿¡£~
ÄÌ¿®¥×¥í¥°¥é¥à¤Î¤ß¤Î¥³¡¼¥Ç¥£¥ó¥°¤Ï°ì±þ½ª¤¨¡¢¼ÖíÒ¤ËÅëºÜ¤»¤ºEV3ËÜÂÎƱ»Î¤Î¤ß¤Ç¤Î¥Æ¥¹¥È¤Î¤ß¹Ô¤Ã¤ÆÀ®¸ù¤·¤Æ¤¤¤ë¡£~
¤·¤«¤·¼Â¹Ô¥×¥í¥°¥é¥à¤ËÁȤ߹þ¤ó¤Ç¤Î¥Æ¥¹¥È¤Ï´Ö¤Ë¹ç¤ï¤º¡¢°ìÅÙ¤â¹Ô¤¨¤Æ¤¤¤Ê¤¤¡£~
·ë²Ì¡¢¥í¥Ü¥³¥óľÁ°¤ËµÞî±Í½Äê¤òÊѹ¹¤·¡¢2¹æ¼Ö¤Ï¥Ô¥ó¥Ý¥ó¶ÌÅêÆþ¤Þ¤Ç¹Ô¤Ã¤¿¸å¤ËÂàÈò¤·¤Æ¤¤¤ë¡£~
&size(7){ÂàÈò¸å¡¢£±¹æ¼Ö¤¬´èÄ¥¤ë´Ö¤Ë¥¢¡¼¥à¤Î¾å²¼¤ò·«¤êÊÖ¤·±þ±ç¤ò¹Ô¤ª¤¦¤È¤·¤¿¤¬¡¢¤Ê¤¼¤«Æ°¤«¤Ê¤«¤Ã¤¿¡£};
¸å½Ò¤Î¼Â¹Ô¥×¥í¥°¥é¥à¤Ë¤ÏÄÌ¿®¥×¥í¥°¥é¥à¤òÁȤ߹þ¤ó¤Ç¤¢¤ë¤¬¡¢¥í¥Ü¥³¥ó»þ¤ÎÄ̤ꥳ¥á¥ó¥È¥¢¥¦¥È¤·¤Æ¤¤¤ë¡£
*¥×¥í¥°¥é¥à [#xebec167]
¸À¸ì¡§python3
**´Ø¿ô·² [#e212318a]
¥é¥¤¥ó¥È¥ì¡¼¥¹¤â¹Ô¤¦¤¬¡¢ºÙ¤«¤ÊÄê¿ô¤òÄ´À°¤·¤¿Â¾¤Ï²ÝÂꣲ¤Î´Ø¿ô¤ÈƱ¤¸¤Ç¤¢¤ë¤¿¤á¡¢¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¹Ô¤¦¤¿¤á¤Î´Ø¿ôÉôʬ¤Ï¾Êά¤·¤Æ¤¤¤ë¡£~
¾Ü¤·¤¯¤Ï[[Tracer_ver.1.7.3>2017b/Member/ibu/Mission2#ibdb1e7a]]¤ò»²¾È¡£
import ev3dev.ev3 as ev3
import time
mr = ev3.LargeMotor('outC')
assert mr.connected, "Connect right large motor to port C"
ml = ev3.LargeMotor('outD')
assert ml.connected, "Connect left large motor to port A"
arm = ev3.MediumMotor('outB')
assert arm.connected, "Connect arm medium motor to port B"
cs = ev3.ColorSensor()
assert cs.connected, "Connect a color sensor to any sensor port"
cs.mode = 'COL-REFLECT'
us = ev3.UltrasonicSensor()
assert us.connected, "Connect a color sensor to any sensor port"
us.mode = 'US-DIST-CM'
position_sp_to_angle = 1.55 #position_sp¤Ë¤è¤ë°ÜÆ°»þ¡¢³ÑÅÙ¤ËÊÑ´¹¤¹¤ë¤¿¤á¤ÎÄê¿ô
target_val = 50 #¥é¥¤¥ó¥È¥ì¡¼¥¹»þ¤Î¥«¥é¡¼¥»¥ó¥µ¤ÎÌÜɸÃÍ
std_speed = 22 #ɸ½à¤ÎÁö¹Ô®ÅÙ
kp = std_speed*0.04 #¥é¥¤¥ó¤Î¶³¦¤ØÌá¤ë¶¯¤µ
position_sp_to_cm = 20.05 #position_sp¤Ë¤è¤ë°ÜÆ°»þ¡¢Ãͤòcm¤ËÊÑ´¹¤¹¤ë¤¿¤á¤ÎÄê¿ô
intersection_time = 0.23/1.8 #Àþ¾åÁö¹Ô»þ¡¢¸òº¹ÅÀ¸¡ÃΤÈȽÃǤ¹¤ë»þ´Ö
angle_stabilization_time = 0.3*1.8 #Áö¹Ô¤¹¤ë¶³¦¤òÊѹ¹¤¹¤ëºÝ¤Î°ÜÆ°»þ´Ö
def init_arm(): #¥¢¡¼¥à¥â¡¼¥¿¤Î¥ê¥»¥Ã¥È¡¢»æ¥³¥Ã¥×¤òÄϤó¤À°ÌÃ֤ǹԤ¦
'pos_positive: to inside, pos_negative: to outside'
arm.reset() # del stop_action='hold'
input('Press Enter to initialize closed arm position')
arm.reset()
def arm_open(): #¥¢¡¼¥à¤ò³«¤¯¡¢init_arm¤Î¸å¤Ë»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤
arm.run_to_abs_pos(position_sp=200,
speed_sp=std_speed*5,
stop_action="hold")
arm.wait_while("running")
def cup_catch(): #¥³¥Ã¥×¤ò¥¥ã¥Ã¥Á¤¹¤ë
mr.run_forever(speed_sp=std_speed*5)
ml.run_forever(speed_sp=std_speed*5)
while us.value() > 50:
pass
for motor in mr, ml:
motor.stop(stop_action='brake')
move(5)
arm.run_to_abs_pos(position_sp=0,
speed_sp=std_speed*5,
stop_action="hold")
arm.wait_while("running")
move(-5)
def cup_a_little_lift(): #¥¢¡¼¥à¤ò¤ï¤º¤«¤Ë»ý¤Á¾å¤²¤ë¡¢¥Ô¥ó¥Ý¥ó¶ÌÅêÆþÍÑ¡£init_arm¤Î¸å¤Ë»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
arm.run_to_abs_pos(position_sp=-42,
speed_sp=std_speed*5,
stop_action="hold")
arm.wait_while("running")
def cup_lift(): #¥¢¡¼¥à¤ò´°Á´¤Ë»ý¤Á¾å¤²¤ë¡£¥³¥Ã¥×½Å¤ÍÍÑ¡£init_arm¸å¤Ë»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
arm.run_to_abs_pos(position_sp=-230,
speed_sp=std_speed*5,
stop_action="hold")
arm.wait_while("running")
def search_min_d(search_time=4.5, i=1): #Ķ²»ÇÈ¥»¥ó¥µ¤Ë¤è¤ë¥³¥Ã¥×¥µ¡¼¥Á¡£
if i == 1: ##°ú¿ôsearch_time¤Ë¤Ï¥³¥Ã¥×¥µ¡¼¥Á¤ò¹Ô¤¦»þ´Ö(s)¡¢i¤Çº¸Àû²ó¡¢±¦Àû²ó¤É¤Á¤é¤Ç¥µ¡¼¥Á¤ò»Ï¤á¤ë¤«»ØÄê¡£
sign = [1, -1] #i=1¤Çº¸¼þ¤ê¡¢i=-1¤Ç±¦¼þ¤ê
elif i == -1: #Í¿¤¨¤é¤ì¤¿»þ´Ö¡¦¼þ²ó¤Ç·×¬¤·¤¿Ãæ¤Ç¡¢µ÷Î¥¤¬ºÇû¤À¤Ã¤¿Êý¸þ¤Ø¸þ¤¯¡£
sign = [-1, 1]
min_d = 500¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡#¥³¥Ã¥×¤Þ¤Ç¤Îµ÷Î¥¡Ömin_d¡×¤Î½é´üÃͤò500¤È¤·¡¢¤½¤ì°Ê²¼¤ò¸¡Ãμ¡ÂèÂåÆþ¤·¤Æ¤¤¤¯
start_time = time.time()
mr.run_forever(speed_sp=sign[0]*std_speed*5) #£±½äÌÜ¡¢¤³¤³¤Çmin_d¤ò·èÄê
ml.run_forever(speed_sp=sign[1]*std_speed*5)
while time.time()-start_time < search_time:
if min_d > us.value():
min_d = us.value()
for motor in mr, ml:
motor.stop(stop_action='brake')
start_time = time.time()
mr.run_forever(speed_sp=sign[1]*std_speed*5) #£²½äÌÜ¡¢min_d°Ê²¼¤Îµ÷Î¥¤ò¸¡ÃΤ·¤¿¤éÄä»ß
ml.run_forever(speed_sp=sign[0]*std_speed*5)
while time.time()-start_time < search_time:
if us.value() <= min_d:
for motor in mr, ml:
motor.stop(stop_action='brake')
return
for motor in mr, ml:
motor.stop(stop_action='brake')
search_min_d(search_time) #£²½äÌܤÇÄä»ß¤Ç¤¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ºÆµ¢¸Æ¤Ó½Ð¤·
def line_adjust_by_edge(edge): #¸òº¹ÅÀ¸í¸¡ÃΤβóÈòÍÑ¡¢°ú¿ô¤Ë¤Ï¥È¥ì¡¼¥¹¤¹¤ë¶³¦¤òleft_edge¤«right_edge¤ÇÍ¿¤¨¤ë¡£
for motor in mr, ml:
motor.run_direct()
while abs(cs.value()-target_val) > 10:
line_following(edge) #line_following´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Ï[[Tracer_ver.1.7.3>2017b/Member/ibu/Mission2#ibdb1e7a]]¤Ø
for motor in mr, ml:
motor.stop(stop_action='brake')
def line_adjust_by_time(edge, stab_time=angle_stabilization_time): #¸òº¹ÅÀ¸í¸¡ÃΤβóÈòÍÑ
for motor in mr, ml: #¤³¤Á¤é¤Ï¸òº¹ÅÀ¤ÈȽÃǤ¹¤ë¤Þ¤Ç¤ÎÀþ¾åÁö¹Ô¤Î»þ´Ö¤ò»ØÄê¤Ç¤¤ë
motor.run_direct()
start_time = time.time()
while time.time()-start_time < stab_time:
line_following(edge)
for motor in mr, ml:
motor.stop(stop_action='brake')
def run_until_line(): #Àþ¤ò¸«¤Ä¤±¤ë¤Þ¤ÇÁö¹Ô¤¹¤ë
for motor in mr, ml:
motor.run_forever(speed_sp=std_speed*5)
while abs(cs.value()-target_val) > 10:
pass
for motor in mr, ml:
motor.stop(stop_action='brake')
***1¹æ¼Ö¼Â¹Ô¥×¥í¥°¥é¥à [#c8e7611b]
DÃÏÅÀ¤ò¥¹¥¿¡¼¥È¤¹¤ë¼ÖíÒ¤Î¥×¥í¥°¥é¥à¡£~
Á°½Ò¤ÎÄ̤ꡢÄÌ¿®Éôʬ¤Ï¥³¥á¥ó¥È¥¢¥¦¥È¤·¤Æ¤¤¤ë¡£
#!/usr/bin/env python3
from def_red_v016 import *
#import paho.mqtt.client as mqtt # paho¤Î¥é¥¤¥Ö¥é¥ê¤ò¥¤¥ó¥Ý¡¼¥È
#client = mqtt.Client() # MQTT¤Î¥¯¥é¥¤¥¢¥ó¥È¤òÀ¸À®
def arm_set(): #¥¢¡¼¥à°ÌÃÖ¤òÄ´À°¤¹¤ë¤¿¤á¤Îµ¡Ç½
a = input('w, s')
while a in {'w', 's'}:
if a == 'w':
arm.run_timed(time_sp=0.1*1000, speed_sp=200, stop_action='brake')
arm.wait_while('running')
elif a == 's':
arm.run_timed(time_sp=0.1*1000, speed_sp=-200, stop_action='brake')
arm.wait_while('running')
a = input('w, s')
'''
def mqtt_send(x): #ÃͤòÁ÷¿®
position = x #°ÌÃÖ¾ðÊó¤ò¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ÇÁ÷¿®
client.publish("position", position) # "position"¤È¤¤¤¦¥È¥Ô¥Ã¥¯¤Ç¥Ö¥í¡¼¥«¤ËÁ÷¤ë
print("send_position_"+x)
'''
def main():
#client.connect("10.60.2.156",1883, 60) # ¥Ö¥í¡¼¥«¤ËÀܳ¡¢(60ÉðʾåÀܳ¤¬¤Ê¤¤¤ÈÀÚÃÇ)
line_adjust_by_time('left_edge', 1.3)
run_until_intersection('left_edge')
intersection_turn_left()
change_following_edge()
run_until_intersection('right_edge')
intersection_turn_right()
line_adjust_by_time('right_edge', 1)
run_until_intersection('right_edge')
circle(145) # intersection,change direction
arm_open()
move(-4)
search_min_d(1)
cup_catch()
circle(-105)
move(1)
line_adjust_by_time('left_edge', 1)
circle(-20)
run_until_intersection('left_edge')
cup_a_little_lift()
move(4)
circle(35)
move(5)
cup_a_little_lift()
move(10)
cup_lift()
circle(-30)
move(-5)
search_min_d(1, -1)
cup_catch()
arm_open()
cup_a_little_lift()
circle(60)
cup_lift()
circle(-140)
arm_open()
move(-4)
circle(-90)
#mqtt_send(1)
move(50)
#client.disconnect() # ÀÚÃÇ
if __name__ == '__main__':
arm_set()
init_arm()
main()
***2¹æ¼Ö¼Â¹Ô¥×¥í¥°¥é¥à [#yf6609ff]
AÃÏÅÀ¤ò¥¹¥¿¡¼¥È¤¹¤ë¼ÖíÒ¤Î¥×¥í¥°¥é¥à¡£~
ÄÌ¿®¥×¥í¥°¥é¥à¤¬´Ö¤Ë¹ç¤ï¤Ê¤«¤Ã¤¿¤¿¤á¡¢¥Ô¥ó¥Ý¥ó¶Ì¤òÅêÆþ¤·¤¿¸å¤Ë²¼¤¬¤ê¡¢°Ê¹ß¤ò¥³¥á¥ó¥È¥¢¥¦¥È¤·¤Æ¤¤¤ë¡£
#!/usr/bin/env python3
from def_green_v016 import *
'''
import paho.mqtt.client as mqtt
client = mqtt.Client() # MQTT¤Î¥¯¥é¥¤¥¢¥ó¥È¤òÀ¸À®
position = 0
def on_connect(client, userdata, flags, rc): # ¥Ö¥í¡¼¥«¤ËÀܳ¤·¤¿»þ¤Ë¼Â¹Ô¤µ¤ì¤ë´Ø¿ô(¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô)¤òÄêµÁ¤·¤Æ¤ª¤¯
print("Connected with result code "+str(rc))
client.subscribe("position") # "position"¤È¤¤¤¦¥È¥Ô¥Ã¥¯¥¹¤ò¹ØÆÉ
def on_message(client, userdata, msg): # ¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¼è¤Ã¤¿»þ¤Ë¼Â¹Ô¤µ¤ì¤ë´Ø¿ô(¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô)¤òÄêµÁ¤·¤Æ¤ª¤¯
position = int(msg.payload) # payload¤È¤¤¤¦ÊÑ¿ô¤Ë¥á¥Ã¥»¡¼¥¸¤¬Æþ¤ë
print(position)
'''
def arm_set(): #¥¢¡¼¥à°ÌÃÖ¤òÄ´À°¤¹¤ë¤¿¤á¤Îµ¡Ç½
a = input('w, s')
while a in {'w', 's'}:
if a == 'w':
arm.run_timed(time_sp=0.25*1000, speed_sp=200, stop_action='brake')
arm.wait_while('running')
elif a == 's':
arm.run_timed(time_sp=0.25*1000, speed_sp=-200, stop_action='brake')
arm.wait_while('running')
a = input('w, s')
def main():
'''
client.on_connect = on_connect # ¾å¤ÇÄêµÁ¤·¤¿¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô¤òÅϤ¹
client.on_message = on_message # ¾å¤ÇÄêµÁ¤·¤¿¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô¤òÅϤ¹
client.connect("localhost",1883, 60) # ¥Ö¥í¡¼¥«(¼«Ê¬¼«¿È¤Ê¤Î¤Çlocalhost)¤Î1883È֥ݡ¼¥È¤ËÀܳ (Keep Alive ¤Ï60ÉÃ)
client.loop_start() # ¥á¥Ã¥»¡¼¥¸¼õ¿®¥ë¡¼¥×¤Î³«»Ï
'''
run_until_line()
move(4)
line_adjust_by_edge('right_edge')
run_until_intersection('right_edge')
circle(33)
arm_open()
search_min_d(0.8)
cup_catch()
circle(-160)
line_adjust_by_edge('left_edge')
run_until_intersection('left_edge')
intersection_turn_left()
line_adjust_by_time('left_edge', 1.3)
cup_a_little_lift()
move(5)
cup_lift()
move(-50)
'''
line_adjust_by_time('left_edge', 5)
run_until_intersection('left_edge')
while position != 1:
pass
move(15)
circle(35*1.2)
line_adjust_by_edge('left_edge')
line_adjust_by_time('left_edge', 3)
run_until_intersection('left_edge')
intersection_turn_left()
run_until_intersection('left_edge')
circle(-27)
arm_open()
client.loop_stop() # ¼õ¿®¥ë¡¼¥×¤òÄä»ß
client.disconnect() # Àܳ¤òÀÚÃÇ
'''
if __name__ == '__main__':
arm_set()
init_arm()
main()
*·ë²Ì¡¦´¶ÁÛ [#j271ecf1]
¥×¥í¥°¥é¥à¤¬¥®¥ê¥®¥ê¤Ç´Ö¤Ë¹ç¤ï¤º¡¢Êý¿ËÄ̤ê¤Ë¼Â¹Ô¤µ¤»¤ë¤³¤È¤¹¤é¤Ç¤¤Ê¤«¤Ã¤¿¡£~
¤·¤«¤·¡¢Ã°Ç°¤ÊÄ´À°¤Î¤ª¤«¤²¤Ç¥Ý¥¤¥ó¥È¤Ï¤¢¤ëÄøÅÙ²Ô¤°»ö¤¬¤Ç¤¡¢¥í¥Ü¥³¥ó¤Ï£²°Ì¤Ç½ª¤¨¤ë¤³¤È¤¬¤Ç¤¤¿¡£~
¤â¤·¤¢¤È£±Æü;͵¤¬¤¢¤ê¡¢Êý¿ËÄ̤ê¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤Ç¤¤Æ¤¤¤ì¤Ð¡¢¤â¤¦¾¯¤·Îɤ¤·ë²Ì¤Ë¤Ê¤Ã¤¿¤À¤í¤¦¡£~
¤³¤Î¸¶°ø¤Ï¥í¥Ü¥Ã¥ÈÀ߷ס¢Æä˥¢¡¼¥à³«È¯¤Ç»þ´Ö¤ò¤«¤±²á¤®¤¿¤³¤È¤Ç¤â¤¢¤ë¡£~
»öÁ°¤Ë¸«Ä̤·¤òΩ¤Æ¡¢¥í¥ÜÀ©ºî¼«ÂΤηײè¤òΩ¤Æ¤Æ¤ª¤±¤Ð¤è¤¤¤Î¤À¤¬¡¢¤½¤ì¤Ë̵Íý¤Ë¹ç¤ï¤»¤¿·ë²ÌÀ¸¤Þ¤ì¤¿¤Î¤¬[[B·¿¥¢¡¼¥à>2017b/Member/ibu/Mission3#zd0dec86]]¤Ç¤¢¤ë¡£~
¤³¤ì¤òÀ߷פ·Ä¾¤·¤Æ»þ´Ö¤ò¤«¤±¤¿È½ÃǤϴְã¤Ã¤Æ¤¤¤Ê¤¤¤È¿®¤¸¤¿¤¤¡£~
·ë²Ì¤Ï¤É¤¦¤Ç¤¢¤ì¡¢¥í¥Ü¥Æ¥£¥¯¥¹ÆþÌ祼¥ß¤òÄ̤¸¤Æ¿¤¯¤Î·Ð¸³¤òÀѤळ¤È¤¬¤Ç¤¡¢Æ±»þ¤Ë³Ú¤·¤à¤³¤È¤¬¤Ç¤¤¿¡£~
ÆÃ¤Ë¥×¥í¥°¥é¥ß¥ó¥°·Ð¸³¡¢¥Á¡¼¥à¥×¥í¥¸¥§¥¯¥È¤Ç¤Î¶¦Æ±ºî¶È·Ð¸³¤Ï¾Íè¤ËÌòΩ¤Ã¤Æ¤¯¤ì¤ë¤Ï¤º¤À¡£~
&br;
ÍèµÒ¿ô¥«¥¦¥ó¥¿¡¼ &color(white,black){&counter;};
&br;
¥Ú¡¼¥¸Ì¾: