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)()
