Memprogram banyak Arduino secara bersamaan dengan siaran nirkabel

9

Saya akan memiliki banyak perangkat berbasis mikrokontroler yang akan independen satu sama lain, tetapi semua akan menjalankan program yang sama.

Saya ingin mengunggah sebuah program ke semuanya bersamaan dengan siaran nirkabel. Idealnya pengguna akan mencolokkan pengontrol USB ke komputernya, dan mengunggah program dari lingkungan Arduino seolah-olah dia sedang memprogram satu perangkat.

Untuk mendapatkan ide yang lebih baik tentang apa yang saya bicarakan, silakan lihat video ini . Ini dicapai dengan mikrokontroler Atmel tetapi bootloader non-Arduino yang dibuat khusus.

Dari pencarian Google untuk "pemrograman inframerah Arduino" proyek yang menarik ini muncul . Kelemahan utama adalah bahwa tombol reset masih harus ditekan secara manual. Idealnya saya ingin perangkat berada dalam kondisi daya rendah secara default, dan bangun untuk menerima program ketika mereka merasakan sinyal dari controller. Namun, ini mungkin merupakan titik awal yang baik bagi saya.

Saya hanya ingin mendapatkan beberapa perspektif dari orang-orang yang akrab dengan Arduino, apakah mereka pikir ini layak sebelum saya terjun.

MGA
sumber
Platform mana yang Anda gunakan untuk mengunggah sketsa Anda?
Greenonline

Jawaban:

2

TL; DR -

Anda memiliki opsi BlueTooth atau XBee (antara lain: IR, misalnya?) Untuk pengunggahan nirkabel. Namun, saya percaya bahwa hanya satu papan dapat di-upload ke, pada suatu waktu, sehingga Anda akan perlu untuk siklus melalui papan satu per satu, lihat Pemrograman beberapa ATMegas / Arduinos sekaligus .

Saat mengunggah sketsa atau menggunakan programmer (untuk sketsa atau bootloader), perangkat lunak tidak hanya menulis kode, tetapi juga berkomunikasi dengan mikrokontroler.

Anda tidak dapat memprogram semuanya sekaligus. Tetapi Anda dapat memprogramnya satu per satu dengan beberapa cara otomatis.


Pertanyaan Anda adalah pertanyaan yang sangat menarik, dan mengajukan pertanyaan yang saya yakin tidak akan pernah saya pikirkan, tetapi akan sangat berguna dan menghemat tenaga kerja, terutama jika seseorang memiliki, seperti yang saya lakukan, banyak titik sensor yang dikontrol Arduino yang terletak di sekitar rumah. Inilah salah satu solusi yang agak tidak masuk akal yang mungkin patut dicoba.

Perangkat keras unggah nirkabel

Jika Anda menggunakan BlueTooth untuk mengunggah sketsa Anda secara nirkabel, maka solusi ini mungkin bisa digunakan, program unggahan nirkabel ke Arduino tanpa kabel USB . Perhatikan bahwa solusi ini mengikat pin D0 dan D1:

Tapi hati-hati karena mungkin tidak kompatibel dengan beberapa proyek yang perlu menggunakan D0 dan D1 sebagai perangkat keras UART TX, RX. Karena programmer nirkabel perlu secara permanen menempati dua pin.

Melihat itu, ia mempekerjakan Programmer Arduino Wireless kustom , yang Anda mungkin merujuk pada pertanyaan Anda. Namun, jangan tertipu oleh namanya, itu hanya perisai Bluetooth. Ini pada dasarnya adalah perangkat BT HC-05 (atau serupa), dibautkan ke Arduino, lihat juga Pengunggahan Nirkabel Bluetooth .

Atau, sebagai pengganti BlueTooth, Anda dapat menggunakan perangkat XBee , lihat Pemrograman Nirkabel Arduino . Keuntungan menggunakan XBees adalah Anda tidak harus melalui loop peranti baru (lihat di bawah), yang diperlukan saat menggunakan BT. Alih-alih, Anda hanya perlu melihat-lihat ID jaringan XBee.

Namun, selain itu, Anda perlu mengotomatiskan peralihan perangkat BT, memilih port yang sesuai dan mengunggah ke setiap Arduino secara bergantian, karena Anda tidak dapat menyiarkan sketsa . (Jika saya salah, maka tolong seseorang tolong perbaiki saya).

Memilih port dan mengunggah sketsa

Anda dapat menggunakan skrip bersama dengan versi baris perintah IDE Arduino, untuk memilih port yang terhubung dengan perangkat BT, sebelum setiap unggahan. Bagaimana Anda melakukan ini akan bervariasi untuk platform apa pun yang Anda kompilasi, lihat Baris perintah yang dikompilasi dan diunduh Arduino? Hal ini dapat dilakukan dengan menggunakan variabel lingkungan ARDUINO_COMPORT(lihat kemungkinan membangunnya baris perintah Windows yang sudah ketinggalan zaman ), atau opsi baris arduino cmd --port <portname>(lihat halaman manual ). Sketsa kemudian akan diunggah menggunakan opsi --upload <filename>. Anda bisa melakukan ini dalam satu gerakan:

arduino --upload --port <portname> FILE.ino

Perhatikan bahwa pada Windows Anda harus menggunakan arduino_debug.exe.

Atau Anda bisa menggunakan Ino , jika Anda tidak menggunakan PC Windows ... tapi itu mungkin membuat bagian selanjutnya, yang berurusan dengan perulangan lebih rumit dari yang seharusnya.

Memilih masing-masing Arduino (yaitu perangkat BT)

Selanjutnya, Anda perlu menambahkan loop ke skrip, yang memasangkan PC ke setiap perangkat BT secara bergantian dan selanjutnya memanggil Arduino IDE, untuk pemilihan port dan mengunggah. Sayangnya, ini tidak akan menjadi platform agnostik sama sekali, dan akan membutuhkan solusi berbeda untuk platform apa pun yang Anda gunakan. Lihatlah Bluetooth dari Command Line , tetapi untuk Windows Anda mungkin memerlukan perangkat alat Blue Tooth Command Line .

Pada OS X Anda mungkin sebaiknya menggunakan AppleScript, lihat Hubungkan ke perangkat bluetooth (iPhone) melalui baris perintah pada MacOSX , karena alat garis cmd untuk mengendalikan BT tampak sedikit - ada BlueUtil , lihat Bagaimana cara mengontrol nirkabel Bluetooth radio dari baris perintah? tapi itu hanya tampaknya mematikan BT. Namun, membautkan AppleScript ke skrip kontrol IDE Arduino yang lain dengan cepat membuat segalanya menjadi lebih kompleks, meskipun Anda bisa menempatkan perintah Arduino di dalam AppleScript, saya kira.

Greenonline
sumber
0

Anda dapat menggunakan ESP-LINK untuk memprogram Arduino melalui WiFi.

ESP8266 adalah MCU Wi-Fi murah sederhana yang dapat diprogram dengan Arduino IDE.

ESP-LINK adalah firmware untuk ESP8266 yang membuat ESP bertindak seperti koneksi serial (USB) ke Arduino.

Firmware dapat ditemukan di sini di ESP-LINK ESP8266 .

NccWarp9
sumber
0

Orang dapat menggunakan sesuatu seperti ini . Ini adalah bootloader khusus untuk memperbarui kode Arduino melalui modul radio NRF24L01 +. *

* Ini hanya bekerja di bawah mesin Linux.

Avamander
sumber