目次
#contents


*プログラムについて [#o32c6568]
以下のプログラムは''CC BY-SA 4.0''とします。ライセンスは[[こちら:https://creativecommons.org/licenses/by-sa/4.0/legalcode]]&size(7){htmlタグが使えないためこのように表記しておきます};
**自作関数について [#g43092a9]
*move.py [#pf33231b]
 #!/usr/bin/env python3
 import ev3dev.ev3 as ev3
 import time

 mr = ev3.LargeMotor('outB')
 ml = ev3.LargeMotor('outC')

 cs = ev3.ColorSensor('in1')
 gy = ev3.GyroSensor('in2')

 limen = 20

 def move_to_Q():
     cs_count= 0
     gy_old = gy.value()
     while abs(gy.value() - gy_old) < 45:
         mr.run_forever(speed_sp=200)
         ml.run_forever(speed_sp=-200)
     mr.stop()
     ml.stop()
     while cs_count < 4:
         print(cs.value())
         mr.run_forever(speed_sp=500)
         ml.run_forever(speed_sp=500)
         if cs.value() < limen:
             cs_count = cs_count + 1
         while cs.value() < limen:
             print(cs_count)
     mr.stop()
     ml.stop()
     time.sleep(1)
     mr.reset()
     ml.reset()
     while cs.value() > limen:
         mr.run_forever(speed_sp=-200)
         ml.run_forever(speed_sp=-200)
         mr.stop()
         ml.stop()
     mr.run_to_rel_pos(position_sp=180,speed_sp=200, stop_action='hold')
     ml.run_to_rel_pos(position_sp=180,speed_sp=200, stop_action='hold')
     time.sleep(1)
     while abs(gy.value() - gy_old) < 135:
         mr.run_forever(speed_sp=200)
         ml.run_forever(speed_sp=-200)
     mr.stop()
     ml.stop()
     mr.reset()
     ml.reset()
     time.sleep(1)
     while cs.value() > limen:
         mr.run_forever(speed_sp=-200)
         ml.run_forever(speed_sp=-200)
     mr.run_to_rel_pos(position_sp=120, speed_sp=200, stop_action='hold')
     ml.run_to_rel_pos(position_sp=120, speed_sp=200, stop_action='hold')

*test2.py [#f95ab6b9]

 #!/usr/bin/env python
 import paho.mqtt.client as mqtt
 from time import sleep
 import ev3dev.ev3 as ev3
 import time
 import move as move

 host = 'localhost' 
 port = 1883
 topic = 'pi/st'
 
 arm = ev3.LargeMotor('outA')
 bolthandle = ev3.MediumMotor('outD')
 
 def reset_arm(t):
     arm.run_forever(speed_sp=60)
     time.sleep(t)
     arm.stop()
     arm.run_forever(speed_sp=-5)
     time.sleep(0.5)
 
 def Feuer():
     arm.run_forever(speed_sp=-600)
     time.sleep(0.8)
     arm.stop()
 
 def nachladen():
     bolthandle.run_forever(speed_sp=60)
     time.sleep(2)
     bolthandle.stop()
     bolthandle.run_forever(speed_sp=-80)
     time.sleep(2)
     bolthandle.stop()
 
 def throw():
     reset_arm(2)
     send_message(5)
     Feuer()
     reset_arm(4)
     nachladen()
 
 def on_connect(client, userdata, flags, respons_code):
     print('status {0}'.format(respons_code))
     client.subscribe(topic)
 
 def send_message(m):
     client.publish(topic, m)
     sleep(0.2)
 
 client = mqtt.Client(protocol=mqtt.MQTTv311)
 client.connect(host, port=port, keepalive=60)
 client.on_connect = on_connect
 
 cs_count = 0
 
 move. move_to_Q()
 time.sleep(1)
 for i in range(100):
     throw()
     time.sleep(1.5)
 
 client.disconnect()

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS