π
<-

[TUTO] Programmer en C sur TI Nspire

C, C++, ASM...

[TUTO] Programmer en C sur TI Nspire

Unread postby RobFire » 30 Aug 2010, 12:32

Voici un tuto qui est téléchargeable ici avec le design du site du zero. Il sera bientôt consultable sur le site du zero également.

Programmer en C sur votre TI
Nspire :

Tout d'abord, il faut disposer de certaines connaissances et objets pour pouvoir programmer votre TI Nspire.
Vous devez :
• Avoir lu les deux premières parties au moins du tutoriel Apprenez à programmer en C de M@theo21.
• Avoir une calculatrice TI Nspire ( de type CAS ou pas ).
• Avoir un ordinateur ainsi que le câble de connexion entre celui-ci et la calculatrice.
• Avoir installé le logiciel de transfert TI-PC sur votre ordinateur.
• Avoir installé Code Blocks de préférence ou simplement MinGW sur votre ordinateur.
Sachez aussi que si vous avez l'OS (Système d'exploitation) 1.1 installé sur votre TI Nspire cela vous facilitera
beaucoup la vie mais ce n'est pas obligatoire. Pour le savoir, allez sur la page A propos du menu Infos
système.
Bien ! Nous allons maintenant pouvoir entrer dans le coeur du tutoriel !
Débrider sa calculatrice
Pour l'instant, votre calculatrice TI Nspire est totalement bridée. Elle ne peut lire que des classeurs
banals composés de calculs , de graphiques, ou d'autres applications purement mathematiques.
Nous allons changer cela grâce à un merveilleux exécutable nommé Ndless, qui vous permettra
d'ouvrir votre calculatrice au C.
Comme je suis gentil, je vais vous donner le lien de téléchargement :
Lien de téléchargement de Ndless 1.1
Décompressez le fichier avec un logiciel comme WinRar ou 7-Zip.
Ici vous allez IMPERATIVEMENT avoir besoin de l'OS 1.1 sur votre calculatrice. Si vous ne l'avez pas,
vous allez devoir le chercher sur Internet.
Je n'ai malheureusement pas le droit de vous dire où le trouver suite à une lettre qu'à envoyée TI au
site TiPlanet.org qui demandait à ce dernier d'enlever le lien de téléchargement de cet OS pour
Copyright. Cependant j'ai entendu dire que la justice avait déclaré que les réclamations de TI
n'étaient pas justifiées.
De toute façon en cherchant bien vous le trouverez cet OS.
Après que vous ayez acquis l'OS 1.1 ( ou non si vous l'avez déjà ), nous allons pouvoir installer Ndless sur
votre calculatrice.
Entrez dans le dossier ndless que vous avez décompressé auparavant.
Si vous n'aviez pas l'OS et que vous l'avez trouvé, créez un dossier nommé exactement userfiles et copiez l'OS
à l'intérieur en le renommant exactement tinspire_1.1.tno (.tno étant l'extension bien sûr).
Ensuite allumez votre calculatrice, branchez le câble et double-cliquez sur l'executable install-ndless. Suivez
les instructions qui s'affichent. Attention, c'est en Anglais mais vous n'aurez je pense aucunes difficultés à
comprendre.
Attention lorsque la calculatrice redémarre et vous demande la langue à utiliser, choisissez Anglais sinon
Ndless ne s'installera pas. Vous pourrez changer cette option plus tard en allant sur la page Réglages du
système du menu Infos système.
Voilà ! Si tout s'est bien passé, votre calculatrice devrait être débridée. Pour le savoir allez dans le menu Mes
classeurs, dossier ndless, et cliquez sur demo. Si la calculatrice arrive à ouvrir ce classeur : c'est gagné !
Sur le PC
Bien ! Maintenant il va nous falloir deux programmes pour configurer un environnement de développement
en C. Ces deux programmes se nomment MSYS et Yagarto. Ils vont vous permettre de compiler votre code C.
MSYS
Allons-y ! Tout d'abord, téléchargeons le programme. Voici un lien direct :
Lien de téléchargement de MSYS
Lancez le programme, c'est un simple executable de type suivant-suivant-quitter...
Installez le dans le repertoire par défaut et PAS dans Program Files ou un autre dossier avec un ou des espaces.
Cependant à un moment une console s'ouvre. Répondez 'yes' à la première question en tapant y.
De même pour la deuxième question.
Pour la troisième, ça se corse . Il faut dire au programme où votre version de MinGW est installée. Si vous
avez bien Code Blocks vous devriez l'avoir dans le dossier d'installation de ce dernier.
Attention ! Il faut écrire le chemin sous la forme C:/xxxx/xxxx/xxxx et non C:xxxxxxxxxxxx.
Deuxième problème ! La console n'accepte pas d'espaces dans le nom des dossiers en mode DOS !
Aïe ! Pas d'espace ! Si vous avez installé Code Blocks dans le répertoire par défaut, alors il est dans Program
Files. Et qui ditProgram Files dit espace !
Vous allez donc devoir mettre des guillemets autour du chemin pour préciser qu'il ne s'agit pas du chemin en DOS.
Au final le chemin sera donc, en tenant compte des deux problèmes : "C:/Program Files/CodeBlocks/MinGW". Ouf !
Appuyez sur entrée jusqu'à ce que la console se ferme. Puis fermez le fenêtre d'installation.
Bon, programme suivant.
Yagarto
Passons au programme Yagarto ! Ce sera beaucoup plus simple ici .
Voici le lien pour le télécharger :
Lien de téléchargement de Yagarto
Une fois téléchargé ( le téléchargement prends un peu plus de temps que MSYS ), lancez le programme.
Je vous laisse faire, c'est un programme d'installation tout simple ( sans console cette fois-ci ). Cependant
veillez à avoir bien coché la case Add Yagarto to the PATH variable.
Voilà c'est presque fini !
Ndless
Il reste une dernière étape à passer : ajouter les programmes de Ndless à la variable d'environnement.
Pour ce faire, suivez ces instructions :
- Cliquez sur Menu Démarrer,
- Cliquez droit sur Poste de travail/Ordinateur,
- Cliquez sur Propriétés,
- Cliquez sur Paramètres système avancés,
- Cliquez sur le bouton Variable d'environnement,
- Dans la liste Variables système, double-cliquez sur la variable Path,
- Enfin, ajoutez un point-virgule dans la deuxième zone de texte et écrivez le chemin de l'emplacement du
dossier bin de Ndless. Pour moi c'est C:Usersrob36Downloadsndlessndless-v1.1bin. Validez.
Enfin nous avons fini ! Nous allons pouvoir commencer à programmer !
Compiler un programme
Super ! Maintenant que nous avons les outils nécessaires, nous allons pouvoir programmer mais tout
d'abord, il faut tester ces outils pour voir s'ils sont bien installés.
Pour ce faire, eh bien nous allons compiler la demo de Ndless. Vous vous rappelez ? Le classeur qui
servait à vérifier si Ndless était bien installé.
Donc pour compiler, il va falloir lancer le programme MSYS que vous avez installé. Lorsque c'est fait,
ecrivez :

Code: Select all
cd Emplacement de ndless/src/arm/demo

N'oubliez pas : MSYS demande des slashs dans ce sens : '/'.
Remplacez par l'emplacement de votre version de Ndless, comme par
exempleC:/Users/rob36/Downloads/ndless/ndless_1.1.
Appuyez sur entrée puis écrivez :

Code: Select all
make

Cela devrait vous rappeler la compilation avec Qt si vous avez suivi un tutoriel concernant cette
bibliothèque.
Après avoir appuyé sur entrée, si tout vos outils sont bien installés, vous devriez obtenir un message
de ce type :

Code: Select all
nspire-gcc -Os -Wall -W -fpic -fno-merge-constants -D NON_CAS -c main.c
nspire-gcc -Os -Wall -W -fpic -fno-merge-constants -D NON_CAS -c utils.c
nspire-gcc -Os -Wall -W -fpic -fno-merge-constants -D NON_CAS -c vector.c
nspire-gcc -Os -Wall -W -fpic -fno-merge-constants -D NON_CAS -c particle.c
nspire-gcc -Os -Wall -W -fpic -fno-merge-constants -D NON_CAS -c particle_system.c
nspire-ld main.o utils.o vector.o particle.o particle_system.o gravity_particles.o -o demo."/c/Program Files (x86)/yagarto/bin/arm-elf/objcopy.exe" -O binary demo.elf demo.bin
MakeTNS demo.bin
'demo.tns' successfully created!
rm -f demo.bin
mkdir -p ../../res/NON_CAS
mv demo.tns ../../res/NON_CAS

Si vous obtenez ce message : tous vos efforts vont enfin porter leur fruits !
Vos outils marchent et vous avez appris à compiler un programme.
Cette compilation à généré un fichier demo.tns dans le dossier ndlesssrcresNON_CAS que vous pourrez
transférer sur votre calculatrice TI Nspire. Si vous possédez le modéle CAS, alors avant la compilation, ouvrez
le fichier nommé Makefiledans le dossier de la demo et sur la première ligne, à la place
de NON_CAS écrivez CAS. Le fichier demo.tns aura alors été généré dans le dossier ndlesssrcresCAS.
Programmer vos propres projets
Vous vous demander maintenant sûrement comment programmer votre super-jeu-de-la-mort-qui-tue .
Le plus simple et le plus pratique est d'ouvrir le fichier main.c dans le dossier demo et de tout effacer
puis de mettre ce code :

Code: Select all
#include os.h
#include common.h
#include "utils.h"
asm(".string "PRG"n");
int main(void)
{ showSimpleDialogBox("Hello Word", "Hello Word");
return 0;
}

Les trois #include sont indispensables ainsi que la ligne asm(".string "PRG"n"); pour chacun de
vos programmes.
La fonction showSimpleDialogBox() permet d'afficher un boîte de dialogue. Le premier paramètre est le titre
et le deuxième est le texte à l'intérieur.
Pour le moment je vous conseille de faire vos programmes dans le dossier demo. Pour connaître toutes les
fonctions qui sont à votre disposition, vous devriez regarder dans les fichiers que l'on inclus au début du
programmes. Ils contiennent les codes touches, les fonctions dont vous aurez besoins.
Pour vous aider, je peux vous indiquer setPixel() qui permet d'activer un pixel et isKeyPressed qui permet de
vérifier si une touche est appuyée. Pour les paramètres je vous laisse vous débrouiller tout seuls. A vous de
coder comme bon vous semble. Vous pourriez par exemple commencer par coder une fonction qui permet de
dessiner une ligne à prtir de setPixel(). Je peux également que vous pouvez utiliser 15 niveaux de gris.
Maintenant, je vous lâche dans la nature !
Au secours je ne peux pas me débrouiller tout seul, comment je dois faire ! A l'aide !
Bon , alors on va voir un exemples et faire un exercices.
Exemple
Nous allons voir l'utilisation de setPixel() et de isKeyPressed() en même temps.
Prenons ce code et analysons-le :

Code: Select all
#include os.h
#include common.h
#include "utils.h"
asm(".string "PRG"n");
int main(void)
{ clearScreen();
while(!isKeyPressed(KEY_NSPIRE_ESC))
{ setPixel(1, 1, 0);
} return 0;
}

Lusqu'au début de la fonction main, normalement ça devrait aller si vous avez bien suivi.
Ensuite il y a la fonction clearScreen() qui permet, comme vous l'avez deviné en tant qu'anglophobes que
grands adorateurs de la langue de Shakespeare ... d'effacer l'écran !
Plus tard vous avez la fameuse fonction setPixel(). Le premier paramètre est l'emplacement x du pixel que
vous souhaitez modifier. Le deuxième est la position y du pixel et le dernier paramètre est la couleur soit le
niveau de gris. Je vous rappelle qu'il y a 15 niveaux de gris.
Sachant que 0 est le noir et 15 le blanc, nous pouvons déduire que cette fonction va ici colorier le pixel en
haut à gauche de l'écran en noir.
On peut voir que setPixel() est comprise dans une boucle while. La condition pour que cette boucle
recommence est que la fonction isKeyPressed(KEY_NSPIRE_ESC) renvoie false.
Conclusion : ce code dessine un pixel noir tant que l'utilisateur n'a pas appuyé sur enter, et lorsque cela se
produit, le programme se ferme.
Exercice
Il est temps que vous vous bougiez un peu maintenant . Comme disait ma prof de Français lorsqu'on
écoutait pas :
Citation : Prof de Français
Il va falloir arrêter de faire la patate sur chaise !
Enfin bon passons cette citation.
Le but de cet exercice sera que vous obteniez ce résultat à l'écran :
Image
Normalement, je n'ai pas besoin de vous dire quoi que ce soit si ce n'est que l'écran de la TI Nspire à
une résolution de 320x240.
N'oubliez pas que vous programmez en C et que toutes les fonction habituelles sont disponibles !
Bonne chance !
...
...
...
Ca y est ? Super ! Je vais maintenant pouvoir vous donner mon code. Des personnes pourraient
sûrement plus optimiser ce code mais je veux faire simple, donc voilà :
Code: Select all
#include os.h
#include common.h
#include "utils.h"
asm(".string "PRG"n");

int main(void)
{
int color, positionColonne, i;
clearScreen(); // J'efface l'écran
while(!isKeyPressed(KEY_NSPIRE_ESC)) // Je fais une boucle sinon le programme s'arrêterait
{
color=0; // On initialise la couleur
for(positionColonne=1;positionColonne321;positionColonne++) // On l'initialise à 1 car
{
for(i=1;i240;i++) // On trace le ligne
setPixel(positionColonne, i, color);
color++; // On change la couleur pour faire le dégradé
if(color15) // Si la couleur est le blanc, alors on la remet en noir
color=0;
}
} return 0; // Fin du programme
}


Voilà !
Dwarf Fortress Forever
User avatar
RobFire
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 72%
 
Posts: 20
Joined: 12 Aug 2010, 00:00
Location: Orléans
Gender: Male
Calculator(s):
MyCalcs profile
Class: Première S-SI

Re: [TUTO] Programmer en C sur TI Nspire

Unread postby Levak » 30 Aug 2010, 14:28

Bonjour,
Tu peux voir un de mes commentaire sur ton tutoriel ici :
viewtopic.php?t=5874#p93893
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [TUTO] Programmer en C sur TI Nspire

Unread postby Excale » 10 Sep 2010, 22:49

Deuxième problème ! La console n'accepte pas d'espaces dans le nom des dossiers !
Aïe ! Pas d'espace ! Si vous avez installé Code Blocks dans le répertoire par défaut, alors il est dans Program
Files. Et qui ditProgram Files dit espace !


Juste comme ça, le nom DOS de "programmes files" est "progra~1" . Ça marche tout aussi bien.

Sinon merci pour ton tuto :#top#: .
User avatar
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 3.9%
 
Posts: 2955
Images: 3
Joined: 10 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile

Re: [TUTO] Programmer en C sur TI Nspire

Unread postby RobFire » 11 Sep 2010, 12:25

Merci pour l'information Excale :;): , je vais modifier mon tuto en conséquence ! ( enfin... bientôt... :D: )
Dwarf Fortress Forever
User avatar
RobFire
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 72%
 
Posts: 20
Joined: 12 Aug 2010, 00:00
Location: Orléans
Gender: Male
Calculator(s):
MyCalcs profile
Class: Première S-SI

Re: [TUTO] Programmer en C sur TI Nspire

Unread postby JayTe » 11 Sep 2010, 13:28

Sinon pour éviter le problème des espaces, au lieu de mettre les noms DOS, il suffit de mettre des guillemets autour du chemin, par ex:
Code: Select all
 cd "c:Program FilesCodeBlocks" 


:;):
TabVar - Etude de fonctions sur Nspire!
Image
User avatar
JayTePremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 81.6%
 
Posts: 207
Joined: 26 Jan 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: Polytechnique

Re: [TUTO] Programmer en C sur TI Nspire

Unread postby Excale » 11 Sep 2010, 14:33

JayTe wrote:Sinon pour éviter le problème des espaces, au lieu de mettre les noms DOS, il suffit de mettre des guillemets autour du chemin, par ex:
Code: Select all
 cd "c:Program FilesCodeBlocks" 


:;):


Pas faux.

Je tient juste à ajouter que par contre, le programme MSYS semble devoir s'installer dans un répertoire sans espace. Dans programmes files, il me sort une erreur au démarrage. Dès que je l'ai mis dans temp, plus de problème.
User avatar
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 3.9%
 
Posts: 2955
Images: 3
Joined: 10 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile

Re: [TUTO] Programmer en C sur TI Nspire

Unread postby RobFire » 11 Sep 2010, 17:33

@JayTe : Merci je vais modifier avec cette solution.

@Excale : Oui j'ai oublié de le préciser : il vaut mieux laisser le repertoire d'installation par défaut.

EDIT : ça y est, le tuto est modifié pour éviter le problème d'Excale et pour afficher la solution de JayTe.
Dwarf Fortress Forever
User avatar
RobFire
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 72%
 
Posts: 20
Joined: 12 Aug 2010, 00:00
Location: Orléans
Gender: Male
Calculator(s):
MyCalcs profile
Class: Première S-SI

Re: [TUTO] Programmer en C sur TI Nspire

Unread postby ExtendeD » 07 Oct 2010, 22:06

La documentation de développement de Ndless est désormais maintenue sur Hackspire : http://hackspire.unsads.com/wiki/index. ... _resources

Ceci devrait à terme faciliter les débuts des développeurs pour TI-Nspire. Il serait possible de traduire et enrichir des versions françaises des différentes pages si quelqu'un estime que ce pourrait être utile pour la communauté francophone.
User avatar
ExtendeDPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 64.1%
 
Posts: 204
Joined: 30 Dec 2004, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: N/A


Return to Native: Ndless, Linux, ...

Who is online

Users browsing this forum: ClaudeBot [spider] and 10 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1498 utilisateurs:
>1482 invités
>10 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)