- Bahan yang Diperlukan:
- Memasang Python pada Komputer anda:
- Mendapatkan PySerial di Python:
- Program Arduino Python Pertama kami:
- Mengawal LED dengan Python dan Arduino:
Arduino selalu menjadi platform pembelajaran / pengembangan yang hebat dan mudah digunakan ketika datang ke pengembangan perkakasan sumber terbuka. Dalam dunia moden masa kini, setiap perkakasan dikuasakan oleh bahasa pengaturcaraan tujuan umum peringkat tinggi untuk menjadikannya lebih berkesan dan mesra pengguna. Salah satu bahasa itu ialah Python. Python adalah bahasa pengaturcaraan tahap tinggi yang ditafsirkan, berorientasikan objek, dengan semantik dinamik dengan struktur data binaan tingkat tinggi, digabungkan dengan penaipan dinamik dan pengikatan dinamik, menjadikannya sangat menarik untuk Pembangunan Aplikasi Cepat.
Menggabungkan kekuatan Arduino dan Python akan membuka banyak peluang kerana python mempunyai produktiviti yang meningkat dengan kemampuannya untuk berinteraksi dengan platform lain seperti openCV, Matlab dll. Oleh itu, dalam tutorial ini kita akan belajar bagaimana kita boleh memasang python pada komputer kita dan cara menggunakannya dengan Arduino untuk menukar LED Arduino on-board.
Oleh itu, Mari kita mulakan….
Bahan yang Diperlukan:
- Arduino Uno (atau mana-mana Papan Arduino)
- Komputer dengan sambungan Internet
Memasang Python pada Komputer anda:
Jelas langkah pertama dalam tutorial ini ialah memasang Python di komputer kita. Langkah-langkah yang dinyatakan di bawah hanya berlaku untuk pengguna windows yang menjalankan OS 32-bit atau 64-bit. Prosedur pemasangan untuk MAC dan Linux berbeza.
- Klik pada 32-bit Python-2.7.9 dan ini akan memasang 32-bit Python IDLE pada Komputer anda. Jangan memuat turun versi 64-bit atau versi yang dikemas kini kerana ia tidak memberikan sokongan untuk Perpustakaan Arduino kami. Walaupun komputer anda beroperasi pada 64-bit anda boleh menggunakan Python 32-bit itu sendiri.
- Buka fail exe yang dimuat turun dan ikuti arahannya. Jangan ubah direktori di mana python sedang dipasang. Ia akan menjadi C: \ Python27 secara lalai dan membiarkannya seperti itu.
- Semasa pemasangan berlangsung, anda mungkin mendapat peringatan dari anti-virus anda (jika ada) sekiranya demikian, klik izinkan.
Itu sahaja !, python berjaya dipasang di komputer kita. Anda boleh mengesahkannya dengan mencari "Python IDLE" di kotak carian Windows dan membukanya.
Semasa dibuka, anda harus mendapatkan skrin berikut. Tingkap ini disebut Shell Python dan kita akan menyebutnya sebagai " shell Python " dari sekarang.
Skrin ini dipanggil Shell Python. Anda boleh membuat kod secara langsung di sini dan mendapatkan output pada skrin yang sama atau membuat fail baru dan menulis program di sana dan mengesahkan program di sini. Kami kemudian akan mengetahui perincian membuat program python, buat masa ini mari kita periksa sama ada python berfungsi.
Untuk melakukannya, cukup ketik " cetak (1 + 1) " dan tekan enter. Anda akan melihat hasilnya dicetak seperti gambar di bawah.
Mendapatkan PySerial di Python:
Langkah seterusnya adalah memasang pyserial. PySerial adalah modul Python API yang digunakan untuk membaca dan menulis data bersiri kepada Arduino atau Microcontroller lain.
Klik pada Windows Pyserial untuk memuat turun PySerial. Muat turun yang dihasilkan akan menjadi fail exe yang dapat dipasang secara langsung. Jangan ubah tetapan semasa memasang. Biarkan ke direktori lalai dan tetapan lalai.
Sekarang, mari kita periksa sama ada PySerial dipasang dengan betul. Untuk melakukan ini, buka Python Shell sekali lagi dan taipkan
siri import . Sekiranya perpustakaan berjaya dipasang maka anda tidak seharusnya mendapat mesej ralat seperti yang ditunjukkan dalam gambar di bawah. Sekiranya anda mendapat sebarang kesilapan, hantarkannya di bahagian komen dan kami akan cuba menyelesaikannya.
Tutorial ini mengandaikan bahawa anda sudah biasa dengan Arduino dan mempunyai pengalaman dalam memuat naik projek ke Arduino. Oleh itu, marilah kita langsung memasuki program Python kami. Sekiranya anda seorang pemula dengan Arduino, periksa Projek Arduino kami dan mulakan dari LED Berkedip dengan Arduino.
Program Arduino Python Pertama kami:
Seperti yang dinyatakan sebelumnya, kami akan mengendalikan LED papan Arduino yang dibina menggunakan skrip Python. Mari kita mulakan dengan kod Arduino.
Program untuk Arduino:
Program lengkap untuk tutorial Arduino python ini diberikan di akhir halaman ini. Baca lebih lanjut untuk mengetahui bagaimana ia berfungsi.
Di dalam fungsi penyediaan, kita menginisialisasi komunikasi bersiri dengan kecepatan baud 9600 dan menyatakan bahawa kita akan menggunakan led built-in sebagai output dan menjadikannya rendah semasa program dimulakan. Kami juga telah menghantar mesej selamat datang ke python melalui cetakan bersiri seperti yang ditunjukkan di bawah:
persediaan tidak sah () {Serial.begin (9600); // memulakan COM bersiri pada 9600 baudrate pinMode (LED_BUILTIN, OUTPUT); // jadikan pin LED (13) sebagai output digitalWrite (LED_BUILTIN, RENDAH); Serial.println ("Hai !, Saya Arduino"); }
Di dalam fungsi gelung , kita membaca apa pun data yang masuk secara bersiri dan memberikan nilai pada "data" pemboleh ubah . Sekarang berdasarkan nilai pemboleh ubah ini ("data") kita menukar togel terpasang seperti yang ditunjukkan di bawah.
gelung void () {while (Serial.available ()) {data = Serial.read (); } jika (data == '1') digitalWrite (LED_BUILTIN, TINGGI); lain jika (data == '0') digitalWrite (LED_BUILTIN, RENDAH); }
Program untuk Python:
Program python lengkap untuk tutorial ini diberikan di akhir halaman ini. Baca lebih lanjut untuk mengetahui cara menulis dan menggunakan yang sama.
- Buka Python Shell anda (Python IDLE) dan klik Fail-> Baru
- Ini akan membuka fail teks baru di mana anda boleh menaip program anda.
- Sebelum kita menaip apa-apa mari kita simpan fail, oleh Ctrl + S. Taipkan sebarang nama dan klik simpan. Ini akan menyimpan fail anda secara automatik dalam pelanjutan ".py".
- Sekarang, ketik program atau tampal kod python yang diberikan di hujung halaman ini. Penjelasan untuk perkara yang sama diberikan di bawah dan akhirnya menjalankan program.
Dalam program kami, langkah pertama adalah mengimport pustaka bersiri dan waktu. Perpustakaan bersiri seperti yang disebutkan sebelumnya akan digunakan untuk membaca dan menulis data bersiri dan perpustakaan waktu akan digunakan untuk membuat kelewatan dalam program kami. Kedua perpustakaan ini boleh diimport dalam program kami menggunakan dua baris berikut:
import siri #Serial diimport untuk komunikasi waktu komunikasi Serial # Diperlukan untuk menggunakan fungsi kelewatan
Langkah seterusnya adalah menginisialisasi objek bersiri menggunakan perpustakaan bersiri kami. Dalam program ini kami telah menamakan objek bersiri kami sebagai "ArduinoSerial" . Dalam baris ini kita harus menyebutkan nama port COM yang menghubungkan Arduino kita dan pada kadar baud yang beroperasi seperti yang ditunjukkan di bawah.
ArduinoSerial = bersiri.Serial ('com18', 9600)
Catatan: Sangat penting untuk menyebut nama port COM yang betul. Ia boleh didapati dengan menggunakan Pengurus Peranti di komputer anda.
Sebaik sahaja objek bersiri diinisialisasi, kita harus menghentikan program selama dua saat agar komunikasi Serial dapat dibuat. Ini dapat dilakukan dengan menggunakan baris di bawah:
masa. tidur (2)
Sekarang kita boleh membaca atau menulis apa-apa dari / ke Dewan Arduino kami.
Baris berikut akan membaca apa sahaja yang datang dari Arduino dan akan mencetaknya di tetingkap shell
cetak ArduinoSerial.readline ()
Anda juga boleh menetapkan nilai pada pemboleh ubah dan menggunakannya untuk pengiraan.
Baris berikut akan menuliskan nilai parameter kepada Arduino Board.
ArduinoSerial.write ('1')
Baris ini akan menulis '1' ke Arduino. Anda boleh menghantar apa sahaja dari perpuluhan hingga rentetan menggunakan baris yang sama.
Sekarang, kembali ke program kami, di dalam loop sementara yang tidak terbatas, kami mempunyai baris berikut
var = raw_input () #get input dari cetakan pengguna "anda masukkan", var #print input untuk pengesahan jika (var == '1'): #jika nilainya adalah 1 ArduinoSerial.write ('1') #send 1 print ("LED ON ON") time.sleep (1) if (var == '0'): #jika nilainya adalah 0 ArduinoSerial.write ('0') #send 0 print ("LED OFF OFF") time tidur (1)
Garis var = raw_input akan mendapat nilai apa pun yang ditaip dalam skrip Shell dan memberikan nilai tersebut ke variabel var .
Kemudian, jika nilainya adalah 1 ia akan mencetak '1' secara bersiri ke Arduino dan jika 0 ia akan mencetak '0' secara bersiri ke Arduino. Kod dalam Program Arduino kami (dibincangkan di atas) kami akan menukar LED berdasarkan nilai yang diterima.
Setelah program lengkap selesai, skrip anda akan kelihatan seperti di bawah ini
Sekarang klik pada Run -> Run Module atau tekan F5 ini mungkin meminta anda menyimpan program dan kemudian akan melancarkannya.
Mengawal LED dengan Python dan Arduino:
Kerja projek ini agak maju. Muat naik program ke Arduino anda dan sahkan ia disambungkan ke port COM yang sama seperti yang disebutkan dalam program python. Kemudian Lancarkan program Python seperti yang disebutkan di atas.
Ini akan melancarkan skrip shell python seperti yang ditunjukkan di bawah. Jendela di sebelah kiri adalah tetingkap shell yang menunjukkan output dan jendela di sebelah kanan adalah skrip yang menunjukkan program.
Seperti yang anda lihat rentetan "Hai !, Saya Arduino" yang dimasukkan dalam program Arduino diterima oleh Python dan dipaparkan di jendela cangkangnya.
Apabila tetingkap shell meminta memasukkan nilai, kita dapat memasukkan 0 atau 1. Jika kita menghantar 1 LED di Arduino Board akan menyala dan jika kita menghantar 0 LED di Arduino Board kita akan mati. Menunjukkan hubungan yang berjaya antara Program Arduino kami dan Python.
Terdapat dua program yang diberikan di bawah, satu untuk dimuat dan dijalankan dari Arduino dan yang kedua dijalankan dari Python Shell di Windows.
Mudah-mudahan anda memahami projek ini dan dapat menjayakannya. Sekiranya tidak, hantarkan masalah anda di komen di bawah dan saya dengan senang hati akan membantu anda. Dalam projek seterusnya, kami akan belajar apa lagi yang dapat dilakukan dengan Python dan Arduino dengan meneroka modul python lain seperti Vpython, gamepython dan lain-lain.