Baiklah, saya sudah cukup bermain-main dengan Arduino sehingga saya merasa cukup nyaman dengannya. Apa pun yang dilakukan sekarang adalah lebih mempelajari elektronik daripada sisi Arduino-nya.
Apa langkah selanjutnya untuk pembelajaran saya? Arduino adalah gabungan programmer / pengontrol, jadi mungkin saya perlu memutus tautan itu dan mulai bekerja dengan chip pengontrol terpisah dari pengontrol, saya kira? Adakah yang bisa mengarahkan saya ke arah yang benar?
Jawaban:
Berikut ini beberapa kiat untuk bekerja dengan AVR dan C.
Mulai dengan embedded C dengan ATmega32 (seri ATmega AVR)
sumber
Saya setuju dengan Joby - Arduino hebat tetapi saya selalu merasa tertahan oleh kerangka kerja yang mengelilingi saya. Saya akan beralih menggunakan C langsung pada Arduino Anda dan membangun banyak fungsi perpustakaan yang mereka sediakan dari awal. Saya biasanya lebih suka kedalaman sebelum luas - jangan hanya mulai dari keluarga mikrokontroler lain dengan menggunakan kerangka kerja yang disediakan lebih. Pelajari sedikit lebih banyak tentang bagaimana menerapkan sendiri beberapa fungsi ini.
Mulailah dengan program yang berfungsi dan ganti panggilan perpustakaan Arduino dengan versi Anda sendiri satu fungsi setiap kali. Anda akan belajar banyak tentang register kontrol, pengaturan waktu, operasi bit, dll jika Anda belum melakukannya. Baca datasheet ATMega328 secara mendalam - semua yang Anda butuhkan ada di sana.
Coba IDE yang berbeda seperti AVR Studio atau Code :: Blocks. Pelajari rantai alat GCC. Cobalah teknik pengkodean yang lebih canggih - pengujian unit, cakupan, profiling, pemeriksaan serat / belat. Letakkan RTOS di Arduino.
Gabungan programmer / controller bukanlah tanda kelemahan - itu hanya pilihan desain. Satu-satunya 'kelemahan' yang bisa muncul darinya adalah kurangnya debugging di dalam sirkuit. Beli AVR Dragon dan Anda akan menjilatnya seharga $ 50.
sumber
Saya pikir apa yang harus dipelajari selanjutnya tergantung pada apa yang ingin Anda lakukan yang tidak bisa dilakukan Arduino. Yaitu, saya tidak bisa melihat banyak gunanya memprogram chip serupa untuk melakukan hal yang sama, tetapi dengan cara yang lebih sulit.
Berikut ini beberapa kelemahan Arduino:
Saya bisa membayangkan dua arah:
Saya dapat menambahkan lebih detail jika Anda berkomentar tentang arah mana yang lebih menarik. (Yang kedua pasti lebih murah.)
sumber
Pelajari I2C, SPI, 1wire dan coba antarmuka sensor dengan antarmuka seperti itu. Baca banyak lembar data dari sensor tersebut dan cobalah untuk memahami semua yang ada di dalamnya. Ajukan pertanyaan saat macet. Pelajari MODBUS (RTU / ASCII / TCP) atau protokol serupa yang dapat membuka perangkat Anda ke dunia begitu Anda menanamkannya di perangkat. Pelajari elektronik umum dan coba antarmuka relay, triacs, apa yang menarik dan tarik ke bawah, apa yang sumber dan tenggelam, cara menggambar skema dan menghubungkan driver dasar ke MCU Anda.
sumber
Sebagai permulaan, Anda mungkin ingin pindah dari Arduino sebagai platform ke AVR sebagai platform. Yaitu, belajar bagaimana memprogram / menggunakan mikrokontroler AVR perawan untuk proyek Anda, bukan Arduino. Dengan begitu, Anda tidak perlu membeli papan Arduino lain untuk setiap proyek yang Anda lakukan, atau untuk melakukan proyek dengan teman. Ini adalah langkah yang cukup sederhana (Arduino hanyalah mikrokontroler Atmel AVR konvensional tetapi dengan papan khusus dan bootloader), tetapi merupakan langkah besar untuk menjual / memberikan proyek kepada teman-teman. Toolchain juga serupa: Anda menggunakan avr-gcc atau avr-g ++ dengan hubungannya dengan utilitas pemrograman untuk menginstal program Anda.
sumber