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…

Instalasi Picocom di Linux

Setelah itu, coba ketik perintah picocom --help untuk memastikan apakah picocom sudah terinstal dengan benar atau tidak.

Jika tampil seperti ini…

Versi Picocom

…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.

Menghubungkan lumpyboard dengan 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:

Picocom Ready

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:

Micropython di lumpyboard

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:

Kode python untuk menyalakan lampu led

Cobalah perhatikan LumpyBoard, apakah lampu LED-nya menyala?

Jika berhasil menyala seperti ini:

lampu led di lumpyboard

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.

Papan microcontroller

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…

kode python untuk mematikan lampu led

Hasilnya, lampu led mati.

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:

Kode untuk membuat led berkedip

…dan hasilnya:

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:

  1. Menyalakan lampu LED eksternal;
  2. Menyalakan lampu bertegangan tinggi;
  3. Menghubunkan LumpyBoard ke internet, lalu menyalakan lampu dari internet;
  4. Menggunakan LumpyBoard untuk kendali Mekanik;
  5. Membuat Eraly Warning System;
  6. dan lain-lain.

Selamat bereksperimen…