Wednesday, October 21, 2015

Gelar Lapak Chellotech

biar kayak lainnya. custom order via inbox wae.
yg ada pricenya ikutin yg udh pesen.
mo murah, dtg bawa kopi.

#note : pcb home made tanpa silkscreen/masking.

Thursday, September 24, 2015

Menanam” Bootloader ” Arduino

Bagi pengguna  yang sudah familiar dengan Arduino pasti tidak asing dengan istilah bootloader. Akan tetapi ini selalu menjadi pertanyaan bagi teman-teman yang baru kenal dengan arduino.

Pertanyaan – pertanyaan itu antara lain :
  • ·        Apa itu bootloader ?

Penjelasan setau saya ya. Bootloader adalah program kecil yang ditanamkan kedalam sebuah chip mikrokontroller  yang gunanya untuk mengenali program yang nantinya akan kita isikan pada chip tersebut melalui software  IDE Arduino. Yang belum punya IDE Arduino silahkan download gratis pada www.arduino.cc
Singkat kata, kalo tidak ada bootloader maka software IDE Arduino tidak bisa berkomunikasi dengan Chip Mikrokontroller tersebut.

  • ·         Saya baru beli chip mikro baru (gress alias kinyis2 masih perawan). Apakah bisa langsung berkomunikasi dengan IDE Arduino?

Penjelasan setau ane ya. Tidak bisa! (pakai tanda seru pula). Sebelumnya harus di sematkan bootloader dulu (cieee kayak orang tukar cincin).

·         Pertanyaan selanjutnya. Bagaimana…. #PLAAAK!!! “nanya mulu ! ngopi dulu bentar  #srupuuut.

·         Ba..gai..ma..na (takut dikeplak) caranya mengisi bootloader kedalam chip baru ?
Sekali lagi nih ya, ane jawab sepahamnya ane aja.

  1. Kalo udah punya board Arduino Uno. Bisa dipakai untuk menge”burn” bootloader ke chip baru. Simak caranya dibawah ini. Ada 2 cara yang bisa dipilih (dipilih-dipilih silahkan dipilih) :Bumbu-bumbu  yang diperlukan yaitu :

o   1 Board Arduino Uno
o   1 Chip Atmega8 atau Atmega328
o   1 Xtal 16 Mhz
o   2 Kapasitor keramik ukuran 22pf
o   1 Resistor 10K
o   Kopi item yang udah diseduh, jangan mentah buat cemilan.
Setelah bumbu-bumbu diatas udah siap, buatlah rangkaian minimum system untuk chip tersebut. Seperti apa? Simak gambar dibawah ini.
Penjelasan wiringnya yaitu :
Arduino Uno            |    Minsis Atmega8/328
Pin 13                    à   Pin digital 13
Pin 12                    à   Pin digital 12
Pin 11                    à   Pin digital 11
Pin 10                    à   Pin Reset
Bingung Mapping Pin nya ? baca lagi gambar dibawah ini.

Masih bingung juga? Cuci kaki, cuci muka….bobo dulu aja ! hehehe piss muaaah.

Setelah itu buka program IDE Arduino, 
  • Pilih menu File, Pilih Sub Menu Examples, Pilih ArduinoIsp.
Maksud dan tujuannya apa? #kayak_skripsi. Tujuannya yaitu merubah fungsi Arduino Uno sebagai AVRISP, Apa itu ? #PLAKPLAK! Nanya mulu, aku cape ngetik di googlenya… ya semacam downloaderlah.


  • Setelah itu Klik menu Tool - Board dan pilih Arduino Uno. 
  • Next pilih menu Tool - Serial port, sesuaikan pemakain portnya. 
  • Next pilih menu File dan UPLOAD !

Langkah selanjutnya adalah menyematkan bootloader ke minimum system yang sudah dirangkai. Caranya? Klik menu Tool – Board, pilih sesuai minimum system yang kamu bikin, karena saya pakai Atmega8 #ChipSejutaUmat maka saya pilih Arduino NG or older w/ Atmega8. Klik menu Tool – Programmer – Arduino as ISP. Next pilih menu Tool – Burn Bootloader. FINISH !

Cara Kedua.
Menggunakan USBASP. Penjelasan wiring sebagai berikut.
USBasp                 =>           Arduino
Vcc                                         Vcc
Gnd                                        Gnd
Reset                                    Reset
SCk                                         pin 13
Miso                                      pin 12
Mosi                                      pin 11
Woconen maneh gambar ngisor ikilah…
atau pada minimum sistem seperti gambar sebelumnya pada breadboard juga bisa.


Next, buka aplikasi pemrograman favoritmu, sak senengmu, sak isomu :p
Buka file hex bootloader, trus di burn/upload/flash.
File bootloader ada di folder Program Files\Arduino\hardware\arduino\bootloaders.

Udah sekian penjelasannya, ada pertanyaan, ada koreksi, ada diskusi…monggo dikolom komentar.

Salam learn from copas!


Best regard, Chellotech.

Saturday, September 19, 2015

USB TO TTL dengan atmega8

USB to TTL adalah konverter USB ke TTL menggunakan chip konverter. dapat digunakan pada board Arduino seperti Lylypad, Boarduino atau board Arduino clone sejenisnya.
Selain untuk Arduino, konverter ini juga bisa digunakan untuk segala macam aplikasi elektronik lainnya yang membutuhkan komunikasi serial melalui USB.

Sangat cocok di gunakan untuk para pengguna interfacing yang menggunakan laptop dengan menggunakan port USB, karena alat ini mengkonvert dari USB menjadi serial, yang mana keluaranya berupa RX dan TX.



Langkah- Langkah :

Dalam kesempatan ini saya akan men-share thap demi tahap pembuatan USB TO TTL dengan menggunakan IC Atmega8.
  • Langkah Pertama.
Buatlah rangkaian sesuai skema di bawah ini, saya anggap skema ini yang paling simple, jadi sangat mudah untuk dibuat. Check It Now !
Skema Usb to ttl

  • Langkah Kedua
Masukan firmware (hex) kedalam Atmega8 sehingga bisa dioerasikan sebagai usb to ttl.
Download pada link berikut : FirmwareUsbToTTL (win7).

Pada Langkah ini, saya memakai program bernama "Progisp" dengan uploader Usbasp.
Setting fusebit : HIGH : 8F dan LOW : FF

  • Langkah Ketiga
Siapkan Minimum Sysytem Atmega8/328 sebagai target board yang akan diprogram. Jangan lupa bahww ic pd minimum system sudah ditanamkan bootloader. Bagaimana caranya? simak di postingan menanam bootloader dikebun kita

  • Langkah Keempat
Install Driver agar perangkat usb to ttl bisa dikenali oleh komputer.
Colokkan pada port usb, maka komputer secara otomatis akan mendeteksi perangkat baru. Install dengan driver pada link berikut. 

Jika install sukses, cek pada device manager, maka akan terlihat seperti gambar di bawah ini.
Setelah itu hubungkan port Rx, Tx, Gnd dan Vcc pada Usb to ttl keMinsis Atmega8.
  • Langkah Kelima
Buka IDE Arduino seperti biasanya. pilih sketch yang akan di upload. 
Pilih Port sesuai Nomer Port pada device manager. 
Pilih Boaard : Arduino NG with Atmega8
Klik UPLOAD.

Jika Muncul seperti tampilan dibawah ini maka sudah berhasil.
Dalam percobaan ini saya coba meng-upload sketch SoftRtc pada library ds1307, tentunya modul rtc saya hubungkan pada pin A4 dan A5 sebagai tambahannya.


Dari Gambar diatas. Sebelah kiri dengan background hitam menunjukkan proses upload berhasil. setelah itu buka serial monitor dengan pilihan baudrate sesuai dengan yang tertulis di code. maka komputer bisa membaca hasil pengolahan data pada minsis atmega8 kita. (pengembangan untuk pembacaan sensor yang ditampilkan menggunakan program pihak ketiga seperti Vb net, Delphi dll).

Sekian langkah-langkahnya, jika ada yang masih kurang paham atau mungkin koreksi, silahkan isi kolom komentar.

Satu hal lagi, yang pasti akan menjadi pertanyaan bagi begineer seperti saya. TRUS apa bedanya dengan Usbasp?? Sama-sama bisa upload *.hex?? jawaban saya, iya sama-sama bisa upload hex.
Selain jalur port yang digunakan beda yaitu : Usbasp memakai port Miso, Sck, Mosi dan Reset. Sedangkan Usb to ttl hanya memakai Tx, Rx dan DTR. selain itu bandingkan dengan skema Usbasp yang paling simple....masih lebih simple usb to ttl kan??

Selain itu, kelebihan usb to ttl adalah bisa sebagai jalur komunikasi 2 arah antara minimum sistem dengan komputer ( memberikan perintah via serial dari komputer ataupun mengirim data dari minimum sistem ke komputer).

Dalam percobaan ini, saya masih menggunakan breadboard untuk uji coba. Next saya buat dalam bentuk yang udh fix.




Final design Max2ttl

Sekian, Best regard from Chellotech

Saturday, August 8, 2015

Running Text 8x32

RUNNING TEXT 8X32 :
Spesifikasi :
- Dot matrix yang saya pakai dengan susunan led 3mm (silakan jika mau pakai 3 x modul 8x8 dot matrix)
- MCU bisa pakai minimum sistem atmega8 atau pakai arduino uno/pro mini/nano dkk
- IC driver kolom dan baris memakai 74hc595
- pada skema tidak saya gambar Resistor, sebaiknya dipasang pada output 74hc595
- Coding memakai format C++ untuk IDE Arduino (kalo belum punya download aja gratis di ww*.arduino.cc
(pertanyaan mengenai modif coding ayo dibahas bareng, maklum coding dpt dr google silakan dioprek bareng2)
CODE :
int x;
int y;
int latchPin1 = 5; //Arduino pin connected to blue 12 RCLK of 74HC595
int clockPin1 = 6; //Arduino pin connected to green 11 SRCLK of 74HC595
int dataPin1 = 7; //Arduino pin connected to violet 14 SER of 74HC595
//-- Rows (Positive Anodes) --
int latchPin2 = 9; //Arduino pin connected to yellow Latch 12 RCLK of 74HC595
int clockPin2 = 10; //Arduino pin connected to white Clock 11 SRCLK of 74HC595
int dataPin2 = 8; //Arduino pin connected to grey Data 14 SER of 74HC595
//=== B I T M A P ===
//Bits in this array represents one LED of the matrix
// 8 is # of rows, 7 is # of LED matrix we have
byte bitmap[8][7]; // Change the 7 to however many matrices you want to use.
int numZones = sizeof(bitmap) / 8;
int maxZoneIndex = numZones-1;
int numCols = numZones * 8;
byte alphabets[][5] = {
{0,0,0,0,0},
{31, 36, 68, 36, 31},//A
{127, 73, 73, 73, 54},//B
{62, 65, 65, 65, 34},//C
{127, 65, 65, 34, 28},
{127, 73, 73, 65, 65},
{127, 72, 72, 72, 64},
{62, 65, 65, 69, 38},
{127, 8, 8, 8, 127},
{0, 65, 127, 65, 0},
{2, 1, 1, 1, 126},
{127, 8, 20, 34, 65},
{127, 1, 1, 1, 1},
{127, 32, 16, 32, 127},
{127, 32, 16, 8, 127},
{62, 65, 65, 65, 62},
{127, 72, 72, 72, 48},
{62, 65, 69, 66, 61},
{127, 72, 76, 74, 49},
{50, 73, 73, 73, 38},
{64, 64, 127, 64, 64},
{126, 1, 1, 1, 126},
{124, 2, 1, 2, 124},
{126, 1, 6, 1, 126},
{99, 20, 8, 20, 99},
{96, 16, 15, 16, 96},
{67, 69, 73, 81, 97},
};
//=== S E T U P ===
void setup() {
pinMode(latchPin1, OUTPUT);
pinMode(clockPin1, OUTPUT);
pinMode(dataPin1, OUTPUT);
pinMode(latchPin2, OUTPUT);
pinMode(clockPin2, OUTPUT);
pinMode(dataPin2, OUTPUT);
//-- Clear bitmap --
for (int row = 0; row > 8; row++) {
for (int zone = 0; zone <= maxZoneIndex; zone++) {
bitmap[row][zone] = 0;
}
}
}
//=== F U N C T I O N S ===
// This routine takes whatever we've setup in the bitmap array and display it on the matrix
void RefreshDisplay()
{
for (int row = 0; row < 8; row++) {
int rowbit = 1 << row;
digitalWrite(latchPin2, LOW); //Hold latchPin LOW for as long as we're transmitting data
shiftOut(dataPin2, clockPin2, MSBFIRST, rowbit); //Transmit data
//-- Start sending column bytes --
digitalWrite(latchPin1, LOW); //Hold latchPin LOW for as long as we're transmitting data
//-- Shift out to each matrix (zone is 8 columns represented by one matrix)
for (int zone = maxZoneIndex; zone >= 0; zone--) {
shiftOut(dataPin1, clockPin1, MSBFIRST, bitmap[row][zone]);
}
//-- Done sending Column bytes, flip both latches at once to eliminate flicker
digitalWrite(latchPin1, HIGH);
digitalWrite(latchPin2, HIGH);
//-- Wait a little bit to let humans see what we've pushed out onto the matrix --
delayMicroseconds(500);
}
}
// Converts row and colum to actual bitmap bit and turn it off/on
void Plot(int col, int row, bool isOn)
{
int zone = col / 8;
int colBitIndex = x % 8;
byte colBit = 1 << colBitIndex;
if (isOn)
bitmap[row][zone] = bitmap[y][zone] | colBit;
else
bitmap[row][zone] = bitmap[y][zone] & (~colBit);
}
// Plot each character of the message one column at a time, updated the display, shift bitmap left.
void AlphabetSoup()
{
char msg[] = " RUNNING TEXT ";
for (int charIndex=0; charIndex < (sizeof(msg)-1); charIndex++)
{
int alphabetIndex = msg[charIndex] - '@';
if (alphabetIndex < 0) alphabetIndex=0;
//-- Draw one character of the message --
for (int col = 0; col < 6; col++)
{
for (int row = 0; row < 8; row++)
{
bool isOn = 0;
if (col<5) isOn = bitRead( alphabets[alphabetIndex][col],
}
Video di youtube

Untuk mesin utamanya bisa pake modul MaxSys8. Lihat pada artikel sebelumnya.

Alternatif running text dengan menggunakan atmega16/32 bisa berkunjubg ke blog edukasi milik pak rokhmad. link running text atmega16/32

Friday, August 7, 2015

Mesin jam digital (MaxSys8 + Rtc)

Setelah sekian lama ikut meramaikan dunia copy paste di group FB KSGRE, yang paling sering di oprek adalah proyek Jam Digital. Proyek tersebut dibagi menjadi bbrp kategori yaitu :
1. Jam digital dengan tampilan LCD.
2. Jam digital dengan tampilan Seven Segmen.
3. Jam digital dengan tampilan led 3mm/5mm yang disusun seperti seven segmen.
4. Jam digital dengan tampilan dot matrix led.

Dari 4 kategori di atas yang paling ramai dan seru untuk di oprek adalah nomer 2 dan 4. Kenapa? Ya, karena lebih mudah dan menarik karena ukurannya bisa disesuaikan dengan kantong, hehehehe.

Kategori 1 apakah tidak mudah? Ya, paling mudah, tapi bentuknya monoton dan kecil.
Bagaimana dengan kategori nomer 4 ? Dari segi bentuk adalah yang paling menarik tapi paling rumit.

Dalam.postingan ini, saya lebih fokus untuk membahas mengenai rangkaian dasar dari 4 kategori di atas. Yaitu minimum sistem atmega8 yang dilengkapi dengan RtC ( real time clock).

Dari layout pcb yang saya buat, sengaja minimum sistemnya saya buat bersifat open header. Tujuannya 1 rangkaian ini bisa dijadikan MCU/mesin untuk 4 kategori diatas. Tinggal ditambahkan driver tambahan saja. (driver tambahan di bahas dalam artikel lain).
Minimum sistem ini juga sengaja dibuat agar bisa dipakai dan di kombinasikan dengan pemakaian breadboard untuk kebutuhan prototiping/uji coba.

Arduino vs Visual Basic Express 2010

mengontrol pin output pd arduino dengan sotfware visual basic.
Pada contoh ini aplikasi di pc utk meng On/Off kan lampu led pd pin 13 (memberi sinyal high/low).
Code pd arduino spt di gambar.

Code utk VB sbg berikut :-------------------
Imports System.IO
Imports System.IO.Ports
Imports System.Threading
Public Class Form1
Shared _continue As Boolean
Shared _serialPort As SerialPort
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
SerialPort1.Close()
SerialPort1.PortName = "com4" 'change com port to match your Arduino port
SerialPort1.BaudRate = 9600
SerialPort1.DataBits = 8
SerialPort1.Parity = Parity.None
SerialPort1.StopBits = StopBits.One
SerialPort1.Handshake = Handshake.None
SerialPort1.Encoding = System.Text.Encoding.Default 'very important!
End Sub
Private Sub btnOn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOn.Click
picOn.Visible = True
SerialPort1.Open()
SerialPort1.Write("1")
SerialPort1.Close()
End Sub
Private Sub btnOff_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOff.Click
picOn.Visible = False
SerialPort1.Open()
SerialPort1.Write("0")
SerialPort1.Close()
End Sub
End Class
-------------------------

Video Arduino with VB: https://youtu.be/MWIMOs1PuZs

Pengembangan dari artikel ini bisa ditemukan pada palang pintu parkir, pintu gerbang otomatis, loker kasir dll.