Étape 8: logiciel
Le servo est contrôlé par un logiciel de 50Hz PWM. Servos provenant de fabricants différents ont des valeurs min/max légèrement différentes PWM pulse width. Il est important que ceux-ci sont réglés en conséquence. Dans le cas contraire le servo peut obtenir endommagé si elle est entraînée à plusieurs reprises au cours de ses limites.
Le piezo nécessite une fréquence dans la gamme kHz. Le matériel AVRs PWM est utilisé pour le conduire.
Un des canaux ADC est utilisé pour lire la sortie de l’amplificateur de microphone. Lorsqu’un certain seuil est atteint, le mouvement de la tête se déclenche. Microphones différents ont une incidence sur la sortie de l’amplificateur. Le seuil de déclenchement est réglable dans le logiciel. Mien est réglé pour qu’il ne tient pas compte des conversations normales, mais EEG déclenchée lorsque les choses s’énerver. C’est aussi un éternuement bon détecteur. :-)
L’ADC est lu depuis une interruption de l’ADC. Si ce gestionnaire d’interruption intervient alors que les PWM timer interrupt incendies, elle peut introduire une gigue légère pour le PWM. Cette gigue peut causer le servo à bouger un peu, qui produit suffisamment de bruit au déclenchement détecteur sonore. Il y a deux solutions possibles à ce problème. On serait de ne pas utiliser une interruption pour le ADC et lisez-le dans une boucle d’attente à la place. Cela peut être un peu délicate et laid. Au lieu de cela la solution actuelle consiste à simplement désactiver les impulsions PWM de servo tandis que la tête ne bouge pas. Ce sera son tour du moteur, économiser de l’énergie et la gigue PWM ne posera pas de problème. En général la détection sonore n’est active alors que l’androïde est calme, comme n’importe quel code Morse émet un signal sonore ou mouvement de la tête il déclencherait également.
Un des huit messages code Morse se joue au hasard. Wikipedia a un très bon article de Code Morse . L’alphabet du Code Morse est codé dans un tableau qui convertit les signaux correspondants de Morse en utilisant un codage de deux bits ASCII caractères. Les messages de Code Morse réelles peuvent à cet effet être stockés dans facile à lire et l’espace efficaces chaînes ASCII.
Le code source peut être compilé et programmé dans l’esprit MCU AVR Studio libre IDE. Il y a des alternatives open source aussi bien.