Daftar isi
Memulai MicroPython
Apakah Anda tertarik dengan Internet of Things, otomatisasi rumah, dan perangkat yang terhubung?
Pernahkah Anda bertanya-tanya bagaimana rasanya membuat blaster, pedang laser, atau bahkan robot
Anda sendiri? Jika demikian, maka Anda beruntung! MicroPython dapat membantu Anda
melakukan semua hal itu dan lebih banyak lagi.
Semua itu berubah pada 2013 ketika Damien George meluncurkan kampanye Kickstarter . Damien,
seorang sarjana di Universitas Cambridge, adalah seorang programmer robot yang rajin. Dia ingin
memindahkan dunia Python dari mesin yang bekerja dengan kapasitas gigabyte ke kilobyte.
Kampanye Kickstarter-nya adalah upaya untuk mendukung perkembangannya sementara dia
mengubah bukti konsepnya menjadi implementasi yang telah selesai.
Banyak pengembang mengambil kesempatan, tidak hanya untuk menggunakan Python pada
mikrokontroler tetapi juga untuk mendapatkan versi awal dari perangkat keras referensi Damien
sendiri, yang dibuat khusus untuk tugas tersebut! Faktanya, pada akhir kampanye, Damien telah
melampaui target £15.000-nya. Berkat lebih dari 1.900 pendukung, dia hanya mencapai £100.000.
Namun, di dunia mikrokontroler, MicroPython adalah sistem operasinya. Pada dasarnya, ini berada
di atas prosesor dengan kecepatan clock kembali ke tahun 1980-an dan 90-an. MicroPython tidak
memiliki bantuan untuk menangani semua seluk-beluk eksekusi kode, IO, penyimpanan, booting, dan
sebagainya. Jika Anda ingin berinteraksi dengan perangkat keras, maka Anda memerlukan semua
kode untuk mengaktifkannya.
Namun entah bagaimana, Damien berhasil memasukkan implementasi Python yang kuat, berkinerja
tinggi, dan kompak ke dalam komputer mini ini. Itu membuka potensi dunia baru. Jika Anda tertarik
untuk mempelajari lebih lanjut tentang perbedaan antara CPython dan MicroPython, Anda dapat
melihat perincian lengkapnya di repo GitHub resmi .
Selama bertahun-tahun, MicroPython telah menarik para profesional dan penghobi dari platform lain
yang melihat potensi dan kenyamanan bahasa tersebut. Pengembang ini mungkin berasal dari
platform yang lebih matang, seperti Arduino atau PIC. Banyak yang menyadari manfaat
menggunakan MicroPython, serta menentukan Python dan MicroPython secara bersamaan, paling
tidak untuk pembuatan prototipe cepat dan waktu ke pasar yang lebih cepat.
Jadi, apakah MicroPython siap untuk pekerjaan yang serius dan kritis? ESA, Badan Antariksa Eropa,
tampaknya berpikir demikian! Mereka membantu mendanai pekerjaan Damien di MicroPython
karena mereka ingin menggunakan Python di luar angkasa. Anda akan semakin melihat banyak
penggemar dan pelajar yang kritis pindah ke dunia akademis, dan dari sana ke dunia elektronik
profesional. Pada saat itu, MicroPython akan benar-benar lepas landas.
Beberapa tahun yang lalu, BBC meluncurkan proyek Micro:Bit untuk mengajak lebih banyak anak
ke komputasi di luar aplikasi gaya kantor. Tujuan mereka adalah untuk mendapatkan papan
mikrokontroler ke tangan setiap siswa sekolah di Inggris. Damien, melalui tetangganya, memperoleh
salah satu dari papan ini dan dengan cepat menjalankan kodenya. Ribuan ruang kelas tiba-tiba
memiliki opsi untuk menjalankan Python dalam pelajaran mereka!
Sistem Tertanam – MicroPyThon Embedded System - Halaman 2
Pengenalan Sistem Tertanam
Gogor C. Setyawan Sistem Tertanam - Chapter I – Introduksi MicroPyThon 2023-2024-01
Baru-baru ini, Edublocks telah menggunakan Micro:Bit dan mengaktifkan pengalaman Python drag-
and-drop seperti Scratch. Hal ini memungkinkan lebih banyak anak untuk mengalami pemrograman
mikrokontroler dan robotika untuk pertama kalinya. Donasi Patreon mendukung pertumbuhan proyek
yang berkelanjutan.
2. Komputasi Fisik
Ketika berbicara tentang MicroPython, apa yang dimaksud dengan komputasi fisik ? Biasanya,
proyek Anda akan terdiri dari tiga elemen:
1. Input: Sebuah tombol, sinyal, peristiwa internet, atau pembacaan sensor menerima data.
2. Pemrosesan: Mikrokontroler memproses input dan memperbarui output.
3. Keluaran: Ini dapat dikirim dalam bentuk motor berputar, LED menyala, penghitung berubah,
pengiriman pesan, atau kejadian serupa.
Elemen-elemen ini biasanya akan dihubungkan dengan kabel dan ditenagai oleh beberapa sumber
daya.
Mikrokontroler melakukan hal-hal yang relatif sederhana hari demi hari, andal, dan dalam paket
yang ringkas. Mereka memampatkan CPU, memori, dan IO menjadi satu chip tujuan umum, daripada
membutuhkan seluruh papan chip yang bekerja sama untuk melakukan tugas. Kode yang mereka
jalankan disebut firmware , yang di-flash atau dibakar ke memori yang dapat ditulisi sebelum
dijalankan.
Sementara mereka yang tumbuh dengan mikrokomputer awal (seperti ZX81 dan Commodore Vic20)
mungkin menganggap chip ini sangat kuat, secara teknis, Anda memiliki lebih banyak daya yang
tersedia di jam tangan pintar Anda. Namun, mikrokontroler sangat berguna, meskipun daya
pemrosesan dan kemampuan memorinya terbatas. Banyak yang bisa dilakukan dengan orang-orang
kecil ini!
Pertama, bahasa ini lebih mudah diakses oleh pemula daripada bahasa pesaing, namun tetap cukup
kuat untuk kasus penggunaan industri. Anda dapat beralih dari mempelajari dasar-dasar hingga
melakukan pekerjaan nyata, dan dengan cepat.
Kedua, Python memungkinkan umpan balik yang cepat. Ini karena Anda dapat memasukkan perintah
secara interaktif dan mendapatkan respons menggunakan REPL . Anda bahkan dapat men-tweak kode
Anda dan menjalankannya segera, daripada mengulang melalui siklus kompilasi kode-unggah-
eksekusi .
Terakhir, kekayaan kode Python dan pengalaman di luar sana berarti Anda dapat melakukan beberapa
hal dengan lebih cepat dan mudah sebagai programmer Python. Saya menemukan pustaka permintaan
Python , penanganan string, dan alat untuk menangani JSON jauh lebih mudah digunakan di dunia
MicroPython daripada C++ , misalnya.
Menurut pendapat saya, MicroPython mengalahkan C++ dalam kemudahan penggunaan dan
kenyamanan . Sintaks C++ tidak mudah dipahami dengan segera. Terlebih lagi, kode perlu
dikompilasi dan kemudian ditransfer ke papan Anda sebelum Anda bisa mendapatkan hasilnya, jadi
Anda memerlukan kompiler yang berguna.
Sekarang, jelas, alatnya menjadi lebih baik, tetapi MicroPython masih memiliki keunggulan.
Meskipun C++ mungkin memiliki keunggulan kecepatan, MicroPython cukup cepat untuk sebagian
besar tujuan. Selain itu, jika Anda benar-benar membutuhkan C++, Anda bahkan dapat memanggil
kode C++ Anda dari MicroPython!
Sekali lagi, MicroPython cenderung cukup cepat. Jika Anda benar-benar membutuhkan daya tingkat
terendah itu, maka Anda dapat menambahkan perakit inline ke proyek MicroPython Anda.
Hari ini, kilau BASIC agak redup. Python dan bahasa berbasis blok lainnya telah menggantikannya
di ruang pendidikan, dan itu hampir tidak mempengaruhi industri teknologi. Python memiliki semua
keunggulan BASIC, tanpa ada batasan.
Namun, aspek terakhir itu sebenarnya bisa menjadi alasan untuk tidak memilih Pi dan memilih papan
mikrokontroler! Kemampuan untuk menjalankan aplikasi desktop dan multimedia sangat luar biasa,
terutama ketika proyek Anda mungkin membutuhkan daya mentah tersebut. Ini mungkin berlaku
untuk AI , aliran video, dan proyek basis data , misalnya.
Namun hal ini dapat menimbulkan masalah saat kasus penggunaan Anda memerlukan pemrosesan
waktu nyata . Jika Anda memerlukan pengaturan waktu yang sangat tepat, maka Anda tidak ingin
kode Anda menunggu sementara ia mengejar lusinan proses berbeda yang semuanya ingin dijalankan
pada waktu yang sama.
Jika Anda menginginkan input analog, maka Pi akan membutuhkan perangkat keras tambahan.
Sebaliknya, sebagian besar mikrokontroler yang mampu menjalankan MicroPython memiliki
setidaknya satu masukan analog, dan bahkan mungkin lebih. Selain itu, Pi tidak sekuat itu, dan
harganya bisa lebih mahal. Karena itu, mungkin lebih masuk akal secara finansial untuk
meninggalkan mikrokontroler di proyek Anda, daripada keseluruhan Pi.
Anda tidak harus memilih satu atau yang lain. Mungkin memasangkan Raspberry Pi dengan
mikrokontroler adalah solusi terbaik untuk proyek Anda. Misalnya, Anda dapat menggunakan Pi
untuk daya pemrosesan dan mikrokontroler untuk berinteraksi dengan perangkat keras.
Pyboard adalah salah satu papan dengan spesifikasi paling baik . Ini didasarkan pada STM32 dan
memiliki banyak GPIO. Ada juga slot SD, akselerometer, dan RTC, dengan kemampuan 168 MHz.
Jika Anda dapat menemukannya dalam stok, maka harganya sekitar $40 USD.
ESP32 adalah kakak dari ESP8266 . Ini meningkatkan daya dan kemampuan sambil menambahkan
Bluetooth ke rangkaian fitur, dengan sedikit biaya tambahan. Salah satu versi terbaik dari papan ini
adalah M5 Stack. Unit ini dilengkapi dengan speaker peizo, baterai, pembaca kartu, dan layar
berwarna.
Jika Anda berada di Inggris Raya, Anda mungkin sudah memiliki salah satu papan ini. Mereka
dibagikan kepada anak-anak sekolah dengan harapan dapat menginspirasi generasi pembuat kode
baru. Banyak papan yang terinspirasi oleh Micro:Bit mulai bermunculan, jadi popularitasnya pasti
akan meningkat!
Salah satunya adalah CircuitPython menawarkan dukungan untuk rangkaian perangkat keras
Adafruit. Perbedaan lainnya adalah kenyataan bahwa sebagian besar implementasi Adafruit
menampilkan papan yang muncul sebagai drive yang terhubung ke USB. Dalam kasus ini,
menambahkan kode Anda semudah menyeretnya ke disk.
Papan paling kaya fitur dari jajaran premium Adafruit adalah CircuitPlayground Express , dengan
add-on Crickit opsional. Saat Anda menggabungkan kedua papan ini, Anda akan memiliki pin,
sensor, driver motor, LED RGB, dan banyak lagi. Jika Anda sedang mencari solusi all-in-one, maka
inilah yang harus diperiksa.
Sayangnya, Adafruit telah kehilangan kompatibilitas dengan ESP8266, bahkan untuk papan Feather
berbasis ESP8266 mereka sendiri. Sebaliknya, mereka telah memilih untuk menggunakan ESP32
murni sebagai co-prosesor WiFi di rilis mendatang.
1.1.14 REPL
Dengan MicroPython, seperti halnya dengan Python, bahasa tersebut mungkin disertakan dengan
perangkat keras Anda, dan Anda memiliki opsi untuk bekerja dengannya secara interaktif. Ada dua
cara untuk mendapatkan sesi interaktif:
1. Gunakan koneksi terminal serial: Ini sering dilakukan melalui baris perintah, atau mungkin IDE .
2. Gunakan WebREPL: Ini adalah opsi untuk papan dengan WiFi.
Untuk mendapatkan REPL serial pada Mac, misalnya, Anda dapat menjalankan Layar program
terminal yang disertakan dan menentukan perangkat Anda dan baud rate:
Anda dapat menemukan perangkat Anda dengan mendaftarkan koneksi serial yang terpasang:
$ ls /dev/tty.*
Prosesnya mirip dengan apa yang akan Anda lakukan di terminal Linux.
Di Windows, Putty adalah aplikasi terminal yang populer. Ada juga yang namanya Istilah Tera. Apa
pun itu, cukup sambungkan ke port COM yang muncul saat Anda menyambungkan perangkat dan
pilih 115.200 sebagai baud rate Anda.
Setelah Anda memiliki koneksi REPL, Anda dapat memasukkan perintah seperti yang Anda lakukan
dari sesi interaktif Python Anda. Di MicroPython, antarmuka ini juga tempat Anda mungkin ingin
melakukan pekerjaan sederhana bergaya OS, seperti menghapus file atau membuat folder.
Ada alat baris perintah hebat lainnya untuk berinteraksi dengan papan MicroPython yang disebut
Ampy . Ini awalnya dikembangkan oleh Adafruit tetapi sekarang telah diambil alih oleh anggota
komunitas, karena Adafruit hanya berfokus pada perangkat keras mereka sendiri.
Untuk papan Micro:Bit dan CircuitPython, editor terbaik saat ini adalah Editor Mu dari Nicholas
Tollervey. Kalau tidak, awasi uPyCraft , yang tampaknya memiliki banyak janji dan sudah sangat
berguna.
Setelah Anda menyambungkan port serial yang benar dan memilih jenis perangkat, Anda akan dapat
menelusuri perangkat:
Jenis perangkat Anda adalah ESP8266, ESP32, atau Micro:Bit. Sekarang Anda dapat berinteraksi di
REPL!
BBC Micro:Bit muncul sebagai disk drive. Saat Anda menggunakan Mu atau editor berbasis web,
mereka akan menghasilkan file yang dapat Anda jatuhkan langsung ke disk tersebut. Jika Anda
menggunakan papan ESP8266 atau ESP32 dengan uPyCraft, Anda juga dapat menginstal Python
ESPTool dengan pip dan menyiapkan firmware papan Anda menggunakan itu.
Papan lain mungkin datang dengan MicroPython atau CircuitPython diinstal, atau bahkan
menggunakan installer drag-and-drop. Namun, papan semacam itu bisa rusak atau mengalami loop
tak terbatas. Pastikan Anda meluangkan waktu untuk melihat dokumentasi board Anda tentang cara
mengganti firmware.
1. Gunakan IDE Anda. Ini bisa berupa Mu, uPyCraft, atau yang serupa.
2. Gunakan alat baris perintah. Ini bisa berupa RShell, Ampy, atau yang serupa.
Saat perangkat yang menjalankan MicroPython melakukan booting, mereka akan mencari file
bernama boot.py. Jika file tersebut ditemukan, maka perangkat akan menjalankannya secara
otomatis. Anda juga dapat menjalankan .pyfile dari prompt REPL:
exec(open('my-program.py').read())
Faktanya, ini mirip dengan apa yang dilakukan uPyCraft saat Anda menjalankan Python yang telah
diedit. Ini mentransfer file ke papan Anda dan kemudian mengeksekusinya melalui REPL.
print("Hello World!")
import time
import machine
blueled = machine.Pin(2, machine.Pin.OUT)
# Blink 10 times
for i in range(1,11):
blueled.value(0)
time.sleep(0.5)
blueled.value(1)
time.sleep(0.5)
print("DONE!")
Anda mengimpor time, yang memungkinkan Anda menyisipkan penundaan waktu . Anda juga
mengimpor machine, modul yang memberi Anda akses mudah ke pin IO di papan Anda. Anda
menggunakan modul ini untuk menyiapkan objek bernama blueled, yang Anda definisikan sebagai
being Pin 2. (Di papan lain, mungkin saja Pin 16). Kemudian, Anda menetapkannya sebagai pin
keluaran. Anda akan melihat output berikut:
Anda mungkin memperhatikan bahwa pada ESP8266, LED menyala saat dimatikan dan mati saat
diberi nilai positif. Aneh, tapi benar!
Catatan: Sebagian besar papan akan memiliki satu atau lebih LED bawaan. Lihat dokumentasi untuk
papan spesifik Anda untuk informasi lebih lanjut.
Bagaimana jika Anda tidak memiliki LED bawaan, atau Anda ingin menyalakan LED yang tidak ada
di papan Anda? Anda memerlukan resistor dengan ukuran yang sesuai, seperti resistor 220ohm. Anda
harus menghubungkannya ke ground dan ke kaki pendek LED Anda. Positif, kaki panjang LED Anda
akan terhubung ke pin GPIO 2. Di papan Wemos D1 Uno, GPIO 2 disebut Pin Digital 9 di bagian
depan papan. Ini memiliki nomor GPIO di bawahnya.
Dalam hal LED eksternal, itu akan menyala ketika nilainya 1 atau pada :
Ini memungkinkan Anda membuat sinyal pulsa hidup dan mati . Saat Anda menyalakan dan
mematikan LED dengan sangat cepat berkali-kali dalam satu detik, tampaknya LED diatur ke
kecerahan tertentu karena cara kerja mata kita. Berikut tampilan kode Anda:
# Frequency in Hertz
pwm.freq(1)
Dalam kode baru ini, Anda menyetel kecerahan dan frekuensi kedip dalam Hertz, lalu membiarkan
perangkat keras mengambil alih.
Anda juga dapat menggunakan PWM untuk memudarkan dan mematikan LED:
# Frequency = 100hz
pwm.freq(100)
while 1:
# Brightness between 0 and 1023
for brightness in range (0, 1023, 100):
pwm.duty(brightness)
print(brightness)
time.sleep(0.1)
Jika Anda menggunakan LED onboard, maka cahayanya mungkin memudar dan kemudian masuk.
7. Kesimpulan
Tidak pernah semudah ini bagi Anda untuk memprogram robot, mikrokontroler, elektronik, dan
perangkat keras lainnya. Biasanya, untuk memprogram perangkat ini, Anda harus menggunakan
bahasa tingkat rendah seperti assembler atau C++, dan mengorbankan banyak fungsionalitas. Itu
semua berubah dengan diperkenalkannya MicroPython , versi Python 3 yang dijejalkan ke dalam
kapasitas kecil perangkat komputasi fisik yang lebih kecil!
Dalam materi ini, Anda terjun ke MicroPython dan dunia perangkat keras elektronik . Anda telah
belajar tentang sejarah MicroPython dan perbandingannya dengan platform lain. Anda juga melalui
alur kerja MicroPython, menerapkan kode ke papan Anda sendiri, dan menghasilkan efek dunia
nyata.
MicroPython terus berkembang. Pengembang di komunitas selalu menambahkan kode, alat, proyek,
dan materi baru. Tidak pernah ada waktu yang lebih menyenangkan untuk menjadi pengembang
MicroPython!