www.bricobot.ch
Programmer

Programmer

Ce document s'adresse à des jeunes qui sont attirés par la programmation, et qui ne connaissent pas toutes les options possibles. Elles sont nombreuses, et chaque personne avec laquelle vous en discuterez proposera une autre solution. Si cette personne peut vraiment vous aider et vous consacrer du temps, suivez son conseil. C'est assez décourageant de se trouver seul devant un programme dont on ne comprend pas les réactions. Il faut connaître un "gourou" qui peut vous aider.

On peut programmer un PC ou un Mac pour interagir seulement avec le clavier-écran, éventuellement une manette de jeu. Si vous rêvez de faire votre super jeu vidéo, les environnements (ensemble de programmes) sont complexes.
On peut programmer dans différents langages sur un PC, pour un PC sur lequel des cartes d'entrées sorties sont connectées pour commander sa maquette de train ou une application industrielle.
On peut programmer une carte performante pour gérer un affichage, une liaison internet, des moteurs puissants.
On peut programmer les moteurs et capteurs d'une carte robotique, en C ou en Basic
On peut s'intéresser à des robots, affichages, gadgets utilisant des processeurs simples et petits que l'on programme en assembleur.
Comme pour les motos - vélos de course - VTT il y en a pour tous les goûts

Nous voudrions vous proposer ici des programmes gratuits bien documentés. Mais c'est un énorme travail qui ne cadre pas avec nos intérêts. Nous listons quelques liens trouvées via Google et non testés. Si vous pouvez nous aider à être plus complet et plus précis, cela sera apprécié de tous les lecteurs.

Notre intérêt est la réalisation de montages basées sur les PICs de Microchip. Si cela vous intéresse, allez tout de suite sur www.didel.com/pic/Programmer.pdf

Si c'est plutôt un processeur AVR ou autre qui vous passionne, on vous fera toute la place qu'il faut sur le site Bricobot. Arduino mentionné plus loin est un excellent environnement probablement mieux adapté pour des applications robotiques complexes. Qui veut bien gérer des pages Arduino sur le site Bricobot?

Revenons à notre inventaire.

On peut commencer à programmer très jeune (8-10 ans), plusieurs langages permettent de dessiner et déplacer des lutins sur un écran.

Logo tortue
Avance, tourne, etc, et quelques ordres plus compliqués

http://sourceforge.net/projects/tortue/ En java
http://wfr.tcl.tk/tortue Prometteur
http://guillot.emmanuel.free.fr/jLogo/ jLogo tortue, doc en français
http://netdrive.montclair.edu/~maciakl/labs/Programming%20Lab.pdf

Scratch et Alice
Langage graphique, on accroche des icones.instructions et on fair bouger des lutins en musique.
http://ilearnit.ch/fr/scratch.html  
http://www.informatica08.ch/fr/scratch/wettbewerb.html  
http://scratch.mit.edu/  
http://www.framasoft.net/article4507.html La doc commute rapidement sur l'anglais
http://www.alice.org/  
   

Basic256
Les instructions performantes du Basic pour calculer, manipuler des textes, faire des jeux, dessiner des courbes mathématiques.

http://kidbasic.sourceforge.net/  
http://www.teslogiciels.com/article748.html En français jusqu'au bout?
http://packages.debian.org/lenny/basic256  
http://www.libertybasic.com/ bien, 60 USD

Forth
Un langage qui empile tout, et a ses passionnés qui admirent sa compacité.

http://www.rfc1149.net/devel/picforth En français
http://tutor.al-williams.com/picforth1.htm  
http://www.ram-tech.co.uk/  
   

Pascal
Un langage qui a eu ses heures de gloire.

http://www.mikroe.com/en/compilers/mikropascal/pro/pic/ Vendu 199 USD en 2009
   

C
Le C toujours à la mode, avec ses variantes pédagogiques et industrielles (non listées ici)

http://www.ceebot.com/ceebot/index-f.php Très convivial
http://www.arduino.cc/en/Main/Software Le meilleur C sur microcontrôleur AVR
http://www.logedu.com/devpic87x.html En français,  gratuit jusqu'à 2k
   
   

Assembleur didactique
Le simulateur de Dauphin est le meilleur moyen pour comprendre le codage de l'information et le traitement des instructions dans un ordinateur.
http://www.epsitec.ch/dauphin/ Simulateur didactique très bien illustré
http://www.epsitec.ch/downloads/documentation/dauphin/dauphin2.pdf
   

Assembleur sur des ordinateurs pionniers
Chaque machine a son assembleur, réservé pour écrire le logiciel système.
Si on connaît le nom de l'ordinateur (EDVAC, Zebra, etc) on trouve sous Google des descriptions de l'architecture et du répertoire d'instructions, et parfois des simulateurs

   
   

Assembleur CALM
Les notations CALM (Common Assembly Language for Microprocessor) facilitent la compréhension et l'utilisation de l'assembleur. Patrick Fah a développé des assembleurs pour 12 familles de processeurs. Sebastian Gerlach a développé l'environnement de développement SmileNG sur PC-Windows. Smile existait sur Smaky depuis 1985.

http://www.didel.com/picg/calm/Calm.html (spécifications, tous les processeurs)  

http://www.didel.com/pic/Calm.pdf (orienté PIC)
www.bricobot.ch/docs/SmileNG.zip (exécutable)

 

 

Simulation de robot
http://mobots.epfl.ch/aseba.html Programmer une population de robots
http://mobots.epfl.ch/data/aseba/aseba-challenge-slides-fr.pdf En français

http://www.cyberbotics.com/

Webot, simulateur commercial pour la recherche, très performant
   

Programmation d'un microcontrôleur pour un robot ou autre application

Il faut commencer avec l'environnement le plus simple possible
Programmer le processeur à l'état brut permet des applications temps réel dans des petits processeurs avec des codes très courts.

Une bonne documentation en français est rare. Sur Mac, il y a très peu d'outils de programmation. Signalez ce qui est intéressant (et testé) pour compléter la liste ci-dessous.

Ordres envoyés par un PC
Le robot dialogue avec le PC via une ligne série (et un adaptateur USB). Des ordres élémentaires circulent pour déplacer le robot et connaître ses capteurs. Un programme spécifique ou un programme écrit en VisualBasic, VisualC, etc, commande le robot.

http://www.ceebot.com/ceebot/index-f.php Le programe d'abord simulé est testé
www.didel.com/bot/Serie.doc Commande le DidelBot

www.didel.com/dev877/PdHexo.doc

Commande la carte RoDev877
   

Basic
Le Basic est facile mais il ne connaît que le décimal, ce qui complique l'interaction avec les interfaces qui sont évidemment en binaire. Les Basics sont peu compatibles, des ordres supplémentaires étant ajoutés selon le matériel piloté.

http://www.parallax.com/tabid/295/Default.aspx Parallax BasicStamp
http://gcbasic.sourceforge.net/ GCbasic pour 16Fxx de Microchip

http://www.bricobot.ch/docs/GCbasic.pdf

GcBasic documenté pour Bimo
   

Assembleur CALM avec macros en français
Une bonne solution pour n'avoir qu'un minimum de notions (constantes, puis variables) à acquérir pour commencer à programmer.

http://www.bricobot.ch/docs/Abimo.pdf

Leds et moteurs du Bimo
http://www.bricobot.ch/docs/Coeur4Prog.pdf Leds du Coeur4
http://www.bricobot.ch/docs/OrionProg.pdf Leds Orion
http://www.bricobot.ch/docs/VegaProg.pdf Leds Vega et Deneb
   

Assembleur CALM pour Pic10F 12F 16Fxx
Développé à l'EPFL pour pouvoir passer plus rapidement d'un processeur à l'autre, CALM facilite l'apprentissage et réduit les erreurs de confusion d'instructions. Des assembleurs CALM ont été écrit pour 15 familles de processeur, mais seuls les PIC 10F 12F 16F sont supportés.

 

 
http://www.bricobot.ch/programmer/CalmBimo.pdf Avec des exercices sur Bimo/Bimo+
http://www.didel.com/picg/picg87x/CoursPicg87x.html Exemples sur 877 (ancien)
http://www.didel.com/dev877/ Avec support soft de la carte 2006
http://www.didel.com/pic/Prog877.pdf Nouveau cours 2009
http://www.didel.com/micro08/Microdules.pdf Support pour les Pics 6 à 40 broches
http://www.didel.com/pic/PicTests.pdf Programmes de tests

Assembleur Microchip
http://www.microchip.com/ MPLAB IDE
http://gputils.sourceforge.net/  
   
   

C pour Microchip
http://www.microchipc.com/  
http://www.mikroe.com/en/compilers/mikroc/pic/  
http://www.logedu.com/devpic87x.html En français, bien fait,   gratuit --> 2k
   

C pour AVR
http://www.ladyada.net/learn/arduino/  
   
   
   

Flowcode
www.matrixmultimedia.com/flowcode.php  
   
   
   

Quelque chose manque? Il y des lignes vides pour mettre l'information que vous avez. Merci.

jdn 090815

ACCUEIL