Peter Sagan maglia ciclamino |
Bernal maglia rosa |
Visto il precedente post volevo fare qualcosa di ancora piu' semplice e meno costoso
Ho provato ad usare come controller una ESP32...la prima idea era quella di usare la libreria BleKeyboard con dei tasti fisici per i controlli ma alla fine avevo bisogno di un po' di saldature...volevo qualcosa di ancora piu' semplice...ho quindi usato i pin touch della Esp32 che necessitano solo del contatto di un dito per essere usati come interrutori
Nell'esempio i pin Touch4 e Touch5 sono associati al tasto spazio e Freccia a sinistra per abilitare la funzione Play e Rewind su Youtube e VLC
======================================================
Per automatizzare Audacity mentre cerco di registrare la chitarra stavo pensando di costruirmi con Arduino una consolle di controllo tipo quello di Elgato quando mi e' venuta in mente una soluzione piu' semplice: utilizzare un controller midi per interagire con Audacity tramite xdotool , un software che simula l'interazione utente con una applicazione X e tramite la libreria Python https://pypi.org/project/python-rtmidi/
In estrema sintesi da rtmidi si riceve un codice del tasto midi premuto sul controller e con xdotool si invia la corrispondente sequenza di caratteri per generare un evento di Audacity
================================================================
uno script scritto di fretta per risolvere un problema di debug sulla trasmissione via radio di un file ubx
magari puo' servire a qualcun altro
=================================================
def crc_check(valore):
global ck_a
global ck_b
ck_a = (ck_a+valore) % 256
ck_b = (ck_b+ck_a) % 256
#print "CK_A : " + str(hex(ck_a)) + " CK_B : " + str(hex(ck_b))
#file = open('acm0_remoto.ubx', 'r')
#file = open('usb0.ubx', 'r')
file = open('arcetri_ucenter.ubx', 'r')
#file = open('orto.ubx', 'r')
off=0
fine=0
ck_a = 0
ck_b = 0
good = 0
bad = 0
pacchetto = -1
while 1:
char = file.read(1)
off=off+1
pacchetto = ""
if ord(char) == 181: #B5
pacchetto = pacchetto + char
if (off == (fine+1)):
print "OK"
inizio = off -1
ck_a = 0
ck_b = 0
char = file.read(1)
off=off+1
#pacchetto = pacchetto + char
if ord(char) == 98: #62
#
if (inizio == fine + 1):
print "////////////////////// OK ////////////////"
print "/////////////////// " + hex(lungh) +" ////////////////"
#good = good + 1
else:
print "******************** ERRORE **************"
print "*****************DIFF " + hex(inizio-fine) + "*********"
#somma_diff = somma_diff + (inizio-fine)
#bad = bad+1
print "================================================="
print "======GOOD :" + str(good) + "==========BAD :"+ str(bad) + "==========================="
print "================================================="
pacchetto = pacchetto + char
print "Offset inizio: " + hex(inizio)
char = file.read(1)
pacchetto = pacchetto + char
off=off+1
print "Message Class: " + hex(ord(char)),
if (ord(char) == 1):
print " NAV ",
if (ord(char) == 2):
print " RXM ",
if (ord(char) == 4):
print " INF ",
if (ord(char) == 5):
print " ACK ",
if (ord(char) == 6):
print " CFG ",
if (ord(char) == 10):
print " MON ",
if (ord(char) == 11):
print " AID ",
if (ord(char) == 13):
print " TIM ",
classe = ord(char)
crc_check(ord(char))
char = file.read(1)
pacchetto = pacchetto + char
off=off+1
print " Message ID: " + hex(ord(char)),
crc_check(ord(char))
if (classe == 2):
if (ord(char)) == 0x10:
print " RAW "
if (ord(char)) == 0x11:
print " SFRB "
if (ord(char)) == 0x12:
print " SFRBX "
if (ord(char)) == 0x13:
print " RAWX "
char = file.read(1)
pacchetto = pacchetto + char
off=off+1
print "Payload Length High: " + hex(ord(char))# + " " + str(ord(char))
lungh = ord(char)
crc_check(ord(char))
char = file.read(1)
pacchetto = pacchetto + char
off=off+1
print "Payload Length Low: " + hex(ord(char))# + " " + str(ord(char))
lungh = (256*ord(char)) + lungh
print "Lunghezza :" + str(hex(lungh))#+ " " + str(lungh)
crc_check(ord(char))
for t in range(lungh):
char = file.read(1)
print hex(ord(char)),
pacchetto = pacchetto + char
off=off+1
crc_check(ord(char))
char = file.read(1)
pacchetto = pacchetto + char
off=off+1
crc_1 = ord(char)
char = file.read(1)
pacchetto = pacchetto + char
off=off+1
print "CRC 1: " + hex(crc_1) +" CRC 2: " + hex(ord(char))
crc_2 = ord(char)
print "CK_A :" + hex(ck_a) + " CK_B : " + hex(ck_b)
if ((ck_a == crc_1) and (ck_b == crc_2)):
print "CRC OK"
good = good + 1
corretto = open('corretto.ubx', 'a')
corretto.write(pacchetto)
corretto.close()
else:
print "Errore CRC"
bad = bad + 1
fine = off-1
print "Fine :" + hex(fine)
try:
input()
except SyntaxError:
pass
Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede nell'ID USB della porta Jtag. Nel modulo...