Desain Radio Kotak (Belajar 3D Design)

Ya saya memang masih terobsesi dengan radio. Tidak hanya berkutat di elektroniknya, saya juga mencoba membuat desain casing yang menarik bagi radio. Soalnya bagi saya, radio yang cantik itu bisa juga jadi hiasan meja yang unik.

Nah, dalam rangka belajar desain dengan Fusion 360, saya pun mencoba mendesain box/casing untuk radio yang tempo hari sempat saya buat elektroniknya. Di bawah ini adalah animasi hasil render desain tersebut.

Sesuai dengan desain elektronik yang tempo hari saya buat (versi 2), radio ini cuma punya 3 antarmuka, sebuah LCD 16×2 yang menampilkan frekuensi radio dan waktu, sebuah Rotary Switch untuk mengubah mode volume atau pencari frekuensi dan sebuah speaker untuk menyuarakan sinyal radio yang ditangkap.

Pada panel terdapat lubang yang sesuai dengan dimensi LCD 16×2 dan lubang bundar untuk knob rotary switch. Sedangkan untuk speaker hanya 2 garis memanjang. Mengapa hanya 2 garis memanjang sedangkan seharusnya speaker itu bundar dan besar? Karena saya membayangkan speaker tersebut dipasang di dalam box dengan menghadap ke bawah. 2 garis lubang itu hanya untuk mengeluarkan pantulan suara dari speaker.

Apakah suaranya akan bagus? Nah ini yang perlu dibuktikan apakah desain ini efektif atau tidak. Karena dengan desain sebelumnya, yang mana speaker langsung terekspos dan ditenagai oleh amplifier kelas D 2×2 watt ternyata suaranya kurang mumpuni. Apalagi karena casing dari bahan plastik. Beda ceritanya ketika saya membuat casing dari kardus bekas yang ternyata punya akustik lebih bagus dari pada plastik.

Jadi saya membayangkan speaker dipasang di dalam casing dan menghadap ke bawah. Di panel bawah dilapis kardus untuk sedikit meredam frekuensi tinggi sehingga yang terlepas ke grill depan adalah suara yang sudah tersaring. Entah benar atau tidak, tentu perlu pembuktian. Jadi ya sepertinya saya perlu segera membeli printer 3D, hahaha…

BTW, karena baru belajar, desain radio di Fusion 360 di atas tentu masih sangat sederhana. Mungkin nanti akan dibuat versi lebih kompleks setelah banyak belajar desain.

Di bawah ini adalah foto tampilan LCD 16×2 dari postingan sebelumnya.

Eldario v2

Begitulah kira-kira radio yang never ending ini, hehehe… Sampai jumpa di tulisan berikutnya.

Iklan

Belajar Desain 3D dengan Fusion 360

Ternyata sudah lebih dari 3 tahun saya mengidamkan sebuah printer 3D. Setiap kali klik tombol “Beli” kemudian saya berpikir jauh, setelah membeli lalu apa? Apa yang akan saya lakukan dengan printer 3D ini?

Jadi saya pun mulai untuk belajar mendesain 3D sebelum benar-benar membeli printer 3D. Saya tidak mau punya printer 3D tapi hanya digunakan untuk main-main mencetak desain orang lain. Saya harus bisa membuat desain sendiri, atau bahkan bisa membuat produk sendiri!

Dulu saya pernah mencoba desain dengan SketchUp dan meng-order panel untuk radio, namun hasilnya kurang memuaskan (Baca: Iseng Ngeprint 3D Untuk Eldario). Kemudian saya berpikir memang sebuah desain harus trial and error, coba dicetak untuk kemudian divalidasi apakah sesuai atau tidak.

Nah kali ini saya mencoba belajar Fusion 360 yang konon memang terkenal digunakan untuk mendesain 3D dengan tingkat presisi yang baik. Ternyata belajar Fusion 360 itu tidaklah sulit. Kalau sebelumnya pernah belajar SketchUp, maka belajar Fusion 360 itu tidaklah beda jauh.

Dan yang asyik dari Fusion 360 ini kita bisa me-render desain kita sehingga seperti sebuah benda nyata yang difoto. Saya belum explore lebih lanjut untuk render ini supaya bisa dapat foto yang bagus, baik dari segi pencahayaan, tekstur permukaan, mau pun environtment-nya (latar belakang, bayangan, dll).

Kemudian saya jadi berpikir, lebih baik memang bisa desain dulu baru kemudian benar-benar membeli printer 3D. Saya pikir ini langkah yang bijaksana. Akhirnya saya pun mengosongkan kembali keranjang belanja yang berisi printer 3D itu, hahaha…

Kedua foto di atas adalah screenshot tampilan Fusion 360 versi iPad. Nanti saya upload hasil render di posting terpisah.

Salam.

Kehabisan Memori Arduino Uno

Jadi ceritanya saya mau meneruskan ngoprek TouchRadio seperti yang sudah saya tuliskan sebelumnya di “Mendesain User Interface Radio FM Touchscreen.” Dan ternyata saya kehabisan memory utk program. Saya baru sadar kalau Arduino Uno memiliki memory untuk kode yang sangat kecil, cuma 32 Kb. Ups… saya jadi teringat pernah mengalami coding untuk ATMega8 dan ATTiny85/84 yang juga punya memory sangat kecil. Dan berakhir mentok juga. Memory yang kecil memang sangat membatasi kreativitas, hehehe…

Solusi paling keren ya pakai Arduino Mega yang punya memory 256 Kb. Tapi konsekuensinya ya jadi membesar board-nya. Atau menggunakan Wemos D1 Mini yang punya 4 Mb dan punya clock jauh lebih cepat. Tapi Wemos D1 Mini kekurangan pin untuk display TFT 2.8″ Touchscreen. Kecuali jika menggunakan OLED I2C yang hemat pin. Dan sebenarnya saya punya stock-nya. Tapi berarti tidak touchscreen, hiks…

Sejatinya saya memang suka pakai Wemos D1 Mini yang lebih banyak memory, lebih cepat, dan sudah punya modul WiFi. Lebih bisa dikembangkan lebih jauh, seperti pengendalian dari network, dll. Dan tentu saja karena ukurannya sangat kecil dan lebih hemat energi. Tapi ya itu tadi, kekurangan pin untuk menggunakan display TFT Touchscreen.

Di lain pihak, saya memang mengakui kalau saya tidak menyadari sejak awal coding kalau Uno ini terbatas memory-nya. Jadi saya codingnya ngasal. Maksudnya ngasal ini adalah karena saya menggunakan banyak variabel dan konstanta. Dan saya banyak menggunakan perhitungan saat menggambar sesuatu. Ambil contoh:

#define MAX_HEIGHT 240
#define MAX_WIDTH 320
#define RADIUS 20

void tombol_on(boolean pressed) {
  tft.drawCircle(MAX_WIDTH/2, MAX_HEIGHT/2, RADIUS, BLACK);
}

Mestinya kan tidak perlu dijadikan konstanta max_height, max_width, radius, offset, dan lain-lain. Dan saat menggambarkan tidak perlu melakukan operasi matematis seperti max_width/2, dll. Karena angka-angka ini sudah diketahui, absolute, atau tidak relatif. Mungkin relatif itu diperlukan jika ada animasi atau pergerakan. Tapi ini kan tidak. Jadi saya rada boros dalam coding. Gubrak…

Seharusnya bisa lebih praktis lagi. Harus dioptimasi code-nya. Tapi saya sudah terlanjur menulis panjang lebar dan malas meng-optimasinya. Hahaha…

Ah besok lagi saja optimasinya. Toh versi minimalnya sudah berhasil jalan dengan baik, hehehe…

Mendesain User Interface Radio FM Touchscreen

{Posting ini adalah lanjutan dari “TouchRadio Berhasil!”, “TouchRadio Gagal?”, “Ngoprek TouchRadio Yuk?”}

Masih ingat proyek TouchRadio tempo hari kan? Tulisan ini adalah lanjutan dari tulisan-tulisan tersebut. Kali ini fokusnya adalah di user interface. Karena saya menggunakan LCD TFT 2.8″ Touchscreen, maka saya bisa mendesain tampilan (user interface) yang lebih atraktif. Dan lagi tidak perlu menambahkan tombol-tombol fisik karena kita bisa menggunakan fitur touchscreen-nya.

Saya pun dengan leluasa bisa merombak tampilannya. Kalau tadinya sederhana saja, serba kotak, maka kali ini saya buat lebih menarik dan sebebas-bebasnya. Namun menjadi sedikit kepenuhan karena kemudian saya menambahkan modul RTC DS3231 sehingga saya bisa menampilkan tanggal dan jam. Dan tentu saja harus ada fitur untuk mencocokkan tanggal dan jam.

Namun saat ini saya sudah merasa cukup puas dengan desain user interface-nya.

Selanjutnya yang bisa dikerjakan adalah:

  1. Memindahkan semua komponen ke PCB. Sepertinya cukup pakai perfboard saja. Rasanya males bikin PCB custom, kan cuma dibikin 1 unit saja, kecuali kalau mau diproduksi masal, hehehe… Sedangkan kalau pakai breadboard tidak handal, rawan terganggu koneksinya kalau dipindah-pindah.
  2. Menambahkan fitur alarm. Saat ini sedang googling bagaimana memanfaatkan fitur Alarm1 dan Alarm2 di DS3231. Bakal seru kalau pagi-pagi dibangunin lagu-lagu dari radio.
  3. Mengubah tampilan Off menjadi lebih elegan. Rencananya sih semua tampilan radio dan jam hilang. Cuma tersisa tampilan Tanggal dan Jam yang besar memenuhi layar, tentu saja plus tombol besar untuk On.
  4. Pengen bisa menambahkan relay untuk mematikan modul PAM8403 dan Si4703 saat Off. Jadi lebih hemat daya sekaligus bisa lebih hening. Mungkin ini jadi sedikit lebih ribet secara pin Arduino Uno sudah terpakai semua. Oh iya, masih tersisa D1. Sedangkan D0 sudah terpakai untuk reset-nya Si4703. Sepertinya masih bisa menambahkan relay. Cuma mungkin relay-nya yang elektronik saja ya? Kalau yang mekanik mungkin jadi boros tempat.
  5. Mendesain box radio. Ini yang rada sulit secara keterbatasan peralatan dan material untuk membuat box/case yang keren. Tempo hari sempat membuat box dengan kotak generik tapi hasilnya kurang rapi. Mungkin untuk demo bisa menggunakan kardus ya? (Baca: Simple CardBoard Radio). Idealnya sih bikin box pakai printer 3D ya? Ahhh indahnya kalau punya printer 3D.

Ah pengen segera weekend untuk bisa ngoprek lagi. Tunggu update selanjutnya yaaa… Sampai jumpa.

NB: Kalau ada pertanyaan atau masukan silakan dituliskan di bagian komentar di bawah. Saya akan jawab jika sempat (dan niat).

TouchRadio Berhasil!

{ Ini adalah sambungan dari tulisan “TouchRadio Gagal?” dan “Ngoprek TouchRadio Yuk?” }

Dua hari ini saya ngoprek TouchRadio yang hampir gagal itu. Saya tidak boleh menyerah. Mosok begitu saja menyerah? Justru kesulitan ini menjadi tantangan bagi saya. Hehehe…

Saya pun mencoba berbagai alternatif, mulai dari mengganti komponen hingga library coding. Bahkan hampir beralih menggunakan Raspberry Pi dengan display LCD 16×2. Tapi kalau cuma menggunakan LCD 16×2 maka tujuan saya gagal karena tidak touchscreen. Dan lagi kalau menggunakan Raspberry Pi biayanya jadi terlalu mahal dan kesannya overkill, seperti membunuh nyamuk dengan bom.

Jadi pagi ini pun saya kembali ke tujuan semula, yaitu menggunakan Arduino Uno dan TFT Touchscreen. Hanya saja kali ini saya mengganti modul radio dengan Si4703. Saya merasa ada yang salah dengan modul TEA5767 karena saya mencoba 3 modul TEA5767 hasilnya tidak akur dengan TFT. Lagian penerimaannya tidak sensitif. Jadi saya mengganti dengan Si4703.

Dan ternyata feeling saya benar. Si4703 bisa bekerja sama dengan TFT Touchscreen dengan baik setelah dilakukan sedikit tweaking, yaitu dengan mengganti pin reset TFT ke pin Reset Arduino dan pin reset Si4703 ke D0 Arduino. Semua berjalan dengan sempurna. Jadi saya bisa fokus mengerjakan software-nya.

Saya menggunakan library Si4703 standard yang tersedia di program Arduino. Memperbaiki sedikit ketidaksesuaian dan mengganti pin reset ke D0 (aslinya di D2, tapi pin D2 dipakai oleh TFT).

Saat ini saya sudah cukup senang dengan hasilnya. Coba lihat video di instagram di atas ya. Nampaknya cukup handal. Masih ada 1 PR, yaitu menyambungkan ke modul RTC. Ah besok lagi deh. Sekarang sudah kelaparan. Rupanya belum makan dari tadi. Dan untuk merayakan keberhasilan ini, saya pun memesan pizza, hahaha…

TouchRadio Gagal?

{ Ini adalah sambungan dari tulisan sebelumnya: Ngoprek TouchRadio Yuk? }

Kemarin malam saya mencoba menyatukan beberapa komponen untuk merealisasikan TouchRadio, yaitu modul radio FM Tea5767 dan Amplifier PAM8403. Sayangnya berantakan karena saya salah menyambung kabel power yang berakibat rusaknya PAM8403, hahaha… Modul ini rupanya sensitif terhadap besar tegangan. Harus 5V.

Sedangkan Modul TEA5767 rusak karena kelamaan nyolder. Mungkin koneksi ke board inti TEA5767 lumer. Untungnya saya masih memiliki beberapa stok TEA5767 dan PAM8403 jadi proyek ini masih jalan.

Masalah timbul ketika menyambungkan TEA5767 yang membutuhkan pin A4 dan A5 untuk koneksi I2C (inter-integrated circuit, two wire interface). Sedangkan shield TFT 2.8″ juga membutuhkan A4 untuk reset. Jadi ketika library untuk ke-2 modul ini diaktifkan layarnya jadi putih semua. Saya coba menjalankan reset untuk TFT setelah setiap perintah ke TEA5767. Tapi jadi tidak nyaman. Setiap kali mengeset radio harus mengalami layar putih dulu baru kemudian muncul lagi tampilan di display TFT. Tentu bukan UX (user experience) yang menyenangkan.

Malam ini mendadak saya teringat kalau Arduino Leonardo memiliki pin tambahan SDA-SCL. Jadi saya pun mengganti board UNO ke Leonardo. Saya menyolder pin modul radio ke board Leonardo & meng-upload sketch TouchRadio. Ternyata gagal juga, teman-teman… #Gubrak.

Setelah saya googling, ternyata  pin SDA-SCL ini sama-sama terhubung ke pin microcontroller dimana A4-A5 juga terhubung. Jadi kedua set pin ini terhubung ke sumber yang sama. Hanya saja memang di Leonardo diberikan tambahan header. #GubrakLagi

Walau pun modul radio dan display sudah bisa berjalan saat ini, tapi pengalaman menggunakan TouchRadio jadi tidak nyaman. Buat apa kalau tidak nyaman dipakai? Apalagi saya belum menyambungkan modul RTC DS3231 yang sama-sama menggunakan SDA-SCL namun lebih intensif komunikasinya dengan microcontroller.

Hampir saja saya menggagalkan proyek TouchRadio ini dan menggantinya dengan proyek lain. Namun saya masih penasaran dengan hal ini. Mosok begitu saja gagal? Mesti ada solusinya. Saya tidak boleh menyerah!

Baiklah… biar pembaca penasaran seperti halnya saya saat ini yang SANGAT penasaran dengan solusinya, maka tulisan ini saya potong di sini dulu. Saya mau mencoba solusi yang terpikir saat ini. Anda juga boleh menuliskan ide solusi di bagian komentar. Siapa tahu kita bisa bertukar pikiran mengenai hal ini.