Texas Instruments fait de gros efforts pour rendre la programmation de ses calculatrices accessible à tous et toutes. 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 imaginables sans avoir à se concentrer sur des difficultés annexes.
Sur les calculatrices
TI-Nspire CX,
TI-83 Premium CE et
TI-84 Plus CE, il était possible de connecter l'interface
TI-Innovator Hub, le robot pilotable
TI-Innovator Rover, la grille programmable
TI-RGB Array ou encore l'adaptateur
TI-SensorLink pour capteurs analogiques
Vernier.
Tous ces éléments ont de plus le gros avantage d'être utilisables directement avec le langage
Python des derniers modèles
TI-Nspire CX II,
TI-83 Premium CE Edition Python et
TI-84 Plus CE Python Edition, faisant de l'écosystème
Texas Instruments le seul
Python connecté !
Un superbe support pour les enseignements scientifiques au lycée maintenant qu'ils partagent le même langage de programmation, notamment en
SNT, spécialité
NSI,
SI et
Physique-Chimie, avec le gros avantage de la mobilité. En effet, les programmes produits et données collectées restent présents dans la calculatrice apportée par chaque élève à chaque cours, ce qui allège la charge logistique de l'enseignant. Données et algorithmes peuvent donc être traités / travaillés à la prochaine séance, en devoir à la maison ou même de façon transdisciplinaire en collaboration avec un autre enseignant !
En plus de son capteur de luminosité intégré
(BRIGHTNESS), le
TI-Innovator Hub te permet de connecter des capteurs externes :
- soit sur ses ports IN 1, IN 2 et IN 3 des capteurs Grove
- soit sur son port breadboard à 10 broches programmables
Nombre de capteurs différents sont gérés et interrogeables directement d'une simple ligne.
Commençons déjà par les capteurs les plus simples supportés aussi bien au format
Grove que
breadboard :
- LIGHTLEVEL : capteur de luminosité
- MOISTURE : capteur d'humidité
- MOTION : capteur de mouvement infrarouge
- POTENTIOMETER : potentiomètre rotatif
- TEMPERATURE : capteur de température
- BUTTON : bouton poussoir
- SWITCH : interrupteur
D'autres capteurs plus évolués sont supportés uniquement au format
Grove :
- RANGER : capteur de distance à ultrasons
- LOUDNESS : intensité sonore
- DHT : capteur numérique d'humidité et température
- MAGNETIC : capteur de champ magnétique
Très joli, mais ne manquerait-il pas encore quelque chose pour des projets
STEM ? Il n'y a pas d'accéléromètre, alors que c'est un capteur très répandu de nos jours
(smartphones, montres connectées notamment pour le fitness, voitures notamment pour les airbags ou encore l'aide à la conduite...).
Les accéléromètres sont des micro systèmes électromécaniques
(MEMS) détectant selon 3 axes l'accélération momentanée de l'objet dont ils font partie. Les mesures brutes superposent les effets de 2 phénomènes physiques, avec :
- une composante statiques qui est la gravité s'appliquant à tout objet sur Terre
- et une composante dynamique (accélération ou décélération dans le référentiel galiléen)
L'accéléromètre est ainsi un élément clé qui ouvre la porte à nombre de projets concrets.
Et bien nous ne t'avions pas encore tout dit. Il y avait déjà une solution même si elle est très loin d'être pleinement satisfaisante.
L'interface
TI-SensorLink te permet d'adapter les capteurs
Vernier analogiques au format
Grove, et donc de les connecter aux ports
IN 1,
IN 2 ou
IN 3.
Outre l'ensemble des types de capteurs cités ci-dessus lorsqu'il existe un équivalent dans la gamme
Vernier, cela permet en prime de profiter de capteurs supplémentaires :
- ENERGY : capteur d'énergie VES-BTA (voltage + intensité)
- LIGHT : capteur de luminosité LS-BTA
- ACCEL : accéléromètre faible G LGA-BTA
Le problème ? Et bien le
LGA-BTA est un accéléromètre unidirectionnel, et absolument pas un accéléromètre 3D. C'est-à-dire qu'il ne mesure qu'une seule des 3 composantes 3D.
Ses possibilités et applications sont donc très restreintes, à moins d'en connecter 3 et de les disposer de façon orthogonale, ce qui serait quand même contraignant et cher...
Par contre, le
TI-Innovator Hub te permet également d'utiliser des capteurs non supportés, aussi bien analogiques
(ANALOG.IN) que numériques
(DIGITAL.IN).
Pour les plus simples une connexion
Grove peut suffire, tu auras juste à interpréter correctement la valeur brute mesurée.
Pour les plus complexes il faut s'orienter vers le port
breadboard et gérer chaque contact nécessaire, c'est-à-dire écrire un véritable pilote pour le capteur ciblé.
Pour rester sur les accéléromètres 3D, on peut citer par exemple l'
accéléromètre ADXL335, dont les spécifications sont publiques.
Aujourd'hui
Hans-Martin Hilbig, formateur
T3 pour
Texas Instruments, s'appuie sur ces spécifications afin de te sortir
ADXL335driver.py, un module
Python additionnel pour
TI-Nspire CX II rajoutant le support de l'accéléromètre
ADXL335 !
ADXL335driver est donc à installer dans le dossier
/PyLib/ de ta calculatrice.
Il apparaît alors aux menus
Python de ta calculatrice, mais n'a visiblement pas été conçu pour y lister ses fonctions. Mais pas grave, nous allons voir cela ensemble.
Donc, premières choses à faire, importer le module et construire la classe qui va nous permettre d'interroger l'accéléromètre. C'est on ne peut plus simple :
- Code: Select all
from ADXL335driver import *
myadxl = adxl()
La fonction
adxl() prend en paramètres optionnels les 3 contacts
breadboard utilisés pour récupérer les 3 mesures en x, y et z.
Par défaut, l'appel
adxl()
est équivalent à l'appel
adxl("BB5", "BB6", "BB7")
.
Niveau connexions physiques, nous relions :
- la broche d'alimentation VCC de l'accéléromètre au 3.3V du breadboard TI-Innovator Hub
- la broche de masse GND de l'accéléromètre à l'une des 8 masses du breadboard TI-Innovator Hub
- ici la broche X_out de l'accéléromètre au BB5 du breadboard TI-Innovator Hub
- ici la broche Y_out de l'accéléromètre au BB6 du breadboard TI-Innovator Hub
- ici la broche Z_out de l'accéléromètre au BB7 du breadboard TI-Innovator Hub
L'exécution du code précédent te propose déjà une petite procédure de calibrage. Rien de bien complexe, tu devras juste poser l'accéléromètre à plat puis le retourner.
Cela nous sera très utile par la suite afin d'obtenir non plus de simples mesures brutes, mais des mesures directement compréhensibles et réutilisables.
Commençons déjà par les 3 mesures brutes
(entiers de 10 bits). Tu peux les récupérer séparément ou ensembles via les méthodes suivantes :
- myadxl.get_adcx()
- myadxl.get_adcy()
- myadxl.get_adcz()
- myadxl.get_adcxyz()
Si tu as calibré correctement l'accéléromètre, les méthodes suivantes vont te permettre d'interpréter les mesures brutes de façon totalement transparente :
- myadxl.get_gforcexyz() pour récupérer en unités g l'accélération appliquée à ton accéléromètre (dont dans tous les cas la gravité, même au repos)
- myadxl.get_anglexyz() pour obtenir, au repos, l'inclinaison de ton accéléromètre dans l'espace, soit en degrés les 3 angles selon x, y et z
Ta
TI-Nspire CX II peut donc enfin exploiter un accéléromètre 3D en
Python, de tout nouveaux horizons pour tes projets !