Beispiel #1
0
    def run(self):
        if self.delay != 0:
            sleep(self.delay)

        if self.on == 0:
            Led(self.led_id).off()
        elif self.on == 100:
            Led(self.led_id).on()
        else:
            Led(self.led_id).blink(self.on, self.freq)
Beispiel #2
0
    def __init__(self, ds, sett):
        print("[LIGC] Initialized")
        self.ds = ds
        self.sett = sett
        self.led1 = Led(2)
        self.led2 = Led(3)
        self.isNight = False
        self.startTime = time.time()
        self.lastValue = None
        self.override = False

        rpwm.rpwm_init()
Beispiel #3
0
 def __init__(self, master):
     # create GUI
     self.master = master
     self.master.title('JoyStick Test')
     label = tk.Label(root, text='Joystick')
     label.pack()
     self.gui = GuiJs(master=root)
     self.gui.createCordinateLabelJs1()
     self.gui.createCordinateLabelJs2()
     self.gui.createCircleJs1(200, 200, 220, 220, 'red')
     self.gui.createButton(btn_name='Finish', callback=self.cleanup)
     self.gui.createCircleJs2(200, 200, 220, 220, 'blue')
     #JoyStick instanse
     self.js1 = JoyStick(0, 3, 27)
     self.val_vert1 = 0
     self.val_horz1 = 0
     self.move_vert1 = 0
     self.move_horz1 = 0
     self.js2 = JoyStick(7, 4, 22)
     self.val_vert2 = 0
     self.val_horz2 = 0
     self.move_vert2 = 0
     self.move_horz2 = 0
     #ServMotor
     #self.servo= ServMotor(18,180,0)
     #self.servo = I2cServo()
     # Led instance
     self.Led = Led(17)
Beispiel #4
0
    def __init__(self, red_led_pin, green_led_pin, left_servo_pin,
                 right_servo_pin, left_motor_forward, left_motor_backward,
                 right_motor_forward, right_motor_backward):
        # Input
        self.imu = Imu()
        self.camera = Camera()

        # Output
        self.red_led = Led(red_led_pin)
        self.green_led = Led(green_led_pin)
        self.left_servo = Servo(left_servo_pin, min_angle=-90, max_angle=90)
        self.right_servo = Servo(right_servo_pin, min_angle=-90, max_angle=90)
        self.left_motor = Motor(forward=left_motor_forward,
                                backward=left_motor_backward)
        self.right_servo = Motor(forward=right_motor_forward,
                                 backward=right_motor_backward)
Beispiel #5
0
 def __init__(self):
     #Pin Num assain -> Connect assain
     GPIO.setmode(GPIO.BOARD)
     #create GUI
     root = tk.Tk()
     root.title('LED & Switch')
     label = tk.Label(root, text='Led Test')
     label.pack()
     self.gui = GUILed(master=root)
     self.gui.createCircle(50, 50, 150, 150, 'black')
     self.gui.createSlidebar(callback=self.callback_changeDuty,
                             fromval=0,
                             toval=100)
     #create  instances
     self.gui.createButton(btn_name='Led', callback=self.callback_BtnLed)
     self.gui.createButton(btn_name='Finish', callback=self.cleanup)
     self.Sw = Sw(pin_no=7)
     #self.LedPwm = LedPwm(pin_no=11)
     self.Led = Led(11)
     GPIO.add_event_detect(self.Sw.getPinNo(),
                           GPIO.BOTH,
                           callback=self.callback_detectSwLed)
     # display GUI
     root.mainloop()
     self.cleanup()
Beispiel #6
0
 def __init__(self, master):
     # create GUI
     self.gpio = pigpio.pi()
     self.master = master
     self.master.title('JoyStick Test')
     label = tk.Label(root, text='Joystick')
     label.pack()
     self.gui = GuiRarm(master=root)
     self.gui.createCordinateLabelServo()
     self.gui.createButton(btn_name='Finish', callback=self.cleanup)
     #self.gui.createCircleJs2(200,200,220,220,'blue')
     #JoyStick instanse
     self.jsR = JoyStick(-1, 4, 27)
     self.val_horz = 0
     #self.jsL = JoyStick(7,4,22)
     self.jsL = JoyStick(2, -1, 22)
     self.val_vert = 0
     #Volume instance
     self.vol = Volume(6)
     self.val_vol = 0
     self.vol_sum = 0
     self.sampleCount = 0
     #ServMotor
     #self.servo= ServMotor(18,180,0)
     self.servo = I2cServo()
     #PWM Freq: 60Hz
     self.servo.setPWMFreq(60)
     # Led instance
     self.Led = Led(4)
     self.Led.setLedOn()
     # PowrSw
     self.PowSw = Sw(17, pud='pudup')
     self.PowSwCont = 0
Beispiel #7
0
    def __init__(self, registerfile, shiftregister, reset=0, load_file=None):
        self.registerfile = registerfile
        self.shiftregister = shiftregister

        # add control units
        self._units = {}
        self.led = Led(self.registerfile)
        self._units['LEDs'] = self.led
        self.hitlogic = HitLogic(self.registerfile)
        self._units['Hit logic'] = self.hitlogic
        self.filter = Filter(self.registerfile)
        self._units['Filter'] = self.filter
        self.monitor = Monitor(self.shiftregister)
        self._units['Monitor'] = self.monitor
        self.frontend = Frontend(self.shiftregister)
        self._units['Frontend'] = self.frontend
        self.adcbias = AdcBias(self.shiftregister)
        self._units['ADC bias'] = self.adcbias
        self.digital = Digital(self.registerfile)
        self._units['Digital'] = self.digital

        if reset:
            self.reset()
            self.apply()
        if load_file:
            self.load(load_file)
            self.update()
Beispiel #8
0
async def main() -> None:
    async with grpc.aio.insecure_channel(target='localhost:50051') as channel:
        stub = wedge_pb2_grpc.WedgeStub(channel)

        uplink = Uplink(stub, node_id)
        button = Button(uplink)
        led = Led(uplink)

        # Example of Model, which identical to Seluxit data Model.
        model = wedge_pb2.Model(
            node=node_id,
            device=[wedge_pb2.Device(
                id=1,
                name="LED_Button2",
                version="0.1.2",
                value=[
                    button.value,
                    led.value
                ]
            )]
        )

        resp = await uplink.SetModel(model)
        logging.info("Response: {}".format(resp))

        # data = button.pin.read()
        # logging.info("Current button status: {}".format(data))
        # button.update(data)
        await asyncio.gather(led.listen(node_id))
Beispiel #9
0
    def __init__(self, strip_number:int, led_number:int):
        self.strip_number = strip_number
        self.led_nuber = led_number

        self.led = Led(led_number=led_number, strip_number=strip_number)
        self.notes = Notes()

        self.has_been_assigned = False
def main():
    leds = list()
    a_led_effects = LedEffects(leds)
    try:
        led_11 = Led(16)
        leds.append(led_11)
        led_12 = Led(18)
        leds.append(led_12)
        led_15 = Led(22)
        leds.append(led_15)

        start(a_led_effects)
    except SystemExit:
        print('Quiting program')
    finally:
        for led in leds:
            led.clean_up()
Beispiel #11
0
    def __init__(self,
                 red: float,
                 green: float,
                 blue: float,
                 rate: float = 0.02) -> None:
        super().__init__()

        self.target = Led(red, green, blue)
        self.rate = rate
Beispiel #12
0
def main():
    logging.info("rpi dashcam ready to record!")
    button_pin = 8
    led_pin = 10
    button = Button(button_pin)
    led = Led(led_pin)
    recording_folder = "/mnt/hdd"

    with picamera.PiCamera(resolution="1280x960", framerate=24) as camera:
        recorder = CameraRecorder(camera, button, led, recording_folder)
        recorder.run()
Beispiel #13
0
 def __init__(self, config, verbose=0):
     self.verbose = verbose
     # ------------------------------------------------------------------------------------------------------------ #
     self.exit = False
     self.config = config
     # ------------------------------------------------------------------------------------------------------------ #
     self.sleep_ms = self.SLEEP_MS_DEFAULT
     # ------------------------------------------------------------------------------------------------------------ #
     # Initialise required services
     # ------------------------------------------------------------------------------------------------------------ #
     if self.config['pinout']['led'] is None:
         from led import MockLed
         self.led = MockLed()
     else:
         from led import Led
         self.led = Led(self.config['pinout']['led']['pin'],
                        self.config['pinout']['led']['on_level'])
     # ------------------------------------------------------------------------------------------------------------ #
     if self.config['pinout']['button'] is None:
         from button import MockButton
         self.button = MockButton()
     else:
         from button import Button
         self.button = Button(self.config['pinout']['button']['pin'],
                              self.config['pinout']['button']['on_level'])
     # ------------------------------------------------------------------------------------------------------------ #
     if self.config['pinout']['relay'] is None:
         from relay import MockRelay
         self.relay = MockRelay()
     else:
         from relay import Relay
         self.relay = Relay(self.config['pinout']['relay']['pin'],
                            self.config['pinout']['relay']['on_level'])
     # ------------------------------------------------------------------------------------------------------------ #
     self.wifi = WiFi(self.config)  # , verbose=self.verbose)
     self.device_id = self.wifi.device_id()
     self.messaging = Messaging(self.config, self.device_id)
     # ------------------------------------------------------------------------------------------------------------ #
     # Application ready feedback --------------------------------------------------------------------------------- #
     self.led.on(poll=True)
     sleep(2)
     self.led.off(poll=True)
     # ------------------------------------------------------------------------------------------------------------ #
     if self.wifi.connected():
         self.on_wifi_connected(be_verbose=False)
     # ------------------------------------------------------------------------------------------------------------ #
     if self.verbose:
         print('<{} with id {}>'.format(self.config['device']['type'],
                                        self.device_id))
         print(self.led)
         print(self.button)
         print(self.relay)
         print(self.wifi)
         print(self.messaging)
Beispiel #14
0
 def __init__(self,master = 0):
     #create GUI  
     self.master = master
     root.title('LED & Switch')
     label = tk.Label(root,text='Led Test')
     label.pack()
     self.gui = GUILed(master=root)
     self.gui.createCircle(50,50,150,150,'black')
     #create  instances
     self.gui.createButton(btn_name='Led',callback = self.callback_BtnLed)
     self.gui.createButton(btn_name='Finish',callback = self.cleanup)
     self.Sw = Sw(4,'either',self.callback_Sw)
     self.Led = Led(17)
async def main():
    parser = argparse.ArgumentParser(
        description=
        "Data collector which sends sensor measurements to Azure IoT HUB")
    parser.add_argument("--nolcd",
                        action='store_true',
                        help="Skip LCD printout")
    args = parser.parse_args()
    if args.nolcd:
        print("No LCD")

    try:
        bme280 = BME280()
        led = Led()
        lcd = None
        if not args.nolcd:
            lcd = LCD()

        (chip_id, chip_version) = bme280.readID()
        print(f"Started, chip_id={chip_id}, chip_version={chip_version}")

        conn_str = os.getenv("DEV_BME_CONN_STR")
        device_client = IoTHubDeviceClient.create_from_connection_string(
            conn_str)
        await device_client.connect()

        while True:
            temperature, pressure, humidity = bme280.readAll()
            measTime = datetime.now().isoformat()
            measRow = f'{{"Temperature":{temperature:0.2f},"Pressure":{pressure:0.2f},"Humidity":{humidity:0.2f}}}'

            print(f"Sending message: {measRow}")
            await device_client.send_message(measRow)

            if not args.nolcd:
                lcdOut = f"T:{temperature:0.1f}C {pressure:0.1f}hPa\nH:{humidity:0.1f}%"
                lcd.clear()
                lcd.setCursor(0, 0)
                lcd.message(lcdOut)

            led.blinkLed()
            sleep(2 * 60)

    except KeyboardInterrupt:
        print("exiting...")
        await device_client.disconnect()
        led.close()
        if not args.nolcd:
            lcd.clear()
            lcd.setCursor(0, 0)
            lcd.destroy()
 def __init__(self):
     super(Car, self).__init__()
     # 使用前先清理一遍GPIO
     GPIO.cleanup()
     # 设置gpio口的模式
     GPIO.setmode(GPIO.BOARD)
     # 设置gpio口为输出
     GPIO.setup(INT1, GPIO.OUT)
     GPIO.setup(INT2, GPIO.OUT)
     GPIO.setup(INT3, GPIO.OUT)
     GPIO.setup(INT4, GPIO.OUT)
     # 当前运行状态 -1 后退 0 静止 1 前进 2 原地转圈
     self.status = 0
     # 构造距离感应器实例和警报灯实例
     self.frontDetector = DistanceDetector(FTRIG, FECHO, u"Front")
     self.frontLed = Led(FLED)
     self.backDetector = DistanceDetector(BTRIG, BECHO, u"Back")
     self.backLed = Led(BLED)
     # 开启距离检测和警报灯
     self.frontDetector.start()
     self.frontLed.light()
     self.backDetector.start()
     self.backLed.light()
     while True:
         # 每隔 0.1s 检测前后距离
         time.sleep(0.1)
         if self.frontDetector.tooclose and self.backDetector.tooclose:
             self.stop()
             self.frontLed.flashing()
             self.backLed.flashing()
         elif self.frontDetector.tooclose:
             self.stop()
             self.frontLed.flashing()
             self.backLed.light()
         elif self.backDetector.tooclose:
             self.stop()
             self.frontLed.light()
             self.backLed.flashing()
Beispiel #17
0
 def __init__(self, config_path):
     self.logger = logging.getLogger(__name__)
     with open(config_path, "r") as f:
         config = json.load(f)
         f.close()
     self.leds = dict()
     pizw = pigpio.pi()
     for led_group in config.get("leds"):
         self.leds[led_group.get("name")] = Led(led_group.get("name"), pizw,
                                                led_group.get("pins"))
     self.web_config = dict()
     self.web_config["leds"] = list(self.leds.keys())
     self.logger.info("Configuration from {} loaded with {} LED(s)".format(
         config_path, len(self.leds)))
Beispiel #18
0
    def setup(self):
        import WhereforeGUI
        self.ui = WhereforeGUI.Ui_MainWindow()
        self.ui.setupUi(self)

        self.ui.startAtSelector.addItems(
            ["beginning", "end", "offset", "timestamp"])
        self.ui.startAtSelector.setCurrentIndex(1)
        self.ui.endAtSelector.addItems(["never", "end", "offset", "timestamp"])
        self.ui.enableDefaultComboBox.addItems(["Enable new", "Disable new"])
        self.ui.startTimeEdit.hide()
        self.ui.startOffsetEdit.hide()
        self.ui.endOffsetEdit.hide()
        self.ui.endTimeEdit.hide()
        self.ui.startAtSelector.currentIndexChanged.connect(
            self.on_change_start_at)
        self.ui.endAtSelector.currentIndexChanged.connect(
            self.on_change_end_at)
        self.ui.brokerLed = Led(self)
        self.ui.consumerBarLayout.insertWidget(1, self.ui.brokerLed)
        self.ui.brokerAddressEdit.textEdited.connect(self.startTextEditedTimer)
        self.ui.enableAllButton.clicked.connect(self.onEnableAllPartitions)
        self.ui.disableAllButton.clicked.connect(self.onDisableAllPartitions)
        self.ui.topicPartitionSourceTree.setModel(self.topicPartitionModel)
        self.ui.startOffsetEdit.textEdited.connect(
            self.onRestartStartStopTimer)
        self.ui.endOffsetEdit.textEdited.connect(self.onRestartStartStopTimer)
        self.ui.startTimeEdit.editingFinished.connect(
            self.onRestartStartStopTimer)
        self.ui.endTimeEdit.editingFinished.connect(
            self.onRestartStartStopTimer)
        header_view = self.ui.topicPartitionSourceTree.header()
        header_view.setSectionResizeMode(0, QtWidgets.QHeaderView.Stretch)
        header_view.setStretchLastSection(False)
        header_view.resizeSection(1, 50)
        self.ui.topicPartitionSourceTree.setHeader(header_view)

        self.ui.topicPartitionSourceTree.selectionModel(
        ).selectionChanged.connect(self.on_tree_node_selection)

        self.ui.brokerAddressEdit.setText(
            self.config.value("kafka_address", type=str))
        if len(self.ui.brokerAddressEdit.text()) > 0:
            self.onBrokerEditTimer()

        self.ui.enableDefaultComboBox.setCurrentIndex(
            self.config.value("enable_default", type=int, defaultValue=0))
        self.show()
Beispiel #19
0
    def __init__(self):
        self.iot = Startiot()
        self.iot.connect(False)
        self.py = Pysense()
        """
		self.gps = L76GNSS(py, timeout = 30)
		(self.lat, self.lng) = self.gps.coordinates()
		self.counter = 0
		"""
        self.state = STATE_IDLE

        self.rightpir = Pir("P11")
        self.centerpir = Pir("P2")
        self.leftpir = Pir("P9")
        self.led = Led("P10")
        self.i2c = I2C(1, I2C.MASTER, baudrate=100000, pins=("P4", "P8"))
        self.uv_sensor = VEML6070.VEML6070_UV(self.i2c)
        self.baseline = []
        pycom.heartbeat(False)  # disable the blue blinking
Beispiel #20
0
def main():
    # Ginger robot pin out
    # servo_direction = machine.PWM(machine.Pin(12), freq=50)
    # servo_head_x = machine.PWM(machine.Pin(14), freq=50)
    # servo_hand_y = machine.PWM(machine.Pin(13), freq=50)
    # servo_catch = machine.PWM(machine.Pin(15), freq=50)

    ginger = Ginger(motor=DCDrive(name='motor', letter='A'),
                    servo_direction=Servo(name='servo_dir', pin=12),
                    servo_head_x=Servo(name='servo_head_x', pin=14),
                    servo_hand_y=Servo(name='servo_hand_y', pin=13),
                    servo_catch=Servo(name='servo_catch', pin=15),
                    sensor_hall=Hall(pin=4),
                    led=Led(
                        name='led',
                        pin=2,
                    ))

    # print(ginger)
    # print(dir(ginger.motor))
    # print(ginger.motor.echo())
    # print(ginger.motor.echo(71))
    # print(ginger.motor.duty(71))
    # print(ginger.motor.echo('string71'))
    #
    # print(ginger.servo_catch.echo())
    # print(ginger.servo_catch.echo(72))
    # print(ginger.servo_catch.duty(72))
    # print(ginger.servo_catch.echo('string 72'))
    # print(ginger.servo_catch.duty('string 72'))  # duty should be int or float
    # print(ginger.sensor_hall.sensor)
    # print(ginger.led.light)
    print('--test--')

    # for i in range(50):
    while True:
        if ginger.sensor_hall.hall() == 0:
            ginger.led.light = 0
        else:
            ginger.led.light = 1

        print('sensor:{}, light:{}'.format(ginger.sensor_hall.sensor,
                                           ginger.led.light))
Beispiel #21
0
def build_page(layout, page):
    layout.clear_widgets()
    links.clear()  # TODO: will prevent iframe functionality to work
    for id, item in page.iteritems():
        if item['type'] == 'button':
            wgt = Button()
        elif item['type'] == 'label':
            wgt = Label()
        elif item['type'] == 'var-label':
            wgt = VariableLabel()
            wgt.set_var(item['variable'])
        elif item['type'] == 'led':
            wgt = Led()
            wgt.set_var(item['variable'])
        elif item['type'] == 'thermometer':
            wgt = Thermometer()
            wgt.set_var(item['variable'])
        elif item['type'] == 'manometer':
            wgt = Manometer()
            wgt.set_var(item['variable'])
        elif item['type'] == 'edit-grid':
            wgt = EditGrid()
            wgt.set_dimenstion(item['rows'], item['cols'])
        wgt.id = id
        if 'text' in item:
            wgt.text = item['text']
        if 'font-size' in item:
            wgt.font_size = item['font-size']
        if 'pos' in item:
            wgt.pos = eval(item['pos'])
        if 'size' in item:
            wgt.size = eval(item['size'])
        if 'pos_hint' in item:
            wgt.pos_hint = item['pos_hint']
        if 'size_hint' in item:
            wgt.size_hint = eval(item['size_hint'])
        if 'link' in item:
            links[wgt.id] = item['link']
            wgt.bind(on_press=navigate)
        if 'click' in item:
            wgt.bind(on_press=eval(item['click']))
        layout.add_widget(wgt)
Beispiel #22
0
 def __init__(self,master):
     # create GUI
     self.master = master
     self.master.title('JoyStick Test')
     label = tk.Label(root,text='Joystick')
     label.pack()
     self.gui = GuiJs(master=root)
     self.gui.createCordinateLabel()
     self.gui.createCircle(200,200,220,220,'red')
     self.gui.createButton(btn_name='Finish',callback=self.cleanup)
     #JoyStick instanse
     self.js = JoyStick()
     self.val_vert = 0
     self.val_horz = 0
     self.move_vert = 0
     self.move_horz = 0
     #ServMotor
     self.sm= ServMotor(18,180,0)
     # Led instance
     self.Led = Led(17)
     self.Sw = Sw(4,'either',self.callback_Sw)
Beispiel #23
0
    def __init__(self):
        # Create the strip
        self.strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ,
                                       LED_DMA, LED_INVERT, LED_BRIGHTNESS,
                                       LED_CHANNEL)

        # Attach LEDs to the strip
        self.my_leds = list()

        for a_led in range(0, LED_COUNT):
            self.my_leds.append(Led(self.strip, a_led))
        self.strip.begin()

        # Turn off the strip
        for a_led in self.my_leds:
            a_led.update()
        self.strip.show()

        self.my_keys = list()
        # Create keys
        for a_key in globales.keys:
            self.my_keys.append(Key(a_key, self))
Beispiel #24
0
class StreamingServer(socketserver.ThreadingMixIn, server.HTTPServer):
    allow_reuse_address = True
    daemon_threads = True


def switch_to_record_mode_on_reboot(channel):
    bashCommand = "sudo cp rpicam-record-proccess.conf /etc/supervisor/conf.d/rpicam-record-proccess.conf"
    process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIPE)
    output, error = process.communicate()
    bashCommand = "sudo reboot"
    process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIPE)
    output, error = process.communicate()


with picamera.PiCamera(resolution="1280x960", framerate=24) as camera:
    button_pin = 8
    led_pin = 10
    button = Button(button_pin)
    led = Led(led_pin)
    button.add_pressed_cb(switch_to_record_mode_on_reboot)

    output = StreamingOutput()
    camera.start_recording(output, format="mjpeg")
    try:
        address = ("", 8000)
        server = StreamingServer(address, StreamingHandler)
        server.serve_forever()
    finally:
        camera.stop_recording()
Beispiel #25
0
print('Init Electrical Lock with ESP32/ESP8622...')

# init rtc
rtc = machine.RTC()

# init mfrc reader
if uname()[0] == 'esp8266':
    rdr = mfrc522.MFRC522(0, 2, 4, 5, 14)
elif uname()[0] == 'esp32':
    rdr = mfrc522.MFRC522(18, 23, 19, 4, 2)
else:
    raise RuntimeError("Unsupported platform")

# init led, button etc
led = Led(LED_PIN, debug=IS_DEBUG)
btn = BtnSwitch(BTN_PIN, debug=IS_DEBUG)
delay = Led(DELAY_PIN, name='DELAY', debug=IS_DEBUG)
beeper = Led(BEEPER, name='BEEPER', debug=IS_DEBUG)

# init Key DB
key_db = KeyDB()

# init wlan
init_wlan()

lock = _thread.allocate_lock()

# create udp server thread
_thread.start_new_thread(udp_ser, (ip, port))
Beispiel #26
0
import sys
sys.path.append('../src')

from led import Led
import json
import time

myled = Led(21)
fname = './web/led.json'

try:
    while True:
        try:
            f = open(fname, 'r')
            json_dict = json.load(f)
            if json_dict['status'] == 'on':
                myled.on()
            else:
                myled.off()
        except ValueError:
            print('ValueError')
        time.sleep(0.2)
except KeyboardInterrupt:
    pass
Beispiel #27
0
    def __init__(self, red: float, green: float, blue: float) -> None:
        super().__init__()

        self.target = Led(red, green, blue)
from led import Led
from t9_keypad import Keypad
from keyboard import Keyboard
from keyboard import Keycode
from t9_display import Display

NO_WORD = 0
PARTIAL_WORD = 1
WORD = 2

CACHE_SIZE = 8000
# Used to store Trie node locations
file_cache = [-1 for i in range(CACHE_SIZE)] 

# Lights used to display which mode the macropad is in
leds = Led()

## Global buffers
# Key presses to be process
key_queue = []
# Keys currently being pressed
held_keys = []
# Text to be written out by the virtual keyboard
current_word = ""
# Text that was last written out by virtual keyboard
written_word = ""

keys = (('1', '2', '3'),
        ('4', '5', '6'),
        ('7', '8', '9'), 
        ('*', '0', '#'))
Beispiel #29
0
import sys
sys.path.append('../src')

from led import Led
from mcp3208 import Mcp3208
from time import sleep

myled = (Led(21), Led(20), Led(16))

mymcp = Mcp3208(11, 10, 9, 8)

for i in range(3):
    myled[i].pwm_on(50)

try:
    while True:
        inputVal0 = mymcp.readadc(0)
        #base_duty = (inputVal0 - 1000)/((3000 - 1000)/100)
        base_duty = inputVal0 * 100 / 4095
        duty = [0, 0, 0]
        if base_duty > 0:
            duty[1] = base_duty
            duty[2] = 100 - base_duty
            duty[0] = base_duty * 2 if base_duty < 50 else 100 - (
                (base_duty - 50) * 2)
        print "%i, %i" % (inputVal0, base_duty)

        for i in range(3):
            myled[i].pwm_change_duty(duty[i])
        sleep(0.05)
except KeyboardInterrupt:
Beispiel #30
0
from typing import List
from random import randint

from led import Led
from transitions import FadeArray

CHRISTMAS_COLORS = [
    Led(0.7019607843137254, 0, 0.047058823529411764),
    Led(0, 0.7019607843137254, 0.17254901960784313),
    Led(1.0, 0.8431372549019608, 0),
]


class Christmas(FadeArray):
    def __init__(self, rate=0.05):
        super().__init__(rate=rate)

    def step(self, previous: List[Led]) -> List[Led]:
        if self.targets is None:
            self.targets = previous

        if self.converged(previous):
            self.targets = [CHRISTMAS_COLORS[randint(0, 2)] for _ in previous]

        return super().step(previous)

    def converged(self, previous) -> bool:
        for target_led, previous_led in zip(self.targets, previous):
            if not target_led.similar(previous_led, only_color=True):
                return False
        return True