2019a/Member

²ÝÂê2

ÆâÍÆ

¡Ö»æ¤Ë½ñ¤¤¤¿¹õ¤¤Àþ¤Ë±è¤Ã¤Æ¥í¥Ü¥Ã¥È¤òÆ°¤«¤·¥Ü¡¼¥ë¤ò±¿¤Ö¡×¤È¤¤¤¦²ÝÂê¤À¤Ã¤¿¡£

¥³¡¼¥¹

º£²ó¤Ï°Ê²¼¤Î¤è¤¦¤Ê¥³¡¼¥¹¤Ç¥í¥Ü¥Ã¥È¤òÆ°¤«¤·¤¿¡£
Map.png
(ÀÖ¤¤Ìð°õ¤ÎÊý¸þ¤Ë¿Ê¤à¡£¤Þ¤¿ÀĤ¤´Ý¤Ç¤Ï1Éûߤޤ롣)

Àïά

­¡ ¥é¥¤¥ó¥È¥ì¡¼¥¹

º£²ó¤Î²ÝÂê¤Ç¤Ï¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤É¤Î¤è¤¦¤Ë¹Ô¤¦¤«¤Ç¥í¥Ü¥Ã¥È¤Î®ÅÙ¤ä¸òº¹ÅÀ¤¬¤¢¤ëÄøÅÙ·è¤Þ¤ë¡£º£²ó¤Ï¸òº¹ÅÀȽÃǤȤÎÁêÀ­¤ò¹Í¤¨¤Æ¡¢°Ê²¼¤Î¤è¤¦¤ÊÊýË¡¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤¹¤ë¤³¤È¤Ë¤·¤¿¡£
LineTrace.png
º£²ó¤Ï¹õ¤¤Àþ¤ÈÇò¤¤ÃÏÌ̤ζ­Ìܤò¤¿¤É¤ë¤è¤¦¤ÊÊýË¡¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤¹¤ë¤³¤È¤Ë¤·¤¿¡£Î㤨¤Ð¾å¤Î¿Þ¤Î¤è¤¦¤Ë¹õ¤¤Àþ¤Îº¸Â¦¤ò¤¿¤É¤ë¤È¤­¤Ï

¤È¤¤¤¦Æ°ºî¤ò·«¤êÊÖ¤·¤Æ¹õ¤¤Àþ¤ÈÇò¤¤ÃÏÌ̤ζ­Ìܤò¤¿¤É¤ë¤È¤¤¤¦ÊýË¡¤ò¤È¤Ã¤¿¡£

¤Þ¤¿¡¢¤³¤ÎÊýË¡¤ÇľÀþ¾å¤ò¥é¥¤¥ó¥È¥ì¡¼¥¹¤¹¤ë¤È¥«¥é¡¼¥»¥ó¥µ¡¼¤ÏÃÏÌ̤理ò

¹õ¢ªÇò¢ª¹õ¢ªÇò¢ª¹õ¢ªÇò¢ª¹õ¢ªÇò¢ª¹õ¢ªÇò¢ª¹õ¢ªÇò¢ª¹õ¢ªÇò¢ª¹õ

¤È¤¤¤¦¤è¤¦¤Ë¸ò¸ß¤ËȽÃǤ¹¤ë¡£¤Þ¤¿¥«¡¼¥Ö¾å¤Ç¤â¤è¤Û¤É¤­¤Ä¤¤¥«¡¼¥Ö¤Ç¤Ê¤¤¸Â¤ê

¹õ¢ª¹õ¢ªÇò¢ª¹õ¢ª¹õ¢ªÇò¢ª¹õ¢ª¹õ¢ª¹õ¢ªÇò¢ª¹õ¢ª¹õ¢ª¹õ¢ª¹õ¢ªÇò

¤È¤¤¤Ã¤¿´¶¤¸¤ËȽÃǤ·¤¿ÃÏÌ̤理¬Ä¹»þ´ÖϢ³¤·¤Æ¹õ¤À¤±¤À¤Ã¤¿¤êÇò¤À¤±¤À¤Ã¤¿¤ê¤È¤¤¤¦¤³¤È¤Ïµ¯¤³¤é¤Ê¤¤¡£¤³¤ÎÆÃÀ­¤òÍøÍѤ·¤Æ¸òº¹ÅÀ¤ÎȽÃǤò¤¹¤ë¡£

­¢ ¸òº¹ÅÀ¤ÎȽÃÇ

¸òº¹ÅÀ¤òȽÃǤ¹¤ë¤Î¤Ïñ½ã¤Ë¸«¤¨¤Æ¤È¤Æ¤âÆñ¤·¤¤¡£º£²ó¤Ï¤«¤Ê¤ê¤­¤Ä¤¤¥«¡¼¥Ö¤Ç¤â¸òº¹ÅÀ¤È¸íǧ¤»¤º¥³¡¼¥¹¤ÎÃÏÅÀJ¤Î¤è¤¦¤Ê¸òº¹ÅÀ¤â¸òº¹ÅÀ¤Èǧ¼±¤Ç¤­¤ë¤è¤¦¤Ë°Ê²¼¤Î¤è¤¦¤ÊÊýË¡¤Ç¸òº¹ÅÀ¤òȽÊ̤·¤¿¡£
DetermineTheIntersection.png
¸òº¹ÅÀ¤Î¾å¤ÇÀïά­¡¤Î¤è¤¦¤Ë¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤¹¤ë¤È¸òº¹ÅÀ¤Îº¸±¦¤ÎÏӤΤ»¤¤¤Ç¥í¥Ü¥Ã¥È¤¬¹õ¤¤Àþ¤Î¾å¤Ë¤¤¤ë»þ´Ö¤¬Ä¹¤¯¤Ê¤ë¡£¤½¤³¤ÇÀïά­¡¤ÎÊýË¡¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤·¤Æ¤â¥í¥Ü¥Ã¥È¤¬¤¢¤ë°ìÄê»þ´ÖϢ³¤·¤Æ¹õ¤¤Àþ¤Î¾å¤Ë¤¤¤¿¤é¤½¤³¤ò¸òº¹ÅÀ¤ÈȽÃǤ¹¤ë¤è¤¦¤Ë¤·¤¿¡£¤Þ¤¿¤³¤ÎÊýË¡¤Ç¤Ï¡Ö¥í¥Ü¥Ã¥È¤¬¤¢¤ë°ìÄê»þ´ÖϢ³¤·¤Æ¹õ¤¤Àþ¤Î¾å¤Ë¤¤¤¿¤é¡×¤È¤¤¤¦¾ò·ï¤Ç¸òº¹ÅÀ¤òȽÃǤ¹¤ë¤¬¡¢¤½¤Î´Ö¤Ë¤â¥í¥Ü¥Ã¥È¤ÏÆ°¤¤¤Æ¤·¤Þ¤¦¤Î¤Ç¸òº¹ÅÀ¤ÈȽÃǤ·¤Æ»ß¤Þ¤Ã¤¿¾ì½ê¤È¼ÂºÝ¤Î¸òº¹ÅÀ¤Î°ÌÃÖ¤¬¾¯¤·¤º¤ì¤ë¡£¤½¤³¤Ï¤½¤ÎÅÔÅÙ°ÌÃ֤Τº¤ì¤òÂǤÁ¾Ã¤¹¤è¤¦¤ÊÆ°¤­¤òľ¸å¤Ë¥×¥í¥°¥é¥à¤¹¤ë¤³¤È¤ÇÂбþ¤·¤¿¡£

ºîÀ®¤·¤¿¥í¥Ü¥Ã¥È

Robot.png
º£²ó¤Ï¾å¤Î¤è¤¦¤Ê¥í¥Ü¥Ã¥È¤òºîÀ®¤·¤¿¡£²ÝÂê1¤Î»þ¤È¤Ï°ã¤¤º£²ó»È¤Ã¤¿EV3¤Î¥â¡¼¥¿¡¼¤Ï¤«¤Ê¤êÀµ³Î¤À¤Ã¤¿¤Î¤Ç¥®¥¢¤Ï»È¤Ã¤Æ¤¤¤Ê¤¤¡£º£²ó¤Ï°Ê²¼¤ÎÆóÅÀ¤ò¹©Éפ·¤¿¡£

­¡ ¥¢¡¼¥à

¥Ü¡¼¥ë¤ò±¿¤Ö¤¿¤á¤Î¥¢¡¼¥à¤Ï¤³¤Î¤è¤¦¤Ê¤â¤Î¤Ë¤·¤¿¡£
Arm.png

­¢ ¥«¥é¡¼¥»¥ó¥µ¡¼

¥«¥é¡¼¥»¥ó¥µ¡¼¤Ï¹õÀþ¤Î̵ͭ¤¬¤·¤Ã¤«¤ê¤ï¤«¤ë¤è¤¦¤Ê¤ë¤Ù¤¯ÃÏÌ̤˶á¤Å¤±¤ë¤è¤¦¤Ë¤·¤¿¡£
ColorSensor.png

¥×¥í¥°¥é¥à¤Î½àÈ÷

¥â¥¸¥å¡¼¥ë¤Î¥¤¥ó¥Ý¡¼¥È

#!/usr/bin/env python3
from ev3dev.ev3 import *
import time

¥¤¥ó¥¹¥¿¥ó¥¹¤ÈÄê¿ô¤ÎºîÀ®

mR = LargeMotor("outA")
mL = LargeMotor("outB")
mB = MediumMotor("outC")
cs = ColorSensor("in1")
cs.mode = "COL-REFLECT"
speed_sp = 100
black_line_reflection = 7

¥¤¥ó¥¹¥¿¥ó¥¹¤Î̾Á°¤ÎͳÍè¤Ï

¤Ç¤¢¤ë¡£
º£²ó¥«¥é¡¼¥»¥ó¥µ¡¼¤ÏÈ¿¼Í¸÷¤Î¶¯¤µ¤ò0¡Á100¤ÎÃͤÇÊÖ¤¹COL-REFLECT¥â¡¼¥É¤ò»È¤Ã¤¿¡£

¤Þ¤¿¡¢Äê¿ô¤Î»È¤¤Æ»¤Ï°Ê²¼¤ÎÄ̤ꡣ

´Ø¿ô¤ÎÄêµÁ

º£²ó¤Ï°Ê²¼¤Î´Ø¿ô¤òÄêµÁ¤·¤¿¡£

¥í¥Ü¥Ã¥È¤òÁ°¿Ê¤µ¤»¤ë´Ø¿ô

def forward(distance):
    mR.run_timed(time_sp=distance / speed_sp * 2000, speed_sp=speed_sp, stop_action="hold")
    mL.run_timed(time_sp=distance / speed_sp * 2000, speed_sp=speed_sp, stop_action="hold")
    time.sleep(distance / speed_sp * 2)

°ú¿ô:

¤³¤Î´Ø¿ô¤ÎÀâÌÀ:

¥í¥Ü¥Ã¥È¤ò»þ·×²ó¤ê¤Ë²óž¤µ¤»¤ë´Ø¿ô

def clockwise(angle):
    mR.run_timed(time_sp=angle / speed_sp * 2000, speed_sp=-speed_sp, stop_action="hold")
    mL.run_timed(time_sp=angle / speed_sp * 2000, speed_sp=speed_sp, stop_action="hold")
    time.sleep(angle / speed_sp * 2)

°ú¿ô:

¤³¤Î´Ø¿ô¤ÎÀâÌÀ:

¥í¥Ü¥Ã¥È¤òÈ¿»þ·×²ó¤ê¤Ë²óž¤µ¤»¤ë´Ø¿ô

def counter_clockwise(angle):
    mR.run_timed(time_sp=angle / speed_sp * 2000, speed_sp=speed_sp, stop_action="hold")
    mL.run_timed(time_sp=angle / speed_sp * 2000, speed_sp=-speed_sp, stop_action="hold")
    time.sleep(angle / speed_sp * 2)

°ú¿ô:

¤³¤Î´Ø¿ô¤ÎÀâÌÀ:

¹õ¤¤Àþ¤Î±¦Â¦¤ò¥é¥¤¥ó¥È¥ì¡¼¥¹¤µ¤»¤ë´Ø¿ô

RightSideLineTrace.png

def right_side_line_trace():
    reflection_log = [False for _ in range(30)]
    while True:
        del reflection_log[0]

        if cs.value() <= black_line_reflection:
            # black
            mR.stop(stop_action="hold")
            mL.run_timed(time_sp=1000, speed_sp=speed_sp, stop_action="hold")
            reflection_log.append(True)
        else:
            # white
            mL.stop(stop_action="hold")
            mR.run_timed(time_sp=1000, speed_sp=speed_sp, stop_action="hold")
            reflection_log.append(False)

        if all(reflection_log):
            mR.stop(stop_action="hold")
            mL.stop(stop_action="hold")
            break

¤³¤Î´Ø¿ô¤ÎÀâÌÀ:

¤È¤¤¤¦Æ°ºî¤ò¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤¹¤ë¡£

¹õ¤¤Àþ¤Îº¸Â¦¤ò¥é¥¤¥ó¥È¥ì¡¼¥¹¤µ¤»¤ë´Ø¿ô

LeftSideLineTrace.png

def left_side_line_trace():
    reflection_log = [False for _ in range(30)]
    while True:
        del reflection_log[0]

        if cs.value() <= black_line_reflection:
            # black
            mL.stop(stop_action="hold")
            mR.run_timed(time_sp=1000, speed_sp=speed_sp, stop_action="hold")
            reflection_log.append(True)
        else:
            # white
            mR.stop(stop_action="hold")
            mL.run_timed(time_sp=1000, speed_sp=speed_sp, stop_action="hold")
            reflection_log.append(False)

        if all(reflection_log):
            mR.stop(stop_action="hold")
            mL.stop(stop_action="hold")
            break

¤³¤Î´Ø¿ô¤ÎÀâÌÀ:

¤È¤¤¤¦Æ°ºî¤ò¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤¹¤ë¡£

¥í¥Ü¥Ã¥È¤Ë¥Ü¡¼¥ë¤ò¥­¥ã¥Ã¥Á¤µ¤»¤ë´Ø¿ô

def catch():
    mB.run_to_rel_pos(position_sp=-60, speed_sp=speed_sp, stop_action="hold")
    time.sleep(1)

¤³¤Î´Ø¿ô¤ÎÀâÌÀ:

¥í¥Ü¥Ã¥È¤Ë¥Ü¡¼¥ë¤ò¥·¥å¡¼¥È¤µ¤»¤ë´Ø¿ô

def shot():
    # Release the ball from the arm.
    mB.run_to_rel_pos(position_sp=60, speed_sp=speed_sp, stop_action="hold")
    time.sleep(1)

    # Move backward.
    mR.run_timed(time_sp=500, speed_sp=-1000, stop_action="hold")
    mL.run_timed(time_sp=500, speed_sp=-1000, stop_action="hold")
    time.sleep(0.5)

    # Move forward
    mR.run_timed(time_sp=700, speed_sp=1000, stop_action="hold")
    mL.run_timed(time_sp=700, speed_sp=1000, stop_action="hold")
    time.sleep(0.7)

¤³¤Î´Ø¿ô¤ÎÀâÌÀ:

¤È¤¤¤¦Æ°ºî¤Ë¤è¤Ã¤Æ¥Ü¡¼¥ë¤ò¥·¥å¡¼¥È¤¹¤ë¡£

¥í¥Ü¥Ã¥È¤òÆ°¤«¤¹

M¤«¤éK¤Þ¤Ç

RobotAtM.png

# from M to K
left_side_line_trace() #­¡

¥Ü¡¼¥ë¤ò¥­¥ã¥Ã¥Á¤¹¤ë

RobotAtK_1.png

# from K to L
clockwise(35) #­¡
forward(180) #­¢
catch()
# from L to K
counter_clockwise(180) #­£
left_side_line_trace() #­¤

K¤«¤éJ¤Þ¤Ç

RobotAtK_2.png
¥í¥Ü¥Ã¥È¤Î¥«¥é¡¼¥»¥ó¥µ¡¼¤¬J¤ò³Î¼Â¤ËȽÊ̤Ǥ­¤ë¤è¤¦¡¢¥í¥Ü¥Ã¥È¤ò¤¤¤Ã¤¿¤óJ¤è¤ê±¦Â¦¤Ë°Ü¤·¤Æ¤«¤é¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤µ¤»¤¿¡£

# from K to J
counter_clockwise(45) #­¡
forward(100) #­¢
clockwise(115) #­£
left_side_line_trace() #­¤
time.sleep(1)

J¤«¤éI¤Þ¤Ç

RobotAtJ.png

# from J to I
counter_clockwise(30) #­¡
left_side_line_trace() #­¢

I¤«¤éH¤Þ¤Ç

RobotAtI.png

# from I to H
forward(30) #­¡
left_side_line_trace() #­¢

H¤«¤éG¤Þ¤Ç

RobotAtH.png

# from H to G
forward(20) #­¡
left_side_line_trace() #­¢

G¤«¤éD¤Þ¤Ç

RobotAtG.png

# from G to D
forward(20) #­¡
left_side_line_trace() #­¢
time.sleep(1)

D¤«¤éB¤Þ¤ÇÆ°¤«¤·¤Æ¥·¥å¡¼¥È¤µ¤»¤ë

RobotAtD.png

# from D to G
forward(20) #­¡
right_side_line_trace() #­¢
shot()

È¿¾Ê

¥é¥¤¥ó¥È¥ì¡¼¥¹¤È¸òº¹ÅÀȽÃǤϤȤƤâÀºÅÙ¤¬¹â¤«¤Ã¤¿¤¬¤½¤Îʬ®ÅÙ¤¬¤«¤Ê¤êÃÙ¤«¤Ã¤¿¡£speed_sp¤ÎÃͤò¹â¤¯¤¹¤ë¤Ê¤É®ÅÙ¤ò¾å¤²¤ë¹©Éפò¤·¤Æ¤ß¤¿¤¬¡¢¤½¤¦¤¹¤ë¤È¸òº¹ÅÀȽÃǤÎÀºÅÙ¤¬¤«¤Ê¤êÍî¤Á¤Æ¤·¤Þ¤¤·ë¶É®ÅÙ¤ò¾å¤²¤ë¤³¤È¤¬½ÐÍè¤Ê¤«¤Ã¤¿¡£¤Þ¤¿¥Ü¡¼¥ë¤ò¥·¥å¡¼¥È¤¹¤ëÊýË¡¤¬ÂÎÅö¤¿¤ê¤À¤Ã¤¿¤¬¡¢ÂÎÅö¤¿¤ê¤¹¤ë¤È¤­¤Ë¥Ü¡¼¥ë¤ò¥¢¡¼¥à¤«¤é³°¤¹¤È¥Ü¡¼¥ë¤¬Æ°¤¤¤Æ¤·¤Þ¤¤ÊѤÊÊý¸þ¤Ë¥Ü¡¼¥ë¤ò¥·¥å¡¼¥È¤·¤Æ¤·¤Þ¤¦¤È¤¤¤Ã¤¿¤³¤È¤¬Â¿È¯¤·¤¿¡£¤â¤¦¾¯¤·¥¢¡¼¥à¤Î·Á¤ò¹©Éפ¹¤ì¤Ð¥·¥å¡¼¥È¤ÎÀºÅÙ¤¬¾å¤¬¤Ã¤¿¤È»×¤¦¡£




ºòÆü¤ÎˬÌä¼Ô¿ô: 1¿Í
º£Æü¤ÎˬÌä¼Ô¿ô: 1¿Í
¹ç·×ˬÌä¼Ô¿ô: &counter([total|today|yesterday]);¿Í


źÉÕ¥Õ¥¡¥¤¥ë: fileRightSideLineTrace.png 103·ï [¾ÜºÙ] fileLeftSideLineTrace.png 103·ï [¾ÜºÙ] fileRobot.png 139·ï [¾ÜºÙ] fileArm.png 139·ï [¾ÜºÙ] fileColorSensor.png 94·ï [¾ÜºÙ] fileRobotAtK_2.png 127·ï [¾ÜºÙ] fileRobotAtM.png 113·ï [¾ÜºÙ] fileRobotAtK_1.png 97·ï [¾ÜºÙ] fileRobotAtJ.png 98·ï [¾ÜºÙ] fileRobotAtI.png 132·ï [¾ÜºÙ] fileRobotAtH.png 114·ï [¾ÜºÙ] fileRobotAtG.png 149·ï [¾ÜºÙ] fileRobotAtD.png 85·ï [¾ÜºÙ] fileDetermineTheIntersection.png 95·ï [¾ÜºÙ] fileLineTrace.png 76·ï [¾ÜºÙ] fileMap.png 85·ï [¾ÜºÙ]

¥È¥Ã¥×   ÊÔ½¸ Åà·ë º¹Ê¬ ÍúÎò źÉÕ Ê£À½ ̾Á°Êѹ¹ ¥ê¥í¡¼¥É   ¿·µ¬ °ìÍ÷ ¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS
Last-modified: 2019-08-14 (¿å) 01:11:55