Jupyter Notebook and CircuitPython

Today I learned that CircuitPython (from @adafruit) is available as a kernel for Jupyter Notebook so I had to try it out!

Installation on Windows 10

There is a tutorial on the Adafruit website that details how to install CircuitPython as a jupyter kernel. It uses the Anaconda distribution – which is not what I have installed on my computer. So I went a bit on my own.

Virtual Environment

First I created my virtual environment. I have a few python versions pre-installed which forces me to be explicit when choosing which version. Most people would only need to type python3

 python3.6.64 -m venv circuitpython

Preparing to activate the virtual environment:

cd circuitpython\Scripts

Activating is simple now.

activate

Installing Jupyter

Now that the virtual environment is active we need to install the Jupyter files. This process takes a bit of time but is quite painless on the user.

python -m pip install jupyter 

Installing the circuitpython kernel

Go to the Adafruit Github and download the latest circuitpython kernel release. Unless you want to experiment, it’s best to avoid the beta release and go with the latest release tag. As of the time of writing this post, it’s version 0.3.2

Scroll to the Assets section and download the zip file (or the other one if you prefer, whatever your computer can handle).

Unzip the file and place its content (a folder named circuitpython_kernel-master) into the circuitpython folder we created previously. cd into this new folder to install the kernel.

Following the Adafruit tutorial, now the two following commands are needed:

python setup.py install
python -m circuitpython_kernel.install

The following allows you to verify that all is good

jupyter kernelspec list

Installing CircuitPython on the CircuitPlaygroundExpress

If it’s not already done, CircuitPython needs to be installed on whatever board you have on hand. I happen to have a Circuit Playground Express.
Follow the tutorial to set your board into bootloader mode to transfer circuitpython.

Grab the appropriate file from Adafruit Github.  Look for the latest release and the assets for that specific release. I drop it directly onto the CPLAYBOOT drive.

Starting the Notebook

Typing jupyter notebook from my circuitpython folder will start up the kernel and launch my browser. YES! Let’s go into circuitpython_kernel-master/examples and run the CPX_Blinka notebook as per the Adafruit tutorial

Top right arrow does indicate the circuitpython kernel, and the numbers next to the cells show a successful run! ( I did a run all cells to get here)

At this point I have interactive python on my circuitplayground! Woohoo!

Programmer son micro:bit à l’aide d’une tablette Samsung (Android)

Sur Twitter on me demande un coup de pouce pour programmer un micro:bit à l’aide d’une tablette Android. Je vais donc documenter ici les étapes qui fonctionnent pour moi.

À noter que, pour l’instant, Scratch 3 ne supporte pas le micro:bit à l’aide d’une tablette (le Scratch Link est juste pour Windows et MacOS au moment d’écrire ces lignes). Par contre on peut quand même faire quelque chose avec Makecode et l’app de Samsung.

Installer l’appli de Samsung

Ça date un peu mais ça fonctionne toujours. Voici l’appli officielle pour l’instant. Un jour elle ne sera plus nécessaire mais faut vivre avec encore.
https://play.google.com/store/apps/details?id=com.samsung.microbit

Connecter son Micro:bit à l’appli

Ceci se fait en deux étapes, comme toute connection bluetooth. En premier, il faut mettre le micro:bit en mode “pairing”. Pressez les boutons A et B en même temps, puis appuyez le bouton “Reset” à l’arrière. Lâchez le “Reset” mais maintenez la pression sur les deux autres boutons jusqu’à ce que le symbole Bluetooth soit affiché sur les DELs rouges, ou que le code d’identification du micro:bit soit affiché.

Appuyez sur le bouton Next dans l’interface de la tablette.

Reproduisez le code d’identification sur l’écran suivant. Chaque micro:bit aura son propre code graphique.

La prochaine étape est un peu complexe. La tablette va chercher à contacter le microbit et commencer un dialogue. Il y a normalement un échange de codes entre deux dispositifs Bluetooth mais le microbit n’a pas d’écran ou de clavier. S’ensuit donc une interaction un peu boiteuse ici. Hop, une bonne respiration et on y va! Cliquez sur le bouton vert “PAIR” et patientez un peu. Oui, l’interface sur la tablette vous demande de presser le bouton A mais soyez patient. Il faut le faire seulement lorsque le NIP vous sera demandé.

Pour ma part je peux avoir jusqu’à 3 ou 4 échecs de connexion avant que le NIP ne me soit demandé. Il suffit de presser le bouton “retry”. Cette étape est un peu pénible mais lorsque le microbit sera reconnu, on n’aura pas à la refaire! (Dans une salle de classe, il serait important de garder une correspondance tablette-microbit pour éviter d’avoir à faire ce pairing à chaque cours).

Quand le NIP est demandé, pressez le bouton A sur le microbit le plus vite possible! Une série de 6 chiffres sera affichée sur l’écran de DELs rouges. Prenez-les en note, ils seront répétés plusieurs fois. Entrez-les dans l’interface de saisir de la tablette. Et finalement! Le micro:bit est reconnu par la tablette! Ouf! Oui, Microsoft travaille sur une meilleure expérience. Début janvier 2019, ce n’est pas encore prêt malheureusement.

Le code “PUVIV” visible ci-dessous est l’identificatif du microbit que j’ai utilisé. Chaque microbit a son propre code. Cliquez sur la toute petite flèche vers la gauche qui se trouve en haut à gauche.

Le code du microbit est visible dans l’écran des dispositifs BlueTooth de l’interface Android pour les prochaines fois, ce qui peut simplifier la gestion en classe.

Coder dans Makecode

On peut maintenant aller coder dans Makecode. J’utilise Chrome sur Android ici. Tout reste comme si l’on était sur un ordi à part qu’il est plus important de bien nommer ses fichiers avant de les transférer. N’utilisez pas l’option “Code” présente dans l’appli Samsung. Elle ne fonctionne plus, vous devez utiliser un fureteur web.

Télécharger

Pour télécharger notre code, il suffit de cliquer sur le bouton “Télécharger” et d’ignorer l’écran suivant. Le téléchargement est déjà fait comme vous pouvez le constater au bas de l’écran.

Transférer le code par Bluetooth

À ce point-ci, on rebascule vers l’appli Microbit de Samsung et on choisit “FLASH”

Mon programme apparait automatiquement, prêt à être transféré. Par contre le micro:bit n’est pas connecté. Cette fois-ci ça sera plus facile, promis.

Commencez par mettre le microbit en mode “pairing” (boutons A+B, plus reset, relâchez reset, attendez le petit graphique d’identification), et cliquez sur le dessin de connection en haut à droite de l’écran sur la tablette. Le pairing devrait se faire sans douleurs.

Cliquez sur le programme à transférer puis sur le bouton FLASH.

Le transfert par Bluetooth va commencer.

Si le microbit n’est pas en mode “bluetooth” au moment du transfert, vous obtiendrez un code d’erreur GATT. Après le transfert, le microbit sera rebooté et sortira du mode bluetooth. Il faudra penser à le remettre dans le bon mode pour le prochain transfert.

Conclusion

Ces étapes fonctionnent bien pour moi, avec une tablette Samsung Tab A datant de 2016. Je n’ai pas testé avec d’autres tablettes.

La première connection est pénible et devrait être faite par le prof avant d’introduire les micro:bits en classe. Le reste demande quand même quelques manipulations mais les jeunes en sont capables.

Une meilleure solution s’en vient. J’en parlerai lorsqu’elle sera disponible.