π
<-
Chat plein-écran
[^]

Module Python afficheur 7 segments TM1637 TI-Nspire CX II

:32tins: :32tinsktpb: :32tinsktpn: :32tinscas: :32tinstpkc: :32tinstpktpb: :32tinstp: :32tinscastp: :32tinscmc: :32tinscx: :32tinscxcas:

Module Python afficheur 7 segments TM1637 TI-Nspire CX II

Unread postby critor » 02 Jun 2021, 10:27

12212
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é ! :bj:

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 ! :D

7757Le
TI-Innovator Hub
dispose de plusieurs actionneurs intégrés :
  • LIGHT : diode rouge
  • COLOR : diode RGB
  • SOUND : haut-parleur

En plus de ceci, le
TI-Innovator Hub
te permet de connecter des actionneurs externes :
  • 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
7591139557517


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)
75897588


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...

7601Les afficheurs à segments sont constitués de cellules permettant chacune d'afficher un chiffre ou une lettre. On distingue :
  • 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

Aujourd'hui nous allons nous intéresser plus particulièrement aux afficheurs numériques à 4 cellules.

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.


1396213963Il existe toutefois des interfaces permettant de réduire le nombre de broches pour l'utilisateur, comme par exemple le contrôleur
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
.

1395613957Double avantage, ce brochage est également compatible avec le format
Grove
. :bj:

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...

Et bien justement
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
! :D

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

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.

13958Nous allons te guider rapidement dans la prise en main de l'afficheur
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
.


Si tu utilises la version
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')
L'objet alors obtenu te fournit différentes méthodes pour piloter ton afficheur.

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 .encodeDigit(chiffre) permettant d'en générer automatiquement le contenu.

13960On peut par exemple s'en servir pour construire une fonction rudimentaire permettant d'afficher un nombre :
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).

Tentons maintenant d'aller plus loin et de contrôler directement les segments pour afficher librement tout ce que l'on veut, et entre autres des lettres.

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.

13959Maintenant que nous avons donc compris le format, nous ne sommes plus limités aux simples chiffres et pouvons enfin nous amuser à afficher librement tout ce que nous voulons, comme par exemple le mot
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 ! :D


Téléchargements
:


Source
:
https://resources.t3europe.eu/t3europe- ... 86f390a4a7
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 28.4%
 
Posts: 39631
Images: 11666
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

Return to News TI-Nspire

Who is online

Users browsing this forum: No registered users and 32 guests

-
Search
-
Social
-
Featured topics
Reprise de ton ancienne fx-92 Collège ou Graph 25/35/90 à 5€. Même non fonctionnelle ou ancien modèle. Etiquette de retour fournie, pas de frais de port à payer.
Coque NumWorks édition limitée Mai 2022 à gagner.
Comparaisons des meilleurs prix pour acheter sa calculatrice !
123
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
612 utilisateurs:
>592 invités
>14 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)

-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)