Exercise DC Motor
# Module Import
import LocoIOT
import time
# Class Instances Creation
loco_iot = LocoIOT.LocoIOT()
msg = LocoIOT.IOT_Codes()
# Initiate Connection to the Microcontroller
loco_iot.connect()
# Enable DC Motor Hardware Configuration
loco_iot.enable(msg.SUBTYPE_DC_MOTOR)
loco_iot.enable(msg.SUBTYPE_SW_4)
loco_iot.enable(msg.SUBTYPE_SW_5)
loco_iot.enable(msg.SUBTYPE_SW_6)
# Start Listening for Control/Request Messages
loco_iot.start()
motor_data = [msg.DC_FORWARD, 0]
# Warn User Motor Is Beginning To Spin
print("Motor Starting")
# Infinite Loop: Press STOP to end the loop.
while True:
# Request Button State Data
btn_dict4 = loco_iot.getData(msg.SUBTYPE_SW_4)
btn_dict5 = loco_iot.getData(msg.SUBTYPE_SW_5)
btn_dict6 = loco_iot.getData(msg.SUBTYPE_SW_6)
# Button Checking Conditional Statements
if btn_dict4['Button 4'] == 0:
if motor_data == [msg.DC_BACKWARD]:
loco_iot.setData(msg.SUBTYPE_DC_MOTOR, [msg.DC_FORWARD, 0])
time.sleep(.2)
else:
loco_iot.setData(msg.SUBTYPE_DC_MOTOR, [msg.DC_FORWARD, +5])
time.sleep(.2)
print("Button 4 Pushed")
elif btn_dict5['Button 5'] == 0:
motor_data = [msg.SUBTYPE_DC_MOTOR, 0]
print("Button 5 Pushed")
time.sleep(.2)
elif btn_dict6['Button 6'] == 0:
if motor_data == [msg.DC_FORWARD]:
loco_iot.setData(msg.SUBTYPE_DC_MOTOR, [msg.DC_BACKWARD, 0])
time.sleep(.2)
else:
loco_iot.setData(msg.SUBTYPE_DC_MOTOR, [msg.DC_FORWARD, +5])
time.sleep(.2)
print("Button 6 Pushed")
time.sleep(.2)
elif motor_data >= [msg.DC_FORWARD, 255]:
loco_iot.setData(msg.SUBTYPE_DC_MOTOR, [msg.DC_FORWARD, 255])
print("Exceed max speed")
time.sleep(.2)
# Set Motor Parameters
loco_iot.setData(msg.SUBTYPE_DC_MOTOR, motor_data)
# Arbitrary Delay
time.sleep(0.5)
# Close Connection to the Microcontroller
loco_iot.close()