Beranda blog Halaman 3

Membuat DIY Nano Keyboard Untuk Game OSU!

0
DIY Nono Keyboard Osu
DIY Nono Keyboard Osu | Photo by FansElectronics.com

Selain elektronika saya juga memiliki hobby lain yaitu Ngegame (Main Game), hehe. Dan beberapa saat lalu dari artikel ini ditulis, saya menemukan game yang cukup menarik dari salah satu channel Yotube. Game ini bernama OSU!, game music tapping layaknya Guitar Hero (jika kalian tau, aja), namun memiliki konsep yang berbeda dengan guitar hero, dimana tidak menggunakan garis tab, melainkan menggunakan peta geometrix. berikut ini contoh gamenya.

osu game play

Osu Gameplay | Contact [email protected]

Loh kok web ini jadi bahas Game sih?? hehe tenag aja, saya tidak akan membahas detail gamenya, tetapi ada hal yang membuat saya tertarik dari game ini. Tentunya berhubungan dengan Elektronika dan Arduino, Ya :). Oke, pada saat saya mulai menekuni game ini, ternya ta ada salah satu channel Youtube yang menggunakan tool, yang cukup menarik menurut saya. Dimana dia membelu sebuah Keyboard kecil dengan 2 Tombol Key dan 3 buah Button. Nama-nya Nono Keyboard (Nano Keboard, slang otaku anime, biar ke jepang-jepangan, haha). Yang bikin saya tertarik adalah setelah saya cek di Marketplace (Tokopedia atau Bukalapak – NB: Bukan ngiklan ya :p),  harga dari keyboard ini bisa sampai 700 ribuan Rupiah. Harga fantastic untuk satu buah keyboard dengan 2 tombol, sedangkan saya beli keyboard mekanikal Full Key dengan harga yang sama.

harga nono keyboard
Harga Online Nono Keyboard | Screenshot by FansElectronics.com

Dari permasalahan diatas saya bertanya-tanya, bukannya Arduino mendukung komunikasi Keyboard dengan HID (Human Interface Divice), langsung-lah saya Googling dan mencari informasi library tersebut, dan all-hasil ketemu. Nah pada artikel ini saya akan memberikan tutorial membuat  DIY Nano Keboard untuk game OSU! mayan untuk kalian yang suka gamenya tapi gak punya keyboard Mechanical karena harganya yang cukup mahal.  Oke langsung saja kita mulai dari daftar komponen.

Daftar Komponen

  • 1pcs ATMEGA8 (rekomendasi biar Murah) atau ATMEGA328
  • 2pcs Mechanical Switch (Pilih warna yang kalian suka, pelajari dulu perbedaan warna switch. Rekomendasi Merah /  Hitam). Bisa pakai Oetemu /  Cherry MX.
  • 3pcs Tact Switch 6×6 (susaikan selerah).
  • 1pcs Soket Micro USB (jika susah, redesign aja ganti soket gampang dicari, macam USB B Arduino UNO).
  • 2pcs Dioda Zener 3,6V.
  • 1pcs Resistor 1/4W 2,2K.
  • 2pcs Resistor 1/4W 68Ohm.
  • 2pcs Capasitor Keramik 22pf
  • 1pcs Crystal 16MHz
  • 1pcs Fuse Resistor (kalau susah, langsung aja jumper pakai kawat. Cuma untuk sikring).
  • Untuk LED (bebas, kasih gak dikasih gak masalah, cuma estetika).
  • USBasp, untuk upload Program.

Skemarik dan PCB

Catatan: File Desain sudah dilampirkan di Repository.

Desain Nono Keyboard
Skematik & Layout Nono Keyboard | Design by FansElectronics.com

Arduino Program

//----------------------------------------------------------------------------------
#include <USBKeyboard.h>

#define BL       11
#define BR       10
#define B1       A5
#define B2       12
#define B3       9
#define LAYOUT   LAYOUT_US

int State1, State2, State3, StateR, StateL;
int holdR, holdL, oldR, oldL;
USBKeyboard nonoKey = USBKeyboard();

//----------------------------------------------------------------------------------
void setup() {
  TIMSK = 0;        // MEGA8
  //TIMSK0 = 0;     // MEGA328
  pinMode(BL, INPUT_PULLUP);
  pinMode(BR, INPUT_PULLUP);
  pinMode(B1, INPUT_PULLUP);
  pinMode(B2, INPUT_PULLUP);
  pinMode(B3, INPUT_PULLUP);
}
//----------------------------------------------------------------------------------
void loop() {
  nonoKey.update();
  if (digitalRead(BL) == LOW and StateL == LOW) {
    nonoKey.sendReport(0, nonoKey.asciiToKeycode('z'), 0, 0, 0, 0, 0); StateL = HIGH;
  }
  if (digitalRead(BR) == LOW and StateR == LOW) {
    nonoKey.sendReport(0, nonoKey.asciiToKeycode('x'), 0, 0, 0, 0, 0); StateR = HIGH;
  }
  if (digitalRead(B1) == LOW and State1 == LOW) {
    nonoKey.sendKeys(0x51, 0, 0, 0, 0, 0); State1 = HIGH;
  }
  if (digitalRead(B2) == LOW and State2 == LOW) {
    nonoKey.sendKeys(0x29, 0, 0, 0, 0, 0); State2 = HIGH;
  }
  if (digitalRead(B3) == LOW and State3 == LOW) {
    nonoKey.sendKeys(0x52, 0, 0, 0, 0, 0); State3 = HIGH;
  }

  //-----------------------------------------------------------------------
  if (holdL > 50) {
    holdL = 100;
    if (oldL > 10) {
      nonoKey.sendReport(0, nonoKey.asciiToKeycode('z'), 0, 0, 0, 0, 0); oldL = 0;
    }
  }
  if (holdR > 50) {
    holdR = 100;
    if (oldR > 10) {
      nonoKey.sendReport(0, nonoKey.asciiToKeycode('x'), 0, 0, 0, 0, 0); oldR = 0;
    }
  }



  //-----------------------------------------------------------------------

  if (digitalRead(BL) == HIGH and digitalRead(BR) == HIGH) {
    nonoKey.sendReport(0, 0, 0, 0, 0, 0, 0);
  }

  if (digitalRead(BL) == HIGH) {
    StateL = LOW; oldL = 0; holdL = 0;
    if (digitalRead(BR) == LOW) {
      nonoKey.sendReport(0, nonoKey.asciiToKeycode('x'), 0, 0, 0, 0, 0);
    }
  }
  if (digitalRead(BR) == HIGH) {
    StateR = LOW; oldR = 0; holdR = 0;
    if (digitalRead(BL) == LOW) {
      nonoKey.sendReport(0, nonoKey.asciiToKeycode('z'), 0, 0, 0, 0, 0);
    }
  }
  if (digitalRead(B1) == HIGH) {
    State1 = LOW;
  }
  if (digitalRead(B2) == HIGH) {
    State2 = LOW;
  }
  if (digitalRead(B3) == HIGH) {
    State3 = LOW;
  }

  delayMicroseconds(20000);
  holdL = holdL + 1;
  holdR = holdR + 1;
  oldL = oldL + 1;
  oldR = oldR + 1;
}
//----------------------------------------------------------------------------------

Catatan: Program dan Library sudah dilampirkan di Repository.

Hasil

Berikut ini gambar hasil yang saya buat.

Nono Keyboard
Nono Keyboard Osu | Photo by FansElectronics.com

Video

https://www.youtube.com/watch?v=CLEGnbkHYBc

Repository Download

https://github.com/FansElectronics/Arduino-Nono-Keyboard-Osu

Hehe gimana? keren-kan, ketimbang beli mahal-mahal gimana kalau kita membuat sendiri nano Keyboardnya.

Code Editor Kekinian Visual Studio Code, Favorit Saya

0
Visual Studio Code
Visual Studio Code

Sedikit Pengenalan

Beberapa waktu lalu saya mulai menggeluti dan belajar pemrograman website seperti bahasa pemrograman HTMl, PHP, hingga Framwork seperti Codeigniter dan Bootstrap. Mungkin bagi kalian artikel ini sedikit menyimpang dari topic dari website ini. Namun bagi saya pemrograman website sudah wajib juga kita pelajari. Mengapa? Dikarenakan perkembangan Internet of Things (IoT) yang semakin berkembang pesat, kita juga dituntut untuk memperlajari pemrograman website.

Untuk belajar pemrograman website kita butuh sebuah Code Editor, seperti Notpad. Sebenarnya banyak sekali macam-macam text editor, yang dapat mempermudah kerja kalian dalam membuat program website atau bahkan meprograman bahasa lainnya. Disini saya menemukan rekomendasi text editor Visual Studio Code (VS Code). VS Code ini sangatlah menarik dan keren menurut saya, banyak fitur-fitur yang membantu saya dalam pengerjaan suatu project, dari project website bahkan pemrograman Arduino.

Pada Artikel ini saya tidak akan menjelaskan kelebihan secara lengkap, namun saya menjelaskan kepada kalian dari sudut pandang awam saya, saat pertama kali menggunakan VS Code ini.

Tema Bawaan Dark Theme

Mungkin untuk yang satu ini adalah preferensi masing-masing ya :P. Saya lebih suka dengan thema gelap, karena untuk menjaga mata agar tidak mudah lelah saat mengerjakan code yang panjang dengan waktu yang lama. Saya bisa menghabiskan waktu didepan komputer lebih dari 12 jam setiap harinya. Tentunya diimbangi dengan istirahat setiap 40 menitnya. Sebenarnya beberapa text editor sudah bisa mengganti themanya. Seperti notpad++, sublime text, dll.

User Interface Sederhana

Tampilan dari VS Code cukup sederhana. Saat pertama kali membukanya saya cukup mudah membuka fitur-fitur yang ditawarkan. Selain itu dengan adanya magement folder project dibagain sidebarnya, mempermudah saya membuka file dalam project saya, jika banyak file dalam satu project.

VS Code Ui
VS Code Ui

Command Pallate

Saya kurang tau untuk namanya, saya browsing dulu sebentar, hehe. Tapi ini salah satu fitur yang saya sukai. Kita dapat memanggil suatu perintah atau mencari file yang ingin kita buka langsung menggunakan command pallate ini. Misalkan saja dalam satu project file yang kalian buka, terdapat banyak sekali sub folder, sedangkan kalian ingin membuka suatu file tertentu. Saya lebih suka menggunakan command pallete, dengan mengketikan nama dan tekan enter file otomatis terbuka. Masih banyak kegunaan dari fitur ini, tapi saya masih jarang menggunakannya, hehe.

Command VS Code
Command VS Code

Ini fitur yang sangat saya sukai juga. Mungkin ada beberapa orang yang menganggap tools itu membantu dan juga ada yang beranggapan tools itu melah menghambat. Namun bagi saya tools itu sangat membantu. Fitur Intellisense ini memungkinkan untuk auto complete / syntax-highlight saat kita mengetik suatu perintah dalam program yang kita gunakan. Sehingga membuat mempercepat proses pengetikan suatu program. Bagi saya program itu gak perlu diingat namun dipahami saja, Karena setiap perintah dari suatu program atau library, pastinya sudah terdapat semuanya di file Referensi / Dokumentasi-nya.

VS Code Intelisense
VS Code Intelisense

Auto Check Error

Mungkin ini sudah ada dibeberapa Code Editor lainnya, namun sudah ada disini sini juga memberikan keistimewaan bagi saya untuk menggunakan VS Code. Ditambah keterangan error yang mudah diBanyak Plugin / Extenstion

Ini yang membuat saya jatuh cinta dengan code editor satu ini. Banyak sekali pilihan Plugin atau di VS COde ini menyebutnya Extention. Kalian bisa memanfaatkan ekstensi tambahan tersebut untuk membantu dan mempermudah kalian dalam membangun suatu program. Seperti halnya:

  • Intelisense (auto complete).
  • Dukungan bahasa pemrograman lain.
  • Auto format untuk mempercatik penulisan program
  • Pewarnaan format
  • Dll.

Sebagai contohnya kalian bisa cek gambar dibawah, penulisan program jauh lebih keren dengan adanya tambahan extensi yang sesuai dengan bahasa program yang kalian gunakan.

Extention VS Code

Terintegrasi dengan Github

Hehe, yang satu ini gak perlu dipertanyakan lagi. Terlebih lagi bagi kalian yang menggunakan Github untuk mempermudah pengerjaan kalian. Seperti halnya saya yang sering kali pindah-pindah komputer, kadang di komputer rumah, kantor, dan kadang di laptop sambil ngopi bareng temen-temen. sangat memudahkan kalian untuk mengambil data tanpa harus backup data dengan flashdisk atau drive lain.

Github VS Code
Github VS Code

Ngomong-ngomong penjelasan diatas adalah kelebihan github ya, hehe. Bagi kalian yang ingin bekerja mudah dengan github bisa baca artikel dibawah ini.

https://testing.fanselectronics.com/2019/07/10/cara-mudah-bekerja-dengan-git-dan-github/

100% Gratis

Aplikasi ini memang bersifat open source gratis, kalian bisa download langsung di https://code.visualstudio.com. Mungkin ada beberapa extention yang bisa jadi bersifat berbayar. Tapi untuk saat ini saya belum pernah menemukannya hehe..

VS Code Mainpage
VS Code Mainpage

Bonus

Ada yang menarik juga dengan VS Code ini, ada Extension Arduino yang dapat mendukung pemrograman arduino, dari syntax hingga compile dan upload program langsung dari VS Code tanpa Arduino IDE. Mungkin saya jarang menggunakan fitur ini, namun menarik jika kita ulas lanjut di artikel lainya ya. Mungki tulisa aja dikota komentar jika tertarik untuk dibahas juga.

Arduino VS Code
Arduino VS Code

Kesimpulan

Menurut saya pribadi VS Code ini sangat membantu sekali dalam pekerjaan saya, saat mendevelope suatu program. Terlepas dari perdebatan Tools itu menghambat atau membantu. Saya jelas memilih Tools itu membantu saya. Mengapa? saya sudah tulis diatas, bahwa program itu tidak perlu dihafalkan namun dipahami, karena semuanya sudah ada di file Referensi dan Dokumentasinya, jadi bagi kalian yang baru pertama kali belajar program, biasakan buka file Dokumentasinya atau di Arduino Library ada file Examplenya juga. hehe.

Oke semuanya bagaimana menurut kalian untuk VS Code ini, tuliskan pendapat dan masukan kalian di kotak komentar di bawah ya. Bye Salam Coding.

Belajar MQTT IoT Dengan Teknologi Protokol MQTT

0
MQTT IoT
MQTT IoT | Contact [email protected]

Sedikit Pengenalan

Internet of Things (IoT) semakin berkembang pesat, semakin banyak pula melahirkan produk-produk yang terhubung ke jaringan internet. Dengan IoT kita semakin dipermudah untuk memonitoring dan mengendalikan peralatan elektronik melalui jaringan internet yang dapat menggunakan antarmuka melalui komputer hingga smartphone.

BACA JUGA: PROJECT INTERNET OF THINGS WIFI ESP8266 VIA WEBSITE (PHP, MYSQL)

Pada artikel sebelumnya saya pernah membuat tutorial seputar pembuatan teknologi IoT dengan menggunakan metode HTTP Request. Pada artikel ini saya akan mengenalkan sedikit seputar metode yang jauh efektif dengan metode sebelum untuk diterapkan pada IoT. Dimana metode ini disebut dengan MQTT IoT. Seperti yang kalian tau, pada suatu jaringan internet banyak sekali protokol yang digunakan, namun MQTT yang cocok digunakan pada IoT, apa sih kelebihannya dibandingkan dengan menggunakan HTTP request. Kita perlu mengenal dulu apa itu MQTT.

Apa itu MQTT?

MQTT merupakan singkatan dari Message Queueing Telemetry Transport dikembangkan dikembangkan oleh IBM pada tahun 1999 untuk melakukan monitoring pada sebuah pipa minyak yang ada di suatu tempat yang jauh dan sulit dijangkau. Tujuan dari proyek ini adalah untuk membuat sebuah protocol pengiriman data, yang sangat bandwidth-efficient dan mengonsumsi tenaga batere se-sedikit mungkin, hal ini karena perangkat terkoneksi melalui jaringan satelit yang sangat mahal pada jamannya.

MQTT menggunakan konsep Publish / Subscribe. Berbeda dengan HTTP yang menggunakan konsep Request/Respone. Pusat komunikasi pada MQTT disebut Broker. Broker ini bertanggung jawab atas terkirimnya semua pesan termasuk jalur distribusinya. Setiap Client dapat menjadi Publisher ataupun Subscriber, lebih mudahnya bisa mengirim data atau menerima data. Data yang dikirim pada metode ini adalah  Topic dan MessegeTopic adalah suatu informasi yang ada pada Broker. Messege adalah data yang kita kirim. Sederhannya Topic adalah nama tabel nya dan Messege adalah datanya, contoh topic SUHU1 dan messege 30. Arsitektur semacam ini membuat solusi percakapan bisa dikembangkan dengan skala besar, karena tidak memerlukan ketergantungan antara data producers dan data consumers. Berikut ini ilustrasi Publish dan Subscribe pada protokol MQTT.

Ilustrasi MQTT Protocol
Ilustrasi MQTT Protocol ontact [email protected]

HTTP vs MQTT

  • Protokol HTTP merupakan protokol yang sering kita gunakan. Contoh umumnya adalah URL pada browser “https://testing.fanselectronics.com“. Protokol ini sering dan mudah digunakan untuk berhubungan dengan server, karena bisa melakukan komunikasi 2 arah. Saat url di eksekusi maka response dari server dapat langsung diterima, dimana server tersebut bisa berupa plain text ataupun berformat JSON. Ketika berhubungan dengan Hardware yang tidak memiliki static IP, protokol ini tidak dapat digunakan.
  • Protokol MQTT merupakan protokol yang khusus di rancang untuk komunikasi “mesin ke mesin” atau sederhananya untuk komunikasi dengan device atau mesin yang tidak memiliki alamat khusus. Protokol ini memiliki kemampuan publish dan subscribe sehingga dapat digunakan untuk komunikasi 2 arah baik antara server ataupun dengan device yang lain.

Contoh Kasus

  • Sebuah device digunakan untuk mengirim data sensor saja (hanya mengirim data ke server), maka protokol HTTP atau MQTT dapat digunakan.
  • Jika device tersebut ingin dapat menerima perintah maka device tersebut HARUS menggunakan protokol MQTT. walaupun sebernarnya bisa menggunakan HTTP, namun akan sangat memboroskan sumber daya server ataupun bandwidth client.

Belajar MQTT di Windows

Untuk memahami konsep dari MQTT ini, kalian bisa belajar dulu sederhana saja dengan menggunakan MQTT pada Windows. Disini saya menggunakan aplikasi MQTT yang dikembangkan oleh Mosquitto, silahkan download di mosquitto.org. Jangan lupa sesuaikan bit OS kalian, dan install aja seperti biasa, saran agar mempermudah instal pada drive C:\ (jangan di Program Filesnya) agar sama dengan tutorial dibawahnya. Berikut ini file dari MQTT Mosquitto:

Mosquitto MQTT
Moquitto Installer | Screenshot by FansElectronics.com

Dari file installasi, ada tiga (3) file yang perlu kalian perhatikan, yaitu: moquitto.exemosquitto_sub.exe, dan mosquitto_pub.exe. Masing-masing file digunakan sebagai broker, subscriber, dan publisher. Kalian bisa menggunakan komputer kalian sebagai brokernya secara lokal atau kalian bisa menggunakan alamat broker lain yang banyak tersedia gratis. pertama-tama mari kita coba dulu menggunakan server lokal kita sebagai Broker.

MQTT Mosquitto Local Broker

Untuk brokernya kalian tinggal double-click mosquitto.exe, kemudian akan muncul CMD kosong seperti berikut:

Mosquitto MQTT
Mosquitto.exe | Screenshot by FansElectronics.com

Gak usah kawatir kosong, yang jelas kalian biarkan saja itu Broker sudah jalan. Kemudian untuk menjalankan Subscriber dan Pusblishernya, kalian dapat menjalankannya melalui Command Promt dengan buka RUN (CTRL+R) ketik CMD. Pertama kita akan jalankan Subscribernya kemudian kita set. Ikuti perintah yang ada pada gambar berikut ini:

Mosquitto MQTT
Moquitto Local Subcribe | Screenshot by FansElectronics.com

Dari perintah diatas kalian akan menjalankan perintah sub dengan alamat broker local yaitu 127.0.0.1.

Perintah:

  • -h host
  • -t topic
  • -m messege

Disini saya menggunakan topic SUHU, kalian bisa ganti sesuai dengan kebutuhan. Kemudian tekan enter, kalian lanjut pada publishernya, karena subscriber sudah terkoneksi ke broker, jika ada data baru yang dikirim pada Topic SUHU, maka Broker akan mengirimkannya ke Subscriber (mirip, notif di youtube). Berikut ini perintah untuk Publishernya:

Mosquitto MQTT
Moquitto Local Publish | Screenshot by FansElectronics.com

Setelah kalian Enter, maka hasil dari subscriber akan menerima data 30 pada Topic Suhu. Berikut hasilnya:

Dari sini kita sudah bisa mengirim data dan menerima data. Kalian bisa coba-coba lagi dengan Topic dan data yang berbeda.

MQTT Mosquitto Online Broker

Sekarang kita coba bagaimana penerapan MQTT IoT dengan Broker Online. Dimana kita perlu mencari dulu Broker gratis yang ada diinternet. Salah satunya kalian bisa menggunakan mqtt-dashboard.com, dimana alamat brokernya adalah broker.mqtt-dashboard.com. Perlu diperhatikan sebelum menggunakan broker gratisan. Dengan menggunakan broker gratis, tidak ada security tambahan untuk mengamankan data dan topic yang kalian buat, jadi semua orang bisa menggunakan Topic dan membaca Messege.  Saran saya kalian buat Topic sesusah mungkin untuk digunakan orang lain, semacam Kata Sandi gitu. Berikut ini perintah dan contoh hasil yang saya buat:

Mosquitto MQTT
Moquitto Hasil Test 2 | Screenshot by FansElectronics.com

Disini saya mengirim data berupa suhu dengan messege data “10” pada topic FansXsuhu. jika kalian penasaran coba aja akses topic yang saya buat, pastinya ada data String “10”. Kecuali sudah diubah orang lain.

Oke semoga dari pembahasan diatas kalian setidaknya sudah paham dan mampu menggambarkan metode MQTT IoT. Untuk next artikel kita akan coba implementasikan metode MQTT ini dengan Menggunakan Arduino ESP8266 untuk menyalahkan dan mematikan LED. Jangan lupa join dengan forum kita di Facebook dan channel youtube kita, link sudah ada diatas website. Semoga bermanfaat dan salam Teknologi.

Cara Mengetahui Alamat Komunikasi I2C Arduino

0
I2C diagram
I2C Diagram

Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial dua arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa informasi data antara I2C dengan pengontrolnya. I2C sangatlah bermanfaat, fungsinya yang sangat menghemat penggunakan Pin Input / Output (I/O), ketimbang komunikasi pararalel yang sangat banyak membutuhkan Pin I/O. Komunikasi I2C hanya membutuhkan 2 pin saja, yang dapat digunakan secara bersama dengan beberapa module lain. Komunikasi I2C dapat membaca data masing-masing module melalui identifkasi alamat.

Disini saya akan membagikan tutorial bagaimana Cara Mengetahui Alamat Komunikasi I2C Arduino. Dengan menggunakan pemrograman I2C Scanner sangat mudah digunakan. Terdapat beberapa library yang terkadang membutuhkan deklarasi dengan memasukan alamat I2C module, oleh karena itu tutorial ini dibutuhkan bagi temen-temen yang belum mengetahui caranya.

Contoh Skematik Komunikasi I2C

Berikut ini adalah contoh komunikasi I2C dengan menggunakan module I2C LCD16x2 PCF8574.

Skematik Arduino LCD I2C
Skematik Arduino LCD I2C

Module Yang Menggunakan Komunikai I2C

Banyak module I2C lain dapat dihungungkan dengan Arduino. Berikut ini beberapa Module I2C tersebut:

Modul Module I2C
Modul Module I2C

Sekarang kita masuk contoh pemrograman, untuk contoh pemrograman bisa di buka dihalaman selanjutnya.

6 Hal Yang Wajib Diketahui Desainer PCB

0
desain PCB
Desain PCB Eagle CAD

Dalam Desain PCB Seperti halnya desainer pada umumnya, seorang Desainer PCB pastinya juga memiliki hal yang wajib diketahui dan dipelajari terlebih dahulu, agar hasil desainnya bagus dan aman digunakan. Disini penulis akan membahas 6 hal yang wajib diketahu bagi seorang Desaian PCB.

1. Rangkaian alat yang akan dibuat

Merupakan hal yang wajib dan pasti, seorang desainer PCB harus mengetahui rangkaian atau rancangan dari sebuah project yang akan dibuat. Dimulai dari rancangan konsep, komponen yang digunakan hingan diagram skematiknya. Tidak lupa dengan pakaging (box alat), yang mana harus diketahui oleh seorang disainer. Dengan ini seorang desianer PCB akan lebih mudah untuk membuat rangcangan dan bentuk dari project yang akan dibuat.

2. Simbol dan Komponen

simbol komponen elektro
Simbol Komponen Elektronika

Dalam dunia elektronika umum kita jumpai simbol-simbol, entah dari sebuah gerbang digital, komponen, catudaya, op-amp, dll. Hal dasar ini wajib diketahui bagi seorang Desainer PCB, karena selaian harus membuat sebuah skematik rangkaian, juga harus dapat membaca dari sebuah rangkaian dengan simbol-simbol yang sangat banyak. Selain itu juga seorang desaianer dapat menentukan komponen dari simbol-simbol pada skematik tersebut.

komponen elektronika
Komponen Elektronika

Dari sisi komponen/hardware pastilah seorang desainer PCB sedikitnya mengenal namanya komponen dasar, seperti resistor, capastitor, induktor, diode, transtor, Integrated Circuit (IC), dll. Dengan mengenal karakteristik dan bentuk komponen dapat memudahkan seorang desainer dalam membuat sebuah desain. Walau pun tidak semua komponen wajib dipahami mendetail, karena setiap komponen pastinya telah memiliki datasheet atau awam menyebutnya  dengan sebuatan manual book.

3. Aplikasi atau Software PCB

desain PCB
Desain PCB Eagle CAD

Telah banyak bermunculan aplikasi PCB CAD (Computer Aided Design), seperti Express PCB, DipTrace, Sprint Layout, Proteus, Altium, Protel, Eagle, dll. Sehingga hal ini membuat banyak awam yang baru mempelajari PCB CAD, bingung memilih dengan aplikasi apa yang mudah untuk digunakan. Menurut penulis sendiri, memilih sebuah aplikasi desain PCB tidak jauh dengan memilih aplikasi lainya. Sebagai contoh memilih aplikasi desain photo misalnya, penulis sendiri lebih suka menggunakan Adobe Photoshop, namun untuk membuat sebuah logo penulis memilih Corel Draw. Contoh ke-2 aplikasi kantor/office, penulis lebih memilih Microsoft Office, karena sudah terbiasa mulai awal belajar komputer, kemudian lain waktu juga menggunakan Libre Office, dikarena pengguna linux tidak dapat menggunakan Microsoft Office. Nah dari dua contoh diatas, dapat disimpulkan dalam memilih sebuah aplikasi, tidaklah harus canggih seperti altium atau eagle namun disesuaikan dengan kebutuhan dan kebiasaan masing-masing individu. Penulis sendiri sejak awal sudah mengggunakan aplikasi Cadsoft Eaggle (sekarang Autodesk Eagle), yang mana selain lengkap fiturnya, juga banyak library open source yang dibuat, dikarenakan boomingnya modul-module arduino yang menggunakan aplikasi ini.

4. File Library

eagle pcb
Eagle PCB

Tidak lengkap jika membahas aplikasi PCB CAD tanpa membahas file library. File library merupakan file dari masing-masing komponen, mulai dari simbol pada skematik sampai dengan footprint/pakaging dari bentuk komponen sebenarnya. Sehingga hal ini wajib diketahui oleh seorang desainer PCB, sebab tidak semua komponen tersedia pada library aplikasi/software yang digunakan. Sehingga menuntut seorang desainer mampu membuat sebuah file library dari komponen yang digunakan dengan acuan bentuk asli atau dari datasheet komponen tersebut.

5. Dimulai dari Skematik

eagle pcb
Skematik dan Tatak Letak

Dalam mendesain sebuah rangkaian pada PCB, penulis sangat menganjurkan dimulai dari Skematik. Memang tidak semua aplikasi PCB CAD menyediakan fitur skematik, namun seperti aplikasi Eagle, Altium, Diptrace, Proteus sudah menyediakan fitur skematik. Fitur ini sangatlah membantu walaupun memakan waktu sedikit lama, namun dapat mengurangi kesalahan pada proses routing/menggambar jalur koneksi masing-masing. Karena setelah membuat skematik biasanya pada aplikasi tersebut dapat mengeksport langsung komponen yang digunakan pada lembar kerja board dengan disertai garis bantu koneksi masing-masing pin komponen seusai koneksi ynag dibuat pada aplikasi.

6. Nilai Seni dan Tata Komponen yang baik

Selain masalah teknis yang harus diketahui seorang desianer PCB, terdapat juga masalah keindahan/kerapian dari penyusunan komponen dan mebuatan jalur PCB. Selaian membantu mempercantik tampilan dari papan PCB dan juga menyesuaikan bentuk PCB dengan Box/Pakaging yang akan digunakan. Penyusunan komponen juga dapat nenbantu mengurangai terjadinya kerusakan/bug sistem yang terjadi. Sebagai contoh penulis biasanya menempatkan sebuah kumparan/induktor sedikit menjahui mikrkontroler, hal ini bertujuan untuk mengurangi atau menghindari induksi medan elektro magnetis yang dihasilkan kumparan yang dapat mengganggu kinerja mikrokontroler. Salah satu masalah yang perna dialami penulis dikarenakan induksi medan elektromagnetis adalah mikrokontroler sering reset sendiri dan settingan fusebit berubah dengan sendirinya.

eagle pcb
Layout PCB

Itulah 6 Hal yang wajib diketahui Desainer PCB, Tentunya, ada hal lain pastinya yang terlewatkan, penulis berharap pembaca dapat menambahkanya pada kotak komentar, agar dapat membantu bagi para calon-calon desainer PCB. Semoga bemanfaat

 

Tutorial Bootloader Arduino IC ATMEGA328

0
skematik arduino led
Arduino LED | docs.arduino.cc

Tutorial Boot loader Arduino. Bagi para Fans Electronics pasti sudah mengenal dengan sang arduino, namun jika belum tau anda dapat membacanya pada artikel Tentang Arduino. Pada arduino kita mengenal dengan namanya bootloader. Bootloader adalah sebuah fungsi-fungsi dasar yang pertama dikerjakan saat booting/restart dan memiliki kemampuan untuk menangani input/output data saat memload sebuah program instruksi (sketch) kedalam memory sehingga dapat dieksekusi.

Pada artikel kali ini saya akan memberikan tutorial cara mengisi/burn boadloader arduino pada mikrokontroler ATMEGA8/168/328. Disini anda dapat menggunakan minimum sistem anda sendiri tanpa harus menggunakan board arduino, sehingga dapat menghemat biaya.

Alat yang dibutuhkan

usbasp usbisp
USBasp & USBisp Programmer

Kalian membutuhkan USB Programmer untuk melakukan bootloader, saran saya gunakan USBasp saja.

Proses Bootloader

Pada tutorial ini saya akan memberikan dua cara yang berbeda yang satu untuk tutorial yang menggunakan chip ATMEGA8 dan yang satunya chip ATMEGA328. OK, setelah komponen sudah siap, hubungkan Arduino dengan USBasp, pada pin ISP yang terletak pada ujung belakang board arduino, untuk koneksinya lihat pada gambar dibawah ini.

usbasp pib
USBasp Pin

Pastikan koneksi kabel sesuai dengan konfigurasi pin diatas, Kemudian hubungkan USBasp pada laptop/komputer anda. Pastikan driver USBasp sudah terinstall, jika belum anda dapat membacanya pada artikel pendukung diatas. Kemudian buka aplikasi Prog ISP, kemudian masuk settingan fusebit. Disini kita akan mengatur settingan fusebit untuk chip mikrokontroler ATMEGA8, perlu diperhatikan mengatur fusebit pada mikrokontroler harus berhati-hati jika terjadi kesalahan, maka chip mikrokontroler anda padat terkunci/lock dan tidak dapat diprogram lagi kecuali anda membukanya kembali dengan menggunakan Fusebit Doctor. Berikut settingan fusebit untuk mikrokontroler ATMEGA8.

proisp
Setting Fusebit Prog ISP

Pastikan anda menset sesuai dengan gambar diatas dan setelah sesuai klik Write. Untuk chip mikrokontroler ATMEGA328 anda tidak perlu mensetting fusebit. Selanjutnya buka aplikasi Arduino IDE anda, kemudian atur settingan Board menjadi seperti gambar dibawah.

usbasp usbisp
Setting Board Arduino

Pada settingan Board anda atur menjadi Arduino Uno jika anda ingin memburn/upload bootloader ATMEGA328 dan Arduino NG or Older untuk ATMEGA8. Karena disini menggunakan USBasp sebagai programmer eksternal. Setting Programmer menjadi USBasp dan kemudian klik Burn Bootloader. Kemudian coba upload program Blink LED dibawah ini untuk menguji apakah program arduino dapat berjalan pada chip mikrokontroler.

/* --------------------------------
 *  Simple Blink LED 
 *  www.FansElectronics.com
---------------------------------*/
void setup() {
  pinMode(13,OUTPUT);
}

void loop(){
  digitalWrite(13,!digitalRead(13));
  delay(1000);
}

Setelah Upload berhasil, maka LED pada pin 13 akan berkedap-kedip pelan, maka proses burn bootloader berhasil dan anda dapat memprogram minimum sistem buatan anda sendiri menggunakan aplikasi Arduino IDE. Sekian dulu tutorial kali ini, untuk tutorial lebih lengkap anda dapat melihat video tutorial dibawah, dan jika ada pertanyaan anda dapat meninggalkan pesan pada kotak komentar dibawah. Semoga bermanfaat dan salam FansElectronics.

Install Board ATMEGA32 pada Arduino IDE

0
atmega16 atmega32 pinout
Atmega16 Atmega32 Pinout

Sebelum saya posting artikel project-project lebih lanjut. alangkah lebih baik dimulai dari dasar terlebih dahulu. Pada artikel kali ini saya akan menulis sebuah tutorial bagaimana memprogram Mikrokontroler ATMEGA16/32 dengan menggunakan Arduino IDE. Seperti yang kita ketahui dari sekian banyak board arduino tidak ada yang menggunakan chip mikrokontroller dengan type Mega16 ataupun 32, oleh karena itu banyak pengguna yang merasa kecewa, karena kenapa chip mega 16/32 yang lebih banyak pin nya tidak digunakan sebagai chip pada modul arduino. Maka pada tutorial kali ini saya akan memberikan tips bagaimana menambahkan board ATMEGA16/32 pada Arduino IDE. Langsung saja berikut tutorialnya. Pertama buatlah sebuah Minimum System ATMEGA16 anda dapat membaca artikel tentang Mininum System dan Data Sheet ATMEGA16/32/8535. Setelah pembuatan minimum sistem selesai, lanjut pada tahap berikutnya yaitu menginstall konfigurasi pin ATMEGA13/32 pada arduino. Berikut ini langkah demi langkah proses installasinya.

  • Buka aplikasi Arduino IDE, jika belum memilikinya dapat anda download disini.
  • Buka menu Preference, kemudian paste link dibawah pada form Additional Boards Manager URLs.
https://raw.githubusercontent.com/vanbwodonk/Gelatino.github.io/master/package_Gelatino_1.6.x_index.json

  • Buka Tools > Board > Boards Manager… Tunggu platform indexs selesai mendownload (pastikan laptop/PC anda terkoneksi jaringan internet).
  • Carilah board GELATINO, setelah ketemu klik install.

  • Kemudian tutup Board Manager, buka Tools > Board dan pilih gelatino-16 w/ATMEGA16 atau 32, sesuaikan dengan chip mikrokontroler yang anda gunakan.
  • Kembali Tools > Board, rubahlah nilai Clock sesuai dengan XTAL yang anda gunakan.
  • Disini saya menggunakan USBasp sebagai programmer, karena kompatibel dengan Arduino IDE, masuk Tools > Programmer ganti menjadi USBasp.
  • Langkah terakhir mengupload Bootloader, Klik menu Tools > Burn Bootloader.

Chip mikrokontroler ATMEGA16/32 siap digunakan sebagai board arduino. Untuk konfigurasi pin pemrograman anda dapat mengikuti konfigurasi pin berikut.

atmega16 atmega32 pinout
Atmega16 Atmega32 Pinout

Dalam pemrograman anda dapat menggunakan konfigurasi pin atas sebagai pin I/O, berikut sedikit contoh.

digitalWrite(0,HIGH);
digitalRead(1);
analogRead(A0);
analogWrite(13,255);

Atau anda dapat menggunakan pin asli mikrokontroller seperti berikut.

digitalWrite(PB_0,HIGH);
digitalRead(PC_1);
analogRead(PA_0);
analogWrite(PD_4,255);

Sekian dulu tutorial kali ini, jika terdapat pertanyaan seputar artikel ini. Anda dapat meninggalkan pesan pada kotak komentar dibawah. Jangan lupa ikuti kami di Sosial Media yang terdapat pada ikon kecil disudut bagian atas halaman web. Semoga bermanfaat dan salam FansElectronics.