Depuis des années maintenant,
Texas Instruments réalise de gros efforts pour rendre la programmation de ses calculatrices accessible à toutes et tous. Le constructeur a prêté une attention toute particulière aux plus jeunes et non initiés, souhaitant leur permettre de créer tous les projets
STEM / STIM imaginables sans avoir à se concentrer sur des difficultés annexes.
L'interface
TI-Innovator Hub te permet de transformer ta calculatrice
TI-83 Premium CE ou
TI-Nspire CX en une machine connectée ouverte sur le monde. Elle intègre un capteur de luminosité, une diode
RVB, ainsi qu'un
buzzer. Mais en plus de cela, l'interface permet de connecter des modules externes
(capteurs et actionneurs) sur ses ports
Grove, ou selon tes besoins sur son port
breadboard.
Texas Instruments propose également plusieurs kits de démarrage :
Le
TI-Innovator Hub permet également la connexion de plusieurs périphériques officiels :
Tous ces éléments ont de plus l'avantage d'être utilisables directement avec le langage
Python des calculatrices concernées, faisant de l'écosystème
Texas Instruments le seul
Python connecté !
Très exactement en même temps que les mises à jour
TI-Nspire CX 4.5.4 et
TI-Nspire CX II 5.3 la semaine dernière,
Texas Instruments a publié une mise à jour pour le
TI-Innovator Hub.
Ce dernier passe de la version
1.4 à la version
1.5, de numérotation complète
1.5.0.49.
La version
1.5 est une mise à jour majeure qui apporte de nouvelles options, commandes et même capteurs ; nous allons te détailler tout ça.
Nous avons toutefois été bien surpris de cette publication simultanée, les menus des
TI-Nspire CX restant inchangés dans leur dernière version et ne présentant donc pas ces nouveautés, ni en
TI-Basic ni en
Python. Si tu souhaites les exploiter tu devras donc les saisir intégralement à la main.
Soucieux de mettre à la portée de chacun les projets les plus évolués tout en minimisant le nombre de notions prérequises à travailler,
Texas Instruments avait déjà rajouté un paramètre optionnel
BLINK aux commandes de diode, permettant de les faire clignoter sans avoir à faire une boucle enchaînant les commandes d'allumage/extinction avec les bons délais :
- Code: Select all
SET LIGHT ON BLINK <fréquence>
SET LED <numéro> ON BLINK <fréquence>
SET COLOR <valeur_rouge> <valeur_vert> <valeur_bleu> BLINK <fréquence>
SET COLOR.RED <valeur> BLINK <fréquence>
SET COLOR.GREEN <valeur> BLINK <fréquence>
SET COLOR.BLUE <valeur> BLINK <fréquence>
SET RV.COLOR <valeur_rouge> <valeur_vert> <valeur_bleu> BLINK <fréquence>
SET RV.COLOR.RED <valeur> BLINK <fréquence>
SET RV.COLOR.GREEN <valeur> BLINK <fréquence>
SET RV.COLOR.BLUE <valeur> BLINK <fréquence>
SET ANALOG.OUT <numéro> <valeur> BLINK <fréquence>
SET DIGITAL.OUT <numéro> <valeur> BLINK <fréquence>
SET VIB.MOTOR <numéro> ON BLINK <fréquence>
De façon très similaire
Texas Intruments rajoute un paramètre optionnel comparable aux commandes de son,
TEMPO, permettant ici de hacher la sortie audio et donc d'émettre des bips. Le paramètre
TEMPO prend pour valeur une fréquence, c'est-à-dire le nombre de bips par seconde :
- Code: Select all
SET SOUND <fréquence_son> TEMPO <fréquence_bips>
SET SPEAKER <numéro> <fréquence_son> TEMPO <fréquence_bips>
Par exemple :
- émettre un son à 440 Hz à 2 bips par seconde pendant 5 secondes sur le buzzer interne :
SET SOUND 440 TEMPO 2 TIME 5
- émettre un son à 880 Hz à 3 bips par seconde pendant 4 secondes sur le haut-parleur externe n°1 :
SET SPEAKER 1 880 TEMPO 3 TIME 4
Notons qu'un paramètre de 0 désactive l'option
TEMPO. C'est-à-dire que les 2 commandes suivantes sont équivalentes, émettant dans les deux cas un son continu à 400 Hz pendant 5 secondes :
- Code: Select all
SET SOUND 400 TIME 5 TEMPO 0
SET SOUND 400 TIME 5
Des nouveautés dans la gestion des modules
Grove externes
DHT, capteurs numériques de température et humidité. Ces capteurs
Grove existent en 2 versions aux spécifications très différentes :
- le DHT11 :
- températures de 0°C à 50°C avec une marge d'erreur de ±2°C
- humidité de 20% à 90% avec une marge d'erreur de ±5%
- le DHT22 :
- températures de -40°C à 80°C avec une marge d'erreur de ±0,5°C
- humidité de 5% à 99% avec une marge d'erreur de ±2%
Comme tu le vois le
DHT11 est une version basique assez limité, ne fonctionnant notamment pas en-dessous de 0°C, alors que le
DHT22 est une version bien plus professionnelle.
Dans le cas d'un capteur
DHT, la commande d'interrogation dispose d'un nouveau paramètre permettant maintenant de récupérer le type du capteur :
READ DHT <numéro> TYPE
La commande retournera les valeurs suivantes :
- 1 pour un DHT11
- 2 pour un DHT22
Nouveau paramètre également pour récupérer l'état d'un capteur
DHT et gérer d'éventuelles erreurs :
READ DHT <numéro> STATUS
La commande retournera les valeurs suivantes :
- 1 si tout est bon
- 2 en cas d'erreur timeout
- 3 en cas d'erreur de somme de contrôle
Ces 2 informations sont de plus également récupérées lors d'une interrogation générique du capteur :
READ DHT <numéro>
On obtient ici une liste avec dans l'ordre :
- température
- humidité
- type
- état
Du nouveau également avec les sonars
(ranger en anglais, soit capteurs de distance).
Dans le cas d'un capteur de type sonar, la commande d'interrogation accepte un nouveau paramètre optionnel,
TIME. Celui-ci permet de récupérer non pas la distance calculée, mais le temps de vol, soit la durée entre le début de l'émission de l'onde sonore et sa réception.
C'est valable aussi bien avec les sonars
Grove à connecter qu'avec le sonar intégré au
TI-Innovator Rover :
- Code: Select all
READ RANGER <numéro> TIME
READ RV.RANGER TIME
De nouvelles possibilités d'exploration et investigation lors des TP en conséquence.
Fantastique, la version 1.5 active un nouveau capteur déjà intégré à ton TI-Innovator Hub, sans avoir besoin de modifier ou racheter ce dernier !
Il s'agit d'une horloge. Elle part de 0 à l'allumage et augmente avec le temps. Pour l'interroger c'est très simple :
READ TIMER
Tu as donc également maintenant de quoi synchroniser tes projets, leur faire tenir compte du temps écoulé.
Grande innovation permettant de minimiser le nombre de lignes de code dans tes projets, il est maintenant possible de commander simultanément jusqu'à 4 actionneurs grâce au connecteur logique
AND :
Par exemple, émet un son à 440 Hz pendant 2 secondes + allume la diode RVB en mauve pendant 2 secondes :
SET SOUND 440 TIME 2 AND COLOR 255 0 255 TIME 2
Les commandes ainsi composées peuvent même se terminer de façon indépendante :
- allume la diode RVB en mauve + émet un son à 440 Hz pendant 2 secondes :
SET COLOR 255 0 255 AND SOUND 440 TIME 2
- émet un son à 440 Hz pendant 2 secondes + allume la diode RVB en mauve pendant 4 secondes :
SET SOUND 440 TIME 2 AND COLOR 255 0 255 TIME 4
Au-delà de la simple minimisation du nombre de lignes de code, c'est aussi une façon de corriger le léger problème de décalage. En effet lorsque l'on souhaitait déclencher 2 actions en même temps, on n'avait pas d'autre choix que d'utiliser 2 lignes de commande. Elles n'étaient donc pas exécutées en même temps mais avec un léger décalage, qui selon les projets pouvait être bien gênant.
Niveau lecture de capteurs nous avons des nouveautés comparables. Toujours dans le but à la fois de minimiser les imbrications de boucles nécessaires dans les programmes de l'utilisateur, et d'améliorer la pertinence des mesures. Ici cela se passe avec une nouvelle commande,
COLLECT.
Déjà, il devient possible de récupérer toute une série de mesures d'une simple commande. Plus besoin de s'embêter à faire des boucles et surtout à les synchroniser correctement.
Par exemple :
- lis le capteur de température numéro 1 pendant 5 secondes à 4 échantillons par seconde :
- Code: Select all
COLLECT TEMPERATURE 1 TIME 5 RATE 4
READ LIST TEMPERATURE 1
- lis le capteur de température numéro 1 pendant 10 secondes à 10 échantillons par seconde :
- Code: Select all
COLLECT TEMPERATURE 1 TIME 10 RATE 10
READ LIST TEMPERATURE 1
- lis le capteur de luminosité intégré pendant 5 secondes à 5 échantillons par seconde :
- Code: Select all
COLLECT BRIGHTNESS TIME 5 RATE 5
READ LIST BRIGHTNESS
- lis le capteur de luminosité intégré pendant 10 secondes à 8 échantillons par seconde :
- Code: Select all
COLLECT BRIGHTNESS TIME 10 RATE 8
READ LIST BRIGHTNESS
En prime pour tracer un diagramme le plus exact possible ou tout simplement tenir compte de la pertinence de la série de mesures, après la lecture il est possible de récupérer les valeurs horloge associées à chaque échantillon, et donc de tenir compte de la régularité de l'échantillonnage :
READ LIST TIME
Et surtout encore une fois pour grandement te simplifier la vie et tes projets, le connecteur logique
AND te permet d'interroger jusqu'à 4 capteurs simultanément.
Par exemple, lis le capteur de pression Vernier numéro 1 et les température+humidité du DHT numéro 1, et les dates de mesure pendant 10 secondes à 4 échantillons par seconde :
- Code: Select all
COLLECT VERNIER 1 AND DHT 1 TIME 10 RATE 4
READ LIST VERNIER 1
READ LIST DHT1 TEMPERATURE
READ LIST DHT1 HUMIDITY
READ TIME
Bien que les commandes
READ soient exécutées de façon successive, en fait l'échantillonnage démarre dès la commande
COLLECT et met les résultats en mémoire cache. Tu récupéreras donc bien 4 listes de même taille, avec leurs éléments correspondants mesurés au même moment.
La commande AVERAGE te permettait déjà de préciser pour chaque capteur analogique, le nombre de mesures à effectuer avant de retourner une valeur. Cela permet de réduire les erreurs dues au bruit et d'améliorer la pertinence des mesures à traiter :
AVERAGE <capteur> <valeur>
Nouveauté donc, nous avons maintenant une nouvelle commande AVERAGING permettant le même réglage mais de façon globale à l'ensemble des capteurs analogiques :
AVERAGING <valeur>
Après un réglage AVERAGING tu conservers toujours la possibilité de préciser des valeurs différentes pour certains capteurs avec AVERAGE, à condition de le faire avant la commande de connexion CONNECT de chaque capteur concerné.
Le
TI-RGB Array t'offre une grille de diodes
RVB adressables numérotées de 0 à 15. Dans son cas, jusqu'à présent tu devais allumer les diodes adressables une par une, ce qui là encore générait des décalages cumulés dans leur allumage, ce qui n'était pas toujours du plus bel effet et même bien gênant pour certains projets :
SET RGB <numéro_diode> <valeur_rouge> <valeur_vert> <valeur_bleu
Désormais tu peux allumer simultanément plusieurs diodes adressables selon la même couleur.
Par exemple, allume en mauve les 4 diodes de numéro 1, 3, 5 et 7 :
SET RGB [1 3 5 7] 200 0 200
L'ensemble des diodes à allumer peut également être précisé via un simple nombre décimal ou hexadécimal via l'option
PATTERN :