Che tipo di progetto potrebbe aiutare un ingegnere del software a diventare più un ingegnere elettronico? [chiuso]


17

Sono uno sviluppatore di software praticamente privo di esperienza nell'elettronica, ma voglio approfondire questo aspetto poiché è rilevante per il lavoro che sto svolgendo (sviluppo del sistema di infotainment). Sono un ingegnere informatico, non un ingegnere elettronico, quindi il mio background / esperienza ha più a che fare con la programmazione a livello di applicazione e forse con un po 'di programmazione di sistema / rete.

Ho sentito parlare di Arduino come una piattaforma di progetto flessibile e mi chiedevo quali tipi di progetti potrebbero aiutare qualcuno con il mio background a scavare la strada per l'ingegneria elettronica ... a partire dalla programmazione del microcontrollore e forse pasticciare con altri tipi di periferiche, come il bluetooth , zigbee, wifi, audio, video, non lo so ... forse un tipo di progetto tipico degli ingegneri elettronici durante i loro corsi.

In breve, quello che sto cercando è un tipo di progetto tipico / popolare (accademico o di altro tipo) che possa aiutare un ingegnere del software a sviluppare un insieme di abilità di ingegneria elettronica a livello di software.


può essere un algoritmo di mappatura tecnologica per il back-end iverilog.
Standard Sandun,

1
Ti consiglierei di iniziare con alcuni 555 progetti timer. Ci sono innumerevoli su Internet e ti daranno una conoscenza di base di resistori, condensatori e in alcuni casi induttori, che dovrai familiarizzare con te per sapere effettivamente cosa stai facendo con cose di livello superiore come programmazione microcontrollore e simili. Dopodiché puoi iniziare a giocare con Arduino, PICAXE o qualsiasi piattaforma che ritieni interessante. Quindi coraggiosamente inizia a lavorare su un progetto un po 'più grande che trovi interessante e assicurati di non mollare sulla strada.
AndrejaKo


1
Sono nella stessa posizione, volevo solo armeggiare con l'hardware. Ho portato un Arduino e un'auto giocattolo RC, li ho collegati insieme. Non ho idea di come, ma funziona ed è fantastico :) Non è poi così difficile, non avevo mai scritto una riga di C prima (sviluppatore C # qui), e ho fatto funzionare qualcosa di base in un paio d'ore.
TJHeuvel,

Che tipo di progetto? Vorrei suggerire un progetto di elettronica.
joeforker,

Risposte:


10

Ecco alcuni suggerimenti per progetti che non sarebbero difficili da trovare per uno sviluppatore di software. Potrebbero sembrare tutti piuttosto difficili, ma sono un grande fan dei tentativi di progetti che vanno ben oltre il mio set di abilità. Se sono progetti divertenti e avvincenti, ti trascineranno con gioia attraverso il processo di apprendimento. E ricorda, siamo tutti qui per aiutarti.


Matrice LED

LED Matrix

Questo è un progetto interamente digitale, ma divertente (a chi non piacciono i LED). Avrai bisogno di alcuni driver come ULN2803 e un microcontrollore. Ottieni la matrice per dire l'ora o mostra un'immagine. Ero quasi in grado di mostrare un'immagine di Bjork su una matrice verde 16x16.


Piano in schiuma stabilizzata con giroscopio

Prendi un aereo di schiuma e un paio di micro alettoni :

Foam plane micro ailerons

Avrai anche bisogno di un giroscopio MEMS con un'uscita analogica e alcuni piccoli OpAmps. Mescoli tutti insieme per creare un piano di schiuma elastica stabilizzata con giroscopio.


Robot

Tutti amano un robot. La cosa grandiosa di un piccolo robot come questo è che puoi iniziare con qualcosa di estremamente semplice (solo avanzare) e aggiungere lentamente sempre più funzionalità (sensori e processo decisionale), imparando tutto il tempo.

Robot


5

Se sei già uno sviluppatore di software, la programmazione del microcontrollore in sé non dovrebbe essere una vera sfida, e c'è poco elettronica a riguardo. Almeno non nel modo in cui dovresti avere a che fare con diversi tipi di componenti e fare calcoli su tensioni e correnti per far funzionare qualcosa.

Tuttavia, un kit di microcontrollore può aiutarti a ottenere il controllo. Puoi lavorare con tutti i tipi di input, digitali e analogici e output.
Prova ad esempio l'onnipresente termostato .

Ingressi
Dovrai conoscere i sensori di temperatura (di qualsiasi tipo), amplificatori, opamp e forse transistor, oltre a condensatori e resistori. Opamp e soprattutto transistor sono di base, sono utilizzati in ogni circuito.

Uscita
Per pilotare un relè devi sapere come funziona un transistor come interruttore (è l'applicazione più semplice da capire).

Le schede di sviluppo del microcontrollore spesso hanno un display su di esse, LCD o LED, oppure possono connettersi a un modulo display. Sebbene sia utile (ad esempio per il debug) e divertente, non ti aiuta a capire l'elettronica. Dovrai creare il tuo display, come una matrice LED, e imparare a guidare un display multiplex, sia dal punto di vista software che hardware.

Oltre alla scheda del microcontrollore, procurati un kit di avviatori elettronici , che contiene la maggior parte delle parti di base per realizzare circuiti semplici. E un buon manuale , ovviamente. L'Arte dell'Elettronica è immensamente popolare qui, sebbene l'ultima volta che l'ho visto fosse dovuto per un aggiornamento.


1
E se sei stufo del termostato, puoi aggiornare l'implementazione di un controller PID. :)
Nick Johnson

Idea di progetto chiara che incorpora una vasta gamma di concetti elettrici ed elettronici. Una volta completato questo progetto in componenti discreti, potresti cercare di passare a un microcontrollore per fare lo stesso lavoro, e quindi imparare i vantaggi (flessibilità) e i contro (costo comparativo) dei microcontrollori
SimonBarker

5

Ottieni un kit di sviluppo PSoC . Il PSoC è un microcontrollore che contiene blocchi digitali e analogici riconfigurabili. Puoi fondamentalmente collegare schemi digitali e analogici con l'IDE. Tali schemi vengono quindi implementati all'interno del chip PSoC.

PSoC Creator

Puoi giocare con progetti di circuiti digitali e analogici a tuo piacimento e combinare tutto con software scritto nello stesso IDE.


2
Questo è un posto insolito per iniziare; il PSoC è un sistema molto complesso e insolito. Hai avuto successo nell'addestrare gli altri usando questo come punto di partenza?
Kevin Vermeer,

Può essere complesso dentro, ma è un sogno da usare. Hanno fatto un lavoro straordinario nel rendere tutto perfettamente integrato e hanno prodotto molti video e documenti tutorial.
Rocketmagnet,

1
Il fatto che tutte quelle periferiche siano integrate in un PSoC è un caso contrario. Dovresti costruire questi sistemi tu stesso se vuoi imparare.
Stevenvh,

2
@stevenvh Niente affatto. Qual è la differenza tra il cablaggio dei cancelli all'interno dei chip e il cablaggio dei cancelli in uno schema? È concettualmente identico.
Rocketmagnet,

@sandundhammika Nessun problema. Penso che tutti dovrebbero scoprire che piacere sviluppare applicazioni su queste cose.
Rocketmagnet,

5

Proteus è un'eccellente piattaforma di proptyping basata su software. È possibile costruire schede PCB e schemi usando la maggior parte, se non tutte le MCU menzionate qui; E soprattutto, puoi simulare il tuo codice sorgente come se fosse in esecuzione sul vero hardware stesso!

La cosa più bella di questo software è che puoi cambiare variabili come cristalli, condensatori, resistori senza dover saldare, dissaldare, ordinare e aspettare che alla fine rimangano in giro con schede protettive o schermi. Lo emula perfetto.

Anche; Ottieni strumenti virtuali come gli Osciliscopi .. Sai quanto costa un buon osciliscopio? Una fortuna! È tutto incluso praticamente con tonnellate di altre funzionalità e strumenti virtuali.

Non è gratuito ma il prezzo è assolutamente ragionevole per la quantità di tempo e frustrazione che può farti risparmiare, invece di fare casini con l'hardware reale.


Riuscirai a creare circuiti reali in questo modo?
Rocketmagnet,

Sì, creo il mio circuito in Proteus per esempio attiny 861 con h-bride e lo collego al file esadecimale che AVR Studio compila. Ogni volta che cambio sorgente e compilo in AVRStudio, mi animo in Proteus e le mie modifiche sono istantanee. E posso misurare l'output di h-bride usando un oscilloscopio, una sonda o un voltmetro con una lettura accurata .. jsut come il mio vero prototipo. È abbastanza buono
WillyWonka,

3

Penso che cercare di imparare tutto comporterà solo molta confusione e perdita di tempo. IMHO dovresti cercare di focalizzare il tuo interesse: hai detto che ne hai bisogno per i sistemi di infotainment, giusto?

Un approccio potrebbe essere quello di avere un'idea di cosa sia uno di questi sistemi:

  • Un'unità di elaborazione (probabilmente un microcontrollore o un semplice computer);

  • Alcuni driver per il display;

  • Interfaccia I / O per l'interazione dell'utente;

  • Interfacce di comunicazione (rete, interfaccia con altri dispositivi ...)

Ognuno di questi sottodomini è un sistema completo che può essere studiato e progettato come progetto. Alcuni di essi possono anche essere suddivisi in più sottodomini a un livello di astrazione inferiore e fino al livello del componente.

Quindi il mio suggerimento è di spezzare questa complessa architettura in blocchi e provare a creare circuiti semplici (magari partendo da driver LED), ma che possono quindi essere inseriti nel piano più grande. Avrai la motivazione per farlo, dal momento che farà parte del lavoro finale e nel modo in cui imparerai a conoscere l'elettronica.

Abbi solo cura di studiare e capire cosa stai facendo, invece di fare affidamento su schemi pre-realizzati e regole empiriche generiche.


2

Ero nello stesso problema. E alla fine ho imparato che non esiste un modo scorciatoia per imparare l'elettronica. Una laurea può aiutarti.

Altrimenti puoi provare i seguenti libri:

Passo 1.

inserisci qui la descrizione dell'immagine

Passo 2.

inserisci qui la descrizione dell'immagine

Insieme al software NI Multisim .

inserisci qui la descrizione dell'immagine


1

Oltre a sviluppare software, sei su una delle due principali piattaforme disponibili.

PHP o .NET?

Se sei .NET, ti consiglio caldamente .NET IDE MicroFramework e NetDuino

inserisci qui la descrizione dell'immagine

Ci sono molti altri hardware disponibili, ma suggerisco questo perché il suo prezzo è ragionevole ed è molto simile nel design ad Arduino e molte altre birre di schede di prototipazione che aiuteranno a sviluppare familiarità tra diversi kit.

Né .NET né PHP non hanno una reale connessione con la programmazione integrata, ma la sintassi di PHP è molto vicina alla Cquale è utile conoscerla. .NET, è bello rimanere in un ambiente familiare e puoi anche ottenere certificazioni per questo con Microsoft Learning.

Un'altra piattaforma che suggerirei è Atmels AVR XMega che è fondamentalmente l'arduino ma molto più nuovo e più capace.

La parte importante di entrambi questi ragazzi è che gli ambienti di sviluppo SONO GRATUITI!Sì, Microsoft ti offre Visual Studio gratuito per Micro Framework e Atmel ha AVR Studio 5 (che si basa su Visual Studio a partire dalla versione 5)

È inoltre necessario realizzare le capacità di ciascun kit di sviluppo.

inserisci qui la descrizione dell'immagine

Si basa su chip Atmega ma usano quelli a bassa velocità di clock (8mhz, 16mhz) ma sono abbastanza capaci di fare vari bit e bops. È un ottimo punto di partenza nell'apprendimento dell'ingegneria elettrica perché ha IDE gratuito e una vasta community con tonnellate di codice e librerie. Se impari da qui, sarà più semplice passare ad altri chip basati su AVR in termini di sintassi e porting del codice.

È molto limitato a ciò che può fare, ad esempio non aspettarti di trasmettere dati video tramite un micro web server interno a Internet .. Questi MCU non possono semplicemente gestire i dati e la quantità di cose da fare allo stesso tempo, ma una volta che arrivare a quel livello, allora sarà utile passare a AVR .NET o a 32 bit.

  • AVR 32

Questi ragazzi possono gestire LCD, video, web serverd, Wireless e un sacco di cose al suo interno. Iniziano anche ad andare molto più velocemente nella velocità di elaborazione. Ma prima di iniziare a guardare questi è necessario rendersi conto che ci sono diversi prodotti che svolgono anche funzioni specifiche. questi cattivi ragazzi.

  • Texas Instruments

Stai molto attento con loro,

Offrono fantastici chip leader del mercato che sono fantastici quando leggi su di loro. Sfortunatamente non esiste un IDE gratuito e costano migliaia di dollari in costi di licenza. Tuttavia, alcuni prodotti come MSP430Tuttavia hanno un IDE gratuito, ma molte cose sono al limite e poco chiare. Inoltre, imparare le librerie per alcuni chip TI è un vero incubo .. Ma è un mercato di nicchia e puoi ottenere un buon stipendio qui ..

Ci sono un sacco di devkit là fuori, ti ho solo parlato di alcune delle mie esperienze personali provenienti da una certificazione .NET. Ho infatti iniziato con un Arduino Mega256.

Oggi sto realizzando i miei PCB piccoli fino a 1,5 cm x 1,5 cm che funzionano con celle a bottone per un massimo di 2 anni usando gli incredibili SystemOnChips di TI. Ma ci è voluto molto tempo e pazienza per arrivarci e mi sento ancora come se non sapessi nulla sui sistemi embedded ...

In bocca al lupo :-)


10
... stai seriamente suggerendo che ogni sviluppatore di software utilizza .NET o PHP?
Nick Johnson,

@NickJohnson in maggioranza .... Vai al provider di host web e hai due selezioni di tipo di server; Windows .NET -OPPURE- LAMPADA Linux con PHP .. Non sono solo io .. Scommetto che sei come un rubino su binari o C ++? So che mi riferisco solo alle tecnologie Web ... ma le applicazioni sono così ieri .. continuiamo.
Piotr Kula,

È stata una domanda carina. La mia esperienza professionale principale risiede nel PHP (ben scritto), ma parlo anche fluentemente Java, C & C ++, Javascript.
dukeofgaming,

12
"... le applicazioni sono così ieri ..." - Dillo a centinaia di migliaia di sviluppatori non di app Web. Invece di "continuiamo", che ne dici di "siamo reali"? Se .NET e PHP fossero le uniche scelte per la scrittura di software, getterei il mio PC su un bridge. Le applicazioni Web non sono le uniche applicazioni.
Justin ᚅᚔᚈᚄᚒᚔ

1
@ppumkin, penso ancora fortemente che gli utenti dovrebbero imparare a leggere assembly per vedere quando sta facendo qualcosa di stupido.
Kortuk,

1

La tua domanda è piuttosto ampia e ci saranno molte buone possibilità. Se ti concentri maggiormente sul livello superiore di come far interagire un piccolo computer con cose fisiche, posso suggerirti di guardare qualcosa come il kit Lego Mindstorms . Con questo puoi costruire e programmare robot. Questo sarà ad un alto livello di plug and play vari sensori ecc.

C'è anche un importante livello più elementare di ingegneria elettrica in cui un "vero" EE progetterebbe e costruirà sensori. L'uso di un computer a scheda singola come un Arduino o un Netduino e una breadboard in cui si collegano vari componenti come resistori, LED ecc. Nella breadboard per costruire circuiti sarà più vicino a questo livello più elementare. A questo punto avrai a che fare con domande come "quale valore di resistenza dovrei mettere in serie con il LED per limitare la corrente in modo che il mio led e il mio microcontrollore non vadano in fumo?".

Con il kit Lego, basta semplicemente collegare i componenti e si sono presi cura di renderlo a prova di idiota.


1
In realtà il "vero" EE probabilmente non userebbe un Ardunio e una breadboard.
Jeanne Pindar,

@Jeanne - Vero, ma non possiamo essere tutti Jeri Ellsworth e creare i nostri transistor: youtube.com/watch?v=w_znRopGtbE
JonnyBoats

1

Suggerirei di concentrarmi sulla differenza tra il software scritto per PC e il firmware scritto per applicazioni integrate. Rispolvera C. Con embeddd linux che sta diventando così popolare la differenza tra un ingegnere del firmware e uno sviluppatore di software si sta riducendo rapidamente. Trascorrere del tempo guardando un driver incorporato open source.

Metterei in qualche modo in dubbio il desiderio di diventare più simile a un EE poiché le due discipline sono abbastanza distinte. Sì, c'è una tonnellata di sovrapposizioni, ma concentrati sul lato conducente e non impantanarti nei dettagli dell'elettronica.


Ti dice che vuole entrare nell'elettronica!
Stevenvh,

Quello che sto suggerendo è un approccio lato software top-down, piuttosto che iniziare con uno schema e lavorare indietro dai pin IO. Ciò sembra ragionevole dal momento che interpreto "competenze di ingegneria elettronica impostate a livello di software" per indicare un focus sullo sviluppo del firmware.
spearson,

1

prima di tutto va davvero bene se non sei un esperto di elettronica, non hai davvero intenzione di progettare Chips, vero?

ma se hai intenzione di imparare l'elettronica ti suggerirei di ottenere prima le basi come resistenza, diodi, transistor ecc. un kit di elettronica per hobby da radioshack o qualsiasi altro fornitore farebbe .. il prossimo passaggio ai microcontrollori, Arduino farebbe è davvero semplice, ma ti consiglierei di andare con qualcosa che non è già stato reso facile, Arduino è davvero facile e non rappresenta una grande sfida per il suo utente. Inizia da AVR, PIC o 8051 Micro controller, Acquista un microcontrollore, un la codifica di libri e srart a partire dal programma LED lampeggiante (il "Hello World" nel dipartimento di elettronica) e come vedrai, in pochissimo tempo useresti tastiere a matrice e display a sette segmenti per apprendere alcune nozioni di base, dopodiché arriva il vero lavoro, interfaccia i tuoi dispositivi con altri circuiti integrati e reti di sensori, quello relativo al tuo lavoro.la tua scheda di sviluppo avrebbe già alcune di queste funzionalità e se non lo fai puoi sempre acquistare facilmente sheilds o breakout borads, tutto dipende da te ...

ti consiglierei anche di verificare con la tua Azienda la piattaforma che stanno usando questo ti darebbe una direzione sul microcontrollore per imparare e poiché sei già un programmatore questo dovrebbe dimostrarti davvero facile e fare sempre progetti di hobby come Robot e matrice LED tra le altre cose, questo ti farebbe pensare all'argomento che non ti annoierai !!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.