Cara Memprogram dan Mengontrol Arduino Dengan Python

Cara Memprogram dan Mengontrol Arduino Dengan Python

Python telah mengambil alih dunia coding. Bersamaan dengan munculnya bahasa baru ini, kancah elektronik DIY juga berkembang. Papan pengembangan dan komputer papan tunggal dari perusahaan seperti Arduino dan Raspberry Pi telah mengubah cara orang membuat peralatan elektronik buatan rumah. Bukankah luar biasa jika Anda bisa memprogram Arduino dengan Python?





dapatkah Anda memperbaiki piksel yang mati?

Tidak ada perasaan yang lebih baik daripada menggabungkan dua hal keren. Sayangnya, tidak mungkin untuk secara langsung memprogram Arduino dengan Python, karena papan tidak memiliki opsi untuk interpretasi bahasa di papan. Apa yang mungkin, bagaimanapun, adalah kontrol langsung atas USB menggunakan program Python.





Artikel ini akan menunjukkan kepada Anda cara mengatur Arduino UNO (meskipun papan Arduino apa pun yang kompatibel dapat bekerja di sini) untuk diprogram dan dikendalikan dari baris perintah menggunakan program Python. Tutorial ini ditulis untuk Windows 10, tetapi juga berfungsi untuk Mac dan Linux. Anda bahkan dapat menggunakan alur kerja ini untuk mengontrol Arduino langsung dari Raspberry Pi untuk pengalaman double-down-DIY terbaik.





Menyiapkan Arduino Anda untuk Python

Untuk proyek hari ini kita akan menggunakan Arduino Uno, bersama dengan antarmuka pyFirmata untuk Python. Anda dapat menggunakan hampir semua papan yang kompatibel dengan Arduino untuk ini, meskipun pada saat penulisan hanya Arduino Uno, Mega, Due dan Nano yang didukung oleh antarmuka pyFfirmata. Jika Anda sudah menjadi guru Python, Anda dapat menambahkan dukungan papan Anda sendiri ke pyFirmata -- pastikan untuk memperbarui GitHub mereka jika Anda melakukannya!

Jika Anda belum melakukannya, instal Arduino IDE. Jika Anda benar-benar baru di dunia mikrokontroler, kami panduan pemula untuk Arduino akan membantu Anda mendapatkan semuanya di tempat.



Hubungkan papan Arduino Anda, dan buka IDE. Pastikan Anda memilih papan dan port yang benar di Peralatan Tidak bisa. memuat StandarFirmata contoh sketsa dan unggah ke papan tulis. Ini akan memungkinkan Anda untuk mengontrol Arduino secara langsung selama terhubung ke komputer melalui USB. Asalkan sketsa diunggah ke papan Anda tanpa kesalahan, Anda siap untuk melanjutkan.

Python dan Kontrol Baris Perintah

Kami akan menggunakan Python 3.4 untuk mengontrol Arduino kami, karena modul yang akan Anda instal menetapkan ini sebagai versi terbaru yang kompatibel. Versi apa pun sebelum ini akan berfungsi dengan baik, dan versi yang lebih baru telah dilaporkan berfungsi. Anda dapat mengunduh Python 3.4 untuk Windows 10 dari Yayasan Perangkat Lunak Python lokasi. Jika Anda ingin menjalankan beberapa versi Python, panduan kami untuk lingkungan virtual Python akan dapat membantu Anda.





Setelah Anda menginstal Python, kami ingin menambahkannya ke variabel PATH sistem Anda. Ini akan memungkinkan kita menjalankan kode Python langsung dari Command Line tanpa harus berada di direktori tempat kode tersebut diinstal. Anda dapat melakukannya dengan membuka Panel kendali , mencari Lingkungan dan klik Edit variabel lingkungan sistem . Di bagian bawah jendela pilih Variabel Lingkungan . Ini akan memunculkan jendela ini:

Jika Anda sudah melihat JALUR dalam daftar, klik edit, dan tambahkan Python dan Python/Skrip direktori. Jika Anda tidak memiliki variabel PATH, klik baru dan tambahkan. Perhatikan bahwa Python diinstal langsung ke dalam C: di sini. Jika Anda menginstalnya di tempat lain, Anda harus memodifikasinya untuk mencerminkan hal ini. Klik OK kembali ke bawah rantai jendela, dan Anda hampir siap untuk mengontrol Arduino Anda dengan Python!





Minyak Ajaib

Anda memerlukan satu bagian terakhir dari teka-teki untuk membuat Python berbicara dengan baik dengan Arduino kami. Ini datang dalam bentuk antarmuka Python yang disebut pyFirmata . Antarmuka ini, dibuat oleh Tino de Bruijn adalah tersedia untuk diunduh dari github, meskipun Anda dapat menginstalnya langsung dari baris perintah dengan mengetik:

pip install pyfirmata

Semua baik-baik saja, itu harus menginstal dan terlihat seperti ini:

Jika gagal, lanjutkan menambahkan Python ke Variabel Lingkungan bagian dan pastikan Anda telah memberikan jalur yang benar ke direktori Python Anda.

Membuatnya Terjadi

Sekarang semuanya sudah diatur, dan Anda dapat membuat program Python untuk Arduino Anda untuk mengujinya. Buka IDE pilihan Anda. Kami akan menggunakan Gerhana hari ini, tetapi Anda dapat dengan mudah menggunakan editor teks apa pun , atau bahkan IDE di awan .

Buat skrip baru, dan simpan sebagai blink.py . Melanggar tradisi dengan program LED berkedip standar, Anda akan membuat program yang meminta pengguna berapa kali mereka ingin LED berkedip sebelum menjalankannya. Ini adalah program singkat, yang Anda bisa Unduh disini jika Anda ingin langsung ke sana, tetapi mari kita pecahkan.

Pertama, Anda ingin mengimpor apa yang Anda butuhkan dari pyFirmata modul, bersama dengan standar Python Waktu modul.

Anda harus menginisialisasi disk ssd
from pyfirmata import Arduino, util
import time

Sekarang Anda ingin mengatur papan Arduino. Artikel ini mengasumsikan Anda menggunakan Arduino uno papan, meskipun beberapa papan Arduino lainnya didukung. Lihat github pyFirmata untuk detail tentang dukungan papan.

Periksa port COM mana yang Anda gunakan di Arduino IDE, dan masukkan ke dalam kode Anda sebagai variabel papan .

board = Arduino('COM3')

Sekarang Anda akan mengatur prompt pengguna. Mereka yang akrab dengan Python akan mengenali semuanya di sini. Anda mencetak pertanyaan ke layar menggunakan memasukkan fungsi, dan menyimpan jawabannya sebagai variabel. Setelah pengguna memberikan nomor, program melaporkan kembali berapa kali LED akan berkedip.

loopTimes = input('How many times would you like the LED to blink: ')
print('Blinking ' + loopTimes + ' times.')

Untuk membuat LED berkedip beberapa kali, Anda menggunakan a untuk lingkaran . Jika Anda baru mengenal Python , berhati-hatilah dengan lekukan, karena tidak seperti bahasa lain, spasi adalah bagian dari sintaks. Perhatikan bahwa pin 13 adalah LED onboard untuk Arduino Uno, Anda perlu memodifikasi ini jika papan Anda berbeda.

for x in range(int(loopTimes)):
board.digital[13].write(1)
time.sleep(0.2)
board.digital[13].write(0)
time.sleep(0.2)

Anda akan melemparkan loopTimes variabel ke integer di sini, karena input dari pengguna akan secara otomatis disimpan sebagai string. Dalam demo sederhana ini, kami mengasumsikan pengguna akan memasukkan nilai numerik. Entri lain seperti 'delapan' akan menimbulkan kesalahan.

Simpan skrip Anda, dan buka Prompt Perintah .

Lampu Berkedip dan Wahyu Lainnya

Semuanya sudah siap, yang perlu Anda lakukan hanyalah menavigasi ke tempat skrip berada dan menjalankannya. Lakukan ini dengan mengetik cd [jalur ke direktori skrip] lalu mengetik python blink.py .

Semuanya baik-baik saja, program Anda akan dimulai dengan sedikit penundaan saat Arduino menginisialisasi, meminta Anda untuk nomor, dan kemudian berkedip berkali-kali menggunakan LED onboard.

Output program akan terlihat seperti ini:

Segera setelah Anda menekan enter setelah jumlah kedipan yang Anda pilih, Arduino akan menjalankan perintah Anda.

Awal Kecil

Proyek ini telah menjadi awal dari komunikasi antara Python dan papan Arduino. Pendekatan ini sangat berbeda dengan alur kerja biasa mengunggah skrip ke Arduino itu sendiri, namun ini membuka cara baru untuk bekerja dengan platform, terutama jika Anda menyukai bahasa pemrograman Python.

Jika Anda menggunakan Server Linux di rumah, metode komunikasi dengan papan Arduino ini dapat memperluas server itu menjadi sistem Otomasi Rumah DIY yang lengkap. Dengan menggabungkan skrip Python yang mengontrol mikrokontroler dengan sirkuit otomatisasi DIY , kotak penyimpanan NAS Anda dapat menjalankan serangkaian fungsi baru yang berguna.

cara menonaktifkan aplikasi yang tidak perlu di windows 10

Untuk menjadikannya pengalaman DIY terbaik, mengapa tidak? buat kotak NAS Anda sendiri dan menggunakannya untuk juga mengontrol peralatan Anda? Bayangkan betapa kerennya menekan tombol putar di server Plex Anda dan membuat lampu mati sendiri secara otomatis!

Apakah Anda sudah mengendalikan Arduino menggunakan Python? Apakah ada solusi luar biasa yang belum kita ketahui? Beri tahu kami di bagian komentar di bawah!

Membagikan Membagikan Menciak Surel 5 Tips untuk Meningkatkan Mesin VirtualBox Linux Anda

Bosan dengan kinerja buruk yang ditawarkan oleh mesin virtual? Inilah yang harus Anda lakukan untuk meningkatkan kinerja VirtualBox Anda.

Baca Selanjutnya
Topik-topik yang berkaitan
  • buatan sendiri
  • Pemrograman
  • Arduino
  • Otomatisasi Rumah
  • Python
Tentang Penulis Ian Buckley(216 Artikel Diterbitkan)

Ian Buckley adalah jurnalis lepas, musisi, pemain, dan produser video yang tinggal di Berlin, Jerman. Ketika dia tidak menulis atau di atas panggung, dia bermain-main dengan elektronik atau kode DIY dengan harapan menjadi ilmuwan gila.

More From Ian Buckley

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Klik di sini untuk berlangganan