Go Down

Topic: Arduino et le monde professionel (Read 3551 times) previous topic - next topic

aurel94

Bonjour à tous,

Je suis actuellement en train de travailler sur les IoT (objets connectés) et leurs systèmes électroniques et informatiques associés.
Je me pose une question assez simple mais qui me turlupine.
Est il possible de programmer en haut niveau sur des montages électroniques dédiés à l'industrialisation et à la commercialisation ?

Je m'explique, typiquement avec des cartes Arduino on peut programmer facilement tout types d'objet car l'abstraction matérielle est importante. Mais cela a t'il des conséquences sur le matériel, la fiabilité etc ? Est ce la raison pour laquelle peu d'entreprise industrialisent des objets avec des cartes Arduino ?

Je me demande aussi alors comment les entreprises font elles pour passer d'un produit qui a été prototypé avec de l'Arduino vers un produit fini et industrialisé. Je m'avance peut être mais je dirais qu'il y a une transcription du code vers un langage plus bas niveau type assembleur.

J'aimerais connaître un peu plus le contexte de l'industrie électronique pour mieux me situer.

De plus je me renseigne aussi actuellement sur ARM et leurs nouvel OS pour objet connecté nommé mbed. Certains parlent d'un environnement Arduino pour les pros et je ne comprend pas cette comparaison.

Merci d'avance de vos réponses.

fdufnews

#1
Jun 22, 2015, 12:44 pm Last Edit: Jun 22, 2015, 12:44 pm by fdufnews
Est il possible de programmer en haut niveau sur des montages électroniques dédiés à l'industrialisation et à la commercialisation ?
On ne fait que ça. C'est la raison pour laquelle les processeurs doivent embarquer de plus en plus de mémoire (RAM et FLASH) car les langages haut niveau sont très gourmands en ressources mémoires (usage RAM) et ils utilisent de nombreuses librairies (usage FLASH) pour assurer ce niveau d'abstraction.

Je me demande aussi alors comment les entreprises font elles pour passer d'un produit qui a été prototypé avec de l'Arduino vers un produit fini et industrialisé.
Arduino permet éventuellement de valider un concept mais dans l'industrie on utilise plutôt les cartes de développement des constructeurs.

Je m'avance peut être mais je dirais qu'il y a une transcription du code vers un langage plus bas niveau type assembleur.
C'est plutôt le contraire. Cela plus de 20 ans que l'on écrit plus une ligne d'assembleur dans l'industrie. Il y a d'ailleurs des pans entiers de l'industrie qui l'interdisent formellement.

De plus je me renseigne aussi actuellement sur ARM et leurs nouvel OS pour objet connecté nommé mbed. Certains parlent d'un environnement Arduino pour les pros et je ne comprend pas cette comparaison.
mbed c'est plus qu'un OS c'est tout un écosystème développé autour des processeurs ARM. C'est un regroupement de nombreux industriels (fondeurs, développeurs). Et leur objectif est clairement le développement de produits commerciaux. Même si la plateforme est ouverte et accessible à tous. Si tu lis leur annonce pour mbed 3.0 cela est assez clair.

B@tto

Salut,

Sujet vaste et complexe, mêlant historique, compétence technique, habitudes et nouveautés.

Bien souvent en industrie on fait avec ce qu'on sait faire, mais la tendance aujourd'hui à uniformiser les langages et les architectures fait qu'aujourd'hui on peut plus facilement passer d'une plateforme à une autre. Mais bien souvent on essaye d'aller au plus vite, et donc ne pas réapprendre une plateforme complète à chaque projet.

Tout dépend le domaine pro qu'on mets derrière : perso je ne me risquerai pas à mettre un Atmega328 dans un appareil respiratoire médical. Il a des micro avec des moniteur d'erreurs etc ... Mais quelque part je suis sûr à 99% qu'un atmega328 programmé sous Arduino fonctionnerait tout aussi bien ...

Ce qui pose surtout problème avec les Arduinos c'est l'hardware en fait : si on est un minimum puriste on redéveloppe une carte pour l'application, parce que c'est rarement la même chose d'un projet à un autre.

Après dire que ARM c'est le "pro" des Arduino c'est des conn**ies, c'est comme dire une Ferrari c'est la version pro d'un Renault Traffic. C'est comme tout y'a différents usages et contraintes, et donc des outils adaptés à chaque situation.
Blog électronique : battomicro.wordpress.com
Photographie : www.interactive-celebration.fr
Fablab de Montpellier : www.labsud.org

Christian_R

Dans l'industrie on n'utilisera pas une carte Arduino complète, pour gratter quelques euros en ne conservant par exemple que la puce et les composants essentiels (petite économie mais multipliée par beaucoup).
Christian

aurel94

Tout d'abord merci de vos réponse.

Quote
Arduino permet éventuellement de valider un concept mais dans l'industrie on utilise plutôt les cartes de développement des constructeurs.
Donc du coup la programmation en est forcément altéré non ? Le principe d'Arduino est d'avoir des carte facilement programmable, utiliser une autre carte rend la programmation forcément "plus bas niveaux" si je peux m'exprimer ainsi. Je me souviens avoir programmé sur une carte où on manipulait directement des registres, modifier l'état des pins, calculer des fréquences pour les timers etc. Ce sont des choses qu'on ne voit pas avec Arduino, et je ne comprend pas pourquoi les constructeurs de carte ne rendent pas la programmation plus simple ? Quelle est leur intérêt si ce n'est de descendre dans l'architecture de la machine ? On m'a toujours expliqué que pour faire les chose finement il fallait descendre le niveau de programmation. Est-ce l'une des raisons pour laquelle Arduino n'est pas utilisé dans le milieu professionnel ?

Quote
mbed c'est plus qu'un OS c'est tout un écosystème développé autour des processeurs ARM. C'est un regroupement de nombreux industriels (fondeurs, développeurs). Et leur objectif est clairement le développement de produits commerciaux. Même si la plateforme est ouverte et accessible à tous. Si tu lis leur annonce pour mbed 3.0 cela est assez clair.
Je ne comprend pas bien la différence entre mbed et Arduino. Car mbed semble s'adresse clairement à des professionnels et Arduino à des amateurs alors que finalement les deux concepts se ressemblent. Utiliser des programmes très haut niveau avec des cartes de test où tout est déjà configuré et un langage avec des bibliothèques qui simplifient grandement le travail.

Quote
Dans l'industrie on n'utilisera pas une carte Arduino complète, pour gratter quelques euros en ne conservant par exemple que la puce et les composants essentiels (petite économie mais multipliée par beaucoup).
Je comprend ce point de vue. Concrètement le seul problème d'Arduino pour son insertion dans l'industrie et donc uniquement liée au hardware et pas au fait qu'une programmation de ce niveau pourrait altérer le fonctionnement d'un objet ?

B@tto

Quote
Je ne comprend pas bien la différence entre mbed et Arduino. Car mbed semble s'adresse clairement à des professionnels et Arduino à des amateurs alors que finalement les deux concepts se ressemblent. Utiliser des programmes très haut niveau avec des cartes de test où tout est déjà configuré et un langage avec des bibliothèques qui simplifient grandement le travail.
En soit y'en a pas, Arduino a initié une nouvelle mode et le reste à suivi et fait évolué le concept. Il est vrai qu'Arduino à la base est quelque chose de très orienté amateur, parce que c'était vraiment l'idée à la base. Donc maintenant d'autre débarquent avec des produits effectivement peut-être mieux conçu dès le départ, il n'empêche qu'aujourd'hui arduino peut servir à plein de chose.

Quote
je comprend ce point de vue. Concrètement le seul problème d'Arduino pour son insertion dans l'industrie et donc uniquement liée au hardware et pas au fait qu'une programmation de ce niveau pourrait altérer le fonctionnement d'un objet ?
Tout dépend de ce que tu veux faire avec et des performances dont tu as besoin. Perso j'ai fait des controleur de pompe à vide avec des Attiny 45 programmer sous Arduino. Après dans l'industrie tu as d'autres contraintes : le prix étant la premiere, donc souvent le choix se porte sur le micro qui remplit la fonction au meilleur prix.
Blog électronique : battomicro.wordpress.com
Photographie : www.interactive-celebration.fr
Fablab de Montpellier : www.labsud.org

fdufnews

#6
Jun 22, 2015, 03:22 pm Last Edit: Jun 22, 2015, 03:23 pm by fdufnews
Donc du coup la programmation en est forcément altéré non ? Le principe d'Arduino est d'avoir des carte facilement programmable, utiliser une autre carte rend la programmation forcément "plus bas niveaux" si je peux m'exprimer ainsi.
Un fondeur vend ses cartes d'évaluation avec des librairies. S'il n'y a pas de librairies personne dans l'industrie ne perdra sont temps à développer sur une telle plateforme.
La programmation haut niveau rend le code indépendant de la plateforme. Un code en C écrit pour un processeur peut très bien être porté sur une autre cible. Il n'y a que les fonctions de bas niveau qui ne sont pas directement portable. Mais ces fonctions bas niveau sont souvent standardisées ce qui permet un portage plus simple d'une plateforme à une autre.
Il faut bien voir aussi que le plus souvent on s'appuie sur un OS même simplifié qui rend l'accès au bas niveau complètement transparent pour les développeurs d'application (VxWorks, Linux, QNX ... pour l'industrie, IOS, Android, Linux pour le grand public). Et qui par là même justifie des processeurs avec pas mal de ressources.

sultanboss

Je pense qu'il y'a bien des sérieux projets basés sur l'Arduino.Après coté programmation,l'arduino utilise un langage dérivé du C++.Je pense que le C++ est très utilisé dans le monde industriel et de l'embarqué

68tjs

#8
Jan 20, 2016, 12:13 pm Last Edit: Jan 20, 2016, 12:15 pm by 68tjs
Quote
Après coté programmation,l'arduino utilise un langage dérivé du C++.
Il n'existe pas de langage arduino : rien n'est dérivé du C/C++ : c'est du pur C et C++.

Ce qui existe ce sont des bibliothèques de fonctions ou des classes qui sont écrites en C ou C++

Ce qui caractérise les bibliothèques arduino c'est qu'elles sont écrites pour un public amateur.
C'est à dire qu'elles simplifient tout au maximum --> elles pensent pour toi.
Elles comportent un maximum de détecteurs de conneries comme en font à la pelle ceux qui débutent dans une activité .

En contre partie, car on ne peut avoir le beurre et l'argent du beurre, elles ne sont pas optimisées et elles dégradent les performances du micro-contrôleur.

L'univers Atmel a commencé bien avant la naissance de Wiring car Arduino est une copie de Wiring.
Il existe de nombreuses bibliothèques de qualité professionnelles. Le site avrfreaks  est visité par de nombreux professionnels qui utilisent des micro Atmel, y discuter d'arduino commence a y être admis mais cela n'a pas toujours été le cas.

Maintenant il faut se mettre d'accord sur ce qu'on appelle un travail professionnel :
- un travail dès qu'il est vendu ?
- un travail réalisé par des spécialistes qui maîtrisent la totalité des sujets de l'électronique embarquée ?

J'appelle spécialiste : un professionnel qui à fait des études correspondant au domaine d'activité ou un "amateur" qui a travaillé dur pour acquérir un haut niveau de connaissances correspondant au domaine d'activité . Il existe des "amateurs" qui en savent plus que des professionnels sans ambition -> c'est vrai dans tout les domaines.

En gros je refuse de qualifier de travail professionnel la réalisation de celui qui vendait des chaussettes au marché,  qui a vu une video sur Youtube, qui est venu sur ce forum pour se faire faire son programme et son schéma électrique et qui vend son produit à coté des chaussettes.

Go Up