Not Quite C

URL: http://bricxcc.sourceforge.net/nqc/

Ces initiales siginifient « Not Quite C » (pas vraiment du C). Son auteur, Dave Baum, a créé un langage aussi puissant que le Mindscript mais avec une syntaxe type C qui devrait réjouir les allergiques au Basic.

Un avantage supplémentaire du NQC est qu'il utilise le firmware d'origine. Il est donc possible de faire cohabiter des programmes Mindscript ou NQC sur le RCX.

À noter, il existe un IDE (environnement de développement graphique) pour NQC nommé Bricxcc. Ce dernier installe et configure automatiquement NQC, propose un éditeur de code avec coloration de la syntaxe et intègre toutes les fonctionnalités de NQC et du firmware Lego.

Certains reprochent au firmware Lego de laisser peu de places aux variables (32 variables disponibles malgré 32 kilooctets de RAM). Des firmwares de remplacement ont été créés pour pallier à ce problème.

  • Langage intéressant pour le prolongement au secondaire de la robotique.
  • Permet l'apprentissage de la programmation dans un contexte significatif : faire fonctionner adéquatement un robot dans une siutation problématique donnée.
  • Prolongement logique des acquis de programmation de l'environnement Robolab
  • Permet une meilleure compréhension de la puissance de la brique RCX.
  • Permet le transfert rapide par la suite vers un langage évolué tel le C et le C++.
  • Fonctionnement intéressant car il existe sous les 3 plates-formes : Windows, MacOSX? et Linux.
  • Logiciel libre (NQC pas le firmware de Lego!)
  • Sous Win le GUI est BricxCC? (Super!) et sous MacOSX? le GUI MacNQC?.
  • Apprentissage relativement facile car les variables utilisées sont très significatives.
  • Permet un meilleur contrôle de machines ordinées.
  • Pour l'enseignant d'ISI ou de techno, l'approche fait plus sérieuse que l'environnement graphique de Robolab.

Inconvénients:
  • Aucune documentation francophone intéressante sur le sujet.
  • Travail de traduction à réaliser. Logiciel libre pour les GUI donc traduisibles à la base.
  • Travail à faire sous Linux. le USB est complexe à faire fonctionner. Par contre, le code est accessible...

BrickOS

URL : http://brickos.sourceforge.net/

BrickOS (anciennement LegOS?)

BrickOS fournit un environnement de développement pour le RCX basé sur les outils gcc et g++ ainsi que les outils nécessaires pour télécharger les programmes. Conçu à l'origine pour Linux, il est également utilisable sous Windows.

BrickOS (appelé précédemment LegOS?) est un petit système d'exploitation pour la brique RCX. BrickOS est généré par compilation croisée sous Linux ou Windows 95/98/2000/XP. Les programmes BrickOS peuvent être développés en C ou C++ et compilés en code natif pour le micro-contrôleur Hitachi H8.
C'est un environnement totalement libre. BrickOS remplace le système d'exploitation de LEGO. BrickOS est un système d'exploitation pour la brique Lego Mindstorms (aussi appelée RCX - http://www.legomindstorms.com). C'est un projet développé indépendamment de Lego qui vise à surpasser le logiciel de programmation graphique fourni avec la brique. Il permet de programmer en C (voire C++) avec la presque totalité des fonctionnalités de ce langage. Même si la documentation pour brickOS s’améliore, elle est reconnue comme étant difficile à comprendre.


Comment installer BrickOS sous Windows :

Configuration Tour USB Debian: http://www.duke.edu/~omd/Tidy%20Notes.html
http://www.linuxquestions.org/questions/history/206485

BRICKOS SETUP

  • Install BrickOS(previously called LegOS?) by following the instructions here: http://did.mat.uni-bayreuth.de/~matthias/veranstaltungen/ws2004/mindstorms/doc/brickos-howto.html EXCEPT FOR THE FOLLOWING CHANGES:
  • Instead of putting all files in /usr/local/src as suggested on the site, I put them in a new folder, /usr/local/brickOS
  • Step 4.1
    • In this step, 6 lines of the /var/log messages file are shown as they ought to appear. The last 2 lines of this file did not appear when I did the install. This is because the Linux computer in the lego lab is using devfs instead of udev (Google udev and/or devfs for tons more info). Because of this, I had to manually create a device node using the following command:

% mknod /dev/usb/legousbtower0 c 180 160

I got the idea from this site: http://legousb.sourceforge.net/legousbtower/index.shtml On a computer running udev, the device node is created automatically (I tried it on another computer).

  • After doing so, I was able to download the firmware.
  • Step 4.2
    • This step explains how to compile C programs for the RCX. Because I will be using C++ style coding instead, I also compiled the C++ programs located in the “c++” folder inside the “examples” folder
    • The brickOS install includes 2 copies of the example code. I chose to leave the copy in /usr/local/share/doc/brickos/examples/demo unedited in case I needed a backup copy. Instead, I worked with the code in /usr/local/brickOS/brickos-0.2.6.10.6/demo
    • The next part of step 4.2 is downloading a program. I found that I was unable to download a program when I set the tty variable in the command line. However, when I first set the RCXTTY variable (as in step 5), and then ran the dll command, the program was able to be downloaded.

A.k.a. this did not work:
% dll -tty /dev/usb/legousbtower0 /usr/local/brickOS/brickos-0.2.6.10.6/demo/helloworld.lx

But this did:
export RCXTTY=/dev/usb/legousbtower0
% dll /usr/local/brickOS/brickos-0.2.6.10.6/demo/helloworld.lx

If you run into the error “not a tty” while trying to download the firmware, this might be the issue.

  • To solve this problem, do step 5 (and then close and reopen the terminal window) before doing step 4.2
  • In addition to downloading helloworld.lx (a C program), I also tried downloading a C++ program, which also worked

BrickOS Howto
http://did.mat.uni-bayreuth.de/~matthias/veranstaltungen/ws2004/mindstorms/doc/brickos-howto.html
http://did.mat.uni-bayreuth.de/~matthias/veranstaltungen/ws2004/mindstorms/

brickOS C++ Documentation
http://brickos.sourceforge.net/docs/APIs/html-c++/

brickOS C Documentation
http://brickos.sourceforge.net/docs/APIs/html-c/
http://www.irisa.fr/caps/people/puaut/Mindstorm/TPMindstorm.html

http://tarpit.rmc.ca/abeaulie/GEF243/GEF243.html
http://www.automatesintelligents.com/labo/2002/archiveslegos.html
http://www.astolfo.com/home.asp
http://www.freelug.org/


Autres langages

Le SDK Lego http://mindstorms.lego.com/sdk2/default.asp

Phantom http://members.cox.net/pbrick-alpha/

Bricxcc http://members.aol.com/johnbinder/bricxcc.htm

LejOS? http://lejos.sourceforge.net/

PbForth? http://www.hempeldesigngroup.com/lego/pbForth/

QuiteC? http://digilander.libero.it/ferrarafrancesco/lego/qc/index.html
Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]
 
IMP :: RSS :: HTML :: TXT :: Clone :: Historique :: Propriétaire : PierreCouillard