RTL-SDR Software Defined Radio | Vlog

Saya iseng beli sebuah dongle DVB-T yang sekaligus bisa difungsikan sebagai SDR (Software Defined Radio). Dengan dongle yang menggunakan chipset RTL2832U ini saya bisa mendengarkan gelombang radio dari frekuensi 24-1700 MHz. Sebuah rentang yang sangat lebar. Detail mengenai RTL-SDR bisa dibaca di: RTL-SDR.com.

C.H.I.P Radio Internet Versi 2

Baiklah, saatnya mendokumentasikan di blog. Ini masih tentang Internet Radio dengan C.H.I.P. Yang mana kali ini sedikit berbeda dengan yang sudah dituliskan sebelumnya (baca: Memanfaatkan C.H.I.P Sebagai Radio Internet, C.H.I.P Radio Internet Autostart, C.H.I.P Untuk Alarm Radio Internet). Kali ini saya menambahkan 3 tombol untuk mengganti channel, mengeraskan volume, dan mengecilkan volume.

Selain itu saya juga mengubah cara akses vlc. Kali ini menggunakan library Python-vlc sehingga lebih mudah pengaturannya. Dan saya menambahkan daftar channel radio internet.

CHIP Internet Radio
CHIP Internet Radio

Baca selebihnya »

Belajar Bahasa Pemrograman Python

Dalam rangka mengoprek C.H.I.P (dan Raspberry Pi), lebih baik kita bisa bahasa pemrograman Python. Dulu saya pernah mencoba belajar Python dan Tkinter, tapi kok mentok. Sepertinya bahasa pemrograman Python tidak nyaman. Menurut saya terlalu kaku. Menurut saya loh ya? Mungkin bagi Anda tidak.

Saat ini ada 2 bahasa yang saya hindari. Pernah belajar dan merasa kalau kedua bahasa ini bukanlah bahasa yang perlu saya pelajari. Dan saya pun selalu mencoba menghindari kedua bahasa ini, yaitu Swift dan Python.

Tapi karena harus ngoprek CHIP/Raspberry Pi, maka saya pun memaksakan diri belajar bahasa Python. Kemarin saya masih berusaha menghindari belajar Python dan menggunakan script bash. Tapi ternyata lebih ribet, walau pun dari segi sintaks lebih bisa dipahami, hahaha…

Dan hari Minggu ini (dari pagi sampai malam) saya terpaksa belajar Python, walau pun saya belajar hanya yang saya perlukan. Saya belajarnya tidak sistematis, tidak runut, tapi mencari bahasan yang saya butuhkan. Misalnya menggunakan library, akses GPIO, akses file, operasi string, dll.

Dan akhirnya jadilah radio internet dengan 3 buah tombol. Tombol pertama untuk mengganti-ganti channel. Dua tombol berikutnya untuk mengecilkan dan membesarkan volume. Senang juga akhirnya bisa ngoprek CHIP. Ternyata tidak sulit kok. Dan gaya pemrograman saya nampaknya masih mengikuti gaya Arduino. Padahal sepertinya di Python bisa lebih efisien lagi.

Rencananya besok mau menambahkan tombol untuk mematikan dan menyalakan radio. Soalnya cara akses vlc di program saya ini berbeda dengan cara yang dipakai tempo hari untuk Alarm (Baca: CHIP Untuk Alarm Radio Internet). Dan juga bentrok dengan script penampilan jam. Besok saja deh menggabungkan script-nya.

Dengan demikian akses ke radio internet benar-benar tidak memerlukan remote access. Horeee…

Mengamati Utilisasi CPU & Memory CHIP

Tempo hari kita sudah berhasil memanfaatkan C.H.I.P sebagai radio internet (baca: C.H.I.P Radio Internet Autostart dan Memanfaatkan C.H.I.P Sebagai Radio Internet). Dan saya cukup senang bahwa kenyataannya CHIP ini bisa jadi alarm radio juga (baca: C.H.I.P Untuk Alarm Radio Internet). Tapi saya penasaran dengan berapa utilisasi CPU dan memory CHIP ketika digunakan sebagai radio internet.

Sebagai informasi singkat, CHIP memiliki 1 CPU ARMv7 yang memiliki clock 1 GHz dan RAM 512 MB. Sementara internal storage-nya 4 GB. CHIP sudah dipersenjatai koneksi Wi-Fi dan Bluetooth 4.0. CHIP memiliki 1 micro USB OTG dan 1 USB 2.0 ukuran standard. Kalau melihat bagian bawah board, maka akan ditemukan 1 port JST yang bisa disambungkan ke baterai. Asyiknya adalah USB OTG bisa digunakan juga untuk men-charge baterai.

Sedangkan untuk urusan penampilan bisa menggunakan monitor composite via jack TRRS. Jika diinginkan untuk penyambungan ke monitor VGA atau HDMI, maka CHIP menyediakan VGA/HDMI adapter yang bisa dibeli terpisah. Untuk informasi lebih lanjut silakan merujuk ke website resmi C.H.I.P.

Karena saya tidak memiliki adapter VGA/HDMI, maka urusan pemantauan utilisasi CPU dan memori bisa dilakukan via ssh dengan menggunakan aplikasi htop. Namun solusi ini tidaklah praktis karena harus menggunakan laptop untuk melihatnya.

Jadi saya pun menyambungkan LCD 16×2 I2C yang praktis sehingga urusan penampilan tidaklah merepotkan. Untuk koneksi bisa membaca artikel saya sebelumnya (baca: C.H.I.P Dengan LCD 16×2). Untuk library LCD 16×2 saya ambil dari artikel HOW TO SETUP AN I2C LCD ON THE RASPBERRY PI. Ambil library I2C_LCD_driver.py di situ.

Lalu saya pun menuliskan code yang memanfaatkan library ini untuk menampilkan utilisasi CPU, utilisasi memory, suhu CPU dan jam. Berikut adalah code-nya:

import I2C_LCD_driver
import time
import datetime
import psutil

formatDate1 = ' %a %d/%m/%Y'
formatDate2 = '%H:%M:%S {:5}\'C'
format1 = 'CPU {:3}% MEM {:2}%'

lcd = I2C_LCD_driver.lcd()

cat = lambda file: open(file, 'r').read().strip()

while True:
  namafile = "/sys/class/hwmon/hwmon0/temp1_input"
  temp = cat(namafile)
  temp = float(temp)/1000

  lcd.display_string(format1.format(int(psutil.cpu_percent()), int(psutil.virtual_memor$
  lcd.display_string(datetime.datetime.now().strftime(formatDate2).format(temp), 2)
  time.sleep(1)

Hasilnya cukup mengasyikkan. Pemantauan bisa independen, tidak tergantung laptop. Dan rupanya CHIP sudah cukup powerfull dan stabil jika digunakan sebagai radio internet. Lihat saja hasil pemantauannya yang saya upload di instagram.

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…