domenica 25 luglio 2021
lunedì 14 giugno 2021
Lock Picking
Avevo acquistato questo lucchetto e lo avevo messo alla bici...dopo qualche giorno ho perso le chiavi. Adesso devo vendere la bici e volevo toglierlo ... ma sono pigro per usare un seghetto
Francamente non pensavo cosi' facile
giovedì 10 giugno 2021
Eclisse solare 10 giugno 2021 Firenze ore 12:03
Immagine da telefono su oculare dell'eclisse solare del 10 giugno 2021 da Firenze
Il filtro solare devo ammettere che funziona bene...peccato non essere riusciti a montare la camera astronomica sull'oculare
questa e' versione virtuale di Stellarium
giovedì 20 maggio 2021
venerdì 14 maggio 2021
Esp32 Page Tuner Elgato Clone
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
======================================================
#define interval 1000
BleKeyboard bleKeyboard;
int threshold = 40;
bool touch4detected = false;
bool touch5detected = false;
long previousMills = 0;
void gotTouch5(){
if (millis()-previousMills > interval)
{
touch5detected = true;
previousMills = millis();
}
}
void gotTouch4(){
if (millis()-previousMills > interval)
{
touch4detected = true;
previousMills = millis();
}
}
void setup() {
bleKeyboard.begin();
delay(1000);
while (!bleKeyboard.isConnected()) {
Serial.println("in attesa");
}
Serial.begin(115200);
delay(1000);
touchAttachInterrupt(T4, gotTouch4, threshold);
touchAttachInterrupt(T5, gotTouch5, threshold);
}
void loop(){
if(touch4detected){
touch4detected = false;
Serial.println("Play");
bleKeyboard.print(" ");
}
if(touch5detected){
touch5detected = false;
Serial.println("Rewind");
bleKeyboard.write(KEY_LEFT_ARROW );
}
}
venerdì 7 maggio 2021
Elgato controller clone
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
================================================================
import rtmidi
import threading
import os
def print_message(midi, port):
if midi.isNoteOn():
#print '%s: ON: ' % port, midi.getMidiNoteName(midi.getNoteNumber()), midi.getVelocity()
print midi.getNoteNumber()
if (midi.getNoteNumber() == 60):
print "Play/Stop"
os.system("xdotool search --onlyvisible --class 'Audacity' windowfocus key 'space'")
if (midi.getNoteNumber() == 61):
print "Play/Stop Cursor"
os.system("xdotool search --onlyvisible --class 'Audacity' windowfocus key 'x'")
if (midi.getNoteNumber() == 62):
print "Track start"
os.system("xdotool search --onlyvisible --class 'Audacity' windowfocus key 'J'")
if (midi.getNoteNumber() == 64):
print "Record"
os.system("xdotool search --onlyvisible --class 'Audacity' windowfocus key 'shift+R'")
if (midi.getNoteNumber() == 65):
print "Pause"
os.system("xdotool search --onlyvisible --class 'Audacity' windowfocus key 'p'")
class Collector(threading.Thread):
def __init__(self, device, port):
threading.Thread.__init__(self)
self.setDaemon(True)
self.port = port
self.portName = device.getPortName(port)
self.device = device
self.quit = False
def run(self):
self.device.openPort(self.port)
self.device.ignoreTypes(True, False, True)
while True:
if self.quit:
return
msg = self.device.getMessage()
if msg:
print_message(msg, self.portName)
dev = rtmidi.RtMidiIn()
collectors = []
for i in range(dev.getPortCount()):
device = rtmidi.RtMidiIn()
print 'OPENING',dev.getPortName(i)
collector = Collector(device, i)
collector.start()
collectors.append(collector)
print 'HIT ENTER TO EXIT'
sys.stdin.read(1)
for c in collectors:
c.quit = True
Debugger integrato ESP32S3
Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede nell'ID USB della porta Jtag. Nel modulo...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...