Thursday, August 13, 2015

Berkenalan dengan Raspberry Pi (Part 2)

Lanjutan dari Part 1.

Mengambil Raspberry Pi

Beberapa saat setelah komunikasi terakhir dengan client si empunya Raspberry Pi tersebut, penulis menyempatkan diri untuk mampir ke kantor si client, untuk mengambil alat tersebut.





Mencoba Raspberry Pi 


Ini adalah Raspbery Pi yang dipinjamkan (dikeluarkan dari casing).
2 Port USB, 1 Port Ethernet, 1 Port HDMI
1 Port Video Output dan 1 Port Sound Output

Di rumah, penulis mencoba untuk menyalakan Raspberry Pi ini. Untuk power source-nya menggunakan charger Tablet Advan Vandroid T3X (5V, 2A, colokan Micro-USB). Kebetulan charger ini sesuai rekomendasi sih, baik voltase maupun ampere-nya.

Colokan USB-nya pas ada 2, yaitu untuk Keyboard dan Mouse. Untuk Internet digunakan colokan Ethernet, dan sudah ada SD Card berukuran 4GB yang ikut dipinjamkan.

Boot dan keluar tampilan command line. Minta user name dan password. Defaultnya :

User Name : pi
Password : raspberry

Masuk ke command line, dan kemudian ketik startx untuk masuk ke tampilan Graphical User Interface

Ditunggu sebentar dan muncul tampilan Linux "Raspbian". Lihat-lihat bentar, ada kumpulan game (pygame). Main-main sebentar dengan game yang mirip sokoban, kemudian cek program lainnya. Ada Wolfram, Mathematica dan satu program yang konon digunakan untuk mengajar programming untuk anak-anak, yaitu Scratch.

Iya sih, sesuai dengan tujuan dari Raspberry Pi ini, yaitu sebagai learning tools.

Karena programnya sepertinya sudah lama, Jadi penulis memutuskan untuk coba download program terbarunya. Sekalian belajar setup dari awal.

Menurut informasi di sini : https://www.raspberrypi.org/downloads/

Langkah-langkahnya adalah download NOOBS (New Out Of the Box Software) yang merupakan install manager untuk menginstall Operating System, baik yang default (Raspbian), ataupun lainnya (penulis sudah mencoba, jika terkoneksi dengan internet, ketika masuk NOOBS akan muncul pilihan OS lebih banyak yang bisa diinstall, daripada jika tidak terkoneksi dengan internet.

langkah-langkah install NOOBS : 

https://www.raspberrypi.org/help/noobs-setup/

Setelah download NOOBS, langkah berikutnya adalah copy file-nya ke SDCard. SDCardnya diformat dulu, disarankan menggunakan aplikasi SDFormatter, dan penulis mengikuti sesuai petunjuk. It's quite easy.



Jangan lupa keyboard layout di bagian bawah diganti.


Setelah terinstall, pertama kali akan dijalankan konfigurasi (bisa dijalankan kembali di lain waktu dengan mengetik raspi-config di terminal). Konfigurasi tersebut misalnya adalah menentukan output audionya ke HDMI atau ke colokan audio, menentukan pertama kali start ke command line dulu, atau langsung ke GUI, atau bahkan langsung menjalankan Scratch.

Setelah konfigurasi awal tersebut, Raspberry Pi-nya kembali seperti biasa. Login (user name:pi dan password: raspberry), kemudian masuk ke GUI dengan perintah startx.

Masuk kembali ke GUI-nya Raspbian, tampilannya agak beda dengan ketika baru didapat dari client (wallpapernya beda). Mungkin karena versi lebih baru kali yah.

Berikut adalah beberapa screenshot (diambil menggunakan aplikasi scrot dari linux repository)


Menu Programming di Raspbian.
yang Mono defaultnya tidak ada yah, itu install sendiri.

Menu Games di Raspbian.
Ada Minecraft, tapi sayangnya gak bisa diambil screenshotnya
(jalan, tapi kalau di-screenshot, gagal diambil oleh scrot.
mungkin karena ada hardware acceleration)


Menu Internet di Raspbian

Ini kalau menu Pi Store diklik.

Kembali ke menu game, ini kalau 'Python Games' dipilih.

Starpusher, clone Sokoban

Scratch, to teach programming to little kids ?


Mencoba Programming dengan Mono.

Tidak lama setelah itu, penulis mencoba install Mono, link yang cukup bagus membahasnya adalah
http://logicalgenetics.com/raspberry-pi-and-mono-hello-world/

(note : kurang lebih sama dengan langkah instalasi Mono di Linux lainnya, hanya kalau di Linux lainnya mungkin ada package-manager yang sudah berupa GUI)

Namun ketika melakukan instalasi Mono untuk pertama kalinya, rupanya terjadi masalah ketika unpacking package mono, yaitu insufficient space. Jadi penulis akhirnya melakukan instalasi ulang, kali ini tidak menggunakan NOOBS, tapi langsung download image Raspbian (+/- 3Gb), dan menulisnya ke SD Card menggunakan Win32DiskImager.

Sayangnya entah karena penulis yang salah memilih destination drive, atau mungkin juga ada bug di Win32DiskImager tersebut (karena penulis merasa sudah memilih destination drive yang benar), malah Harddisk External penulis yang terformat.

Yep, HD External 1TB, berisi Film, Program dan Game hasil ngumpulin agak lama. hiks.
(Untungnya bukan data yang penting -- udah sial masih berpikir "untung")

Moral Of The Story : Ketika menggunakan Win32DiskImager, jangan colok drive external lainnya.

Kali ini sukses sih install Mono. Dan langsung coba bikin Hello World sesuai langkah-langkah di link di atas, sukses.

Yang tidak sukses adalah mencoba menjalankan program .NET buatan sendiri, yang rencananya mau ditunjukkan ke client si empunya Raspberry, sebagai pembuktian bahwa Raspberry Pi bisa digunakan untuk HMI.

Namun besok-besoknya, aplikasinya disederhanakan, dan bisa running ketika ada beberapa library yang diganti, misalnya load XML dengan menggunakan method Dataset.ReadXML diganti dengan menggunakan XMLTextReader. Tapi behaviour dari DataGridView masih kacau. Ini sepertinya masalah yang berhubungan dengan kompatibilitas Mono deh.

Oh ya, ada aplikasi yang bisa jalan dengan baik di Mono dan OS Ubuntu (karena penulis juga menggunakan Ubuntu 12.04 LTS), tapi aplikasi tersebut muncul warning/crash di Raspbian.

Update 28 Aug 2015 : Masalah crash di raspbian sudah solved. Itu ternyata di Raspbian, Mono yang kita install dengan apt-get adalah 3.2.8, setelah penulis upgrade dengan langkah-langkah yang ditulis di https://www.raspberrypi.org/forums/viewtopic.php?f=34&t=99595 , menjadi Mono 4 ke atas, masalah sudah terselesaikan. Tapi gara-gara kejadian crash ini, penulis jadi tahu bahwa awalnya mono memang mengalami masalah kompatibilitas dengan prosesor ARM (masalah register floating point), sehingga pernah ada Debian 'hard-float' dan 'soft-float'. Tapi masalah itu sudah lama diatasi.

Langkah berikutnya yang sudah dijalankan penulis adalah dengan langsung create aplikasi di Mono (UI menggunakan GTK#). Karena sudah dicoba untuk komunikasi sederhana dengan protocol Modbus, and it works!. Tinggal bikin aplikasinya rada decent saja, dan memadai untuk keperluan demo.

Advanced HMI berjalan dengan baik. selain install mono-complete,
juga harus install mono-vbnc (vb native compiler)

Aplikasi Modbus Generic Untuk Demo.Ini yang pakai UI-nya GTK#.
Yang UI-nya pakai System.Windows.Forms biasa tidak jalan, walaupun di Ubuntu lancar jaya.
(update 2015-08-28) : sudah bisa ketika mono-nya diupdate
Note : Raspberry Pi 1 tidak bisa diinstall Ubuntu (Ubuntu-Mate), Raspberry Pi 2 baru bisa.

Sama seperti di atas, hanya tekan menu "about" hehe.#norak

Note :  Jadi ada ide untuk bikin tutorial Mono buat mengisi blog ini.

Dan tentu saja, sesuai dengan tujuan awal, mencoba Raspberry Pi tersebut untuk menjadi Media Center.

Mencoba Raspberry Pi sebagai Media Center

Ada 2 distro linux yang penulis coba, yaitu
  • OSMC (Open Source Media Center), dan 
  • OpenELEC (Open Embedded Linux Entertainment Center). 

Keduanya serupa sih, yaitu ada filebrowser untuk memainkan file video, dan dapat disambungkan ke IPTV (TV yang over internet). Mereka berdua dapat menggunakan layanan Kodi (sebelumnya dikenal sebagai XBMC -- silahkan googling sendiri).

Awalnya penulis mencoba OSMC dulu, dan sempat installing cukup lama, tapi gak bisa booting masuk (layar hitam, dan kadang2 ada flicker). Setelah itu penulis mencoba OpenELEC dan ternyata kejadiannya sama. Setelah coba googling kenapa, penulis mencoba untuk tidak pakai HDMI To VGA Converter, tapi langsung ke TV, dan ternyata jalan. Jadi masalahnya adalah di HDMI To VGA Converter tadi.


Ini waktu install OSMC. Setelah ini, tidak bisa booting.

Disclaimer : Gambar-gambar berikutnya tidak jelas, karena menggunakan TV 14 inch jadul.


Bisa setelah diganti video outputnya menggunakan kabel A/V biasa.
Di sini penulis mencoba install plugin untuk YouTube,
dan mencoba menonton Video Ed Sheeran : Thinking Out Loud.

Ini waktu mencoba OpenELEC, menu "Live TV"

Memilih Video Plugin.
Di sini penulis meng-install video plugin untuk YouTube.
Penulis 2X Login ke google setelah ini, untuk mendaftarkan Device baru
dan mengizinkan Kodi untuk memainkan Video Youtube.

Memilih Video yang hendak dimainkan di YouTube.

Bad Blood by Taylor Swift
( I'm a big scary guy and I'm a taylor swift  fan. get over it)

File Browser untuk memainkan Video di OpenELEC.
Kesan Penulis

Keren!.

Raspberry Pi ini sepertinya memenuhi kebutuhan penulis untuk membuat Media Center sendiri. Perlu  dipertimbangkan untuk membeli model yang baru (Raspberry Pi 2), karena processor yang lebih baik (Quad Core), dan sudah bisa menjalankan Windows 10 IOT dan Ubuntu-Mate

Untuk utak-atik selanjutnya, sepertinya penulis akan mencoba membuat game center kecil-kecilan. Sudah banyak yang mencoba, yaitu dengan install emulator game (GBA,N64, dst). Awalnya emulator-emulator ini dibuat untuk Linux. tapi karena Linux bisa diinstall di Raspberry Pi, ya begitu deh :D

Untuk alternatif lain dari Pi, ada juga Beagle Board (kalau Pi buatan Inggris, yang ini buatan Amerika, hardware serupa). Ada juga O-Droid (yang ini bisa pakai OS Android).



No comments:

Post a Comment