
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, 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 !

- LIGHT : diode rouge
- COLOR : diode RGB
- SOUND : haut-parleur


- soit sur ses ports OUT 1, OUT 2 et OUT 3 des actionneurs Grove
- soit sur son port breadboard à 10 broches programmables
Nombre d'actionneurs différents sont gérés et contrôlables directement d'une simple ligne.
Commençons déjà par les actionneurs les plus simples supportés aussi bien au format Grove que breadboard :
- LED : diode
- SPEAKER : haut-parleur
- DCMOTOR : moteur à courant continu
- BUZZER : buzzer
- RELAY : relais
- SQUAREWAVE : générateur de signal rectangulaire
D'autres actionneurs plus évolués sont supportés uniquement au format Grove :
- POWER : transistor de puissance
- VIB.MOTOR : moteur à vibrations
- SERVO : servomoteur (uniquement sur le port OUT3 dédié à l'alimentation en 5 Volts)
Et d'autres uniquement au format breadboard :
- RGB : diode RGB
- SERVO.CONTINUOUS
Le TI-Innovator Hub te permet également d'utiliser des actionneurs non supportés, aussi bien analogiques (ANALOG.OUT) que numériques (DIGITAL.OUT).
Pour les plus simples une connexion Grove peut suffire, tu auras juste à calculer correctement la valeur à écrire.
Pour les actionneurs les plus complexes il faut écrire un véritable pilote.
Parmi ce large éventail d'actionneurs directement gérés par le TI-Innovator Hub, on pouvait regretter l'absence d'afficheurs à segments.
D'autant plus dommage qu'il existe des afficheurs à segments utilisant le format Grove et donc déjà connectables directement...
D'autant plus dommage qu'il existe des afficheurs à segments utilisant le format Grove et donc déjà connectables directement...
- les cellules numériques : dédiées à l'affichage de chiffres, elles sont constituées de 7 ou 8 segments (selon si le chiffre peut être accompagné du séparateur décimal)
- les cellules alphanumériques : pouvant afficher à la fois des chiffres et des lettres, elles sont constituées de 14 segments

On pourrait imaginer relier directement les différentes broches de l'afficheur au port breadboard du TI-Innovator Hub, puis ensuite coder un pilote comme évoqué.
C'est certes envisageable, mais c'est une solution très lourde dans le sens où les afficheurs bruts nécessitent un grand nombre de broches, 12 pour celui ci-contre.
Outre la lourde connectique que l'utilisateur aura alors à gérer (de préférence sans se tromper), cela occuperait de plus entièrement le port breadboard du TI-Innovator Hub, empêchant ainsi l'utilisateur de brancher autre chose.
Outre la lourde connectique que l'utilisateur aura alors à gérer (de préférence sans se tromper), cela occuperait de plus entièrement le port breadboard du TI-Innovator Hub, empêchant ainsi l'utilisateur de brancher autre chose.
En rajoutant bien évidemment l'alimentation et la masse, cela ne fait malgré tout que 4 broches, soit une utilisation très légère et raisonnable du connecteur breadboard de ton TI-Innovator Hub.

On trouve ainsi des afficheurs munis du contrôleur TM1637 aussi bien au format Grove qu'au format breadboard.
Les spécifications du TM1637 sont disponibles publiquement, et il existe déjà un pilote écrit en langage C++ pour cartes Arduino.
Toutefois les TI-Nspire CX II ne gèrent hélas pas le langage C++, du moins pas officiellement...


Voici donc M1637driver1.py, un module Python additionnel rajoutant à ta TI-Nspire CX II le support des afficheurs numériques à contrôleur TM1637 !

Le module est à installer de préférence dans le dossier /PyLib/ de ta calculatrice. Il est alors rajouté au menu des modules Python et ainsi directement importable pour tes projets.
Si tu utilises la version Grove de l'afficheur, tu peux la connecter aux ports OUT 1 ou OUT 2 du TI-Innovator Hub.
Attention, la mise à jour TI-Innovator Hub 1.5 est nécessaire au bon fonctionnement du TM1637 en format Grove.

- BB1 : clk
- BB2 : dio
Note que dans les deux cas l'afficheur TM1637 génère une consommation importante. Pour en garantir le bon fonctionnement tu devras connecter ton TI-Innovator Hub à une source d'alimentation USB externe via son port micro-USB, batterie ou secteur.

Tout d'abord il te faut construire un objet Python pour pouvoir ensuite contrôler ton afficheur. Au choix selon la connexion que tu as réalisée :
mydis = TM1637display('OUT 1')
mydis = TM1637display('OUT 2')
mydis = TM1637display('BB')
Mais première chose à faire obligatoirement, régler la luminosité de l'afficheur avec la méthode
.setBrightness(niveau)
.niveau peut aller ici de 0 à 6, et pour la luminosité maximale nous appellerons donc
myset.setBrightness(6)
.L'affichage se passe via la méthode
.setSegments(données)
. données est ici une liste de 4 nombres entiers, un par cellule donc.Dans un premier temps, commençons par afficher des chiffres. Il n'y a ici pas encore besoin de comprendre le format de la liste, car nous avons une méthode
On peut par exemple s'en servir pour construire une fonction rudimentaire permettant d'afficher un nombre :
Et voilà donc ci-contre par exemple le résultat de l'appel
.encodeDigit(chiffre)
permettant d'en générer automatiquement le contenu.- Code: Select all
def showNumber(num, dis):
l = []
while num:
l.append(dis.encodeDigit(num % 10)
num //= 10
l.reverse()
dis.setSegments(l)
Et voilà donc ci-contre par exemple le résultat de l'appel
showNumber(1637, mydis)
.
Les 4 nombres de la liste passée à .setSegments() indiquent en binaire les segments à allumer, selon la numérotation ci-contre.
Voilà pourquoi par exemple l'appel
.encodeDigit(1)
nous retourne 6, c'est-à-dire en binaire 0b00000110 avec les bits 1 et 2 armés pour allumer les 2 segments permettant d'afficher le chiffre 1.Petit cas particulier, le bit 7 si armé est pris en compte uniquement pour le 2ème nombre de la liste, et permet alors d'allumer le séparateur horaire
:
au centre de l'afficheur.- Code: Select all
l = [
0b01011110, #d
0b00111111, #O
0b01010100, #n
0b01111001, #E
]
mydis.setSegments(l)
Ta TI-Nspire CX II peut donc enfin exploiter pleinement en Python un afficheur 4 chiffres à 7 segments, de tout nouveaux horizons pour tes projets !

Téléchargements :
- TM1637driver
- mise à jour TI-Innovator :
- Sketch 1.5
- Logiciel de mise à jour TI-Innovator Hub pour Windows / Mac
- Mise à jour 5.3.0 pour TI-Nspire CX II :
- Logiciel TI-Nspire CX II 5.3.0 :
Source : https://resources.t3europe.eu/t3europe- ... 86f390a4a7