π
<-
Chat plein-écran
[^]

BBC micro:bit v2 + mise à jour pour TI-83 Premium CE Python

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:

BBC micro:bit v2 + mise à jour pour TI-83 Premium CE Python

Unread postby critor » 21 Jan 2021, 15:43

12212Depuis des années maintenant,
Texas Instruments
réalise 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. :)

Nous pouvions déjà citer 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 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é ! :bj:

Un superbe support pour les enseignements scientifiques au lycée surtout maintenant que tous 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 pourront 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

129591295812957Et depuis la rentrée 2020 dernière grande révolution en date, plus besoin de t'équiper en
TI-Innovator
pour bénéficier de ces formidables avantages. En effet, la
TI-83 Premium CE Edition Python
s'est vu rajouter la gestion du nanoordinateur programmable en
Python
dont tu étais peut-être déjà équipé·e ! :bj:
Attention, cela nécessite obligatoirement que ta calculatrice fasse tourner une version
5.5.1
ou supérieure.


La carte
micro:bit
est initialement un projet lancé par la
BBC
(
B
ritish
B
roadcasting
C
orporation)
, le groupe audiovisuel public britannique, accompagné de nombre de partenaires dont
ARM
,
Microsoft
et
Samsung
. Elle fut distribuée gratuitement à un million d'élèves britanniques de 11 et 12 ans.

Le nom rend hommage au précédent succès du groupe dans ce domaine, le microordinateur à vocation pédagogique
BBC Micro
des années 1980, l'équivalent britannique de par son adoption à nos microordinateurs
Thomson MO5
et
TO7
inondant écoles, collèges et lycées à la fin de cette décennie dans le cadre du plan
IPT
(
I
nformatique
P
our
T
ous)
.

129621296112960La carte
micro:bit
dans sa version 1 inclut :
  • un afficheur, grille programmable de 5×5= 25 diodes rouges adressables, bien adapté pour l'affichage de motifs éventuellement animés ou encore de texte défilant
  • nombre de capteurs intégrés :
    • capteur de luminosité
      (lié aux diodes)
    • capteur de température
      (sur le processeur)
    • 2 boutons poussoirs
      A
      et
      B
      programmables de part et d'autre, comme sur les premières manettes et consoles de jeux portables de chez
      Nintendo
    • accéléromètre 3D, permettant de détecter les variations d'accélération et par conséquence diverses actions : secouer, pencher, chute libre, ...
    • boussole magnétique 3D, pour détecter cette fois-ci les champs magnétiques
  • connectivité
    Bluetooth 4.0
    basse énergie 2,4 GHz maître/esclave


12277La carte
micro:bit
utilise un connecteur
micro-USB
et ta calculatrice un
mini-USB
.

Pour relier les deux une solution est d'adjoindre un adaptateur
USB A
femelle ↔
USB mini-B OTG
mâle
au câble
micro-USB
venant avec ta carte
micro:bit
, testée avec succès.

1296512964Pour moins d'encombrement, tu as aussi la solution d'utiliser un câble direct, un
USB micro-B
mâle ↔
USB mini-A
mâle, disponible par exemple chez
Lindy
et que nous avons testé avec succès.

Pour pouvoir contrôler ta carte
micro:bit
à partir de tes scripts,
Texas Instruments
te propose des modules
Python
complémentaires à installer sur ta calculatrice. Le constructeur en met 9 à ta disposition, et ces modules te permettent chacun d'accéder à tout ou partie des modules ou classes correspondants dans le :
  • mb_butns → microbit.buttons
  • mb_disp → microbit.display
  • mb_grove
  • mb_music → music
  • mb_neopx → neopixel
  • mb_pins
  • mb_radio → radio
  • mb_sensr

Nous avions même vu qu'il était parfaitement possible depuis ta
TI-83 Premium CE Edition Python
de faire exécuter du code
Python
totalement arbitraire à la carte
micro:bit
, permettant ainsi d'accéder à des fonctions
Python
non exposées par les modules de
Texas Instruments
, ou même d'y définir ses propres fonctions.

Voici justement une fonction exécutant directement sur la carte
micro:bit
connectée le code
Python
passé en paramètre sous forme de chaîne de caractère, ainsi que de quoi en récupérer le résultat éventuel :
Code: Select all
from ti_hub import *

def mb_run(code):
  send('\x05') # enter paste mode (Ctrl-E)
  send(code)
  send('\x04') # exit paste mode (Ctrl-D)

def mb_get():
  return get().split("\r\n")[-3]

C'était justement l'occasion d'explorer un peu plus profondément les possibilités de la
micro:bit
, et ce fut hélas extrêmement décevant.

Rappelons que les interpréteurs
MicroPython
ou similaires font appel à 3 types de mémoires avec les rôles suivants :
  • la mémoire de stockage qui accueille et conserve tes scripts
  • le stack
    (pile)
    qui, à l'exécution, accueille les références vers les objets créés
  • le heap
    (tas)
    qui, à l'exécution, accueille le contenu de ces objets
En gros le
stack
limite donc le nombre d'objets différents pouvant exister simultanément en mémoire, alors que le
heap
limite la taille globale occupée par le contenu de ces objets.

Le langage
Python
a toutefois le gros défaut d'être très gourmand en mémoire, le moindre petit objet de rien du tout créé gaspillant une place énorme. Voici quelques références de tailles pour les plateformes 32 bits :
  • pour un entier nul :
    24
    octets déjà...
  • pour un entier court non nul
    (codable sur 31 bits + 1 bit de signe)
    :
    28
    octets
  • pour un entier long :
    • 28
      octets
    • +
      4
      octets pour chaque groupe de 30 bits utilisé par son écriture binaire au-delà des 31 bits précédents
  • pour une chaîne:
    • 49
      octets
    • +
      1
      octet par caractère
  • pour une liste :
    • 64
      octets
    • +
      8
      octets par élément
    • + les tailles de chaque élément

En pratique, le
heap
est donc bien souvent le facteur limitant. Nous l'avions donc testé en priorité sur
BBC micro:bit
:
Code: Select all
mb_run("import gc")
mb_run("a,f=gc.mem_alloc(),gc.mem_free")
mb_run("a")
a=int(mb_get())
mb_run("f")
b=int(mb_get())
[a,f,a+f]


Et voilà, nous constations en effet que l'interpréteur de la
micro:bit
offrait un
heap (tas)
Python
de seulement
10 Ko
de capacité, avec en pratique juste
8 Ko
et quelques de libres... :#roll#:

Une capacité absolument ridicule, inférieure à ce qu'offrent les interpréteurs
Python
des calculatrices graphiques :
  1. 4,100 Mo
    :
    TI-Nspire CX II
    +
    TI-Nspire CX
  2. 2,068 Mo
    :
    TI-Nspire CX II
  3. 2,050 Mo
    :
    TI-Nspire CX II
    +
    TI-Nspire CX
    +
    TI-Nspire
  4. 1,033 Mo
    :
    Casio Graph 90+E
  5. 1,014 Mo
    :
    HP Prime
    (version alpha)
  6. 258,766 Ko
    :
    Casio Graph 35/75+E
    (appli CasioPython)
  7. 101,262 Ko
    :
    Casio Graph 35+E II
  8. 64,954 Ko
    :
    NumWorks
    (firmware Omega + appli KhiCAS)
  9. 33,545 Ko
    :
    NumWorks
  10. 32,648 Ko
    :
    Casio Graph 35+E II
    (appli CasioPython)
  11. 23,685 Ko
    :
    TI-83 Premium CE + TI-Python
  12. 20,839 Ko
    :
    TI-83 Premium CE + TI-Python
  13. 18,354 Ko
    :
    TI-83 Premium CE Edition Python / TI-84 Plus CE-T Edition Python
  14. 8,240 Ko
    :
    BBC micro:bit


La
micro:bit
permettait sans aucun doute un large éventail de projets grâce à ses capteurs et actionneurs, mais chaque projet pris individuellement ne pouvait pas aller bien loin, devant sans doute se limiter essentiellement à de l'utilisation très légère des fonctions fournies. Tout élève suffisamment intéressé pour avoir envie d'approfondir sera rapidement confronté à des erreurs de mémoire de plus en plus difficiles et ennuyantes à contourner, et peut-être même pire dégoûté de toute poursuite dans cette branche. :mj:

Mais rien de surprenant lorsque l'on sait que la
micro:bit
utilise un microcontrôleur
nRF51822
de chez
Nordic Semiconductor
, avec les spécifications suivantes :
  • processeur
    32 bits ARM Cortex-M0
    cadencé à
    16 MHz
  • mémoire de stockage
    Flash
    d'une capacité de
    256 Kio
  • mémoire de travail
    RAM
    d'une capacité de
    16 Kio
    , et voilà qui explique tout... :'(

13451Mais pour cette année 2021 arrive la nouvelle carte
micro:bit v2
.

Dépêchons-nous de voir ce qu'elle vaut. ;)

1345012961Et bien justement, comme tu peux le constater ci-contre elle utilise un tout nouveau microcontrôleur, le
nRF52833
, toujours de chez
Nordic Semiconductor
. Cette fois-ci nous avons des spécifications qui devraient nous permettre de respirer :
  • processeur
    32 bits ARM Cortex-M0
    cadencé à
    64 MHz
    au lieu de
    16 MHz
    soit 4 fois plus rapide ! :bj:
  • mémoire de stockage
    Flash
    d'une capacité de
    512 Kio
    au lieu de
    256 Kio
    soit 2 fois plus grande ! :bj:
  • mémoire de travail
    RAM
    d'une capacité de
    128 Kio
    au lieu de
    16 Kio
    soit 8 fois plus grande :bj:

Et ce n'est pas tout, nous constatons d'autres nouveautés sur cette face :
  • ajout d'un haut-parleur
  • ajout d'un microphone MEMs
  • bouton poussoir qui ne sert plus seulement à la réinitialisation
    (reset)
    , mais permet désormais également d'éteindre la carte
    (appui long)
    et de la rallumer
    (appui court)
  • l'antenne
    Bluetooth
    qui devient compatible
    BLE Bluetooth 5.0
    , contre seulement
    4.0
    auparavant

1344912962

Passons maintenant à l'autre face, car les nouveautés ne sont pas terminées. Ici nous avons donc en prime :
  • ajout d'une diode DEL indiquant l'état du microphone
  • ajout d'un bouton tactile sur le logo
    micro:bit
    , voici pourquoi il perd sa couleur au profit de contacts métalliques


Reste-t-il encore à confirmer en pratique que la capacité
RAM
accrue sert bien entre autres à augmenter le
heap
Python
, et dans quelle mesure.

Première chose absolument indispensable à faire, tu dois commencer par reprogrammer ta carte
micro:bit
avec le fichier
firmware
.hex
dédié fourni par
Texas Instruments
.

Ce
firmware
est conçu pour rajouter à ta carte
micro:bit
la capacité de communiquer via son port
micro-USB
avec ta calculatrice
TI-83 Premium CE Edition Python
ou
TI-84 Plus CE-T Python Edition
.

Normalement rien de bien compliqué, il te suffit juste de connecter ta carte à un ordinateur pour y copier le fichier en question, la carte redémarrant automatiquement en fin de copie pour exécuter le nouveau
firmware
.

13452
Sauf qu'ici ça ne marche pas. Le fichier
.hex
distribué par
Texas Instruments
n'est apparemment pas compatible
micro:bit v2
, nous obtenons l'émoticône d'erreur accompagnée du code
529
. :'(

Mais ne baissons pas les bras. Rendons-nous sur l'éditeur
Python
en ligne des cartes
micro:bit
, et importons-y le fichier
.hex
de
Texas Instruments
.

Déjà bonne nouvelle, le fichier est reconnu par l'éditeur, nous y obtenons en clair le code
Python
d'initialisation :
Code: Select all
# version history
# 1.0 python functionality
# 1.1 Added TI LOGO and grove ranger
# 1.2 added handshake
# 1.3 added get_version
# 2.0 removed handshake and changed version to 2.0 for release in france

from microbit import *
from machine import time_pulse_us

ti = Image("07700:""07797:""77777:""07770:""00700")

def ranger(pin=pin0):
  pin.write_digital(1)
  pin.write_digital(0)
  pin.read_digital()
  t = time_pulse_us(pin,1,35000)
  print(t)

def get_version():
  print ("TI-Runtime Version 2.0")
 
display.show(ti,delay=10,wait=False)

1345413453Demandons donc à l'éditeur de nous générer un nouveau fichier
.hex
à partir de ce code.

Il y a espoir, cette fois sa copie sur
micro:bit v2
ne déclenche plus d'erreur, et affiche bien le logo de
Texas Instruments
. :)

Très bon signe, la
micro:bit v2
semble correctement se comporter, l'importation du module
microbit
ne déclenchant aucune erreur.

13455Mais confirmons en lui faisant faire quelque chose, comme afficher l'icône de Pac-man... bingo, ça marche ! :bj:
Code: Select all
from microbit import *
from mb_disp import *
display.show("Image.PACMAN",delay=400,wait=True)

Nous te mettons ci-dessous dans les ressources directement le fichier
.hex
corrigé, désormais compatible à la fois
micro:bit v1
et
micro:bit v2
. :D

13456Finissons-en donc avec le test de la capacité
heap
Python
.

Pour l'exécution des scripts
Python
sur
micro:bit v2
nous bénéficions donc apparemment de
63 Ko
libres, pour une capacité totale de
64 Kio
.
Fantastique c'est 8 fois plus que les pauvres
8 Ko
de l'ancienne carte ! :bj:
  1. 4,100 Mo
    :
    TI-Nspire CX II
    +
    TI-Nspire CX
  2. 2,068 Mo
    :
    TI-Nspire CX II
  3. 2,050 Mo
    :
    TI-Nspire CX II
    +
    TI-Nspire CX
    +
    TI-Nspire
  4. 1,033 Mo
    :
    Casio Graph 90+E
  5. 1,014 Mo
    :
    HP Prime
    (version alpha)
  6. 258,766 Ko
    :
    Casio Graph 35/75+E
    (appli CasioPython)
  7. 101,262 Ko
    :
    Casio Graph 35+E II
  8. 64,954 Ko
    :
    NumWorks
    (firmware Omega + appli KhiCAS)
  9. 63,024 Ko
    :
    BBC micro:bit v2
  10. 33,545 Ko
    :
    NumWorks
  11. 32,648 Ko
    :
    Casio Graph 35+E II
    (appli CasioPython)
  12. 23,685 Ko
    :
    TI-83 Premium CE + TI-Python
  13. 20,839 Ko
    :
    TI-83 Premium CE + TI-Python
  14. 18,354 Ko
    :
    TI-83 Premium CE Edition Python / TI-84 Plus CE-T Edition Python
  15. 8,240 Ko
    :
    BBC micro:bit v1

63 Ko
c'est quasiment le double de ce qu'offre la
NumWorks
, et également 3,5 fois plus que ce qu'offre la
TI-83 Premium CE Edition Python
, tu te rends compte ? :D

La capacité du
heap
Python
de la
TI-83 Premium CE Edition Python
est en effet un gros point faible. Mais ici en lui adjoignant une
BBC micro:bit v2
tu multiplies la taille de
heap
utilisable par 4,5 ! :bj:
De quoi approfondir des projets
Python
sur cette machine, à condition de distribuer correctement les différents objets
Python
créés entre le
heap
interne de la calculatrice et le
heap
externe de la carte, et bien sûr les faire interagir correctement. ;)

Malheureusement, à la différence nous n'avons à ce jour pas accès au code source des modules
micro:bit
additionnels de la
TI-83 Premium CE Edition Python
, ni à aucun outil permettant de générer ce genre de module, et ne pouvons donc ni corriger, ni améliorer, ni étendre ces modules. :'(

Nous sommes donc hélas dans l'incapacité de faciliter ton utilisation des nouveaux éléments de la
micro:bit v2
depuis ta calculatrice, notamment les microphone, haut-parleur et bouton tactile. La seule façon de les exploiter à ce jour sera de faire appel à la fonction
mb_run()
partagée plus haut, et lui passer en paramètre le code
Python
brut à exécuter par la carte.
Avec les difficultés que cela implique, ton script comportant alors à la fois du code
Python
qui sera exécuté dans le contexte de la calculatrice, et du code
Python
qui sera exécuté dans le contexte de la carte
BBC micro:bit
. Il ne faudra surtout pas confondre, les contextes des deux interpréteurs
Python
étant très différents. Pas le meilleur cadre, du moins pour débuter... :#roll#:



Téléchargements
:


Ressource
:
activités vidéo
micro:bit
pour
TI-83 Premimum CE
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 13.7%
 
Posts: 37201
Images: 10337
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

Return to News TI-z80 (TI-73, 76, 80, 81, 82, 83, 84, 85, 86)

Who is online

Users browsing this forum: No registered users and 22 guests

-
Search
-
Social
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Découvre les nouvelles fonctionnalités en Python de l'OS 5.2 pour les Nspire CX II
Découvre les nouvelles fonctionnalités en Python de l'OS 5.5 pour la 83PCE/84+C-T Python Edition
Omega, le fork étendant les capacités de ta NumWorks, même en mode examen !
1234
-
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.
495 utilisateurs:
>482 invités
>8 membres
>5 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)