Étape 4: Arduino Code
Vous avez besoin du code pour exécuter ScareOS. Le code contrôle les composants et gère l’éveil/sommeil, déclencher des sons et en affichant les yeux sur la matrice de LED. Vous trouverez le code complet à https://github.com/mp911de/scare-os-halloween-iot
Le code se trouve dans la peur-os/peur-os.ino. Vous avez besoin de deux bibliothèques supplémentaires :
Le site Adafruit a un beau tutoriel Comment installer les bibliothèques de l’Arduino. Donc, ouvrez l’esquisse, compilez-le et transférez-le sur votre Arduino. Vous pouvez adopter le code pour utiliser différentes broches ou d’ajuster la distance/durée :
Threading avec Arduino
Arduino code s’exécute uniquement en mono-thread, ce qui signifie que votre Arduino peut faire qu’une seule chose à la fois. Le module de déclenchement sonore, par exemple, n’occupe pas l’Arduino lorsqu’un son est lu. Il sons jouent dans l’arrière-plan dans cette terminologie.
Pourquoi je vous apprends que ?
Affichage et l’animation graphique, comme c’est fait avec les yeux de la matrice, exigent l’Arduino exécuter du code, dormir un certain temps, puis d’exécuter du code à nouveau et ainsi de suite. Un cycle d’animation dure entre 0,5 s et 10 s. Pendant ce temps, l’Arduino s’occupe de l’animation. Si quelqu'un passe par le capteur de gamme très vite, nous ne remarqueraient pas, parce que nous sommes occupés à animer et non à mesurer la distance.
Mais ce n’est pas entièrement vrai. La plupart du temps, l’Arduino « dort » ce qui signifie que nous pourrions utiliser ce temps pour faire des choses différentes - des choses comme un son de déclenchement ou de mesure de la distance. Le code est écrit pour utiliser ces retards. Vous trouverez beaucoup d’appels à une méthode bgProcessing(). Cette méthode est appelée avec un paramètre de délai. Si le délai est assez long pour mesurer la distance (mesure de que la distance a besoin de temps et déclenchant son, trop), la distance est mesurée et le traitement du son est appelé là. Ce n’est pas exactement un planificateur de tâches comme un Windows ou MacOS permet d’émuler le multi-threading sur un seul processeur (core), mais il entrelace des tâches d’une manière similaire.
Quelques mots sur la distance de mesure
Le capteur allant utilise la physique de la Vitesse du son pour déterminer la distance. Un son ultrasonique est déclenché et le micro enregistre l’écho. La vitesse du son dans l’air sec est à environ un kilomètre en 2,914 sec. Étant donné que le son doit frapper un objet qu’il rebondit, la voie est traversée deux fois. Cela signifie que la durée pour mesurer la distance est
Parfois, le capteur allant rapporte un écho après une douche ou un temps plus long. Le résultat de ce scintillent distances jusqu'à 100 cm. Ce sont des valeurs aberrantes et falsifient le résultat (l’hypothèse de la distance). Le code, par conséquent, effectue une série de mesures, trie les résultats et prend un résultat intermédiaire. Il fonctionne assez bien et la mise en œuvre est assez simple (plus facile que de calculer un quantile).