Affichage des articles dont le libellé est programmation. Afficher tous les articles
Affichage des articles dont le libellé est programmation. Afficher tous les articles
jeudi 23 avril 2015
Premier pas en robotique pour les tout petits
J'entends parler seulement maintenant de kinder lab robotics qui propose des kits jouets robotique pour les tout petits.
Ils proposent des sets de pièces en bois/plastique/électronique qui s'emboitent facilement pour créer un robot mobile (ou pas).
Le comportement du robot se programme en assemblant des gros cubes: pas besoin de savoir lire pour créer le programme!
Les tout petits peuvent s'initier avec ce kit et, en grandissant, continuer la programmation avec Scratch, ou la robotique avec Lego Mindstorms.
Libellés :
jouet,
kibo,
programmation,
robot
mardi 18 novembre 2014
langage D et SDL
Comment utiliser la librairie SDL dans son programme en langage D?
Ca m'a pris des efforts et de la sueur donc je sauvegarde les etapes, de l'installation des outils jusqu'a la compilation d'un exemple, pour des futures references.
Pour ce projet, j'utilise Debian 6 sur un eeepc 901.
A voir:
- le langage D : http://dlang.org/download.html
- la librairie SDL : http://www.libsdl.org/
- le 'package' Derelict : http://dblog.aldacron.net/derelict-help/using-derelict/
Les etapes:
1 - creer le repertoire ou on range tout (dans mon cas: /home/user/tetorea/DerelictOrg):
cd
mkdir DerelictOrg
cd DerelictOrg
2 - installer le compilateur D
voir la page http://dlang.org/download.html pour les details
Dans mon cas, Debian sur eeepc 901, il a suffit de telecharger et lancer le fichier dmd_2.066.1-0_i386.deb avec:
sudo dpkg -i dmd_2.066.1-0_i386.deb
3 - installer SDL2
telecharger le code source : http://www.libsdl.org/download-2.0.php
dans mon cas : http://www.libsdl.org/release/SDL2-2.0.3.zip
decompresser dans le repertoire DerelictOrg
compiler et installer
cd SDL2-2.0.3
./configure
make
sudo make install
4 - installer dub
on en a besoin pour compiler les packages suivants!
j'ai recupere sur cette page http://code.dlang.org/download, le fichier :
http://code.dlang.org/files/dub-0.9.22-linux-x86.tar.gz
decompresse et copie dans le repertoire /usr/bin
5 - installer DerelictSDL2
DerelictSDL2 fait partie de la repository DerelictOrg sur Github. On a egalement besoin de DerelictUtil pour installer DerelictSDL2!
Pour installer tout ca, on a besoin de recuperer les sources en passant par git (pour installer git: sudo apt-get install git).
Dans le repertoire DerelictOrg:
git clone https://github.com/DerelictOrg/DerelictUtil.git
git clone https://github.com/DerelictOrg/DerelictSDL2.git
cd DerelictUtil
dub build
cd ../DerelictSDL2
dub build
6 - on peut programmer en D avec SDL2 !
Copier le texte suivant dans un fichier test.d, dans le repertoire DerelictOrg :
--------------------------------------
import std.stdio;
import std.conv;
import derelict.sdl2.sdl;
void main()
{
DerelictSDL2.load();
if( SDL_Init( SDL_INIT_VIDEO ) < 0 ) {
writeln( "SDL could not initialize! SDL_Error: "~ to!string( SDL_GetError() ) );
return;
}
SDL_Window *sdlWindow;
SDL_Renderer *sdlRenderer;
SDL_CreateWindowAndRenderer( 0, 0, SDL_WINDOW_FULLSCREEN_DESKTOP, &sdlWindow, &sdlRenderer );
SDL_SetRenderDrawColor( sdlRenderer, 0, 100, 0, 255 );
SDL_RenderClear( sdlRenderer );
SDL_RenderPresent( sdlRenderer );
SDL_Delay( 2000 );
SDL_DestroyWindow( sdlWindow );
SDL_Quit();
}
--------------------------------------
Ca se contente d'afficher un ecran vert pendant 2 secondes avant de quitter.
Copier le texte suivant dans un fichier Makefile, dans le repertoire DerelictOrg :
--------------------------------------
test: test.d
dmd test.d -IDerelictSDL2/source/ -IDerelictUtil/source/ -LDerelictSDL2/lib/libDerelictSDL2.a -LDerelictUtil/lib/libDerelictUtil.a -L-ldl
--------------------------------------
et on tape:
make
./test
Il n'y a plus qu'a jouer avec SDL et D...
Ca m'a pris des efforts et de la sueur donc je sauvegarde les etapes, de l'installation des outils jusqu'a la compilation d'un exemple, pour des futures references.
Pour ce projet, j'utilise Debian 6 sur un eeepc 901.
A voir:
- le langage D : http://dlang.org/download.html
- la librairie SDL : http://www.libsdl.org/
- le 'package' Derelict : http://dblog.aldacron.net/derelict-help/using-derelict/
Les etapes:
1 - creer le repertoire ou on range tout (dans mon cas: /home/user/tetorea/DerelictOrg):
cd
mkdir DerelictOrg
cd DerelictOrg
2 - installer le compilateur D
voir la page http://dlang.org/download.html pour les details
Dans mon cas, Debian sur eeepc 901, il a suffit de telecharger et lancer le fichier dmd_2.066.1-0_i386.deb avec:
sudo dpkg -i dmd_2.066.1-0_i386.deb
3 - installer SDL2
telecharger le code source : http://www.libsdl.org/download-2.0.php
dans mon cas : http://www.libsdl.org/release/SDL2-2.0.3.zip
decompresser dans le repertoire DerelictOrg
compiler et installer
cd SDL2-2.0.3
./configure
make
sudo make install
4 - installer dub
on en a besoin pour compiler les packages suivants!
j'ai recupere sur cette page http://code.dlang.org/download, le fichier :
http://code.dlang.org/files/dub-0.9.22-linux-x86.tar.gz
decompresse et copie dans le repertoire /usr/bin
5 - installer DerelictSDL2
DerelictSDL2 fait partie de la repository DerelictOrg sur Github. On a egalement besoin de DerelictUtil pour installer DerelictSDL2!
Pour installer tout ca, on a besoin de recuperer les sources en passant par git (pour installer git: sudo apt-get install git).
Dans le repertoire DerelictOrg:
git clone https://github.com/DerelictOrg/DerelictUtil.git
git clone https://github.com/DerelictOrg/DerelictSDL2.git
cd DerelictUtil
dub build
cd ../DerelictSDL2
dub build
6 - on peut programmer en D avec SDL2 !
Copier le texte suivant dans un fichier test.d, dans le repertoire DerelictOrg :
--------------------------------------
import std.stdio;
import std.conv;
import derelict.sdl2.sdl;
void main()
{
DerelictSDL2.load();
if( SDL_Init( SDL_INIT_VIDEO ) < 0 ) {
writeln( "SDL could not initialize! SDL_Error: "~ to!string( SDL_GetError() ) );
return;
}
SDL_Window *sdlWindow;
SDL_Renderer *sdlRenderer;
SDL_CreateWindowAndRenderer( 0, 0, SDL_WINDOW_FULLSCREEN_DESKTOP, &sdlWindow, &sdlRenderer );
SDL_SetRenderDrawColor( sdlRenderer, 0, 100, 0, 255 );
SDL_RenderClear( sdlRenderer );
SDL_RenderPresent( sdlRenderer );
SDL_Delay( 2000 );
SDL_DestroyWindow( sdlWindow );
SDL_Quit();
}
--------------------------------------
Ca se contente d'afficher un ecran vert pendant 2 secondes avant de quitter.
Copier le texte suivant dans un fichier Makefile, dans le repertoire DerelictOrg :
--------------------------------------
test: test.d
dmd test.d -IDerelictSDL2/source/ -IDerelictUtil/source/ -LDerelictSDL2/lib/libDerelictSDL2.a -LDerelictUtil/lib/libDerelictUtil.a -L-ldl
--------------------------------------
et on tape:
make
./test
Il n'y a plus qu'a jouer avec SDL et D...
Libellés :
d,
derelict,
installation,
programmation,
sdl
jeudi 5 janvier 2012
Verifie ton code C/C++ avec valgrind
Apres avoir cree son programme C et C++, on a beau etre super bon, les jours de fatigue, on risque d'avoir place inconsciemment quelques erreurs relatives a l'allocation ou l'acces memoire.
Heureusement, le petit utilitaire Valgrind est la pour nous sauver (sous Linux ou Mac)!
L'installation est simple:
- on recupere les dernieres soures ici
- on extrait les fichiers
- on va dans le repertoire cree
- depuis le terminal, on tape "./configure", puis "make", et enfin "sudo make install"
on verifie que tout marche bien en tapant un petit "valgrind ls -l"
Pour tester son programme, que l'on lance d'habitude comme ceci: "./mon_prog arg1 arg2"
il faut s'assurer que l'on a compile avec l'option -g, Ex: "gcc -o mon_prog -g mon_prog.c"
Le test se fait en lancant une commande du genre: "valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=20 --track-fds=yes ./mon_prog arg1 arg2"
Remarque: sous macos 10.6 au moins, un printf() (voire d'autres fonctions utilisant stout) dans le code va allouer une zone memoire qui ne sera pas liberee en sortie explicitement par le programme (Ca sera purge par l'OS normalement!).
On se retrouve avec un message sous Valgrind du style:
Si ca derange, on peut fermer a la main stdout avec un petit: fclose( stdout );
..en esperant qu'il n'y ait pas de fonction executee a la terminaison ( atexit() ) qui utilise stdout..
Heureusement, le petit utilitaire Valgrind est la pour nous sauver (sous Linux ou Mac)!
L'installation est simple:
- on recupere les dernieres soures ici
- on extrait les fichiers
- on va dans le repertoire cree
- depuis le terminal, on tape "./configure", puis "make", et enfin "sudo make install"
on verifie que tout marche bien en tapant un petit "valgrind ls -l"
Pour tester son programme, que l'on lance d'habitude comme ceci: "./mon_prog arg1 arg2"
il faut s'assurer que l'on a compile avec l'option -g, Ex: "gcc -o mon_prog -g mon_prog.c"
Le test se fait en lancant une commande du genre: "valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=20 --track-fds=yes ./mon_prog arg1 arg2"
Remarque: sous macos 10.6 au moins, un printf() (voire d'autres fonctions utilisant stout) dans le code va allouer une zone memoire qui ne sera pas liberee en sortie explicitement par le programme (Ca sera purge par l'OS normalement!).
On se retrouve avec un message sous Valgrind du style:
4,096 bytes in 1 blocks are still reachable in loss record 2 of 2
at 0x100012679: malloc (vg_replace_malloc.c:266)
by 0x10006FF4D: __smakebuf (in /usr/lib/libSystem.B.dylib)
by 0x10006FEB9: __swsetup (in /usr/lib/libSystem.B.dylib)
by 0x10002CC13: __vfprintf (in /usr/lib/libSystem.B.dylib)
by 0x10006FE0A: vfprintf_l (in /usr/lib/libSystem.B.dylib)
by 0x10009D482: printf (in /usr/lib/libSystem.B.dylib)
by 0x10000224C: main (mon_prog.c:547)
Pas besoin de s'en occuper!
LEAK SUMMARY:
definitely lost: 0 bytes in 0 blocks
indirectly lost: 0 bytes in 0 blocks
possibly lost: 0 bytes in 0 blocks
still reachable: 4,096 bytes in 1 blocks
Si ca derange, on peut fermer a la main stdout avec un petit: fclose( stdout );
..en esperant qu'il n'y ait pas de fonction executee a la terminaison ( atexit() ) qui utilise stdout..
Libellés :
allocation,
c,
memoire,
memory leak,
programmation,
valgrind
Inscription à :
Articles (Atom)