1 votes

Contrôler une application OSX par Arduino

J'essaie de contrôler une application sous OSX avec un Arduino Uno. Plus précisément, je voudrais démarrer et arrêter la lecture d'un MP3 sur iTunes, ou d'un morceau sur Spotify, en utilisant un Arduino connecté à l'ordinateur Apple par USB.

Je peux imprimer en série depuis l'Arduino. Je peux utiliser Screen dans le terminal pour accéder aux informations série de l'Arduino. Je peux démarrer et arrêter la lecture de pistes sur iTunes et Spotify en utilisant Applescript. J'ai besoin d'un moyen d'avoir des mots-clés dans Screen pour déclencher le démarrage et l'arrêt dans iTunes ou Spotify. J'ai cherché cela de différentes manières, mais je ne trouve rien d'autre que des suggestions pour écrire un script pour faire l'interface entre Screen et Applescripts. C'est là que je suis bloqué.

Toute suggestion serait grandement appréciée.

0 votes

Bienvenue à Ask Different. Cette question, telle qu'elle est rédigée, est beaucoup trop vaste. Essayez de la réduire en fournissant quelques informations de base sur ce que vous avez déjà essayé, ce que vous avez recherché, etc.

0voto

Oskar Points 1242

Cette question est probablement beaucoup trop vaste pour fournir une réponse pratique, mais voici un aperçu de la manière dont vous devrez raisonner pour automatiser OS X.

Essayez de choisir une application conçue pour l'automatisation : https://www.macosxautomation.com

Si vous pouvez tirer parti de cette interface, vous serez beaucoup plus près d'une solution. Sinon, il existe trois méthodes plus générales pour contrôler OS X :

  • les scripts en ligne de commande - vous devez donc faire en sorte que l'arduino se connecte au système d'exploitation Mac en tant que périphérique réseau légitime, tout comme vous pouvez vous connecter à OS X depuis ubuntu, Windows, iOS ou tout autre système d'exploitation. Une fois que votre arduino peut ouvrir une connexion réseau à OS X, vous pouvez utiliser AppleScript, JavaScript, bash, swift et bien d'autres langages pour envoyer des messages à iTunes ou à d'autres applications scriptables.
  • Interface USB - Apple conçoit le système d'exploitation pour qu'il soit accessible aux pédales de commande, aux lecteurs d'écran, au contrôle de la respiration, aux joysticks. Si vous étiez assez avisé pour programmer votre arduino afin d'émuler un dispositif d'assistance, vous pourriez alors aller dans le panneau de préférences du système d'accessibilité et permettre à votre arduino de contrôler la souris, le clavier, etc...
  • contrôle vocal. Les modifications apportées à MacOS vous permettraient de commencer à travailler sur votre arduino pour synthétiser une voix, puis de connecter le synthétiseur vocal à votre entrée sonore (ou d'utiliser simplement un microphone) pour parler au système d'exploitation. http://www.practicalarduino.com/projects/speech-synthesizer

Encore une fois, il s'agit d'un projet de grande envergure pour une personne qui n'a pas d'expérience en la matière. Vous voudrez donc vous concentrer sur l'automatisation de votre système OS X en premier lieu. Une fois que vous pouvez jouer/pause des choses sur OS X vers OS X - alors vous pouvez voir si vous pouvez reproduire ces choses à partir d'arduino.

Si vous voulez que l'arduino envoie des commandes série à un programme sur le Mac - vous devrez d'abord apprendre à programmer comment traiter l'entrée série et ensuite vous devrez apprendre comment faire en sorte que ce programme script une des méthodes ci-dessus. Encore une fois - vous devrez vous concentrer sur de petites étapes réalisables et ensuite construire sur elles pour faire un système.

0 votes

L'automatisation peut-elle donc être déclenchée par la réception par Screen d'un certain texte en série ?

0 votes

Bien sûr. expect ou enregistrer le texte de l'écran dans un fichier, puis analyser ce fichier. Il y a de nombreuses façons d'écorcher ce chat, @fed.

0 votes

Je sais comment utiliser applescript, et automator ne semble pas avoir de bibliothèque pour Spotify. Alors, y a-t-il un moyen pour AppleScript d'écouter Screen, et d'agir une fois qu'un mot-clé est dans Screen ?

0voto

Fed Points 165

Je l'ai eu. Dans le Terminal, utilise l'écran : screen /dev/cu.usbmodem621 9600

Ensuite, dans Applescript, exécutez la boucle suivante :

régler le déclencheur sur 1

répéter

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

répétition de fin

0 votes

En fait, il semble que ce système se bloque après un certain temps. J'ai posé la question ailleurs, mais si quelqu'un peut m'aider, n'hésitez pas. Merci et désolé d'avoir posté deux fois.

0voto

Fed Points 165

J'ai maintenant une sortie Screen vers log.txt, et l'applescript suivant fonctionne parfaitement !

régler le déclencheur sur 1

définir stopString comme ""

répéter jusqu'à ce que (stopString = "stop")

définir testTxt aux paragraphes de (lire le fichier POSIX "/Users/fed/log.txt") définit countTxt comme (count of testTxt) - 1 set lastLine to item countTxt of testTxt
si lastLine contient "Start MP3" et que trigger est 1 alors Dites à l'application "Spotify" de faire une pause. met le déclencheur à 0 fin de la séquence

si lastLine ne contient pas "Start MP3" alors met le déclencheur à 1 fin si

si lastLine contient "Stop Loop" alors donne la valeur "stopString" à "stop". end if fin de la répétition

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X