Controlla un'app OSX di Arduino

1

Sto provando a controllare un'app su OSX con Arduino Uno. In particolare, vorrei iniziare e interrompere la riproduzione di un MP3 su iTunes o di una traccia su Spotify, utilizzando un Arduino collegato al computer Apple con USB.

Posso stampare su seriale da Arduino. Posso usare Screen in Terminal per accedere alle informazioni seriali da Arduino. Posso avviare e interrompere la riproduzione di brani su iTunes e Spotify utilizzando Applescript. Ho bisogno di un modo per far sì che le parole chiave nella schermata si avviino e si fermino in iTunes o Spotify. Ho cercato questo in vari modi, ma non riesco a trovare altro che suggerimenti per scrivere uno script per interfacciare tra Screen e Applescripts. Questo è dove sono bloccato.

Qualsiasi suggerimento sarebbe molto apprezzato.

    
posta Fed 07.08.2016 - 14:08
fonte

3 risposte

0

Ora ho l'output della schermata su log.txt, e il seguente applescript funziona alla grande!

imposta il trigger su 1

imposta stopString su ""

ripeti fino a (stopString="stop")

imposta testTxt su paragrafi di (leggi il file POSIX "/Users/fed/log.txt") imposta countTxt su (numero di testTxt) - 1 imposta lastLine all'elemento countTxt di testTxt
se lastLine contiene "Start MP3" e il trigger è 1 allora     dire all'applicazione "Spotify" per la riproduzione     imposta il trigger su 0 fine se

se lastLine non contiene "Start MP3" allora     imposta il trigger su 1 fine se

se lastLine contiene "Stop Loop" allora     imposta stopString su "stop" finisci se fine ripetizione

    
risposta data 12.08.2016 - 13:56
fonte
0

Probabilmente è troppo ampio per fornire una risposta pratica, ma ecco una descrizione di come è necessario ragionare sull'automazione di OS X.

Prova a scegliere un'app creata per l'automazione: link

Se riesci a sfruttare questa interfaccia, sarai molto più vicino a una soluzione. In caso contrario, ci sono altri tre metodi generali per controllare OS X:

  • Script da riga di comando - quindi è necessario avere arduino ssh in Mac OS come dispositivo legittimo in rete proprio come si può ssh su OS X da ubuntu, Windows, iOS o qualsiasi altro sistema operativo. Una volta che arduino è in grado di aprire una connessione di rete con OS X, puoi utilizzare AppleScript, JavaScript, bash, swift e molte altre lingue per inviare messaggi a iTunes o ad altre app scriptable.
  • Interfaccia USB - Apple progetta il sistema operativo per essere accessibile a interruttori a pedale, lettori di schermo, controllo del respiro, joystick. Se sei abbastanza esperto da programmare il tuo arduino per emulare un dispositivo di assistenza allora puoi andare al pannello delle preferenze di sistema Accessibilità e quindi consentire al tuo arduino di controllare il mouse, la tastiera, ecc ...
  • controllo vocale. Le modifiche macOS ti consentirebbero di iniziare a lavorare sul tuo arduino per sintetizzare una voce e quindi collegare il sintetizzatore vocale all'ingresso audio (o semplicemente usare un microfono) per parlare al sistema operativo. link

Ancora una volta - questi potrebbero essere un grande progetto per chiunque non abbia background, quindi vorrai concentrarti sull'automazione prima dell'automazione di OS X. Una volta che puoi riprodurre / mettere in pausa le cose da OS X a OS X - allora puoi vedere se riesci a replicare queste cose da Arduino.

Se volevi che l'arduino inviasse comandi seriali a un programma sul Mac, dovresti prima imparare a programmare come elaborare l'input seriale e quindi dovresti imparare come avere uno script di programma uno di i metodi di cui sopra. Di nuovo: dovrai concentrarti su piccoli passi realizzabili e poi costruirli per creare un sistema.

    
risposta data 07.08.2016 - 18:55
fonte
0

L'ho capito. In Terminale, usa la schermata: screen /dev/cu.usbmodem621 9600

Quindi, in Applescript, esegui il seguente ciclo:

imposta il trigger su 1

ripetizione

tell application "Terminal"
    if the contents of front window contains "button 1" and trigger is 1 then
        tell application "Spotify" to playpause
        set trigger to 0
    end if

    if the contents of front window does not contain "button 1" then
        set trigger to 1
    end if

end tell

Fine ripetizione

    
risposta data 11.08.2016 - 13:27
fonte

Leggi altre domande sui tag