De l'électronique avec une RPi ?

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour,

Une Raspberry c'est vachement pratique : de petite taille, elle fournit plusieurs sorties, la possibilité de mettre un OS commun et donc de la configurer à souhait. Mais est-elle un bon choix pour faire de l'électronique ?

Dans mon cas, je souhaite effectuer de petits projets avec mon oncle agriculteur (alimentation de relais, lecture de capteurs… Rien de bien méchant) et j'avoue que la RPi m'arrange pour ce qui est de l'UI. Sauf que je me suis récemment rendu compte qu'elle ne gérait pas l'analogique, et j'ai peur de découvrir d'autres limitations au fil du temps. Du coup, faut-il :

  • Passer à Arduino (ou autre) ?
  • Interfacer RPi et Arduino ?
  • Investir dans une carte d'extension pour RPi ?

Merci !

Édité par Vayel

+0 -0

A re-noter que ca reste possible de l'utiliser pour de l'électronique, on en a utilisée une pour ma classe, pendant le concours de sapin de Noël, pour faire une guirlande avec des leds contrôlable indépendamment (registres à décalage, bon, en pratique on sentait le scintillement quand même), donc on avait programmé de quoi faire défiler un texte, un jeu de la vie, de la randomneige et un pong qui jouait tout seul. C'est très pratique, parce que tu y as accès via SSH à distance en mettant une clé wifi.

En revanche, au niveau fiabilité, je fais plus confiance à des cartes comme arduino, et au dernier moment, les sorties du raspberry ont décidé de ne plus fonctionner (on a mis la guirlande, connecté le sucre d'alim, et on a prié très fort pour que ca s'allume, et miracle, les registres ont compris tout seul (data+clock+strobe à l'air) qu'il fallait faire clignoter les leds !). Donc là tout dépend de l'utilisation que tu veux en faire, mais le choix d'une rasp peut rester intéressante, surtout à long terme.

+0 -0

Je me permets de te donner mon avis étant donné que je suis confrontée au même soucis actuellement. J'ai déjà une raspberry pi depuis plus d'un an maintenant et je dois dire que pour débuter ça m'a aidée, on l'utilise tout simplement comme un ordi, auquel on peut se connecter facilement en ssh. Là où, je trouve, son utilisation devient fort limitée à long terme c'est au niveau de ses différentes capacités, dans mon cas je l'avais achetée pour m'initier à la robotique et aujourd'hui avec deux moteurs, deux HC-SR04, un L293D, l'une ou l'autre chose supplémentaire, je me commence à peiner à trouver des GPIOs encore disponibles.

Je serais du même avis que les premières réponses, la beaglebone black a vraiment l'air sympa et c'était mon premier choix, que j'aurais du choisir plutôt que la Rpi.

Après que pensez vous de la Olinuxino de chez Olimex? Dans mon cas la A20-lime2 semble vraiment sympathique (120 GPIOs mentionnés, double dual-core, une broche dédiée au LCD, etc.), peut-être que ces cartes-ci pourraient aussi te convenir, mais je ne connais pas trop leur valeur…

Édité par Tsou'

+0 -0

Les borniers de la BBB seront plus simple à exploiter que ceux de la A20 lime2. Et plus, en électronique, il est très utile d'avoir du matériel bien documenté. La documentation du chip broadcom de la RPi est très incomplète (à moins que vous ne soyez sous NDA avec Broadcom), Allwinner documente ses processeurs (dont celui de la lime2) comme des microcontrôleurs 8bits (ce qui peut néanmoins être un avantage pour le débutant, et ne push pas ses sources Linux mainstream, alors que TI documente bien ses processeurs et fait l'effort de faire accepter ses patchs linux mainstream. D'ailleurs, BBB est la plateforme de référence pour tester Minix sur ARM.

+0 -0

La question est : que veux-tu faire ? Quels sont tes besoins ?

Une fois la question répondu, il faut choisir la solution répondant au mieux à tes besoins.

Le problème aujourd'hui c'est que les gens veulent tout faire en "électronique" alors qu'au final ca se résume souvent à un capteur qu'on vient lire et dont on récupère l'information en Wifi via un serveur web. Bref on sort l'artillerie lourde pour pas grand chose.

Donc quel est ton besoin ?

  • Alimentation de relais ? C'est pas un microcontroleur qui s'occupe de l'alimentation
  • Récupérer des infos de capteurs ? Tout dépend du capteur et à priori la plupart des cartes en sont capable
  • Avoir des I/O analogiques ? La plupart des microcontroleurs en ont (et une Raspberry possède un processeur et non pas un microcontroleur)
  • Faire du Wifi / Ethernet ? Il vaut mieux se diriger directement vers des microcontroleurs 32 bits (ARM Cortex Mx). Pour moi Arduino Uno + Wifi/Ethernet est une aberration.

Édité par zeqL

+1 -0
Auteur du sujet

Idéalement, je souhaiterais pouvoir utiliser la carte pour plusieurs projets. Ce implique de pouvoir notamment :

  • Recevoir des données d'une caméra ;
  • Commander un moteur pas-à-pas ;
  • Alimenter des relais ;
  • Lire des données provenant de capteurs analogiques ;
  • Faire du Wifi/Ethernet ;
  • Offrir une interface Web.

En particulier, le projet actuel consiste à commander une rampe de 1m30 dépliable avec un verrin hydraulique de 20cm, commandé par électrovanne. Il faut donc que le temps de réaction soit plutôt faible.

Je ne connais pas le terme technique pour cela, mais j'apprécierais beaucoup pouvoir me connecter à la carte (via SSH par exemple). Plus généralement, ce serait un gros plus d'avoir un Linux "standard" dessus.

Merci. ^^

PS : certains propos sont probablement dignes d'un gros noob en la matière. C'est normal, j'en suis un.

Édité par Vayel

+0 -0

Le Raspberry pi est très bien pour contrôler des relais, tu peux en contrôler jusqu'à 128 avec des cartes d’extensions branchées sur les broches i2c.

Par contre il te faudra une alim qui tienne le coup.

Voici ce que j'ai fait pour contrôler 32 relais (ça fonctionne très bien) :

raspberry pi + carte io pi

J'ai utilisé un carte d’extension io pi qui provient de chez Abelectronics (https://www.abelectronics.co.uk/products/3/Raspberry-Pi/18/IO-Pi), tu peux en empiler jusqu'à 4 (il me semble) en changeant les adresses avec les jumper.

J'ai aussi pour projet de contrôler un moteur pas-à-pas, je te tiendrais en courant quand je l'aurais fait ;)

Et pour la camera je sais que c'est possible.

Édité par DigitalSuricate

+0 -0

Le Raspberry pi est très bien pour contrôler des cartes qui contrôle des relais, tu peux en contrôler jusqu'à 128 avec des cartes d’extensions branchées sur les broches i2c.

Le manque d'I/O (et de leur versatilité) de la RPi font que fatalement il faut bien souvent passer par une carte externe pour fait quoi que ce soit d'autres.

ZdS, le best du Zeste ! Tuto Arduino, blog, etc

+0 -0

Le manque d'I/O (et de leur versatilité) de la RPi font que fatalement il faut bien souvent passer par une carte externe pour fait quoi que ce soit d'autres.

Je ne vois pas où est le problème ? Après tout elles ne sont pas si chères ces cartes, et puis le fait de pouvoir brancher un écran sur le RPi c'est non négligeable … surtout si tu veux faire un système, avec une interface web, indépendant de tout autre PC.

+0 -0

Euh… c'est quoi le rapport entre l'interface web et l'écran ? D'ailleurs l'écran, c'est pas une spécificité de la RPi, les autres en ont aussi. Les autres aussi ont de l'I2C. Le point de différenciation, c'est le reste des I/O, prolifique sur les autres cartes et quasi nul sur RPi. C'est super limitant en électronique, d'autant que je doute que la RPi propose 2 I2C pour en avoir un à 1MHz et un plus lent pour les devices qui ne supportent pas l'I2C high speed (ils sont légion).

Édité par Natalya

+0 -0

Le manque d'I/O (et de leur versatilité) de la RPi font que fatalement il faut bien souvent passer par une carte externe pour fait quoi que ce soit d'autres.

Je ne vois pas où est le problème ? Après tout elles ne sont pas si chères ces cartes, et puis le fait de pouvoir brancher un écran sur le RPi c'est non négligeable … surtout si tu veux faire un système, avec une interface web, indépendant de tout autre PC.

DigitalSuricate

Par exemple tu as mis 32 relais pour ta Raspberry Pi. Imaginons que la carte d'extension I/O ne fait passer le contrôle des relais que par un bus (I2C ou SPI ou un truc maison).
Si ton bus fonctionne à 100 MHz, chaque relais ne pourra être contrôlé que tous les 100 MHz / 32 = 3.125 MHz (au mieux !)
Si le bus est à 10 MHz, ca ne fait plus que 312.5 kHz.
Enfin à 1 MHz, ça ne fait plus que 31 kHz.

Certes les relais ne sont pas fait pour commuter à des vitesses folles (enfin les mécaniques). Il ne faut donc pas oublier que moins on a d'I/O natives et plus on devra faire des concessions si on a beaucoup de périphériques.

Si on sait dès le départ que l'on aura besoin de beaucoup d'I/O, il vaut mieux se tourner vers une carte en comportant plus nativement plutôt que de penser déjà à rajouter une carte d'extension.

+0 -0
Auteur du sujet

Comme je vais avoir besoin d'une interface graphique, je pense passer par un serveur Web. Mais j'ai peur que ça ralentisse ma carte. Ne serait-il pas judicieux de faire communiquer une carte (genre Arduino) pour gérer les I/O avec une autre pour héberger le serveur, faire de la sauvegarde, etc. ?

Pour information, le tracteur roule à 5km/h dans le verger et les troncs sont espacés de 2m environ. L'objectif est de plier ou déplier une rampe afin de passer à une certaine distance des troncs (genre 10cm). Pour cela, on pensait placer un capteur de distance avec un certain angle par rapport à la normale au rang : connaissant cet angle et la distance d avec le tronc suivant, on connait la distance D du capteur au centre du rang (en considérant que le tronc considéré est au centre du rang) et peut agir sur la rampe en conséquence :

1
2
3
4
5
O------O------O------O
        \  |
       d \ | D
          \|
      <--  C

Se pose également la question des voltages. Presque tout semble en 5V, hors la BBB ne délivre que du 3.3 et reçoit du 1.8 sur les entrées analogiques.

Merci. :)

+0 -0

Cette réponse a aidé l'auteur du sujet

pour tes problèmes de tension, un simple transistor répond à la question. alors c'est sur, si t'as 40 trucs qui marchent en 5V ça vaut pas le coup, mais dans ton cas, t'en as au maxi 4 (commander l'inclinaison de la rampe dans les 2 sens en mode moteur ou frein)…

et pour le lectures analogiques, un simple pont diviseur suffit aussi: la beaglebone lit entre 0 et 1.8V, tu bricole un pont diviseur qui te fait au maxi 1,7V pour le maximum de tension visible, et tu divise par le rapport de ton pont diviseur avant d'appliquer la récipoque de ton capteur pour avoir la valeur de la grandeur analogique en soft pour tes besoins.

Oui. Non. Attends, je regarde mieux et je te dis.

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte