Jaki projekt może pomóc inżynierom oprogramowania stać się inżynierem elektronikiem? [Zamknięte]

17

Jestem programistą praktycznie bez doświadczenia w dziedzinie elektroniki, ale chcę się tym zająć, ponieważ ma to związek z pracą, którą wykonuję (rozwój systemu multimedialnego). Jestem inżynierem oprogramowania, a nie inżynierem elektronikiem, więc moje doświadczenie / doświadczenie ma więcej wspólnego z programowaniem na poziomie aplikacji, a może trochę programowaniem systemu / sieci.

Słyszałem o Arduino jako elastycznej platformie projektowej i zastanawiałem się, jakie projekty mogłyby pomóc komuś z moim doświadczeniem w znalezieniu drogi do inżynierii elektronicznej ... zaczynając od programowania mikrokontrolera i może zadziwiając inne urządzenia peryferyjne, takie jak bluetooth , zigbee, wifi, audio, wideo, nie wiem ... może rodzaj projektu typowego dla inżynierów elektroników podczas ich kursów.

Podsumowując, szukam typowego / popularnego rodzaju projektu (akademickiego lub innego), który mógłby pomóc inżynierowi oprogramowania rozwinąć umiejętności inżynierii elektronicznej na poziomie oprogramowania.

dukeofgaming
źródło
może być algorytmem mapowania technologii na zapleczu iverilog.
Standard Sandun
1
Polecam zacząć od około 555 projektów timerów. W Internecie jest ich niezliczona ilość, a one dają podstawowe zrozumienie rezystorów, kondensatorów i, w niektórych przypadkach, cewek indukcyjnych, z którymi musisz się zapoznać, aby wiedzieć, co robisz z rzeczami wyższego poziomu, takimi jak programowanie mikrokontrolera i podobne. Następnie możesz zacząć grać z Arduino, PICAXE lub inną platformą, którą uznasz za interesującą. Następnie odważnie zacznij pracować nad nieco większym projektem, który uważasz za interesujący i pamiętaj, aby nie poddać się po drodze.
AndrejaKo
1
Jestem w tej samej pozycji, chciałem tylko majstrować przy sprzęcie. Przyniosłem Arduino i zabawkowy samochód RC, połączyłem je. Nie mam pojęcia jak, ale działa i jest niesamowity :) Nie jest to takie trudne, nigdy wcześniej nie napisałem linii C (tutaj C # dev) i miałem kilka podstawowych funkcji działających w ciągu kilku godzin.
TJHeuvel
Jaki rodzaj projektu? Sugerowałbym projekt elektroniki.
stolarz

Odpowiedzi:

10

Oto kilka sugestii dotyczących projektów, które nie byłyby trudne do zdobycia dla programisty. Wszystkie mogą wydawać się dość trudne, ale jestem wielkim fanem prób realizacji projektów, które znacznie przekraczają moje umiejętności. Jeśli są zabawnymi i atrakcyjnymi projektami, z radością przeciągną cię przez proces uczenia się. I pamiętajcie, wszyscy jesteśmy tutaj, aby pomóc.


Matryca LED

LED Matrix

To całkowicie cyfrowy projekt, ale zapewniający wiele radości (kto nie lubi diod LED). Potrzebujesz sterowników takich jak ULN2803 i mikrokontrolera. Uzyskaj matrycę z informacją o godzinie lub pokaż zdjęcie. Byłem prawie w stanie pokazać zdjęcie Bjork na zielonej matrycy 16x16.


Płaszczyzna pianki stabilizowana żyroskopem

Zdobądź piankowy samolot i kilka mikro lotek :

Foam plane micro ailerons

Będziesz także potrzebował żyroskopu MEMS z wyjściem analogowym i kilkoma małymi OpAmps. Wymieszaj je wszystkie razem, aby uzyskać stabilizowaną żyroskopowo piankową płaszczyznę gumową.


Robot

Wszyscy kochają robota. Wspaniałą rzeczą takiego małego robota jest to, że możesz zacząć od czegoś niezwykle prostego (po prostu jechać do przodu) i powoli dodawać coraz więcej funkcji (czujniki i podejmowanie decyzji), ucząc się przez cały czas.

Robot

Rocketmagnet
źródło
5

Jeśli jesteś już programistą, programowanie mikrokontrolerów samo w sobie nie powinno być naprawdę wyzwaniem i jest w tym niewiele elektroniki. Przynajmniej nie w sposób, w jaki musiałbyś radzić sobie z różnymi typami komponentów i musiałbyś wykonywać obliczenia napięć i prądów, aby coś działało.

Zestaw mikrokontrolera może jednak pomóc uzyskać kontrolę. Możesz pracować z wszelkiego rodzaju wejściami, cyfrowymi i analogowymi oraz wyjściami.
Spróbuj na przykład wszechobecnego termostatu .

Wejścia
Musisz zrozumieć czujniki temperatury (dowolnego rodzaju), wzmacniacze, opampy i być może tranzystory, oprócz kondensatorów i rezystorów. Opampy, a zwłaszcza tranzystory są podstawowe, są stosowane w każdym obwodzie.

Wyjście
Aby sterować przekaźnikiem, musisz wiedzieć, jak tranzystor działa jako przełącznik (jest to najłatwiejsza do zrozumienia aplikacja).

Mikrokontroler płyty rozwojowe często mają wyświetlanie na nich, LCD lub LED, czy można podłączyć do modułu wyświetlacza. Chociaż jest to przydatne (np. Do debugowania) i sprawia przyjemność, nie pomaga zrozumieć elektroniki. Będziesz musiał stworzyć własny wyświetlacz, na przykład matrycę LED, i nauczyć się obsługiwać wyświetlacz multipleksowany, zarówno z punktu widzenia oprogramowania, jak i sprzętu.

Oprócz płytki mikrokontrolera weź elektroniczny zestaw startowy , który zawiera większość podstawowych elementów do tworzenia prostych obwodów. I oczywiście dobry podręcznik . Sztuka elektroniki jest tutaj niezwykle popularna, chociaż ostatnim razem, gdy ją zobaczyłem, miała miejsce aktualizacja.

stevenvh
źródło
1
A jeśli masz dość termostatu, możesz uaktualnić do wdrożenia regulatora PID. :)
Nick Johnson
Zgrabny pomysł na projekt, który obejmuje szeroki zakres koncepcji elektrycznych i elektronicznych. Po wykonaniu tego projektu w dyskretnych komponentach możesz przejść do mikrokontrolera, aby wykonać tę samą pracę, a więc poznać zalety (elastyczność) i wady (koszt porównawczy) mikrokontrolerów
SimonBarker
5

Zdobądź zestaw deweloperski PSoC . PSoC jest mikrokontroler, który zawiera re-konfigurowalne cyfrowe i analogowe bloki. Zasadniczo można połączyć schematy cyfrowe i analogowe za pomocą IDE. Te schematy są następnie implementowane w układzie PSoC.

PSoC Creator

Możesz grać z cyfrowymi i analogowymi układami obwodów do treści twojego serca i połączyć to wszystko z oprogramowaniem napisanym w tym samym IDE.

Rocketmagnet
źródło
2
To niezwykłe miejsce na początek; PSoC to bardzo złożony i niezwykły system. Czy odniosłeś sukces, szkoląc innych, wykorzystując to jako punkt wyjścia?
Kevin Vermeer
Wewnątrz może być skomplikowane, ale korzystanie z niego jest marzeniem. Wykonali niesamowitą pracę polegającą na sprawnym zintegrowaniu wszystkiego i stworzyli wiele ładnych filmów instruktażowych i dokumentów.
Rocketmagnet
1
Fakt, że wszystkie te urządzenia peryferyjne są zintegrowane z PSoC, przemawia przeciwko niemu. Jeśli chcesz się uczyć, powinieneś sam zbudować te systemy.
stevenvh
2
@stevenvh Wcale nie. Jaka jest różnica między okablowaniem bram wewnątrz układów a okablowaniem bram na schemacie? Jest koncepcyjnie identyczny.
Rocketmagnet
@sandundhammika Brak prób. Myślę, że każdy powinien odkryć, jak przyjemnie jest tworzyć aplikacje na te rzeczy.
Rocketmagnet
5

Proteus to doskonała platforma do zarządzania proptykami. Możesz budować płytki PCB i schematy przy użyciu większości, jeśli nie wszystkich wymienionych MCU tutaj; A co najważniejsze, możesz symulować kod źródłowy tak, jakby działał na prawdziwym sprzęcie!

Najmilszą rzeczą w tym oprogramowaniu jest to, że możesz zmieniać zmienne, takie jak kryształy, kondensatory, rezystory, bez konieczności lutowania, rozlutowywania, porządkowania i czekania, aż w końcu zlejesz się z płytami proto lub osłonami. Emuluje to idealnie.

Również; Otrzymujesz wirtualne narzędzia, takie jak Osciliscope. Wiesz, ile kosztuje dobry oscyliscope? Bogactwo! Wszystko to zawiera praktycznie mnóstwo innych funkcji i wirtualnych narzędzi.

To nie jest bezpłatne, ale cena jest absolutnie rozsądna ze względu na ilość czasu i frustrację, którą można zaoszczędzić, zamiast bałagania z prawdziwym sprzętem.

Willy Wonka
źródło
Czy w ten sposób można tworzyć prawdziwe obwody?
Rocketmagnet
Tak, układam obwód w Proteus na przykład attiny 861 z h-panną młodą i łączę go z plikiem hex, który kompiluje AVR Studio. Za każdym razem, gdy zmieniam źródło i kompiluję w AVRStudio, animuję w Proteus, a moje zmiany są natychmiastowe. I mogę mierzyć dane wyjściowe od h-panny młodej za pomocą lunety, sondy lub woltomierza z dokładnym odczytem ... jsut jak moje prawdziwe proto. Jest całkiem niezły
WillyWonka
3

Myślę, że próba nauczenia się wszystkiego spowoduje jedynie zamieszanie i stratę czasu. IMHO powinieneś spróbować skoncentrować swoje zainteresowanie: powiedziałeś, że potrzebujesz go do systemów audio-nawigacyjnych, prawda?

Podejściem mogłoby być zorientowanie się, czym jest jeden z tych systemów:

  • Jednostka przetwarzająca (prawdopodobnie mikrokontroler lub zwykły komputer);

  • Niektóre sterowniki wyświetlacza;

  • Interfejs I / O do interakcji użytkownika;

  • Interfejsy komunikacyjne (sieci, interfejsy do innych urządzeń ...)

Każda z tych subdomen jest kompletnym systemem, który można badać i projektować jako projekt. Niektóre z nich można również podzielić na więcej subdomen na niższym poziomie abstrakcji, aż do poziomu komponentu.

Tak więc proponuję rozbić tę złożoną architekturę na bloki i spróbować stworzyć proste obwody (być może zaczynając od sterowników LED), ale można je następnie wprowadzić do większego planu. Będziesz miał motywację, aby to zrobić, ponieważ będzie to część końcowej pracy i sposób, w jaki poznasz elektronikę.

Zajmij się studiowaniem i zrozumieniem tego, co robisz, zamiast polegać na gotowych schematach i ogólnych ogólnych zasadach.

clabacchio
źródło
2

Miałem ten sam problem. I w końcu dowiedziałem się, że nie ma skrótu do nauki elektroniki. Wykształcenie wyższe może ci pomóc.

W przeciwnym razie możesz wypróbować następujące książki:

Krok 1.

wprowadź opis zdjęcia tutaj

Krok 2.

wprowadź opis zdjęcia tutaj

Wraz z oprogramowaniem NI Multisim .

wprowadź opis zdjęcia tutaj


źródło
1

Jako twórca oprogramowania jesteś na jednej z dwóch głównych dostępnych platform.

PHP czy .NET?

Jeśli jesteś .NET, to mogę zdecydowanie zasugerować ci .NET MicroFramework IDE i NetDuino

wprowadź opis zdjęcia tutaj

Istnieje wiele innych dostępnych urządzeń, ale sugeruję ten, ponieważ jego cena jest rozsądna i jest bardzo podobny w projekcie do Arduino i wielu innych rodzajów płyt prototypowych, które pomogą rozwinąć znajomość kilku zestawów.

Ani .NET ani PHP nie ma rzeczywistego połączenia z programowaniem osadzonym, ale składnia PHP jest bardzo bliska, Cco warto wiedzieć. .NET, dobrze jest pozostać w znanym środowisku, a także możesz uzyskać certyfikaty na to dzięki Microsoft Learning.

Inną platformą, którą zasugerowałem, jest Atmels AVR XMega, która jest w zasadzie arduino, ale znacznie nowsza i bardziej wydajna.

Ważną częścią obu tych facetów jest to, że środowiska programistyczne są ZA DARMO! Tak, Microsoft oferuje bezpłatne Visual Studio dla Micro Framework, a Atmel ma AVR Studio 5 (oparty na Visual Studio od wersji 5)

Musisz także zdać sobie sprawę z możliwości każdego zestawu deweloperskiego.

wprowadź opis zdjęcia tutaj

Opiera się na układach Atmega, ale używają układów o niskiej częstotliwości (8 MHz, 16 MHz), ale są w stanie wykonywać różne bity i bopy. Jest to świetny punkt wyjścia do nauki elektrotechniki, ponieważ ma bezpłatne IDE i ogromną społeczność z mnóstwem kodu i bibliotek. Jeśli się z tego nauczysz, łatwiej będzie przejść na inne układy oparte na AVR pod względem składni i przenoszenia kodu.

Jest to bardzo ograniczone do tego, co może zrobić, na przykład nie należy oczekiwać przekazywania danych wideo przez wewnętrzny mikro serwer WWW do Internetu. Te MCU po prostu nie mogą obsługiwać danych i ilości rzeczy do zrobienia w tym samym czasie, ale raz dostać się do tego poziomu, wtedy dobrze będzie przejść na AVR .NET lub 32Bit.

  • AVR 32

Ci faceci potrafią samodzielnie obsługiwać ekrany LCD, wideo, serwer WWW, bezprzewodowy i wiele innych rzeczy. Zaczynają także znacznie szybsze przetwarzanie. Ale zanim zaczniesz na nie patrzeć, musisz zdać sobie sprawę, że istnieje kilka produktów, które wykonują również określone funkcje. Takie jak dotyk, komunikacja bezprzewodowa, bardzo niska moc, niektóre są mieszane i dopasowane, a to wymaga odpowiedniego procesu badań i rozwoju za pomocą ci źli chłopcy.

  • Texas Instruments

Bądź z nimi bardzo ostrożny,

Oferują fantastyczne wiodące na rynku żetony, które są niesamowite, gdy o nich czytacie. Niestety nie ma darmowego IDE, a opłaty licencyjne kosztują tysiące dolarów. Chociaż niektóre produkty, takie jak MSP430, mają bezpłatne IDE, ale wiele rzeczy jest z nimi granicznych i niejasnych. Również nauka bibliotek dla niektórych układów TI jest absolutnym koszmarem .. Ale jest to rynek niszowy i możesz tutaj uzyskać dobrą pensję ..

Istnieje mnóstwo zestawów deweloperskich, mówiłem tylko o moich własnych doświadczeniach związanych z certyfikacją .NET. Zacząłem właściwie z Arduino Mega256.

Dzisiaj tworzę własne płytki PCB o wymiarach 1,5 cm x 1,5 cm, które działają na ogniwach monetowych przez okres do 2 lat, korzystając z niesamowitych SystemOnChips firmy TI. Ale dotarcie tam zajęło mi dużo czasu i cierpliwości, ale nadal nie mam pojęcia o systemach wbudowanych ...

Powodzenia :-)

Piotr Kula
źródło
10
... poważnie sugerujesz, że każdy programista używa .NET lub PHP?
Nick Johnson
@NickJohnson w większości .... Przejdź do dostawcy usług hostingowych, a masz dwie możliwości wyboru typu serwera; Windows .NET -LUB-Linux LAMP z PHP .. To nie tylko ja .. Założę się, że jesteś jak rubin na szynach lub C ++? Wiem, że odwołuję się tylko do technologii internetowych ... ale aplikacje są takie wczorajsze.
Piotr Kula
To było urocze pytanie. Moje główne doświadczenie zawodowe dotyczy (dobrze napisanego) PHP, ale biegle posługuję się także Javą, C & C ++, Javascript.
dukeofgaming
12
„... aplikacje są takie wczoraj ...” - powiedz o tym setkom tysięcy twórców aplikacji spoza sieci. Zamiast „chodźmy”, a może „bądźmy szczerzy”? Gdyby .NET i PHP były jedynymi opcjami do pisania oprogramowania, przerzuciłbym mój komputer przez most. Aplikacje internetowe to nie jedyne aplikacje.
Justin ᚅᚔᚈᚄᚒᚔ
1
@pumkin, nadal mocno uważam, że użytkownicy powinni nauczyć się czytać asembler, aby zobaczyć, kiedy robi coś głupiego.
Kortuk
1

Twoje pytanie jest dość szerokie i będzie wiele dobrych możliwości. Jeśli koncentrujesz się bardziej na wyższym poziomie interakcji małego komputera z fizycznymi rzeczami, proponuję spojrzeć na coś w rodzaju zestawu Lego Mindstorms . Dzięki temu możesz budować i programować roboty. Będzie to na wysokim poziomie plug and play różnych czujników itp.

Istnieje również ważniejszy, bardziej podstawowy poziom inżynierii elektrycznej, w którym „prawdziwe” EE projektowałoby i budowało czujniki. Korzystanie z komputera jednopłytkowego, takiego jak Arduino lub Netduino i płyta kontrolna, w której podłączane są różne elementy, takie jak rezystory, diody LED itp., Do budowy obwodów, będzie bliżej tego bardziej podstawowego poziomu. W tym momencie będziesz mieć do czynienia z pytaniami takimi jak: „jaki rezystor wartości powinienem połączyć szeregowo z diodą LED, aby ograniczyć prąd, aby moja dioda LED i mikrokontroler nie poszły z dymem?”.

Dzięki zestawowi Lego po prostu łączysz ze sobą elementy, a oni zadbali o to, aby był idiotyczny.

JonnyBoats
źródło
1
W rzeczywistości „prawdziwa” EE prawdopodobnie nie użyłaby Ardunio i breadboard.
Jeanne Pindar,
@Jeanne - To prawda, ale nie wszyscy możemy być Jeri Ellsworth i tworzyć własne tranzystory: youtube.com/watch?v=w_znRopGtbE
JonnyBoats
1

Sugeruję skupienie się na różnicy między oprogramowaniem napisanym dla komputera PC a oprogramowaniem wbudowanym dla aplikacji wbudowanych. Pędzel do C. Wraz z upowszechnianiem się linuxa embeddd różnica między inżynierem oprogramowania i twórcą oprogramowania szybko maleje. Poświęć trochę czasu na sprawdzenie wbudowanego sterownika typu open source.

Chciałbym nieco zakwestionować chęć stania się bardziej jak EE, ponieważ te dwie dyscypliny są dość odmienne. Tak, nakłada się na siebie mnóstwo, ale skup się na stronie kierowcy i nie daj się wciągnąć w szczegóły elektroniki.

Spearson
źródło
Mówi ci, że chce dostać się do elektroniki!
stevenvh
To, co sugeruję, to podejście odgórne od strony oprogramowania, zamiast zaczynać od schematu i wracać od styków we / wy. Wydaje się to rozsądne, ponieważ interpretuję „umiejętności inżynierii elektronicznej na poziomie oprogramowania” jako nacisk na rozwój oprogramowania układowego.
spearson
1

po pierwsze, jest naprawdę w porządku, jeśli nie pochodzisz z elektroniki, naprawdę nie zamierzasz projektować Chipsów, prawda?

ale jeśli zamierzasz uczyć się elektroniki, radzę najpierw zdobyć podstawy, takie jak Rezystancja, Diody, Tranzystory itp. Zestaw hobby elektroniki od radioshacka lub innego dostawcy ... następnie przejdź do Mikrokontrolerów, Arduino zrobiłby to naprawdę proste, ale radzę wybrać coś, co już nie było łatwe, Arduino jest naprawdę łatwe i nie stanowi większego wyzwania przed użytkownikiem. Zacznij od AVR, PIC lub mikrokontrolerów 8051, Kup mikrokontroler, a kodowanie książek i srart, zaczynając od programu Migające diody LED („Hello World” w dziale elektroniki) i jak się przekonacie, w krótkim czasie nie użylibyście matrycowych klawiatur i siedmiu wyświetlaczy segmentowych, aby dowiedzieć się więcej o podstawach, potem prawdziwe praca, łączenie urządzeń z innymi układami scalonymi i sieciami czujników, związanymi z pracą.Twoja tablica programistów ma już niektóre z tych funkcji, a jeśli nie, zawsze możesz łatwo kupić sheilds lub breakout borad, to wszystko zależy od ciebie ...

doradziłbym również, abyś skontaktował się ze swoją firmą na temat używanej przez siebie platformy, dałby Ci wskazówki na temat mikrokontrolera, a ponieważ jesteś już programistą, powinno to być dla Ciebie naprawdę łatwe i zawsze wykonywać projekty hobbystyczne, takie jak Robot i matryca LED między innymi, to pozwoli ci skupić się na temacie, którego nie będziesz się nudzić !!

ArunMKumar
źródło