Belajar Microcontroller dengan MicroPython dan LumpyBoard
Microcontroller terdiri dari dua kata ‘Micro’ dan ‘Controller’. Kalau kita terjemahkan bisa jadi pengendali mikro/kecil.
Kalau menurut Wikipedia:
Pengendali mikro (bahasa Inggris: microcontroller) adalah sistem mikroprosesor lengkap yang terkandung di dalam sebuah chip. Mikrokontroler berbeda dari mikroprosesor serba guna yang digunakan dalam sebuah PC, karena di dalam sebuah mikrokontroler umumnya juga telah berisi komponen pendukung sistem minimal mikroprosesor, yakni memori dan antarmuka I/O, sedangkan di dalam mikroprosesor umumnya hanya berisi CPU saja.1
Jadi intinya seperti itu ya…
Microcontroller itu bukan CPU, tapi sebuah mikroprosesor yang dilengkapi dengan memori dan antarmuka IO untuk menghubungkan benda-benda yang akan dikendalikan.
Pada tutorial ini, kita akan menggunakan LumpyBoard sebagai papan microcontoller…
…dan kita akan mencoba mengendalikan atau membuat program untuk menyalakan lampu LED bawaan dari LumpyBoard.
Mari kita muali…
Teminologi yang Harus dipahami
Sebelum memulai, ada baiknya memahami beberapa terminologi berikut:
1. Python
Python adalah bahasa pemrograman tingkat tinggi yang akan kita gunakan untuk memrogram LumpyBoard.
Buat kamu yang belum paham bahasa pemrograman Python, kamu dapat mengikuti tutorial pemrograman Python di Petanikode.
2. MicroPython
MicroPython adalah impelemntasi dari python, atau dengan kata lain Python yang sudah dioptimasi untuk Microcontroller.
3. LumpyBoard
LumpyBoard adalah sebuah papan microcontroller yang dilengkapi dengan WiFi, Bluetooth, dan sudah terpasang custom firmware MicroPython sehingga bisa diprogram menggunakan bahasa pemrograman Python.
4. Picocom
Picocom adalah terminal emulator minimalis yang akan kita gunakan untuk mengakses MucroPython yang berada di LumpyBoard.
Persiapan dan Instalasi
Kita membutuhkan picocom
untuk masuk ke shell MicroPython
yang ada di dalam LumpyBoard.
Selain picocom
kita juga bisa pakai screen
dan minicom
.
Namun, pada tutorial ini, kita akan menggunakan picocom
saja.
Baiklah…
Silahkan instal picocom
dengan perintah berikut:
sudo apt install picocom
Tunggulah sampai prosesnya selesai…
Setelah itu, coba ketik perintah picocom --help
untuk memastikan
apakah picocom
sudah terinstal dengan benar atau tidak.
Jika tampil seperti ini…
…berarti picocom
sudah terinstal dengan benar dan siap digunakan.
Menyalakan Lampu LED LumpyBoard
Eksperimen pertama yang harus kita coba adalah menyalakan lampu LED. Lampu LED bisanya digunakan sebagai indikator.
Tungu dulu!
Apakah gak ada yang lebih seru lagi, misal mengendalikan robot gitu?
Menyalakan lampu LED adalah eksperimen yang paling sederhana dalam microcontroller.
Kamu harus paham ini dulu, baru bisa membuat eksperimen yang lebih kompleks seperti mengendalikan robot.
Tentu akan butuh beberapa pengetahuan lagi seperti elektronika, mekanika, kecerdasan buatan, dan sebagainya.
Baiklah, mari kita mulai eksperimen pertama.
Silahkan hubungkan LumpyBoard dengan laptop menggunakan kabel data.
LumpyBoard yang terhubung dengan kabel data dapat kita akases melalui port /dev/ttyUSB0
di Linux dan di Mac melalui port /dev/cu.usbserial
.
Kalau di Windows, bagaimana?
Maaf saat ini saya belum coba di windows, mungkin nanti saya akan update tutorial ini setelah mencobanya.
Oke lanjut…
Setelah itu, buka terminal dan ketik:
sudo picocom -b 115200 /dev/ttyUSB0
Parameter -b
untuk menentukan baudrate dan /dev/ttyUSB0
adalah port LumpyBoard
yang sedang terhubung melalui kabel data atau USB.
Sehingga akan tampil seperti ini:
Pada tahapan ini, kita belum bisa melakukan apa-apa.
Selanjutnya silahkan tekan Ctrl+a lalu Ctrl+p untuk mereset LumpyBoard, sehingga akan tampil seperti ini:
Sekarang kita berada di dalam shell MicroPython yang ada di LumpyBoard.
Di sini kita bisa melakukan apapun yang kita inginkan, tentunya dengan bahasa pemrograman python.
Baik…
Untuk percobaan pertama, kita akan menyalakan lampu LED bawaan dari LumpyBoard.
Lampu LED ini berada pada pin 23. Berarti nanti saat pembuatan objek Pin
,
kita harus memberikan parameter 23
.
Cobalah untuk mengetik kode berikut:
>>> from machine import Pin
>>> led = Pin(23, Pin.OUT)
>>> led(True) # hidupkan LED
Sehingga shell akan menjadi seperti ini:
Cobalah perhatikan LumpyBoard, apakah lampu LED-nya menyala?
Jika berhasil menyala seperti ini:
Selamat! 🎉
Kamu berhasil…
Oke, waktunya saya jelaskan arti kode di atas.
Pertama-tama, kita mengimpor class Pin()
dari modul machine
.
Modul machine
adalah modul yang berisi fungsi-fungsi untuk mengakses hardware.2
from machine import Pin
Lalu kita membuat objek Pin
bernama led
dengan parameter 23
dan Pin.OUT
.
led = Pin(23, Pin.OUT)
Angka 23
adalah nomer pin yang digunakan lampu LED pada LumpyBoard.
Kemudian Pin.OUT
adalah konstanta yang menyatakan pin tersebut adalah pin untuk output.
Ada juga Pin.IN
untuk menyatakan pin input, misal pin untuk saklar, sensor,
dan tombol.
Lalu terakhir kita nyalakan lampu LED dengan kode perintah:
led(True)
Sebenarnya bisa juga seperti ini:
led(1)
Mau pakai True
atau 1
artinya sama.
Untuk mematikan lampu led, kita bisa lakukan dengan printah ini:
led(False)
# atau
led(0)
Mari kita coba…
Hasilnya, lampu led mati.
Mudah sekali ‘kan…
Membuat Lampu Led Berkedip
Nah untuk membuat lampu led berkedip, kita membutuhkan satu lagi modul untuk melakukan delay.
Modul yang kita butuhkan adalah modul utime
.
Pada modul ini, terdapat fungsi sleep()
untuk
menunda atau delay.
Lalu untuk membuat lampunya berkedip terus menerus, kita bisa gunakan perulangan.
Contohnya seperti ini:
from machine import Pin
from utime import sleep
led = Pin(23, Pin.OUT)
# loop untuk membuat lampu berkedip
while(True):
led(not led.value())
sleep(1) # delay 1 detik
Sehingga pada shell akan menjadi seperti ini:
…dan hasilnya:
Nyobain LumpyBoard...#MicroPython #Python #PythonProgramming pic.twitter.com/BcCv5fCtaS
— Petani Kode (@petanikode) January 18, 2019
Baik… waktunya saya menjelaskan.
Pertama kita membutuhkan class Pin()
dari modul machine
untuk mengakses lampu LED dan
fungsi sleep()
dari modul utime
untuk melakukan delay.
from machine import Pin
from utime import sleep
Setelah itu kita membuat objek led
yang mewakili lampu LED.
led = Pin(23, Pin.OUT)
Kemudian, kita membuat sebuah while loop yang tak akan pernah berhenti (infinity).
Di dalamnya kita melakukan toggle lampu led.
while(True):
led(not led.value()) # toggle
sleep(1) # delay 1 detik
Jadi di sana kita mengambil nilai led dengan method led.value()
,
method ini akan mengembalikan True
dan False
.
Lalu kita gunakan operator not
untuk toggle.
Misalkan nilai led.value()
dalam keadaan True
(menyala),
maka setelah kita beri not led.value()
, maka led.value()
akan menjadi False
(mati).
Apa Selanjutnya?
Kita sudah berhasil membuat kode program untuk menyalakan lampu LED yang ada di LumpyBoard.
Selanjutnya kamu bisa melakukan beberapa eksperimen berikut:
- Menyalakan lampu LED eksternal;
- Menyalakan lampu bertegangan tinggi;
- Menghubunkan LumpyBoard ke internet, lalu menyalakan lampu dari internet;
- Menggunakan LumpyBoard untuk kendali Mekanik;
- Membuat Eraly Warning System;
- dan lain-lain.
Selamat bereksperimen…