Mroźna majówka
Zamieszany | mroz |
---|---|
Rozpoczęto | 2018-04-30 |
Status | |
Tagi |
Majówka to piękny czas, żeby wreszcie coś zrobić, a dokładniej 7 takich cusiów - jeden na każdy dzień majówki.
Worklog
Projekt 1 - pokazówka na warsztaty z micro:bit
W najbliższym czasie, będę prowadzić warsztaty z programowania w micropython na micro:bitach w mojej firmie (adva), aby nie przyjść z pustymi rękoma, postanowiłem przygotować projekt - pokazówkę. Jako że firma produkuje sprzęt sieciowy, zaś ja osobiście siedzę w dziale automatyzacji, postanowiłem przygotować przykładowy układ/test jig oparty na micro:bit prezentujący możliwości wykorzystania tej technologi to tworzenia szybkich prototypów układów testujących produkowane urządzenia.
Wymagania:
- kontrola przez interfejs CLI
- układ ma być w stanie fizycznie podłączyć i odłączyć przewód LAN
- układ ma być w stanie podłączyć oraz odłączyć urządzenie do/z zasilania
- układ ma być w stanie fizycznie podłączyć oraz odłączyć wtyczkę SFP do testowanego urządzenia.
Wyniki:
Udało się uzyskać wszystkie wymagania oprócz ostatniego - podłączania/odłączania wtyczki SFP - zabrakło na to czasu. Do projektu wykorzystano: kawałek deski, kilka śrub, kątowniki stolarskie, taśma montażowa, micro:bit, moduł 2x przkaźnik, serwo, konwerter buck-boost, płytkę prototypową, adapter micro:bit - płytka prototypowa, kabelki.
Kod
from microbit import * class Actions(object): def connect_lan(self): """Connect the lan plug int the DUT""" pin16.write_analog(130) sleep(10c00) pin16.write_digital(0) def disconnect_lan(self): """Disconnect the lan plug from the DUT""" pin16.write_analog(60) sleep(1000) pin16.write_digital(0) def plug_power(self): """Power on the DUT by enabling power""" pin12.write_digital(1) def unplug_power(self): """Disconnect power from the DUT""" pin12.write_digital(0) def _wrong_action(self): uart.write("\nthere is no such action. try again\n") def help(self): """Display list of avalaible commands""" uart.write(""" connect_lan - Connect the lan plug int the DUT disconnect_lan - Disconnect the lan plug from the DUT plug_power - Power on the DUT by enabling power unplug_power - Disconnect power from the DUT help - show this help """) def read_command(): command = '' while True: while not uart.any(): sleep(1) byte = uart.read(1) uart.write(byte) if ord(byte) == 13: break command += chr(ord(byte)) return command actions = Actions() uart.write("Hello, enter 'help' for commands list\n") while True: command = read_command() uart.write("\n\ncommand: {}\n\n".format(command)) getattr(actions, command, actions._wrong_action)()