目次 #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()