Framboise infernale

Libéré, délivré…

Ca y est ! Le confinement est terminé et l’activité reprend pour tout le monde !

J’espère que tout s’est bien passé pour vous et vos familles, et que votre activité n’a pas été impactée trop durement. En tous cas, j’espère que cette période nous permettra à tous de prendre conscience des choses vraiment importantes : la famille, les amis, Netflix et une bonne connexion internet.

Plus sérieusement, cette crise a au moins fait apparaître à quel point nous sommes dépendants de la Chine, pour à peu près tout : nos téléphones, ordinateurs, télé et même nos masques et médicaments viennent de Chine. Autant dire que s’ils éternuent, on s’enrhume !

Alors, c’est peut être le moment de rapatrier certaines activités et de mettre en avant les savoirs-faire dont nous disposons… Et de faire vivre notre économie locale et re-industrialiser notre pays, pas celle d’un pays autoritaire à l’autre bout de la planète (je ne parle pas des USA, hein!)

En attendant des lendemains qui chantent, je me suis remis à travailler sur le drone, notamment afin de connecter tous les instruments nécessaires à la navigation…

La framboise infernale

 

Je pensais en avoir appris suffisamment sur l’électronique, la programmation et le bricolage pour m’attaquer sereinement à la carte préférée des makers : la Raspberry Pi.

En fait, après plusieurs mois de tâtonnements et de frustration, j’en viens à la conclusion que le créateur de la Raspberry est Belzébuth en personne. Voilà donc un petit florilège d’absurdités rencontrées ces derniers mois avec ce ‘machin’ :

  • Les pins ne sont ni numérotés, ni identifiés, ni ordonnés d’une quelconque façon. A moins de retenir par coeur le schéma de connection, impossible de savoir qui est qui. Et même quand on le sait, on passe son temps à vérifier : la moindre erreur de décalage d’1 pin vers la droite ou la gauche et la catastrophe est assurée.
  • Les commandes Linux sont tellement limpides et évidentes, qu’on pourrait croire que l’administration fiscale a essayé de résumer la trilogie Matrix.

Certaines fonctions, comme installer un pilote ou chercher un périphérique, ne sont possible que par ligne de commande et ne sont pas accessible par l’interface utilisateur. Ca donne des « ls dev\tty* » ou des « sudo apt-get install xxx ». Autant dire, il vaut mieux connaître une bonne partie par coeur, même si on peut trouver des tutos sur le net…

  • Pas de pins analogique, ce qui rend impossible de connecter certains instruments. Ou alors, qui impose de pratiquer la magie vaudou ou la physique quantique…
  • Exemples :
    • un gyroscope en I2C (protocole de communication particulièrement répandu) impossible, car il y a un bug dans l’horloge de la Raspberry. Il faut donc désactiver l’interface I2C de la Pi et en re-programmer un virtuel. D’accord…
    • Autre exemple : le sonar en UART, impossible, car il y a un bug dans l’interface de la Pi, il faut donc inverser le signal RS232, tout en conservant les bits de contrôle. Bien sûr, évidemment, suis je bête.
    • Autre exemple : connecter un GPS en serial, impossible, il faut soit déconnecter les autres instruments, soit reprogrammer le kernel du Serial de la Pi. Ah mais oui, c’est logique : il y a plusieurs connections Serial, mais on ne peut en avoir qu’une seule à la fois…

Bref, je suis un peu blasé par le manque de coopération de cette carte, qui semblait si prometteuse sur papier. Certains défenseurs me diront que c’est normal, qu’il faut apprendre à la maîtriser et qu’après c’est super puissant. Peut être, pour faire un serveur ou une console de jeu. Mais j’ai de plus en plus l’impression que ce n’est pas recommandé pour un usage scientifique…

Méga fiable !

Du coup, je suis obligé de tout connecter sur l’Arduino Méga :  contrôle des moteurs, GPS, sonar, gyro-compas, pression… Ca fait beaucoup pour cette pauvre carte, mais au moins elle prend tout sans rechigner et ne demande à personne de vendre son âme au diable pour fonctionner.

La Raspberry se contente de la caméra et de la gestion de l’interface avec l’Arduino. Un peu flemmarde, hein ?

Je me demande d’ailleurs si je ne devrais pas me tourner vers une combinaison de cartes Arduino, ou une nouvelle carte de contrôle type BeagleBone ?

Et vous, qu’en pensez vous ?

A ce stade, si quelqu’un s’y connaît, tout conseil est bon à prendre !