Seluruh Artikel

Dingdong Bartop Raspberry Pi (Part 5. Software Setup)

Selamat datang kembali, akhirnya kita sampai pada bagian terakhir DIY dingdong ukuran bartop. Pada bagian ini akan difokuskan pada software setup yang digunakan untuk dingdong bartop rasberry, yaitu Recalbox (alternatif Retropie), salah satu open-source software yang dapat mengubah Raspberry Pi (atau PC standard) menjadi console retro-game.

Pengaturan Software

Untuk mendalami lebih dalam, akan di bahas terlebih dahulu mengenai ROMS, BIOS, Linux, EmulationStation, dsb.

Apa itu Emulator?

Emulator adalah software setup yang membuat komputer menjadi seperti komputer lain. Pada skenario yang dilakukan adalah “emulator” Raspberry Pi dengan Recalbox SD Image yang telah terinstall di dalamnya. Software tersebuat akan membuat Raspberry Pi seperti video game arcade ataupun console. Recalbox Image meliputi berbagai macam emulator seperti Arcade, Sega, Nintendo, NeoGeo, dsb.

Apa itu Recalbox SD Image?

Image ini merupakan Recalbox yang sudah terinstall dan terkonfigurasi di dalam SD Card termasuk berbagai emulator yang di atur melalui Emulation Station. Emulator dapat ditambahkan melalui Recalbox GUI. Pendek kata, semua yang dibutuhkan untuk memainkan game telah siap, namun dikurangi game ROM dan sistem BIOS.

Untuk informasi lebih jelas anda dapat mengunjungi Recalbox dan EmulationStation.

Apa itu ROM?

ROM adalah versi digital dari game catridge (kaset game), CD, DVD ataupun segala bentuk fisik dari format digital. Menggunakan ROM pada suatu emulator sama artinya dengan memasukan kaset ke dalam mesin video game (seperti Sega atau Super Nintendo). ROM memiliki kekayaan intelectual dan tidak termasuk di dalam Recalbox.

Apa itu BIOS?

BIOS adalah bagian kecil dari suatu software yang memerintahkan hardware untuk bekerja sesuai dengan perintah. Sebagian besar dari emulator memerlukan BIOS agar system dapat teremulasi dengan benar, sehingga diperlukan file BIOS. Sama seperti ROM, BIOS memiliki kekayaan intelektual dan tidak termasuk dalam paket Recalbox.

Menginstall Recalbox

Install Recalbox pada Raspberry Pi sangat mudah, anda dapat melihat detail pada link ini.  Namun, saya akan memberitahukan yang jauh lebih mudah dan cepat (sudah termasuk, game ROM, BIOS, dll) sehingga anda tidak perlu lagi download game, karena sebagian besar sudah termasuk di dalam paket SD Card Image 32GB.

  1. Siapkan Micro SD Card 32 GB
  2. Download pre-installed 32GB image pada link ini. Perhatikan bahwa anda harus memilih Image yang berukuran sama dengan SD Card anda.
  3. Install Etcher untuk memasukkan image yang telah anda download pada point sebelumnya pada SD Card anda.
  4. Setelah proses pembuatan Recalbox Image selesai. Anda tinggal memasukan SD Card tersebut ke dalam Raspberry Pi 3B/3B+ anda.
  5. Voila!!! Anda telah memiliki dingdong ukuran bartop dengan ribuan games yang siap untuk dimainkan.

Sebelum memulai bermain game, anda terlebih dahulu harus mengatur settingan kontroller. Disarankan untuk menggunakan keyboard komputer dalam menavigasikan ke menu yang di tuju. Key mapping untuk keyboard dapat anda temukan pada link ini. Kontroller player 2 sebaiknya terlebih dahulu di setting, karena memiliki kekurangan tombol push button dibandingkan player 1. Kelebihan tombol pada kontroller player 1 dijadikan sebagai hotkey agar dapat keluar dari game jika anda ingin mengganti dengan game lain atau untuk fungsi save state, take screenshot, dll.

software setup
software setup

Secara default, tampilan GUI Recalbox Image 32GB yang telah terinstall seperti pada gambar di bawah ini. Jika anda ingin mengganti theme tampilan utama, anda dapat mengubahnya sesuai dengan selera.

software setup

Gambar di bawah ini adalah daftar game pada mesin console Capcom. Daftar tersebut telah dilengkapi oleh screnshoot, video preview dan keterangan game (sayangnya berbahasa Portugis).

software setup

Selamat, anda telah berhasil menginstall Recalbox beserta ribuan games dan bermacam-macam videogame console. Saatnya memainkan game favorit anda, terutama game nostalgia tahun 90an. :)

software setup

Akhirnya kita selesai dengan tutorial bagian terakhir membuat game console classic yang fokus pada pengaturan software dingdong bartop rasberry pi.

Seperti biasa, jika anda ada pertanyaan, komentar, masukan, ide-ide kreatif, anda dapat menuliskannya pada komentar di bagian bawah postingan ini.

Terima kasih telah membaca tutorial ini dan tetap stay tuned untuk tutorial-tutorial menarik lainnya pada blog ini yang dapat anda lihat pada bagian home.

Cherrs!!!

Read More
Dingdong Bartop Raspberry Pi (Part 4. Pemasangan Hardware)

Pemasangan Hardware

Selamat datang kembali pada tutorial pembuatan dingdong bartop menggunakan raspberry pi hardware. Pada bagian ke-4 akan di bahas mengenai pemasangan hardware lainnya.

Sebelum memulai pekerjan, ada baiknya menyiapkan selotip elektrik untuk memastikan tidak ada bagian konduktor yang terbuka. Pada pemasangan set hardware ini, stop kontak 2 socket sudah cukup untuk menjalankan sistem.

Langkah selanjutnya adalah membuka bagian dalam stop kontak, lalu sambungkan kabel pada saklar Playstation 2. Socket tersebut dilengkapi dengan saklar on-off. Socket ini membutuhkan kabel mata dua untuk menghubungkan saklar dari stopkontak sumber listrik utama.

Setelah selesai pemasangan kabel, tempatkanlah pada lubang di bagian bawah kabinet seperti yang telah dijelaskan pada tutorial sebelumnya dan dapat di lihat pada gambar di bawah ini.

dingdong bartop pemasagan hardware
dingdong bartop pemasagan hardware
dingdong bartop pemasagan hardware

Untuk pemasangan sound system, anda cukup menggunakan yang sederhana dan murah. Sumber suara yang digunakan adalah speaker PC USB powered. USB port digunakan sebagai sumber listrik dan audio jack 3.5mm sebagai kabel input pada Raspberry Pi.

dingdong bartop pemasagan hardware

Selanjutnya adalah pemasangan komponen-komponen joystick yang terdiri dari USB Encoder, USB cable, push button, joystick arah, dan kabel konektor.

dingdong bartop pemasagan hardware

Perlu diperhatikan ketika memasang push button, urutan pemasangan harus sesuai dan sama pada masing-masing konektor kontroller (player 1 dan 2). Misalnya, pada kontroler player 1 untuk button A, B, C di mulai dari port paling kiri, maka untuk controller player 2 pun harus di mulai dari kiri dan berurutan.  Mungkin ini adalah software bugs yang ada pada Recalbox, walaupun telah melakukan button assignment dengan sesuai, namun Recalbox akan tetap menggunakan konfigurasi terakhir untuk kedua kontroller tersebut (akan dijelaskan pada bagian software).

Selain dari posisi push button, sama halnya dengan posisi joystick arah, orientasi posisinya pun harus sama antara kontroller 1 dan 2.

dingdong bartop pemasagan hardware

Perhatikan gambar yg di beri tanda lingkaran, tanda panah harus menghadap ke atas agar orientasi output sesuai dengan input yang di terima encoder. Jika terbalik dalam pemasangan, maka tidak akan dapat tertedeksi.

dingdong bartop pemasagan hardware

Jumlah kabel dari joystick arah ke encoder berjumlah 5 kabel, sedangkan dari encoder ke USB port adalah 4 kabel.

dingdong bartop pemasagan hardware

Gambar di atas merupakan illustrasi pemasangan kabel pada encoder. Namun, urutan pengerjaan yang sebenarnya adalah memasang seluruh komponen joystick pada kabinet kayu kontrol panel terlebih dahulu.

Dua gambar di bawah adalah illustrasi setelah pemasangan seluruh komponen kontroller di dalam kabinet selesai.

dingdong bartop pemasagan hardware
dingdong bartop pemasagan hardware

Hasil akhir pemasangan hardware dapat di lihat pada gambar di bawah ini. Mungkin terlihat cukup berantakan, namun, itu yang terbaik dapat dilakukan walaupun sudah menggulung kabel-kabel dan mengikatnya. Hal terpenting adalah device bekerja dengan baik dan tidak mengganggu satu sama lain dalam hal penempatan hardware.

dingdong bartop pemasagan hardware

Ini adalah bagian akhir part 4. Pada bagian ini telah di bahas beberapa part hardware raspberry pi untuk dingdong bartop dan bagaimana cara memasangnya.

Pada bagian terakhir (part 5) akan dijelaskan bagaimana meng-install software Recalbox pada Raspberry Pi 3B/3B+.  Penjelasan yang akan di bahas meliputi, persiapan awal, konfigurasi software, copy games dan yang terpenting adalah siap untuk dimainkan dengan jumlah game yang sangat banyak.

Seperti biasanya, jika ada pertanyaan, komentar ataupun masukan, anda dapat menulisnya pada kolom komentar di dibawah postingan ini.

Sampai jumpa lagi pada tutorial selanjutnya (terakhir) pada topik pembuatan dingdong ukuran bartop.

Terima kasih

Read More
Dingdong Bartop Raspberry Pi (Part 3. Pemasangan kabinet)

Bagian ketiga ini akan di bahwas mengenai pemasangan kabinet eksterior dingdong raspberry pi. Pada bagian ini penggunaan peralatan DIY sangatlah kritikal, seperti yang telah dijelaskan pada bagian ke-2 tutorial ini. Peralatan seperti jigsaw, circular saw, obeng listrik, bor tangan, dan klem sangat dibutuhkan.

Memotong kayu

Hal pertama yang dilakukan adalah memotong kayu MDF ketebalan 15mm dari ukuran standard 1220 x 2440mm menjadi bagian-bagian kecil sesuai dengan ukuran yang telah di bahas pada tutorial sebelumnya.

Karena ukurannya besar, pemotongan dilakukan dengan menggunakan circular saw menjadi 3 bagian medium (bagian A, B dan C pada gambar teknik).

Perlu diperhatikan bahwa ukuran table saw yang saya buat tidak terlalu rigid, sehingga perlu bantuan orang lain ketika memotong bagian A, B dan C, karena memiliki panjang sekitar 1000mm, sedangkan maximal panjang pemotongan table saw tersebut adalah 620mm. Oleh karena itu pemotongan tidak menggunakan table saw.

pemasangan kabinet raspberri pi dingdong bartop

Hasil dari pemotongan kayu mdf tersebut akan terlihat seperti pada gambar di bawah ini. Total jumlah bagian kayu potong untuk 2 buah dingdong ukuran bartop adalah 25 potong dengan masing-masing ukuran berbeda sesuai dengan design yang telah ditentukan.

pemasangan kabinet raspberri pi dingdong bartop

Langkah selanjutnya adalah memotong bagian sisi kabinet yang memiliki perbedaan bentuk dibandingkan dari yang lain karena memiliki kontur berbelok-belok. Sebelum proses pemotongan dilakukan, cetaklah dokumen bagian sisi kabinet dengan skala 1:1 dengan menggunakan printer (jangan lupa untuk mencentang “tile mode”). Lalu, tempelkan pada kayu, dan jiplak hasil kontur tersebut menggunakan pulpen atau pensil pada bagian permukaan kayu.

pemasangan kabinet raspberri pi dingdong bartop

Agar pekerjaan pemotongan lebih efficient, 2 buah kayu yang disiapkan untuk bagian sisi di tumpuk dan dikencangkan menggunakan klem (gambar di bawah). Pastikan posisi antar layer tersebut sejajar, supaya memiliki hasil yang simetris.

Jigsaw digunakan pada proses pemotongan kontur kayu tersebut, jangan terlalu terburu-buru terutama pada bagian yg berbelok-belok, ikuti kontur jalur pemotongan dengan perlahan agar memperoleh hasil yang maksimal.

Dengan metode ini, sekali proses pemotongan dapat menghasilkan satu pasang bagian sisi yang simetris. Sehingga waktu pengerjaan menjadi cepat, walaupun memiliki kekurangan karena cukup banyak bagian kayu yang terbuang.

pemasangan kabinet raspberri pi dingdong bartop
pemasangan kabinet raspberri pi dingdong bartop

Pemasangan kabinet

Setelah proses pemotongan kayu selesai sesuai dengan bentuk dan ukurannya, maka dapat dilanjutkan proses menggabungkan potongan kayu tersebut, sehingga menjadi kabinet dingdong yang utuh.

Sebelum membangun kabinet dingdong, balok penyangga perlu di pasang terlebih dahulu. Penyangga ini di pasang pada bagian dalam kabinet sebagai dudukan antara satu kayu dengan yang lainnya.

Anda dapat mencetak pada kertas dengan skala 1:1, seperti yang telah dilakukan pada proses pemotongan bagian sisi kabinet. Setelah di tempel pada bagian dalam, jangan lupa untuk menjiplak posisi kayu penyangga ini pada permukaan kayu dengan menggunakan pensil/pulpen.

Untuk memastikan kesejajaran balok penyangga pada sisi potongan kayu lainnya, penggaris panjang akan sangat membantu pekerjaan anda. Sebagai gambaran, anda dapat membayangkan efek cermin pada kaca, sehingga dari satu sisi ke sisi lainnya memiliki posisi yang simetris.

pemasangan kabinet raspberri pi dingdong bartop

Ukuran balok penyangga tersebut memiliki panjang 90mm dengan ketebalan balok 15 x 20 mm, di buat dengan bahan kayu sisa pemotongan, sedangkan untuk menyangga control panel (tempat joystick) memiliki ukuran panjang 130mm dengan ketebalan yang sama. Balok-balok kecil tersebut direkatkan menggunakan lem kayu berwarna putih, setelah sekitar 30 menit, dapat di perkuat dengan paku kecil yang panjangnya 30mm.

pemasangan kabinet raspberri pi dingdong bartop

Hasil akhir bagian dalam kabinet dapat di lihat pada gambar di bawah ini. Penyangga – penyangga ini lah yang akan menopang control panel, pelindung monitor, dudukan bagian atas dan dudukan monitor.

pemasangan kabinet raspberri pi dingdong bartop

Bagian dasar dan sisi kabinet direkatkan menggunakan lem kayu dan paku kecil agar struktur menjadi rigid dan tidak mudah goyang bahkan copot. Setelah semua bagian kayu terpasang, maka terlihatlah seperti gambar di bawah ini.

pemasangan kabinet raspberri pi dingdong bartop
pemasangan kabinet raspberri pi dingdong bartop
https://youtu.be/mddlVqreTPo

Melubangi kayu

Setelah proses pembuatan kabinet yang rigid selesai (bagian control panel belum terpasang) tahap selanjutnya adalah melubangi kayu menggunakan holesaw dan bor tangan untuk dudukan tombol dan joystick. Jumlah lubang yang dibutuhkan adalah:

  • 2 lubang ukuran 19mm untuk joystick
  • 12 lubang ukuran 29mm pada main control panel
  • 2 lubang ukuran 30mm pada bagian bawah control panel
  • 1 lubang ukuran 26mm  pada bagian bawah control panel
pemasangan kabinet raspberri pi dingdong bartop

Hasil dari proses pelubangan kayu menggunakan holesaw dapat di lihat pada gambar selanjutnya.

pemasangan kabinet raspberri pi dingdong bartop

Setelah kayu selesai dilubangi, selanjutnya adalah proses pemasangan kayu bagian control panel. Pemasangan dilakukan dengan menggunakan mur dan baut (tidak fixed menggunakan lem dan paku). Hal ini dilakukan untuk memberikan kemudahan, jika sewaktu-waktu ada kerusakan part, sehingga mudah dalam proses penggantiannya.

Monitor yang digunakan untuk dingdong ukuran bartop ini adalah 19in. Hal yang perlu di perhatikan adalah posisi lubang penyangga monitor tersebut harus sejajar dengan lubang pada kayu penyangga monitor dan berada tepat pada posisi di tengah-tengah.

pemasangan kabinet raspberri pi dingdong bartop

Gambar di atas adalah kayu penopang layar monitor yang duduk pada balok penyangga dan direkatkan menggunakan mur-baut.

Pemasangan PVC Sheet

Tahap pemasangan PVC sheet hampir sama rumitnya seperti pada proses assembly, karena harus terlebih dahulu mempelajari cara finising menggunakan material tersebut. Hal pertama yang dilakukan adalah dengan menjiplak kontur dari setiap sisi luar (exterior) kabinet dingdong. Selanjutnya adalah memotong nya dengan menggunakan gunting dan cutter.

pemasangan kabinet raspberri pi dingdong bartop

Setelah selesai memotong berdasarkan ukuran yang sesuai, siapkan lem kuning (Aibon / Fox). Lumasi bagian dalam PVC Sheet dan bagian permukaan kayu yang akan direkatkan. Ratakan dengan menggunakan alat scrapp (yang biasa di pakai untuk mendempul mobil). Pastikan bagian yang akan direkatkan terlumasi sepenuhnya oleh lem kuning, tunggu kira-kira 3-5 menit.  Proses pemasangan PVC pun harus berhati-hati dan jangan tergesa-gesa, karena jika sudah menempel antar kedua permukaan tersebut, akan sulit untuk membukanya kembali dan dapat membuat permukaan kayu rusak atau merobek bahan PVC sheet.

pemasangan kabinet raspberri pi dingdong bartop

Gambar di bawah ini adalah hasil akhir exterior kabinet dingdong setelah dilapisi oleh PVC sheet.

pemasangan kabinet raspberri pi dingdong bartop

Penempelan Sticker Vinyl

Bagian ini optional, anda dapat mengabaikannya jika sudah merasa puas hanya dengan menggunakan PVC sheet sebagai exterior. Namun, jika anda merasa itu monoton dan tidak menarik di pandang mata, maka tahap ini tidak dapat anda lewatkan.

Bagian kedua pada tutorial ini (desain kabinet menggunakan CAD) menjadi essensial, karena exported file dari Autodesk Inventor dapat berupa pdf file yang nantinya dapat di import menggunakan software desain. Pada proses ini Adobe Photoshop digunakan, untuk meng-import file pdf berdasarkan dimensi dan bentuk permukaan kabinet dingdong dengan skala 1:1.

pemasangan kabinet raspberri pi dingdong bartop

Setelah anda cukup puas dengan desain sticker sesuai dengan selera anda, selanjutnya export file tersebut ke dalam file ekstensi “.jpg”. Selanjutnya anda dapat menggunakan jasa printing terdekat yang dapat mencetak sticker dengan ukuran besar. Bahan yang digunakan untuk sticker ini adalah Vinyl glossy dan hasilnya dapat di lihat pada gambar di bawah ini.

pemasangan kabinet raspberri pi dingdong bartop

Selanjutnya kembali pada pekerjaan kerajinan tangan, siapkan penggaris panjang, gunting dan cutter untuk proses pemotongan sticker.

pemasangan kabinet raspberri pi dingdong bartop

Proses penempelan sticker sama seperti pada pemasangan PVC sheet, namun sedikit lebih mudah karena sticker sudah memiliki bahan perekat. Pastikan saat penempelan, jangan terlalu pas, namun lebihkan sedikit untuk mengantisipasi ada bagian permukaan yang tidak tertutup. Bagian berlebih ini dapat di potong menggunakan cutter, sehingga permukaan lebih rapih dan pas.

pemasangan kabinet raspberri pi dingdong bartop

Pemasangan gagang pintu dan saklar

Tahap terakhir pada bagian ketiga ini adalah, pemasangan handle pintu dan lubang untuk saklar.

pemasangan kabinet raspberri pi dingdong bartop

Handle pintu dapat di beli di toko bangunan, carilah ukuran yang paling kecil untuk lemari. Sedangkan saklar sumber listrik menggunakan saklar Playstation 2, ukuran lubang untuk dudukan saklar dapat disesuaikan dengan dimensinya.

pemasangan kabinet raspberri pi dingdong bartop

Gambar di atas merupakan hasil akhir dari tahap proses pemotongan kayu, pemasangan eksterior dingdong raspberry pi (tutorial part 3).

Tutorial selanjutnya adalah proses pemasangan hardware dan kelistrikan.

Jika ada pertanyaan, ide yang lebih baik, kritik ataupun saran anda dapat menulisnya pada bagian komentar.

Sampi jumpa kembali pada tutorial ke-4...

Stay tuned...

Terima Kasih

Read More
Dingdong Bartop Raspberry Pi (Part 2. Pembuatan Prototype )

Pada bagian kedua ini akan membahas mengenai pembuatan prototype dingdong raspberry pi dengan menggunakan kardus. Pada bagian pertama telah dijabarkan bahan-bahan yang diperlukan, setelah semuanya terkumpul kita akan mendalami design dan membuat prototype cabinet 1:1.

Peralatan dan Pembuatan Prototype

Peralatan yang diperlukan

Untuk membuat dingdong ukuran bartop, diperlukan beberapa peralatan DIY. Pada bagian ini akan dipaparkan beberapa alat yang dapat membuat pekerjaan jadi lebih mudah. Sebelum membuat list peralatan tersebut, ada baiknya membedakan antara bahan-bahan dan peralatan. Secara sederhana dapat dijelaskan bahwa peralatan digunakan untuk membuat sesuatu berdasarkan bahan/material yang ada.

Kembali kepada topik utama, list peralatan tersebut adalah sebagai berikut:

  • Jigsaw. Saya menggunakan jigsaw merk Modern, karena jujur saja saya tidak terlalu  mengerti mengenai spefikasi alat ini. Saya memilih ini karena ada cahaya laser, berhubung saya bukan tukang kayu, jadi membutuhkan guide agar potongan kayunya tidak bengkok-bengkok.
Pembuatan prototype dingdong bartop raspberry pi
Jigsaw
  • Circular saw. Alat ini digunakan untuk memotong kayu ukuran besar dengan lebih cepat dan tingkat kelurusannya lebih tinggi dibandingkan dengan jigsaw.
Pembuatan prototype dingdong bartop raspberry pi
Circular saw
  • Mesin Bor. Mesin ini digunakan untuk membuat lubang agar mempermudah memasukkan baut. Selain itu karena banyak mata bor yang berbeda, ada diantaranya dapat digunakan sebagai alat grinding untuk memperhalus kayu bekas potongan.
Pembuatan prototype dingdong bartop raspberry pi
Mesin bor tangan
  • Hole Saw. Mata bor ini digunakan untuk melubangi kayu tempat tombol dingdong. Hole saw ini memiliki diameter yang bervariasi, tergantung kepada kebutuhan pemakai. Dalam hal ini digunakan untuk melubangi tempat joystick dingdong ukuran 19mm(joystick), 26mm (tombol kecil) dan 30mm (tombol besar).
Pembuatan prototype dingdong bartop raspberry pi
Hole saw kayu

- Klem penawahn.  Klem ini sangat membantu untuk mempermudah proses pemotongan, pengeleman dan pemakuan yang dapat membuat posisi kayu steady.

Pembuatan prototype dingdong bartop raspberry pi
Klem penahan
  • Obeng elektrik. Alat ini digunakan untuk mempermudah dan mempercepat proses pemasangan baut/sekrup.
Pembuatan prototype dingdong bartop raspberry pi
Obeng listrik
  • Sarung tangan dan kacamata. Untuk alasan keselamatan kerja ada baiknya menggunakannya sarung tangan dan kacamata untuk meminimalisasi kecelakaan kerja.
Pembuatan prototype dingdong bartop raspberry pi
Sarung tangan dan kacamata safety
  • Meja kerja. Untuk mempermudah pemasangan dan melakukan pekerjaan dengan memperhatikan aspek ergonomis.
Pembuatan prototype dingdong bartop raspberry pi
Meja kerja Krisbow
  • Table saw (DIY). Meja potong ini digunakan untuk mempermudah proses pemotongan. Saya membuatnya sendiri, untuk mempercepat pemotongan menggunakan circular saw (dipasang di meja kerja tersebut).
Pembuatan prototype dingdong bartop raspberry pi
Meja kerja dan potong (DIY)

Oke, itulah semua peralatan yang dibutuhkan untuk membuat dingdong bartop. Jika anda termasuk orang yang hobi untuk melakukannya sendirian (DIY), mungkin sudah memiliki beberapa peralatan yang telah di jelasakan tersebut. Namun, jika anda memiliki teman ataupun saudara yang memiliki peralatan DIY, anda dapat meminjamnya hingga project ini selesai, daripada anda harus membeli hanya untuk dipakai satu kali.

Design Kabinet

Saya melakukan riset di internet mengenai design bartop dingdong ini. Banyak sekali pilihan yang unik. Namun, pada akhirnya saya membuat design sendiri dengan alasan effisiensi penggunaan material. Artinya, saya mencoba untuk mengoptimalkan satu ukuran triplek standard yang ada di pasaran, sehingga dapat membuat dua buah kabinet dingdong ukuran bartop.

Langkah awal yang dilakukan adalah 3D Modelling dengan menggunakan CAD software Autodesk Inventor karena memiliki lisensinya.

Pembuatan prototype dingdong bartop raspberry pi
3D modelling

Setelah cukup puas dengan desain yang akan digunakan, beserta sticker yang akan di pasang. Tahap selanjutnya adalah mengkonversikan design 3D tersebut ke dalam gambar teknik, untuk mendapatkan gambaran seperti ukuran setiap part cabinet bartop dingdong tersebut.
Proses konversi dari model 3D ke gambar teknik cukup mudah, hanya dengan membuat model ukuran standar kayu triplek yang ada di pasaran, lalu tiap bagian part bartop dingdong diletakkan di atas kayu triplek tersebut.
Hasil nya adalah seperti pada gambar di bawah ini:

Pembuatan prototype dingdong bartop raspberry pi
Gambar teknik [download_after_email id=389]

Part yang kritikal adalah bagian sisi bartop dingdong (7), joystick (3 dan 4). Sehingga kita perlu mencetaknya dengan kertas printer dengan perbandingan 1:1 (sesuai ukuran sebenarnya), lalu ditempelkan pada kayu tersebut sebelum proses pemotongan atau pelubangan kayu agar ukurannya sesuai dengan design yang telah dibuat sebagai guide arah pemotongan kayu.

Exported file dari Autodesk Inventor dapat dalam bentuk pdf maupun langsung mencetaknya menggunakan kertas. Perlu diperhatikan bahwa ketika hendak mencetak design tersebut, pilihan “tile” harus dipastikan ter checklist artinya ukuran model sebenarnya dapat di bagi menjadi beberapa bagian kecil (ukuran A4), lalu hanya tinggal di gabung bagian-bagian kecil tersebut. Namun, jika anda memiliki printer ukuran besar atau menggunakan jasa printing, anda dapat melakukannya hanya dengan 1 kertas besar.

Pembuatan prototype dingdong bartop raspberry pi
Model bagian sisi 1:1

Bentuk persegi panjang kecil-kecil adalah kayu tambahan untuk mensupport bagian-bagian dingdong ukuran bartop, diantaranya adalah layar monitor, control panel joystick, penyangga bagian atas dan penutup sisi monitor.

Membuat Full Scale Prototype

Sebelum memotong kayu, direkomendasikan untuk membuat full scale prototype 1: 1 dengan menggunakan kardus bekas agar dapat dipastikan bentuk dan ukurannya sesuai dengan design. Hal ini diperlukan untuk meminimalisasi kesalahan ketika memotong kayu. Namun, jika anda percaya diri pada kemampuan modelling, mengukur dan memotong, anda tidak perlu melakukannya.

Pembuatan prototype dingdong bartop raspberry pi
Prototype menggunakan kardus

Hal utama yang harus dipertimbangkan adalah ketebalan dari kardus tersebut yang memiliki ketebalan antara 2-3mm, sedangkan kayu yang digunakan adalah 15mm. Pada pengerjaan prototype ini, kesamaan dengan ketebalan kayu tidak terlalu perlua dipertimbangkan, yang penting adalah kesesuaian dimensi terhadap design.

Bahan kardus yang digunakan untuk prototype ini adalah kardus bekas pembelian lemari IKEA, karena memiliki ukuran yang besar. Peralatan yang digunakan untuk memotong cukup sederhana, yaitu menggunakan cutter, gunting, lem dan selotip.

Hasilnya cukup baik bukan? Prototype ini cukup membantu untuk memahami akan seperti apa bentuk cabinet dingdong terlihat pada produk yang sebenarnya.

Link youtube:

https://www.youtube.com/watch?v=vhxFr-xYcRo&feature=youtu.be

Kesimpulan

Pada bagian kedua ini telah dipaparkan peralatan apa saja yang dibutuhkan, membuat model menggunakan CAD dan membuat prototype menggunakan kardus.
Bagian selanjutnya adalah membangun kabinet dingdong...
Stay tuned...

Seperti biasanya, anda dapat memberikan komentar, ide2 lain ataupun pertanyaan pada postingan ini. Terima Kasih

Read More
Dingdong Bartop Raspberry Pi (Part 1. Kebutuhan Bahan)

Pendahuluan dan bahan yang digunakan

Memiliki mesin dingdong adalah salah satu impian saya sejak kecil, hampir setiap weekend ketika masih SD saya selalu berkunjung ke tempat dingdong dari hasil tabungan selama satu minggu. Sekarang banyak supplier yang menjual dingdong, sebagian besar dari luar negeri (China), sehingga membutuhkan biaya yang besar tidak hanya dari harga produk nya sendiri namun termasuk bea cukai dan ongkos kirim ke Indonesia. Pada bagian ini dipaparkan kebutuhan bahan apa saja untuk membuat dingdong bartop menggunakan raspberry pi.

Pada akhir tahun 90an, MAME project (Multiple – Arcade – Machine – Emulator) dan single-board computer seperti NUC dan Raspberry Pi membuat segalanya menjadi lebih mudah. Namun, hanya beberapa orang saja yang memiliki keberanian untuk membuat Arcade Cabinet (mesin dingdong) yang meliputi hardware, software dan ROM agar segalanya berjalan lancar. Oleh karena itu, kebanyakan orang memilih membeli joystick dan bermain game console classic menggunakan Emulator yang dapat dijalankan di PC/Laptop masing-masing.

Saya merupakan salah satu orang yang bermain menggunakan PC dan Joystick hingga pada akhirnya saya memutuskan untuk membuat mesin dingdong yang tidak besar, sehingga tidak memakan tempat di dalam rumah saya.

Mengapa saya memilih yang berukuran kecil tidak seperti mesin dingdong di game center yang memiliki ketinggian 1.8/2m selain dari makan tempat:

  1. Jauh lebih murah dalam hal bahan-bahan dan peralatan lainnya
  2. Lebih mudah membuatnya, karena tidak perlu memotong kayu dengan bentuk yang kompleks
  3. Lebih praktis, terutama jika ingin menempatkannya di rumah berukuran kecil, café atau tempat lainnya. Selain itu ukuran bartop lebih mudah di pindahkan dan dapat disimpan di atas meja.

Positingan saya ini meliputi tutorial ekstensif meliputi instruksi bagaimana membuat nya bersama dengan gambar, grafik dan foto. Karena terlalu panjang penjelasannya, saya akan mencoba membagi nya menjadi beberapa bagian.

Mengapa Membuat Sendiri?

Selain dari yang telah saya jelaskan sebelumnya bahwa harus beli dari luar negeri dan hanya sedikit di Indonesia yang membuat seperti ini. Oleh karena itu saya membuatnya sendiri dan mencoba memasuki pasar game dingdong di Indonesia.

Terlebih keuntungan membuat sendiri dibandingkan dengan membeli ialah design yang lebih custom, dari segi design kabinet, sticker, game pilihan hingga tampilan UI softwarenya yang dapat di ubah-ubah seperti theme wallpaper, video intro dan outro.

Dari semua alasan diatas, yang paling penting adalah kepuasan batin karena membuatnya dengan kedua tangan sendiri dan blue printnya ada pada saya, sehingga akan mudah jika ada pesanan yang banyak.

kebutuhan bahan dingdong bartop raspberry pi
Gambar 1. Dingdong bartop Sonic

Namun, jika anda merasa cukup untuk meluangkan waktu dan sangat merepotkan untuk menggambar, menggergaji, memotong, memasang sekrup, mengamplas, mengecat, menempel lapisan pelindung (dan masih banyak lagi) untuk melakukan kerja keras tersebut, anda dapat menyuruh tukang kayu langganan, lalu bagian hardware dan software dapat anda pasang sendiri.

Bahan-bahan yang digunakan

Mari kita mulai dengan daftar yang komprehensif mengenai kebutuhan bahan apa yang diperlukan untuk membuat dingdong bartop seperti gambar diatas.

  • Kayu MDF ukuran standard (1220 x 2440 mm) ketebalan 15mm. Kayu ukuran tersebut saya optimalisasi desainnya, sehingga dapat membuat 2 pcs arcade bartop.
kebutuhan bahan dingdong bartop raspberry pi
[Kebutuhan bahan] Kayu MDF
  • Monitor HDMI 19 inch. Menggunakan Merk SPC, karena harga murah
  • USB Stereo speaker. Ukurannya jangan yang besar karena space di dalam kabinet tidak luas.
  • Raspberry Pi 3B/B+. Karena saya menggunakan Recalbox emulation, sehingga saya tidak menggunakan Pi 4. Namun, jika anda ingin menggunakan Pi 4, anda bisa install RetroPie image.
  • Joystick dingdong. Ini sangat jarang yang jual di Indonesia, sehingga harus membeli di Aliexpress.Namun, terkadang ada yang jual di shopee
kebutuhan bahan dingdong bartop raspberry pi
[Kebutuhan bahan] Joystick
  • Micro SD Card 32GB. Saya sarankan menggunakan VGEN karena lifetime warranty. Untuk ukuran dapat menyesuaikan dengan kebutuhan anda. Untuk SD card yang sudah di install Recalbox emulation plus full game, anda dapat memesan kepada saya.
  • Saklar PS2 dan kabel. Untuk menghubungkan antara kabel power 220V ke stop kontak
kebutuhan bahan dingdong bartop raspberry pi
[Kebutuhan bahan] Konektor power
  • Stop kontak 4 mata. Stop kontak ini digunakan
kebutuhan bahan dingdong bartop raspberry pi
[Kebutuhan bahan] Stop kontak
  • Lem kayu (putih)

Lem ini digunakan untuk menempelkan antar permukaan kayu. Ketika sudah kering lem ini sangat kuat.

kebutuhan bahan dingdong bartop raspberry pi
[Kebutuhan bahan] Lem kayu (putih)
  • Lem Kayu (kuning). Lem ini digunakan untuk perekat antara PVC Sheet/decosheet terhadap permukaan kayu
kebutuhan bahan dingdong bartop raspberry pi
[Kebutuhan bahan] Lem kayu (kuning)
  • Lapisan PVC Sheet. Lapisan ini digunakana untuk melindungi kayu bagian exterior. Alasan saya menggunakan PVC Sheet dibandingkan dengan cat kayu adalah dari segi ketahanan PVC terhadap cairan
  • Lapisan Decosheet. Lapisan ini di pasang pada interior, dan edging kayu. Decosheet mirip dengan PVC sheet, namun lebih mudah di tangani, lebih tipis dan murah.

Kesimpulan

Pada part pertama ini, djelaskan mengenai arcade bartop dan bahan-bahan yang digunakan untuk membuatnya.
Pada bagian selanjut nya akan dijabarkan mengenai alat-alat yang digunakan, design cabinet dan pembuatan prototype.

Jika anda memiliki pertanyaan, anda dapat menulisnya pada bagian komentar postingan ini..stay tuned...
Sampai bertemu lagi pada postingan selanjutnya.

Read More
Tensorflow Object Detection Versi 1.13 | Tutorial Praktis

Tutorial ini di berisi mengenai tensorflow object detection dengan neural network dengan object yang sesuai dengan yang Anda inginkan menggunakan Tensorflow Framework API. Pada akhir tutorial ini kita akan dapat mengenali object dengan tanda segi empat pada gambar, video ataupun webcam.

Tensorflow Object Detection - CUDA
Tensorflow Object Detection - Cuda

Pendahuluan

Tutorial ini memaparkan bagaimana cara menggunakan API Tensorflow Object Detection untuk training klasifikasi object detection dari beberapa object tertentu pada windows 10. Namun, tutorial ini dapat digunakan pada OS yang lain seperti Mac ataupun Linux, hanya saja akan ada sedikit perbedaan prosedurnya pada command terminal OS yang bersangkutan. Pada tutorial ini, versi yang digunakan adalah Tensorflow-GPU v1.13.1 dan Python 3.5.

Tensorflow-GPU memiliki kemampuan lebih dalam hal kecepatan processing karena oleh VGA grafik card. Berdasarkan pengalaman, Tensorflow biasa (CPU) memiliki kecepatan 8x lebih lambat (misal jika kita menggunakan GPU membutuhkan waktu 1 jam untuk training model, pada Tensorflow CPU membutuhkan waktu 8 jam). Tensorflow CPU pada tutorial ini pun dapat digunakan, namun akan lebih lambat dalam hal processing. Jika anda ingin menggunakan Tensorflow CPU, maka, tidak perlu install CUDA dan CuDNN.

Install software yang dibutuhkan

Install anaconda, CUDA, dan cuDNN

Download Anaconda, lalu install pada computer anda. Perlu diperhatikan bahwa, installer Anaconda terbaru sudah menggunakan Python versi 3.7, sedangkan pada tutorial ini kita menggunakan Python 3.5. Namun, kita tidak perlu khawatir, karena kita akan menggunakan virtual environment.

Tahap selanjutnya adalah menginstall CUDA dari situs resmi NVIDA.  Perlu diperhatikan bahwa, versi CUDA dan cuDNN harus sesuai dengan versi Tensorflow yang kita gunakan.  Karena kita menggunakan Tensorflow 1.13.1, sehingga versi yang dibutuhkan adalah:

Tensorflow Object Detection - Versi GPU
Tensorflow Object Detection - Versi GPU

Untuk download cuDNN, kita harus membuat account NVIDIA. Setelah download cuDNN selesai sesuai dengan versinya, lalu kita ikuti cara installasi cuDNN.

Setup Folder Tensorflow dan Anaconda virtual environment

Tensorflow Object Detection API membutuhkan struktur folder yang spesifik sesuai dengan Github Repository nya. Selain itu, kita membutuhkan beberapa Python package tambahan dan juga variable PATH dan PYTHONPATH.

Download TensorFlow Object Detection API repo dari GitHub


Buatlah folder baru di dalam drive C: dengan nama “tensorflow1”. Folder ini meliputi Tensorflow framework untuk object detection, termasuk objek training tensorflow, data training, klasifikasi yang telah di train, konfigurasi file dan hal lain yang dibutuhkan untuk mendeteksi suatu objek.

Download/clone Tensorflow object detection repo pada link GitHub ini untuk versi 1.13. Versi terbaru adalah 2.0, namun jika kita menggukan versi 2.0, maka,  akan ada banyak perubahan pada library dan tentunya mempersulit hidup kita hingga versi yang telah stabil di rilis oleh Google.

Setelah proses cloning selesai, struktur folder akan seperti: C:\tensorflow1\models:

Tensorflow Object Detection - Struktur file
Tensorflow Object Detection - Struktur file

Download Tensorflow model Zoo


Tensorflow memiliki beberapa model pendeteksi objek (telah di training tensorflow menggunakan arsitektur neural network yang spesifik), pre trained model tersebut dapat ditemukan pada link ini. Model-model tersebut memiliki arsitektur yang berbeda. Ada yang sangat cepat dalam mendeteksi objek, namun memiliki akurasi yg kurang baik (seperti SSD mobilenet). Selain itu, ada yang lebih lambat mendeteksi objek dan memiliki akurasi yang lebih akurat (seperti Faster-RCNN model).

Kita dapat memilih model sesuai dengan keperluan masing-masing, jika kita ingin menggunakan smartphone atau Raspberry Pi, maka pilih lah SSD-Mobile net. Namun, jika kita memiliki komputer yang cepat, maka model RCNN  dapat digunakan.

Pada tutorial ini saya menggunakan laptop ASUS ROG GL502VT yang memiliki VGA NVIDIA GTX 970M 16GB. Oleh karena itu, kita akan menggunakan model Faster-RCNN-Inception-V2 model.

Setelah proses download Zoo model yang akan kita pakai selesai, selanjutnya adalah mengekstrak file tersebut, lalu letakkan di dalam folder C:\tensorflow1\models\research\object_detection.

Selanjutnya adalah download/clone full repository dari GitHub Edje Electronics, ekstrak zip file, lalu tempatkan di dalam folder C:\tensorflow1\models\research\object_detection.

Tensorflow Object Detection - Ekstrak Zip file
Tensorflow Object Detection - Ekstrak Zip file

Karena kita akan mengunakan object detector berdasarkan yang kita inginkan, maka kita dapat menghapus file di bawah ini (folder harus tetap ada)

  • Semua file di dalam \object_detection\images\train and \object_detection\images\test
  • File “test_labels.csv” dan “train_labels.csv” di dalam  \object_detection\images
  • Semua file di dalam \object_detection\training
  • Semua file di dalam \object_detection\inference_graph

Setup Anaconda virtual environment


Langkah selanjutnya adalah setup Anaconda virtual environment untuk menjalankan tensorflow-gpu. Dari windows search, cari “Anaconda prompt” dan jalankan sebagai administrator.
Selanjutnya kita akan membuat environment bernama “tensorflow1” dengan cara mengeksekusi perintah:
C:\> conda create -n tensorflow1 pip python=3.5
Lalu aktivasi environment “tensorflow1” dan upgrade pip
C:\> activate tensorflow1
(tensorflow1) C:\>python -m pip install --upgrade pip
Selanjutnya install tensorflow-gpu dalam environment tersebut dengan mengeksekusi:
(tensorflow1) C:\> pip install --ignore-installed --upgrade tensorflow-gpu==1.13.1
Lalu kita harus install beberapa paket lainnya yang dibutuhkan oleh tensorflow yaitu:

(tensorflow1) C:> conda install -c anaconda protobuf
(tensorflow1) C:> pip install pillow
(tensorflow1) C:> pip install lxml
(tensorflow1) C:> pip install Cython
(tensorflow1) C:> pip install contextlib2
(tensorflow1) C:> pip install jupyter
(tensorflow1) C:> pip install matplotlib
(tensorflow1) C:> pip install pandas
(tensorflow1) C:> pip install opencv-python

Mengkonfigurasikan variable environment pada PYTHONPATH


Variable PYTHONPATH harus ditentukan dan  mengarah kepada direktori \models, \models\research, dan \models\research\slim dengan cara mengeksekusi perintah:

(tensorflow1) C:> set PYTHONPATH=C:\tensorflow1\models;C:\tensorflow1\models\research;C:\tensorflow1\models\research\slim

Catatan: Kita harus selalu setup ulang PYTHONPATH setiap kali keluar dari virtual environment “tensorflow1”. Untuk memastikan bahwa path telah sesuai, kita dapat memeriksanya dengan perintah “echo %PYTHONPATH%”

Compile Protobufs dan eksekusi setup.py


Selanjutnya adalah mengkompilasikan file protobuf yang diperlukan untuk parameter model dan konfigurasi training pada tensorflow.

Pada Anaconda Command prompt, arahkan directory ke \models\research:

(tensorflow1) C:\> cd C:\tensorflow1\models\research

Lalu, copy dan paste perintah ini:

protoc --python_out=. .\object_detection\protos\anchor_generator.proto .\object_detection\protos\argmax_matcher.proto .\object_detection\protos\bipartite_matcher.proto .\object_detection\protos\box_coder.proto .\object_detection\protos\box_predictor.proto .\object_detection\protos\eval.proto .\object_detection\protos\faster_rcnn.proto .\object_detection\protos\faster_rcnn_box_coder.proto .\object_detection\protos\grid_anchor_generator.proto .\object_detection\protos\hyperparams.proto .\object_detection\protos\image_resizer.proto .\object_detection\protos\input_reader.proto .\object_detection\protos\losses.proto .\object_detection\protos\matcher.proto .\object_detection\protos\mean_stddev_box_coder.proto .\object_detection\protos\model.proto .\object_detection\protos\optimizer.proto .\object_detection\protos\pipeline.proto .\object_detection\protos\post_processing.proto .\object_detection\protos\preprocessor.proto .\object_detection\protos\region_similarity_calculator.proto .\object_detection\protos\square_box_coder.proto .\object_detection\protos\ssd.proto .\object_detection\protos\ssd_anchor_generator.proto .\object_detection\protos\string_int_label_map.proto .\object_detection\protos\train.proto .\object_detection\protos\keypoint_box_coder.proto .\object_detection\protos\multiscale_anchor_generator.proto .\object_detection\protos\graph_rewriter.proto .\object_detection\protos\calibration.proto .\object_detection\protos\flexible_grid_anchor_generator.proto

Perintah diatas akan menghasilkan python file xxx_pb2.py dari setiap xxx.proto di dalam folder  \object_detection\protos

Setelah itu, eksekusi perintah dari direktori

C:\tensorflow1\models\research:
(tensorflow1) C:\tensorflow1\models\research> python setup.py build
(tensorflow1) C:\tensorflow1\models\research> python setup.py install

Mengumpulkan dan melabeli gambar


Kita telah menyiapkan API Tensorflow Object Detection dan kita butuh mengumpulkan banyak gambar untuk di training tensorflow. Pada tutorial ini kita akan menggunakan kemasan botol plastic dan kaleng pada minuman yang berbeda merk.

Mengumpulkan gambar


Tensorflow membutuhkan ratusan objek gambar untuk di train agar mendapatkan hasil deteksi objek yang bagus.

Tensorflow Object Detection - Spesimen Objek Training
Tensorflow Object Detection - Spesimen Objek Training

Objek yang akan kita kenali ada enam macam jenis spesimen, yaitu: botol plastic (Aqua, Prima dan Le Minerale) serta kemasan minuman kaleng (Sprite, Coca-cola dan Pocari Sweat).

Pastikan ukuran gambar tidak terlalu besar, oleh karena itu saya buatkan Python script untuk membuat gambar lebih kecil dan memiliki ukuran yang sama

from PIL import Image
import os, sys
path = r"C:\xxx\xxx\xxxxxx\\"
dirs = os.listdir( path )
def resize():
    i = 1 
    for item in dirs:
        if os.path.isfile(path+item):
            im = Image.open(path+item)
            f, e = os.path.splitext(path+item)
            imResize = im.resize((720,540), Image.ANTIALIAS)
            imResize.save('Image_'+str(i)+'.jpg', 'JPEG', quality=90)
            i=i+1
            print("done image " + str(i))
resize()

Setelah kita memiliki gambar yang diinginkan, pisahkan menjadi dua bagian. 20% masuk ke dalam folder \object_detection\images\test sisanya (80%) pindahkan ke dalam \object_detection\images\train.

Labelling gambar


Setelah semua terkumpul, sekarang saatnya untuk memberi label pada setiap gambar. Labelimg adalah software yang mudah digunakan untuk melabeli gambar, dengan instruksi yang jelas dan dapat anda lihat di dalam repository Labelimg Github.

Tensorflow Object Detection -  labeling object
Tensorflow Object Detection - labeling object

Total semua gambar yang saya beri label adalah 225 gambar. Label gambar tersebut di simpan dalam bentuk .xml file. File xml ini akan digunakan untuk membuat TFRecords yang merupakan salah satu input TensorFlow trainer. Setelah kita memberikan label pada setiap gambar, maka, masing-masing gambar akan memiliki satu .xml file di dalam folder \test dan \train.

Membuat Data Training

Setelah selesai melabeli gambar, sekarang saat nya untuk membuat training tensorflow TFRecords dengan menggunakan script xml_to_csv.py dan generate_tfrecord.py dari link github ini.

Pertama-tama, file .xml akan digunakan untuk membuat file .csv yang meliputi semua informasi gambar pada folder train dan test. Eksekusi perintah dari folder \object_detection:

(tensorflow1) C:\tensorflow1\models\research\object_detection> python xml_to_csv.py

Perintah tersebut akan menghasilkan train_labels.csv dan test_labels.csv yang berada di dalam folder \object_detection\images.
Selanjutnya buka file generate_tfrecord.py dengan menggunakan text editor, lalu ubah label map pada baris 31.

def class_text_to_int(row_label):
    if row_label == 'botol plastik-Aqua':
        return 1
    elif row_label == 'botol plastik-Prima':
        return 2
    elif row_label == 'botol plastik-Le Minerale':
        return 3
    elif row_label == 'kaleng-CocaCola':
        return 4
    elif row_label == 'kaleng-Sprite':
        return 5
    elif row_label == 'kaleng-Pocari Sweat':
        return 6
    else:
        None

Selanjutnya adalah membuat TFRecord dengan mengesekusi dua perintah di bawah ini dari dalam folder \object_detection:

python generate_tfrecord.py --csv_input=images\train_labels.csv --image_dir=images\train --output_path=train.record

python generate_tfrecord.py --csv_input=images\test_labels.csv --image_dir=images\test --output_path=test.record

Membuat label map dan konfigurasi training

Hal terakhir yang dilakukan sebelum melakukan training tensorflow adalah membuat label map yang menyesuaikannya dengan konfigurasi training.

Label map


Label map memberitahu Tensorflow trainer untuk setiap object, dengan cara mendefinisikan nama kelas ke dalam nomer ID kelas tersebut. Dengan menggunakan text editor, buatlah file dengan nama labelmap.pbtxt di dalam folder:
C:\tensorflow1\models\research\object_detection\training

Konfigurasi Training


Untuk menjalankan konfigurasi yang tepat, pipeline training object detection harus disesuaikan. Hal tersebut digunakan untuk mendefinisikan model dan parameter apa yang digunakan. Ini merupakan langkah terakhir sebelum kita menjalankan training.

Masuk ke dalam folder: C:\tensorflow1\models\research\object_detection\samples\configs, lalu copy file faster_rcnn_inception_v2_pets.config

ke dalam folder
C:\tensorflow1\models\research\object_detection\training  dan edit sesuai dengan konfigurasi di bawah ini:

  • Pada baris ke 9. Ubah num_classes ke jumlah object yang ingin kita deteksi. Untuk tutorial ini kita ganti dengan angka 6.
  • Pada baris 106, ubah
    fine_tune_checkpoint:
    "C:/tensorflow1/models/research/object_detection/faster_rcnn_inception_v2_coco_2018_01_28/model.ckpt"
  • Baris 123 dan 125 di dalam section train_input_reader, ubah input_path dan label_map_path ke:
    input_path :
    "C:/tensorflow1/models/research/object_detection/train.record"
    label_map_path: “C:/tensorflow1/models/research/object_detection/training/labelmap.pbtxt"
  • Baris 130, ubah num_examples menjadi jumlah gambar yang berada dalam folder test
  • Pada baris 135 dan 137, bagian eval_input, ubahlah input_path dan label_map_path ke:
    input_path ke :
    "C:/tensorflow1/models/research/object_detection/test.record"
    label_map_path: "C:/tensorflow1/models/research/object_detection/training/labelmap.pbtxt"

Menjalankan Training

Sekarang saatnya kita menjalankan training untuk objek yang dikehendaki. Pada Anaconda Prompt navigasikan ke folder  \object_detection, lalu training di mulai dengan mengeksekusi perintah:

python train.py --logtostderr --train_dir=training/ --pipeline_config_path=training/faster_rcnn_inception_v2_pets.config

Jika training ter-setup dengan benar, Tensorflow akan memulai inisiasi training tensorflow. Pada inisialisasi ini dibutuhkan waktu sekitar 30 detik sebelum training dijalankan. Proses training akan terlihat seperti pada gambar di bawah ini:

Tensorflow Object Detection - Progress training
Tensorflow Object Detection - Progress training

Setiap step training tensorflow akan terlihat loss yang dihasilkan. Dimulai dari angka tinggi dan terus mengecil. Direkomendasikan untuk terus melakukan training hingga loss di bawah 0.05 dengan steady.

Jumlah loss akan berbeda dari setiap model yang akan di pakai untuk training. Sebagai contoh jika menggunakan MobileNet-SSD, loss akan di mulai dari angka 20 dan terus dilakukan training hingga di bawah angka 2.

Progress dari training tensorflow dapat di lihat melalui TensorBoard. Untuk membukanya, kita harus menjalankan Anaconda Prompt pada window lain, aktivasi environment tensorflow1, lalu setup kembali PYTHONPATH seperti yang telah dijelaskan pada bagian sebelumnya.

Perintah untuk mengeksekusi training adalah:

(tensorflow1) C:\tensorflow1\models\research\object_detection>tensorboard --logdir=training

Perintah di atas akan membuka webpage pada local machine pada alamat (yang akan terlihat setelah eksekusi tensorboard) sesuai dengan nama komputer anda:

[training tensorflow] Address Tensorboard

Alamat web ini dapat di buka dengan menggunakan web browser apa saja. Tensorboard memberikan informasi dalam bentuk grafik yang menunjukkan progress training tensorflow. Grafik yang perlu diperhatikan adalah Loss, grafik ini menunjukkan loss secara keseluruhan dari klassifier seiring berjalannya waktu.

Tensorflow Object Detection - Tampilan tensorboard
Tensorflow Object Detection - Tampilan tensorboard

Training tensorflowtersebut secara berkala akan menyimpan data checkpoint setiap sepuluh menit. Untuk mengentikan training, kita dapat melakukannya dengan menekan CTRL+C pada Anaconda Prompt. Hal yang menarik adalah kita dapat menghentikan nya, lalu menjalankan kembali proses training tanpa harus di mulai dari awal.

Export Inference Graph

Setelah training selesai, langkah terakhir adalah membuat frozen inference graph (file .pb). Pada Anaconda Prompt, navigasikan ke folder \object_detection, lalu eksekusi dengan perintah:

python export_inference_graph.py --input_type image_tensor --pipeline_config_path training/faster_rcnn_inception_v2_pets.config --trained_checkpoint_prefix training/model.ckpt-XXXX --output_directory inference_graph

XXXX adalah angka paling besar pada file “model.ckpt-XXXX” (yang paling up to date).

Perintah diatas akan menghasilkan file frozen_inference_graph.pb di dalam folder \object_detection\inference_graph. File .pb adalah hasil training klasifikasi object detection.

Menggunakan Pengklasifikasian Object Detection yang telah di training

Object detection telah siap untuk digunakan!!! Edje Electronic telah membuat script untuk mendeteksi obyek berupa gambar, video dan live camera.

Sebelum menjalankan Python script tersebut, kita harus memodifikasi variable NUM_CLASSES sesuai dengan jumlah klasifikasi yang telah kita tentukan.

Untuk menjalankan Python Script, kita dapat mengeksekusi perintah “idle” di dalam Anaconda Prompt dengan menggunakan “tensorflow1” environment. Setelah Python idle window terbuka, lalu kita dapat membuka file untuk mendeteksi obyek, lalu di klik run. Pada contoh ini, kita akan menggunakan webcam untuk mendeteksi objek.

Sekian tutorial yang cukup panjang ini. Bila anda tertarik untuk menggunakan raspberry pi untuk mendeteksi object. Anda dapat melihatnya pada link ini.

Voila!! Selamat mencoba

Referensi:

https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10

https://www.tensorflow.org/install/source#tested_build_configurations

https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html

https://github.com/tensorflow/models/tree/r1.13.0

https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md

https://github.com/tzutalin/labelImg

https://github.com/datitran/raccoon_dataset

Read More
Raspberry Pi Object Detection | Praktis dengan Raspi 4
Raspberry Pi Object Detection- Tensorflow pada Raspberry pi
Raspberry Pi Object Detection- Tensorflow pada Raspberry pi

Tutorial ini berisi bagaimana cara installasi Raspberry Pi Object Detection agar dapat mendeteksi object menggunakan raspberry pi 4 dengan camera.

Tutorial instalasi Tensorflow pada Raspberry Pi4 ini berdasarkan Edje Electronics.

Sepanjang saya mencari tutorial mengenai tensorflow, tutorial dari Edje Electronics adalah yang paling mudah diikuti dan di mengerti. Maka dari itu alangkah lebih baik untuk melihat tutorial yang disajikan oleh Edje Electonics dan subscribe channel nya untuk mengetahui project-project selanjutnya yang ia buat.

Sebelum memulai tutorial, alat-alat yang saya gunakan, yaitu:

  1. Raspberry pi4, 4gb ram tokopedia
  2. 32 GB SD card, pre-installed Raspbian Stretch tokopedia
  3. USB webcam Logitech tokopedia

Tutorial ini di tulis pada tanggal 14/10/2019

Pendahuluan

Tutorial ini berisi bagaimana cara installasi Tensorflow Object Detection API pada Raspberry Pi 4 agar dapat mendeteksi objek. Dengan mengikuti alur selangkah-demi selangkah, diharapkan anda dapat menggunakan Raspberry Pi untuk mendeteksi suatu object dari camera secara langsung dengan menggunakan kamera USB ataupun Picamera. Anda dapat menyesuaikan tutorial ini kepada object yang ingin anda deteksi secara spesifik.

Raspberry Pi Object Detection - Contoh deteksi botol aqua
Raspberry Pi Object Detection - Contoh deteksi botol aqua

Update raspberry pi

Buka command terminal, lalu eksekusi perintah:

sudo apt-get update
sudo apt-get dist-upgrade 

Install TensorFlow

pip3 install tensorflow

Tensorflow membutuhkan paket tambahan “LibAtlas” agar berfungsi dengan baik

sudo apt-get install libatlas-base-dev 

Install beberapa dependencies yang dibutuhkan untuk menjalankan tensor flow seperti tertera dalam repositories Tensorflow instruksi installasi. Diantaranya:

sudo pip3 install pillow lxml jupyter matplotlib cython 
sudo apt-get install python-tk 

Selesai untuk instalasi Tensorflow, selanjutnya adalah OpenCV

Install OpenCV

OpenCV digunakan untuk mendeteksi object yang relative mudah dan sedikit error.

Agar OpenCV dapat bekerja dengan baik pada Raspberry Po. Ada beberapa dependencies yang harus di install menggunakan “apt-get”, yaitu:

sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev 
sudo apt-get install libxvidcore-dev libx264-dev 
sudo apt-get install qt4-dev-tools libatlas-base-dev 

Install Protobuf

Tensorflow object detection menggunakan Protobuff, yaitu Google Protocol Buffer data format.

sudo apt-get install protobuf-compiler

Untuk memastikan terinstall dengan benar, maka perlu di cek dengan cara protoc –-version

Sehingga akan muncul tulisan libprotoc 3.6.1  atau versi yang terbaru.

Setup struktur folder Tensorflow dan Variable PYTHONPATH

Kita telah menginstall semua packages yang dibutuhkan untuk menjalankan Tensorflow, selanjutnya kita membutuhkan setup direktori Tensorflow. Kita akan membuat direktori tensorflow1:

mkdir tensorflow1
cd tensorflow1  

Lalu, download repository tensorflow dari Github:

git clone --recurse-submodules https://github.com/tensorflow/models.git

Selanjutnya adalah memodifikasi PYTHONPATH environment. Hal ini berguna agar PYTHONPATH selalu ter-setup setiap kali terminal window terbuka.

sudo nano ~/.bashrc

Arahkan kursor ke bagian akhir file, dan pada baris terakhir tambahkan baris:

export PYTHONPATH=$PYTHONPATH:/home/pi/tensorflow1/models/research:/home/pi/tensorflow1/models/research/slim

Setelah itu, simpan dan keluar dari file tersebut. Keluar command terminal dan buka kembali.

Selanjutnya, kita membutuhkan Protoc untuk mengkompilasikan file Protocol Buffer (.proto) yang digunakan oleh Object Detection API. File tersebut ada dalam direktori “/research/object_detection/protos”, namun kita harus mengesekusi perintahnya dari direktori /research:

cd /home/pi/tensorflow1/models/research
protoc object_detection/protos/*.proto --python_out=.  

Perintah di atas mengkonversikan seluruh file yang memiliki ekstensi “.proto” menjadi “_pb2.py”.

Selanjutnya, pergi ke direktori “object_detection”

cd /home/pi/tensorflow1/models/research/object_detection

Sekarang, kita akan download object detection model dari TensorFlow detection model zoo. Model zoo ini adalah koleksi dari Google untuk model yang telah di training dan memiliki kecepatan komputasi dan akurasi yang berbeda. Raspberry Pi memiliki processor yang relative lemah, oleh karena itu kita membutuhkan model yang menggunakan kekuatan processing yang kecil. Walaupun model berjalan dengan cepat, namun, memiliki tingkat akurasi yang rendah. Untuk tutorial kali ini kita akan menggunakan SSDLite-MobileNet, dimana model tersebut adalah yang paling cepat.

Google selalu mengeluarkan model terbaru dengan kecepatan dan performa yang lebih baik seiring waktu. Oleh sebab itu, dapat mengunjungi nya secara berkala.

Download SSDLite-MobileNet dengan cara:

wget http://download.tensorflow.org/models/object_detection/ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz 
tar -xzvf ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz 

Ok, sekarang model di dalam direktori “object_detection” telah siap untuk digunakan. Selanjutnya adalah tahap terakhir, yaitu mendeteksi objek

Mendeteksi Object

Akhirnya kita sampai pada bagian yang sangat menyenangkan yaitu mendeteksi object menggunakan kamera pada Raspberry Pi. Skrip Python pada tutorial ini adalah “Object_detection_picamera.py”. Secara umum, script ini memerintahkan untuk mengarahkan path kepada model dan labelmap, lalu memasukan model ke dalam memori, initialisasi Picamera dan memulai deteksi objek pada video frame dari Picamera.

Pastikan kita telah mengaktifasikan Camera pada Raspberry Pi Configuration.

Raspberry pi mendeteksi object konfigurasi pada pi
Raspberry Pi Object Detection - Raspberry Pi config

Download “Object_detection_picamera.py” ke dalam direktori object_detection dari github EdjeElectronics dengan cara:

wget https://raw.githubusercontent.com/EdjeElectronics/TensorFlow-Object-Detection-on-the-Raspberry-Pi/master/Object_detection_picamera.py

Jalankan Script:

python3 Object_detection_picamera.py

Secara default, script akan mengesekusi perintah menggunakan Picamera, jika kita menggunakan USB camera, maka commandnya menjadi:

python3 Object_detection_picamera.py --usbcam

Voila!!! Sekarang anda dapat mendeteksi object.

Untuk mendeteksi objek sesuai dengan yang diinginkan anda dapat lihat pada link ini.

Kita dapat menggunakan kustom model yang telah di training sesuai dengan object yang hendak kita deteksi. Dengan cara memasukkan frozen inference graph ke dalam direktori object_detection dan mengubah path model tersebut di dalam script. Setelah kita memiliki model tertentu, simpan file tersebut di dalam directory object_detection dan label_map.pbtxt di dalam direktori object_detection/data. Tutorial untuk ini dapat di lihat dari video Edje Electronic yang lain di link youtube.

Terima kasih telah membaca tutorial singkat ini.

Semoga bermanfaat untuk anda.

Read More
Mengukur jarak dengan ultrasonic sensor

Pada tutorial kali ini kita akan di bahas bagaimana sensor ultrasonic bekerja, dan digunakan pada Arduino Board untuk mengukur jarak dengan sensor tersebut.

Sensor ultrasonic memancarkan suara pada 40 kHz melalui media udara. Jika ada suatu obyek yang menghalangi jalur nya, maka gelombang suara ini akan terpantul dan kembali kepada modul sensor tersebut. Dengan mengetahui waktu dan kecepatan udara, maka kita dapat menghitung jarak antara letak sensor dan benda di depan nya.

Jenis Ultrasonic sensor

Kali ini saya akan membahas mengenai ultrasonic sensor dan model yang telah saya gunakan, diantaranya:
1. HC-SR04
2. US - 015
3. JSN-Sr04t
Perbandingan antara ketiga sensor diatas dapat di lihat pada tabel di bawah ini:

mengukur jarak dengan ultrasonic sensor
[Mengukur jarak] Perbandingan Spesifikasi Ultrasonik Sensor

Komponen dan skema

Komponen-komponen yang digunakan:
1. Arduino Uno
2. Ultrasonic Sensor
3. Breadboard
4. Kabel Jumper

Ke empat modul ultrasonic tersebut memiliki 4 pin, yaitu: Ground, Vcc, Trig dan Echo. Pin Ground dan Vcc pada modul sensor dikoneksikan pada pin Ground dan 5 Volts pin Arduino, sedangkan Trig dan Echo dipasangkan dengan pin I/O manapun pada Arduino.

mengukur jarak dengan ultrasonic sensor
Skema koneksi ultrasonic dan arduino

Source Code

#include <Ultrasonic.h>
 ///////////Anda dapat mengubah nomer pin berdasarkan preferensi///////////
Ultrasonic ultrasonic(11, 12); /// Ini adalah nomer pin (Trigger, Echo) yang terpasang pada arduino

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.print("Jarak dalam cm: ");
  Serial.println(ultrasonic.distanceRead());
  delay(1000);
}

Code di atas menggunakan library Ultrasonic yang dapat di akses melalui:
Ultrasonic Library
Dengan mengunakan library ini, coding yang panjang untuk mendefinisikan pengukuran jarak ultrasonic menjadi singkat. Library tersebut dapat digunakan untuk ketiga jenis sensor yang ada di atas.

Pada tutorial ini anda telah dapat mengukur jarak dengan menggunakan ultrasonic sensor. Semoga artikel ini bermanfaat untuk anda jika ingin mengaplikasikan sensor ini pada project-project yang lebih kreatif.

Terima kasih telah membaca tutorial dari saya, selalu stay tuned pada halaman utama web ini agar anda dapat melihat tutorial-tutorial lain lainnya. A Bientot!!!


Read More
Mengukur temperature dan humidity dengan Nodemcu

Pendahuluan

Halo para pembaca budiman, kali ini kita akan membahas mengenai bagaimana mengukur temperature dan kelembaban udara dengan menggunakan Nodemcu board.

Nodemcu sangat banyak digunakan oleh para maker dan inovator untuk memulai project yang berkaitan dengan Internet of Things (IoT) karena harga yang sangat terjangkau dan ukuran yang praktis.

Perangkat yang dibutuhkan

Sebelum memulai penjelasan singkat ini, ada beberapa module atau sensor yang harus anda persiapkan diantaranya adalah:
1. Micro usb cable (untuk programming board)
2. NodeMCU (module microcontroller)
3. DHT11 (sensor temperature dan kelembaban)

Sketsa rangkaian

Setelah semua terkumpul, selanjutnya adalah mengkoneksikan kabel jumper dari nodeMCU ke sensor DHT11 seperti pada konfigurasi gambar di bawah ini:

mengukur temperature humidity nodemcu
Rangkaian sirkuit

Untuk programming modul Nodemcu ini, diperlukan arduino IDE untuk menulis sketch dan meng-uploadnya kepada microcontroller.

Perlu diperhatikan bahwa module ini termasuk kepada ESP8266 family, sehingga sebelum memulai programming harus dipastikan bahwa library dan daftar board sudah terpasang pada arduino IDE anda. Anda dapat mengikuti tutorial pada link ini.

Kode program

Script yang di tulis pada arduino IDE adalah:

// Import library yang diperlukan
#include "DHT.h"

// Tentukan pin untuk data
#define DHTPIN D8

// type sensor menggunakan DHT11
#define DHTTYPE DHT11  

// Initialisasi sensor
DHT dht(DHTPIN, DHTTYPE); 

void setup() {  
  // Start Serial
  Serial.begin(115200);
  delay(10);
  
  // Init DHT 
  dht.begin();
}
void loop() {   
  // Membaca temperature dan kelembaban
  float h = dht.readHumidity();
  // Read temperature as Celsius
  float t = dht.readTemperature();
  delay(1000);

  // Menampilkan data di serial Monitor
  Serial.print("Temperature :");  
  Serial.print(t);  
  Serial.println("C");  
  Serial.print("Humidity :");  
  Serial.print(h);  
  Serial.println("%"); 
  delay(10);
  
  // Update setiap 1000ms (1 detik) agar pembacaan stabil dahulu
  delay(1000); 
}

Setelah upload code diatas lalu arahkan ke Tools>Serial Monitor (Ctrl+Shift+M). Jangan lupa untuk memastikan Upload speed "115200", Board "NodeMCU 1.0 (ESP-12E Module), dan PORT "COM..." berdasarkan com port yang terdeteksi oleh Arduino IDE.

Hasil dari pengukuran akan seperti gambar di bawah ini

mengukur temperature humidity nodemcu
Serial monitor

Pada tutorial kali ini, anda telah memahami konsep sederhana bagaimana cara mengukur temperature dan humidity dengan menggunakan nodemcu.

Jika anda ingin mengikuti tutorial lebih lanjut mengenai IoT anda dapat melihat pada link ini.

Sekian tutorial kali ini dan selamat menikmati dan semoga bermanfaat untuk anda.

Terima kasih

Read More
Cara setup ESP8266 pada Arduino IDE

Tutorial kali ini akan membahas mengenai cara setup ESP8266 pada arduino IDE. Sebelum memulai ada baiknya kita berkenalan terlebih dahulu dengan module ESP8266 yang sangat populer untuk mempelajari daser atau perkenalan dengan Internet of Things (IoT).

Apa itu ESP8266?

ESP8266 adalah modul Arduino tambahan yang memiliki fitur wifi. Modul tersebut sangat banyak digunakan untuk project Internet of Things (IoT) dengan keunggulan sangat praktis dan sangat murah. Selain itu, module ini pun dapat di program menggunakan Arduino IDE. Banyak sekali jenis board yang sudah terintegrasikan dengan module ESP8266, sehingga tidak perlu melakukan konfigurasi lagi menggunakan Arduino Uno. Contohnya adalah Wemos, NodeMCU, dll.

Untuk tutorial-tutorial selanjutnya saya akan fokus menggali kemampuan board yang memilik base ESP8266 karena kesederhanaannya untuk aplikasi IoT.

ESP8266 ini dapat anda beli di link Bukalapak ini.

setup esp8266 arduino IDE
ESP8266 board

Instalasi ESP8266

Untuk menginstall ESP8266 ada beberapa tahapan yang harus dilakukan, diantaranya:
1. Buka window "Preferences" pada Arduino ide. File > Preferences.
2. Masukan link "http://arduino.esp8266.com/stable/package_esp8266com_index.json" ke kolom "Additional Boards Manager URLs" seperti tertera pada gambar di bawah ini

setup esp8266 arduino IDE
preference menu

3. Buka "Boards Manager...". Tools > Board > Board Manager...
4. Scroll ke bawah hingga menemukan esp8266 seperti pada gambar di bawah ini, lalu klik "install" dan voila!!! ESP8266 siap untuk digunakan..

setup esp8266 arduino IDE
Boards manager menu

Pada tutorial ini anda telah mengetahui bagamiana cara setup ESP8266 pada arduino library dan apa saja yang dibutuhkan sebelum memulai project inovatif yang akan anda lakukan.

Terima kasih telah mengunjungi artikel singkat ini. Jika anda tertarik mengenai topik IoT anda dapat melihat kumpulan project lain pada link ini.

Tetap berkreasi dan berinovasi.

Read More
Copyright since @ 2020
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram