Bir yazılım mühendisinin daha çok elektronik mühendisi olmasına ne tür bir proje yardımcı olabilir? [kapalı]


17

Elektronik arka planı olmayan bir yazılım geliştiricisiyim, ancak yaptığım işle (bilgi-eğlence sistemi geliştirme) ilgili olduğu için buna girmek istiyorum. Ben bir elektronik mühendisi değilim, bir yazılım mühendisiyim, bu yüzden arkaplanımın / deneyimimin uygulama seviyesi programlamasıyla ve belki de biraz sistem / ağ programlamasıyla ilgisi var.

Arduino'yu esnek bir proje platformu olarak duydum ve geçmişim olan birisinin elektronik mühendisliği yolunda ilerlemesine ne tür projelerin yardımcı olabileceğini merak ediyordum ... mikrodenetleyici programlamadan başlayarak ve belki de bluetooth gibi diğer çevre birimleriyle uğraşmak , zigbee, wifi, ses, video, bilmiyorum ... belki dersleri sırasında elektronik mühendisleri için tipik bir proje.

Özetle, aradığım şey, bir yazılım mühendisinin yazılım düzeyinde bir elektronik mühendisliği becerisi geliştirmesine yardımcı olabilecek tipik / popüler bir proje (akademik veya başka türlü) içindir.


iverilog arka ucuna teknoloji eşleme algoritması olabilir.
Standart Sandun

1
Bazı 555 zamanlayıcı projeleri ile başlamanızı tavsiye ederim. İnternette sayısız vardır ve size dirençler, kapasitörler ve bazı durumlarda indüktörler hakkında temel bir anlayış verecektir, bunlar gibi üst düzey şeylerle gerçekte ne yaptığınızı bilmek için kendinizi tanımanız gerekir. mikrodenetleyici programlama ve benzeri. Bundan sonra Arduino, PICAXE veya ilginç bulduğunuz platformla oynamaya başlayabilirsiniz. Sonra cesurca ilginç bulduğunuz biraz daha büyük bir proje üzerinde çalışmaya başlayın ve yolda vazgeçmediğinizden emin olun.
AndrejaKo


1
Aynı pozisyondayım, sadece donanım ile uğraşmak istedim. Bir Arduino ve bir oyuncak RC araba getirdim, birbirine bağladım. Nasıl bir fikrim yok, ama işe yarıyor ve harika :) Bu kadar zor değil, daha önce hiç C satırı yazmamıştım (burada C # dev) ve birkaç saat içinde çalışan temel bir şey vardı.
TJHeuvel

Ne tür bir proje? Bir elektronik proje öneririm.
joeforker

Yanıtlar:


10

İşte bir yazılım geliştiricisi için zor olan projeler için bazı öneriler. Hepsi oldukça zor görünebilir, ancak ben yetenek setimin çok dışında olan projelere teşebbüs etmek için büyük bir hayranım. Eğer eğlenceli ve ilgi çekici projeler varsa, sizi öğrenme süreci boyunca sevinçle sürüklerler. Ve unutmayın, hepimiz yardım etmek için buradayız.


LED Matrisi

LED Matrix

Bu tamamen dijital bir proje ve çok eğlenceli (LED'leri sevmeyen). ULN2803 ve bir mikro denetleyici gibi bazı sürücülere ihtiyacınız olacak. Zamanı bildirmek için bir matris alın veya bir resim gösterin. 16x16 yeşil matris üzerinde Bjork'un bir resmini gösterebildim.


Cayro stabilize köpük düzlemi

Bir köpük düzlemi ve birkaç mikro kanatçık alın :

Foam plane micro ailerons

Ayrıca analog çıkışlı bir MEMS jirosuna ve bazı küçük OpAmp'lara ihtiyacınız olacak. Cayro stabilize lastik bant köpük düzlemi yapmak için hepsini karıştırın.


Robot

Herkes bir robotu sever. Bunun gibi küçük bir robotla ilgili en iyi şey, son derece basit bir şeyle başlayabilmeniz (sadece ileriye doğru sürüyor) ve yavaş yavaş daha fazla işlevsellik (Sensörler ve karar verme) ekleyebilmenizdir.

Robot


5

Zaten bir yazılım geliştiricisiyseniz, kendi başına mikrodenetleyici programlama gerçekten zor olmamalı ve bu konuda çok az elektronik var. En azından farklı türdeki bileşenlerle uğraşmanız ve bir şeyin çalışması için voltajlar ve akımlar üzerinde hesaplamalar yapmanız gerektiği şekilde değil.

Bir mikrodenetleyici kiti, kontrol sahibi olmanıza yardımcı olabilir. Her türlü giriş, dijital ve analog ve çıkışlarla çalışabilirsiniz. Örneğin
her yerde bulunan termostatı deneyin .

Girişler
Kapasitörler ve dirençlerin yanı sıra sıcaklık sensörleri (ne olursa olsun), amplifikatörler, opamplar ve belki de transistörler hakkında bilgi sahibi olmanız gerekir. Opamplar ve özellikle transistörler temeldir, her devrede kullanılırlar.

Çıkış
Bir röleyi sürmek için bir transistörün anahtar olarak nasıl çalıştığını bilmeniz gerekir (bu anlaşılması en kolay uygulamadır).

Mikrodenetleyici geliştirme kartlarının üzerinde genellikle bir ekran , LCD veya LED bulunur veya bir ekran modülüne bağlanabilir. Bu yararlı (hata ayıklama için) ve eğlenceli olsa da, elektronik anlamanıza yardımcı olmaz. Bir LED matrisi gibi kendi ekranınızı oluşturmanız ve hem yazılımdan hem de donanım açısından çoklayıcı bir ekranı nasıl kullanacağınızı öğrenmeniz gerekir.

Mikrodenetleyici kartının yanı sıra, basit devreler yapmak için temel parçaların çoğunu içeren bir elektronik başlangıç ​​kitini tutun . Ve elbette iyi bir el kitabı . Elektronik Sanatı burada son derece popüler, ancak son gördüğümde bir güncelleme gerekiyordu.


1
Termostattan bıktıysanız, bir PID kontrolörü uygulamaya yükseltebilirsiniz. :)
Nick Johnson

Çok çeşitli elektrik ve elektronik konseptlerini içeren temiz proje fikri. Bu projeyi ayrık bileşenlerde yaptıktan sonra, aynı işi yapmak için bir mikro denetleyiciye geçmeyi düşünebilirsiniz ve bu nedenle mikro denetleyicilerin artılarını (esnekliğini) ve eksilerini (karşılaştırmalı maliyet)
öğrenin

5

PSoC geliştirme kitini edinin . PSoC yeniden yapılandırılabilir dijital ve analog blokları içeren bir mikroişlemcidir. Temel olarak IDE ile dijital ve analog şemaları bağlayabilirsiniz. Bu şemalar daha sonra PSoC çipinin içine uygulanır.

PSoC Creator

Kalbinizin içeriğine dijital ve analog devre tasarımlarıyla oynayabilir ve hepsini aynı IDE'de yazılmış yazılımla birleştirebilirsiniz.


2
Bu başlamak için nadir bir yerdir; PSoC çok karmaşık ve sıradışı bir sistemdir. Bunu başlangıç ​​noktası olarak kullanarak başkalarına eğitim vermeyi başardınız mı?
Kevin Vermeer

İçeride karmaşık olabilir, ancak kullanmak bir rüya. Her şeyin pürüzsüz bir şekilde entegre olmasını sağlamak için harika bir iş çıkardılar ve çok sayıda güzel öğretici video ve belge ürettiler.
Rocketmagnet

1
Tüm bu çevre birimlerinin bir PSoC'ye entegre edilmiş olması buna karşı bir durumdur. Öğrenmek istiyorsanız bu sistemleri kendiniz kurmanız gerekiyor.
stevenvh

2
@stevenvh Hiç de değil. Çiplerin içindeki kapıları kablolamak ve şematik olarak kapıları kablolamak arasındaki fark nedir? Kavramsal olarak aynı.
Rocketmagnet

@sandundhammika Probs yok. Bence herkes bu şeyler üzerinde uygulama geliştirmenin ne kadar zevkli olduğunu keşfetmeli.
Rocketmagnet

5

Proteus mükemmel bir yazılım güdümlü prototip platformudur. Bahsedilen MCU'ların hepsi olmasa da, çoğunu kullanarak PCB panoları ve şemaları oluşturabilirsiniz; Ve en iyisi, kaynak kodunuzu sanki gerçek donanımda çalışıyormuş gibi simüle edebilirsiniz!

Bu yazılımla ilgili en güzel şey, lehimleme, sökme, sipariş verme ve sonunda proto panoları veya kalkanlar ile uğraşmak zorunda kalmadan kristaller, kapasitörler, dirençler gibi değişkenleri değiştirebilmenizdir. Mükemmel öykünür.

Ayrıca; Osiloskoplar gibi sanal araçlar elde edersiniz .. İyi bir osiloskopun maliyetini biliyor musunuz? Bir servet! Hepsi neredeyse tonlarca başka özellik ve sanal araçla birlikte gelir.

Ücretsiz değil ama fiyat gerçek donanım ile uğraşmak yerine, sizi kurtarabilecek zaman ve hayal kırıklığı miktarı için kesinlikle makul.


Bu şekilde gerçek devreler yapıyor musunuz?
Rocketmagnet

Evet, Proteus'taki devrimi örneğin 861'i h-gelinle birleştiriyorum ve AVR Studio'nun derlediği onaltılık dosyaya bağlıyorum. AVRStudio'da her kaynak değiştirdiğimde ve derlediğimde, Proteus'ta canlandırıyorum ve değişikliklerim anında gerçekleşiyor. Ve ben doğru okuma ile bir kapsam, sonda veya voltmetre kullanarak h-gelin çıkışını olabilir .. benim gerçek proto gibi jsut. Oldukça iyi
WillyWonka

3

Her şeyi öğrenmeye çalışmanın sadece çok fazla karışıklığa ve zaman kaybına neden olacağını düşünüyorum. IMHO ilginizi odaklamaya çalışmalısınız: bilgi-eğlence sistemleri için buna ihtiyacınız olduğunu söylediniz, değil mi?

Bir yaklaşım, bu sistemlerden birinin ne olduğu hakkında bir fikir edinmek olabilir:

  • Bir işlem birimi (muhtemelen bir mikrodenetleyici veya basit bir bilgisayar);

  • Ekran için bazı sürücüler;

  • Kullanıcı etkileşimi için I / O arayüzü;

  • İletişim arayüzleri (ağ oluşturma, diğer cihazlarla arayüz oluşturma ...)

Bu alt alanlardan herhangi biri, bir proje olarak çalışılabilen ve tasarlanabilen eksiksiz bir sistemdir. Bazıları daha düşük bir soyutlama seviyesinde ve bileşen seviyesine kadar daha alt alt alanlara bölünebilir.

Bu yüzden önerim, bu karmaşık mimariyi bloklar halinde kırmak ve basit devreler (belki de LED sürücülerden başlayarak) oluşturmaya çalışmaktır, ancak bu daha büyük plana eklenebilir. Bunu yapmak için motivasyona sahip olacaksınız, çünkü son çalışmanın bir parçası olacak ve elektronik hakkında bilgi edineceksiniz.

Önceden yapılmış şemalara ve genel başparmak kurallarına güvenmek yerine, ne yaptığınızı araştırmaya ve anlamaya dikkat edin.


2

Ben de aynı problemin içindeydim. Sonunda elektronik öğrenmenin kısa bir yolu olmadığını öğrendim. Bir üniversite derecesi size yardımcı olabilir.

Aksi takdirde aşağıdaki kitapları deneyebilirsiniz:

Aşama 1.

resim açıklamasını buraya girin

Adım 2.

resim açıklamasını buraya girin

NI Multisim yazılımı ile birlikte .

resim açıklamasını buraya girin


1

Bir yazılım geliştiricisi olarak, mevcut iki ana platformdan birinde olursunuz.

PHP veya .NET?

.NET iseniz, o zaman size güçlü bir şekilde .NET MicroFramework IDE ve NetDuino önerebilirim

resim açıklamasını buraya girin

Başka donanımlar da var, ancak bunu tavsiye ediyorum çünkü fiyatı makul ve tasarımda Arduino ve çeşitli kitler arasında aşinalık geliştirmeye yardımcı olacak diğer birçok prototip tahtaya benzer.

Ne .NET ne de PHP'nin gömülü programlama ile gerçek bir bağlantısı yoktur, ancak PHP sözdizimi çok yakındır, Cbu da bilmek iyidir. .NET, tanıdık bir ortamda kalmak güzel ve ayrıca Microsoft Learning ile bunun için sertifikalar alabilirsiniz.

Önerebileceğim başka bir platform , temelde arduino olan ancak çok daha yeni ve daha yetenekli olan Atmels AVR XMega .

Her iki tarafın da önemli kısımları Geliştirme Ortamlarının ÜCRETSİZ olmasıdır! Evet, Microsoft size Micro Framework için Ücretsiz Visual Studio verir ve Atmel'in AVR Studio 5 (Sürüm 5'ten itibaren Visual Studio tabanlı) vardır

Ayrıca her dev kitinin capabiliteis'i fark etmeniz gerekir.

resim açıklamasını buraya girin

Atmega çiplerine dayanıyor ancak düşük saat hızı olanları (8mhz, 16mhz) kullanıyorlar, ancak çeşitli bitler ve bopslar yapabiliyorlar. Elektrik mühendisliği öğrenmede harika bir başlangıç ​​noktasıdır, çünkü ücretsiz IDE'ye ve tonlarca kod ve kütüphaneye sahip büyük bir topluluğa sahiptir. Buradan öğrenirseniz, sözdizimi ve kod taşıma açısından diğer AVR tabanlı yongalara geçmek daha kolay olacaktır.

Yapabilecekleri çok sınırlıdır, örneğin video verilerini dahili bir mikro web sunucusu üzerinden internete aktarmayı beklemeyin. Bu MCU'lar sadece verileri ve aynı anda yapılacak şeyleri işleyemez, ancak bir kez o seviyeye ulaşırsanız, .NET veya 32Bit AVR'lara geçmek iyi olur.

  • AVR 32

Bu adamlar LCD, video, web sunucusu, Kablosuz ve kendi içinde bir sürü şeyle başa çıkabilirler. Ayrıca işlem hızında çok daha hızlı ilerlemeye başlarlar. Ancak bunlara bakmaya başlamadan önce, belirli işlevleri de yerine getiren birçok ürün olduğunu fark etmelisiniz. Dokunma hissi, kablosuz iletişim, ultra düşük güç, bazıları karışık ve eşleştirilmiştir ve bu, kullanımın arkasında uygun bir araştırma ve geliştirme sürecine ihtiyaç duyar. Bu kötü çocuklar.

  • Texas Instruments

Onlara çok dikkat et,

Onlar hakkında okuduğunuzda inanılmaz fantastik pazar lideri cips sunuyoruz. Ne yazık ki ücretsiz IDE yok ve lisans ücretlerine binlerce dolara mal oluyorlar. Bununla birlikte, MSP430 gibi bazı ürünlerin ücretsiz bir IDE'si vardır, ancak bir çok şey onlarla sınırdadır ve belirsizdir. Ayrıca, bazı TI yongaları için kütüphaneleri öğrenmek mutlak bir kabustur .. Ama niş bir pazar ve burada iyi bir maaş alabilirsiniz ..

Orada bir sürü şeytan var, ben sadece size bir .NET Sertifikası gelen kendi deneyimimi anlattım. Bir Arduino Mega256 ile infekte başladım.

Bugün TI'nin inanılmaz SystemOnChips'i kullanarak 2 yıla kadar madeni para hücrelerini çalıştıran 1.5cmx1.5cm kadar küçük bir PCB üretiyorum. Ama oraya ulaşmak zaman ve sabır gerektiriyordu ve hala gömülü sistemler hakkında hiçbir şey bilmiyormuşum gibi hissediyorum ...

İyi şanslar :-)


10
... her yazılım geliştiricisinin .NET veya PHP kullanmasını ciddi olarak öneriyorsunuz?
Nick Johnson

@ NickJohnson çoğunluk .... Web barındırma sağlayıcısına gidin ve sunucu türü iki seçim var; PHP ile Windows .NET -VEYA- Linux LAMBA .. Sadece ben değil .. Ben raylar üzerinde bir yakut veya C ++ gibi bahse girerim? Ben sadece Web teknolojilerine atıfta bulunduğumu biliyorum .. ama uygulamalar çok dün .. devam edelim.
Piotr Kula

Çok şirin bir soruydu. Benim ana mesleki deneyim (iyi yazılmış) PHP ile yatıyor, ama aynı zamanda Java, C & C ++, Javascript ile akıcı.
dukeofgaming

12
"... uygulamalar çok dün ..." - Yüz binlerce Web uygulaması olmayan geliştiriciye bunu söyleyin. "Haydi devam edelim" yerine "hadi gerçek olalım" ne dersiniz? .NET ve PHP, yazılım yazmak için tek seçenek olsaydı, bilgisayarımı bir köprünün üzerine atarım. Web uygulamaları tek uygulama değildir.
Justin ᚅᚔᚈᚄᚒᚔ

1
@ppumkin, hala kullanıcıların aptalca bir şey yaptığını görmek için montaj okumayı öğrenmeleri gerektiğini düşünüyorum.
Kortuk

1

Sorunuz oldukça geniştir ve birçok iyi olasılık olacaktır. Küçük bir bilgisayarın fiziksel şeylerle nasıl etkileşimde bulunacağına daha yüksek düzeyde odaklanmışsanız, Lego Mindstorms kiti gibi bir şeye bakmanızı öneririm . Bununla robotlar kurabilir ve programlayabilirsiniz. Bu, çeşitli sensörler vb.Gibi yüksek bir tak ve çalıştır seviyesinde olacaktır.

Ayrıca, "gerçek" bir EE'nin sensörleri tasarlayacağı ve inşa edeceği daha temel bir elektrik mühendisliği seviyesi de vardır. Arduino veya Netduino gibi tek kartlı bir bilgisayar ve dirençler, LED'ler vb. Bu noktada, "led ve mikrodenetleyicimin duman çıkmaması için akımı sınırlamak için LED ile hangi değer direncini sıralamalıyım?" Gibi sorularla ilgileneceksiniz.

Lego kiti ile bileşenleri basitçe bağlarsınız ve aptal geçirmez hale getirmeye özen gösterirler.


1
Aslında "gerçek" EE muhtemelen bir Ardunio ve breadboard kullanmazdı.
Jeanne Pindar

@Jeanne - Doğru, ancak hepimiz Jeri Ellsworth olamaz ve kendi transistörlerimizi oluşturamayız: youtube.com/watch?v=w_znRopGtbE
JonnyBoats 17:12

1

PC için yazılan yazılım ile gömülü uygulamalar için yazılan ürün yazılımı arasındaki farka odaklanmanızı öneririm. C üzerinde fırçalayın. Embeddd linux çok popüler hale geldiğinde, bir yazılım mühendisi ve bir yazılım geliştiricisi arasındaki fark hızla azalıyor. Açık kaynaklı tümleşik sürücüye bakarak biraz zaman geçirin.

İki disiplin oldukça farklı olduğu için bir enerji verimliliği gibi olma arzusunu bir şekilde sorgulayacağım. Evet, bir ton çakışma var, ancak sürücü tarafına odaklanın ve elektroniklerin detaylarında saplanmayın.


Size elektroniğe girmek istediğini söylüyor!
stevenvh

Önerdiğim, şematik ile başlamak ve IO pinlerinden geri çalışmak yerine yukarıdan aşağıya bir yazılım tarafı yaklaşımıdır. "Yazılım düzeyinde ayarlanan elektronik mühendisliği becerisini" yazılım yazılımı geliştirmeye odaklanmak için yorumladığım için bu makul görünüyor.
spearson

1

her şeyden önce gerçekten iyi eğer elektronik kökenli değilseniz, gerçekten tasarım yapmayacaksınız Cips misiniz?

ama elektronik öğrenecekseniz, Direnç, Diyotlar, Transistörler vb.Gibi temelleri almanızı öneririm .. radioshack veya başka bir satıcıdan bir elektronik hobi kiti yapardı .. Mikrodenetleyicilere bir sonraki hamle, Arduino gerçekten basit, ama ben zaten kolay yapılmış bir şey ile gitmek tavsiye ediyorum, Arduino gerçekten kolay ve kullanıcı önce bir meydan okuma çok koymaz .. AVR, PIC veya 8051 Mikro kontrolörleri ile başlayın, bir Mikrodenetleyici satın, bir yanıp sönen LED Programından (Elektronik Departmanındaki "Merhaba Dünya") başlayan kitap ve srart kodlama ve göreceğiniz gibi, daha sonra temel bilgileri öğrenmek için matris Tuş Takımı ve Yedi Segment Ekran kullanacaksınız. çalışma, cihazlarınızı işinizle ilgili diğer IC'ler ve sensör ağları ile arabirim haline getirme.Geliştirme panonuzda bu özelliklerin bir kısmı zaten olurdu ve eğer onlar her zaman kolayca mevcut olan sheilds veya koparma satın alabilirsiniz, o zaman hepsi size kalmış ...

Ayrıca, kullandıkları Platform hakkında Şirketinize danışmanızı tavsiye ederim, bu da Mikrodenetleyicide öğrenmeniz için bir yön verir ve zaten bir programcı olduğunuz için bu sizin için gerçekten kolay olmalı ve her zaman Robot gibi hobi projeleri yapmalıdır. ve diğerleri arasında LED matris, bu sizi sıkılmayacak Konu içine zihin tutmak olacaktır !!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.