LinuxCNC tourne sur la carte BeagleBone Black

Marc PELTIER
Compagnon
1 Juin 2010
507
89500
  • Auteur de la discussion
  • #1
Bonsoir à tous!

Je voulais signaler que LinuxCNC (Emc2) tourne désormais sur la carte BeagleBone Black (45€). Il semble que les premières applications ne concernent que des axes PAP sur des imprimantes 3D. Mais comme LinuxCNC est capable de gérer directement des boucles d'asservissement, cela ouvre des possibilités pour créer des systèmes économiques avec axes sur servos, gérés directement par LinuxCNC.
http://bb-lcnc.blogspot.fr/

N'étant pas un cador de la programmation de micro-contrôleurs, je pensais déléguer le décodage des signaux en quadrature à un circuit spécialisé, comme celui-ci :
http://www.robogaia.com/two-axis-encoder-counter-mega-shield-version-2.html , mais cette approche est contradictoire avec la recherche d'économie. Je pense que la carte BeagleBone devrait pouvoir gérer efficacement les signaux en quadrature de nombreux axes, notamment grâce à son coprocesseur PRU, qui, dans le portage cité ci-dessus, prend déjà en charge les tâches temps réel de Linux/LinuxCNC.

L'objectif est de disposer d'une solution complète à servos, encore moins chère que celle à moteurs PAP, pour nos petites machines (hors moteurs/encodeurs, bien sûr, mais il y a la récup', et ebay...). Pour info, la carte BeagleBone gère aussi les périphériques permettant d'assurer l'autonomie du système (vidéo, usb hôte, Ethernet...).

Qu'est-ce que ça vous dit ?
 
Dernière édition par un modérateur:
nopxor
Compagnon
27 Mai 2010
1 413
Yvelines
Bonsoir,

La carte BBB présente beaucoup d'atouts. La Cubieboard2 (double core) a l'air pas mal aussi avec son port Sata et 1 Giga de RAM.
Leur grand nombre de pins I/O (92 et 96) est très intéressant.
Il faudrait faire des test de latence pour voir leur capacité à faire tourner LinuxCNC sur d'autres cibles que les imprimantes 3D.
 
Marc PELTIER
Compagnon
1 Juin 2010
507
89500
  • Auteur de la discussion
  • #3
Je ne connaissais pas la Cubieboard2. Merci pour l'info!

Il est certain que l'on verra fleurir de nombreuses cartes d'ordinateurs complets sous Linux ou Androïd, très peu chers, au format carte de crédit. Après tout, on peut les voir comme des smartphones sans écran ni périphériques gadgets. Certaines de ces cartes, comme Raspberry Pi, semblent orientées vers l'image (flux vidéo HD, caméra dediée...). La Cubieboard semble apte à se placer comme système informatique universel très compétitif.

Ce qui fait l'intérêt de la BBB, à mon avis, c'est la position d'équilibre entre la carte hardware exposant pas loin de 90 pins d'entrées/sorties avec tout le confort moderne, et le système informatique disposant, lui aussi, de tout le confort. Au prix modique où elle est vendue (45€), c'est une excellente alternative pour LinuxCNC, par rapport aux ordinateurs obsolètes avec port(s) parallèle(s) habituellement utilisés.

Pour ce qui est de la latence, si j'ai bien compris de ce que j'ai lu, le portage du noyau temps réel sur BBB a mobilisé un coprocesseur dédié présent dans le processeur de la BBB, appelé PRU, avec des résultats foudroyants. Le PRU tourne à 200 MHz (dans un processeur ARM Cortex-A8 à 1 GHz), en n'utilisant que des instructions exécutables en un seul cycle. Une fréquence de pas de 50 KHz ne semble pas poser de problème, sans FPGA ni rien d'autre que la carte BBB elle-même. L'architecture est exposée ici :
http://www.element14.com/community/community/knode/single-board_computers/next-gen_beaglebone/blog/2013/05/22/bbb--working-with-the-pru-icssprussv2

L'avantage déterminant est aussi, évidemment, que tout ce travail de portage du kernel temps réel a déjà été fait sur BBB, et reste à faire sur les autres, ce qui ne semble pas trivial.

Je reviens donc à ma question : est-ce que quelqu'un se sent les compétences pour programmer des compteurs d'encodeurs en quadrature, gérés en temps réel, dans le PRU d'une BBB? Il n'y a que cela qui sépare la carte à L298 que je viens d'acheter pour 5€ sur ebay, d'un driver tout ce qu'il y a de performant pour deux axes asservis... :smt002
 
Dernière édition par un modérateur:
Marc PELTIER
Compagnon
1 Juin 2010
507
89500
  • Auteur de la discussion
  • #4
Je me réponds à moi-même.
En fait, il semble que LinuxCNC intègre déjà une fonction appelée encoder, qui fait l'analyse de deux signaux en quadrature (jusqu'à 8 canaux simultanés), et peut fournir, entre autres, l'état d'un compteur en binaire, une position mise à l'échelle en virgule flottante, ou encore une valeur de vitesse en virgule flottante. http://linuxcnc.org/docs/html/man/man9/encoder.9.html

Je vais donc essayer de faire fonctionner un système minimum à deux axes comme esquissé ci-dessous.
BBB_LinuxCNC.jpg

Toute aide ou conseil des experts émérites de ce forum est évidemment bienvenue.
Merci d'avance !
 
Dernière édition par un modérateur:
Marc PELTIER
Compagnon
1 Juin 2010
507
89500
  • Auteur de la discussion
  • #5
Bonjour,

Je continue ma documentation sur BeagleBone Black supportant LinuxCNC:
La carte d'interface BeBopr Plus regroupe tous les drivers hardware pour piloter une imprimante 3D (dont 5 axes en pas-à-pas).

Pour répondre au souci de nopxor à propos de la vitesse, la combinaison BBB + BeBopr débite les pas à 60kHz sur tous les axes simultanément. C'est plus du double de ce que j'obtiens sur mon vieux PC actuellement, avec trois axes.

Pas mal, je trouve...
A +
 
Marc PELTIER
Compagnon
1 Juin 2010
507
89500
  • Auteur de la discussion
  • #7
Je suis d'accord, ce n'est pas la solution à suivre immédiatement. Je ne la citais qu'à cause des performances.

Sinon, il y a aussi eu l'adaptation d'une RAMPS (shield d'arduino très utilisé sur les imprimantes 3D) à la BBB, en prenant garde aux quelques signaux qu'il faut convertir de 3,3 à 5V.
L'adaptation publiée utilise une carte intermédiaire, mais on peut imaginer de câbler à la main la vingtaine de signaux nécessaires, ce n'est pas hors d'échelle...
 
Marc PELTIER
Compagnon
1 Juin 2010
507
89500
  • Auteur de la discussion
  • #8
Suite du feuilleton LinuxCNC sur BBB :

Le consortium Arduino avait annoncé début octobre la carte Arduino TRE, qui semble être le fruit des amours d'une carte Arduino Méga et d'une carte BBB. Les organisations BeagleBoard et Arduino ont collaboré à la conception.
http://arduino.cc/en/Main/ArduinoBoardTre

Le même processeur TI Sitara à 1 GHz, avec ses deux co-processeurs PRU spécialisés dans les tâches temps réel, est utilisé aussi bien sur la BBB que sur l'Arduino TRE, qui semble cumuler les standards de broches de l'Arduino et de la BBB. Cela signifie que l'on pourra probablement insérer, sans autre forme de procès, une carte RAMPS (5 axes pour moteurs PàP <2,5A + 3 voies PWM 7A + 3 entrées analogiques + 6 fins de course). Ces cartes sont archi-éprouvées dans le monde des imprimantes 3D.

On ne connait pas encore le prix de l'Arduino TRE, mais, comme on trouve aujourd'hui sur Ebay des cartes RAMPS complètes à 50€, on disposera probablement au printemps 2014 d'une solution électronique complète pour 5 axes sous LinuxCNC, avec des performances à faire rêver, à guère plus de 100€.

A ce prix-là, je vais tout numériser dans l'atelier, même les tournevis ! :lol:
 
Dernière édition par un modérateur:
amorgen
Nouveau
15 Novembre 2013
12
sud
C'est tout à fait ce que je recherche pour mon projet CNC.
A terme la solution des vieux pc avec port parallele ne sera plus viable (ça fait longtemps que je n'ai plus cette connectique chez moi).
Et sur auduino faut quand meme un pc pour streamer.
Hâte de voir des retour de portiques pilotés par arduino Tre !
cdlt
 
coredump
Compagnon
8 Janvier 2007
4 096
FR-06
Très intéressant, même si il faut tempérer la pérennité de telles cartes car les processeurs utilisés ont tendances a avoir des cycles de vie très court (entre 2 et 4 ans max).
Pour info j'ai été très étonné de voir un header pour port parallèle sur une carte mère intel très récente, comme quoi il n'est toujours pas mort.

Ce qui serait encore plus intéressant c'est d'avoir des cartes de pilotages de moteurs CC aussi performantes que les cartes MESA mais avec une interface adaptée a ce genre de carte (SPI, I2C ou autre).
 
tranquille
Compagnon
12 Avril 2008
5 277
FR-12320 - Aveyron - Conques
Je pense que je n'y pige pas beaucoup plus que toi, mais je sens bien une avancée technologique dans ces cartes CPU qui reçoivent une version de LinuxCNC

Comme dit plus haut, il faut s'affranchir de ce port parallèle, avec Linux ou sans
Partir sur une CNC toute neuve et travailler avec un vieux PC sous XP qui peut tomber en rade dans quelques temps sans rien pour le remplacer, ce n'est pas bon
"une chaine résiste comme son maillon le plus faible"
On se rapproche d'une électronique embarquée à laquelle on donne une carte mémoire chargée avec un programme GCODE

Avoir un ordi à l'atelier, c'est pas évident, avoir une CNC dans son bureau non plus
 
Marc PELTIER
Compagnon
1 Juin 2010
507
89500
Bonsoir à tous!
Suite du feuilleton LinuxCNC sur BeagleBone Black (BBB) :

http://webshop.juve.ro/index.php?main_page=product_info&cPath=1_2&products_id=1&zenid=qEnZoA1xvCCOSFq2o1CGm2

Il s'agit d'une carte d'interface entre la BBB et un port parallèle DB25 et/ou des connecteurs regroupant les signaux destinés à des drivers de moteurs séparés. La carte distribue les signaux pour quatre axes via le port parallèle, ou six axes par six connecteurs indépendants. Elle est vendue 22€.

Traduction :
1 - On peut désormais brancher (22€), sur une BBB (45€), une carte chinoise 4 axes à TB6550 (45€), pour faire tourner LinuxCNC. Chic et pas cher!
2 - Ou bien on peut construire un système avec des drivers de moteurs séparés, d'ampérage quelconque, jusqu'à six axes. Carrément pro !

Dans les deux cas, la carte BBB, au format carte de crédit, remplace très avantageusement le gros ordinateur obsolète et poussif qui peinait à générer les pas à vitesse suffisante. Là, on parle de 60 kHz sur tous les axes simultanément...

Je viens de recevoir ma BBB, et bien que je n'aie pas beaucoup de temps pour expérimenter, il devrait y avoir des nouvelles bientôt.
 
Dernière édition par un modérateur:
Laurent_CNC
Ouvrier
26 Avril 2012
489
Bonjour Marc, et merci pour les nouvelles.

Vivement les réponses du Latency Test !

Par contre, prendre une carte chinoise à base de TB6600, c'est la nouvelle génération beaucoup mieux. J'ai ça sur mon Haulin transformé et je verrais bien un Raspberry à la place de mon gros PC...

Laurent
 
La dernière réponse à ce sujet date de plus de 6 mois

Dernières discussions

Haut