Posting Terbaru

30 Desember 2011

Ada apa dengan Arduino dan 250 Canon Camera Flash?

Androp

Arduino – Musik – Photography, hmm sepertinya makin banyak aspek kehidupan yang mulai dimasuki oleh Arduino.

Belum lama ini, grup musik Androp dari Jepang, merilis video klip untuk salah satu lagu mereka “Bright Siren”. Sekilas video klip tersebut tidak terlalu istimewa. Sebuah grup band bernyanyi dengan latar belakang lampu-lampu yang diatur sedemikian rupa hidup/mati-nya untuk membentuk tampilan tulisan dan beberapa bentuk lain.

Hal yang menarik adalah bahwa lampu-lampu flash tersebut (250 lampu flash dari camera Canon) dikendalikan oleh Arduino, openFrameWorks dan Flash.

Wow, apa yang meng-inspirasi mereka untuk menggunakan Arduino ya? Yang jelas ini salah satu bukti bahwa Arduino bisa dipergunakan untuk apa saja selama kita bisa meng-imajinasi-kan hal tersebut.

Video klip dari grup Androp tersebut bisa dilihat di bawah ini.

Dan ini adalah video tentang pembuatan video klip tersebut.

via [Arduino Blog] [GizModo] [FastCompany]

Print Friendly

View the original article here

Download Ebook Sams Teach Yourself Android Application Development in 24 Hours (7Summits) Gratis

Download Ebook Sams Teach Yourself Android Application Development in 24 Hours (7Summits) Gratis
Download Ebook Sams Teach Yourself Android Application Development in 24 Hours (7Summits) PDF
Download Ebook Sams Teach Yourself Android Application Development in 24 Hours (7Summits) Free

Hanya dalam 24 sesi satu jam atau kurang, belajar bagaimana membangun aplikasi yang kuat untuk platform mobile pertama di dunia yang lengkap, terbuka, dan bebas: Android. Menggunakan langsung buku ini, langkah-demi-langkah pendekatan, Anda akan membangun sebuah aplikasi dengan fitur lengkap Android dari bawah ke atas dan menguasai keterampilan yang Anda butuhkan untuk merancang, mengembangkan, menguji, dan mempublikasikan aplikasi yang kuat. Setiap pelajaran didasarkan pada apa yang telah Anda pelajari, memberikan Anda dasar rock-solid untuk sukses di dunia nyata!



Langkah-demi-langkah petunjuk dengan hati-hati memandu Anda melalui tugas-tugas Android yang paling umum pembangunan.

Kuis dan Latihan di akhir setiap bab membantu Anda menguji pengetahuan Anda.

Dengan Jalan catatan informasi menarik ini terkait dengan diskusi.

Tahukah Anda? kiat menawarkan nasihat atau menunjukkan Anda cara mudah untuk melakukan tugas.

Watch Out! memperingatkan mengingatkan Anda untuk masalah yang mungkin dan memberikan saran bagaimana untuk menghindari mereka.



Pelajari cara ...

     Mengembangkan aplikasi Android dengan cepat dan berhasil dengan Java
     Guru Google Android SDK dan pengembangan alat-alat
     Memanfaatkan lingkungan pemrograman Eclipse untuk mengembangkan Android proyek
     Memahami siklus hidup aplikasi Android
     Membangun efektif, user-friendly antarmuka pengguna
     Mengambil, menyimpan, dan bekerja dengan data aplikasi
     Mengembangkan aplikasi jaringan yang kuat
     Menambahkan fitur sosial populer dan layanan berbasis lokasi untuk aplikasi Anda
     Mengambil keuntungan dari hardware perangkat Android seperti kamera
     Internasionalisasi, tes, dan mempublikasikan aplikasi Android Anda
 

29 Desember 2011

Membuat Arduino Bootloader Burner Station

ArduinoBootloaderBurnerStation

Di beberapa forum dan group Arduino yang saya ikuti, banyak yang bertanya tentang Arduino Bootloader. Bagaimana caranya untuk ‘burning bootloader’ yang benar? Apa yang dapat dipakai untuk ‘burning bootloader’ ?

Jawabannya: Banyak cara yang dapat dipergunakan untuk hal tersebut. Di website official Arduino dijelaskan cara menggunakan Arduino sebagai ISP sehingga bisa dipergunakan untuk ‘burning bootloader’, link-nya di sini. Di salah satu tutorial yang dibuat oleh SparkFun, dijelaskan juga cara ‘burning bootloader’ ini (lihat di sini). Di sana dijelaskan 2 cara untuk hal tersebut: 1) Menggunakan 2 buah Arduino Uno. 2) Menggunakan Pocket AVR Programmer.

Cara-cara diatas tersebut memang dapat melakukan proses ‘burning bootloader’, tapi saya masih merasa proses-nya kurang praktis. Beberapa waktu yang lalu, saya melihat tutorial yang dibuat oleh Ladyada tentang ‘Burning bootloader chips using an Arduino‘. Wow, ini adalah tutorial yang saya tunggu-tunggu. Dengan tutorial ini dapat dibuat semacam shield atau station untuk melakukan proses ‘burning bootloader’ dengan menggunakan board Arduino. Yuk kita coba!

Komponen

Ok, untuk membuat “Arduino Bootloader Burner Station” ini, ada beberapa item yang kita perlukan:

1x Board Arduino Uno1x Arduino Protoshield PCB1x ZIF Socket 28 Pin2x LED (Merah dan Hijau)2x Resistor 330 ohm1x Pin Header – Male 1×40Kabel untuk menyolder1x Chip ATmega328P kosong (blank) Komponen Arduino Bootloader Burner Station

Mulai Merakit

Kita pasang ZIP socket pada protoshield PCB, seperti pada gambar berikut.

Memasang ZIF Socket pada PCB

Kemudian solder ZIF socket tersebut pada PCB.

ZIF Socket sudah tersolder pada PCB

Lalu solder pin dari ZIF socket menggunakan kabel ke beberapa pin Arduino, seperti berikut ini:

Pin 1 ke pin digital 10 (kabel putih)Pin 7 ke pin 5V (kabel merah)Pin 8 ke pin GND (kabel hitam)Pin 9 ke pin digital 9 (kabel kuning)Pin 17 ke pin digital 11 (kabel kuning)Pin 18 ke pin digital 12 (kabel putih)Pin 19 ke pin digital 13 (kabel kuning)Pin 20 ke 5V pada PCB (kabel merah)Pin 22 ke pin GND (kabel hitam)

Hasilnya dapat dilihat pada gambar berikut ini.

Pin ZIF Socket sudah terhubung dengan pin Arduino

Pasang 2 buah resistor 330 ohm pada posisi R1 dan R2 di PCB, lalu disolder. Kemudian pasang LED hijau pada posisi LED1 di PCB, LED merah pada posisi LED2 di PCB, lalu disolder. Hubungkan pin analog 0 dengan JC2 pada LED1 (kabel putih), kemudian disolder. Lalu hubungkan pin digital 8 dengan JC3 pada LED2 (kabel kuning). Hasilnya dapat dilihat pada gambar berikut.

Menyolder Resistor 330 ohm, LED Hijau dan LED Merah

Ok, sekarang kita siap untuk memasang pin header pada PCB. Pertama siapkan 2 buah pin header (male) 1×6 dan 2 buah pin header (male) 1×8 dari pin header (male) 1×40 yang sudah kita siapkan sebelumnya. Pasang pin header tersebut pada pin header di board Arduino Uno, seperti pada gambar berikut ini.

Letakkan PCB pada pin header tersebut seperti memasang shield, lihat di gambar berikut ini.

PCB terpasang pada pin header siap untuk disolder

Solder pin header tersebut pada PCB. Memasang pin header pada board Arduino sebelum menyolder merupakan salah satu teknik yang biasa dipakai untuk memasang header pada shield. Dengan teknik seperti itu, maka posisi header tidak akan miring. Hasil pin header yang sudah terpasang pada PCB dapat dilihat pada gambar di bawah ini.

Pin header sudah disolder pada PCB

Pada titik ini “Arduino Bootloader Burner Station” kita sudah selesai dan siap untuk digunakan untuk proses ‘burning bootloader’. Oh ya, bagian bawah dari PCB akan terlihat seperti gambar berikut ini.

Tampilan bagian bawah PCB, hmm lumayan lah...hehehe

Upload Sketch ArduinoISP2

Lakukan upload program (sketch) ArduinoISP2.pde ke dalam board Arduino Uno. Program dapat didownload pada link yang terdapat di dalam tutorial Ladyada atau di sini.

Burning Bootloader

Setelah sketch ter-upload dengan sukses, pasang ‘burner station’ kita di atas board Arduino Uno. Letakkan chip ATmega328P yang kosong pada ZIF socket dan turunkan tuasnya. Pastikan posisi chip ATmega328P sudah benar, seperti yang terlihat pada gambar berikut ini.

Chip ATmega328P kosong siap untuk di-'burning' dengan bootloader

Masih dengan posisi USB terhubung pada komputer, lakukan proses ‘burning’ dari software Arduino (kita memakai versi 23), dengan menu: Tools>Burn Bootloader>w/ Arduino as ISP, seperti terlihat pada gambar berikut ini.

Menu Burn Bootloader pada Software Arduino

Proses ‘burning bootloader’ akan segera berlangsung. LED hijau akan hidup dan LED merah akan berkelip beberapa kali.

Proses burning bootloader sedang berjalan

Proses ini akan berjalan kurang lebih 40 detik. Apabila proses telah selesai dan tidak terdapat error maka LED hijau akan mati dan akan terlihat pesan “Done burning bootloader” seperti pada gambar di bawah ini.

Proses burning bootloader selesai dengan sukses

Nah, demikian lah proses membuat “Arduino Bootloader Burner Station” kita. Cukup mudah bukan? Shield/station yang sudah jadi ini dapat dipakai untuk bootloader yang lain, seperti Uno, Duemilanove, Lilypad dan yang lainnya, tergantung kebutuhan anda.

Selamat mencoba!!!

Print Friendly

View the original article here

26 Desember 2011

Echo Karakter Dari Komputer Host Ke LCD 4884 melalui Port USB Arduino

Masih disekitar Arduino dan LCD 4884! :D kali ini penulis berkeinginan untuk menampilkan tulisan dari komputer host ke LCD 4884 secara langsung. Gambaran sederhananya begini jika penulis mengetik kata pada komputer (melalui terminal serial Arduino) kemudian dengan mengklik tombol pada software di komputer host misalnya, maka kata tersebut akan ditampilkan juga pada LCD 4884.

Catatan: Kode ini ditulis memakai Arduino 1.0. Sejak versi ini file ekstensi sketch Arduino berubah dari .pde ke .ino jadi pastikan anda juga menginstall Arduino 1.0.

Diagram blok sederhana dari rangkaian seperti gambar dibawah ini

Koneksi Arduino Uno ke komputer memakai Port USB dan memakai gui terminal serial untuk mengetik karakter-karakter dan menekan button Send untuk mengirimkan data ke Arduino Uno.

Terminal serial yang dipakai untuk memasukkan karakter ke module LCD4884 dan Arduino Uno bisa menggunakan terminal serial yang disediakan oleh Arduino IDE yang bisa diakses melalui menu Tools->Serial Monitor, dengan kunci kombinasi keyboard Ctrl+Shift+M atau melalui icon lup sebelah kanan atas Arduino IDE.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455/**** EchoKarakter.ino** Menampilkan ulang karakter karakter yang di masukkan melalui * terminal serial komputer ke LCD modul LCD4884 dan Arduino Uno.*** License: GPL* http://www.junwatu.com**/ #include  // Alokasi memori untuk stringchar inData[200]; // Penyimpanan karakter dari terminal serialchar inChar; // Indekbyte index = 0;  void setup() { //initialize LCD4884 lcd.LCD_init(); lcd.LCD_clear(); pinMode(7,OUTPUT);  Serial.begin(57600); Serial.println("EchoKarakter"); Serial.println("============"); Serial.println();} void loop(){ if (Serial.available() > 0) {  if(index < 199) { // Baca karakter dari Tx/Rx (USB) inChar = Serial.read(); // Simpan inData[index] = inChar; Serial.print(inChar); // Incremen indek index++; // String pada C selalu diakhiri dengan Null inData[index] = '\0'; } //Tampilkan di LCD lcd.LCD_write_string(0,0,inData,MENU_NORMAL); }}

File sketch untuk Arduino bisa dilihat di repository junwatu atau download saja

echokarakter.zip

Posting ini bermanfaat...atau ada pertanyaan ?, jangan lupa untuk menulis komentar ok.


View the original article here

24 Desember 2011

Sinkronisasi Aplikasi Web Di PHPCloud Dengan PHPStorm 3 Melalui FTP/SFTP

PHPStorm merupakan IDE dari Jetbrains khusus untuk pengembangan aplikasi yang menggunakan PHP. Menurut penjelasan Jetbrains

PhpStorm is a lightweight and smart PHP IDE focused on developer productivity that deeply understands your code, provides smart code completion, quick navigation and on-the-fly error checking. It is always ready to help you shape your code, run unit-tests or provide visual debugging.

yang penulis suka dari PHPStorm yaitu IDE ini mempunyai banyak keyboard shortcut, responsif, relatif memakan memory lebih sedikit dibanding Zend Studio ataupun Eclipse dan adanya fitur sinkronisasi melalui FTP/SFTP (hanya ada di PHPStorm versi 3 keatas).

Ok! sedikit saja untuk pengenalan dari PHPStorm coba download dan buktikan saja! :) langsung saja ke point utama posting ini. Diasumsikan bahwa anda sudah mempunyai account dan aplikasi yang sudah berada di server PHPCloud, kalau belum lihat post sebelumnya. Untuk mengembangkan aplikasi di PHPCloud user bisa memakai tool git, SFTP, Zend SDK ataupun Zend Studio. Kali ini penulis menggunakan PHPStorm 3 untuk pengembangan dan sinkronisasi aplikasi yang di deploy di PHPCloud.

Setiap upload ataupun download source code dari aplikasi di PHPCloud pasti dibutuhkan username dan password. Agar tiap kali upload atau download tidak selalu memasukkan data-data tersebut, PHPCloud menyediakan mekanisme file key yang di share antara server dan komputer client.

Login ke phpcloud.com dan masuk ke menu Access Key. Ada dua pilihan yang disediakan oleh PHPCloud yaitu membuat key baru kemudian kita download ke komputer atau mengimpor key yang sudah ada dari komputer client.
Access Key PHPCloud

Untuk keperluan setup dengan PHPStorm import saja RSA key dari komputer client caranya yaitu klik button Choose file pada Import Existing Public Key dan pilih file key id_rsa.pub. Pada sistem Linux biasanya RSA key terletak di

Untuk membuat project PHP baru di PHPStorm klik menu File ? New Project. Sebagai langkah awal sebaiknya memakai direktori kosong untuk lokasi project PHP ini. Kalau ingin ditambahkan file file yang lain bisa dilakukan nanti.

Untuk setup server klik menu Tools ? Deployment ? Configuration kemudian akan muncul Deployment wizard. Tekan tombol + di pojok kiri wizard dan akan muncul Add Server wizard kemudian beri nama apa aja terserah anda dan jangan lupa tipe koneksinya pilih SFTP. Lihat screenshot dibawah ini untuk lebih jelasnya
add serverKemudian isikan parameter – paramater dari server PHPCloud seperti contoh screenshot dibawah ini

setup server phpcloud di phpstorm

Isikan SFTP Host sesuai dengan alamat aplikasi di PHPCloud dalam contoh diatas yaitu

Perlu diingat setup server diatas menggunakan autentikasi berupa RSA key. Ubah nilai Auth Type jika diinginkan metode autentikasi yang lain dan jangan lupa untuk menekan button Test SFTP connection untuk mengetes apakah parameter – parameter koneksi ke server SFTP PHPCloud sudah benar.

Agar direktori project tempat kita mengembangkan aplikasi di PHPStorm sesuai dengan direktori di server PHPCloud maka diperlukan mapping direktori.

mapping direktori project

Default lokasi dari aplikasi di server PHPCloud yaitu pada direktori

/applications/container-root/public

dan sesuaikan mapping dengan lokasi direktori project yang telah dibuat di PHPStorm. Jika diinginkan browsing file di remote host melalui protocol FTP/SFTP klik menu Tools ? Deployment ? Browse Remote Host.

Upload, download dan sinkronisasi file – file aplikasi lokal dan remote bisa diakses melalui Klik kanan pada project ? Deployment.

sinkronisasi file

Ok! semoga pengembangan aplikasi PHP menjadi semakin mudah dengan PHPStrom dan PHPCloud dan ingat…

Jangan berhenti belajar! :D

Posting ini bermanfaat...atau ada pertanyaan ?, jangan lupa untuk menulis komentar ok.


View the original article here

22 Desember 2011

Mengembangkan Aplikasi PHP di PHPCloud

PHPCloud merupakan cloud service yang khusus mendukung pengembangan aplikasi melalui bahasa PHP…yup PHPCloud!. Selain PHPCloud ada banyak cloud service yang mendukung PHP seperti PHPFog dan Heroku, kelebihan PHPCloud adalah adanya integrasi pengembangan aplikasi dengan Zend Studio 9 sehingga lebih mudah bagi pemula dan juga PHPCloud mendukung deployment melalui repository Git ( PHPFog dan Heroku juga mendukung repositori git), melalui tool Zend SDK dan juga melalui SFTP.

Untuk memulai pengembangan aplikasi PHP di PHPCloud sebenernya mudah sekali, apalagi kalau anda pakai Linux OS! ;) .

Pada saat tulisan ini dibuat PHPCloud masih dalam status Technology Preview sehingga registrasi di phpcloud.com masih bersifat registrasi by request maksudnya kita meminta account untuk login ke PHPCloud secara manual, penulis sendiri menerima account valid dalam beberapa hari setelah request. Click link registrasi PHPCloud untuk request.

Setelah terregistrasi langkah berikutnya adalah membuat container sebagai tempat aplikasi PHP yang akan kita kembangkan. Klik pada link Click here pada kotak Get More Containers sebelah kiri untuk membuat container baru ( lihat gmbar dibawah ). Pastikan anda mengisi password dan jangan lupa diingat atau dicatat! :) .
Buat container di PHPCloud

Setelah container terbentuk, secara default telah terdapat aplikasi PHP dengan akses URL berformat

http://[nama-container].my.phpcloud.com

Jadi jika container bernama wokeh seprti pada gambar diatas maka link aplikasi menjadi

http://wokeh.my.phpcloud.com

jika link diatas dibuka pada browser maka tampilan awal aplikasi seperti berikut ini

Seperti telah di jelaskan sedikit tentang PHPCloud diawal tulisan, banyak cara untuk mengembangkan aplikasi kita yang berada di cloud server seperti melalui Secure FTP, Git, Zend SDK dan Zend Studio 9.

Untuk pengembangan aplikasi memang paling bagus memakai Zend Studio 9 tetapi sayangnya IDE ini tidak free. Penulis sendiri lebih sering memakai git karena bisa upload atau download melalui shell ataupun adanya dukungan IDE seperti Eclipse, IntelliJ IDEA dan Netbeans. Bagi yang belum familiar dengan git version control silahkan lihat di website git. Kalau anda memakai linux install git melalui yum, apt-get dll.

Untuk mengkopi source code aplikasi yang berada pada server PHPCloud pastikan anda tahu dahulu URL dari repositori git. Sebagai catatan URL ini bersifat unik untuk tiap aplikasi.
Akses Git

Untuk contoh diatas dengan container wokeh URL dari repositori git yaitu

https://wokeh@wokeh.my.phpcloud.com/git/container-root.git

Untuk mengkopi source code ke komputer lokal ketik command seperti dibawah ini (jangan lupa untuk menyesuaikan URL git sesuai dengan aplikasi anda!).

$ git clone https://wokeh@wokeh.my.phpcloud.com/git/container-root.gitOk!, anda sudah siap untuk melakukan development PHP lebih lanjut di PHPcloud!. Ubah kode-kode yang sudah dikopi di komputer lokal sesuai dengan kebutuhan anda dan update aplikasi diserver dengan perintah git berikut

Wokeh!..selama mencoba! :D

Posting ini bermanfaat...atau ada pertanyaan ?, jangan lupa untuk menulis komentar ok.


View the original article here

21 Desember 2011

Koneksi Database MySQL Dengan Doctrine DBAL

PHP DatabaseDoctrine DBAL merupakan library PHP untuk koneksi ke database dengan cara kerja API yang mirip dengan API dari PDO. Kelebihan Doctrine DBAL daripada memakai PHP PDO class secara langsung yaitu adanya abstraksi kode PHP terhadap berbagai macam driver PDO sehingga kode PHP yang kita tulis akan lebih portable, memungkinkan untuk penggunaan custom driver database dan beberapa fitur tambahan.

Untuk menginstal library Doctrine DBAL, cara paling mudah adalah dengan menggunakan tool pear.

$ sudo pear channel-discover pear.doctrine-project.org$ sudo pear install doctrine/DoctrineCommon

Untuk mengetahui letak folder instalasi bisa diketahui dengan perintah berikut

$ pear list-files doctrine/DoctrineCommon$ pear install doctrine/DoctrineDBAL

Kemudian cek instalasi dengan perintah berikut

$ pear list-files doctrine/DoctrineDBAL

Dalam OS Fedora 16 yang saya pakai default instal untuk PHP pear berada dalam folder “/usr/share/pear”.

Untuk contoh database penulis menggunakan database Employees yang bisa didownload di Launchpad. Untuk instalasinya bisa dilihat online di sini atau pada file README.

Berikut merupakan class PHP sederhana yang fungsi utamanya membuat koneksi ke database MySQL dengan menggunakan Doctrine DBAL.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 * Author By Equan Pr. */ use Doctrine\Common\ClassLoader;use Doctrine\DBAL\Configuration;use Doctrine\DBAL\DriverManager; require '/usr/share/pear/Doctrine/Common/ClassLoader.php'; class Dbalmysql{ protected $conn;  /** * @param $dbname * @param $user * @param $password */ public function __construct($dbname, $user, $password) { /** * Sesuaikan letak library Doctrine DBAL disini */ $classLoader = new ClassLoader("Doctrine", "/usr/share/pear"); $classLoader->register();  $config = new Configuration();  $connectionParams = array( 'dbname' => $dbname, 'user' => $user, 'password' => $password, 'driver' => 'pdo_mysql' );  $conn = DriverManager::getConnection($connectionParams, $config); $this->conn = $conn; }  private function setConn($conn){ $this->conn = $conn; }  /** * @return Doctrine\DBAL\Doctrine\DBAL\Connection */ public function getConn(){ return $this->conn; }} ?>

Jika penginstalan Doctrine DBAL dilakukan secara manual (tidak menggunakan pear) pastikan letak library Doctrine DBAL disesuaikan di parameter kedua dari ClassLoader pada baris 45 diatas (sesuaikan “/usr/share/pear”). Untuk contoh pemakaian class dbalmysql.php diatas bisa dilihat pada list kode dibawah ini

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 * Author By Equan Pr. * */require 'dbalmysql.php'; /* * Sesuaikan setting database disini */$db_name ="employees";$db_user ="root";$db_pass ="your_password"; $dbal_mysql = new Dbalmysql($db_name, $db_user, $db_pass);$conn = $dbal_mysql->getConn(); /** * Query statement */$sql = "SELECT * FROM employees LIMIT 10"; try {  /** * Ambil data dari database */ $stmt = $conn->query($sql);  while ($row = $stmt->fetch()) { echo $row['first_name'] . "\n"; }  /** * Kalo ada error maka pesan error akan ditampilkan */} catch (PDOException $ex) { echo "Error: " . $ex->getMessage();} ?>

Untuk pengetesan jalankan perintah berikut pada command shell

atau letakkan file-file diatas index.php dan dbalmysql.php di webserver yang support PHP 5.3 keatas dan buka file index.php melalui browser.

Posting ini bermanfaat...atau ada pertanyaan ?, jangan lupa untuk menulis komentar ok.


View the original article here

20 Desember 2011

Teori Bahasa dan Automata

Widodo Budiharto, PhD

08569887384

book :

Hopcroft dkk, Introduction to Automata Theory, Languages and Computation, Addison –Wesley, 2001

RANGKUMAN (mohon dipelajari)

Pert. 1 Intro Teori Bahasa dan Automata

Pert. 2 Finite Automata          Contoh  DFA

Pert 3. DFA

Pert 4. NFA  Advanced DFA & NFA

Pert 5. NFA with empty string translation  RE ke e-NFA ke DFA minimisasi

Pert 6. Minimisasi  DFA   Konversi e-NFA Telusuri string ke DFA

Pert 7. DFA output     RewiewMateriPengayaanUTS

Persiapan UTS NILAI UTS

Pert  8. Quiz


View the original article here

19 Desember 2011

Membangun Aplikasi Desktop Di Linux Menggunakan Titanium

Titanium merupakan salah satu dari sekian banyak development platform yang bermunculan khususnya dalam pengembangan aplikasi mobile yang memakai teknologi web.

Perbedaan Titanium dengan platform yang lain seperti Rhomobile ataupun PhoneGap yaitu adanya dukungan IDE yang multiplatform, pada saat tulisan ini dibuat IDE dari Rhomobile hanya mendukung Mac dan Windows sedangkan PhoneGap yng telah diakuisi oleh Adobe juga blm ada. Tetapi penulis yakin dalam waktu dekat akan mucul IDE dari Adobe yang mendukung PhoneGap.

Biasanya pembuatan aplikasi desktop terbatas pada bahasa yang memang ditujukan untuk lingkungan desktop seperti C, C++, Java dll. Tetapi dengan perkembangan jaman yang semakin cepat teknologi web seperti HTML 5, Javascript dan  CSS juga mulai merambah ke gui desktop. Perbedaan yang lain yaitu Titanium juga mendukung pengembangan aplikasi selain mobile phone seperti aplikasi desktop multiplatform……yup! mendukung pengembangan aplikasi desktop untuk Windows, Mac, ataupun Linux!.

Sebagai langkah awal, berikut merupakan contoh pengembangan aplikasi desktop yang penulis buat. Screenshot hasil akhir aplikasi dapat dilihat dibawah ini

Hello Titanium Screenshoot

Aplikasi ini secara real world hanya berfungsi untuk mendeteksi nama sistem operasi dan versi dari kernel Linux. Secara real wordl tidak banyak bermanfaat memang, tetapi penulis ingin membuktikan bahwa banyak pilihan dan kemudahan saat ini dalam pengembangan software. Jadi tidak ada alasan untuk bermalas malasan,  setidaknya untuk penulis sendiri! :D

Langkah – langkah berikut diasumsikan bahwa anda bekerja di platform Linux (penulis memakai Linux Fedora 15) :

Download Titanium Studio (diperlukan registrasi lebih dahulu).Pastikan JDK telah terinstall.Ekstrak Titanium Studio ke sembarang folder.Start studio $ ./TitaniumStudio

Sementara ini SDK Titanium untuk desktop (versi 1.1.0 ) bawaan Titanium Studio tidak bisa bekerja di Fedora 15. Tetapi untuk versi SDK Titanium 1.2 RC4 ternyata bisa bekerja dengan baik jadi kalo anda memakai Fedora 15 download dahulu SDK Titanium versi 1.2 RC4 untuk desktop di sini kemudian ekstrak di folder home SDK Titanium yang defaultnya di ~/.titanium.

Buat project baru File -> New -> Titanium Desktop Project kemudian beri nama projectNew Titanium Desktop Project
HelloTitanium misalnya dan klik Finish.

Susunan folder dari HelloTitanium bisa dilihat pada tampilan App Explorer di Titanium Studio seperti dibawah ini

Hello Titanium project folder

Kalau anda biasa membangun aplikasi web sekilas file – file Hello Titanium seperti file – file pembangun aplikasi web…ada file HTML, CSS dan JavaScript! yang berbeda hanya ada tambahan file tiapp.xml yang berfungsi untuk pengesetan properti seperti Publisher,  Versi Aplikasi, Copyright, Deskripsi Aplikasi dll. Pengeditan file tiapp.xml bisa secara manual atau melalui editor khusus bawaan Titanium Studio seperti gambar dibawah ini

tiapp.xml editor

Ok! Sekarang kita lihat isi file utama dari aplikasi ini yaitu index.html

123456789101112131415161718Hello TitanLinux!

Agar aplikasi ini bisa mendeteksi nama sistem operasi dan versi kernel linux yang saya pakai platform Titanium menyediakan API Titanium.Platform. Untuk detail method dan propertinya lihat dokumentasi API Titanium.Platform (pastikan anda sudah teregistrasi dahulu). Untuk menggunakan API ini bisa digunakan JavaScript seperti pada file app.js berikut

1234567891011121314151617181920212223/****Javascript file for Titanium Desktop Hello World on Linux *Author By Equan Pr.*http://www.junwatu.com */$(document).ready(function() {var window = Titanium.UI.currentWindow;window.height = 100;window.width = 350; var app = Titanium.API;app.log('INFO', 'Titanium desktop untuk Linux'); var osname = Titanium.Platform.getName();var osversion = Titanium.Platform.getVersion();var ostype = Titanium.Platform.getOSType(); $('#content').html(osname + ' ' + osversion + ' ' + ostype); });

metode getName() untuk membaca nama dari os, getVersion() untuk membaca versi kernel dari os dan getOSType() untuk membaca tipe prosessor 32bit atau 64bit. Untuk mengeset isi dari tag div dengan id “content” dipakai library JQuery, jadi library ini harus di referensikan di file index.html. Untuk pengetesan apakah aplikasi sudah bisa berjalan klik menu Run -> Run As -> Desktop Application.

Untuk pendistribusian atau pemaketan aplikasi desktop, Titanium Studio juga menyediakan  fasilitas untuk itu. Caranya didalam tampilan App Explorer klik kanan kemudian klik menu Deploy -> Distribute – Desktop.

Deploy Titanium Desktop

Kode sumber dapat didownload di repositori HelloTitanium atau checkout dengan perintah berikut

$ git clone git@bitbucket.org:junwatu/hellotitanium.git

Selamat Mencoba! :D

Posting ini bermanfaat...atau ada pertanyaan ?, jangan lupa untuk menulis komentar ok.


View the original article here

Kontrol Robot 3 wheel dgn Xbee Pro dan Joystick

This project main purpose is used a joystick to control the direction moving of Three Transwheel Flexibot with wireless communicate method. In this project, we have used SK40C (40 pins PIC Starter Kit), PIC16F877A, 2×16 LCD, small Joystick, two SKXBEE Pro, Flexibot (Cytron DIY project PR19), breadboard, 12V LIPO battery or 12VDc adapter and some wires.

The joystick can control 4 moving direction which is forward, backward, right and left. However, if pressing the joystick center button, the Flexibot will rotating with clockwise direction. 2×16 LCD is used for display the joystick direction and the ADC value (0000-1023) of joystick board.

Harga kit ini 6.8 juta

//==========================================================================
//    Author                    : CYTRON
//    Project                    : SK40C UART
//    Project description        : Test Functionality of SK40C UART using
//                                UC00A.This sample source code is valid for
//                              20MHz crystal.
//
//==========================================================================

//    include
//==========================================================================
#include

//    configuration
//==========================================================================
__CONFIG ( 0×3F32 );                //configuration for the  microcontroller

//    define
//==========================================================================
#define _XTAL_FREQ 20000000UL
#define    rs            RB4                //RS pin of the LCD display
#define    e            RB5                //E pin of the LCD display

#define    lcd_data    PORTD            //LCD 8-bit data PORT

#define    SW1            RB0
#define    SW2            RB1
#define joy_sw      RC5
#define    LED1        RB6
#define    LED2        RB7

//Wireless communicate
#define forward 56 //decimal value for ascii code char’8'
#define backward 50 //’2'
#define left 52 //’4'
#define right 54//’3'
#define clockwise 53//’5'
#define stop 48//’0'
//    function prototype                (every function must have a function prototype)
//==========================================================================

void delay(unsigned long data);

void send_config(unsigned char data);
void send_char(unsigned char data);
void lcd_goto(unsigned char data);
void lcd_clr(void);
void lcd_init(void);
void send_string(const char *s);
void lcd_bcd(unsigned char uc_digit, unsigned int ui_number);
void uart_init();
unsigned char uart_rec(void);            //receive uart value
void uart_send(unsigned char data);
void uart_str(const char *s);
void send_cmd(unsigned char num, unsigned int data, unsigned int ramp);
void delay_ms(unsigned int ui_value);

void setup_adc ( void );
int ADC_read(unsigned char ch);
void xbee_init(void);
//    global variable
//==========================================================================
unsigned int result,x_axis, y_axis,a;
unsigned int rec_data;
unsigned int *rec;
unsigned *rec1;
//    main function                    (main fucntion of the program)
//==========================================================================
void main()
{
unsigned long delay_time=5000;
unsigned int a=0;

//set I/O input output
TRISB = 0b00000011;                    //configure PORTB I/O direction
TRISD = 0b00000000;                    //configure PORTD I/O direction
TRISA = 0b00001111;    //AN0,AN1,AN2=adc input,AN3=Vref    //configure PORTA I/O direction
TRISC = 0b10100000;
//Configure UART
uart_init();
//setup ADC
setup_adc();
xbee_init();
lcd_init();
lcd_clr();                            //clear lcd
lcd_goto(0);                        //set the lcd cursor to location 0
send_string(“Cytron_Joy_Stick_”);        //
lcd_goto(20);                        //set the lcd cursor to location 0
send_string(“SK40C controller”);        //
LED1=0;                                // OFF LED1
LED2=0;

while(1)
{

x_axis=ADC_read(1);
y_axis=ADC_read(2);
if (x_axis<500)//center value is 2.296V decimal=508
{
lcd_clr();
lcd_goto(0);
send_string(“  Joy_forward”);
lcd_goto(20);
send_string(“  X_axis:”);
lcd_goto(30);
lcd_bcd(4,x_axis);
uart_send(forward);
delay_ms(200);
}
else    if (x_axis>508)//center value is 2.348V decimal=520
{
lcd_clr();
lcd_goto(0);
send_string(“  Joy_backward”);
lcd_goto(20);
send_string(“  X_axis:”);
lcd_goto(30);
lcd_bcd(4,x_axis);
uart_send(backward);
delay_ms(200);
}
else if (y_axis<500)
{
lcd_clr();
lcd_goto(0);
send_string(“    Joy_left”);
lcd_goto(20);
send_string(“  X_axis:”);
lcd_goto(30);
lcd_bcd(4,y_axis);
uart_send(left);
delay_ms(200);

}
else if (y_axis>520)
{
lcd_clr();
lcd_goto(0);
send_string(“    Joy_right”);
lcd_goto(20);
send_string(“  Y_axis:”);
lcd_goto(30);
lcd_bcd(4,y_axis);
uart_send(right);
delay_ms(200);
}
else if (joy_sw==0)
{
lcd_clr();
lcd_goto(0);
send_string(“SW is pressed”);
lcd_goto(20);
send_string(“robot:clockwise”);
uart_send(clockwise);
delay_ms(200);
}
else
{
lcd_clr();
lcd_goto(0);
send_string(“   Joy_center”);
lcd_goto(20);
send_string(“zero_axis:”);
lcd_goto(31);
lcd_bcd(4,x_axis);
uart_send(stop);
delay_ms(200);
}
}
}

//    functions
//==========================================================================
void xbee_init(void)
{
uart_str(“+++”);//send command to enter XBee Pro command mode
delay_ms(200);// waiting for finish sending and XBee respond

uart_str(“atmy11?);//send command to setting Source address
uart_send(0xD);// 0XD is hexa code of “Enter”key
delay_ms(200);

uart_str(“atwr”);// send “WR” (write)command to SKXBee
uart_send(0xD);//0XD is hexa code of “Enter”key
delay_ms(200);

uart_str(“atdl22?);// send command to setting Destination address
uart_send(0xD);//0XD is hexa code of “Enter”key
delay_ms(200);

uart_str(“atwr”);//send “WR” (write)command to SKXBee
uart_send(0xD);//0XD is hexa code of “Enter”key
delay_ms(200);

uart_str(“atcn”);// send command for Exit AT Command Mode
uart_send(0xD);//0XD is hexa code of “Enter”key
delay_ms(200);

}
void setup_adc ( void )
{
ADCON0 = 0b10000000;   //ADC off
ADCON1 = 0b11000011;   //right justified,ADCS=0 FOSC32,AN0,AN1,AN2,AN4=analog IN AN3=Vref
}
int ADC_read(unsigned char ch)
{

switch (ch)
{
case 1://x axis
ADCON0 = 0b10000001; //AN0
break;
case 2://y axis
ADCON0 = 0b10001001;//AN1
break;
case 3:
ADCON0 = 0b10010001;//AN2
break;
default:
ADCON0 = 0b10000000;
}

delay_ms(20);
GODONE=1;      //cytron com=GODONE my laptop=GO        //start to covert
while(GODONE) continue;//waiting ADC finish convert value
ADON=0;              //switch off ADC
result=(ADRESL+(ADRESH<<8));//for 10bit adc
return result;//return 10bit of result value
}
void lcd_init(void)
{
//configure lcd
send_config(0b00000001);            //clear display at lcd
send_config(0b00000010);            //lcd return to home
send_config(0b00000110);            //entry mode-cursor increase 1
send_config(0b00001100);            //display on, cursor off and cursor blink off
send_config(0b00111000);            //function set
}
void uart_init(void)
{
SPBRG=129;            //set baud rate as 9600 baud
BRGH=1;                //baud rate high speed option
TXEN=1;                //enable transmission
TX9 =0;                //8-bit transmission
RX9 =0;                //8-bit reception
CREN=1;                //enable reception
SPEN=1;                //enable serial port
}
void delay(unsigned long data)            //delay function, the delay time
{                                        //depend on the given value
for( ;data>0;data–);
}

void delay_ms(unsigned int ui_value)
{
while (ui_value– > 0)
{
__delay_ms(1);   // must not over 39ms
}
}
void send_config(unsigned char data)    //send lcd configuration
{
rs=0;                                //set lcd to configuration mode
lcd_data=data;                        //lcd data port = data
e=1;                                //pulse e to confirm the data
delay(50);
e=0;
delay(50);
}

void send_char(unsigned char data)        //send lcd character
{
rs=1;                                //set lcd to display mode
lcd_data=data;                        //lcd data port = data
e=1;                                //pulse e to confirm the data
delay(10);
e=0;
delay(10);
}

void lcd_goto(unsigned char data)        //set the location of the lcd cursor
{                                        //if the given value is (0-15) the
if(data<16)                            //cursor will be at the upper line
{                                    //if the given value is (20-35) the
send_config(0×80+data);            //cursor will be at the lower line
}                                    //location of the lcd cursor(2X16):
else                                // —————————————————–
{                                    // | |00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15| |
data=data-20;                    // | |20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35| |
send_config(0xc0+data);            // —————————————————–
}
}

void lcd_clr(void)                        //clear the lcd
{
send_config(0×01);
delay(600);
}

void send_string(const char *s)            //send a string to display in the lcd
{
while (s && *s)send_char (*s++);
}

unsigned char uart_rec(void)            //receive uart value
{
unsigned int rec_data;
while(RCIF==0);                        //wait for data
rec_data = RCREG;
return rec_data;                    //return the data received
}

void uart_send(unsigned char data)
{
while(TXIF==0);                //only send the new data after
TXREG=data;                    //the previous data finish sent
}

void uart_str(const char *s)
{
while(*s)uart_send(*s++);  // UART sending string
}

void lcd_bcd(unsigned char uc_digit, unsigned int ui_number)
{
unsigned int ui_decimal[5] ={ 0 };
//extract 5 single digit from ui_number
ui_decimal[4] = ui_number/10000;        // obtain the largest single digit, digit4
ui_decimal[3] = ui_number%10000;        // obtain the remainder
ui_decimal[2] = ui_decimal[3]%1000;
ui_decimal[3] = ui_decimal[3]/1000;                        // obtain the 2nd largest single digit, digit3
ui_decimal[1] = ui_decimal[2]%100;
ui_decimal[2] = ui_decimal[2]/100;                        // obtain the 3rd largest single digit, digit2
ui_decimal[0] = ui_decimal[1]%10;                        // obtain the smallest single digit, digit0
ui_decimal[1] = ui_decimal[1]/10;                        // obtain the 4th largest single digit, digit1

if (uc_digit > 5) uc_digit = 5;                        // limit to 5 digits only
for( ; uc_digit > 0; uc_digit–)
{
send_char(ui_decimal[uc_digit - 1] + 0×30);
}
}


View the original article here

Langganan

Mau dapet Update-an Blog ini lewat e-mail? Masukkin aja alamat Email kamu disini:

Dikirim Oleh FeedBurner

Ikuti Blog ini

Edited by: Kautsar Saimima | blogger templates