Sunday, March 14, 2010

Installation d'Angstrom

NB : la quasi totalité des commandes/actions sont réalisées sur un PC. Sauf mention contraire.

Démarrage

Avant toute chose, j'ai essayé de brancher ma carte sur ma télévision, mais celle-ci ne supporte pas le 1024x768, j'ai donc du me rabattre sur la connection RS232 (n'ayant pas envie de connecter mon écran d'ordinateur). Ce choix est meilleur puisque la trace de démarrage est envoyé dans un terminal qui permet de scroller ensuite (contrairement à un écran). Dernier avantage, lors du démarrage, certaines informations ne sont pas affichées sur l'écran (notamment uboot)

La connexion RS232 nécessite le cable vendu sur le site de l'igep, et ne coute que 4€. La connexion de celui-ci est génée par le port USB, mais en forçant doucement, j'ai finalement réussi. La configuration de minicom est expliquée sur le site de beagleboard

Construction de l'image Angstrom

Maintenant que la carte démarre, il lui faut un OS. J'ai donc utilisé le créateur d'image en ligne. Coup de chance (ou pas ?), celui-ci propose l'igepv2 dans sa liste de machine. J'ai pris la version stable, avec le système "task-base-extended", puis les options par défaut.

Pour la partie packages, j'ai ajouté :

  • python
  • All kernel modules
  • Bluez
  • I2C-tools
  • JamVM
  • Juluis
  • OpenCV
  • Dropbear SSH
  • Wireless-tools

Booter Angstrom

Il faut commencer par partitionner la microSD correctement. J'ai donc utilisé la documentation de référence et le script de XorA pour faire des SD bootables.

J'ai suivi à la lettre le tutorial du beagle board. La carte microSD est sur l'igep, mais à la mise sous tension, rien. La diode ne s'allume pas. Je retire donc la carte, branche l'alimentation, et, par automatisme, remet la carte, et là, Angstrom boote. Je réfléchi, regarde le méchanisme de boot, puis, un peu au hasard, supprime le fichier MLO sur la partition de boot (puisque nulle-part la documentation de l'igep n'en faisait mention). Et victoire, ça démarre !

Le wifi et le reste

Pour le wifi, absolument rien de sorcier, celui-ci est détecté au démarrage :

$ dmesg
[...]
libertas_sdio: Libertas SDIO driver
libertas_sdio: Copyright Pierre Ossman
libertas_sdio mmc1:0001:1: firmware: requesting sd8686_helper.bin
libertas_sdio mmc1:0001:1: firmware: requesting sd8686.bin
libertas: 00:13:e0:c3:0c:3c, fw 9.70.3p24, cap 0x00000303
libertas: unidentified region code; using the default (USA)
libertas: PREP_CMD: command 0x00a3 failed: 2
libertas: PREP_CMD: command 0x00a3 failed: 2
libertas: eth1: Marvell WLAN 802.11 adapter
[...]

J'ai du nommer correctement les fichiers (sd8686_heper.bin et sd8686.bin) du drivers Marvell car ceux-ci s'appellent différement dans l'archive téléchargée, puis les placer dans /lib/firmware/ de la partition qui s'appelle rootfs.

Configuration du wifi.

NB : Les commandes sont tapées dans l'igep.

Pour une raison que j'ignore, le wifi refusait de se connecter automatiquement à mon réseau wifi en utilisant le DHCP. J'ai donc configuré l'adresse en statique en éditant le fichier /etc/network/interfaces

Je peux maintenant me connecter en SSH sur l'igep ! Les choses sérieuses commencent !

Références :

  • http://elinux.org/BeagleBoardBeginners
  • http://wiki.myigep.com/trac/wiki/HowToSetupWifi
  • http://www.angstrom-distribution.org/narcissus/

Saturday, March 13, 2010

SPirit of OPportunity



Ça y est, je me lance... Ce blog me servira a répertorier toutes mes reflexions sur la conception et la réalisation d'un robot.

La base du robot est un beagleboard-clone, aka l'igepv2. Je me suis laissé séduire par plusieurs aspects de cette carte :
  • la faible consommation (environ 2W) (même si celle-ci est énorme pour un robot)
  • l'alimentation en 5V, qui est simple à générer
  • les ports USB, le wifi et le bluetooth, qui procure une connectivité impressionnante.
D'un point de vue logiciel, c'est encore mieux, on peut faire tourner un linux dessus. De Ubuntu à Android en passant par Angstrom, cette carte utilise un processeur OMAP3 qui est à la base de beaucoup de smartphones.

Enfin, cette carte dispose d'un port i2c ce qui me permettra de commander facilement un microcontrolleur (pic 16f628 à priori) pour toute la partie motorisation.

Parlons de la motorisation. Mon choix se porte sur des servos-moteurs, beaucoup utilisés dans le modélisme. J'en utiliserais 2 modifiés en moteur à courant-continu pour le déplacement. Ces servos seront fixés à une base en contreplaqué (pour commencer, par la suite, surement une plaque de métal).

Deux autres servo serviront à orienter la webcam, un peu à la façon d'une tête. De multiples capteurs de distances/chocs/santé générale seront positionné sur la base.

Enfin, pour alimenter tout le robot, je pensais acheter des accus Li-FePO4, aussi connus sous le nom de A123 qui sont, aux dires des commentaires que j'ai pu lire sur les différents sites une véritable merveille (et bien plus sur que les Li-Ion ou Li-Po)

Prochaine étape : Mon installation de Angstrom.