#Projects

Browse More

Sunday, January 3, 2016

Solusi Bluetooth Tidak Mengenali Device di Lenovo B40-45 pada OS Linux Ubuntu

Baru saja menyelesaikan artikel [Mengaktifkan Fitur Fingerprint Untuk Login Pada OS Linux Ubuntu di Lenovo B40-45], tiba-tiba kepikiran untuk menggunakan Bluetooth Mouse yang sudah lama berdiam diri di dalam lemari.

Seletah mengambil si tikus sakti tersebut, saya coba melakukan koneksi dengan Notebook Lenovo B40-45. Pada bagian kanan atas terdapat logo Bluetooth, tetapi setelah saya coba untuk mencari perangkat tikus sakti, Bluetooth dari Lenovo tidak bisa mendeteksi adanya tikus sakti...


Hm.....

Tanya mbah google dulu....setelah cari mencari, coba mencoba, akhirnya ketemu dengan pembasan diforum yang menjelaskan cara install driver untuk device bluetooth.

cekidooooottt....

RTL8723BE Bluetooth does not work

Blutooth Discovery Protocol is not Working at all . cant find my device using bluetooth , ubuntu 15.04 lenovo z 50-70

Solusi dari kedua pembahasan ini mengarah ke

sudo add-apt-repository ppa:hanipouspilot/rtlwifi
sudo apt-get update
sudo apt-get install rtlwifi-new-dkms rtl8723au-bt-dkms linux-firmware

Tanpa ambil pusing, sikat langsung perintah tersebut....wkwkk....

Hasilnya....wow....lancar....





Sebagai informasi proses install memerlukan waktu yang sama karena harus compile driver -nya (kalau ga salah. wkwkwkkk....). Jadi, bersabar dalam menunggu proses yang memakan waktu sekitar 3-5 menit..

Sekarang tikus sakti sudah bisa digunakan, dan saatnya kembali bekerjaaa.......

Sampai jumpa diartikel selanjutnya...!!!!!!

Mengaktifkan Fitur Fingerprint Untuk Login Pada OS Linux Ubuntu di Lenovo B40-45

Ketika install OS Linux Ubuntu 14.04, saya tidak sabar untuk mengetahui apakah ketika proses install OS sudah sekalian dengan sensor fingerprint (sidik jari).
Ketika proses install selesai, ternyata saya coba sensor fingerprint belum terinstall untuk proses login.

OK, lanjut deh dengan kebiasaan lama...tanya mbah Google dulu...
eiitss,,,Tunggu dulu, apakah OS Linux Ubuntu ini mendeteksi adanya sensor fingerprint...
Lalu saya coba untuk mencari di daftar perangkat yang terhubung ke USB :

lsusb

Saya mendapatkan informasi adanya sensor fingerprint...Yipiie....


Setelah mencari-cari, saya dapat info dari Fingerprint GUI

Setelah mencoba, akan tetapi software hanya berhenti mendeteksi sidik jari satu kali saja. 


Karena malas cari solusi untuk software ini, coba cari software lain saja...akhirnya saya dapat dari ini Artikel ini [How to install a fingerprint reader on Lenovo ThinkPad with ubuntu 14.04]

Saya coba ikuti langkah-langkahnya..
sudo add-apt-repository -y ppa:fingerprint/fprint
sudo apt-get update
sudo apt-get install libfprint0 fprint-demo libpam-fprintd gksu-polkit
Lalu coba dengan perintah fprintd-enroll


Akhirnya setelah mendaftarkan sidik jari sebanyak 4x, maka sidik jari sudah disimpan dan bisa digunakan untuk proses login. Untuk membuktikan secara cepat, saya buka jendela terminal baru dan saya coba ketikan perintah di terminal yang mengunakan perintah sudo, seperti 
sudo apt-get update

Hasilnya....??? Berhasil!!!!!!...

OK, semua driver keliahatanya sudah bisa berfungsi semua...Tinggal berkerja dengan tenang.....

Sampai jumpa di artikel berikutnya...!!!!

Solusi WiFi Yang Sering Disconnect / Mati Pada OS Linux Ubuntu 14.04 di Notebook Lenovo B40-45

Setelah membeli Notebook baru di penghujung tahun 2015 [Akhir Riwayat Notebook ACER 4738G dan Kehadiran Lenovo B40-45 [AMD A8-6410]],  saya coba untuk melakukan install OS Lubuntu 15.10. Akan tetapi karena tombol hotkey Audio yang tidak bisa berfungsi dan belum menemukan solusinya, saya akhirnya putuskan untuk mengganti OS dengan Ubuntu 14.04 LTS.

Yup, dengan OS ini hotkey Audio bisa berfungsi dengan normal. Akan tetapi disamping tombol HotKey yang bisa berfungsi, ternyata penyakit koneksi WiFi tiba-tiba mati tidak juga hilang di Ubuntuk 14.04 ini (Penyakit ini juga saya temukan di Lubuntu 15.10).

Setelah obrak-abrik perpustakaan mbah google, akhirnya saya menemukan solusi di sini :
ubuntu 14.04 wireless constantly disconnects

Pada artikel ini disarankan untuk mengetikan perintah ini di Terminal
sudo iwconfig wlan0 power off
Tetapi apa yang terjadi???

Error for wireless request "Set Power Management" (8B2C) :
    SET failed on device wlan0 ; Operation not supported.


akhirnya cari2 lagi diinternet, dan menemukan solusinya.

Ubuntu 14.04 wireless disconnects after a while

Saya melihat solusi dengan perintah ini :
echo "options rtl8723be fwlps=0 swlps=0" | sudo tee /etc/modprobe.d/rtl8723be.conf

Tetapi tunggu, di perintah tersebut hardware WiFi adalah rtl8723be. Apakah notebook saya juga menggunakan hardware yang sama?? Periksa dulu ah....
sudo lshw -C network


Yipieee....Hardware WiFi sama...lanjut deh...

Setelah saya coba untuk menyala selama beberapa jam, WiFi masih terus stabil dan tidak ada mengalami kendala seperti sebelumnya (selalu disconnect setelah beberapa menit menyala).

Semoga informasi ini bermanfaat bagi rekan-rekan sekalian...

Akhir Riwayat Notebook ACER 4738G dan Kehadiran Lenovo B40-45 [AMD A8-6410]

Pada penghujung tahun 2015 menjadi akhir tahun yang tragis bagi laptop kesayangan ku, yaitu ACER 4738G. Yup...laptop ini selalu menemani ku dalam pengerjaan proyek dan menulis beberapa artikel di blog ini...

Laptop ACER 4738G ini mengalami perjuangan hidup yang begitu keras [Memperbaiki 2 laptop ACER yang rusak [GAGAL]], dimana setiap beberapa minggu sekali atau beberapa bulan sekali harus masuk meja operasi untuk saya panasi lagi dibagian VGA-nya....Pada akhir tahun 2015, laptop besutan ACER ini harus meregang nyawa setelah saya panaskan chip VGA nya terlalu lama...yup, 10 menit...wkwkwkk....

15 menit sebelum meninggal, VGA nya aku panaskan dengan solder Uap sekitar 5 menit. Setelah itu saya coba, dia mau menyala sebentar. Tak sampai 2 menit, penyakit lama kabuh lagi. Pada layar laptop tampak garis2 vertikal yang kemudian diikuti dengan layar menjadi hitam pekat....

Lalu coba aku operasi lagi dengan solder uap selama 10 menit...Hasilnya....ketika power ditekan, tidak ada aktifitas apapun kecualli LED Prosesor menyala 1 detik lalu mati lagi. LED Power pun enggan menyala ketika tombol power aku tekan...

Setelah merenung 2 hari, akhirnya aku putuskan untuk mencari pengganti dari laptop tersebut. Yup, pilihan jatuh kepada Lenovo B40-45 (AMD A8-6410 APU with AMD Radeon R5 Graphics × 4 ]). Laptop ini dibekali dengan memory DDR3 2GB dan HD 500GB.






Memang sewaktu mencari laptop ini, sudah ada produk baru, seri G40-45 dengan spesifikasi yang sama. Tetapi akhirnya saya tetap memilih seri B40-45 dibanding G40-45 karena dari sisi material plastik yang lebih tebal dan adanya sensor finger priint untuk proses login.

Selain itu, menurut dari beberapa penjual yang ada di Hi-Tech Mall Surabaya, tidak ada bedanya...

Setelah membayar mahar sekitar 3.7jutaan, maka laptop tersebut saya bawa pulang dengan bonus cleaning kit, colling pad, dan 2 mouse USB (satu dari toko, satu dari Hi-Tech Mall).

Karena memory di laptop hanya 2GB, saya merasa kurang jika harus develop program yang memerlukan kapasitas memory yang besar, seperti Android Studio..maka saya memaksa laptop ACER 4738G yang lama untuk mendonorkan memorynya yang sebesar 4GB untuk laptop baru ini.



Sebagai informasi, tampilan hardware info ini saya ambil dari OS Linux Ubuntu 14.04 dengan menggunakan perintah ini yang saya ketikan di Terminal :
sudo lshw -html > ~/hardware_info.html && firefox ~/hardware_info.html
Sumber : http://ubuntuforums.org/showthread.php?t=1317645

Menarik jika kita menggunakan OS Linux, dalam kasus yang saya alami menggunakan Ubuntu 14.04 dan Lubuntu 15.10. Mengapa menarik? karena ada beberapa misteri yang menantang untuk diselesaikan, contoh :
  1. tombol hotkey Audio tidak bisa berfungsi di Lubuntu 15.10
    Solusi : ganti dengan Ubuntu 14.04 LTS. wkwkwkk...(ini bukan solusi namanya..lari dari kenyataan.....)
  2. mengaktifkan finger print yang tidak otomatis diinstal ketika install OS Lubuntu dan Ubuntu
    Solusi : akan saya jelaskan pada kesempatan berikutnya.
  3. WiFi di Ubuntu dan Lubuntu sering tiba-tiba mati sendiri. Ketika ketik ifconfig di terminal, Wlan0 tidak mendapatkan IP dari Router. Padahal ketika menyala, koneksi lancar. Setelah beberapa menit digunakan, tiba-tiba tidak ada koneksi internet.
    Solusi : akan saya jelaskan pada kesempatan berikutnya.
  4. dan beberapa kendala yang mungkin muncul.
Beberapa tantangan ini sedikit memacu adrenalin untuk mencari tahu dan mengobrak-abrik perpustakaan dari mbah google untuk mencari solusi.

Oya, mungkin saja laptop ACER 4738G masih bisa dihidup jika VGA di reball dan diperbaiki jalur catu daya yang menyebabkan laptop tidak menyala sama sekali. Akan tetapi karena kendala budget, mengingat service laptop (untuk reball VGA bisa sampai 700-800 ribuan dan belum tentu bisa bertahan lama), maka saya putuskan untuk cari aman dulu dengan beli laptop baru.

Semoga laptop ini membawa berkat bagi sesama....Amin....

Sampai jumpa di artikel berikutnya....

Saturday, January 2, 2016

Visual C# : Menerima Data Serial Dengan DataReceived Event

Rekan-rekan sudah pernah melakukan komunikasi serial UART? Yup, komunikasi serial UART ini sering sekali digunakan untuk bertukar informasi antara hardware satu dengan yang lainya. Entah dari mikrokontroler ke mikrokontroler yang lain, PC ke PC ataupun mikrokontroler ke PC.
https://cdn.sparkfun.com/assets/2/5/c/4/5/50e1ce8bce395fb62b000000.png

Bagi rekan-rekan yang sudah pernah mengembangkan aplikasi dengan menggunakan komunikasi serial UART, hampir bisa dipastikan sering berurusan dengan proses penerimaan data dari Serial Port.
Penerimaan data dari Serial Port sering kali menjadi kendala apabila data yang kita terima bisa sewaktu-waktu alias suka-suka si pengirim kapan mau mengirimkan data.
Kalau sudah begini, pasti si penerima yang dibikin pusing. Kalau tugas penerima hanya menerima data dari si pengirim ya bukan menjadi masalah.
Kalau si penerima harus mengerjakan tugas lain, lalu bagaimana???!!!!!
Si penerima harus terus menunggu data tanpa kepastian????
Itu mah namanya PHP..wkwkwk.....pemberi harapan palsu!!!!!.....


Dari gambar di atas, ketika A memberikan data (Data A ke B) dalam waktu yang tidak bisa diperkirakan, tentu saja program di B akan terus menunggu data (Data A ke B) secara terus menerus..

Lalu bagaimana solusinya?
Ada beberapa solusi yang diberikan, bisa menggunakan receive time-out atau received event.

Receive Time-Out

Proses pembacaan data dalam kurung waktu tertentu, misal, dalam 5 detik jika di serial port tidak ada data yang diterima, maka program akan mengerjakan tugas selanjutnya.

Received Event

Proses pembacaan data jika diketahui ada data yang diterima. Dalam mikrokontroler kita bisa menggunakan serial receive interrupt. Jika di pemrograman PC (C++, C#, Basic, dll) kita bisa menggunakan thread terpisah dari thread utama untuk mendeteksinya adanya data di serial port.


Pembahasan Received Event di Visual C#

Pada artikel kali ini, pembahasan teknik penerimaan data serial di Visual C# hanya dibatasi untuk Received Event dengan tampilan data di Console.

VS2008

Download kode program / project

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.IO.Ports;

namespace ContohSerialEvent
{
    public partial class Form1 : Form
    {
        SerialPort serialPort = new SerialPort();
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            
        }

        private void btnComPort_Click(object sender, EventArgs e)
        {
            try
            {
                if (btnComPort.Text == "Buka")
                {   
                    serialPort.PortName = txtComPort.Text;
                    serialPort.Open();
                    btnComPort.Text = "Tutup";
                    while (chkEvent.Checked == false)
                    {
                        Console.Write(serialPort.ReadExisting().ToString());
                    }
                }
                else if (btnComPort.Text == "Tutup")
                {
                    serialPort.Close();
                    btnComPort.Text = "Buka";
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private static void terimaData(object sender,SerialDataReceivedEventArgs e)
        {
            SerialPort sp = (SerialPort)sender;
            string terimaData = sp.ReadExisting();
            Console.Write(terimaData);
        }

        private void chkEvent_CheckedChanged(object sender, EventArgs e)
        {
            if (chkEvent.Checked == true)
            {
                serialPort.DataReceived += new SerialDataReceivedEventHandler(terimaData);
            }
            else
            {
                serialPort.DataReceived -= new SerialDataReceivedEventHandler(terimaData);
            }
        }
    }
}

Sebagai percobaan, saya menggunakan software com0com yang merupakan virtual serial port yang dapat berjalan di OS Windows.

Download software com0com x86, com0com x64

Sedangkan untuk bantuan pengiriman data serial, saya menggunakan software terminal serial HTerm.


  1. Jalankan "ContohSerialEvent.exe" atau Run "Project ContohSerialEvent"

  2. Ketikan nama ComPort. Saya menggunakan ComPort10 untuk menerima data dari HTerm yang menggunakan ComPort11.

  3. Centang "Received Event"

  4. Tekan tombol "Buka"

  5. Lalu pada software HTerm, pilih COM yang disediakan pada com0com. Saya menggunakan COM11. COM10 dan COM11 secara otomatis terkoneksi antara Tx dan Rx nya.

  6. Ketikan huruf atau kalimat dibagian Input Control pada software HTerm. Lalu perhatikan jendela output pada Visual Studio. Pada artikel ini saya menggunakan Visual Studio 2008 sebagai informasi tampilan.
     

  7. Lalu coba tekan tombol "Tutup" dan tekan kembali tombol "Buka".

  8. Apabila berhasil membuka dan menutup koneksi serial, maka fungsi Received Event di C# berfungsi dengan baik. Karena jika tidak, maka data serial tidak akan muncul di bagian jendela "Output" dan tombol "Tutup" atau "Buka" tidak bisa ditekan.

  9. Untuk menonaktifkan Received Event :
    1. tekan tombol "Tutup"
    2. lalu hilangkan centang "Received Event"
    3. tekan kembali tombol "Buka". 

  10. Pada kondisi ini, maka program di C# akan selalu menunggu data dari serial dan tidak bisa mengerjakan tugas yang lain, seperti penekanan tombol "Tutup". Bahkan tulisan tombol "Buka tidak mau menjadi "Tutup" ketika tombol tersebut ditekan.
Informasi mengenai Received Event di Visual C# dapat dilihat melalui link ini

Bagaimana? Mudah bukan?
Selamat berkreasi dengan Visual C#....!!!!!

Friday, January 1, 2016

Mini54FDE, Mikrokontroler ARM Cortex-M0 32-bit dengan harga 10ribuan.

Jaman sekarang uang 10 ribu bisa dibuat apa? Makan?Minum? atau Nonton Bioskop? Hmm...Sekarang ini dengan harga tukar Rupiah ke Dolar Amerika yang terus melemah (14ribuan), uang 10ribu memang menjadi nilai yang tidak terlalu besar untuk sebagian orang. Apalagi bagi para pencinta elektronika. Bayangin ajah, uang 10ribu cuma bisa buat beli konektor doang....wkwkkw....Ya memang tidak cuma konektor sebenarnya...ada beberapa macam komponen yang memiliki harga yang bervariasi.

Pada artikel kali ini saya coba mengenalkan sebuah mikrokontroler dengan harga sekitar 10ribuan, yaitu Mini54FDE...
Uppss...jangan salah...mikrokontroler ini bukan mikrokontroler biasa loh....

8-bit? lewat.....


Yup, mikrokontroler yang akan saya kenalkan kali ini tidak lagi bermain di dunia 8-bit, akan tetapi 32-bit!!!!!!!

Berbasis ARM Cortex-M0, mikrokonrtoler besutan dari Nuvoton ini dijual di Indonesia dengan harga sekitar 10ribuan
Penasaran??Cek saja di toko online elektronik : DigiWareStore.com
Informasi ini diambil tanngal 31 Desember 2015
Penampakan MINI54FDE
Ukuran yang kecil
https://www.nuvoton.com/export/sites/nuvoton/images/Microcontrollers/EN_Mini51D.jpg

Perusahaan semikonduktor asal Taiwan ini memang termasuk dalam salah satu perusahaan semikonduktor yang mengembangkan mikrokontroler berbasis ARM Cortex. Selain Nuvoton, ada juga Toshiba, STMicroelectronics, ATMEL, Texas Instrument, NXP, Freescale, dan beberapa perusahaan semikonduktor yang lain yang memproduksi mikrokontroler berbasis ARM Cortex.
Sumber : https://upload.wikimedia.org/wikipedia/en/b/b2/Nuvoton_logo.jpg

Emang apa kelebihan ARM Cortex-M0 dibanding mikrokonroler 8-bit pada umumnya?
Jika di Indonesia, mungkin kita sudah familiar dengan yang namanya ATMega Series, ATTiny Series. atau mungkin Arduino???Nah...Apa bedanya?

Dalam hal ini saya bukan orang yang ahli dalam bidang jeroan mikrokontroler, akan tetapi dari sisi kecepatan pemrosesan data, jika ATMega, ATTiny bahkan Arduino masih mengolah data dalam 8-bit, maka ARM Cortex sudah mengolah data dalam 32-bit.

Selain itu dari sisi clock, Mikrokontroler ARM Cortex pada umumnya bisa bekerja sampai dengan frekuensi clock lebih dari 20MHz. Ada juga yang sampai 90an MHz lo....

Jika rekan-rekan yang lebih ahli dalam mikrokontroler, mungkin akan memandang dari sisi jeroan mikrokontroler 8-bit dan 32-bit, yaitu adanya kemampuang clock individu untuk AHBbus, APBA bus, APBB Bus di ARM Cortex (tidak dijumpai dengan mikrokontroler 8bit).

Masih ragu untuk beralih ke mikrokontroler ARM?
Memang ada peribahasa mengatakan 
"Tak kenal maka tak sayang"
Oleh karena itu, mari coba terlebih dahulu untuk mempelajari dan mulai menggunakan mikrokontroler ARM Cortex 32-bit.
Memang perlu adaptasi, perlu proses belajar...Akan tetapi semua itu akan terbayar dengan kemampuan yang ditawarkan...

Fitur

Mini54FDDE merupakan salah satu varian mikrokonrtoler seri Mini51 yang dimiliki oleh Nuvoton.
https://www.nuvoton.com/export/sites/nuvoton/images/Microcontrollers/EN_Mini51-Series.jpg

Mikrokontroler mungil ini sudah dilengkapi dengan :
  1. APROM /  Program Memory sebesar 32KByte Flash Memory,
  2. SRAM 2KByte
  3. DataFlash / EEPROM dapat dikonfigurasi besarnya. Penggunaan dataflash share dengan APROM / Program Memory
  4. Adanya LDROM 2KByte. LDROM digunakan untuk menyimpan kode program untuk bootloader (memory terpisah dengan APROM)
  5. Internal Clock 22,1184MHz. Kalau mau irit, cuma Mini54FDE, power supply 5VDC di pin VCC dan GND, mikrokontroler ini sudah bisa berkerja tanpa kristal eksternal. Hal ini juga berlaku ketika proses download kode program, tidak perlu kristal eksternal.
  6. 17 pin Input / Output
  7. ADC 4 channel 10-bit
  8. PWM 3 channel 12-bit
  9. Timer 2 channel 32-bit.

Pemrograman

Karena Mini54FDE berbasis ARM Cortex-M0, dan seperti yang kita keterahui bahwa ARM Cortex dioptimasi untuk diprogram dengan menggunakan bahasa pemrograman C, oleh karena itu MINI54FDE ini dapat diprogram dengan menggunakan bahasa pemrograman C. Software IDE yang dapat kita gunakan dan sudah kompatibel dengan Mini54FDE adalah Keil v4, Keil v4, CooCOX, dan beberapa software IDE yang lain.


Contoh Pengembangan Aplikasi dengan Mini54FDE


Stopwatch 1 channel

Stopwatch 2 channel

Barrier Gate Controller

Barrier Gate Controller
Penasaran dengan cara membuat program dan memahami strutur dari Mini54FED?
Tunggu artikel saya berikutnya.....

Informasi

Artikel ini tidak saya buat untuk memasarkan produk ataupun toko online terkait, akan tetapi hanya sebatas memberikan informasi kepadan rekan-rekan dan memberikan informasi mengenai toko yang menyediakan komponen ini menurut sepengetahuan saya.



Thursday, October 29, 2015

Software Apotek Rattosoft

Pada awal tahun ini (sebelum saya resign dari pekerjaan saya), saya ditawari teman saya Daniel Kristianto untuk membuat software aplikasi apotek. Tanpa pikir panjang, saya bilang, Wokeh.....wkwkkw...

Yup, pada awal perancangan, saya sempat bingung ingin membangun software ini berbasis visual C# atau WPF? Karena kendala dari waktu yang diberikan oleh si empunya proyek, maka saya putuskan untuk membuat dari visual C#.