Quel type de projet pourrait aider un ingénieur logiciel à devenir davantage un ingénieur électronique? [fermé]


17

Je suis un développeur de logiciels n'ayant pratiquement aucune expérience en électronique, mais je veux y entrer car c'est pertinent pour le travail que je fais (développement de système d'infodivertissement). Je suis un ingénieur logiciel, pas un ingénieur en électronique, donc mon expérience / expérience a plus à voir avec la programmation au niveau de l'application, et peut-être un peu de programmation système / réseau.

J'ai entendu parler d'Arduino en tant que plate-forme de projet flexible et je me demandais quels types de projets pourraient aider quelqu'un avec mes antécédents à se frayer un chemin vers l'ingénierie électronique ... à commencer par la programmation de microcontrôleurs et peut-être à jouer avec d'autres types de périphériques, tels que le bluetooth , zigbee, wifi, audio, vidéo, je ne sais pas ... peut-être une sorte de projet typique des ingénieurs en électronique pendant leurs cours.

En somme, ce que je recherche, c'est un projet type / populaire (académique ou autre) qui pourrait aider un ingénieur logiciel à développer un ensemble de compétences en ingénierie électronique au niveau logiciel.


peut être un algorithme de mappage technologique pour le back-end iverilog.
Standard Sandun

1
Je vous recommande de commencer avec quelques 555 projets de minuterie. Il existe d'innombrables sur Internet et ils vous donneront une compréhension de base des résistances, des condensateurs et, dans certains cas, des inductances, que vous devrez vous familiariser afin de savoir réellement ce que vous faites avec des choses de niveau supérieur telles que programmation de microcontrôleurs et similaires. Après cela, vous pouvez commencer à jouer avec Arduino, PICAXE ou n'importe quelle plate-forme que vous trouvez intéressante. Ensuite, commencez courageusement à travailler sur un projet un peu plus grand que vous trouvez intéressant et assurez-vous de ne pas abandonner en chemin.
AndrejaKo


1
Je suis dans la même position, je voulais juste bricoler avec du matériel. J'ai apporté un Arduino et une petite voiture RC, les ai branchés ensemble. Je ne sais pas comment, mais cela fonctionne, et c'est génial :) Ce n'est pas si difficile, je n'avais jamais écrit de ligne de C auparavant (C # dev ici), et j'avais quelque chose de basique en quelques heures.
TJHeuvel

Quel genre de projet? Je proposerais un projet d'électronique.
joeforker

Réponses:


10

Voici quelques suggestions de projets qui ne seraient pas difficiles à réaliser pour un développeur de logiciels. Ils peuvent tous sembler assez difficiles, mais je suis un grand fan de projets qui vont bien au-delà de mes compétences. S'ils sont des projets amusants et captivants, ils vous entraîneront avec joie tout au long du processus d'apprentissage. Et rappelez-vous, nous sommes tous là pour vous aider.


Matrice LED

Matrice LED

Il s'agit d'un projet entièrement numérique, mais très amusant (qui n'aime pas les LED). Vous aurez besoin de certains pilotes comme l'ULN2803 et d'un microcontrôleur. Obtenez la matrice pour indiquer l'heure ou montrez une image. J'étais sur le point de montrer une image de Bjork sur une matrice verte 16x16.


Avion en mousse stabilisée par gyroscope

Obtenez un avion en mousse et quelques micro ailerons :

Avion en mousse micro ailerons

Vous aurez également besoin d'un gyroscope MEMS avec une sortie analogique et de minuscules OpAmps. Mélangez-les tous ensemble pour faire un avion en mousse de bande de caoutchouc stabilisée par gyroscope.


Robot

Tout le monde aime un robot. Ce qu'il y a de bien avec un petit robot comme celui-ci, c'est que vous pouvez commencer avec quelque chose d'extrêmement simple (simplement avancer) et ajouter lentement de plus en plus de fonctionnalités (capteurs et prise de décision), tout en apprenant.

Robot


5

Si vous êtes déjà développeur de logiciels, la programmation du microcontrôleur en soi ne devrait pas vraiment être un défi, et il y a peu d'électronique à ce sujet. Du moins pas de la manière dont vous auriez à gérer différents types de composants et à faire des calculs sur les tensions et les courants pour faire fonctionner quelque chose.

Un kit de microcontrôleur peut cependant vous aider à prendre le contrôle. Vous pouvez travailler avec toutes sortes d'entrées, numériques et analogiques, et des sorties.
Essayez le thermostat omniprésent par exemple.

Entrées
Vous aurez besoin de comprendre les capteurs de température (quels qu'ils soient), les amplificateurs, les amplificateurs opérationnels et peut-être les transistors, en plus des condensateurs et des résistances. Les amplis-op et surtout les transistors sont basiques, ils sont utilisés dans tous les circuits.

Sortie
Pour piloter un relais, vous devez savoir comment fonctionne un transistor comme interrupteur (c'est l'application la plus simple à comprendre).

Les cartes de développement de microcontrôleurs ont souvent un écran , LCD ou LED, ou peuvent se connecter à un module d'affichage. Bien que cela soit utile (par exemple pour le débogage) et amusant, cela ne vous aide pas à comprendre l'électronique. Vous devrez créer votre propre écran, comme une matrice LED, et apprendre à piloter un écran multiplexé, à la fois d'un point de vue logiciel et matériel.

Outre la carte microcontrôleur, procurez-vous un kit de démarrage électronique , qui contient la plupart des pièces de base pour réaliser des circuits simples. Et un bon manuel , bien sûr. L'Art de l'électronique est immensément populaire ici, bien que la dernière fois que je l'ai vu, il était dû à une mise à jour.


1
Et si vous en avez marre du thermostat, vous pouvez passer à la mise en œuvre d'un contrôleur PID. :)
Nick Johnson

Idée de projet soignée qui intègre un large éventail de concepts électriques et électroniques. Une fois que vous avez fait ce projet dans des composants discrets, vous pouvez envisager de passer à un micro contrôleur pour faire le même travail, et ainsi apprendre les avantages (flexibilité) et les inconvénients (coût comparatif) des micro contrôleurs
SimonBarker

5

Obtenez un kit de développement PSoC . Le PSoC est un microcontrôleur qui contient des blocs numériques et analogiques reconfigurables. Vous pouvez essentiellement câbler des schémas numériques et analogiques avec l'IDE. Ces schémas sont ensuite implémentés à l'intérieur de la puce PSoC.

Créateur PSoC

Vous pouvez jouer avec des conceptions de circuits numériques et analogiques à votre guise et les combiner avec des logiciels écrits dans le même IDE.


2
C'est un endroit inhabituel pour commencer; le PSoC est un système très complexe et inhabituel. Avez-vous réussi à former d'autres personnes en utilisant cela comme point de départ?
Kevin Vermeer

Il peut être complexe à l'intérieur, mais c'est un rêve à utiliser. Ils ont fait un travail incroyable pour que tout s'intègre facilement et ont produit de nombreuses vidéos et documents didactiques.
Rocketmagnet

1
Le fait que tous ces périphériques soient intégrés dans un PSoC est un argument contre. Vous êtes censé construire ces systèmes vous-même si vous voulez apprendre.
stevenvh

2
@stevenvh Pas du tout. Quelle est la différence entre le câblage des portes à l'intérieur des puces et le câblage des portes dans un schéma? C'est conceptuellement identique.
Rocketmagnet

@sandundhammika Aucun problème. Je pense que tout le monde devrait découvrir quel plaisir c'est de développer des applications sur ces choses.
Rocketmagnet

5

Proteus est une excellente plate-forme de proptypage pilotée par logiciel. Vous pouvez construire des cartes PCB et des schémas en utilisant la plupart, sinon la totalité des MCU mentionnés ici; Et mieux encore, vous pouvez simuler votre code source comme s'il s'exécutait sur le vrai matériel lui-même!

La meilleure chose à propos de ce logiciel est que vous pouvez modifier des variables telles que des cristaux, des condensateurs, des résistances sans avoir à souder, dessouder, commander et attendre pour éventuellement fouiner avec des cartes de proto ou des boucliers. Il l'émule parfaitement.

Aussi; Vous obtenez des outils virtuels comme des oscilloscopes. Vous savez combien coûte un bon oscilloscope? Une fortune! Tout est inclus avec pratiquement des tonnes d'autres fonctionnalités et outils virtuels.

Ce n'est pas gratuit mais le prix est absolument raisonnable pour le temps et la frustration qu'il peut vous faire économiser, au lieu de jouer avec le vrai matériel.


Arrivez-vous à faire de vrais circuits de cette façon?
Rocketmagnet

Oui, je fais mon circuit dans Proteus par exemple attiny 861 avec h-bride, et je le relie au fichier hex compilé par AVR Studio. Chaque fois que je change de source et compile dans AVRStudio, j'anime dans Proteus et mes changements sont instantanés. Et je peux mesurer la sortie de h-bride en utilisant un oscilloscope, une sonde ou un voltmètre avec une lecture précise .. jsut comme mon vrai proto. Son assez bon
WillyWonka

3

Je pense qu'essayer de tout apprendre ne fera que créer beaucoup de confusion et perdre du temps. À mon humble avis, vous devriez essayer de concentrer votre intérêt: vous avez dit que vous en avez besoin pour les systèmes d'infodivertissement, non?

Une approche pourrait être de se faire une idée de ce qu'est un de ces systèmes:

  • Une unité de traitement (probablement un microcontrôleur ou un simple ordinateur);

  • Certains pilotes pour l'affichage;

  • Interface d'E / S pour l'interaction avec l'utilisateur;

  • Interfaces de communication (mise en réseau, interface avec d'autres appareils ...)

Chacun de ces sous-domaines est un système complet qui peut être étudié et conçu comme un projet. Certains d'entre eux peuvent également être divisés en plusieurs sous-sous-domaines à un niveau d'abstraction inférieur et jusqu'au niveau du composant.

Donc, ma suggestion est de briser cette architecture complexe en blocs et d'essayer de créer des circuits simples (peut-être à partir de pilotes LED), mais qui peuvent ensuite être insérés dans le plus grand plan. Vous aurez la motivation pour le faire, car cela fera partie du travail final et de la façon dont vous apprendrez l'électronique.

Prenez simplement soin d'étudier et de comprendre ce que vous faites, au lieu de vous fier à des schémas prédéfinis et à des règles générales génériques.


2

J'étais dans le même problème. Et finalement, j'ai appris qu'il n'y avait pas de raccourci pour apprendre l'électronique. Un diplôme universitaire peut vous aider.

Sinon, vous pouvez essayer les livres suivants:

Étape 1.

entrez la description de l'image ici

Étape 2.

entrez la description de l'image ici

Avec le logiciel NI Multisim .

entrez la description de l'image ici


1

Eh bien, en tant que développeur de logiciels, vous êtes sur l'une des deux principales plates-formes disponibles.

PHP ou .NET?

Si vous êtes .NET, je peux fortement vous suggérer l' IDE MicroFramework .NET et NetDuino

entrez la description de l'image ici

Il existe de nombreux autres matériels disponibles, mais je suggère celui-ci car son prix est raisonnable et sa conception est très similaire à l'Arduino et à de nombreuses autres versions de cartes de prototypage qui aideront à développer la familiarité entre plusieurs kits.

Ni .NET ni PHP n'ont de véritable connexion à la programmation intégrée, mais la syntaxe PHP est très proche de C ce qui est bon à savoir. .NET, c'est bien de rester dans un environnement familier et vous pouvez également obtenir des certifications pour cela avec Microsoft Learning.

Une autre plateforme que je suggérerais est Atmels AVR XMega qui est fondamentalement l'arduino mais beaucoup plus récent et plus capable.

La partie importante de ces deux types est que le environnements de développement SONT GRATUITS!Oui, Microsoft vous offre Free Visual Studio pour Micro Framework et Atmel a AVR Studio 5 (qui est basé sur Visual Studio à partir de la version 5)

Vous devez également réaliser les capacités de chaque kit de développement.

entrez la description de l'image ici

Il est basé sur des puces Atmega, mais ils utilisent des puces à faible vitesse d'horloge (8 MHz, 16 MHz) mais sont tout à fait capables de faire divers bits et bops. C'est un excellent point de départ pour apprendre le génie électrique car il dispose d'un IDE gratuit et d'une communauté massive avec des tonnes de code et de bibliothèques. Si vous apprenez d'ici, il sera plus facile de passer à d'autres puces basées sur AVR en termes de syntaxe et de portage de code.

Il est très limité à ce qu'il peut faire, par exemple ne vous attendez pas à relayer des données vidéo via un micro serveur Web interne vers Internet. Ces MCU ne peuvent tout simplement pas gérer les données et la quantité de choses à faire en même temps, mais une fois que vous arriver à ce niveau, il sera bon de passer aux AVR .NET ou 32Bit.

  • AVR 32

Ces gars-là peuvent gérer les écrans LCD, la vidéo, le serveur Web, le sans fil et beaucoup de choses en soi. Ils commencent également à aller beaucoup plus vite dans la vitesse de traitement. Mais avant de commencer à les étudier, vous devez vous rendre compte qu'il existe plusieurs produits qui remplissent également des fonctions spécifiques. ces mauvais garçons.

  • Texas Instruments

Soyez très prudent avec eux,

Ils offrent de fantastiques puces leaders du marché qui sont incroyables lorsque vous les lisez. Malheureusement, il n'y a pas d'IDE gratuit et ils coûtent des milliers de dollars en frais de licence. Bien que certains produits comme le MSP430 aient un IDE gratuit, mais beaucoup de choses sont limites avec eux et peu claires. En outre, l'apprentissage des bibliothèques pour certaines puces TI est un cauchemar absolu .. Mais c'est un marché de niche et vous pouvez obtenir un bon salaire ici ..

Il y a beaucoup de devkits là-bas, je vous ai seulement parlé d'une partie de ma propre expérience venant d'une certification .NET. J'ai commencé en fait avec un Arduino Mega256.

Aujourd'hui, je fabrique mes propres PCB aussi petits que 1,5 cm x 1,5 cm qui fonctionnent avec des piles bouton pendant jusqu'à 2 ans en utilisant l'incroyable SystemOnChips de TI. Mais il a fallu beaucoup de temps et de patience pour y arriver et j'ai toujours l'impression de ne rien savoir des systèmes embarqués ...

Bonne chance :-)


10
... vous suggérez sérieusement que chaque développeur de logiciels utilise .NET ou PHP?
Nick Johnson

@NickJohnson en majorité .... Allez au fournisseur d'hébergement Web et vous avez deux sélections de type de serveur; Windows .NET -OR- Linux LAMP avec PHP .. Ce n'est pas seulement moi .. Je parie que vous êtes comme un rubis sur rails ou C ++? Je sais que je ne fais que référencer les technologies Web .. mais les applications le sont hier .. permet de suivre.
Piotr Kula

C'était une jolie question. Mon expérience professionnelle principale réside dans PHP (bien écrit), mais je parle aussi couramment Java, C & C ++, Javascript.
dukeofgaming

12
"... les candidatures sont si hier ..." - Dites cela aux centaines de milliers de développeurs qui ne sont pas des applications Web. Au lieu de "continuons", que diriez-vous de "soyons réels"? Si .NET et PHP étaient les seuls choix pour écrire des logiciels, je jetterais mon PC sur un pont. Les applications Web ne sont pas les seules applications.
Justin ᚅᚔᚈᚄᚒᚔ

1
@ppumkin, je pense toujours fermement que les utilisateurs devraient apprendre à lire l'assembly pour voir quand il fait quelque chose de stupide.
Kortuk

1

Votre question est assez large et il y aura beaucoup de bonnes possibilités. Si vous vous concentrez davantage sur le niveau supérieur de la façon de faire interagir un petit ordinateur avec des choses physiques, je vous suggère de regarder quelque chose comme le kit Lego Mindstorms . Avec cela, vous pouvez construire et programmer des robots. Ce sera à un niveau élevé de plug and play divers capteurs, etc.

Il existe également un niveau d'ingénierie électrique plus élémentaire où une «vraie» EE conçoit et construit des capteurs. L'utilisation d'un ordinateur à carte unique comme un Arduino ou un Netduino et une planche à pain où vous branchez divers composants tels que des résistances, des LED, etc. dans la planche à pain pour construire des circuits sera plus proche de ce niveau plus basique. À ce stade, vous devrez traiter des questions telles que "quelle résistance de valeur dois-je mettre en série avec la LED pour limiter le courant afin que ma led et mon microcontrôleur ne partent pas en fumée?".

Avec le kit Lego, vous branchez simplement les composants ensemble et ils ont pris soin de le rendre idiot.


1
En fait, le "vrai" EE n'utiliserait probablement pas un Ardunio et une planche à pain.
Jeanne Pindar

@Jeanne - C'est vrai, mais nous ne pouvons pas tous être Jeri Ellsworth et créer nos propres transistors: youtube.com/watch?v=w_znRopGtbE
JonnyBoats

1

Je suggérerais de me concentrer sur la différence entre le logiciel écrit pour le PC et le firmware écrit pour les applications embarquées. Révisez C. Avec l'embeddd linux devenant si populaire, la différence entre un ingénieur de micrologiciel et un développeur de logiciel diminue rapidement. Passez un peu de temps à regarder un pilote intégré open source.

Je remettrais en question quelque peu le désir de ressembler davantage à un EE car les deux disciplines sont assez distinctes. Oui, il y a une tonne de chevauchements, mais concentrez-vous sur le côté conducteur et ne vous enlisez pas dans les détails de l'électronique.


Il vous dit qu'il veut se lancer dans l'électronique!
stevenvh

Ce que je suggère, c'est une approche logicielle descendante, plutôt que de commencer par un schéma et de revenir sur les broches d'E / S. Cela semble raisonnable car j'interprète "l'ensemble des compétences en ingénierie électronique au niveau du logiciel" comme signifiant une concentration sur le développement de micrologiciels.
spearson

1

Tout d'abord, c'est vraiment bien si vous n'êtes pas issu de l'électronique, vous n'allez pas vraiment concevoir des puces, n'est-ce pas?

mais si vous allez apprendre l'électronique, je vous suggérerais de commencer par les bases comme la résistance, les diodes, les transistors, etc. un kit de loisirs électroniques de radioshack ou de tout autre fournisseur ferait .. ensuite passer aux microcontrôleurs, Arduino ferait c'est vraiment simple, mais je vous conseillerais d'aller avec quelque chose qui n'a pas encore été rendu facile, Arduino est vraiment facile et ne met pas beaucoup de défi avant son utilisateur .. Commencez par les micro-contrôleurs AVR, PIC ou 8051, Achetez un microcontrôleur, un livre et codage srart commençant par le programme LED clignotant (le "Hello World" dans le département d'électronique) et comme vous le verrez, en un rien de temps, vous utiliseriez des claviers matriciels et des affichages à sept segments pour en apprendre davantage sur les bases, après cela viendra le vrai travailler, interfacer vos appareils avec d'autres circuits intégrés et réseaux de capteurs, celui lié à votre travail.votre carte de développement aurait déjà certaines de ces fonctionnalités et si elles ne le font pas, vous pouvez toujours acheter des sheilds ou des borades de cassure facilement disponibles, alors tout dépend de vous ...

Je vous conseillerais également de vérifier avec votre entreprise la plate-forme qu'ils utilisent, cela vous donnerait une orientation sur le microcontrôleur pour apprendre et puisque vous êtes déjà programmeur, cela devrait vous être très facile et toujours faire des projets de loisirs comme Robot et la matrice LED entre autres, cela vous garderait l'esprit dans le sujet que vous ne vous ennuierez pas !!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.