Général langage MMBASIC

  • Auteur de la discussion Dudulle
  • Date de début
D

Dudulle

Compagnon
Bonjour à suite

Suite au fil ouvert par Wika58 et à son invitation à détailler mon message je me permet d’ouvrir un fil pour vous parler de MMbasic

Il s’agit d’une adaptation du BASIC originel (très proche de Qbasic, quickbasic, ou les versions comme on pouvait trouver sur amstrad ou MO5) sur carte microcontrôleur 32 bits.

Le projet est l’œuvre du Geoff Graham, qui a fait un travail fantastique : https://geoffg.net/

Les cartes sous MMBasic sont assez différentes du concept arduino : Il s’agit d’un langage et d’un environnement, qui peuvent fonctionner de façon autonome ; c’est à dire que si on relie un clavier en PS2 et un moniteur en VGA sur la carte on obtient l’équivalent d’un ordinateur complet sur lequel on peut coder et relier des périphériques.

Par exemple on peut voir ma carte maximite ci dessous, qui est juste connectée à une alim et un clavier. Il est possible de l'utiliser et la programmer sans équipement supplémentaire.
20240127_214433.jpg

On peut aussi l’utiliser avec un terminal, c’est-à-dire que l’ordi personnel remplace le clavier et le moniteur.

Un espace mémoire est alloué sur le pico (quelques centaines de ko) sur lequel on peut sauvegarder ou charger différents programmes, ou sauver des données. On peut aussi le faire sur une carte sd pour avoir plus d’espace.

A la base MMbasic était porté sur des cartes peu communes à base de PIC 32 bits : Pour la petite histoire J’ai commencé sur une « duinomite » il y a une 12aine d’années, qu’il fallait commander en Nouvelle Zélande.

La famille s’est agrandie petit à petit, et depuis peu le concepteur du langage l’a adapté sur le raspberry pico, ce qui est une excellente chose étant donné les performances de la carte, les connectiques, la disponibilité et le prix de cette carte (autour de 5 euros en ce moment).

Alors pourquoi s’attarder sur ce type de carte que personne ne connait ?

Il y a plusieurs raisons :

  • Beaucoup « d’anciens » connaissent déjà le basic ce qui permet une prise en main rapide, moi-même je l’ai appris à l’école pendant la période assez brève où la programmation faisait partie de l’enseignement secondaire.
  • C’est un langage extrêmement facile à apprendre ; à mon sens beaucoup plus que le C++ d’arduino, ou même python.
  • L’exécution d’un projet est très rapide et simplifié par les librairies intégrées et « transparentes ». par exemple pour utiliser un écran tft il y a 1 ligne de config à taper en début d'appli, puis il suffit d'utiliser la commande print pour afficher, cls pour effacer...


Il est possible de coder en « basic spaghetti » avec des n° de lignes, ou bien d’utiliser un langage plus structuré, avec des procédures nommées, ou des fonctions.

L’interpréteur basic rend l’exécution du code plus lente qu’avec un arduino, mais on tourne tout de même aux alentours de 100 000 lignes de code par seconde. Si plus de rapidité est nécessaire il est possible d’effectuer certaines opérations en parallèle assembleur.

Il est difficile de détailler toutes les particularités de MMBASIC, le mieux est de regarder l’excellent manuel rédigé par le concepteur du langage : https://geoffg.net/Downloads/picomite/PicoMite_User_Manual.pdf

On pourra aussi jeter un œil à cet article pour une présentation rapide : https://www.siliconchip.com.au/Issue/2022/January/The+Raspberry+Pi-based+PicoMite
 
Dernière édition:
W

wika58

Compagnon
Merci pour la presentation. :smileJap:
 
Dernière édition:
P

pascalp

Compagnon
Merci.
Donc le Basic n'est pas mort et a sans doute toujours une place dans le paysage de la programmation. Il ne fait pas tout, il ne le fait pas vite mais son approche et simple et parfois largement suffisante. Avec une bonne technique de programmation on peut lui faire faire des choses complexes (tout en restant facilement dé-bugable).
Ma jeunesse, entre assembleur et basic !

[edit]
J'ai jeté un rapide coup d’œil sur les liens fournis. Ce basic à perdu sa portabilité, il est totalement intégré au pico, en contre-partie il est bien plus riche et est autonome avec ses périphériques de communications, à minima clavier/écran.
 
Dernière édition:
D

Dudulle

Compagnon
Effectivement il y a picaxe, mais ce n'est pas tout a fait le même basic que celui des "origines".
Ceci dit l'apprentissage est facile également.
Il existe aussi d'autres déclinaisons en système portable, par exemple tinybasic, qui tourne même sur un petit µC type D1 mini, mais ce n'est pas aussi abouti que MMBasic
 
T

tamilhaz

Nouveau
Bonjour.
Du coup, j'ai recherché pour voir si un autre "vieux" langage jadis assez populaire était "actif" dans le domaine des microcontrôleurs : le Pascal.
Rien trouvé, à part qu'il remonte légèrement comme outil de programmation généraliste. Dommage, me semble t-il car je l'aimais bien...
Trop lourd répondront les adeptes du C++...
 
D

Dudulle

Compagnon
Tu dois pouvoir le faire en delphi, qui est l'évolution du pascal
 
W

wika58

Compagnon
Tu pourrais mettre dzs liens vers qq cartes...

Bon dimanche.
 
D

Dudulle

Compagnon
Le plus simple est d'utiliser le Raspberry pico, vu son prix et ses capacités :

Il faut simplement flasher la carte pour y installer l’interpréteur MMbasic :
- On télécharge le firmware sur cette page (fichier uf2) : https://geoffg.net/picomite.html
- On connecte le pico en usb, qui va apparaitre comme un stockage externe, on y copie le firmware.
- Le pico se flash automatiquement. Au bout de 5/10 secondes la led embarquée va clignoter doucement, le carte est flashée
- Il faut alors regarder quel port COM est utilisé par le pico, et on peut y accéder par un terminal, je conseille tera-term : https://tera-term.fr.softonic.com/
- On le lance, et on renseigne le port du pico (port 9 pour moi)
- On voit alors une petite fenêtre apparaitre à l’écran, qui représente ce qui apparaitrait sur un moniteur. Par contre sur tera-term on ne peut pas voir de couleurs ou d’éléments graphiques, ce ne sera que du texte, mais sur un moniteur ou un ecran LCD on fait ce qu'on veut.
La fenêtre va sembler trop petit pour la plupart d'entre vous, mais on peut modifier la taille des caractères (menu configuration/police)

Sinon il y a la série des duinomites, qui sont d'excellentes cartes mais un peu plus chères :

Pour les maximite et micromite il faut les assembler soit même, un exemple ici : https://geoffg.net/MicromiteBackpack.html

Enfin il est possible de tester MMBasic sans acheter quoique ce soit, avec une version compatible windows. Les instructions seront pas contre plus limitées (pas de graphique, pas de ports entrée/sortie), mais on peut s'amuser à taper quelques lignes de code.
voir ici en bas de page : https://mmbasic.com/
 

Sujets similaires

p.e.basile
Réponses
1
Affichages
389
p.e.basile
p.e.basile
N
Réponses
0
Affichages
486
nathan33240
N
grandioso
Réponses
7
Affichages
506
grandioso
grandioso
V
Réponses
18
Affichages
1 170
V
M
Réponses
6
Affichages
1 153
MitchCanon
M
D
Réponses
33
Affichages
1 091
dh42
S
Réponses
18
Affichages
3 201
francois23
F
N
Réponses
27
Affichages
723
Jean 47
J
B
Réponses
7
Affichages
431
cancer49
C
W
Réponses
122
Affichages
9 648
Philippe85
Philippe85
W
Réponses
261
Affichages
18 610
midodiy
midodiy
Haut