Capteurs de mouvement
Les capteurs de mouvement sont accessibles avec la bibliothèque NXPMotionSense .
Pour commencer, téléchargez Fichier> Exemples> NXPMotionSense> CalibrateSensors . Ouvrez ensuite le moniteur série Arduino. Vous devriez voir les données brutes s'afficher rapidement.
Fermez le moniteur série, puis exécutez l'outil d'étalonnage du capteur de mouvement.
Utilisez le menu Port pour sélectionner le port série. Le moniteur série d'Arduino doit être fermé.
Tournez le Prop Shield pour collecter les données d'étalonnage. Au fur et à mesure que de meilleures données sont collectées sous de nombreux angles, les 4 variables d'erreur diminueront et les points rouges formeront une sphère qui tourne parfaitement centrée. Utilisez Fichier> Envoyer l'étalonnage pour écrire les données d'étalonnage dans la mémoire EEPROM de Teensy.
Une fois les données d'étalonnage écrites, vous pouvez exécuter l'un de ces exemples pour utiliser les données étalonnées. MahonyIMU nécessite beaucoup moins de puissance de traitement, il est donc recommandé pour Teensy LC et les cartes Arduino 8 bits ordinaires.
Fichier> Exemples> NXPMotionSense> Orientation - Utilisation sur Teensy 3.2
Fichier> Exemples> NXPMotionSense> MahonyIMU - Utiliser sur Teensy LC ou Arduino
Lorsque l'un de ces éléments est en cours d'exécution, le moniteur série Arduino vous montrera le cap, le tangage et le roulis calculés. Lorsque vous tournez la carte dans chaque direction (imaginez que c'est un avion), vous devriez voir chaque angle changer.
Pour afficher les données d'orientation sous forme graphique, utilisez Processing pour exécuter le visualiseur d'orientation . Vous devez modifier ce code avec le port série sur lequel la carte est connectée. Veuillez d'abord fermer la fenêtre Arduino Serial Monitor, afin que le programme puisse accéder aux données.
Amplificateur audio
Le Prop Shield possède un amplificateur audio de 2 watts, capable de piloter des haut-parleurs de 4 ou 8 ohms. Les haut-parleurs de voiture de 4 ohms fonctionnent très bien pour les installationsoù des niveaux sonores plus élevés sont nécessaires.
Par défaut, l'amplificateur reste en mode basse consommation. Vous devez activer la broche 5 haut pour allumer l'amplificateur. Il a généralement besoin de 8 millisecondes pour se réveiller.
void setup ( ) {
pinMode ( 5 , SORTIE ) ;
digitalWrite ( 5 , HIGH ) ; // allume l'amplificateur
retard ( 10 ) ; // laisse le temps de se réveiller
Avec Teensy 3.2, la bibliothèque audio Teensy peut être utilisée pour créer des sons. Presque tous les exemples de bibliothèque audio sont conçus pour le bouclier audio . Pour les adapter au Prop Shield, remplacez "i2s1" par "dac1" dans l'outil de conception ou AudioOutputI2S avec AudioOutputAnalog dans le code Arduino. Supprimez ensuite l'objet SGTL5000 et tout code qui l'utilise.
Par défaut, la bibliothèque audio créera un signal de 1,2 Vp-p au niveau de la broche DAC, qui est un niveau de volume confortable pour écouter dans une pièce calme, mais ne correspond pas à la puissance max de l'amplificateur. Pour obtenir une sortie plus forte, définissez l'objet dac1 pour utiliser la référence EXTERNE. Faire cela avant de mettre l'ampli sous tension évitera un clic bruyant.
AudioMemory ( 20 ) ;
dac1 . analogReference ( EXTERNAL ) ; // beaucoup plus fort!
retard ( 50 ) ; // temps pour la tension DAC stable
pinMode ( 5 , SORTIE ) ;
digitalWrite ( 5 , HIGH ) ; // allume l'amplificateur
retard ( 10 ) ; // laisse le temps de se réveiller
Pour un contrôle précis du volume, utilisez un objet mélangeur juste avant la sortie dac dans votre conception audio, où votre code peut contrôler le gain du mélangeur pour changer le volume.
Sur Teensy LC, la bibliothèque Talkie peut être utilisée pour une synthèse vocale simple.
Tampon LED rapide
Le Prop Shield dispose de tampons 5V destinés à envoyer des données à des LED adressables de type Dotstar ou APA102 .
Normalement, la bibliothèque FastLED est utilisée pour contrôler ces types de LED. Le Prop Shield utilise la broche 7 pour contrôler l'accès aux LED. Si aucune autre puce SPI n'est utilisée, elle peut simplement être définie à un niveau élevé dans setup ().
#include < FastLED . h >
#define NUM_LEDS 144
LED CRGB [ NUM_LEDS ] ;
void setup ( ) {
retard ( 2000 ) ; // délai de vérification de la santé mentale
FastLED . addLeds < APA102 , BGR > ( leds , NUM_LEDS ) ;
pinMode ( 7 , SORTIE ) ;
digitalWrite ( 7 , HIGH ) ; // permet l'accès aux LED
}
boucle vide ( ) {
// Déplacer une seule led blanche
pour ( int n = 0 ; n < NUM_LEDS ; n ++ ) {
leds [ n ] = CRGB :: Blanc ;
FastLED . show ( ) ;
retard ( 8 ) ;
leds [ n ] = CRGB :: Noir ;
}
}
Lorsqu'une autre communication SPI est utilisée, la broche 7 doit être haute pour permettre l'accès aux led et basse pour empêcher d'autres puces SPI d'interférer avec les leds. Les fonctions de transactions SPI doivent également être utilisées. Vous devrez inclure SPI.h pour avoir accès à ces fonctions SPI.
// beginTransaction empêche les conflits de bus SPI
SPI . beginTransaction ( SPISettings ( 24000000 , MSBFIRST , SPI_MODE0 ) ) ;
digitalWrite ( 7 , HIGH ) ; // permet l'accès aux LED
FastLED . show ( ) ;
digitalWrite ( 7 , BAS ) ;
SPI . endTransaction ( ) ; // autorise les autres bibliothèques à réutiliser SPI
Mémoire flash
Le Prop Shield a une mémoire flash de 8 Mo, destinée à stocker des clips audio, des images, des données de journalisation ou d'autres utilisations.
La bibliothèque SerialFlash est utilisée pour accéder à cette mémoire.
Utilisez TeensyTransfer pour copier des fichiers sur la puce flash sans carte SD.