Cara Mengatur dan Mengawal Arduino Dengan Python

Cara Mengatur dan Mengawal Arduino Dengan Python

Python telah mengambil alih dunia pengekodan. Seiring dengan peningkatan bahasa baru ini, pemandangan elektronik DIY juga berkembang. Papan pembangunan dan komputer papan tunggal dari syarikat seperti Arduino dan Raspberry Pi telah mengubah cara orang membuat elektronik buatan rumah. Bukankah mengagumkan sekiranya anda dapat memprogram Arduino dengan Python?





perkhidmatan pengecualian perkhidmatan sistem kod tetingkap 10

Tidak ada perasaan yang lebih baik daripada menggabungkan dua perkara yang menarik. Sayangnya, mustahil untuk memprogram Arduino dengan Python secara langsung, kerana papan tidak mempunyai pilihan untuk pentafsiran bahasa di atas kapal. Apa yang mungkin dilakukan ialah kawalan langsung ke atas USB menggunakan program Python.





Artikel ini akan menunjukkan kepada anda cara menyiapkan Arduino UNO (walaupun mana-mana papan serasi Arduino dapat berfungsi 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 boleh menggunakan aliran kerja ini untuk mengendalikan Arduino secara langsung dari Raspberry Pi untuk pengalaman DIY double-down-ultimate.





Menyiapkan Arduino Anda untuk Python

Untuk projek hari ini kita akan menggunakan Arduino Uno, bersama dengan antara muka pyFirmata untuk Python. Anda boleh menggunakan hampir semua papan serasi Arduino untuk ini, walaupun pada saat menulis hanya Arduino Uno, Mega, Due dan Nano yang disokong oleh antara muka pyFfirmata. Sekiranya anda sudah menjadi guru Python, anda boleh menambahkan sokongan papan anda sendiri ke pyFirmata - pastikan anda mengemas kini GitHub mereka jika anda melakukannya!

Sekiranya anda belum melakukannya, pasang Arduino IDE. Sekiranya anda benar-benar baru dalam dunia mikrokontroler, kami panduan pemula untuk Arduino akan membantu anda mendapatkan segalanya.



Sambungkan papan Arduino anda, dan buka IDE. Pastikan papan dan port yang betul dipilih di Alat menu. Muatkan StandardFirmata contoh lakaran dan muat naik ke papan. Ini akan membolehkan anda mengawal Arduino secara langsung selagi ia disambungkan ke komputer melalui USB. Dengan syarat memuat naik sketsa ke papan anda tanpa sebarang kesalahan, anda sudah bersedia untuk meneruskannya.

Python dan Command Line Control

Kami akan menggunakan Python 3.4 untuk mengawal Arduino kami, kerana modul yang akan anda pasangkan menetapkan ini sebagai versi terkini yang serasi. Sebarang versi sebelum ini mesti berfungsi dengan baik, dan versi yang lebih baru dilaporkan berfungsi. Anda boleh memuat turun Python 3.4 untuk Windows 10 dari Yayasan Perisian Python tapak. Sekiranya anda ingin menjalankan pelbagai versi Python, panduan kami untuk persekitaran maya Python akan dapat membantu anda.





Setelah anda memasang Python, kami ingin menambahkannya ke pemboleh ubah PATH sistem anda. Ini akan membolehkan kita menjalankan kod Python secara langsung dari Command Line tanpa perlu berada di direktori yang dipasang. Anda boleh melakukannya dengan membuka Panel kawalan , mencari Persekitaran dan klik pada Edit pemboleh ubah persekitaran sistem . Di bahagian bawah tetingkap pilih Pemboleh ubah Persekitaran . Ini akan memunculkan tetingkap ini:

Sekiranya anda sudah melihat PATH dalam senarai, klik edit, dan tambahkan anda Python dan Python / Skrip direktori. Sekiranya anda tidak mempunyai pemboleh ubah PATH, klik baru dan tambahkannya. Perhatikan bahawa Python dipasang terus ke C: di sini. Sekiranya anda memasangnya di tempat lain, anda perlu mengubahnya untuk menunjukkan ini. Klik OK kembali ke rantai tingkap, dan anda hampir bersedia untuk mengawal Arduino anda dengan Python!





Grease Ajaib

Anda memerlukan satu bahagian teka-teki terakhir untuk membuat Python bercakap dengan baik dengan Arduino kami. Ini datang dalam bentuk antara muka Python yang dipanggil pyFirmata . Antara muka ini, yang dibuat oleh Tino de Bruijn adalah tersedia untuk dimuat turun dari github, walaupun anda boleh memasangnya terus dari baris arahan dengan menaip:

pip install pyfirmata

Semuanya sihat, ia harus dipasang dan kelihatan seperti ini:

Sekiranya gagal, tambah Python ke Pembolehubah Persekitaran bahagian dan pastikan anda telah memberikan jalan yang betul ke direktori Python anda.

Menjadikannya Berlaku

Sekarang semuanya sudah siap, dan anda boleh membuat program Python untuk Arduino anda untuk mengujinya. Buka IDE pilihan anda. Kami akan menggunakan Gerhana hari ini, tetapi anda boleh menggunakan penyunting teks dengan mudah, atau bahkan IDE di awan.

Buat skrip baru, dan simpan sebagai blink.py . Melanggar tradisi dengan program LED berkedip standard, anda akan membuat program yang meminta pengguna untuk berapa kali mereka mahu LED berkelip sebelum menjalankannya. Ini adalah program pendek, yang anda boleh muat turun di sini jika anda mahu terus ke sana, tetapi mari kita memecahkannya.

Pertama, anda mahu mengimport apa yang anda perlukan dari pyFirmata modul, bersama dengan Python standard Masa modul.

tatal dua jari tidak berfungsi tetingkap 10
from pyfirmata import Arduino, util
import time

Sekarang anda mahu menyiapkan papan Arduino. Artikel ini menganggap anda menggunakan Arduino uno papan, walaupun beberapa papan Arduino lain disokong. Rujuk ke pyFirmata github untuk perincian mengenai sokongan papan.

Periksa port COM mana yang anda gunakan di Arduino IDE, dan masukkan ke dalam kod anda sebagai pemboleh ubah papan .

board = Arduino('COM3')

Sekarang anda akan menetapkan arahan pengguna. Mereka yang mengenali Python akan mengenali semua perkara di sini. Anda mencetak soalan ke layar menggunakan input berfungsi, dan simpan jawapannya sebagai pemboleh ubah. Setelah pengguna memberikan nombor, program akan melaporkan berapa kali LED akan berkelip.

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

Untuk menjadikan LED berkelip berkali-kali sesuai, anda menggunakan a untuk gelung . Jika anda adalah baru untuk Python , berhati-hati dengan lekukan, kerana tidak seperti bahasa lain, ruang adalah sebahagian daripada sintaks. Perhatikan bahawa pin 13 adalah LED onboard untuk Arduino Uno, anda perlu mengubahnya jika papan anda berbeza.

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 membuang gelung Masa berubah menjadi bilangan bulat di sini, kerana input dari pengguna akan disimpan secara automatik sebagai rentetan. Dalam demo sederhana ini, kami menganggap pengguna akan memasukkan nilai berangka. Sebarang entri lain seperti 'lapan' akan menimbulkan kesilapan.

Simpan skrip anda, dan buka Arahan prompt .

Lampu Berkelip dan Petikan Lain

Segala-galanya sudah siap, yang perlu anda lakukan ialah menavigasi ke mana skrip berada dan menjalankannya. Lakukan ini dengan menaip cd [jalan ke direktori skrip] dan kemudian menaip python blink.py .

Semuanya berjalan lancar, program anda akan dimulakan dengan sedikit kelewatan ketika Arduino memulakan, meminta nombor, dan kemudian berkedip berkali-kali menggunakan LED onboard.

Output program akan kelihatan seperti ini:

Sebaik sahaja anda menekan enter setelah sekelip mata yang anda pilih, Arduino harus melaksanakan pesanan anda.

Permulaan Kecil

Projek ini telah menjadi permulaan untuk berkomunikasi antara Python dan papan Arduino. Pendekatan ini sangat berbeza dengan aliran kerja biasa memuat naik skrip ke Arduino itu sendiri, namun ia membuka cara baru untuk bekerja dengan platform, terutama jika anda menyukai bahasa pengaturcaraan Python.

Sekiranya anda menggunakan a Pelayan Linux di rumah, kaedah berkomunikasi dengan papan Arduino dapat memperluas pelayan itu ke dalam sistem Automasi Rumah DIY yang lengkap. Dengan menggabungkan skrip Python yang mengendalikan mikrokontroler dengan litar automasi DIY, kotak penyimpanan NAS anda dapat menggunakan sekumpulan fungsi baru yang baru.

permintaan peranti penerangan peranti usb tidak dikenali gagal

Untuk menjadikannya pengalaman DIY terbaik, mengapa tidak bina kotak NAS anda sendiri dan menggunakannya untuk juga mengawal peralatan anda? Bayangkan betapa seronoknya tekan bermain di pelayan Plex anda dan biarkan lampu dimatikan secara automatik!

Adakah anda sudah mengawal Arduino menggunakan Python? Adakah terdapat penyelesaian yang luar biasa yang belum kita ketahui? Beritahu kami di bahagian komen di bawah!

Berkongsi Berkongsi Tweet E-mel 5 Petua untuk Meningkatkan Mesin Linux VirtualBox Anda

Bosan dengan prestasi buruk yang ditawarkan oleh mesin maya? Inilah yang harus anda lakukan untuk meningkatkan prestasi VirtualBox anda.

Baca Seterusnya
Topik-topik yang berkaitan
  • DIY
  • Pengaturcaraan
  • Arduino
  • Automasi Rumah
  • Python
Mengenai Pengarang Ian Buckley(216 Artikel Diterbitkan)

Ian Buckley adalah wartawan bebas, pemuzik, pemain dan penerbit video yang tinggal di Berlin, Jerman. Ketika dia tidak menulis atau di atas pentas, dia bermain-main dengan elektronik DIY atau kod dengan harapan menjadi saintis gila.

Lagi Dari Ian Buckley

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan