Apa jenis proyek yang dapat membantu seorang insinyur perangkat lunak menjadi lebih dari seorang insinyur elektronik? [Tutup]

17

Saya seorang pengembang perangkat lunak yang praktis tidak memiliki latar belakang elektronik, tetapi saya ingin membahasnya karena ini relevan dengan pekerjaan yang saya lakukan (pengembangan sistem infotainment). Saya seorang insinyur perangkat lunak, bukan seorang insinyur elektronik, jadi latar belakang / pengalaman saya lebih berkaitan dengan pemrograman tingkat aplikasi, dan mungkin sedikit pemrograman sistem / jaringan.

Saya pernah mendengar tentang Arduino sebagai platform proyek yang fleksibel dan saya bertanya-tanya jenis proyek apa yang dapat membantu seseorang dengan latar belakang saya menggali jalan mereka ke teknik elektronik ... dimulai dengan pemrograman mikrokontroler dan mungkin mengacaukan jenis periferal lain, seperti bluetooth , zigbee, wifi, audio, video, saya tidak tahu ... mungkin semacam proyek yang khas untuk insinyur elektronik selama kursus mereka.

Singkatnya, apa yang saya cari adalah jenis proyek yang umum / populer (akademik atau lainnya) yang dapat membantu insinyur perangkat lunak mengembangkan keterampilan rekayasa elektronik yang ditetapkan pada tingkat perangkat lunak.

dukeofgaming
sumber
mungkin algoritma pemetaan teknologi untuk iverilog back-end.
Standard Sandun
1
Saya sarankan Anda mulai dengan beberapa proyek pengukur waktu 555. Ada yang tak terhitung jumlahnya di Internet dan mereka akan memberi Anda pemahaman dasar tentang resistor, kapasitor dan dalam beberapa kasus induktor, yang Anda harus membiasakan diri untuk benar-benar tahu apa yang Anda lakukan dengan barang-barang tingkat tinggi seperti pemrograman mikrokontroler dan sejenisnya. Setelah itu Anda dapat mulai bermain dengan Arduino, PICAXE, atau platform apa pun yang menurut Anda menarik. Kemudian dengan berani mulai mengerjakan proyek yang sedikit lebih besar yang menurut Anda menarik dan pastikan untuk tidak menyerah dalam perjalanan.
AndrejaKo
1
Saya berada di posisi yang sama, saya hanya ingin bermain-main dengan perangkat keras. Saya membawa Arduino dan mobil mainan RC, menghubungkan mereka bersama. Tidak tahu bagaimana, tetapi bekerja, dan itu luar biasa :) Ini tidak terlalu sulit, saya belum pernah menulis baris C sebelumnya (C # dev di sini), dan memiliki sesuatu yang berjalan dasar dalam beberapa jam.
TJHeuvel
Proyek seperti apa? Saya akan menyarankan proyek elektronik.
joeforker

Jawaban:

10

Berikut adalah beberapa saran untuk proyek yang tidak akan sulit bagi pengembang perangkat lunak. Mereka semua mungkin terlihat agak sulit, tapi saya penggemar proyek yang jauh dari keahlian saya. Jika itu menyenangkan, proyek yang menarik, mereka akan menyeret Anda dengan gembira melalui proses pembelajaran. Dan ingat, kita semua di sini untuk membantu.


Matriks LED

Matriks LED

Ini adalah proyek yang sepenuhnya digital, dan tetapi sangat menyenangkan (yang tidak suka LED). Anda akan memerlukan beberapa driver seperti ULN2803, dan mikrokontroler. Dapatkan matriks untuk memberi tahu waktu, atau perlihatkan gambar. Saya baru saja bisa menunjukkan gambar Bjork pada matriks hijau 16x16.


Gyro bidang busa yang distabilkan

Dapatkan bidang busa dan beberapa aileron mikro :

Bidang busa ailerons mikro

Anda juga membutuhkan gyro MEMS dengan output analog dan beberapa OpAmps kecil. Campurkan semuanya untuk membuat bidang busa karet gelang yang distabilkan gyro.


Robot

Semua orang suka robot. Hal yang hebat tentang robot kecil seperti ini adalah Anda dapat mulai dengan sesuatu yang sangat sederhana (hanya drive ke depan), dan perlahan-lahan tambahkan lebih banyak fungsi (Sensor dan pengambilan keputusan), sambil belajar.

Robot

Rocketmagnet
sumber
5

Jika Anda sudah menjadi pengembang perangkat lunak maka pemrograman mikrokontroler itu sendiri seharusnya tidak benar-benar menjadi tantangan, dan ada sedikit elektronik tentang hal itu. Setidaknya tidak dengan cara yang Anda harus berurusan dengan berbagai jenis komponen, dan harus membuat perhitungan pada voltase dan arus untuk membuat sesuatu berfungsi.

Kit mikrokontroler dapat membantu Anda mendapatkan kontrol. Anda dapat bekerja dengan semua jenis input, digital dan analog, dan output.
Coba termostat di mana-mana misalnya.

Input
Anda harus memahami sensor suhu (apa pun jenisnya), amplifier, opamp, dan mungkin transistor, selain kapasitor dan resistor. Opamps dan terutama transistor adalah dasar, mereka digunakan di setiap rangkaian.

Output
Untuk menggerakkan relay, Anda harus tahu cara kerja transistor sebagai saklar (itulah aplikasi termudah untuk dipahami).

Papan pengembangan mikrokontroler sering memiliki layar , LCD atau LED, atau dapat terhubung ke modul display. Meskipun ini berguna (misalnya untuk debugging) dan kesenangan, itu tidak membantu Anda memahami elektronik. Anda harus membuat tampilan sendiri, seperti matriks LED, dan mempelajari cara menggerakkan tampilan multipleks, baik dari sudut pandang perangkat lunak maupun perangkat keras.

Terlepas dari papan mikrokontroler, dapatkan kit starter elektronik , yang berisi sebagian besar komponen dasar untuk membuat sirkuit sederhana. Dan buku pegangan yang bagus , tentu saja. Seni Elektronik sangat populer di sini, meskipun terakhir kali saya melihatnya itu karena pembaruan.

stevenvh
sumber
1
Dan jika Anda muak dengan termostat, Anda dapat meningkatkan ke menerapkan pengontrol PID. :)
Nick Johnson
Gagasan proyek yang rapi yang menggabungkan berbagai konsep listrik dan elektronik. Setelah Anda menyelesaikan proyek ini dalam komponen diskrit, Anda dapat beralih ke pengontrol mikro untuk melakukan pekerjaan yang sama, dan pelajari pro (fleksibilitas) dan kontra (biaya komparatif) pengontrol mikro
SimonBarker
5

Dapatkan kit pengembangan PSoC . The PSoC adalah mikrokontroler yang berisi blok digital dan analog dikonfigurasi ulang. Anda pada dasarnya dapat menghubungkan skema digital dan analog dengan IDE. Skema tersebut kemudian diimplementasikan di dalam chip PSoC.

Pencipta PSoC

Anda dapat bermain dengan desain sirkuit digital dan analog sesuai keinginan Anda, dan menggabungkan semuanya dengan perangkat lunak yang ditulis dalam IDE yang sama.

Rocketmagnet
sumber
2
Ini adalah tempat yang tidak biasa untuk memulai; PSoC adalah sistem yang sangat kompleks dan tidak biasa. Sudahkah Anda berhasil melatih orang lain menggunakan ini sebagai titik awal?
Kevin Vermeer
Ini mungkin rumit di dalam, tapi itu mimpi untuk digunakan. Mereka telah melakukan pekerjaan yang luar biasa untuk membuat semuanya terintegrasi dengan lancar, dan menghasilkan banyak video dan dokumen tutorial yang bagus.
Rocketmagnet
1
Fakta bahwa semua periferal tersebut terintegrasi dalam PSoC adalah sebuah kasus yang menentangnya. Anda seharusnya membangun sistem ini sendiri jika Anda ingin belajar.
stevenvh
2
@stevenvh Tidak sama sekali. Apa perbedaan antara memasang gerbang di dalam chip, dan memasang gerbang dalam skema? Secara konseptual identik.
Rocketmagnet
@sandundhammika No probs. Saya pikir semua orang harus menemukan betapa senangnya mengembangkan aplikasi pada hal-hal ini.
Rocketmagnet
5

Proteus adalah platform proptyping berbasis perangkat lunak yang unggul. Anda dapat membuat papan PCB dan skema menggunakan sebagian besar, jika tidak semua MCU yang disebutkan di sini; Dan yang terbaik, Anda dapat mensimulasikan kode sumber Anda seolah-olah itu berjalan pada perangkat keras asli itu sendiri!

Hal terbaik tentang perangkat lunak ini adalah bahwa Anda dapat mengubah variabel seperti kristal, kapasitor, resistor tanpa harus menyolder, desolder, memesan dan menunggu untuk akhirnya bercampur dengan papan proto atau perisai. Ini sempurna sempurna.

Juga; Anda mendapatkan alat virtual seperti Osciliscopes .. Anda tahu berapa banyak biaya osiloskop yang baik? Keberuntungan! Itu semua disertakan dengan banyak fitur dan alat virtual lainnya.

Ini tidak gratis tetapi harganya benar-benar masuk akal untuk jumlah waktu dan frustrasi yang dapat menyelamatkan Anda, alih-alih mengacaukan perangkat keras yang sebenarnya.

WillyWonka
sumber
Apakah Anda bisa membuat sirkuit nyata dengan cara ini?
Rocketmagnet
Ya, saya membuat sirkuit saya di Proteus misalnya attiny 861 dengan h-bride, dan menautkannya ke file hex yang dikompilasi AVR Studio. Setiap kali saya mengubah sumber dan kompilasi dalam AVRStudio, saya menghidupkan di Proteus dan perubahan saya instan. Dan saya dapat mesaure output dari h-pengantin menggunakan lingkup, penyelidikan atau voltmeter dengan pembacaan yang akurat .. hanya seperti proto asli saya. Cukup bagus
WillyWonka
3

Saya pikir bahwa mencoba mempelajari semuanya hanya akan menghasilkan banyak kebingungan dan kehilangan waktu. IMHO Anda harus mencoba memusatkan minat Anda: Anda mengatakan bahwa Anda membutuhkannya untuk sistem infotainmen, bukan?

Suatu pendekatan bisa untuk mendapatkan ide tentang apa salah satu dari sistem itu adalah:

  • Unit pemrosesan (mungkin mikrokontroler atau komputer sederhana);

  • Beberapa driver untuk tampilan;

  • I / O interface untuk interaksi pengguna;

  • Antarmuka komunikasi (jaringan, interfacing ke perangkat lain ...)

Sub-domain ini adalah sistem lengkap yang dapat dipelajari dan dirancang sebagai proyek. Beberapa dari mereka juga dapat dibagi dalam lebih banyak sub-domain pada tingkat abstraksi yang lebih rendah, dan turun ke tingkat komponen.

Jadi saran saya adalah memecah arsitektur kompleks ini dalam beberapa blok , dan mencoba membuat sirkuit sederhana (mungkin dimulai dari driver LED), tetapi itu dapat kemudian dimasukkan ke dalam rencana yang lebih besar. Anda akan memiliki motivasi untuk melakukan itu, karena itu akan menjadi bagian dari pekerjaan akhir, dan dengan cara itu Anda akan belajar tentang elektronik.

Berhati-hatilah dalam belajar dan memahami apa yang Anda lakukan, alih-alih mengandalkan skema yang sudah dibuat sebelumnya dan aturan umum yang praktis.

clabacchio
sumber
2

Saya berada di masalah yang sama. Dan akhirnya saya belajar bahwa tidak ada jalan pintas untuk belajar elektronik. Gelar sarjana dapat membantu Anda.

Kalau tidak, Anda dapat mencoba buku-buku berikut:

Langkah 1.

masukkan deskripsi gambar di sini

Langkah 2.

masukkan deskripsi gambar di sini

Seiring dengan perangkat lunak NI Multisim .

masukkan deskripsi gambar di sini


sumber
1

Baik sebagai pengembang perangkat lunak Anda berada di dua platform utama yang tersedia.

PHP atau .NET?

Jika Anda. NET maka saya sangat menyarankan Anda . NET MicroFramework IDE dan NetDuino

masukkan deskripsi gambar di sini

Ada banyak perangkat keras lain yang tersedia tetapi saya menyarankan yang ini karena harganya masuk akal dan sangat mirip dalam desain dengan Arduino dan banyak brews lain dari papan prototyping yang akan membantu mengembangkan keakraban di beberapa kit.

Baik .NET atau PHP tidak memiliki koneksi nyata ke pemrograman tertanam tetapi sintaks PHP sangat dekat dengan Cyang baik untuk diketahui. .NET, bagus untuk tetap berada dalam lingkungan yang akrab dan Anda juga bisa mendapatkan sertifikasi untuk ini dengan Microsoft Learning.

Platform lain yang saya sarankan adalah Atmels AVR XMega yang pada dasarnya adalah Arduino tetapi jauh lebih baru dan lebih mampu.

Bagian penting tentang kedua orang ini adalah bahwa Lingkungan Pengembangan GRATIS! Ya, Microsoft memberi Anda Visual Studio Gratis untuk Kerangka Mikro dan Atmel memiliki AVR Studio 5 (yang didasarkan pada Visual Studio pada Versi 5)

Anda juga perlu menyadari capabiliteis dari setiap kit dev.

masukkan deskripsi gambar di sini

Ini didasarkan pada chip Atmega tetapi mereka menggunakan yang kecepatan clock rendah (8mhz, 16mhz) tetapi cukup mampu melakukan berbagai bit dan bops. Ini adalah titik awal yang bagus dalam mempelajari teknik listrik karena memiliki IDE gratis dan komunitas besar dengan banyak kode dan perpustakaan. Jika Anda belajar dari sini, akan lebih mudah untuk beralih ke chip berbasis AVR lain dalam hal sintaks dan porting kode.

Ini sangat terbatas pada apa yang dapat dilakukannya, misalnya jangan berharap untuk menyampaikan data video melalui server web mikro internal ke internet .. MCU ini hanya tidak bisa menangani data dan jumlah hal yang harus dilakukan pada saat yang sama tetapi begitu Anda sampai ke tingkat itu maka akan lebih baik untuk melangkah ke .NET atau 32Bit AVR's.

  • AVR 32

Orang-orang ini dapat menangani LCD, video, server web, Nirkabel dan banyak hal di dalamnya. Mereka juga mulai bergerak lebih cepat dalam kecepatan pemrosesan. Tetapi sebelum Anda mulai melihat ini, Anda perlu menyadari ada beberapa produk yang melakukan fungsi tertentu juga .. Seperti rasa sentuh, komunikasi nirkabel, daya sangat rendah, ada yang dicampur dan dicocokkan dan ini membutuhkan penelitian dan pengembangan proses yang tepat di belakang menggunakan anak-anak nakal ini.

  • Texas Instruments

Berhati-hatilah dengan mereka,

Mereka menawarkan chip pasar terkemuka yang luar biasa ketika Anda membaca tentang mereka. Sayangnya tidak ada IDE gratis dan harganya ribuan dolar dalam biaya lisensi. Meskipun, beberapa produk seperti MSP430 memiliki IDE gratis tetapi banyak hal yang berbatasan dengan mereka dan tidak jelas. Juga, mempelajari perpustakaan untuk beberapa chip TI adalah mimpi buruk absolut .. Tapi itu adalah ceruk pasar dan Anda bisa mendapatkan gaji yang bagus di sini ..

Ada banyak devkits di luar sana, saya hanya memberitahu Anda tentang beberapa pengalaman saya sendiri datang dari. Sertifikasi NET. Saya memulai dengan Arduino Mega256.

Hari ini saya sedang membuat PCB saya sendiri sekecil 1.5cmx1.5cm yang berjalan sel koin hingga 2 tahun menggunakan SystemOnChips menakjubkan TI. Tapi butuh waktu dan kesabaran untuk sampai ke sana dan saya masih merasa seperti tidak tahu apa-apa tentang embedded system ...

Semoga berhasil :-)

Piotr Kula
sumber
10
... Anda dengan serius menyarankan agar setiap pengembang perangkat lunak menggunakan .NET atau PHP?
Nick Johnson
@NickJohnson mayoritas .... Pergi ke penyedia host web dan Anda memiliki dua pilihan tipe server; Windows .NET-ATAU-Linux LAMP dengan PHP .. Bukan hanya saya .. Saya yakin Anda seperti batu ruby ​​pada rel atau C ++? Saya tahu saya hanya mereferensikan teknologi Web .. tetapi aplikasinya sangat kemarin .. mari kita teruskan.
Piotr Kula
Itu pertanyaan lucu. Pengalaman profesional utama saya terletak pada (ditulis dengan baik) PHP, tapi saya juga fasih dengan Java, C & C ++, Javascript.
dukeofgaming
12
"... aplikasi sangat kemarin ..." - Katakan itu ke ratusan ribu pengembang non-Web-app di luar sana. Alih-alih "ayo teruskan", bagaimana dengan "mari kita menjadi nyata"? Jika .NET dan PHP adalah satu-satunya pilihan untuk menulis perangkat lunak, saya akan melempar PC saya ke atas jembatan. Aplikasi web bukan satu-satunya aplikasi.
Justin ᚅᚔᚈᚄᚒᚔ
1
@pumkin, saya masih sangat berpikir pengguna harus belajar membaca perakitan untuk melihat ketika melakukan sesuatu yang bodoh.
Kortuk
1

Pertanyaan Anda agak luas, dan akan ada banyak kemungkinan bagus. Jika Anda lebih fokus pada level yang lebih tinggi tentang bagaimana membuat komputer kecil berinteraksi dengan hal-hal fisik, boleh saya sarankan Anda melihat sesuatu seperti kit Lego Mindstorms . Dengan ini, Anda dapat membuat dan memprogram robot. Ini akan berada pada level tinggi plug and play berbagai sensor dll.

Ada juga tingkat teknik elektro yang lebih mendasar di mana EE "sejati" akan merancang dan membangun sensor. Menggunakan komputer papan tunggal seperti Arduino atau Netduino dan papan tempat memotong roti di mana Anda memasukkan berbagai komponen seperti resistor, LED dll ke papan tempat memotong roti untuk membangun sirkuit akan lebih dekat ke tingkat yang lebih mendasar ini. Pada titik ini Anda akan berhadapan dengan pertanyaan seperti "nilai resistor apa yang harus saya masukkan secara seri dengan LED untuk membatasi arus sehingga led dan mikrokontroler saya tidak naik dalam asap?".

Dengan kit Lego, Anda cukup menyambungkan komponen-komponennya dan mereka telah membuatnya menjadi bukti idiot.

JonnyBoats
sumber
1
Sebenarnya EE "benar" mungkin tidak akan menggunakan Ardunio dan papan tempat memotong roti.
Jeanne Pindar
@Jeanne - Benar, tapi kita semua tidak bisa menjadi Jeri Ellsworth dan membuat transistor kita sendiri: youtube.com/watch?v=w_znRopGtbE
JonnyBoats
1

Saya akan menyarankan fokus pada perbedaan antara perangkat lunak yang ditulis untuk PC vs firmware yang ditulis untuk aplikasi tertanam. Memoles C. Dengan embeddd linux menjadi begitu populer, perbedaan antara insinyur firmware dan pengembang perangkat lunak menyusut dengan cepat. Luangkan waktu untuk melihat driver tertanam sumber terbuka.

Saya akan mempertanyakan keinginan untuk menjadi lebih seperti EE karena dua disiplin ilmu cukup berbeda. Ya ada satu ton tumpang tindih, tetapi fokus pada sisi pengemudi dan jangan terjebak dalam detail elektronik.

spearson
sumber
Dia memberitahumu dia ingin masuk ke elektronik!
stevenvh
Apa yang saya sarankan adalah pendekatan sisi perangkat lunak top-down, daripada memulai dengan skema dan bekerja kembali dari pin IO. Ini tampaknya masuk akal karena saya menafsirkan "keterampilan teknik elektronik yang ditetapkan pada tingkat perangkat lunak" berarti fokus pada pengembangan firmware.
spearson
1

pertama-tama benar-benar baik-baik saja jika Anda bukan dari latar belakang elektronik, Anda benar-benar tidak akan mendesain Chips bukan?

tetapi jika Anda akan belajar elektronik saya akan menyarankan Anda untuk mendapatkan dasar-dasar pertama seperti Resistance, Diode, Transistor dll .. kit hobi elektronik dari radioshack atau vendor lain akan melakukan .. selanjutnya beralih ke Microcontrollers, Arduino akan membuat itu sangat sederhana, tetapi saya akan menyarankan Anda pergi dengan sesuatu yang belum dibuat sudah mudah, Arduino sangat mudah dan tidak menempatkan banyak tantangan di hadapan penggunanya .. Mulailah dengan AVR, PIC atau 8051 Pengontrol mikro, Beli Mikrokontroler, sebuah pengkodean buku dan srart dimulai dengan Program LED Berkedip ("Hello World" di Departemen Elektronik) dan seperti yang akan Anda lihat, dalam waktu singkat Anda akan menggunakan papan tombol matriks dan Layar Tujuh Segmen untuk mempelajari beberapa dasar lagi, setelah itu muncullah yang sebenarnya bekerja, menghubungkan perangkat Anda dengan IC lain dan jaringan sensor, yang terkait dengan pekerjaan Anda ..papan Pengembangan Anda sudah memiliki beberapa fitur ini dan jika tidak, Anda selalu dapat membeli sheild atau breakout borad yang tersedia dengan mudah, maka semuanya terserah Anda ...

saya juga akan menyarankan Anda untuk memeriksa dengan Perusahaan Anda tentang Platform yang mereka gunakan ini akan memberi Anda arahan pada Micro-controller untuk belajar dan karena Anda sudah menjadi programmer ini harus membuktikan sangat mudah bagi Anda dan selalu melakukan proyek hobi seperti Robot dan matriks LED antara lain, ini akan membuat Anda tetap berpikir tentang Subjek Anda tidak akan bosan !!

ArunMumar
sumber