random thing #2

Hari ini cerah sekali, terlebih lagi hari ini adalah hari Sabtu. Setelah bangun pagi, hal yang paling menyenangkan adalah duduk di depan jendela, memandangi langit biru di luar sana.

Oh musim semi....

Oh musim semi….

Setelah puas pikiran terbang ke langit biru, perhatian kembali tertuju ke dalam ruangan. Aku melihat ke atas meja, tergeletak sebuah Raspberry Pi (RPi) beserta beberapa komponen elektronik, seperti servo kecil dan perkabelannya. RPi ini aku pinjam dari teman sekamar, kak Firman. Tak disangka-disangka dia membawa RPi. Daripada RPi nganggur, dan aku juga sering nganggur di kamar, jadilah kami bersahabat (Aku dan RPi), dirasa aneh memang. Ya sudahlah. Semoga kak Firman dapat pahala.

RPi dan komponen lainnya

RPi dan komponen lainnya

Sebelumnya, pernah main-main Raspberry Pi di kuliah System Programming. RPi agak aneh memang, soalnya ada GPIOnya, sedangkan di kuliah itu, kami memakai RPi layaknya komputer biasa. Ternyata GPIO itu mirip pin IO di microcontroller. Dulu pernah main-main dengan servo, tetapi saat itu menggunakan microcontroller. Terpikir seperti ini, apakah bisa mengendalikan servo dengan RPi. Kayak-kayaknya bisa aja, jadi terpikir kenapa ga dicoba aja. Akhirnya, memutuskan untuk mengutak-atik si RPi dan servo. Kemudian, saya coba threading, lalu memindahkan akses RPi dari LAN ke Wifi. Hasilnya seperti ini.

PWM diproduksi dengan memanipulasi kode untuk mengatur GPIO. Proses flip-flop LED dan mengendalikan servo dilakukan secara independen dengan menggunakan threading Python. Proses koding dilakukan secara remote melalui Wifi dengan menggunakan SSH. Alhasil, servo dan LED dapat dikendalikan secara remote.

Dari keisengan itu, saya berpikir Raspberry Pi mungkin bisa menjadi alternatif dari Arduino. Kalau dipikir-pikir, Arduino memiliki clock speed 16 Mhz, sedangkan RPi, menurut Wikipediaclock speednya sekitar 700 Mhz. Menurut sampling theorem, untuk merekonstruksi kembali sinyal yang diproduksi source (programmed PWM) W, frekuensi modulasi (processing signal) F harus lebih dari 2W. Di sini, F adalah clock speed RPi, sedangkan W adalah clock speed Arduino.

Hal tersebut berarti kita dapat menyimulasikan sinyal PWM Arduino, dimana the highest bandwidthnya atau secepat-cepatnya PWM yang bisa dibuat adalah 16 Mhz, maka kecepatan minimal yang dibutuhkan RPi adalah 2*16 Mhz = 32 Mhz, sedangkan RPi lebih cepat daripada itu. Ditambah lagi dengan kemampuan multi threading dari Linux untuk mengendalikan setiap pin GPIO secara independen. Sebenarnya yang belum terjawab adalah bergetarnya servo saat sudah berada di posisi yang diinginkan. Itu belum diselidiki. Satu dugaan adalah proses switching pada RPi menyebabkan ketidakstabilan frekuensi PWM yang diinginkan. Banyaknya proses dalam RPi sendiri dapat menyebabkan CPU menjadi sibuk dan switching ke proses untuk produksi PWM menjadi sedikit lebih lama dari yang normalnya atau dengan kata lain terjadi delay. Namun, karena clock speed RPi jauh lebih besar dari clock speed minimal yang dibutuhkan , delay switching tersebut dapat di-ignore. Ya, begitulah Sabtu saya hari ini. Sekian.

Oh ya, malam ini malam Minggu. Untuk kalian dimana pun berada, pesan dari mimin “Have a nice day! Have fun!”😀

@r_gkt

Posted on Saturday, 10 May 2014, in 1. Bookmark the permalink. Leave a comment.

Comments are closed.

%d bloggers like this: