Tag Archives: Raspberry Pi

[DevBlog] Starberrypi, le télescope de feignasse

by Matthieu

Bon, il est temps de dépoussiérer un l’endroit pour parler d’un truc que j’ai commencé il y a maintenant … un peu plus d’un an. L’idée, c’est d’écrire dessus pour :

  • Partager un peu le sujet, des fois que ça serve
  • Formaliser un peu de doc sur les différents choix techniques

Starberrypi c’est quoi ? A la base c’est une idée inspirée par la récupération in extremis d’une antiquité, le minimover 5, remis à neuf, du moins au niveau des moteurs. Pour vous donner une idée de l’âge du truc, le numéro de téléphone du distributeur français indiqué sur le bras comporte 6 chiffres. L’étiquette était peut-être déjà vieille quand elle a été posé, mais quand même, ça sent le milieu des années 80.

Donc l’idée, c’est de prendre ce bras électromécanique respirant la poussière pour en faire un support de caméra mobile afin de pointer directement devant un machin à prendre en photo, de préférence dans le ciel. Prendre des photos et piloter des moteurs pas-à-pas c’est évidement tout à fait dans les cordes, à première vue, pour un Raspberry Pi.

Techniquement niveau matériel, c’est que du déjà-vu ou presque. Une Picam pour l’image, des moteurs pas à pas, seul 2 sur les 6 du minimover suffisent, un peu d’électronique pour les moteurs et basta.

Le détail qui change un peu, c’est l’optique de la caméra. On pourrait faire de l’astrophoto avec la Picam de base, mais… si on monte un objectif de reflex qui zoom un peu, avec la taille du capteur rikiki on obtient un bon gros zoom de porc pour pas cher. Sur le papier, c’est bien, mais ça va avoir quelques conséquences sur l’image (si tu viens de penser à la taille des photosites et au bruit numérique, c’est dans l’idée). Ceci va donc nécessiter un peu de CAO, et d’abus de bien social pour imprimer un adaptateur d’objectif <que j’ai, de préférence> vers la Picam.

Nouveauté pour moi également, trouver un capteur « quivabien » pour me permettre d’aligner le télescope de façon automatique. En gros, la base en astro, c’est l’altitude (hauteur par rapport à l’horizon) et l’azimut (orientation par rapport au nord). Pour l’un, il faut un accéléromètre, pour l’autre il faut une boussole.

Histoire de penser à tout détailler plus tard, voici une liste de tout ce qui m’est passé par les mains pour ce projet :

  • Un télescope Newton 115mm-900mm
  • Un Raspberry Pi 3
  • Des moteurs pas à pas en pagaille
  • Un ULN2803
  • Un DC+Stepper Motor HAT de chez Adafruit
  • Des drivers de moteur pas à pas A4988, de chez Pololu
  • Un capteur d’orientation BNO055
  • Une boussole CMPS11
  • Une boussole CMPS03
  • Un Sense Hat de chez Raspberry Pi
  • Des meccano
  • Des alims externes diverses (5 et 19V notamment)
  • Une imprimante 3D Ultimaker 3

Tout n’a pas servi, mais disons que l’expérience gagné sur chaque truc m’a fait progresser pour la réalisation. Je n’ai pas encore parler de soft parce qu’on verra plus tard. Mais spoiler, ça va surtout se passer en python.


[R-Pi – Video] RPi-kee – le robot qui suit des lignes

by Matthieu

On avait donc parlé ici, puis par ici de comment on fait un robot (vite fait, hein).

J’ai fini par arrivé à un résultat convaincant, que je vous présente via une petite vidéo. C’est de l’accélérer x3 car il faut le reconnaitre, si les moteurs pas à pas me fournisse une grande précision, c’est quand même pas avec ça que je vais battre Schumacher… quoi que on me dit dans l’oreillette que sur une piste de ski c’est jouable.

Bref, voilà la vidéo, et si vous activez les sous-titres vous aurez quelques explications supplémentaire.

Il reste bien évidemment des ajustements à faire. J’ai notamment acheté des moteurs CC et le drive qui va derrière pour améliorer la vitesse du robot. Comme j’avais déjà 2 moteurs pas à pas 5V, ainsi que 2 moteurs 12V (ceux de la vidéos), je vais pouvoir motorisé la caméra également. Et/ou faire une tourelle avec un laser-destruktor-de-la-mor, mais j’ai un soucis de batterie à gérer pour ça.


[R-Pi] RPi-kee – Partie 2 :Electronique

by Matthieu

L’ensemble des composants, sans la partie méca, dans la petite boite de transport

Cet article fait suite à celui là : RPi-kee – Partie 1 :Généralité et Mécanique.

Electronique

Voilà une partie un peu plus « sensible ». Faire un montage en Meccanos et le rater, ce n’est pas grave. On démonte et on recommence. En élec, c’est un peu plus touchy. Soit, un mauvais montage peut juste ne pas fonctionner, mais peut aussi cramer des composants, voir le Raspberry Pi lui-même. Je n’ai qu’un seul modèle B+, et je n’ai pas envie d’en racheter un… tout de suite.
Tiens, à propos de composants, voyons voir de quoi a-t-on besoin, par fonction :

– Premier besoin impératif dont je n’avais pas encore parlé : pouvoir tester avec des fils…

=> Oui, dit comme ça c’est pas clair. On le sait tous, le Wifi (de surcroit en USB), c’est de la merde, et les batteries ça se décharge. J’ai donc deux interfaces réseaux sur le Raspberry Pi : une clé wifi et le port Ethernet. Concernant l’alimentation, j’ai la possibilité d’alimenter le Pi soit par son port micro USB avec un chargeur de téléphone portable (pas forcément très généreux en milli Ampère), soit par les GPIO. L’avantage de l’alimentation via les GPIO c’est que l’on peut brancher une grosse source de courant sur l’ensemble des composants, dont le Pi.
Si l’alimentation passe au travers du Pi pour alimenter le reste, le pauvre risque d’avoir chaud. Bref, pour toute la partie mise en place et premier essai, il est plus prudent d’avoir une alimentation externe.

– Piloter l’ensemble, communiquer, contrôler, commander

=> Le Raspberry Pi, bien évidement. Un modèle B+ pour être précis. J’aurai très bien plus prendre un B (voir un A, qui est un B sans port Ethernet, avec un seul port USB et 256 Mo de RAM), mais la quantité de truc que je cherche à interfacer m’a fait dire qu’un B+ et ses multiples GPIO et sa liaison SPI (bus de communication série très utilisé pour l’interfaçage de composants) en rab m’ont fait dire que ça serait plus confortable. Et puis le B+ et le B coute le même prix. Pourquoi se priver ? Et pour les trois fanboys du fond qui me demande pourquoi je ne suis pas partie sur une Beagleboard, un Arduino ou le dernier PC embarqué d’Intel, je répondrais que c’est la communauté et le support autour du Raspberry Pi qui fait la différence. En cas de pépin, c’est sympa de trouver des topic [RESOLU] et [SOLVED] sur les forums adéquat. Pour aller avec, bien évidemment, une blinde de développement logiciel.

– La possibilité de suivre une ligne au sol

=> La Camera Pi. Le RPi possède un port permettant de connecter une caméra de 5mpixel, fabriqué par la fondation Raspberry Pi. Elle est donc parfaitement compatible, de pas mal de doc, et j’ai déjà un peu d’expérience avec.

– Détecter les obstacles à proximité

Bidouille diverses

=> On aurait pu croire que la camera aurait pu servir à cet endroit-ci, mais en fait, bof. En effet, le traitement d’image c’est quand même un peu lourd, et surtout, c’est assez moyen pour la mesure de profondeur. J’ai donc choisi 2 capteurs infra-rouge de mesure de distance. Un permettant la mesure de 20cm à 120cm (GP2Y0A02YK, de Sharp), un autre de 100cm à 550cm (GP2Y0A710K0F, Sharp aussi). Ils seront donc mis sur la face avant du robot pour avoir une info sur ce qui se trouve en face. Il sera probablement possible de faire un scan de l’environnement en faisant tourner le robot sur lui-même. Voir de monter le couple de capteur sur une tourelle. Pour les plus curieux de la technique, je précise que j’ai pris deux capteurs et non pas un de 0cm à 550cm, parce que ça n’existe pas ! En effet, la portée de la mesure dépend de l’écart entre l’émetteur IR et le récepteur. J’ai dimensionné la portée maximale de la mesure par rapport à … ben, la largeur des pièces de mon appartement. Raison simple, non ? A part ça, ce sont des capteurs qui s’alimentent en 5V et qui renvoi une tension inversement proportionnel à la distance, et de surcroit, en fait, de façon pas linéaire du tout. Le Raspberry Pi ne disposant pas d’outils de mesure de tension, j’ai donc également pris un ADC (Analog to Digital Converter, Convertisseur Analogique Numérique en français, soit CAN, mais ce terme est pourri dans le monde de l’embarqué parce que ça confusionne avec le bus CAN de Bosch qu’on trouve dans toutes les bagnoles entre autres). L’ADC est un MCP3008 de chez Microchip, qui s’interface sur un bus SPI, dont dispose le RPi ça tombe trèèès bien.

Le banc de caarctérisation des capteurs IR

– Se balader de façon autonome (même si aléatoire)

=> Le Raspberry Pi intervient dans le pilotage, et pour le côté sans fil, j’ai une clé wifi et une batterie externe de téléphone mobile assez costaude de 12000mAh, capable de délivrer 2A. D’après mon 6ème sens (ouais, un truc de techos, tu peux pas test) ça devrait tenir plusieurs dizaines de minutes sans aucun problème, voir beaucoup plus. Une fois que j’aurai fini le montage complet full option, je ferais un benchmark.

– Avancer

– Reculer

– Tourner

=> Et oui, c’est important ça ! Des moteurs ! Au départ j’ai pris 2 moteurs pas-à-pas unipolaire de 5V. Pourquoi ? Parce que j’avais trouvé un tutoriel pour les connecter au Raspberry. Il faut les connecter au travers d’un ULN2803A qui est un composant se plaçant entre les moteurs et le Raspberry. Un moteur, ça consomme bien plus que ce que Pi est capable de cracher. Après mes premiers essais avec la structure complète, j’ai réalisé qu’ils étaient trop faibles pour la déplacer. J’ai donc investis dans des moteurs équivalents en 12V, unipolaire donc. L’avantage c’est que c’est compatible directement avec le câblage existant (à la tension d’alimentation près), et que ça apporte 66% de couple en plus (pour 140% de tension… mouais, ce n’est pas aussi efficace mais j’m’en fous pour le moment). Tout mon petit bazar étant prévu pour fonctionner avec la batterie 5V. Et là, astuce, le rehausseur de tension U3V50ALV capable de transformer 3V minimum vers 4 à 12V me sauve la mise ! En revanche, ça fait passer la motorisation du robot à la première place potentielle du composant qui suce le plus. Ici encore, il faudra avancer précautionneusement. Quand j’ai testé les moteurs 5V, j’ai alimenté le montage via le RPi. Il bien tenu le coup, mais il faudra sûrement que je ne branche pas la batterie directement sur lui pour le faire fonctionner en continu avec les moteurs 12V.

– Monitorer certaines grandeurs physiques propres (tension d’alimentation, température)

Atelier soudure et instrumentation…

=> Ici également, c’est l’ADC qui fait le taf. A noter que l’ADC ne fait pas une mesure de tension absolu; en fait, il compare un signal par rapport à une entrée de référence (Vref). Donc si vous lui mettez en entrée la tension de la batterie, et que vous mettez en Vref la tension de la batterie … et bien l’ADC vous dirait que l’entrée est en permanence à 100% de Vref. Sauf que votre batterie elle aura son niveau réel qui va gentiment passer de 5V à plus rien, sans que votre ADC le voit. Pour info, le fonctionnement d’une batterie, c’est que ça reste longtemps à 5V, puis en fin de course ça descend d’abord doucement vers 4,9V puis 4,8 , 4,7 et paf, il ne reste plus assez pour votre électronique qui se met à fonctionner bizarrement, jusqu’à ce que votre système s’éteigne peu après. Là encore, il va falloir faire des mesures pour voir comment la batterie se comporte et ainsi pouvoir monitorer efficacement sa tension.

Ah d’accord, mais ça ne résout pas le souci de Vref ! En fait ce n’est pas si compliqué, j’ai résolu la question avec un régulateur de tension, un L7805CV. Un composant qui à la brillante idée de sortir 5V constant pourvu qu’on lui rentre plus que 5V… et moi j’ai du 12V qui traine. L’inconvénient du truc, c’est que ça fait encore une nouvelle source de consommation, mais que même si le 12V subit des variations, le 5V sera constant. Parfait pour mon Vref.

Pas de bol, je ne suis pas sur de garder l’écran…

Au passage, pourquoi ne pas monitorer le 12V également ? Avec 2 résistances on fait un petit montage qui fournira 2/3 de 12V, et qui variera de façon linéaire avec lui. Oui, c’est un pont diviseur de tension, montage que les électroniciens apprennent la plupart du temps avant même de savoir lire.
Les températures mesurables sur le système sont la température du processeur du Pi, et j’ai également dans mon stock une sonde 1-Wire DS18B20. C’est une sonde « numérique » qui se branche sur une GPIO du Raspberry Pi. Le noyau linux de l’OS Raspbian permet de discuter sans soucis avec ce type de sonde. On peut même placer plusieurs sondes sur le même fil et ainsi monitorer plusieurs emplacement. Pourquoi ne pas, donc, mettre une sonde plaquée sur chaque moteur, sur le rehausseur de tension, une autre suffisamment éloigné pour mesurer la température ambiante, et j’en passe. Dans mon cas, c’est du nice to have, et je m’en occuperais plus tard.

– Fonctionner dans le noir

=> La Camera Pi de base dispose comme tous les capteurs photos du monde ou presque un filtre infrarouge, permettant de supprimer les longueurs d’onde infrarouge proche. En effet, les capteurs photos sont sensibles par nature à ce type de rayonnement. Pour rappel, on ne parle pas ici de l’infrarouge lointain, celui qui sert aux caméras thermiques. Pour l’observation nocturne, les p’tits gars de la fondation Raspberry ont également sorti la Camera Pi NoIR (et nous, petit frenchy, pouvons profiter de cet adorable jeu de mot), une Camera Pi strictement identique à la première d’un point de vue électronique et informatique, mais dépourvu de filtre infrarouge. Le meilleur moyen dans profiter pleinement est donc de coupler cette caméra à un projecteur infrarouge. Et comment fait-on cela ? Avec des LED infrarouge, tout simplement. Le seul hic dans l’histoire, c’est que la caméra et les capteurs de distance risque de s’entre perturbé. Il conviendra donc de gérer leur fonctionnement de façon à éviter que les capteurs soient éblouis par le projecteur.

Le plan de câblage prévu, réalisé avec FidoCADj

Petit résumé sans tout le blabla justificatif de design :

– Piloter l’ensemble, communiquer, contrôler, commander
=> Un Raspberry Pi B+

– Détecter les obstacles à proximité
=> Un ADC MCP3008 en SPI, un capteur de distance IR 20cm à 120cm (GP2Y0A02YK, de Sharp), un autre de 100cm à 550cm (GP2Y0A710K0F, Sharp aussi).

– Se balader de façon autonome (même si aléatoire)
=> Un dongle Wi-Fi USB, une batterie 12000mAh

– Avancer
– Reculer
– Tourner

=> Un rehausseur de tension U3V50ALV, un ULN2803A, deux moteurs pas-à-pas 12V unipolaire

– Monitorer certaines grandeurs physiques propres (tension d’alimentation, température)
=> Le même ADC MCP3008 en SPI, un régulateur de tension, un L7805CV, 2 ou 3 résistances, sonde 1-Wire DS18B20

– La possibilité de suivre une ligne au sol
– Fonctionner dans le noir
=> Camera Pi NoIR + LED infrarouge

Savoir cablant en suivant son plan…

– Matériel annexe
=> Une breadboard, des fils pour la breadboard mâle-mâle, des femelle-femelle, un fer à souder, de l’étain, des tournevis, etc.

Au final je n’aurai plus qu’à aborder la partie logicielle, histoire d’avoir fait le tour sur le démarrage du projet ! Au final je n’aurai plus qu’à aborder la partie logicielle, histoire d’avoir fait le tour sur le démarrage du projet ! Au passage, je signale que la plupart des concepts d’électronique ne sont pas bien compliqué, et qu’un débutant motivé avec Google peut faire la même chose, voir mieux sans soucis.


Raspberry Pi

by Matthieu


Aujourd’hui, on va parler un peu de ce petit « ordinateur ». En effet, malgré sa taille et son encombrement plus que réduit, il faut bien reconnaitre qu’on y branche la même chose que sur une UC classique (clavier/souris/écran/alim/ »disque dur »), et que ça permet de taper du texte, aller sur l’Internet, envoyer un mail, bref, des trucs qu’on sait déjà tous faire avec un PC classique, une console de jeu ou un smartphone.

Alors qu’est ce que ça fait d’intéressant ? Et bien en général, on y voit 3 applications majeurs :

  • Officiellement, les concepteurs du RPi le voit comme un support pédagogique low cost pour l’apprentissage du développement. La version de l’OS proposé de base, Debian,  embarque de quoi développer dans pas mal de langage différent (python, C, perl, …), avec des approches graphiques (scratch).
  • Pour les autres, une machine embarquant Linux et bouffant 2/3W qui fait un jolie petit serveur domestique (NAS, LAMP)
  • Et pour les radins, ça peut même faire un média center. En effet, si le processeur principal est clairement un peu out-of-date, il embarque un GPU qui à l’air de prendre en charge du 1080p

Et pour moi ? Et bien je me cherche encore. Ça sera de mauvaise foi de dire que j’ai pas eu le temps, car j’ai commandé la carte chez Farnell le 3 mars, et je l’ai reçu il y a 2 semaines. Ça fait un peu de délai oui. En tout j’en ai eu pour 39 euros, frais de port compris. J’ai bidouillé un peu, fait un NAS vite fait, pourri une fois l’OS, tellement que je l’ai déjà réinstallé, et au final je crois que je vais plutôt faire du dev avec, et ce qui me plairait c’est de faire clignoter des Leds. Ouais, faire clignoter c’est tellement chouette. Bon, en gros, interfacer un peu d’électronique avec pour pouvoir construire Optimus Prime.

Alors si toi aussi tu te sens l’âme d’un bidouilleur de l’extrême et que tu veux tenter de faire des choses avec ton Pi Framboise voilà deux trois liens.

Le site de base, pour avoir des news trop bien genre « Tu peux acheter le boitier en Lego ! » : www.raspeberrypi.org

Le wiki « officiel », dans l’ensemble une bonne mine d’information : elinux.org/R-Pi_Hub

Le jour où vous recevez enfin votre Raspberry Pi, que vous avez installez elinux.org/RPi_Beginners. Vous y trouverez les 2 ou 3 trucs de base à savoir pour avoir une jolie Debian avec un compte à votre nom, configurer votre clavier, la langue du système, enfin bref, tout ce qui ce fait lors d’une installation sur un PC classique.

A partir du wiki j’ai extrais des liens vers des lib que je testerais WiringPi et les drivers de Mike McCauley. Ce sont des librairies en C permettant de jouer avec la partie GPIO. Les broches accessibles permettent également de faire d’autre type de communication, plus ou moins supportées également par ces drivers. Au pire ils ont l’air suffisamment bien documenter pour qu’avec la documentation du CPU du Raspberry Pi on puisse les compléter facilement.

Ah, j’oubliais, si l’achat d’un boitier n’a pas beaucoup d’intérêt, j’ai trouvé autre chose qui fait très joli :  le Starter Kit de SKPang. C’est un support pour le RPi avec une plaquette d’évaluation, ainsi que des leds, des résistances et interrupteurs. Ce qui ont fait un peu d’électricité/électronique au lycée auront une petite remonté de souvenirs émus. Pour commencer à faire du prototypage d’I/O vers le monde extérieur, ça m’a l’air pas mal du tout.


Theme by Ali Han | Copyright 2024 Embarquement ! | Powered by WordPress