Salut,
Envoyé par
hidelov_U
je me suis rendu compte que les domaines qui m'intéressaient le plus en dehors de l'informatique étaient la physique et l'électronique. Alors pourquoi ne pas tenter l'informatique embarquée ?
J'ai eu des modules de C avancé en L3, de microprocesseur et automatisme et j'ai fais un peu d'assembleur et de VHDL. Mon dernier stage s'est résumé à 4 mois de C++ (apli mobile avec Cocos2d-x).
C'est un bon début.
Envoyé par
hidelov_U
Tout ça pour vous dire que je penser me former dans l'espoir de trouver un emploi dans l'embarqué, dans le pire des cas un stage. Et c'est là que j'ai besoin de vous ! J'ai pensé au livre "Linux embarqué" qui m'a l'air une valeur sure, ainsi qu'à "Embedded Systems: Introduction to Arm® Cortex(TM)-M Microcontrollers", orienté clairement vers les cartes ARM.
Tu as différent niveau d'embarqué.
- L'embarqué proche de l'électronique : Arduino + shields et les petits micro-contrôleurs 8 et 16 bits, leurs applications/programmes et hardware sont ciblés sur une problématique. Généralement tu n'as pas de système d'exploitation et l'informatique embarqué est en "front end" du monde physique (capteur intelligent , sonde de mesure, ...) et les contraintes temporelles sont fortes. Dans ce domaine, c'est là où j'étais dans mon ancien boulot, il te faut les compétences électronique et informatique. Les langages dominant, et le mot est faible, c'est le C et l'assembleur.
- L'embarqué proche de l'informatique : Raspberry et gros micro 32 bits à architecture ARM mais pas que ! Bien souvent tu as un OS Linux, FreeRTOS, Android ou autre. Les applications sont génériques, évolutives, souples et complexes comme dans la téléphonie mobile, Raspberry, les box internet, centrale d'acquisition. Tu es souvent en "back end", sauf dans le cas du temps réel, car tu disposes de puissance de calculs et de stockage. Les langages de programmation sont aussi variés que dans l'informatique non embarqué.
A ta place, je me poserai tout de suite cette question : Vers quelle couche de l'embarqué me diriger ? Quelques éléments que j'ai pu observer dans mon ancien job.
Toutes les entreprises d'électronique font forcément de l'embarqué sur micro-contrôleur (et ce, depuis bien avant que le mot "embarqué" ne soit à la mode) puisqu'il y en a partout maintenant. Donc en faisant de l'embarqué tu peux viser deux secteurs d'emploi. Dans mon parcours scolaire en électronique, j'ai fait un croché par une licence pro informatique pour cette raison.
Dans beaucoup d'équipements que tu as chez toi, il y a de l'électronique et des micro-contrôleurs (cafetière, machine a laver, réveil, télé, chaudière, thermostat, tes clefs de voiture, voiture, démodulateur canal sat ou box, montre, rasoir électrique, ...) mais en réalité très peu embarquent des OS car ils ne se justifient pas. Chez toi, tu as probablement : ton PC, ta box internet, ton téléphone portable et peut être ta télé. Comparé à toutes l'électronique dans le reste de ton environnement les OS embarqués sont encore marginales.
Ensuite, un phénomène prend de l'ampleur : IoT objets connectés et des OS commencent à s'intégrer dans différentes choses comme les frigos, les montres etc...
[ATTENTION AVIS PUREMENT PERSONNEL] Cependant, c'est un phénomène de mode et surtout le rêve des agences de pubs ou marketing qui voudraient que dès que votre matelas soit usé, que vous en receviez un dès le lendemain car le magasin du coin aura reçu une commande automatiquement. Ou bien le rêve de votre assureur qui pourra vous appliquer du bonus/malus en fonction de ce que dira votre voiture hyper connectée... on se demande comment ça va se passer si jamais vous prêtez votre bagniole à un pote qui ferait une infraction ou que vous soyez obligé de conduire très vite votre enfant ou votre femme sur le point d'accoucher, à l'hôpital. Cette IoT là, va vite s’essouffler mais par contre l'IoT, le vrai, celui qui s'annonce ce n'est pas du tout le slip connecté et encore moins le papier cul intelligent !!! Ce sera des millions de capteurs un peu sur tout avec des concentrateurs de données. Exemple, la gestion des ordures ménagères dans certaine ville, des capteurs intelligents RFID ou NFC sont placés dans les containers enterrés et collectés par le centre de ramassage qui peut, grâce a ces données, optimiser les collectes des camions. Ou des capteurs sur des produits recyclables afin de contrôler ceux qui pourraient être perdus dans la nature. Ou les compteurs intelligents pour mieux gérer les réseaux électriques. Ou l'agriculture intelligente. Ou le trafic routier commandé par le taux de pollution. Ou encore les applications médicales... et à mon avis, il n'y a pas lieu d'avoir un dynamisme effréné des OS embarqué dans l'avenir. Il y en aura oui mais pas dans chaque objet connecté qui sortira.
[/ATTENTION AVIS PUREMENT PERSONNEL]
Il faut que tu saches vers quelle embarqué tu souhaites aller sachant que les deux à la fois est possible mais tu devras apprendre l'électronique + l'informatique. Dans tous les cas connaître l'architecture ARM est nécessaire puisque c'est elle qui prédomine le monde des micros 32 bits.
Envoyé par
hidelov_U
Sur quelques offre d'emploi que j'ai trouvé, les architectures ARM sont revenus plusieurs fois. Après, niveau langage, j'ai cru comprendre que le C était plus utilisé, mais j'hésite à me focaliser sur le C ou le C++. Je suis plus compétent en C mais mon dernier stage portait sur du C++. Sinon j'a lu sur un topic de ce forum que les cartes ARM, ce n'était pas l'idéal pour débuter, qu'il fallait mieux privilégier des cartes plus accessibles.
Si tu travailles sur un micro ou PSOC avec un OS (Linux ou Android) alors je pense qu'il est mieux d'apprendre plusieurs langages mais si tu n'as pas d'OS alors reste en C c'est beaucoup mieux car proche du langage machine. Sur un micro, tu peux être amener à optimiser des fonctions ou des bouts de programme directement en assembleur à cause de contraintes de temps, lors d'une interruption par exemple, et dans ce cas il est plus confortable d'être partie sur une langage comme le C plutôt que le C++ qui t'apporte une certaine abstraction que tu devras effacer pour optimiser ton code (je ne vois pas l'intérêt si ce n'est le masochisme.)
Effectivement, commencer l'étude d'un micro-contrôleur par un ARM c'est beaucoup plus compliqué que de commencer avec un micro 8 bits ! Certain ARM comme chez ST (voir les messages, sur ce forum, de Julien Terrier) sont tellement configurable qu'on peut être vite perdu.
Alors que sur un micro plus petit, il est plus facile de comprendre comment s'articule un TIMER, L'USART, L'oscillateur, etc... à peu de chose prés je dirais que 90% des principes acquis sur un petit micro, sont applicables sur un très gros. Pour te donner une image dans ton domaine actuel, c'est un peu comme ci tu souhaitais apprendre le C par deux approches différentes : La première en regardant le source d'une grosse application avec toute la complexité qu'il va falloir assimiler avant de commencer a comprendre. La deuxième, en regardant une multitude d'exemples simples. Les deux approches fonctionnent pour apprendre le C par exemple mais nous sommes tous d'accord pour dire que l'une des deux risque fortement d'aboutir vers un découragement total !
Envoyé par
hidelov_U
Qu'est ce vous en penser, dans l'optique donc d'une recherche d'emploi dans l'embarqué pour quelqu'un comme moi dont ce n'est pas la spécialité. Quels livres / architectures / technologies me conseillerez-vous ? Et çà vous semble jouable au vu de mon profil, ou je me fais des illusions ? Merci
C'est tout à fait faisable. Spécialisé ou pas, lors d'un entretien d'embauche on voit très vite celui qui sait de quoi il parle et celui qui ne maîtrise rien ! Si tu t'y mets sérieusement et que tu réalises des maquettes ou des projets alors le recruteur le ressentira.
Tu peux démarrer par Arduino, il y a des tutoriels de f-leb sur Arduino, ils sont très biens fait car il entre dans le détail du hard mais aussi du soft (protocole I2C entre autre et pour ne citer que son dernier tuto) en expliquant les choses. Ça c'est la bonne approche de Arduino !
Par contre, tu ne pourra pas rester bien longtemps sur cette philosophie car pour en faire ton boulot, tu devra creuser un minimum sous la couche d'abstraction de Arduino et comprendre pourquoi ça paraît si simple et comment le micro fonctionne en dessous !
A+
Vincent
Partager