Kategori
IoT Python

MicroPython

Sejarah

Pada tahun 2014, seorang fisikawan Damien George asal Australia mengembangkan bahasa python untuk microcontroller yang diberi nama MicroPython. Damien memproduksi perangkat keras yang diberi nama PyBoard, yaitu sebuah microcontroller yang mampu menjalan Python 3 yang sebelumnya hanya bisa berjalan pada komputer. Damien George membuat varian Python tersebut dengan menulis ulang dari nol menggunakan bahasa C dengan mengimplementasikan sintaks gramatikal Python.

Damien P. George dan Paul Sokolovsky adalah teknisi dengan spesialisasi di Python dan project – project robotik. Mereka terinspirasi akan sebuah ide bagaimana python dapat digunakan untuk memprogram “mikrokomputer satu keping” sehingga mampu untuk mengendalikan robot.

Python sebagai bahasa pemrograman yang sederhana dan mudah dipelajari serta mendapat dukungan komunitas yang besar dipandang ideal sebagai bahasa pemrograman yang cocok buat pemula, namun python tidak sepopuler C/C++ di ranah pemrograman bare-metal

Setelah berkutat selama 6 bulan melakukan penulisan ulang python yang ditujukan untuk pemrograman aras bawah, terciptalah MicroPython yang ditulis diatas bahasa pemrograman ANSI C. Dengan sintaks yang serupa dengan Python 3, dipersenjatai dengan parser, compiler, vitrual machine, runtime system, garbage collector, dan support library agar dapat berjalan pada mikroprosessor.

Pengertian MicroPython

MicroPython adalah python versi ringan yang memang ditujukan untuk mikrokontroler, sehingga banyak pustaka dan fungsi yang biasa ada pada Python tidak akan didukung untuk MicroPython, sehingga praktis tidak semua grammar dalam Python bisa diaplikasikan untuk MicroPython.

Micropython berjalan diatas “bare-metal” mikrokontroler secara langsung, tidak seperti Python yang memang dirancang berjalan diatas sistem operasi. Beberapa optimasi dibuat guna membuat micropython dapat berjalan pada perangkat dengan resource yang terbatas.

Micro Python berjalan di atas Python board yang sudah dia rancang seminimal mungkin dengan mengintegrasikan processor ARM 32 bit, tepatnya ARM STM32F405 dengan clock 168MHz, flash memori 1MiB, dan 192KiB RAM. Python board tersebut sudah dilengkapi dengan slot kartu micro SD, dua buah tombol, 4 buah LED, dan 30 pin input/output, real-time clock, dan built-in accelerometer. Selain itu fitur USBnya memungkinkan kita untuk memprogram Python board sebagai perangkat antarmuka komputer kita seperti mouse, keyboard, game-pad dan lain-lain.

Kelebihan MicroPython ini, selain fiturnya yang beragam dengan ukuran yang kecil (4 cm x 3,3 cm), kode program ditulis dalam file berekstensi .py dan dapat langsung disimpan di dalam flash memory pada Python board. Proses compiling dilakukan langsung di dalam microprocessor sehingga tidak diperlukan software downloader pada PC. Hal ini sangat memudahkan proses pembuatan dan uji coba program. Selain itu, Micro Python juga dilengkapi dengan REPL (Read Evaluate Print Loop) atau interactive prompt yang memungkinkan kita untuk mengakses langsung Python board, mencoba-coba kode program dan melihat hasilnya saat itu juga.

Micro Python adalah proyek yang mendapat pendanaan melalui Kickstarter dan sudah melampaui inisiasi pendanaan sejak bulan Desember 2013. Damien menjadikan Micro Python dan Micro Python board sebagai open source software dan open source hardware di bawah lisensi MIT sehingga siapapun dapat menggunakan, memodifikasi dan memproduksi baik untuk tujuan komersial maupun non-komersial. Semua resource baik itu kode maupun skema board dapat diakses di https://github.com/micropython/. Micro Python juga memiliki forum komunitas yang aktif dengan para programmer yang antusias mengembangkan dan melengkapi library yang ada untuk berbagai keperluan hardware.

Satu board dihargai 24 British Pounds atau sekitar 42 Dollars. Bagi Kamu yang tertarik atau udah lama ngebet pengen ngulik robot-robotan, Kamu dapat langsung sign up pemesanan board di websitenya http://micropython.org/ untuk produksi manufaktur periode kedua.

Python vs MicroPython

Berbeda dengan Python yang biasa ada pada komputer rumahan. MicroPython adalah python versi ringan yang memang ditujukan untuk mikrokontroler, sehingga banyak pustaka dan fungsi yang biasa ada pada Python tidak akan didukung untuk MicroPython, sehingga praktis tidak semua grammar dalam Python bisa diaplikasikan untuk MicroPython.

Simulasi MicroPython

Sebelum mengikuti langkah-langkahnya, sebaiknya membaca terlebih dahulu tentang simulator IoT.

Berikut merupakan source code untuk project LED Sederhana

import time  #D3 Teknologi Telekomunikasi
from machine import Pin
led=Pin(2,Pin.OUT)

while True:
  led.value(1)
  time.sleep(0.5)
  led.value(0)
  time.sleep(0.5)

Rancangan Board ESP32

Rancangan Project LED

Gunakan LED pada D2 dengan bantuan resistor, untuk mengubah warna LED dapat masuk ke tab diagram json, ganti warna RED, ke warna seperti GREEN, BLUE, WHITE, dll

Hasil

LED Ouput

Lampu LED berhasil menyala pada project LED ini

Ref : [1][2][3]