legoEv3/ir1.py
from datetime import datetime
print(str(datetime.now()), "00 import datetime", __file__)
import time
import threading
from queue import Queue, Empty
import sys
print(str(datetime.now()), "01 import sys", __file__)
#from modmod import *
#print(str(datetime.now()), "02 import modmod", __file__)
from ev3dev2.motor import *
print(str(datetime.now()), "03 import motor", __file__)
from ev3dev2.led import Leds
from ev3dev2.button import *
from ev3dev2.sensor.lego import InfraredSensor
#from ev3dev2._platform.ev3 import *
print(str(datetime.now()), "10 imported all", __file__)
# print('EVDEV_DEVICE_NAME', EVDEV_DEVICE_NAME)
# for name, mod in sys.modules.items():
# print(name, '-->', mod)
class IRThr(threading.Thread):
""" thread ev3 brick buttons """
def __init__(self):
threading.Thread.__init__(self)
self.ir = InfraredSensor()
self.ir.mode = InfraredSensor.MODE_IR_REMOTE
self.info()
def info(self):
print("InfraredSensor " + self.ir.address, "\n\tmodes=" + repr(self.ir.modes),
"\n\t_BUTTONS=" + repr(self.ir._BUTTONS), "\n\t commands=" + repr(self.ir.commands))
def run(self):
self.running = True;
print(str(datetime.now()), "20 run begin", __file__)
if self.ir.mode == self.ir.MODE_IR_REMOTE:
# IR_REMOTE: use infrared sensor as remote control, 5 channels, 5 buttons
buttons = None
while self.running:
n = self.ir.buttons_pressed(1)
if n != self.buttons:
print(str(datetime.now()) + " ir buttons ch1 " + repr(n))
self.buttons = n
time.sleep(0.001)
elif self.ir.mode == self.ir.MODE_IR_PROX:
# IR_PROX: use infrared sensor to feel proximity of any object
self.prox = None
while self.running:
n = self.ir.proximity
if n != self.prox:
print(str(datetime.now()) + " ir proximity ch1 " + repr(n))
self.prox = n
time.sleep(0.001)
elif self.ir.mode == self.ir.MODE_IR_SEEK:
# IR_PROX: use infrared sensor to seek distance and angle of IR sender
self.heaDis = None
while self.running:
n = self.ir.heading_and_distance(1)
if n != self.heaDis:
print(str(datetime.now()) + " ir Heading Distance ch1 " + repr(n))
self.heaDis = n
#pMod()
#break
time.sleep(0.1)
print(str(datetime.now()), "12 after class", __file__)
print("sys.version", sys.version)
print(datetime.now(), "platform", get_current_platform())
# print("devices", repr(evdev.list_devices()))
# print("dev 2", repr([evdev.InputDevice(fn).name for fn in evdev.list_devices()]))
it = IRThr()
it.ir.mode = InfraredSensor.MODE_IR_PROX
it.run()
print(str(datetime.now()), "19 end", __file__)