Passer d'Arduino à une solution industrielle

Bonjour,

Ça fait maintenant quelques années que j’utilise Arduino dans mes projets nécessitant un microcontrôleur. C’est un outil de prototypage très intéressant. Mais, malgré les nombreuses cartes proposées par la marque, une contrainte persiste. Il n’est pas fait pour des solutions miniaturisées ou industrialisable. Il se trouve que ces problématiques se posent de plus en plus souvent dans mon quotidien.

J’ai essayé de les résoudre en utilisant des µmicrocontrôleurs compatibles avec l’environnement. (Attiny 85 et 84, atmega328 breadboard…) Mais le problème n’est pas très différent les caractéristiques techniques restent restreintes (clock, nb de broches, boitier…). De plus, pour une solution commercialisable il est primordial de maitriser l’intégralité du système. Or l’IDE Arduino n’a pas vraiment été conçu pour cela.

Je souhaite donc passer du monde d’Arduino au monde industriel, changer d’IDE, m’ouvrir à de nouveaux composants …

Quelle est la manière pour faire cette transition en douceur et sans recommencer un apprentissage de quelques années ?

Je vous remercie d’avance pour votre aide.

Louison :wink:

Des solutions comme celles-ci par exemple ?:

https://controllino.biz/

http://www.audon.co.uk/arduino/ARDUPLC-NANO-HMI.html

Pour la miniaturisation, il faut te faire ton propre circuit, les exemples ne manquent pas :

http://www.gammon.com.au/breadboard

Merci de ta réponse mais non pas industrielle dans ce sens la.

Plutot, les bureaux d’études en éléctronique, ils ne mettent pas d’arduino dans leurs produits.

Comment font t’ils ? Comment faire comme eux ?

Précisions sur l'IDE arduino.
Elle n'est nullement indispensable pour développer avec les fonctions arduino.
Il y a 2 parties distinctes :

  1. des classes ou des fonctions comme digitalWrite()
  2. l’environnement de développement intégré.

Pour ma culture générale j'ai développé avec Eclipse en utilisant les fonctions arduino.
Il existe des versions d'Eclipse (aussi de Code::Blocks et Netbeam) pré-modifiées pour utiliser les fonctions arduino. Mais pour tes besoins je le déconseille fortement car ce sont des œuvres d'auteurs isolés sans aucune garantie de maintenance.
Je m'étais servi des liens ci dessous :

Malheureusement le site a été refondu et je n'y retrouve plus mes informations.

En résumé il conseillait de créer une bibliothèque statique à partir de l'ensemble des fonctions et classes arduino (c'est aussi ce que fait l'IDE arduino dans le répertoire provisoire avec la bib statique "core.a".
Ensuite il fallait écrire un vrai programme C++ avec une fonction main() et créer une boucle infinie avec un while(true).

Il n'y a pas qu'arduino.
Déjà Atmel fourni un EDI Atmel Studio.
Les pics de Microchip et l'EDI MLABX qui est basé sur Netbeams et point important sous la responsabilité de Microchip.
Là aussi il doit être possible de développer avec des EDI généralistes et des fonctions du constructeur du micro.

Le projet MBed pour des micro ARM :
MBed ressemble à Arduino mais l'esprit est totalement différent. MBed est résolument professionnel.
Le modèle économique d'arduino est de vendre des cartes a des amateurs, le modèle économique d'ARM avec Mbed est d'aider ses clients (NXP, STmicro, Renesas, Nordic, etc) a vendre des boîtiers par centaines de milliers. Les cartes sont juste l'accessoire indispensable pour tester les micros.

ARM propose un compilateur en ligne avec un dépôt mercurial gratuit où les projets peuvent être publics ou privés.
Parallèlement ARM explique comment utiliser les bibliothèques Mbed avec l'EDI (dont Eclipse) et le compilateur de son choix (dont en gratuit GCC et AC6) pour être indépendant.

Il est aussi évident qu'il faut maîtriser toute la chaîne de fabrication et dans le poste important des achats quels sont les fournisseurs agréés (résistances, condensateurs surtout pour les chimiques, etc).
Quand j'étais en activité je n'aurais jamais sélectionné un produit sans cette information et mon entreprise la fournissait sur nos produits à nos clients.
Cette information est impossible à obtenir avec le matériel arduino, par contre ST-Micro fourni la liste des fournisseurs pour ses cartes Mbed(Nucleo).
Pas de chance ST ne veut pas prendre de risques (vendre des cartes équipée n'est pas son métier) et interdit l'usage de ses cartes pour d'autres utilisations que le prototypage.
Conseil : si tu as la qualité de professionnel et que ces cartes t'intéressent, contacte les représentants ST, NXP, Renesas, etc, cela m'étonnerait qu'ils te le fassent payer.

Salut

La question est très vague.
Il faudrait donner un exemple de réalisation à industrialiser.

En général, les bureaux d'étude utilisent des processeurs adaptés à leur cahier des charges.
Dans ma boîte on a utilisé beaucoup de MSP430, ARM7.
Les processeurs STM32 sont très intéressants à l'heure actuelle du petit STM32L031K6 au gros STM32F429ZI, il y en a de toutes sortes et leur puissance est très variable.
Il existe pas mal de cartes d'évaluation.
Par contre la réalisation finale demande de gros moyens de développement, surtout en électronique.
Un boîtier LQFP144 ne s'intègre pas comme ça en claquant des doigts. On quitte le monde de la bricole.

En matière de logiciel, les IDE les plus couramment utilisés sont KEIL, ATOLLIC, ECLIPSE + GCC, ATMEL STUDIO, etc.
La librairie MBED est assez riche mais elle n'offre pas l'immense diversité des bibliothèques ARDUINO.

@+

Un grand merci à tous pour vos réponses plus que complète et pertinente.

J’aurais dut le préciser dans mon premier poste.

Ce qui à déclencher mon appel est l’aide est ma récente acquisition de la Nucleo-32 de chez STM.
Je me suis trouvé perdu avec L’IDE online Mbed et lorsque que j’ai essayé de passer sur un logiciel PC.
J’ai fait une petite recherche Google comme il se doit, en m’attendent à des dizaines de résultats comme d’habitude avec Arduino. Et là ! Rien de pertinent.
Personne ne l’avait-il fait ?
Ma carte ne se programme qu’en ligne ?
Que de questions sans réponses.

Je me suis alors posé la question : Est-ce la bonne voie pour passer le cap ?

Et voilà l’histoire de ce poste.

« Par contre la réalisation finale demande de gros moyens de développement, surtout en électronique.
Un boîtier LQFP144 ne s'intègre pas comme ça en claquant des doigts. On quitte le monde de la bricole. »

De gros moyen ?
Un TQFP 32 est peut-être une première étape avant le LQFP144. Je suis bien contient que l’on quitte le monde de la bricole et c’est précisant mon but mais je ne sais pas par où commencer.

« Quel niveau tu as pu atteindre »

Il m’est difficile de faire une autoévaluation sur mon niveau en électronique. J’ai réalisé divers projets comme :

  • Système de domotique (automate, Raspberry, Arduino)
  • Robotique (contrôle moteurs …)
  • Contrôleurs MIDI

  • Pour chacun de ces projets j’ai fait des simulations, routé des cartes, soudé du CMS, développé des firmware…
    Mais à chaque fois le controleur est un atmega328 ou un Arduino.

« Réclament forcément un apprentissage académique »

Je suis autodidacte. Je souhaite faire des études en électroniques mais je ne suis qu’en terminal. Il va me falloir encore patienter 2 ou 3 ans avant d’apprendre les techniques de l’industrie. Si je pouvais faire sans cet apprentissage se serait vraiment sympa.

Je suis en train de commercialisé un produit sous Arduino Nano. J’en ai un peu honte et souhaite passer dès que j’en ai les connaissances à une solution bien plus adaptée.

Pour utiliser mon nucleo-32 y a-t-il une documentation qui pourrait m’aider à faire la transition ?

Est-ce que quitter Arduino veut dire au revois aux retours d’expériences et aux tutoriels et bonjour à la Datasheet de 400 page ?

Si c’est le cas, où puis je trouver la méthode pour faire cela ?

Encore merci pour vos réponses.

Louison

Tout dépend de la plateforme utilisée.

Sous Windows l'IDE le plus abordable pour un débutant est KEIL.
Les carte NUCLEO sont interfaçables directement (choisir ST-LINK dans l'IDE).

Sous Linux, j'utilise ARM-GCC mais tout se passe en ligne de commande.
Mais il est possible de travailler avec Eclipse.

@+

industrialisation..?
deja bien choisir son micro controleur, as tu besoin d'un micro qui fait 100Mhz, avec 100 in/out...
Ou juste d'un attiny ...?

a mon boulot, on utilise uniquement des Pic, avec l’environnement adéquat ( MPlab), avec des in/out prédéfinit, pour un prix au minimum de préférences.

après la programmation, on converti en fichier .hex, que l'on envoi au sous traitant.

IDE arduino est pour les débutants, super facile a programmer, autrement tu a environnement atmel ou tu programmes en vrai C/C++ avec un main ect... et non pas de setup ou loop ect...

Ensuite, tous les micro controleur ne font de C++, seulement du C, donc pas de programmation objet, qui facilite aussi les choses...

Ma carte ne se programme qu'en ligne ?

Non le site d'ARM explique comment récupérer les bibliothèques et les utiliser avec les IDE généralistes comme Eclipse le tout installé dans ton PC..

De plus c'est faux car avec le système "dans les nuages" le compilateur est en ligne mais le fichier hex est créé sur ton PC. C'est donc de ton PC qu'il est transféré dans le micro.

Je suis persuadé qu'il faut toujours progresser et ne jamais se contenter de l'acquis mais il faut rester les pieds sur terre et privilégier les petites marches aux trop grandes.
Donc je dis attention a ne pas viser trop haut tout de suite surtout que tu n'es qu'en terminale (si tous pouvaient être comme toi !) et tu va vite apprendre des notions qui devraient grandement te permettre de progresser.

Wiring (arduino est un fork de Wiring) a été créé pour des artistes qui ne connaissent rien, ni à la programmation n'y comment installer une toolchain dans un PC.

Si tu sors de Wiring/Arduino tout le confort douillet va disparaître. Pour être franc ce que j'ai dis à propos des bibs Mbed dans Eclipse je l'ai lu sur le site Mbed mais j'ai un peu de mal à comprendre comment il faut faire, mais c'est normal je suis un électronicien.

Plusieurs modèles de micro ?
AMHA oui et non.
OUI parce que le fait de comparer des micros permet de bien faire ressortir les principes généraux, c'est donc bénéfique et facilite la compréhension des futurs micro.
Non parce que tant qu'un micro n'est pas bien maîtrisé ce n'est pas bon de se disperser. La fuite en avant est à proscrire.

Quant à la fabrication de cartes industrielles c'est un autre problème (que je connais mieux) mais pas simple.
La maîtrise des normes et des procédés de fabrication est compliquée, dans les grandes sociétés c'est même un métier à part.
Dessiner un circuit imprimé avec un LQFP est simple, dessiner un circuit imprimé fabriquable avec des bons rendement est une autre affaire.

Très souvent tu as intérêt à passer par un sous-traitant pour l'assemblage. Pourquoi ? Parce qu'il achète les composants en grande quantité et toi à la dizaine donc les prix sont totalement différents.
Pour que cela fonctionne il faut prendre contact avec le sous-traitant dès le début de l'étude pour connaître ces composants peut coûteux.

C'est pourquoi le micro strictement adapté à ton besoin et le moins cher sur le tarif officiel reviendra souvent plus cher qu'un modèle supérieur mais utilisé en grande quantité par plusieurs clients de ce sous-taitant.

Je pense qu'il faut simultanément être volontaire et progresser tout en restant humble et accepter que l'expérience prenne quelques années pour arriver.

louisongouy:
Je suis autodidacte. Je souhaite faire des études en électroniques mais je ne suis qu’en terminal. Il va me falloir encore patienter 2 ou 3 ans avant d’apprendre...

Punaise !
Ça change de tes camarades qu’on voit passer dans le coin.

Bravo et continue comme ça.

La librairie MBED est assez fournie, par contre in faudrait pouvoir faire ses développements OFFLINE.
Si ça te tente : eclipse for building and debugging - Cookbook | Mbed
C'est certainement très intéressant pour de gros projets. Le gros intérêt est de pouvoir disposer d'un debugger, absent d'ARDUINO.
Sinon si tu es sous Windows tu devrais essayer KEIL MDK-ARM en version gratuite jusqu'à 32Ko de code.

ALTERNATIVE

Si tu veux y aller progressivement et en douceur, sans trop de bobo, il y a aussi la solution STM32DUINO.
L'intérêt est de conserver l'immense diversité des librairies ARDUINO tout en évitant la complexité du développement STM32.

J'ai récemment écrit un petit tuto sur le sujet :

@+

Pour ce que j'en connais, les industriels utilisent aussi des FPGA.
Mais c'est sans doute un autre monde...

biggil:
Pour ce que j'en connais, les industriels utilisent aussi des FPGA.
Mais c'est sans doute un autre monde...

C'est un monde complètement différent.

Pour faire court : tu n'utilises plus un microcontrôleur, tu fabriques un microcontrôleur.
De très bonnes connaissances en électronique numérique sont indispensables.

Un fpga c'est un ensemble de circuits logiques élémentaires qui à la base ne sont pas connectés entre eux.
La programmation d'un fpga consiste à définir les interconnexions pour réaliser des fonctions numériques complexes.
Tellement complexes qu'on peut réaliser un microcontrôleur avec des fpga. Les concepteurs de microcontrôleur valident leurs nouveaux schémas avec des fpga "très haut de gamme" avant de lancer des tranches de silicium.

Même si le langage (verilog ou vhdl) ressemble à un langage de programmation le résultat n'a rien à voir.
Dans un cas le résultat est une suite d'instruction à réaliser, dans l'autre c'est "un plan de câblage".

Un des gros avantages des fpga sur les microcontrôleurs (à même fréquence horloge bien évidement) est la rapidité. Avec un microcontrôleur les instructions s’exécutent les unes à la suite des autres. Avec un fpga il est possible de paralléliser et de faire plusieurs actions simultanément à chaque cycle horloge.
Le fameux analyseur logique clone de Saleae est basé sur un cpld (voir la différence ci dessous)

Différence entre cpld et fpga :
Le principe est le même "le plan de câblage" est contenu dans une eeprom.
CPLD : l'eeprom est sur la même puce que le "cœur" fpga
FPGA : l'eeprom est dans un boîtier externe.

Conséquence : les cœurs de fpga sont plus puissants que ceux des cpld.