Kamu Bisa Javascript? Jajal Mikrokontroler ini

Ridwan Fajar 30 November 2014

Kamu Bisa Javascript? Jajal Mikrokontroler ini

Javascript merupakan sebuah bahasa pemrograman yang semula dikhususkan untuk interaktivitas aplikasi web. Mulanya Javascript ditanamkan di web browser agar halaman web dapat memiliki konten yang lebih interaktif dan dinamis. Brendan Eich menciptakan Javascript pertama kali untuk Netscape Navigator. Kini Javascript sudah diadopsi di berbagai browser seperti Mozilla Firefox, Internet Explorer, Opera, Safari, Konqueror, dan lain - lain dengan berbagai engine di belakangnya.

Bermula di web, kini Javascript mulai tersebar penggunaannya seperti untuk membangun aplikasi mobile, aplikasi desktop, sistem operasi, dan server-side. Di pengembangan aplikasi mobile kita mengenal ada framework seperti Ionic Framework yang berbasis AngularJS, JQueryMobile yang berbasis JQuery, dan SenchaTouch yang berbasis ExtJS. Di pengembangan aplikasi desktop kita dapat mengembangkan aplikasi desktop dengan TideSDK yang dikembangkan Titanium, AppJS yang merupakan perangkat pengembangan aplikasi desktop berbasis NodeJS, IGNSDK yang dikembangkan oleh IGOS Nusantara. Firefox OS pun membuat gebrakan baru dengan memudahkan mobile developer untuk membangun aplikasi yang menggunakan HTML5 + CSS + Javascript. Di ranah server-side tentu NodeJS sangat populer, Anda dapat mencoba fitur NodeJS untuk membangun aplikasi web.

Nah, bagaimana dengan Javascript di dunia mikronkontroler? Selama ini Anda pasti mengetahui bahwa untuk melakukan pemrograman di mikrokontroler, dapat digunakan Assembly, C++, C, dan BASCOM. Tapi apakah Javascript hadir di dunia mikrontroler? Mari simak mikrokontroler yang dapat diprogram menggunakan Javascript.

1. Espruino

Espruino, merupakan mikrokontroler yang dirancang oleh Gordon William. Selain Espruino versi standard, hadir pula Espruino Pico yang berukuran lebih kecil. Espruino menjawab peran Javascript di dunia mikrokontroler. Javascript yang digunakan bukanlah NodeJS. Javascript yang sudah dirancang Gordon agar optimal dan kompatibel dengan Espruino. Gordon mengenalkan Espruino melalui Kickstarter.com. Berdasarkan informasi yang didapat dari halaman Espruino di Kickstarter.com, Gordon dengan Epsruinonya mampu membuat robot penghindar halangan (avoider robot), aplikasi internet of thing seperti menyalakan lampu rumah dari laptop, hiasan lampu natal, pengendali laser dengan joystick, sistem pengaturan udara dan irigasi pada pot tanaman, sistem irigasi tanaman, dan thermostat.

Untuk memprogram Espruino, Anda akan membutuhkan sebuah perangkat yang bernama WebIDE. WebIDE adalah alat untuk memprogram Espruino yang bisa Anda dapatkan sebagai ekstensi dari web browser Google Chrome secara gratis. Bahkan Espruino dapat diprogram melalui bahasa pemrograman visual yang mirip dengan Scratch. Espruino didukung dengan processor ARM Cortex M3 32-bit 72 Mhz. Selain itu Epsruino dilengkapi dengan 40 GPIO yang siap digunakan untuk bereksperimen dengan komponen elektronika.

Sebagai contoh berikut ini adalah potongan source code JavaScript untuk menyalakan LED dengan PWM di Espruino:

var interval;
function pwm(brightness, Hz) {
  if ((typeof interval) !== "undefined") {
    clearInterval(interval);
    LED1.reset();
  }
  interval = setInterval(function() {
    digitalPulse(LED1, 1, brightness * (1000/Hz));
  }, 1000/Hz);
}

2. IOP

IOP, merupakan mikrokontroler yang dapat diprogram dengan Javascript. Berbeda dengan mikrokontroler pada umumnya yang diprogram melalui laptop atau komputer desktop. Pengembang IOP mengembangkan cara pemrograman mikrontroler diatas iPad dan iPhone. Anda memerlukan IDE tersebut dengan mengunduhnya dari Apple Store. Lalu dengan bluetooth dan ANT Radio, program yang sudah Anda tulis dapat di-upload ke IOP. modul IOP disebut dengan IOP Node. Setiap Node didukung oleh XMEGA128A3 Processor, Javascript Interpreter, Blueetooth Low Energy Client, ANT Radio, UART, SPI, I2C, dan Ultra Low Power Operation.

Sebagai contoh berikut ini adalah potongan source code JavaScript untuk menyalakan LED di IOP:

Ble.on('connect',function(){
    Io.led('b',true);
});

Ble.on('disconnect',function(){
    Io.led('b',false);
});

3. WeIO

WeIO merupakan mikrokontroler yang dapat diprogram dengan HTML5, Javascript, dan Python. Penemunya Uros Petrovski dan Drasko Draskovic dari NodeDesign.Net mengutarakan bahwa mereka ingin menciptakan mikrokontroler yang fokus untuk mendukung Internet of Things. Dengan pengandalkan Python Tornado Web Server, WeIO dapat diakses melalui IP Address kemudian program WeIO ditulis langsung menggunakan HTML5 dan Javascript yang mempunyai sintaks dengan rasa Arduino. Bahkan Uros mengatakan, jika Anda pernah melakukan pemrograman dengan Arduino, maka Anda akan mudah melakukan pemrograman di WeIO.

WeIO dapat digunakan untuk mengembangkan smart home atau embedded system lainnya dengan mengandalkan HTML5 yang sudah disiapkan untuk WeIO. WeIO dapat dikendalikan melalui browser dari device yang kita gunakan semisal laptop atau smartphone. Kemudian dengan mengakses URL tertentu yang mengarah kepada WeIO, salah satu contohnya WeIO dapat mengubah terangnya cahaya sebuah lampu hanya melalui halaman web.WeIO mempunyai teknologi web socket, tornado server, open wrt, Qualcomm/Atheros AR9331, dan LPC11Uxx.

Sebagai contoh berikut ini adalah potongan source code JavaScript untuk menyalakan RGB LED di WeIO:

var p_id = 0;
$(function() {
    $( "#slider-vertical" ).slider({
    orientation: "vertical",
    range: "min",
    min: 0,
    max: 255,
    value: 10,
    slide: function( event, ui ) {
        var id = ui.value;
        if (id != p_id) {
            var hue = (1.0/255.0)*ui.value;
            var ledColor = HSVtoRGB(hue,1.0,1.0);
            pwmWrite(21,ledColor.r);
            pwmWrite(20,ledColor.g);
            pwmWrite(19,ledColor.b);
            changeColorFromWeio(ledColor);
        }
        p_id = id;
    }
    });
});

4. NodeBots

NodeBots merupakan pemrograman yang dirancang oleh Node-Ardx.Org agar dapat melakukan pemrograman di Arduino menggunakan Javascript. Javascript yang digunakan berbasis NodeJS. Saat ini belum banyak yang menggunakan NodeBots dibandingkan Bahasa pemrograman Arduino biasanya. Untuk menggunakan NodeBots Anda harus memasang NodeJS di komputer Anda, kemudian memasang paket NodeJS yang bernama Johnny-Five. NodeBots mengandalkan Firmata untuk dapat menghubungkan NodeJS dengan Arduino. Tujuan dari NodeBots adalah agar seseorang dapat nyaman menggunakan NodeJS untuk melakukan manipulasi dan pengendalain berbagai komponen elektronika.

Sebagai contoh berikut ini adalah potongan source code JavaScript untuk menyalakan LED di NodeBots:

var j5 = require("johnny-five");
var myBoard, myLed;
myBoard = new j5.Board();
myBoard.on("ready", function() {
  myLed = new j5.Led(13);
  myLed.strobe( 1000 );

  // make myLED available as "led" in REPL
  this.repl.inject({
      led: myLed
  });
  // try "on", "off", "toggle", "strobe", "stop" (stops strobing)
});

5. Tessel

Tessel merupakan mikrokontroler yang dapat diprogram dengan menggunakan NodeJS. Sedikit berbeda dengan Javascript biasa, Tessel lebih mengadopsi sintaks yang familiar dengan NodeJS. Tessel mempunyai berbagai produk berupa ekstensi untuk Tessel Board. Di setiap perangkat Tessel sudah ditanami Wifi sehingga dapat terkoneksi ke web dengan mudah. Tessel dikembangkan oleh Technical Machine Team. Selain Wifi, Tessel dilengkapi dengan USB Port, JTAG, GPIO, ARM Processor, Flash Memory 32MB, RAM 32MB, empat modul yang dapat digunakan oleh modul lain, antena WiFi, status LED, power LED. Modul yang tersedia untuk Tessel antara lain akselerometer, kamera, climate, GPS, MicroSD, Infra Merah, Relay, RFID, Servo, NFC, dan lainnya.

Sebagai contoh berikut ini adalah potongan source code JavaScript untuk mengontrol servo di Tessel:

var tessel = require('tessel');
var servo = require('servo-pca9685')
  .use(tessel.port['A']);

var position = 0;
setInterval(function () {
  servo.move(1, position);
  position = position == 0 ? 1 : 0;
}, 500);

(rfs/kickstarter/youtube)