Mini-Project 3 Analog Joystick+ 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()
### Add Hardware Enable(s) Here
loco_iot.enable(msg.SUBTYPE_DC_MOTOR)
loco_iot.enable(msg.SUBTYPE_JOYSTICK)
def map_to_range( sensor_value, sensor_min, sensor_max, new_min, new_max ):
# Check if the sensor_value is in the given range
if (sensor_value > sensor_max):
sensor_value = sensor_max
elif(sensor_value < sensor_min):
sensor_value = sensor_min
sensor_range = sensor_max - sensor_min
new_range = new_max - new_min
new_value = (((sensor_value - sensor_min) * new_range) / sensor_range) + new_min
return new_value
# Instruct the Microcontroller to Start Listening for Control/Request Messages
loco_iot.start()
motor_direction = 0
start_time = time.time()
while (time.time() - start_time) < 30:
joystick_dict = loco_iot.getData(msg.SUBTYPE_JOYSTICK)
#if joystick_dict["Y Value"] < 512:
#y_data = map_to_range((joystick_dict["Y Value"]), 0, 512, 0, 255)
#print(int(y_data))
#data_list = [msg.DC_BACKWARD, y_data]
#loco_iot.setData(msg.SUBTYPE_DC_MOTOR, data_list)
#else:
#y_data = map_to_range((joystick_dict["Y Value"]), 512, 1023, 0, 255)
#print(int(y_data))
#data_list = [msg.DC_FORWARD, y_data]
#loco_iot.setData(msg.SUBTYPE_DC_MOTOR, data_list)
if joystick_dict["Y Value"] < 512:
joystick_dict["Y Value"] == 512
y_data = int(map_to_range((joystick_dict["Y Value"]), 512, 1023, 0, 255))
time.sleep(.1)
print("titty")
elif joystick_dict['Button J'] == 0:
loco_iot.setData(msg.SUBTYPE_DC_MOTOR, [msg.DC_FORWARD, +600])
print("Button J pushed")
time.sleep(.1)
elif motor_direction == 0:
loco_iot.setData(msg.SUBTYPE_DC_MOTOR, [msg.DC_BACKWARD, +0])
time.sleep(.1)
print("anoos")
elif motor_direction == 1:
loco_iot.setData(msg.SUBTYPE_DC_MOTOR, [msg.DC_FORWARD, +0])
time.sleep(.1)
print("cone fart")
time.sleep(.250)
# Close Connection to the Microcontroller
loco_iot.close()