User manual

18 15
Transfère deux bytes de données, qui seront transmis dans une variable 16 bits sur le
bus SPI, en même temps que le high byte.
Transfère jusqu’à 255 bytes sur un bus SPI d’un grand circuit prétraité. Le nombre de
bytes à transférer de ce circuit « buffer » est à mentionner avec le paramètre « length ».
Lit un byte de donnée du bus SPI.
Lit deux bytes du bus SPI et les restitue en tant que variable 16 bits. Le byte lu en priorité
est le High Byte.
Lit jusqu’à 255 bytes d’un bus SPI d’un grand circuit prétraité.
Vous n’avez normalement pas besoin des fonctions SPI. Celles-ci seront toutefois
utilisées dans les prochaines fonctions que nous allons crire, afin d’avoir accès à
l’EEPROM connecté sur le bus SPI.
Lit un byte unique à l’adresse « memAddr » depuis l’EEPROM. L’adresse peut se trouver
dans le domaine de 0 à 32767 de notre grand EEPROM 32 Ko.
Exemple :
Lit jusqu’à 255 bytes (length) débutant à l’adresse « startAdr » dans un réseau prédéfini
(buffer).
Sauvegarde un byte (donnée) à une adresse précise (memAddr) de l’EEPROM.
sauvegarde jusquà 64 bytes (lenght) dans le réseau « buffer » commençant par
« startAddr » de l’EEPROM.
Veuillez respecter la limite de 64 bytes maximums inscriptibles en une seule
fois. 64 bytes correspondent à la taille de la page (Page size) de l’EEPROM et
rien de plus ne peut être mis en mémoire tampon avant que les données ne
soient écrites. De plus, les données qui doivent être gravées les unes après les
autres doivent tenir dans une page, c’est-à-dire entre 0 et 63, 64 et 127, 128 et
191… ! En cas de dépassement de la taille de la page, l’EEPROM réécrit les
données depuis le début de la page. Bien évidemment, vous avez la possibilité
de commencer à écrire par exemple à partir de l’adresse 50, mais si vous
souhaitez graver plus de 14 Bytes, le compteur d’adresse recommencera à
zéro et gravera par-dessus les données existantes dans la mémoire tampon.
À la lecture des données de l’EEPROM, il n’est pas nécessaire de veiller à la
taille de la page et vous pouvez, en théorie, lire le contenu entier de l’EEPROM
en une seule fois.
Dans le cas présent, la valeur de touche n’est restituée uniquement lorsque la touche
a été pressée puis relâchée. Cette fonction aussi ne bloque pas le flux de programme
– vous n’aurez pas à attendre une boucle pour que la touche soit relâchée.
3.4. Bipeur
Le signaleur du RP6-M32 peut être contrôlé grâce à cette fonction :
Cette une fonction non bloquante Elle donne la hauteur et le laps de temps pour un
son généré et ensuite abandonné. Le bipeur se coupe automatiquement après un laps
de temps donné. Chaque appel supplémentaire de cette fonction écrase les glages.
Pour jouer des mélodies ou des tonalités, utilisez le macro suivant :
Les hauteurs de sons, les laps de temps et les pauses après le son peuvent être ici
configurés. Le macro utilise mSleep pour générer les pauses ainsi cela dure time +
delay millisecondes jusqu’à ce que le programme continue.
Si vous ne souhaitez pas régler de pause ou de durée de sons, vous pouvez régler
uniquement la hauteur de sons avec ceci :
Très pratique pour générer un son continu (par exemple une sirène d’alarme). Attention :
toutes les fonctions du bipeur n’acceptent que les valeurs de pitch dans une plage de 0 à
255, 255 représentant la fréquence maximale.
3.5. Capteur microphone
Le RP6 CONTROL ne produit pas uniquement des sons, mais y réagit également. Pas
selon la hauteur de sons mais selon le volume. Vous pouvez par exemple faire partir
votre robot en produisant un bruit fort.
Le circuit est conçu comme « peak-detektor ». Il sera mesuré dans une période variable
l’amplitude du signal microphone et la valeur maximale sera consere. Le micro
contrôleur peut être mesuré avec un ADC de la valeur maximale, puis effacé. La valeur
maximale sera rapidement sauvegardée dans un petit condensateur et afin « d’effacer »
cette valeur maximale, il faudra décharger ce condensateur.
Avec la fonction suivant :
Vous devez d’abord décharger le condensateur. La fonction
Vous permet de déterminer la valeur maximale dans un intervalle précis. Après que la
valeur soit mesurée, la fonction appelle directement dischargePeakDetector().
Vous pouvez voir comment cela fonctionne dans l’un des programmes d’exemple.