top of page
Liens utiles
LIENS UTILES
 
 
CocoBLOCKLY « en ligne » :
http://cocorobo.hk/cocoblockly/dev/
Comme ARDUBLOCKLY, mais beaucoup plus fourni en terme de fonctions.
Voir l'article http://www.les-trains-de-hugo-et-vincent.fr/articles.php?lng=fr&pg=527
 
Une version d'ARDUBLOCKLY « en ligne » :
https://ardublockly.zaragozamakerspace.com/
Sympa, avec quelques fonctions «Math» et «Texte» supplémentaires, et quelques rubriques en plus (MP3, carte SD, robotique...)
 
Tutoriel ARDUBLOCKLY :
https://www.electromaker.io/blog/article/introducing-ardublockly-for-arduino
Bien fait.
Plein de petites videos explicatives sur l'utilisation des blocs.
A retenir pour un usage pédagogique.
 
Installer ARDUBLOCKLY :
https://learn.edwinrobotics.com/getting-started-with-ardublockly/
Petit topo simple et sympa.
 
Une version « en ligne » de CocoBLOCKLY, pour Attiny :
https://cocomake7.github.io/cocoblockly/
Blocs de base : comme ARDUBLOCKLY.
Quelques rubriques robotiques supplémentaires et quelques exemples.
Apparemment strictement réservé à Attiny.
A étudier.
https://learn.mansteri.com/en/c/efa/efacocomake/
Semble être utile pour la programmation de l'Attiny avec CocoBLOCKLY (?)
 
BlocklyDuino « en ligne » (celui-là je l'aime bien)
 
 http://greich.fr/BlocklyDuino/
  • le jeu de blocs est très complet ;
  • l'option «PULLUP» existe ;
  • le bloc «LISTE» génère un code correct, contrairement à CocoBLOCKLY ;
  • c'est en français !
  • infrarouge, servo, moteurs PaP.
 
Encore un :
 
https://code.makewitharduino.com/
Installation « portable »
Installation « PORTABLE »
Installation « en local »
L'installation décrite dans le chapitre suivant, Installation « en local », est finalement assez contraignante et lourde.
Une autre solution existe : la solution « portable ».
Seul le driver CH34xxx devra impérativement être installé sur l'ordinateur.
  • télécharger le logiciel ARDUBLOCKLY à cette adresse :

https://github.com/carlosperate/ardublockly/releases/tag/v0.1.2  

 
  • tout en bas de la page, choisissez ardublockly_v0.1.2_windows.zip
  • dézippez-le ;
  • copier le répertoire ainsi généré sur votre clef dédiée à ARDUBLOCKLY
Ensuite :
  • télécharger L'IDE ARDUINO à cette adresse : 

 

https://www.arduino.cc/en/software
 

  • choisir l'option  Windows 7 and newer
  • dans l'écran suivant, choisissez «JUST DOWNLOAD» ;
  • copier le répertoire généré dans la clef dédiée à ARDUBLOCKLY
Il s'agit de la toute dernière version 1.8.16 de L'IDE (... à la date du 01 oct. 2021).
Pourquoi se priver ?
 
Enfin :
  • télécharger le driver pour cartes ARDUINO UNO chinoises ICI ;
  • dézipper ;
  • installer le drivers sur l'ordinateur.
     
Vous pouvez ensuite tester le démarrage des logiciels :
  • ardublockly_run.bat pour démarrer ARDUBLOCKLY ;
  • arduino.exe (application) pour démarrer L'IDE ARDUINO ;
Installation en « LOCAL »

ARDUBLOCKLY est un éditeur visuel de programmation pour ARDUINO.
Il utilise des blocs fonctionnels et génère le code ARDUINO C++.
Il peut fonctionner «en ligne» ou «en local».

Le «package» ArdublocklyServer Python initialise un serveur local capable de compiler et de charger le code dans l'ARDUINO en utilisant ARDUINO IDE (l'environnement de développement de l'ARDUINO).


Installation ArduBlockly «en local»
 
Au final, le répertoire contient ceci :
ARDUBLOCKLY-2.png

En grisé, ce sont les fichiers et répertoires de ardublockly-mchp_atmel.
Les autres sont ceux de Python.

A remarquer dans cette liste la présence de 2 fichiers : «start.py» et «ARDUBLOCKLY.BAT».
 


Pour utiliser ArduBlockly
 
La procédure de démarrage de ARDUBLOCKLY ne se fait que par «start.py» qui initialise le serveur local puis lance ARDUBLOCKLY.
Ceci est réalisé par une ligne de commande (ex. DOS), à partir du répertoire :
C:/Users/Hubert/AppData/Local/Programs/Python/Python38.
C'est un peu (beaucoup) pénible de devoir chaque fois ouvrir une ligne de commande (fenêtre DOS), de rejoindre le répertoire ci-dessus en tapant une succession de commandes, puis de lancer «start.py».
C'est ce qui explique la présence, dans le répertoire ci-dessus, du fichier «ARDUBLOCKLY.BAT» que j'ai créé et dont le contenu est le suivant :

cd

cd C:/Users/Hubert/AppData/Local/Programs/Python/Python38
python start.py

  • la première ligne repositionne le gestionnaire de fichiers à la racine du disque C:
  • la deuxième ligne positionne le gestionnaire dans le répertoire qui contient «start.py» et l'ensemble des fichiers de PYTHON et ARDUBLOCKLY :
  • la troisième ligne lance le processus.
Pour des raisons de commodité, il est utile (et même indispensable) de déposer une copie de ce fichier ARDUBLOCKLY.BAT sur le bureau, de façon à accéder rapidement à la procédure de lancement de ARDUBLOCKLY.
 
Avant d'écrire le premier programme ARDUBLOCKLY...
 
Voici comment se présente ARDUBLOCKLY :
ARDUBLOCKLY-1.png
 
ARDUBLOCKLY s'est ouvert dans le navigateur internet mais la barre d'adresse indique 
 
«http://localhost:8000/ardublockly/?lang=en#»
... ce qui signifie que ARDUBLOCKLY fonctionne hors connexion, en local.
La première chose à faire, c'est de paramétrer ARDUBLOCKLY.
Pour cela, dérouler le menu situé à gauche de l'icône «Microchip» et choisir «Settings».
ARDUBLOCKLY-3.png
ARDUBLOCKLY-4.png
 
  • un «clic» sur la première ligne permet de sélectionner l'emplacement du fichier «arduino.exe» qui est l'IDE de l'ARDUINO (programmation par ligne de code, compilation et téléversement du code dans l'ARDUINO) ;
  • la troisième ligne permet de choisir la carte ARDUINO utilisée ;
  • la quatrième ligne permet de sélectionner le port sur lequel est connecté la carte ARDUINO.
    Note : le port (ou la liste des ports) n'apparaît que si une carte ARDUINO est connectée.
  • la sixième ligne (non visible sur l'image) permet de choisir la langue : français ou anglais.
    (NDLR : je conseille vivement de choisir l'anglais. En effet, tous les langages de programmation utilisent l'anglais. Autant s'habituer tout de suite).
 
La suite est un jeu d'enfant !
 
Voici un programme tout simple qui fait clignoter une LED à un rythme de 1 seconde :
(ce programme est détaillé ICI)
ARDUBLOCKLY-5.png
(«clic» pour agrandir)
Remarque :
Le code C++ (visible dans la fenêtre de droite) est automatiquement généré : idéal pour l'apprentissage de la programmation par «lignes de code».
C'est ce code qui sera compilé et téléversé dans la carte ARDUINO, via l'IDE.
 
Note :
ARDUBLOCKLY ne permet assurément pas de développer des programmes très très complexes (comme celui de mon pont tournant ou de mes alimentations PWM).
Quoi que...
Par contre il permet, avec une simplicité déconcertante et sans faire d'erreurs de syntaxe, de créer rapidement des programmes, même complexes, bien documentés, faciles à comprendre et à modifier.
 
Si les mots «programmation», «langage C++», «ARDUINO»... vous font peur, nul doute que ARDUBLOCKLY va vous rassurer.
____________________
 
Cet article est issu de la traduction de l'article suivant :
 
http://atmeluniversityfrance.github.io/ArduBlockly.html
Étapes de la programmation
Les étapes de la programmation

 

 

Quelles sont les étapes de la programmation d'une carte ARDUINO ?

La succession des opérations est très simple :
  • on écrit un programme en langage C++ ;
  • on téléverse le programme dans la carte ARDUINO.
Ensuite, la carte ARDUINO ainsi programmée exécutera ce programme dès qu'elle sera alimentée.
Le logiciel de programmation
Pour cela il nous faut un outil : c'est L'IDE ARDUINO (Integrated Development Environment).
Ce logiciel est gratuit.
Version actuelle (début 2020) : v 1.8.11​ 

Voilà. La messe est dite.

Pas tout à fait...

Pour des raisons pédagogiques, afin de permettre l'accès à la programmation à partir de 10 ans d'âge, une couche supplémentaire est apparue en amont de L'IDE ARDUINO : la programmation par blocs.

Un des ancêtres de ce type de programmation s'appelle SCRATCH.

Tous les machinBLOCKLY ou BLOCKLYchose et même AppInventor2 en sont les descendants plus ou moins directs.

La programmation par blocs a investi de nombreux domaines :

  • ARDUINO ;

  • PICAXE ;

  • applications ANDROÏD (avec AppInventor 2) ;

  • ...

Seul Apple résiste encore et toujours à l'envahisseur.

 

Il nous faut donc un outil supplémentaire.
Pour ARDUINO, notre choix se porte sur ARDUBLOCKLY.
 
D'autres choix sont possibles, l'un n'excluant pas l'autre. Plus de détails ICI.

 

Que devient alors la chaîne de programmation avec ARDUBLOCKLY ?

Programmation
« lignes de code »
Programmation
« visuelle »
4
ARDUBLOCKLY
ARDUBLOCKLY-6.png
1
IDE
BLINK-PRINCIPE-4.png
3
2
ARDUINO_BLINK_0.png
RÔLE de ARDUBLOCKLY :
  • élaboration du programme « blocs » ;
⇒ le code C++ est généré automatiquement
  • transfert du code C++ dans L'IDE par copier/coller
RÔLE de L'IDE ARDUINO :
  • vérification du code C++ ;
  • compilation du code C++ en hexadécimal ;
  • téléversement du code hexadécimal dans la carte ARDUINO.
RÔLE de LA CARTE ARDUINO
  • faire fonctionner le programme hexadécimal (binaire).
ARDUINO
4
Seulement 4 étapes :
  • étape 1 : conception du programme par blocs de fonctions ;
  • étape 2 : transfert dans L'IDE ARDUINO du code C++ généré par ARDUBLOCKLY ;
  • étape 3 : téléversement du programme dans la carte ARDUINO ;
  • étape 4 : vérification du fonctionnement du programme.
 
Lors de la 3e étape, au moment précis où on décide de téléverser le programme dans la carte ARDUINO, il se passe beaucoup de choses :
 
  • L'IDE vérifie la syntaxe du code pour détecter les éventuelles erreurs d'écriture (mais pas les erreurs de logique) :
    En réalité L'IDE ne détecte aucune erreur puisque ARDUBLOCKLY a très bien fait son travail.
  • L'IDE convertit le code C++ en code hexadécimal, le seul que comprend le microcontrôleur ;
  • L'IDE vérifie que la taille du code ne dépasse pas la capacité mémoire du microcontrôleur ;
  • L'IDE « écrit » le programme hexadécimal dans le microcontrôleur ;
  • L'IDE nous avertit de l'avancement des opérations de téléversement.
 
Pour terminer, L'IDE rend la main au microcontrôleur de la carte ARDUINO ⇒ le programme s'exécute.
Considérations sur la mise au point d'un programme
Bien entendu un programme – quel qu'il soit – est un prototype qui nécessite une mise au point.
  • soit parce qu'il ne fonctionne pas à cause d'une erreur logique de programmation ;
  • soit parce qu'il fonctionne, mais pas comme on l'espérait, à cause de paramétrages mal adaptés (temporisations, comptages de boucles, mauvaise utilisation d'une variable, etc.).
⇒ c'est le lot commun de tout programmeur.
In effetti, sarebbe molto ingiusto che questi piccoli fastidi accadessero solamente a me !
Plus sérieusement...
La mise au point d'un programme passera donc par la répétition, un grand nombre de fois, des étapes 1 à 4.

 

C'est juste normal.
C'est même la seule voie pour aboutir à un programme de qualité.
C'est aussi la seule façon d'apprendre de nos erreurs.
Tous les blocs
TOUS LES BLOCS
BLOCS-en-STOCK-0.jpg
BLOCS-en-STOCK.jpg
BLOCS-en-STOCK-2.png
Jeu de blocs assez complet, suffisant pour programmer la majorité des petites applications en modélisme ferroviaire.
COCOBLOCKLY
PRÉSENTATION de COCBLOCKLY
cocoBLOCKLY.png
 
COCOBLOCKLY v3 est un environnement graphique de programmation par blocs.
Il est TRÈS semblable à ARDUBLOCKLY. C'est même un parent très proche.
Il fonctionne « en ligne ».
CocoBlockly-1.png
 
Ci-dessus un exemple de nouveaux blocs proposés.
 
 
Les « plus » de COCOBLOCKLY
  • les fonctions «Math» sont très complètes ;
     
  • le menu «Lists» (nouveauté) ne propose pas moins de 9 blocs pour créer et utiliser des listes (ce que ne fait pas ARDUBLOCKLY) ;
     
  • le menu «Logic» comporte un bloc très utile : «Switch... Case... Do...» (ce que ne fait pas ARDUBLOCKLY) ;
     
  • «Modules», une section supplémentaire, offre une quinzaine de rubriques dont Motor, Music, Screen (écrans OLED), Sensors (dont infrarouge), Bluetooth, WiFi... ;
     
  • il n'y a pas besoin de l'IDE ARDUINO pour compiler et téléverser les programmes : COCOBLOCKLY s'occupe de tout ;
     
  • des blocs spécifiques à chaque module permettent d'inclure automatiquement les bibliothèques nécessaires (infrarouge, step motor, etc.) ;
     
  • 18 exemples, déjà assez complexes, sont proposés tout assemblés, en plus des blocs de base ;
     
  • les programmes peuvent être sauvegardés soit en local, soit sur le «cloud» ;
     
  • la dernière mise à jour date de 2019, càd de cette année ;
     
  • une icône permet de prendre un instantané du programme sous forme de blocs, même si le programme occupe plus que la fenêtre visible ! Wouahh !
     
  • si on préfère transiter par l'IDE ARDUINO, une icône permet de copier le code source en entier, même s'il n'est pas visible en entier. Confortable. Très confortable.
     
Les «moins»
 
  • le choix de la langue est très limité : anglais, chinois abrégé de Hong Kong, chinois classique !
     
  • COCOBLOCKLY propose des tutoriels, mais... en chinois de Hong Kong ;
    (NDLR : mais si on demande la traduction en français de la page – clic de droite puis Traduire en français  on obtient une traduction très correcte et utilisable. Seuls les textes sous forme d'image restent en chinois, mais comme il s'agit des boites de dialogue, on se repère assez vite).
Je n'ai pas encore exploré toutes les nouvelles possibilités offertes par COCOBLOCKLY – loin s'en faut – mais les quelques essais que j'ai tentés génèrent des programmes dont je préfére ne pas être obligé d'écrire le code directement en C++ !
 
Juste pour donner un aperçu de la puissance des blocs supplémentaires, voici le code généré par le seul petit bloc «IR Recever Setup»  ci-dessous :
COCOBLOCKLY-PRG-3.png
COCOBLOCKLY-PRG-1.png
 
 
Ce bloc met en place tout ce qui est nécessaire à un programme ARDUINO pour détecter les signaux de n'importe quelle télécommande :
  • 11 librairies pour 11 marques de télécommandes ;
  • 17 définitions pour 17 touches d'une télécommande ;
  • la partie «réception» du signal IR ;
  • le sous-programme qui détecte automatiquement le protocole de la télécommande utilisée ainsi que le code reçu !
  • les lignes de code pour afficher les codes IR reçus directement sur l'écran de l'ordi utilisé
    comme moniteur ;
  • ... plus 2 ou 3 bricoles déclaratives indispensables ;
  • 79 lignes de code !
Il ne reste plus qu'à utiliser intelligemment les infos qui sont générées par ce programme. Mais ça, c'est du niveau «débutant».
Chapeau bas !
Et c'est du même tonneau pour la partie Bluetooth ou WiFi.
floor() et ceil()
C++ floor() et ceil()
Floor_Ceil_1.png
Floor_Ceil_2.png
INSTALLATION EN LOCAL
COMPARATIF
COMPARATIF

Erratum :
En 3e colonnes des tableaux ci-dessous il faut lire «BLASCARR» avec 2 «R».

Le site ARDUBLOCKLY BLASCARR est accessible à l'URL https://ardublockly.blascarr.com/ardublockly/#


Notes :
 
ARDUBLOCKLY_COMPARATIF_2.png
ARDUBLOCKLY_COMPARATIF_4.png
ARDUBLOCKLY_COMPARATIF_1.png
ARDUBLOCKLY_COMPARATIF_3.png

Ressources ARDUBLOCKLY

bottom of page