Isi kandungan:

Arduino IDE: Membuat Papan Custom: 10 Langkah
Arduino IDE: Membuat Papan Custom: 10 Langkah

Video: Arduino IDE: Membuat Papan Custom: 10 Langkah

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

Selama enam bulan yang lalu saya telah menghabiskan banyak masa untuk memindahkan perpustakaan yang berlainan ke papan Robo HAT MM1 yang dibangunkan oleh Robotics Masters. Ini telah menyebabkan banyak maklumat mengenai perpustakaan ini, bagaimana mereka berfungsi di belakang tabir dan yang paling penting - apa yang perlu dilakukan untuk menambahkan papan baru di masa depan.

Ini adalah yang pertama dalam siri penulisan yang akan saya lakukan untuk membantu orang lain yang ingin memindahkan perpustakaan untuk papan mereka. Banyak sumber maklumat boleh kabur atau sukar difahami oleh orang luar. Saya berharap dapat ‘demystify’ dan menerangkan cara mencapai port yang berjaya untuk semua orang.

Hari ini, kita akan melihat Platform Arduino. Ia mempunyai lebih dari 700, 000 varian papan yang berbeza di seluruh dunia dan merupakan salah satu platform elektronik yang paling popular untuk pendidikan, industri dan pembuatnya.

Saya hanya dapat mencari sumber maklumat yang sangat terhad mengenai cara melakukannya setelah banyak Carian Google. Jadi saya fikir saya akan menulis tentang bagaimana saya melakukannya secara terperinci.

Ini dia!

Langkah 1: Sebelum Anda Memulakan

Sebelum anda memulakan dengan membawa perpustakaan perisian atau firmware ke papan anda, anda mesti mengetahui beberapa perkara penting mengenai teknologi yang anda gunakan dan dapat menjawab soalan di bawah.

  1. Pemproses apa yang anda gunakan?
  2. Seni bina apa yang digunakannya?
  3. Adakah saya mempunyai akses ke lembar data untuk mikropemproses ini?
  4. Adakah terdapat papan serupa di pasaran yang menggunakan mikropemproses yang sama?

Ini sangat penting. Ini akan mempengaruhi banyak aspek bagaimana anda mendekati proses pembangunan.

Papan Arduino biasanya menggunakan sebilangan jenis jenis dan arkitek pemproses. Yang paling biasa adalah rangkaian ATMEGA menggunakan seni bina AVR (Arduino Uno). Terdapat generasi Arduino yang lebih baru menjadi lebih biasa menggunakan pemproses SAMD (ARM) dan pemproses lain yang lebih berkuasa. Oleh itu, penting untuk memeriksa mana yang anda gunakan.

Lembar data untuk mikropemproses sangat penting untuk memastikan bahawa papan bertindak balas seperti yang diharapkan semasa anda menyusun firmware. Tanpa itu, anda tidak akan dapat menetapkan fungsi output pin yang betul atau mengkonfigurasi port bersiri.

Setelah anda mempunyai semua maklumat yang diperlukan mengenai pemproses yang anda gunakan, anda boleh mula melihat perisian dan mengubahnya agar berfungsi untuk papan ubahsuaian anda.

Langkah 2: Gambaran keseluruhan

Bahagian paling sukar dari mana-mana projek adalah mencari titik permulaan yang baik. Ini tidak berbeza. Saya berjuang untuk mencari tutorial yang baik dengan perincian yang cukup mengenai cara membuat papan ubahsuaian untuk Arduino. Sebilangan besar tutorial menunjukkan kepada anda cara ‘menambahkan papan ubahsuaian’ tetapi bukan bagaimana ‘membuat papan ubahsuaian’. Berikut adalah ringkasan ringkas mengenai apa yang terlibat.

  1. Muat turun Definisi dan Salinan Papan Sedia Ada
  2. Mengemas kini Fail Definisi (variant.h, varient.cpp)
  3. Buat Entri Papan (board.txt)
  4. Kemas kini Versi Papan (platform.txt)
  5. Bersedia untuk Memasang (json)
  6. Memasang Papan di Arduino IDE

Setiap langkah akan dijelaskan secara terperinci di bawah. Terdapat juga perbincangan yang luas mengenai bagaimana setiap fail berinteraksi antara satu sama lain untuk membantu menjelaskan bagaimana semuanya berfungsi di belakang Arduino IDE.

Untuk tutorial ini, saya akan menunjukkan kepada anda cara membuat papan khas untuk pemproses SAMD. Lebih khusus lagi, SAMD21G18A - yang merupakan mikropemproses yang digunakan pada papan Robo HAT MM1 yang saya pasangkan.

Saya juga menganggap anda sudah memuat turun Arduino IDE 1.8 atau lebih baru. Saya menggunakan Arduino 1.8.9 pada masa penulisan.

Langkah 3: Memuat turun Papan Sedia Ada

Memuat turun Papan Sedia Ada
Memuat turun Papan Sedia Ada
Memuat turun Papan Sedia Ada
Memuat turun Papan Sedia Ada
Memuat turun Papan Sedia Ada
Memuat turun Papan Sedia Ada

Langkah pertama adalah memuat turun papan Arduino varian terdekat yang sepadan dengan papan anda. Untuk papan SAMD, ini adalah Arduino Zero.

Sejak Arduino IDE 1.6, kaedah untuk memuat turun papan baru ke dalam lingkungan adalah dengan menambahkan fail JSON khas yang disediakan oleh pembangun perisian dan kemudian memasang papan khusus menggunakan "Pengurus Papan". Versi sebelumnya Arduino IDE menggunakan kaedah berbeza yang tidak akan kita bincangkan hari ini. Kami akan membuat fail JSON kita sendiri dalam tutorial ini, tetapi kita perlu menambahkan papan Arduino Zero menggunakan kaedah ini terlebih dahulu.

Beruntung bagi kami, papan yang ingin kami muat turun tidak memerlukan fail JSON kerana fail JSON sudah dibundel dengan Arduino IDE - jadi kami hanya perlu memasang papan dari "Boards Manager".

Untuk melakukan ini, pergi ke "Alat" kemudian kembangkan menu "Papan". Di bahagian atas menu "Papan" akan terdapat "Pengurus Papan". Klik pada pilihan menu ini untuk memunculkan Boards Manager.

(Lihat Imej)

Apabila Pengurus Papan dibuka, ia akan melihat semua fail JSON yang telah disimpannya di Arduino IDE dan kemudian memuat turun tetapan dari fail tersebut. Anda mesti melihat senarai panjang papan Arduino yang tersedia yang boleh anda pasangkan.

(Lihat Imej)

Kami hanya berminat dengan papan "Arduino SAMD Boards (32-bit ARM Cortex-M0 +)" untuk tutorial ini, tetapi anda boleh menyimpang dan memasang papan yang anda perlukan pada ketika ini. Sila cari dan pasang papan "Arduino SAMD Boards (32-bit ARM Cortex-M0 +)". Ini dapat dilakukan dengan mengklik teks dari daftar diikuti dengan tombol "Pasang" di sebelah kanan yang akan muncul setelah Anda mengklik teks. Dipasang selama beberapa minit.

Untuk lebih terperinci memasang papan baru: Adafruit mempunyai tutorial hebat di sini yang menerangkan cara memasang papan Feature M0 mereka.

Setelah fail papan dipasang, kami dapat menyalinnya sehingga dapat diubah suai untuk papan ubahsuaian anda.

Langkah 4: Mencari dan Menyalin Fail Papan

Mencari dan Menyalin Fail Papan
Mencari dan Menyalin Fail Papan
Mencari dan Menyalin Fail Papan
Mencari dan Menyalin Fail Papan
Mencari dan Menyalin Fail Papan
Mencari dan Menyalin Fail Papan

Untuk Windows File Board terletak (ingat untuk menukar nama pengguna ke nama pengguna anda):

C: / Users / username / AppData / Local / Arduino15 / pakej

Dalam folder ini, anda harus pergi lebih dalam untuk mendapatkan fail yang perlu anda salin untuk diubah suai. Untuk tutorial ini kami akan pergi dan mendapatkan fail papan Arduino Zero yang akan dipasang (ingat untuk menukar nama pengguna ke nama pengguna anda):

C: / Users / username / AppData / Local / Arduino15 / package / arduino / hardware / samd

Salin folder bernombor versi yang terdapat di direktori ini ke folder baru di folder Dokumen atau folder pilihan anda. Untuk tujuan tutorial ini, saya akan memasukkannya ke dalam folder baru yang diberi nama ‘custom board’ di dalam Dokumen.

Folder mengandungi sejumlah folder dan direktori. Yang akan kita gunakan dicatatkan dalam jadual di tangkapan skrin.

Langkah 5: Membuat Varian

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

Kami sekarang sudah bersedia untuk mula membuat entri papan khas. Untuk tutorial ini, saya akan menggunakan Robo HAT MM1 sebagai contoh. Seperti yang disebutkan sebelumnya, ini adalah papan berasaskan SAMD yang paling hampir dengan bangunan Arduino Zero.

Kami akan bermula dengan masuk ke folder varian dan menyalin folder arduino_zero yang terdapat di sana. Kami akan menamakan semula varian papan baru 'robohatmm1'. Anda boleh memanggil apa sahaja yang anda mahukan.

(Lihat Gambar)

Di dalam folder robohatmm1 akan terdapat dua pin yang perlu kita mulai mengedit: variant.cpp dan variant.h. Buka kedua-duanya.

Saya memerlukan sedikit masa untuk bersenam, jadi saya akan menerangkannya di sini untuk menjimatkan masa anda. Fail variant.cpp mengandungi susunan pin yang sangat besar yang dirujuk di seluruh varian.h. Semua rujukan pin dalam varian.h adalah rujukan kepada konfigurasi pin pada kedudukan tertentu dalam array varian.cpp.

(Lihat Tangkapan Skrin dengan Dua Fail)

Oleh itu, sebahagian besar pengeditan anda akan berlaku di kedua-dua fail ini tetapi anda perlu memastikan bahawa jika anda mengubah susunan pin dalam variants.cpp - anda mesti mengubah rujukan dalam fail tajuk (variants.h). Untuk Robo HAT MM1, saya hanya perlu menukar beberapa pin dan fungsi. Ini dilakukan dalam varian.h. Saya menambah beberapa pin PWM baru kerana SAMD21 dapat mengendalikan 12 saluran PWM. Saya juga menambahkan beberapa nama untuk Servos, Signals (bukannya ADC / Digital) dan pemetaan khusus ke fungsi yang betul - seperti SPI, UART dan I2C.

Perkara penting yang perlu diperhatikan ialah periksa semula bahawa rujukan larik yang anda gunakan untuk fungsi yang digariskan dalam varian.h sesuai dengan pin di varaints.cpp - yang akan kita lihat sekarang.

Variants.cpp adalah fail yang sangat kuat dan penting. Ia melakukan semua kerja keras menetapkan pin agar sesuai dengan tetapan perkakasan. Kaedah termudah untuk menerangkan ini adalah dengan contoh dan penjelasan setiap bahagian.

(Lihat Jadual Dalam Tangkapan Skrin)

Contoh (ekstrak dari varian.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. Jadual dari lembar data telah disediakan sebagai gambar (jadual kelabu).

(Lihat Imej)

Pin khusus ini digunakan untuk Fungsi Pin Data I2C. Melihat jadual, kita dapat melihat bahawa pin ini dapat digunakan sebagai pin SDA I2C (permulaan yang baik!). Pin ini diberi nama "PA22" yang merupakan kependekan dari PORTA pada pin 22. Segera kita dapat menetapkan PORT dan nombor pin untuk pin ini.

Perkara seterusnya yang perlu kita lakukan ialah menetapkan pin sebagai port komunikasi bersiri. Pin ini mempunyai komunikasi bersiri yang tersedia melalui fungsi C (PIO_SERCOM) menggunakan SERCOM 3 dan D menggunakan SERCOM5 (PIO_SERCOM_ALT). Untuk tujuan Robo HAT MM1, kami menggunakan SERCOM3 untuk komunikasi I2C. Ini terdapat pada Fungsi C; aka. PIO_SERCOM untuk varian.cpp.

Oleh kerana kami merancang untuk hanya menggunakan pin ini sebagai SDA I2C, tidak perlu menetapkan fungsi lain. Semuanya dapat ditetapkan sebagai pilihan "Tidak" atau "Tidak" dari tabel sebelumnya. Namun, jika kita mahu menggunakan fungsi lain - kita dapat melintasi lembar data dan meletakkan semuanya ke ruang yang betul. Itu semua ada dalam lembar data.

Mengubah fail varian boleh memakan masa. Berhati-hati dan sentiasa melakukan pemeriksaan tiga kali ganda.

Langkah 6: Buat Definisi Papan

Buat Definisi Papan
Buat Definisi Papan

Sebaik sahaja anda menyediakan fail varian anda, fail tersebut akan dilanjutkan dari sini. Sebilangan besar karya akan menyalin dan menampal atau mengubah dan mengemas kini fail.

Bermula dengan papan.txt.

(Lihat Gambar)

Anda ingin menyalin dan menampal definisi papan yang sudah ada. Saya akan mengesyorkan Arduino Zero lagi.

Untuk kesederhanaan, ubah nama papan (baris pertama), produk usb, pengeluar usb, dan varian (robohat). Anda boleh menyesuaikan argumen lain di kemudian hari untuk memenuhi keperluan anda - seperti pemuat but khusus atau USB VID / PID yang berbeza untuk mengenal pasti papan anda.

Varian papan mesti sepadan dengan nama yang diberikan pada folder yang dibuat pada permulaan. Untuk tutorial ini saya menyebutnya 'robohatmm1'.

Sebaiknya ubah bahagian pertama setiap baris agar sesuai dengan nama papan anda. Dalam tangkapan skrin ia telah diubah menjadi 'robo_hat_mm1'. Anda harus memilih nama untuk papan anda dengan format yang sama.

Itu semua untuk board.txt melainkan jika anda ingin melakukan pengubahsuaian selanjutnya yang disebutkan di atas kemudian.

Langkah 7: Kemas kini Versi Papan

Kemas kini Versi Papan
Kemas kini Versi Papan

Di platforms.txt ubah nama menjadi nama papan adat anda. Tukar juga nombor versi. Ingat apa yang anda tetapkan ini, kami akan memerlukannya kemudian.

Langkah 8: Buat Fail Pakej JSON

Buat Fail Pakej JSON
Buat Fail Pakej JSON
Buat Fail Pakej JSON
Buat Fail Pakej JSON

Untuk memasang papan anda di Arduino IDE, anda perlu membuat fail JSON yang akan anda import. Fail JSON memberitahu Arduino IDE di mana mendapatkan fail untuk memasang papan, pakej tambahan apa yang diperlukan dan beberapa bit metadata yang lain.

Sangat penting anda menyimpan fail ini di luar folder yang baru sahaja kita jalankan.

Sebilangan besar fail boleh disalin dan ditampal ke dalam fail anda. Anda hanya perlu menukar bahagian "papan" dan metadata lain di bahagian atas fail. Lihat tangkapan skrin untuk perkara yang perlu dikemas kini.

(Lihat Gambar)

  • Bahagian Merah: Ini adalah metadata yang boleh digunakan pengguna untuk mencari pertolongan. Ia mempunyai kaitan teknikal yang sangat sedikit.
  • Bahagian Biru: Semua ini penting. Mereka dipaparkan di Arduino IDE. Nama, Senibina dan Versi semuanya akan ditunjukkan kepada sesiapa sahaja yang cuba memasang pakej. Di sinilah anda perlu meletakkan nombor versi dari platforms.txt. Bahagian biru kedua adalah senarai papan yang termasuk dalam bungkusan. Anda boleh mempunyai banyak papan.
  • Bahagian Hijau: Bahagian ini memerlukan penjelasan lebih lanjut.

(Lihat Jadual dalam Gambar)

Setelah anda membuat fail zip, mendapat checksum fail zip dan ukuran fail, anda kini dapat memuat naik fail zip ke lokasi. Anda perlu memasukkan URL tersebut ke dalam medan ‘url’. Sekiranya nama atau mana-mana butiran di atas tidak betul, papan adat anda akan gagal dipasang.

Pastikan juga memuat naik fail package_boardname_index.json ke lokasi awam di internet. GitHub adalah pilihan yang baik.

Fail papan ubahsuaian Robo HAT MM1 boleh didapati di sini.

Langkah 9: Langkah Akhir - Pasang Papan Tersuai Anda

Langkah Akhir - Pasang Papan Tersuai Anda!
Langkah Akhir - Pasang Papan Tersuai Anda!
Langkah Akhir - Pasang Papan Tersuai Anda!
Langkah Akhir - Pasang Papan Tersuai Anda!

Semua berjalan dengan baik, anda kini boleh memasukkan fail JSON anda di Arduino IDE dan memasang papan ubahsuaian anda.

Termasuk fail JSON itu mudah! Di Arduino IDE - pergi ke "File"> "Preferences" dan salin dan tampal lokasi (URL) package_boardname_index.json anda ke bahagian "Tambahan Boards Manager" di bahagian bawah menu Preferences.

(Lihat Gambar)

Kemudian tekan OK.

Jalankan arahan dari atas untuk memasang papan baru sekiranya anda terlupa. Ingatlah untuk mencari papan khas anda kali ini!

(Lihat Gambar)

Untuk lebih terperinci memasang papan baru: Adafruit mempunyai tutorial hebat di sini yang menerangkan cara memasang papan Feature M0 mereka.

Langkah 10: Kesimpulannya

Kesimpulannya
Kesimpulannya
Kesimpulannya
Kesimpulannya

Ini menyeronokkan membuat papan Arduino tersuai. Masih banyak untuk saya bereksperimen di masa depan (menambah port bersiri tambahan) tetapi ia merupakan pengalaman pembelajaran yang hebat!

Pastikan untuk melihat kempen Crowd Supply juga. Ia berakhir pada 11 Jun 2019.

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

Saya harap ini dapat membantu anda atau anda seronok membaca!

Terima kasih!

Disyorkan: