Tableaux Maths
Slogan du site

Des cours, des exercices et des vidéos réalisées par des élèves.
Outils numériques en classe et découverte de la programmation.

Panneau à led 8x8 USB ou Bluetooth (EDR et BLE) avec Python-Kivy

Faire varier les motifs d’un panneau à led 8x8 sur une carte Arduino par une application Python-Kivy en USB ou en Bluetooth EDR ou BLE.

Article mis en ligne le 12 mai 2016
dernière modification le 31 mai 2019

Projets, matériels et librairies :

De la même façon, vous pouvez piloter un robot motorisé Arduino : voir ici

Projets :

Vous trouverez dans cet article :

  • Comment créer les motifs et les faire varier (p.1)

Trois façons de piloter le panneau à LED :

  • Par USB (p.2)
  • Par Bluetooth classique (mode EDR) avec Android et Python-Kivy (p.3)
  • Par BluetoothLE (mode BLE) avec Android et Python-Kivy (p.4)

Voici une vidéo de Théo (il utilise ici une carte bluetooth EDR) :

<iframe class="player" type="text/html" width="600" height="480" src="http://www.youtube.com/embed/SPuXReKNHoI?enablejsapi=1&wmode=transparent&modestbranding=1&rel=0&fs=1&showinfo=1" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen >

Matériels :

  • Carte Arduino Uno
  • Panneau à led 8x8 : ici
  • Un Grove base Shield

Pour la connexion Bluetooth, deux possibilités (mais préférez le mode EDR, c’est plus simple) :

  • Une carte bluetooth HC-06 (ou HC-05) pour une connexion en mode EDR
  • Un Grove BLE_v1 pour une connexion en mode BLE.
    (Il existe des cartes bluetooth dual-mode...)

Librairies Arduino :

Il vous faudra une version récente d’ardublock et des librairies augmentées (au moins 0.57 de mars 2016) : ici

Créer des motifs :

Pour mieux comprendre le fonctionnement du panneau à LED côté Arduino, Voici un premier exemple permettant de faire varier les motifs de façon autonome (sans connexion) :

Le panneau est fixé sur les pins D7, D8 et D9.

Une vidéo :

Le lien pour créer facilement les motifs : ici

Le code Arduino :

++++

Connexion USB

Création des motifs :

http://duinoedu.com/tools/matrix/

Le panneau est fixé sur les pins D7, D8 et D9.

++++

Connexion Bluetooth EDR

Création des motifs :

http://duinoedu.com/tools/matrix/

Le panneau est fixé sur les pins D7, D8 et D9.

On créé l’application Android avec Python-Kivy. (Evidemment, le code donné par Théo dans cet article ne fonctionne que sur Android...)

Le principe de la connexion vient d’ici : https://gist.github.com/tito/7432757

Remarques :

  • Le fichier buildozer.spec contient le nom de l’application, les droits BLUETOOTH et BLUETOOTH_ADMIN
  • La carte bluetooth s’appelle "HC-06" donc, si vous avez une autre carte, vous pouvez changer ce nom dans le code Python puis repackager votre application avec buildozer oubien simplement changer le nom de votre carte en "HC-06" sur la tablette.
  • Vous pouvez améliorer cette application en proposant dans votre interface utilisateur une liste de tous les périphériques bluetooth appairés sur la tablette afin que l’utilisateur choisisse le bon. (Cela permet de se passer du nom "HC-06" figé).
    La liste paired_devices dans le code Python est la liste de tous les périphériques bluetooth appairés sur la tablette... Ce n’est pas très compliqué de lister les noms...
  • Pour appairer la carte "HC-06" avec la tablette, il faut entrer le code "1234".

Voici le résultat du projet de Théo en vidéo (il améliore actuellement son application) :

L’ensemble du projet dans un zip :

  • buildozer.spec
  • main.py
  • images
  • l’application android (.apk)
  • le fichier ardublock (.abp)
  • le code arduino (.ino) :

Tous les codes en ligne :

Le code Python Kivy :

L’image ardublock :

Le code Arduino correspondant :

++++

Connexion BluetoothLE

La connexion BLE est plus compliquée. Il vous faudra implémenter la classe BluetoothGattCallback et renseigner ce fichier java dans le buildozer.spec.

Vous trouverez un résumé de ce fonctionnement : ici

L’ensemble du projet dans un zip :

  • Le fichier buildozer.spec
  • Le main.py
  • Le fichier BluetoothGattImplem.java
  • L’application Android (.apk)
  • Le code Arduino (.ino)
LED_BLE
Tous les fichiers pour piloter un panneau à LED Arduino avec une application Android (KIvy) en Buetooth Low Energy

Voici le résultat en vidéo :

Création des motifs :

http://duinoedu.com/tools/matrix/

Le panneau est fixé sur les pins D7, D8 et D9.

On créé l’application Android avec Python-Kivy. (Evidemment, le code ne fonctionne que sur Android...)

Remarques :

  • Le fichier buildozer.spec contient le nom de l’application, les droits BLUETOOTH et BLUETOOTH_ADMIN ainsi que le lien vers le fichier .java
  • La carte bluetooth s’appelle "HMSoft" donc, si vous avez une autre carte, vous pouvez changer ce nom dans le code Python puis repackager votre application avec buildozer oubien simplement changer le nom de votre carte en "HMSoft" sur la tablette.
  • Vous pouvez améliorer cette application en proposant dans votre interface utilisateur une liste de tous les périphériques bluetooth appairés sur la tablette afin que l’utilisateur choisisse le bon. (Cela permet de se passer du nom "HMSoft" figé).
    La liste paired_devices dans le code Python est la liste de tous les périphériques bluetooth appairés sur la tablette... Ce n’est pas très compliqué de lister les noms...
  • Pour appairer la carte "HMSoft" avec la tablette, il faut entrer le code "000000".

Le code Arduino :