Saya tidak terlalu mahir dengan Bahasa C dan saya bertanya-tanya apakah ada cara di mana python dapat digunakan untuk memprogram Arduino. Ini kemungkinan besar akan membutuhkan IDE yang berbeda untuk dapat men-debug skrip sendiri.
programming
python
JVarhol
sumber
sumber
Jawaban:
Akan sangat sulit untuk menjalankan segala jenis skrip Python langsung di Arduino. Alasannya adalah bahwa itu adalah bahasa yang ditafsirkan, jadi Anda akan membutuhkan penerjemah di papan selain skrip teks biasa. Mungkin tidak akan ada cukup memori untuk semua itu.
Taruhan terbaik Anda mungkin akan menemukan cara untuk mengkompilasi skrip Python ke kode mesin asli (yang merupakan cara kerja C / C ++). Saya percaya ada proyek di sekitar untuk melakukan sesuatu seperti itu untuk platform lain, tetapi (sejauh yang saya tahu) tidak ada yang berhasil untuk Arduino.
Anda mungkin menemukan beberapa informasi yang lebih berguna tentang pertanyaan ini di Stack Overflow: Apakah ada cara untuk "mengkompilasi" kode Python ke Arduino (Uno) .
sumber
Ya, sangat mungkin untuk memprogram Arduino menggunakan Python. Salah satu proyek semacam itu di Github adalah Python Arduino Prototyping API v2 . Ini memberikan fungsionalitas yang sangat mendasar seperti I / O digital dan I / O analog.
Ini dapat digunakan untuk proyek yang sangat sederhana.
* Proyek ini sedikit meretas di "pemrograman" papan menggunakan koneksi serial. Ini melewati perintah melalui koneksi serial ke sketsa yang berjalan di papan yang kemudian "mengeksekusi" perintah Python.
sumber
Ada proyek yang membawa mesin virtual Python ke pengontrol mikro, termasuk Arduino Mega .
Berikut adalah kutipan dari README Ardunio Mega , yang memberikan kesan seperti apa ini (walaupun, saya belum menguji ini!):
sumber
Saya telah menggunakan pyserial dengan sukses besar dalam mengendalikan pin pada Arduino. Workstation Anda (laptop, dll) menjalankan skrip python yang kemudian berkomunikasi secara real time ke Arduino.
Ini tidak sama dengan menjalankan skrip langsung pada Arduino tapi saya melakukan sedikit lebih dari yang saya pikir Arduino dapat menangani (beberapa analisis musik, memukul api REST, dll).
sumber
Pilihan lain untuk dipertimbangkan adalah Arduino Yun . Selain chip AVR yang dimiliki kebanyakan Arduino, ia juga termasuk chip MIPS yang menjalankan Linux. Karena ini adalah linux, Anda dapat dengan mudah menjalankan kode python, dan paket pure-python dapat dengan mudah diinstal.
Namun, semua kemampuan input / output yang menarik adalah pada chip AVR, bukan pada chip MIPS. Proyek-proyek seperti Autobahn dan LininoIO memecahkan masalah ini dengan menjalankan program khusus pada chip AVR yang melakukan operasi I / O di bawah instruksi dari chip MIPS.
sumber
Kami tahu ini adalah masalah terbuka dalam pemrograman Arduino dan di dunia tertanam pada umumnya. Ada berbagai solusi yang tersedia di pasaran seperti MicroPython tetapi sebagian besar dari mereka didedikasikan untuk papan tertentu dan tidak memungkinkan untuk menjaga sistem secara real-time. Kami sedang mengerjakan solusi! VIPER adalah Mesin Virtual Python untuk Arduino DUE dan semua arsitektur ARM 32 bit yang berjalan di atas sistem operasi waktu-nyata. Ini berarti Anda dapat mengembangkan skrip Python yang dapat dieksekusi oleh Arduino DUE, UDOO, Spark (semua papan) dan juga pada papan nukleus ST yang baru. Apalagi jika Anda membutuhkan kinerja tinggi dan Anda terampil dalam C Anda dapat mengembangkan modul real-time untuk VIPER yang dapat dipanggil dan dikelola oleh skrip Python.
Anda dapat melihat VIPER beraksi di sini http://bit.ly/kickviper
sumber
Anda dapat belajar dari C (AVR) bagaimana sensor bekerja tetapi membutuhkan lebih banyak waktu. Arduino IDE Code dan Python Code untuk Arduino menggunakan fungsi C Code untuk mempermudah. Python dan Arduino IDE jika menggunakan Firmata mereka menggunakan komunikasi serial dan Anda pikir Anda membuat kode sendiri.
sumber
Iya nih. Python dapat digunakan untuk memprogram Arduino, cukup dengan mengimpor pyfirmata, yang dapat menghubungkan arduino dengan Python.
sumber
Saya khawatir Arduino IDE tidak menggunakan bahasa C / C ++. Ini berasal dari Memproses IDE dan memiliki sintaksis yang mirip C / Java.
sumber