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 , le robot pilotable , la grille programmable 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 ! 
TI-Innovator Hub
dispose de plusieurs actionneurs intégrés :- LIGHT : diode rouge
- COLOR : diode RGB
- SOUND : haut-parleur


TI-Innovator Hub
te permet de connecter des actionneurs externes :- soit sur ses ports OUT 1,OUT 2etOUT 3des actionneursGrove
- 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 portOUT3dé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
D'autant plus dommage qu'il existe des afficheurs à segments utilisant le format
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...- 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
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.TM1637
. Il permet de réduire le nombre de broches de contrôle à seulement 2, DIO
et CLK
.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
.Grove
. 
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...
Hans-Martin Hilbig
, formateur T3
pour Texas Instruments
, vient de nous réaliser un nouvel exploit : une réécriture intégrale du pilote C++
du TM1637
mais cette fois-ci dans le langage Python
officiellement supporté sur les TI-Nspire CX II
! 
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.TM1637
et de son pilote.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
.
breadboard
, il te faudra réaliser les connexions suivantes :- 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.
M1637driver1.tns
n'utilise visiblement pas les nouvelles possibilités de l'OS 5.3
permettant de lister ses fonctions au menu, alors nous allons te les expliquer rapidement.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.done
:- 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
:- mise à jour TI-Innovator:
- Sketch 1.5
- Logiciel de mise à jour TI-Innovator HubpourWindows/Mac
- Mise à jour 5.3.0pourTI-Nspire CX II:
- Logiciel TI-Nspire CX II 5.3.0:
Source
: