J’utilise pyFirmata pour alimenter mon projet PiPodCorder qui utilise un RaspberryPi et un Arduino pour lire une charge de capteurs et les afficher sur un écran LCD. Cependant, j’ai remarqué qu’il existe quelques alternatives. Je vais essayer de faire une petite évaluation sur papier des trois que j’ai trouvés jusqu’à présent.
Attention: cela peut être un peu décousu.
Tout d’abord, il y a pyFirmata qui repose sur l’esquisse StandardFirmata (ou autre esquisse) téléchargée sur l’Arduino. pyFirmata est assez facile à utiliser car il s’agit d’une bibliothèque Python sur le Pi. Il a également l’avantage d’être un croquis standard publié avec l’IDE Arduino. Le seul problème que je trouve avec le croquis Firmata sur l’Arduino est qu’il effectue des conversions étranges entre les lectures numériques et analogiques. Prenez une lecture du capteur. Si je comprends bien, normalement sur l’Arduino, une lecture est prise de 0 à 1023. Cependant, Firmata convertit ensuite cela en un chiffre de 0 à 1. Ce qui signifie que vous devez ensuite le reconvertir sur le Pi si vous voulez la lecture originale. Évidemment, 0-1 vous donne une lecture en pourcentage pratique, mais je préfère de loin faire cette conversion moi-même sur le Pi.
Deuxièmement, il y a nanpy. je couvert précédemment mais ne l’ont pas encore utilisé. Il y a un côté firmware et un côté client pour le Pi, mais il n’est pas encore complètement développé et on ne sait pas très bien ce qu’il offre en dehors des bases. Bien sûr, les «bases» sont ce que j’utiliserai, alors je vais essayer!
Et maintenant, il y a PiSerial. PiSerial est intéressant car ce n’est pas une bibliothèque à part entière. Il n’y a pas côté client pour le moment (bien que l’auteur travaille sur une implémentation Python) et c’est essentiellement un analyseur qui se trouve sur l’Arduino en attente de commandes sur la ligne série. Maintenant, je ne suis pas sûr de son efficacité. L’auteur de PiSerial dit que Firmata communique en utilisant binaire, alors que PiSerial est (comme son nom l’indique) strictement basé sur du texte sur la ligne série. Je ne suis pas sûr que ce soit un gros problème en termes de performances. La bibliothèque pyFirmata doit communiquer en série, car il n’y a pas d’autre moyen de communiquer entre le Pi et l’Arduino, c’est juste le format des commandes qui diffère, j’aurais pensé. En fait, en y réfléchissant, si Firmata Est-ce que utilisez binaire, il doit y avoir une bonne quantité d’emballage et de déballage des commandes des deux côtés … ce qui doit sûrement introduire des frais généraux. En tous cas, Je n’ai pas encore les outils et la capacité de tester cette surcharge, alors j’espère que Code and Life le fera à temps.
La différence la plus importante entre Firmata et PiSerial, cependant, est que vous contrôlez le code sur l’Arduino. C’est vrai: le PiSerial est simplement un framework sur lequel vous accrochez votre propre analyseur de commandes. Je ne veux pas reproduire tout le texte de Code and Life ici, alors je vous suggère lisez-le vous-même pour savoir comment la communication est réalisée.
En résumé, Firmata est une vraie bête pour ce que je veux qu’il fasse pour le projet PiPodCorder. Essentiellement, tout ce que je veux faire est de faire des lectures de capteur et je ne suis pas sûr que ce soit la meilleure solution pour cela, ce que cela fait avec la conversion 0-1023. Donc, je pense que je vais essayer de convertir mon code PiPodCorder Python pour utiliser nanpy puis, lorsque le côté client est écrit sur PiSerial, essayez cela également. J’espère que cela me donnera un aperçu de celui qui correspond le mieux à mes besoins et de celui qui est le plus éducatif / intéressant à utiliser.
