mercredi 20 janvier 2016

Micromite MkII VERSION 5.0

J'ai eu l'occasion à plusieurs reprises d'écrire sur ce processeur de la famille PIC32 fonctionnant avec un puissant interpréteur Basic créé par Geoff Graham. La dernière version de l'interpréteur Basic que j'ai pu tester était la version 4,6b. Version que j'avais implémenté sur ma carte de développement spécialement créée pour Micromite :

Carte pratique et efficace ;-)
Comme cette carte le permet, il suffit d'y 'plugger' l'interface de programmation PicKit3 :

Facile...
Et de lancer l'interface de programmation de chez Microchip afin de programmer le circuit avec le nouveau firware en version 5 :

J'aime qu'un plan se déroule sans accrocs!
Et enfin de constater quelques instants plus tard, que le processeur contient bien le nouvel interpréteur Basic :

Et voilà.

Bien. Et alors?

Je passerai sur les améliorations en tous genres que Graham à porté à son Basic pour pointer une caractéristique bien intéressante : la gestion directe des afficheurs graphiques commandés par un contrôleur ILI9341. Pour avoir tenté, et réussi, d'implémenter ce type de gestion d'afficheur sur un petit processeur Atmel, je n'ai pu qu'être séduit par le fait de disposer de telles ressources disponibles sous la simple forme de quelques commandes Basic.

Le type d'afficheur dont il est question :

Cet afficheur possède de plus une interface tactile.
Il est possible de trouver ces afficheurs en taille de 2,2",  2,4" ou 2,8", équipé ou pas, de l'interface tactile. Pour mes tests, je disposais d'un afficheur sans interface tactile, ce qui devait suffire cependant à évaluer le système.

Le type d'afficheur utilisé, avec contrôleur ILI9341.
Le montage utilisé se compose donc de ma carte de développement spécialement étudiées pour Micromite, d'un afficheur adéquat sans interface tactile et, pour mettre en pratique le petit code d'exemple fourni dans la documentation du Basic, d'un module d'horloge temps réel obtenu sur la 'Bay' :

Des fils partout mais cela reste simple!
Un petit mot au sujet du module Temps réel : de la même façon que pour l'afficheur couleur graphique, l'interpréteur Basic possède les instructions nécessaires à la gestion simple d'un tel module équipé d'une puce de type DS1307 de chez Maxim. Il est possible de trouver ce genre de modules équipé non pas d'un DS1307 mais d'un circuit DS3231, plus précis mais toujours compatible avec le DS1307, et comportant en plus une petite mémoire EEPROM :

Ce module n'utilise pas une pile CR2032 mais un accumulateur LIR2032
L'afficheur LCD couleur est connecté simplement avec quelques liaisons sur le bus SPI du processeur.
Le module Temps réel est connecté sur le bus I²C du processeur.
Le tout, en fils volants mais sans complexité.

Une fois ce montage réalisé, il suffit de rentrer les quelques lignes de code Basic suivantes :

OPTION EXPLICIT
CONST DBlue = RGB(0, 0, 128)  ' A dark blue colour
COLOUR RGB(GREEN), RGB(BLACK)
FONT 1, 3
BOX 0, 0, MM.HRes-1, MM.VRes/2, 3, RGB(RED), DBlue
DO
TEXT MM.HRes/2, MM.VRes/4, TIME$, CM, 1, 4, RGB(CYAN), DBlue
TEXT MM.HRes/2, MM.VRes*3/4, DATE$, CM
' IF TOUCH(X) <> -1 THEN END
LOOP

pour obtenir le résultat suivant :



Remarque, la ligne Basic contenant la lecture de l'interface tactile de l'écran a été mise en commentaire car l'afficheur ne possédant pas cette interface, l'instruction de calibrage n'a pas pu être utilisée. Le test de l'interface tactile génèrerait alors une erreur et stopperait l'exécution du programme.

Force est de constater que la réalisation de systèmes conviviaux devient de plus en plus aisée avec ce type de matériel. Pourquoi ne pas imaginer la réalisation d'une version simple de thermostat?

Aucun commentaire:

Enregistrer un commentaire