Daftar Isi:

Arduino IDE: Membuat Papan Kustom: 10 Langkah
Arduino IDE: Membuat Papan Kustom: 10 Langkah

Video: Arduino IDE: Membuat Papan Kustom: 10 Langkah

Video: Arduino IDE: Membuat Papan Kustom: 10 Langkah
Video: Tonton Sampai Habis !!! Belajar Arduino Di Jamin Bisa 2024, November
Anonim
Arduino IDE: Membuat Papan Kustom
Arduino IDE: Membuat Papan Kustom
Arduino IDE: Membuat Papan Kustom
Arduino IDE: Membuat Papan Kustom
Arduino IDE: Membuat Papan Kustom
Arduino IDE: Membuat Papan Kustom

Selama enam bulan terakhir saya telah menghabiskan banyak waktu untuk memindahkan perpustakaan yang berbeda ke papan Robo HAT MM1 yang dikembangkan oleh Robotics Masters. Ini mengarah pada penemuan banyak tentang perpustakaan ini, bagaimana mereka bekerja di belakang layar dan yang paling penting - apa yang harus dilakukan untuk menambahkan papan baru di masa depan.

Ini adalah yang pertama dari serangkaian penulisan yang akan saya lakukan untuk membantu orang lain yang ingin mem-port library untuk papan mereka. Banyak sumber informasi yang tidak jelas atau sulit dipahami oleh orang luar. Saya berharap untuk 'membongkar' dan menjelaskan bagaimana mencapai pelabuhan yang sukses untuk semua orang.

Hari ini, kita akan melihat Platform Arduino. Ini memiliki lebih dari 700.000 varian papan yang berbeda di seluruh dunia dan merupakan salah satu platform elektronik paling populer untuk pendidikan, industri, dan pembuat.

Saya hanya dapat menemukan sumber informasi yang sangat terbatas tentang cara melakukan ini setelah banyak Pencarian Google. Jadi saya pikir saya akan menulis tentang bagaimana saya melakukannya secara rinci.

Ini dia!

Langkah 1: Sebelum Anda Mulai

Sebelum Anda mulai dengan porting perpustakaan perangkat lunak atau firmware ke papan Anda, Anda harus mengetahui beberapa poin penting tentang teknologi yang Anda gunakan dan dapat menjawab pertanyaan di bawah ini.

  1. Apa prosesor yang Anda gunakan?
  2. Arsitektur apa yang digunakannya?
  3. Apakah saya memiliki akses ke lembar data untuk mikroprosesor ini?
  4. Apakah ada papan serupa di pasaran yang menggunakan mikroprosesor yang sama?

Ini sangat penting. Ini akan berdampak pada banyak aspek tentang bagaimana Anda mendekati proses pengembangan.

Papan Arduino biasanya menggunakan sejumlah jenis dan arsitektur prosesor. Yang paling umum adalah rentang ATMEGA menggunakan arsitektur AVR (Arduino Uno). Ada generasi baru Arduino menjadi lebih umum menggunakan prosesor SAMD (ARM) dan prosesor lain yang lebih kuat. Jadi penting untuk memeriksa mana yang Anda gunakan.

Lembar data untuk mikroprosesor sangat penting untuk memastikan bahwa papan merespons seperti yang diharapkan saat Anda mengkompilasi firmware. Tanpanya, Anda tidak akan dapat mengatur fungsi output pin yang benar atau mengkonfigurasi port serial.

Setelah Anda memiliki semua informasi yang Anda butuhkan tentang prosesor yang Anda gunakan, Anda dapat mulai melihat perangkat lunak dan memodifikasinya agar berfungsi untuk papan kustom Anda.

Langkah 2: Ikhtisar

Bagian tersulit dari setiap proyek adalah menemukan titik awal yang baik. Ini tidak berbeda. Saya berjuang untuk menemukan tutorial yang bagus dengan detail yang cukup tentang cara membuat papan khusus untuk Arduino. Sebagian besar tutorial menunjukkan kepada Anda cara 'menambahkan papan khusus' tetapi bukan cara 'membuat papan khusus'. Berikut adalah ringkasan singkat dari apa yang terlibat.

  1. Unduh Definisi Papan yang Ada dan Salin
  2. Memperbarui File Definisi (variant.h, varient.cpp)
  3. Buat Entri Papan (board.txt)
  4. Perbarui Versi Papan (platform.txt)
  5. Mempersiapkan Pemasangan (json)
  6. Memasang Papan di Arduino IDE

Setiap langkah akan dijelaskan secara rinci di bawah ini. Juga akan ada diskusi ekstensif tentang bagaimana setiap file berinteraksi satu sama lain untuk membantu memperjelas bagaimana semuanya bekerja di balik Arduino IDE.

Untuk tutorial ini, saya akan menunjukkan cara membuat papan kustom untuk prosesor SAMD. Lebih khusus lagi, SAMD21G18A - yang merupakan mikroprosesor yang digunakan pada papan Robo HAT MM1 yang saya porting.

Saya juga menganggap Anda sudah mengunduh Arduino IDE 1.8 atau yang lebih baru. Saya menggunakan Arduino 1.8.9 pada saat penulisan.

Langkah 3: Mengunduh Papan yang Ada

Mengunduh Papan yang Ada
Mengunduh Papan yang Ada
Mengunduh Papan yang Ada
Mengunduh Papan yang Ada
Mengunduh Papan yang Ada
Mengunduh Papan yang Ada

Langkah pertama adalah mengunduh papan Arduino varian terdekat yang cocok dengan papan Anda. Untuk papan SAMD, ini adalah Arduino Zero.

Sejak Arduino IDE 1.6, metode untuk mengunduh papan baru ke lingkungan adalah dengan menambahkan file JSON khusus yang disediakan oleh pengembang perangkat lunak dan kemudian memasang papan khusus menggunakan "Pengelola Papan". Versi Arduino IDE sebelumnya menggunakan metode berbeda yang tidak akan kita bahas hari ini. Kami akan membuat file JSON kami sendiri nanti dalam tutorial ini, namun, kami perlu menambahkan papan Arduino Zero menggunakan metode ini terlebih dahulu.

Beruntung bagi kami, papan yang ingin kami unduh tidak memerlukan file JSON karena file JSON sudah dibundel dengan Arduino IDE - jadi kami hanya perlu menginstal papan dari "Boards Manager".

Untuk melakukan ini, buka "Alat" lalu perluas menu "Papan". Di bagian atas menu "Board" akan menjadi "Boards Manager". Klik opsi menu ini untuk membuka Boards Manager.

(Lihat Gambar)

Ketika Boards Manager dibuka, ia akan melihat semua file JSON yang telah disimpannya di Arduino IDE dan kemudian mengunduh pengaturan dari file tersebut. Anda akan melihat daftar panjang papan Arduino yang tersedia yang dapat Anda instal.

(Lihat Gambar)

Kami hanya tertarik pada papan “Arduino SAMD Boards (32-bit ARM Cortex-M0+)” untuk tutorial ini, tetapi Anda dapat menyimpang dan memasang papan yang Anda butuhkan saat ini. Silakan cari dan pasang papan “Arduino SAMD Boards (32-bit ARM Cortex-M0+)”. Ini dapat dilakukan dengan mengklik teks dari daftar diikuti dengan tombol "Instal" di sisi kanan yang akan muncul setelah Anda mengklik teks. Ini akan memakan waktu beberapa menit untuk menginstal.

Untuk detail lebih lanjut memasang papan baru: Adafruit memiliki tutorial hebat di sini yang menjelaskan cara memasang papan Fitur M0 mereka.

Sekarang setelah file papan telah terinstal, kami dapat menyalinnya sehingga dapat dimodifikasi untuk papan kustom Anda.

Langkah 4: Menemukan dan Menyalin File Papan

Menemukan dan Menyalin File Papan
Menemukan dan Menyalin File Papan
Menemukan dan Menyalin File Papan
Menemukan dan Menyalin File Papan
Menemukan dan Menyalin File Papan
Menemukan dan Menyalin File Papan

Untuk Windows, File Papan berada (ingat untuk mengubah nama pengguna menjadi nama pengguna Anda):

C:\Users\username\AppData\Local\Arduino15\packages

Di folder ini, Anda harus masuk sedikit lebih dalam untuk mendapatkan file yang perlu Anda salin untuk dimodifikasi. Untuk tutorial ini kita akan pergi dan mendapatkan file board Arduino Zero yang akan diinstal (ingat untuk mengubah nama pengguna menjadi nama pengguna Anda):

C:\Users\username\AppData\Local\Arduino15\packages\arduino\hardware\samd

Salin folder bernomor versi yang terletak di direktori ini ke folder baru di folder Dokumen atau folder pilihan Anda. Untuk keperluan tutorial ini, saya akan meletakkannya di folder baru bernama 'papan kustom' di dalam Dokumen.

Folder tersebut berisi sejumlah folder dan direktori. Yang akan kita gunakan dicatat dalam tabel di tangkapan layar.

Langkah 5: Membuat Varian

Membuat Varian
Membuat Varian
Membuat Varian
Membuat Varian
Membuat Varian
Membuat Varian
Membuat Varian
Membuat Varian

Kami sekarang siap untuk mulai membuat entri papan kustom. Untuk tutorial ini, saya akan menggunakan Robo HAT MM1 sebagai contoh. Seperti disebutkan sebelumnya, ini adalah papan berbasis SAMD yang paling cocok dengan Arduino Zero build.

Kami akan mulai dengan masuk ke folder varian dan menyalin folder arduino_zero yang terletak di sana. Kami akan mengganti nama varian papan baru 'robohatmm1'. Anda dapat memanggil milik Anda apa pun yang Anda suka.

(Lihat Gambar)

Di dalam folder robohatmm1 akan ada dua pin yang kita perlukan untuk mulai mengedit: varian.cpp dan varian.h. Buka keduanya.

Ini butuh beberapa saat untuk saya, jadi saya akan menjelaskannya di sini untuk menghemat waktu Anda. File varian.cpp berisi larik pin yang sangat besar yang direferensikan di seluruh varian.h. Semua referensi pin di varian.h adalah referensi ke konfigurasi pin pada posisi tertentu dalam array varian.cpp.

(Lihat Tangkapan Layar dengan Dua File)

Jadi, sebagian besar pengeditan Anda akan terjadi di kedua file ini tetapi Anda perlu memastikan bahwa jika Anda mengubah urutan pin di variants.cpp - Anda harus mengubah referensi di file header (variants.h). Untuk Robo HAT MM1, saya hanya perlu mengubah beberapa pin dan fungsinya saja. Ini dilakukan di varians.h. Saya menambahkan beberapa pin PWM baru karena SAMD21 mampu menangani 12 saluran PWM. Saya juga menambahkan beberapa nama untuk Servos, Sinyal (bukan ADC/Digital) dan pemetaan khusus ke fungsi yang tepat - seperti SPI, UART, dan I2C.

Hal penting yang perlu diperhatikan adalah memeriksa ulang apakah referensi larik yang Anda gunakan untuk fungsi yang diuraikan dalam varians.h cocok dengan pin di varaints.cpp - yang sekarang akan kita lihat.

Variants.cpp adalah file yang sangat kuat dan penting. Itu melakukan semua kerja keras untuk mengatur pin agar sesuai dengan pengaturan perangkat keras. Cara termudah untuk menjelaskan ini adalah dengan contoh dan penjelasan dari setiap bagian.

(Lihat Tabel Dalam Tangkapan Layar)

Contoh (ekstrak dari variants.cpp)

{ PORTA, 22, PIO_SERCOM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // SDA

Ini adalah pin pertama dalam array variants.cpp untuk Robo HAT MM1. Tabel dari datasheet telah disediakan sebagai gambar (tabel abu-abu).

(Lihat Gambar)

Pin khusus ini digunakan untuk Fungsi Pin Data I2C. Melihat tabel, kita dapat melihat bahwa pin ini dapat digunakan sebagai pin I2C SDA (awal yang baik!). Pin tersebut diberi nama “PA22” yang merupakan kependekan dari PORTA pada pin 22. Langsung saja kita dapat mengatur PORT dan nomor pin untuk pin ini.

Hal selanjutnya yang perlu kita lakukan adalah mengatur pin sebagai port komunikasi serial. Pin memiliki komunikasi serial yang tersedia melalui fungsi C (PIO_SERCOM) menggunakan SERCOM 3 dan D menggunakan SERCOM5 (PIO_SERCOM_ALT). Untuk keperluan Robo HAT MM1, kami menggunakan SERCOM3 untuk komunikasi I2C. Ini ada di Fungsi C; alias. PIO_SERCOM untuk varians.cpp.

Karena kami berencana untuk hanya menggunakan pin ini sebagai SDA I2C, tidak perlu mengatur fungsi lainnya. Semuanya dapat diatur sebagai opsi “Tidak” atau “Tidak” dari tabel sebelumnya. Namun, jika kita memang ingin menggunakan fungsi lain - kita bisa menelusuri lembar data dan meletakkan semuanya di tempat yang benar. Itu semua ada di lembar data.

Memodifikasi file varian dapat memakan waktu. Hati-hati dan selalu periksa tiga kali.

Langkah 6: Buat Definisi Papan

Buat Definisi Papan
Buat Definisi Papan

Setelah Anda menyiapkan file varian, itu harus langsung dari sini. Sebagian besar pekerjaan akan menyalin dan menempel atau memodifikasi dan memperbarui file.

Dimulai dengan boards.txt.

(Lihat Gambar)

Anda akan ingin menyalin dan menempelkan definisi papan yang sudah ada di sana. Saya akan merekomendasikan Arduino Zero lagi.

Untuk mempermudah, hanya mengubah nama papan (baris pertama), usb_product, usb_manufacturer, dan varian (robohat). Anda dapat menyesuaikan argumen lain nanti agar sesuai dengan kebutuhan Anda - seperti bootloader khusus atau VID/PID USB yang berbeda untuk mengidentifikasi papan Anda.

Varian papan harus sesuai dengan nama yang diberikan ke folder yang dibuat di awal. Untuk tutorial ini saya menyebutnya 'robohatmm1'.

Juga disarankan untuk mengubah bagian pertama dari setiap baris agar sesuai dengan nama papan Anda. Di tangkapan layar telah diubah menjadi 'robo_hat_mm1'. Anda harus memilih nama untuk papan Anda dengan format yang sama.

Itu saja untuk boards.txt kecuali jika Anda ingin melakukan modifikasi lebih lanjut yang disebutkan di atas nanti.

Langkah 7: Perbarui Versi Papan

Perbarui Versi Papan
Perbarui Versi Papan

Di platform.txt ubah nama menjadi nama papan kustom Anda. Juga mengubah nomor versi. Ingat untuk apa Anda mengatur ini, kami akan membutuhkannya nanti.

Langkah 8: Buat File Paket JSON

Buat File Paket JSON
Buat File Paket JSON
Buat File Paket JSON
Buat File Paket JSON

Untuk memasang papan Anda di Arduino IDE, Anda harus membuat file JSON yang akan Anda impor. File JSON memberi tahu Arduino IDE di mana mendapatkan file untuk menginstal papan, paket tambahan apa yang diperlukan dan beberapa bit metadata lainnya.

Sangat penting bagi Anda untuk menyimpan file ini di luar folder yang baru saja kita kerjakan.

Sebagian besar file dapat disalin dan ditempelkan ke file Anda. Anda hanya perlu mengubah bagian "papan" dan metadata lainnya di bagian atas file. Lihat tangkapan layar untuk mengetahui apa yang harus diperbarui.

(Lihat Gambar)

  • Bagian Merah: Ini adalah metadata yang dapat digunakan pengguna untuk mencari bantuan. Ini memiliki relevansi teknis yang sangat sedikit.
  • Bagian Biru: Semua ini penting. Mereka menunjukkan di Arduino IDE. Nama, Arsitektur, dan Versi semuanya akan ditampilkan kepada siapa saja yang mencoba menginstal paket. Di sinilah Anda perlu meletakkan nomor versi dari platform.txt. Bagian biru kedua adalah daftar papan yang disertakan dalam paket. Anda bisa memiliki beberapa papan.
  • Bagian Hijau: Bagian ini membutuhkan penjelasan lebih lanjut.

(Lihat Tabel di Gambar)

Setelah Anda membuat file zip, mendapatkan checksum file zip dan ukuran file, Anda sekarang dapat mengunggah file zip ke suatu lokasi. Anda harus memasukkan URL itu ke bidang 'url'. Jika nama atau salah satu detail di atas salah, papan kustom Anda akan gagal dipasang.

Pastikan juga untuk mengunggah file package_boardname_index.json Anda ke lokasi publik di internet. GitHub adalah pilihan yang bagus.

File papan kustom Robo HAT MM1 dapat ditemukan di sini.

Langkah 9: Langkah Terakhir - Pasang Papan Kustom Anda

Langkah Terakhir - Pasang Papan Kustom Anda!
Langkah Terakhir - Pasang Papan Kustom Anda!
Langkah Terakhir - Pasang Papan Kustom Anda!
Langkah Terakhir - Pasang Papan Kustom Anda!

Semua berjalan dengan baik, Anda sekarang harus dapat memasukkan file JSON Anda di Arduino IDE dan menginstal papan kustom Anda.

Menyertakan file JSON itu mudah! Di Arduino IDE - cukup buka “File” > “Preferences” dan salin dan tempel lokasi (URL) package_boardname_index.json Anda ke bagian “Additional Boards Manager URLs” di bagian bawah menu Preferences.

(Lihat Gambar)

Kemudian tekan OK.

Jalankan instruksi dari atas untuk memasang papan baru jika Anda lupa. Ingatlah untuk mencari papan kustom Anda kali ini!

(Lihat Gambar)

Untuk detail lebih lanjut memasang papan baru: Adafruit memiliki tutorial hebat di sini yang menjelaskan cara memasang papan Fitur M0 mereka.

Langkah 10: Kesimpulan

Kesimpulan
Kesimpulan
Kesimpulan
Kesimpulan

Ini sangat menyenangkan membuat papan Arduino khusus. Masih banyak yang harus saya coba di masa depan (menambahkan port serial tambahan) tetapi ini merupakan pengalaman belajar yang luar biasa!

Pastikan untuk memeriksa kampanye Crowd Supply juga. Itu berakhir pada 11 Juni 2019.

www.crowdsupply.com/robotics-masters/robo-…

Saya harap ini membantu Anda atau Anda bersenang-senang membaca!

Terima kasih!

Direkomendasikan: