Tuesday, April 19, 2011

Belajar program Smart card (contactless Smart card)

smart card atau kartu pintar, (kartu aja bisa pintar masa manusia ngak bisa pintar) Hehheh
disini saya akan berbagi ilmu tentang cara memprogram smart card, smartcard yg saya gunakan adalah jenis mifare dengan kapasitas 1kb, dan tag acr 120s dan sebuah program yang dapat mengirimkan nilai -heksa
seperti Advance Serial Port, Hercules, Dlll dapat dicari di google
pertama program untuk mendapatkan Station IDHex 02 FF 01 67 99 03
Answer Station ID (1 byte)

station id penting karena untuk select card, login dibutuhkan id untuk mengaksesnya
Get Serial Number / Select Instruksi ini digunakan untuk mengetahui ID dari tiap – tiap MIFARE, instruksi ini harus dilakukan sebelum melakukan login pada kartu MIFARE. Kartu harus berada dalam jangkauan reader agar mendapatkan balasan dari reader.
Tabel 3.11 Data Select CardHex 02 01 01 73 73 03
Answer 02 00 04 nn nn nn nn cc 03

02 00 01 46 47 03(Fail)

02 00 01 4e 4f 03 (No card)

Login Untuk melakukan proses read, write atau lainnya pada blok harus dilakukan login terlebih dahulu ke sektor di mana blok tersebut berada. Jika telah melakukan login ke sebuah sektor tersebut dapat diproses dengan instruksi berbeda beberapa kali tanpa perlu login lagi selama kartu masih dalam jarak baca reader. Jika kartu telah keluar dari jangkauan reader maka harus dilakukan select dan login kembali ke sektor tersebut. Begitu pula jika ingin melakukan proses di sektor lain maka harus dilakukan kembali instruksi select dan login.
Berikut adalah contoh untuk login pada sektor 1 dari kartu MIFARE :

Tabel 3.12 Data Login Card Hex 02 01 04 6C 01 FF 0D 9a 03
Answer 02 01 01 4c 4d 03 (Success)

02 01 01 4e 4f 03 (No Card)

02 01 01 46 47 (fail / Error)

Write Blok Instruksi write dilakukan pada blok tertentu dan harus sesuai pada sektornya. Sebagai contoh untuk write pada blok 04H sektor 1 data 00112233 dapat dilakukan seperti berikut:
Tabel 3.13 Data Write BlockHex 02 01 06 77 04 00 11 22 33 74 03
Answer 02 00 10 (16 bytes of data) cc 03

Read blok Sama seperi istruksi write, instruksi read juga dilakukan pada blok yang diinginkan sesuai dengan login sektornya.
Tabel 3.14 Data Read BlokHex 02 01 02 72 04 75 03
Answer 02 00 10 (16 bytes of data) cc 03

Cukup sekian dulu saya juga masih belajar mudah mudahan bermanfaat

Program BascomAVR For SmartCard ACS120S

Nih Program Basom Yg bwat Smart Card Baca data DLLL Program pling Kren Dah

$regfile = "m8535.dat"
$crystal = 8000000
$baud = 9600
Open "comd.3:9600,8,n,1" For Output As #1

Declare Sub Keypad()

Declare Function Select_card() As Byte
Declare Function Login_card(byval Sector As Byte) As Byte
Declare Function Read_data() As String
Declare Function Read_block(byval Blok As Byte) As String

Dim Tag As Byte
Dim R As Byte
Dim Nama As Byte
Dim Buffstr As String * 20
Dim Hrf As String * 20
Dim Fde As String * 10

Dim S As Byte
Dim Key As Byte
Dim Key_i As Byte
Dim Key_str As String * 1
Dim Pwd As String * 10
Dim Pgr As String * 4
Dim A As String * 10
Dim _data As String * 10

Rem ------------ lcd ------------------
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0
Config Lcd = 16 * 2

Rem - - - - - - - - - - - - -keypad - - - - - - - - - - -
Config Kbd = Portb , Debounce = 200

Awal:
Cls
Locate 1 , 3
Lcd "Selamat datang"
Lowerline
Lcd "Tekan *"
Wait 3

Pwd = ""
For S = 1 To 1
Call Keypad()
Next S
If Pwd = "*" Then

Goto Main
Else
Goto Awal
End If

Main:
set
Cls
Lcd "Dekatkan kartu"
Wait 3

set
Tag = 0
Tag = Select_card()
Cls
Lcd "SELECT KARTU"
Wait 1
Tag = 0
Tag = Login_card(2)
If Tag = 0 Then
R = 0
Do
R = R + 1
Cls
Lcd "KARTU KOSONG"
Waitms 800
Cls
Waitms 500
Loop Until R = 3
Waitms 300
Goto Awal
End If

Cls
Lcd "LOGIN BERHASIL"
Wait 1
Buffstr = Read_block(8)
Cls
Lcd "Selamat Datang"
Lowerline
Lcd Buffstr
Hrf = Buffstr
Wait 3

Fde = ""
For R = 1 To 4
Buffstr = Read_block(9)
Fde = Buffstr
Cls
Lcd "pas1" ; Fde
Next R

Wait 2

Cls
Lcd "Enter Password"
Lowerline
Lcd "Pass>> "

Pwd = ""
For S = 1 To 4
Call Keypad()
Lcd "*"
Next S
Do
If Pwd = Fde Then
Cls
Lcd "berhasil"
Wait 6
Goto Awal
Else
Wait 1
Goto Awal
End If
Loop

Function Select_card() As Byte
Dim Sbuf2 As String * 1
Dim Strbuf As String * 20

Printbin 2 ; 1 ; 1 ; 115 ; 115 ; 3
Sbuf2 = ""
Strbuf = ""
Cls
Lcd "No connect to"
Lowerline
Lcd "Smart Card"
Strbuf = Read_data()

Sbuf2 = Mid(strbuf , 2 , 1)

If Sbuf2 = Chr(1) Then
Select_card = 0
Exit Function
End If
Select_card = 1
End Function
Function Login_card(byval Sector As Byte)as Byte

Dim Sbuf4 As String * 25
Dim Sbuf3 As Byte
Dim Sbuf9 As String * 20
Dim Bcc2 As Byte

Sbuf4 = ""
Sbuf3 = ""
Bcc2 = 155 Xor Sector

Printbin &H02 ; &H01 ; &H04 ; &H6C ; Sector ; &HFF ; &H0D ; Bcc2 ; &H03
'Printbin 2 ; 1 ; 4 ; 108 ; Sector ; 255 ; 13 ; Bcc2 ; 3
Do
Sbuf3 = Inkey()
If Sbuf3 > 0 Then
Sbuf4 = Sbuf4 + Chr(sbuf3)
If Sbuf3 = 3 Then Exit Do
End If
Loop

Sbuf9 = Mid(sbuf4 , 3 , 1)
If Sbuf9 = "L" Then
Login_card = 1
Exit Function
End If
Login_card = 0
End Function

Function Read_block(byval Blok As Byte) As String
Dim Sbuf5 As String * 25
Dim Sbuf6 As String * 20
Dim Sbuf7 As Byte
Dim Bcc As Byte

Sbuf6 = ""
Sbuf5 = ""
Bcc = 113 Xor Blok
Printbin 2 ; 1 ; 2 ; 114 ; Blok ; Bcc ; 3

Do
Sbuf7 = Inkey()
If Sbuf7 > 0 Then
Sbuf5 = Sbuf5 + Chr(sbuf7)
If Sbuf7 = 3 Then Exit Do
End If

Loop
Sbuf6 = Mid(sbuf5 , 3 , 4)
Read_block = Sbuf6

End Function

Function Read_data() As String
Dim Sout As String * 25
Dim Sbuf1 As String * 1

Sout = ""
Do
Sbuf1 = Waitkey()
Sout = Sout + Sbuf1
If Sbuf1 = Chr(3) Then Exit Do
Loop
Read_data = Sout
End Function

Sub Keypad()

Key_i = 16
Do
Key = Key_i
Waitms 100
Key_i = Getkbd()

Loop Until Key_i <> 16 And Key <> 16

Key_str = Lookupstr(key , Keydata_str)
Pwd = Pwd + Key_str

End Sub

Keydata_str:
Data "1" , "4" , "7" , "*" , "2" , "5" , "8" , "0" , "3" , "6" , "9" , "#" , "A" , "B" , "C" , "D"

Contoh Perintah Mid, left, Right Pada bascom

Contoh Program Bascom Untuk mengambil Nilai dari Kanan, Kiri, Tengah

$regfile = "m8535.dat" 'untuk jenis Mikrokontroller yg digunakan'
$crystal = 8000000

Dim S As String * 15 , Z As String * 15

S = "ABCDEFG" 'Nilai Variabel S '

Z = Left(s , 5) 'Z mengambil nilai S sebanyak lima Dari kiri'

Print Z 'Tampilan keluar ABCDE

Z = Right(s , 3) : Print Z ' tampilkan nilai Z keluar adalah 3 dari kanan yaitu GFE'

Z = Mid(s , 2 , 3) : Print Z 'tampilkan nilai Z keluar adalah 2 dari kiri sampai dengan 3 nilAi berikutnya yaitu CDE'

End

Contoh Program bascom untuk menyalakan motor

$regfile = "m8535.dat"
$crystal = 8000000
$baud = 9600

Config Pina.2 = Input 'inisialisai port yang digunakan sebagai input/ masukkan
Config Pina.3 = Input
Config Pina.4 = Input
Config Porta.0 = Output
Config Porta.1 = Output

Motor_a Alias Porta.0 'inisialisasi port yang digunakan sebagai motor
Motor_b Alias Porta.1
Interrupt Alias Pina.7
Switch_open Alias Pina.2
Switch_close Alias Pina.3

Reset Motor_a
Reset Motor_b

Motor_a = 1 'motor_a berputar
Bitwait Switch_open , Set 'berputar sampai dengan limitswich tertekan
Motor_a = 0 'motor_a mati setelah limitswich ditekan
Bitwait Interrupt , Set
Cls
Locate 1 , 6
Lcd "WELCOME"
Do
Loop Until Interrupt = 0
Motor_b = 1
Bitwait Switch_close , Set
Motor_b = 0
end

initinya program diatas adalah menggerakkan motor dc dengan dua arah dimana motor_a adalah untuk searah jarum jam sedangkan motor_b sebaliknya. diamana ditambahkan pula limitswich sebagai pembatas pintu maklum aplikasi program ini untuk buka tutup pintu otomatis klo ngak ganti pake push button bisa juga kok sedangkan interrupt digunakan untuk optocoupler yang berguna untuk mendeteksi orang lewat. jadi secara keseluruhan program ini yaitu pertama motor berputar sampai limitswich tertekan lalu berhenti kemudian menunggu perintah dari optocoupler yaitu pina.7 setelah itu motor berputar sampai mendapatkan masukkan dari limitswich kedua setelah itu motor berhenti selesai deh program nya
mohon maaf klo ada yang salah /kurang jelas Terimakasih

Program Bascom AVR untuk cek serial

$regfile = "m8535.dat" ' we use the M48
$crystal = 8000000
$baud = 9600

Open "comd.3:19200,8,n,1" For Output As #1 'open port for tx and rx external
Open "comd.2:19200,8,n,1" For Input As #2

Do
Print "bismillah"
Print #1 , "Bismillah"
Loop

Open "comd.3:19200,8,n,1" For Output As #1 digunakan untuk mengubuka port mikro ke komputer agar mau ngirimim data berupa tulisan bismillah klo suskes
ini program cuma untuk mengetahui apakah komunikasi serial mikro dapat digunakan atau tidak

Cara Membuat Program LCD Dengan Bascom AVR

Mungkin banyak dari teman-teman sudah banyak yang bisa menggunakan program bascom saya mau share tentang program bascom untuk program LCD

$regfile = "m8535.dat" 'bwat Mikro yang digunakan
$crystal = 8000000 'untuk krytal yg digunakan

Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0 'port mana saja yang digunakan untuk LCD disini yg digunakan adalah Port B
Config Lcd = 16 * 2 'ukuran LCD yang digunakan

Cls 'buat ngebersihin lcd jd ngak ada karakter
Locate 1 , 3 'klo menggunakan locate tandanya tulisan akan muncul dari kolom ke 1 baris ke 3
Lcd "Selamat datang"
Lowerline 'untuk tulisan dibawah
Lcd "Selamat Mencoba"
Wait 3 'untuk pewaktuaan

sebenarnya masih banyak instruksi yang dapat digunakan pada bascom avr untuk menampilkan tulisan di lCD
Semoga Bermanfaat

Contoh program Keypad bascom AVR

$regfile = "m8535.dat"

$crystal = 8000000

' ------------ lcd ------------------

Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0

Config Lcd = 16 * 2

Cls

Locate 1 , 4 Lcd "TEKAN KEYPAD"

Wait 5

Dim Ulang As Byte

Dim Keypad As Byte

'Declare Sub Ambil_data_keypad

Config Kbd = Portb , Debounce = 200

'If Ulang = 49 Then Ulang = 1

'If Ulang = 50 Then Ulang = 2

'If Ulang = 51 Then Ulang = 3

'If Ulang = 52 Then Ulang = 4

'If Ulang = 53 Then Ulang = 5

'If Ulang = 54 Then Ulang = 6

'If Ulang = 55 Then Ulang = 7

'If Ulang = 56 Then Ulang = 8

'If Ulang = 57 Then Ulang = 9

Do

Keypad = Getkbd()

If Keypad < 16 Then

Ulang = Lookup(keypad , Tabel)

Print Ulang

Cls

Lcd Chr(ulang)

Lcd "ulang=" ;

Ulang

End If

Loop

End

Tabel: 'Data &H2A , &H30 , &H23 , &H00 , &H31 , &H32 , &H33 , &H00 , &H34 , &H35 , &H36 , &H00 'Data &H37 , &H38 , &H39 , &H00 Data &H31 , &H34 , &H37 , &H2A , &H32 , &H35 , &H38 , &H30 , &H33 , &H36 , &H39 , &H23 , &H41 , &H42 , &H43 , &H44 'Data &H23 , &H30 , &H2A , &H39 , &H38 , &H37 , &H36 , &H35 , &H34 , &H33 , &H32 , &H31 'Data &H23 , &H39 , &H36 , &H33 , &H30 , &H38 , &H35 , &H32 , &H2A , &H37 , &H34 , &H31

Program diatas hanya untuk ngetes keypad contoh ketika kita tekan tombol 1 maka akan muncul angka 1 keypad yg digunakan adalah matrik keypad 4x4 klo mau make keypad 4x3 juga bisa asalkan diubah aja pd bagian diberi warna merah jadi 12 Terus pada tabel klo ngak urut pas mencet keypad sebaiknya diatur pada bagian yg dikasih warna biru sbgai contoh 1 2 3 4 5 6 7 8 9 maka tinggal diganti heksanya aja dari atas kebawah trus keatas lagi jadi 1 4 7 2 5 8 3 6 9 nah selamat mencoba buat rekan-rekan

Contoh Lain Program Keypad AVR Bascom :
Keypad AVR BasCom

Monday, April 18, 2011

Bermain dengan Putty dan VIM Editor

PERINTAH PERINTAH DI LINUX MELALUI CONSOL

* vim = perintah edit file

* /etc/init.d/restart network = perintah untuk restart nerwork

* gedit = printah edit file

* df -h = perintah untuk mengetahui kapasitas hardisk

* sudo bash / su = untuk masuk sebagai administrator

* mkdir = untuk membuat folder

* rm -rf = cara menghapus folder

* vim nama text = cara membuat text file

* net use lpt1 //no ip user/nama printer = perintah untuk membuat print cepat /ctrl P

* init 0 = printah shoutdown melalui consol

* init 6 = printah untuk restart system melalui consol

* cd = printah untuk masuk ke directory

* cd / = printah untuk keluar dari directory

* ls = printah untuk mengetahui isi directory

* cat = printah untuk mengetahui isi file

* cp = perintah untuk mencopy file. tekan v= untuk block file. tekan Y=untuk copy. tekan P=untuk paste

* rm = perintah untuk menghapus file

* less = untuk melihat isi file secara dscrool

* tail = menampilkan 10 baris terakhir

* mv = untuk memindahkan file ( cut )

* sudo tail -f /var/log/squid/access.log = untuk mengetahui siapa aja yang borwsing dan yang mengunakan internet, sepuluh baris terakhir

* ssh kholil@192.168.0.117 = cara untuk remood user

* sudo vim /etc/squid/squid.conf = cara meng edit squid

* sudo mount /dev/fd0 Desktop/floppy/ =untuk mengenalkan floppy

* mount /dev/hda2 Desktop = cara untuk mengenalkan hardisk

* passwd = cara mengganti password

* vim /etc/samba/smb.conf = ( ket ) isikan (writable =yes) ( browsable =yes) ( path =/root/Desktop/hardisk) (public = yes ) cari scurity nya dan ganti dg (scurity = share ) kemudian simpan = cara shering lewat console

* vim /etc/network/interface = cara menganti ip lewat console * chmod +x nama text = perintah untuk membuat file eksekusi

* dpkg-reconfigure xserver-xorg = cara untuk mendeteksi new hardware

* jika media player tidak bisa di gunakan coba install vnc common

* nautilus = di gunakan untuk copy data dari root ke usr

* iftop = untuk melihat traffic bandwith internet

* apt-get install gwget = gwget adalah sofware untuk download

* apt-get install down them all = down them all adalah sofware untuk download caranya open mozila-pilih tools-add ons

* ifconfig eth0:1 192.168.5.1 = cara untuk membuat ip lebih dari 1

* tail -f /var/log/syslog = cara untuk check klo ada system yang error

* dmesg | grep lp = cara check klo ada system printer yang error

* apt-get install ssh = untuk remod komputer

* vim /etc/ssh/sshd-config = ganti permit root login = no menjadi =yes =agar ssh bisa di jalankan

* cara menganti password root = booting komputer dg mengunakan live cd pc linux,buat folder di root contoh #mkdir data, setelah itu ketikan #mount /dev/hda1 data lalu enter,setelah hardisk root nya udah di mount langkah kedua ketikan #chroot . ( titik ) lalu enter setelah itu ketikan passwd dan isikan password baru.

* scp -r sysadmin@192.168.0.1:/home/sysadmin/showrewall /home/kholiljibril/Desktop = cara copy folder dari computer lain lewat console

*vim /etc/sudoer = perintah edit untuk menjalankan sudo bash agar bisa masuk root

*ln -s ketik file yg mau di link terus arahkan ke /etc/init.d = perintah link file

*wget terus ketik alamat yg mau di download = perintah download lewat console *apt-get install cupsys cupsys-client cupsys-bsd cupsys-driver-guten print = cara untuk menambah driver printer di system linux

*chown -R kholil.kholil (nama folder yg mau di beri acsess w-r-x ) = cara memberi acsess folder agar dapat di (write-read-excute )

*dpkg -l | grep openoffice = cara menampilkan file openoffice dari console di debian

*rpm -qa | grep openoffice = cara menampilkan file openoffice dari console di pc linux

*rpm -e — nodeps openoffice = cara menghapus openoffice lewat console di pc linux

*apt-get remove — purge openoffice = cara menghapus openoffice lewat console di debian

*apt-get install openoffice = cara install openoffice dari console di debian

*rpm -ivh openoffice = cara install openoffice dari console di pclinux Semoga bermanfaat ^^

Wednesday, April 13, 2011

16 Cara Praktis Untuk Mengembangkan Diri

Banyak orang yang ingin berkembang, tapi banyak juga dari mereka yang bingung bagaiamana atau darimana harus memulai. Berikut 16 cara praktis untuk membantu anda dalam mengembangkan kemampuan diri.

1. Membaca buku setiap hari

Tidak ada cara yang lebih mudah dalam menambah pengetahuan untuk mengembangkan diri kecuali membaca buku. Membaca buku setiap hari akan membuka wawasan dan pengetahuan anda mengenai ilmu-ilmu pengembangan diri yang sedang tren saat ini.

2. Mempelajari bahasa baru

Berapa banyak bahasa yang anda kuasai saat ini? tiga? empat? atau lima bahasa? Semakin banyak bahasa yang anda kuasai, maka semakin tinggilah nilai jual anda, dan tentu saja otak anda akan lebih bermafaat.

3. Cari hobi baru

Jangan pernah meremehkan hobi, jika anda merasa hobi adalah aktifitas buang-buang waktu, maka anda harus berfikir ulang. Selain bisa membuat rileks yang akhirnya berimbas pada ‘kesegaran’ pikiran, hobi juga bisa menghasilkan keuntungan, baik materi atau tidak.

Carilah hobi baru, jika anda suka olahraga dan penyuka futsal, maka pelajari juga olahraga lain seperti renang misalnya.

4. Ambillah kursus

Mengikuti kursus merupakan cara lain untuk mengembangkan kemampuan anda.

5. Cipatakan ruangan ‘kreatif’

Ruangan yang kreatif akan merangsang otak kita untuk menciptakan sesuatu yang kreatif juga. Buatlah ruang kerja anda ‘berbeda’, jangan hanya sebuah ruangan kotak yang menjemukan yang seolah-olah mengusir anda untuk segera pulang.

6. Tingkatkan kemampuan anda

Sejauh mana kemampuan Public Speaking anda? atau sudah berapa teknik wawancara yang anda kuasai? Tingkatkan kemampuan yang anda miliki hingga anda merasa ahli pada kemampuan tersebut. Jangan pernah berhenti untuk terus mengembangkan kemampuan anda.

7. Bangun lebih pagi

Jika anda bangun lebih pagi itu artinya waktu untuk mengerjakan hal-hal produktif ikut bertambah.

8. Miliki waktu olaharaga secara rutin

Kemampuan sebaik apapun tidak akan bisa maksimal jika kondisi badan anda tidak sehat. Buatlah waktu rutin untuk berolahraga, jangan sampai kemampuan anda tertutup penyakit yang sering menghampiri tubuh anda.

9. Menulis

Menulis merupakan salah satu aktifitas yang mampu mengasah kemampuan otak anda secara penuh. Jurnal, buku atau blog bisa menjadi alternatif untuk memulai tulisan pertama anda.

10. Keluar dari rutinitas

Salah satu hal yang membuat kreatifitas macet adalah rutinitas. Keluarlah dari rutinitas anda. Contoh sederhana, cobalah anda berangkat ke kantor dengan rute yang berbeda dari biasanya.

11. Mintalah umpan balik

Umpan balik atau feedback merupakan hal penting untuk mengukur sejauh mana hasil yang anda dapat. Mintalah umpan balik dari rekan kerja atau keluarga dan gunakan hal itu sebagai acuan untuk mengembangkan kemampuan diri anda.

12. Belajar dari orang lain

“Bahkan orang bodoh-pun bisa benar”, demikian kira-kira istilah yang tepat untuk menggambarkan point ini. Setiap orang unik dan setiap orang merupakan guru bagi kita. Jangan merasa bahwa anda merasa lebih pintar dalam segala hal, tetaplah rendah hati dan mau membuka diri terhadap orang lain.

13. Keluar dari kebiasaan buruk

Sering terlambat masuk kantor? atau sering mengingkari janji? itu adalah beberapa contoh kebiasaan buruk. Segera tinggalkan kebiasaan-kebiasaan buruk anda. Kebiasaan buruk sekecil apapun bisa mengakibatkan hambatan dalam mengembangkan kemampuan anda.

14. Mulailah berbisnis

Berbisnis merupakan suatu hal yang sangat menantang. Banyak pengalaman yang akan anda dapatkan dari berbisnis. Jadi jangan ragu, walaupun kecil, belajarlah untuk berbisnis.

15. Tentukan waktu istirahat

Manusia memiliki batas, bahkan mesin-pun butuh istirahat. Atur waktu istirahat anda, dan tepati itu.

16. Patuhi komitmen

Sebaik apapun rencana yang anda buat, sebaik apapun tools dan fasilitas yang anda punya, tanpa sebuah komitmen maka rencana dan mimpi anda mustahil untuk terwujud. Jaga selalu komitmen dan konsisten pada mimpi dan tujuan anda.

Thursday, April 07, 2011

Merancang Multiplekser 4051 berbasis mikrokontroler Atmega8535

Kali ini ane share megenai multiplekser dan demuktiplekser….apa bedanya..? ….

Nich ane kutip dari wikipedia mengenai penjelasan multiplekser ialah sebagai berikut…

Multiplekser atau disingkat MUX adalah alat atau komponen elektronika yang bisa memilih input (masukan) yang akan diteruskan ke bagian output(keluaran). Pemilihan input mana yang dipilih akan ditentukan oleh signal yang ada di bagian kontrol (kendali) Select.

Skema Multiplexer 2 input-ke-1 output



Komponen yang berfungsi kebalikan dari MUX ini disebut Demultiplekser(DEMUX). Pada DEMUX, jumlah masukannya hanya satu, tetapi bagian keluarannya banyak. Signal pada bagian input ini akan disalurkan ke bagian output (channel) yang mana tergantung dari kendali pada bagian SELECTnya.

multiplekser dapat ane ilustrasikan sebagai berikut….



Nach dari gambar diatas… Multiplekser adalah suatu saklar penghubung antara banyak masukan dengan satu keluaran..namun saklar mana yang akan dihubungkan ditentukan oleh suatu kendali.

Kalo pengertian dari demuktilekser gampang yaitu Cuma kebalikan dari multiplekser…

Saluran kendali sebanyak “n” saluran dapat menyeleksi 2n saluran masukan.

8-CHANNEL ANALOG MULTIPLEXERS/DEMULTIPLEXERS



Nach ni… IC 4051 dapat difungsikan sebagai multiplekser 8 input ke 1 output, dengan menggunakan 3 pin kontrol…yang terdapat pada pin 9, 10 dan 11.

Untuk lebih jelasnya nich…pin description ic 4051 ato download datasheetnya di www.alldatasheet.com



Pemrograman Multiplekser 4051 Berbasis Atmega8535 dengan BASCOM AVR

Skema simulasi dengan proteus:



Dari skema diatas dapet ane jelaskan sebagai berikut…pin kontrol multiplekser dihubung dengan portc.0, portc.1 dan portc.2… nach output dari multiplekser masuk ke ADC 0 mikro Atmega 8535…. rangkaian potensio sebagai masukan tegangan multiplekser yang akan diseleksi masuk ke ADC 0 melalu 3 pin kontrol… nach selanjutnya tinggal merancang program akses fungsi dari multiplekser tersebut…. berikut ni gan ane share sample prognya menggunakan BASCOM AVR…

Sample Program BASCOM AVR Multiprexer ADC

Robot Line Follower dengan Multiplekser-ADC

wah…gak bosen-bosen nich buat share tentang robot line follower…coz ane mang maniak banget nich dengan ni robot…kali ini ane mau ngeshare sedikit tentang merancang robot line follower dengan ADC dan ter-multipleks…tujuannya kita dapat merancang sensor lebih banyak…jika pada awalnya kita memanfaatkan fungsi porta mikrokontroler AVR sebagai I/O nach kali ini kita manfaatkan keistimewaan porta tersebut yaitu ADC (analog digital converter)…dengan menggunakan ADC maka isyarat analog dari sensor dapat kita olah tanpa bantuan komparator lagi…selain itu dengan penggunaaan ADC dapat menghemat komponen elektronika yang digunakan pada robot hanya saja jika menggunakan ADC kita harus dilebih menguasai pemrograman untuk mengolah proses perkonversian ADC tersebut…tapi tenang aja gak susah kok…di blog ane dah da cara mengolah ADC dan merancang multiplekser dengan IC 4051 tapi itu pemrogramannya pake Bascom AVR… menurut ane justru lebih gampang lo dari pada CodeVision AVR…

Nach ni dia pengalaman ane merancang sensor line follower sebanyak 16 buah…ilustrasi perancangan sensornya perhatikan blok diagram berikut:



Dengan banyaknya sensor dampaknya logika pembacaan garis (mapping sensor terhadap garis akan semakin banyak) maka dari itu akan banyak kondisi yang dapat di mapping oleh sensor jadi kalo da garis perempatan, pertigaan dapat dengan mudah di mapping…dan memudahkan kita dalam merancang algoritma pemrograman.

Skema Robot Line Follower

Ehmm...

pagi2 bingung mau ngapain dulu.karena banyak projek yang harus dikerjakan.emm.dari pada pusing mendingan gw nulis blog dulu deh.

Tema kali ini gw mau kasih skema rangkaian Robot Line Follower.

bisa download di sini :

Rangkaian Robot Line Follower

Rangkaian Sensor Robot Line Follower

Monday, April 04, 2011

Spaghetti Bolognese

Ini merupakan makanan favorite ku...ehmmm mantaf...lansung aja deh kita cara buatnya..



Bahan:
2 liter air
1 sdt minyak sayur
1 sdt garam
1 bungkus (225 g) spaghetti kering
2 sdm keju Parmesan parut

Saus:
2 sdm mentega
50 g bawang Bombay, cincang
1 siung bawang putih, cincang
200 g daging sapi cincang
500 g tomat merah, parut
1 sdt tomat pasta
1/2 sdt oragano
1/2 sdt merica bubuk
1 sdt gula pasir
1 sdt garam

Cara membuat:
# Didihkan air, garam, dan minyak. Masukkan spaghetti, rebus hingga lunak. Angkat dan tiriskan. Sisihkan.
# Saus: Panaskan mentega hingga leleh. Tumis bawang Bombay dan bawang putih hingga layu.
# Masukkan daging cincang. Aduk hingga berubah warna.
# Masukkan bahan lainnya. Masak hingga kental. Angkat.
# Taruh spaghetti di piring saji. Tuangi Sausnya.
# Taburi keju Parmesan parut. Sajikan hangat.

Untuk 3 orang

Saya belajar

Saya belajar,
bahwa saya tidak dapat memaksa orang lain mencintai saya. Saya hanya dapat melakukan sesuatu untuk orang yang saya cintai...

Saya belajar,
bahwa butuh waktu bertahun-tahun untuk membangun kepercayaan dan hanya beberapa detik saja untuk menghancurkannya...

Saya belajar,
bahwa orang yang saya kira adalah orang yang jahat, justru adalah orang yang membangkitkan semangat hidup saya...

Saya belajar,
bahwa sahabat terbaik bersama saya dapat melakukan banyak hal dan kami selalu memiliki waktu terbaik...

Saya belajar,
bahwa persahabatan sejati senantiasa bertumbuh walau dipisahkan oleh jarak yang jauh. Beberapa diantaranya melahirkan cinta sejati...

Saya belajar,
bahwa jika seseorang tidak menunjukkan perhatian seperti yang saya inginkan, bukan berarti bahwa dia tidak mencintai saya....

Saya belajar,
bahwa sebaik-baiknya orang, mereka pasti pernah melukai perasaan saya dan untuk itu saya harus memaafkannya...

Saya belajar,
bahwa saya harus belajar mengampuni diri sendiri dan orang lain...., kalau tidak mau dikuasai perasaan bersalah terus menerus...

Saya belajar,
bahwa tidak masalah berapa buruknya patah hati itu, dunia tidak pernah berhenti hanya gara-gara kesedihan saya...

Saya belajar,
bahwa saya tidak dapat merubah orang yg saya sayangi, tapi semua itu tergantung dari diri mereka sendiri...

Saya belajar,
bahwa lingkungan dapat mempengaruhi pribadi saya, tapi saya harus bertanggung jawab untuk apa yang saya telah lakukan....

Saya belajar,
bahwa dua manusia dapat melihat sebuah benda, tapi kadang dari sudut pandang yang berbeda....

Saya belajar,
bahwa tidaklah penting apa yang saya miliki, tapi yang penting adalah siapa saya ini sebenarnya....

Saya belajar,

bahwa yang berjaya bukanlah mereka yang gagal dalam mencoba, bukan juga mereka yang sering gagal, tetapi mereka yang tidak pernah gagal mencoba dan terus mencuba sehingga kejayaan yang dicapi.

Saya belajar,

bahwa orang yang sukses dalam mengarungi kehidupan, bukan orang yang melakukan kesalahan untuk pengalaman, tetapi orang yang sadar akan kesalahan dan segera memperbaikinya...

Saya belajar,
bahwa tidak ada yang instant atau serba cepat di dunia ini, semua butuh proses dan pertumbuhan, kecuali saya ingin sakit hati....

Saya belajar,
bahwa saya harus memilih apakah menguasai sikap dan emosi atau sikap dan emosi itu yang menguasai diri saya...

Saya belajar,
bahwa saya punya hak untuk marah, tetapi itu bukan berarti saya harus benci dan berlaku bengis....

Selamat belajar , semoga kamu sadar.. !!

Love doesn't make the world go round.
Love is what makes the ride worth while.

Created by : I Nyoman Suryasa S.Kom

Rasa

MumPung mAmA lOe mSi aDa, coba dech saat bEliaU tiduR...
saaT maTanya terPejam...
eLo taTap wajaHnya 5 meNit aJa...
cUma 5 meniT ajA koq...
g uSa lAma2...
cobA rasaiN deH klO wajaH beliAu udA g da dsiTu...
Rsain lewat Hati elo yg paling dAlem...
Lakuin aPapuN yang bisA kaMu lakuKan unTuknya...
"SEKARANG"!!!
bukan 1jam lagi...
bukan 1hari lagi...
bukan 1bulan lagi...
tapi "SEKARANG"...
jangan tunggu klo Beliau uda mo ninggalin kehidupan kita...
penyesalan g dateng duluan sob...

Ada sebuah cerita tentang...
"BETAPA BESAR KASIH MAMA BUAT"
Seorang anak mencari Ibunya dan mendapatkan ibunya sedang sibuk menyediakan makan malam di dapur...
Kemudian dia mengulurkan tangannya dan memberikan sehelai kertas yang sudah ia siapkan sehari sebelumnya...
Sang Ibu segera membersihkan tangan lalu menerima kertas yang diulurkan oleh anaknya dan membacanya...

OngKos bantuin MAMA:
1) Bantu pergi ke warung : Rp 20.000,00
2) Jagain ade : Rp 20.000,00
3) Buang sampah : Rp 5.000,00
4) Beresin tempat tidur : Rp 10.000,00
5) Nyiram bunga : Rp 15.000,00
6) Nyapu halaman : Rp 15.000,00
TotaL : Rp 85.000,00

Selesai membaca kertas tersebut...
Sang Ibu hanya tersenyum memandang anaknya...
Si Anak pun tersenyum penuh kemenangan...
Lalu Sang Ibu mengambil pena dan menulis sesuatu dibelakang kertas yang sama...
1) OngKos mengandungmu selama 9 bulan -GRATIS
2) OngKos menyusuimu anakku - GRATIS
3) OngKos berjaga malam karena menjagamu - GRATIS
4) OngKos air mata yang menetes karenamu - GRATIS
5) OngKos khawatir krn memikirkan keadaanmu - GRATIS
6) OngKos menyediakan makan, minum, pakaian dan keperluanmu - GRATIS
Jumlah Keseluruhan Nilai Kasihku : GRATIS

Air mata Si Anak berlinang setelah membaca...
Si Anak menatap wajah Ibunya, memeluknya dengan erat dan berbisik sambil terisak di dekat telinga Ibunya,

"AKU SAYANG SAMA MAMA...UDAH G ADA LAGI YANG PERLU DIBAYAR OLEH MAMA...UDAH LUNAS SEMUANYA...BUKAN MAMA YANG HUTANG SAMA AKU, TAPI AKU YANG UTANG SAMA MAMA..."

kLo eLo SAYANG MAMA elo..
"FORWARD"lah!!!

0 - 1 orang => Lo Anak Durhaka
2 - 10 orang => Rasa Sayang Lo cm Dikit
10 - 20 orang => Lo emang SAYANG MAMA lo...

 

Created by : I Nyoman Suryasa S.Kom

Cinta

Menurut gw…
Cinta itu kaya’ lagi nunggu bis
Sebuah bis dateng, trus lo bilang “ waduh.. terlalu penuh neyh, sumpek… bakal g nyaman dech! Tar ah tunggu bis berikutnya aja…”

Kemudian bis berikutnya dateng, lo liat n bilang, “ aduch bis nya kurang asyik neyh…. G bagus lagi.. engga’ ah”

Bis lain nya datang, cool n lo berminat, tapi seakan2 dia engga’ ngeliat lo… n lewat begitu aja.

Bis keempat berhenti di depan lo… bis itu kosong, lumayan dech cukup bagus.. tp lo bilang “ ngga’ ada AC nya neyh… bisa kepanasan gw” maka lo membiarkan bis keempat pergi.

Waktu terus berlalu, lo mulai sadar bahwa lo bisa terlambat pergi ke kantor.
Ketika bis kelima datang, lo udah g sabar, lo langsung lompat masuk ke dalamnya. Setelah beberapa lama, lo akhirnya sadar kalo ternyata lo salah naek bis. Bis tersebut jurusannya bukan yang lo tuju, bukan jurusan ke kantor lo! N lo baru sadar udah menyia-nyiakan waktu lo sekian lama.

********************
maksud nya adalah : sering kali seseorang menunggu orang yang benar-benar 'ideal' buat menjadi pasangan hidupnya. Padahal engga’ ada orang yang 100% bisa memenuhi keidealan kita. N lo pun engga’ akan pernah bisa jadi 100% sesuai keinginan dia.

engga’ ada salahnya memiliki 'persyaratan' untuk 'calon', tapi g ada salahnya juga memberi kesempatan buat yang berhenti di depan kita.Tentunya dengan jurusan yang sama seperti yang kita tuju. Apabila ternyata emang g cocok, apa boleh buat...tapi lo masih bisa berteriak 'Kiri' ! n keluar dengan sopan.

Maka memberi kesempatan pada yang berhenti di depan lo, semuanya bergantung ama keputusan lo. Daripada kita harus jalan kaki sendiri menuju kantor, dalam arti menjalani hidup ini tanpa kehadiran orang yang dikasihi.

Cerita ini juga berarti, kalo kebetulan lo menemukan bis yang kosong, lo suka, bisa lo percaya n tentunya sejurusan ama tujuan lo.. lo bisa berusaha sedapat mungkin untuk menghentikan bis tersebut, agar dia bisa kasih kesempatan buat lo masuk ke dalamnya. Karena menemukan yang seperti itu adalah suatu berkah yang sangat berharga n sangat berarti. Bagi lo sendiri juga bagi dia tentunya ?

Lalu bis seperti apa yang lo tunggu?

Created by : I Nyoman Suryasa S.Kom

Cara Cerdas Kelola Emosi

Meski kedengarannya sulit, sebenarnya belajar mengendalikan diri terhadap hal-hal yang membuat marah, bisa lebih mudah dari yang kita pikir. Tidak percaya? Coba praktekkan trik-trik berikut.

Trik 1: Rehat Sejenak
Tepat pada saat kita hendak mendata para penghuni kebun binatang untuk kita ucapkan ke rekan kerja yang menyebalkan itu, lakukan apa saja yang bisa membuat kita reda dari situasi tersebut. Keluar dari ruang rapat, tarik napas dalam-dalam, berhitung hingga 10 (atau berapa pun yang dibutuhkan), atau mengunjungi teman di lantai lain.  Saat kembali, kita sudah tidak mau ‘meledak’ lagi. Jadi kita mampu menangani situasi dengan kepala dingin dan menghindari penyesalan yang tak perlu.

Trik 2: Jangan Larut
Sudah merupakan aturan tak tertulis bahwa tidak ada yang namanya menangis di kantor. Tidak saja menunjukkan kekurangmampuan mengendalikan diri, namun juga ketidakdewasaan mengontrol emosi. Salah-salah, bisa jadi promosi jabatan tak akan mampir ke kita. Sebisa mungkin tahan diri untuk tidak meneteskan airmata dengan melakukan aktivitas lain yang bisa membuat relaks dan tenang kembali.

Trik 3: Alihkan Perhatian
Tentu saja bukan dengan melimpahkan kemarahan ke orang lain yang tidak mengerti duduk persoalan.  Alihkan calon kemarahan itu menjadi bentuk aktivitas atau pikiran yang lebih positif. Misalnya, berlama-lama memandangi foto pacar. Atau membaca kata-kata kutipan yang menyejukkan hati ketika sedang menerima telepon keluhan dari pelanggan.

Trik 4: Tanpa Kekerasan
Hukumnya wajib. Memukul, melempar benda, atau melakukan tindakan kekerasan lainnya is a big no-no. Mengekspresikan kemarahan dalam bentuk kekerasan fisik hanya akan mengancam kemulusan karier kita (bahkan biarpun kita berada di pihak yang benar). Jika kita benar-benar tidak bisa menahan diri, cari pelampiasan yang lebih aman. Seperti memukul samsak atau ikutan kelas tae bo di pusat kebugaran.

Created by : I Nyoman Suryasa S.Kom

Bootable Windows 7, Vista, XP with USB - WinToFlash

membuat bootable Windows 7, Vista, XP dengan USB menggunakan software WinToFlash yang sangat berguna untuk istalling windows yang tidak memiliki CD room Drive. Seperti pada umunya notebook keluaran terbaru yang dibandrol cukup murah tetapi memiliki kekurangan tidak memiliki CD room drive.
Hal ini sering menjadi masalah ketika OS eror akibat virus atau ada bagian OS yang terhaous tidak sengaja. Tapi jangan takut hal ini dapat dapat diatasi dengan WinToFlash.

Hal pertama yang perlu disediakan adalah :

  1. CPU/Laptop yang telah memiliki OS yang normalyang memiliki media CD room Drive (Jika dalam hardisk telah tersimpan image CD Bootable XP/Vista/7 tidak perlu lagi CD room Drive tetapi perlu diaktifkan Image Drive_nya)

  2. 1 buah FlashDisk s/d 4 Gb (Win XP : 2 Gb, Win Vista : 4 Gb).

  3. CD Bootable XP/Vista/7 atau image CD yang tersimpan dalam Hardisk.


Caranya :

Pertama,
Masukan CD Windwos kedalam CD room dan aktifkan WinToFlash (klik Wintoflash.exe) pada CPU/laptop yang telah memiliki OS yang normal akan muncul seperti gambar dibawah, kemudian pilih Accept.



Kedua,
Kemudian Pilih Taks, Kemudian select Taks type : Transfer Windows XP/2003 to USB Drive (sesuaikan dengan OS yang akan di tranfer ke Fasdisk) klik Run.



Ketiga,
Pada menu tab Basic Parameter, Pilih source Windows XP/Vista/7 dari CD room Drive/Image drive, pilih Windos source path: sesuai dengan CD Windos yang telah dimasukan kedalam CD room Drive atau dalam Image Drive bagi yabg telam memiliki Window yang telah dijadikan image CD) dan kebetulan CD room terletak Pada Drive G:\.

Serta pada USB Drive Pilih Dimana Drive Fashdisk kebetula saya pake drive I:\

Dan apabila telah pas kilik Run



Keempat,
Akan muncul dua peringatan. Pertama menayakan keaslian windows dan yang kedua bahwa data yang ada dalam Falsdisk akan dihapus karen akam melakukan formating. Jadi gunakan Falsdis yang telah kosong sehingga data anda aman. jika yakin data dalam flasdisk tidak menimbulkan kerepotan bagi anda jika terhapus klik Continue >> Run





Kelima,
Proses sedang berjalan tunggu sampai selesai. saya sarankan buat teh atau kopi karena proses transfer cukup lama........ :)



Keenam,
Setelah selesai klik Ok maka USB anda Telag Berisi OS yang Botable.



Ketujuh,
Lanjutkan seperti biasa menginstal Windows melalui CD Room Hanya saja sebelum menginstal seting dulu sistem bios dengan mengganti pada sistembios mengaktifkan Frist Boot USB FDD/HDD.

Selamat Mencoba........!

Program WinToFlash dapat diambil di menu download

Created by : I Nyoman Suryasa S.Kom

Tip's Memilih Wifi

Dengan adanya berbagai jenis dan merek di pasar membuat kita sering binggung untuk menentukan pilihan dalam memilih divice Wifi, karena tiap tipe dan merek memiliki kelebihan masing-masing sesuai kelasnya. Tentu saja kita harus pandai dalam memilih perangkat Wifi. Nah ..... tips untuk memilih perangkat USB Wifi :

  1. Tentukan kemampuan dompet Anda, tentu saja .........

  2. Digunakan di bawah kondisi apa? indor atau outdor? Untuk mendapatkan koneksi yang baik dan tidak mengganggu atau mengacaukan frekuensi lain. Periksa stadard negara Anda.

  3. Ini adalah yang paling penting ..... Spesifikasi perangkat wifi sendiri, merek-merek terkenal banyak tapi kadang-kadang sebuah merek yang tidak diketahui jauh lebih baik kemampuannya. Yang paling penting adalah memiliki standar yang baik


Lebih lanjut tentang spesifikasi dari perangkat wifi dalam pengalaman saya: 

Pertama:
Power Transmitter (Tx) adalah berperan terbesar dalam sambungan komputer kita untuk hotspot Ap /. Mengapa ..........? karena biasanya hotspot / AP memiliki Transmitter Power (Tx) yang cukup tinggi dan akan terdeteksi pada jarak yang cukup jauh. Sementara perangkat usb wifi memiliki jangkauan sangat terbatas. Untuk memaksimalkanya biasanya ditambah dengan antena. Tapi akan lebih baik jika kita memilih USB Wifi memiliki Tx Power tinggi. Biasanya pasar perangkat USB Wifi mencapai 15db ada beberapa yang menyerah untuk 20dB.


Kedua:
Jika perangkat Wifi dengan antena eksternal, perlu di di cek Tx Power dalam mengirimkan cek, karena kadang-kadang daya Tx pada antena kirim oleh antena internal dan eksternal digunakan untuk memperkuat Received Sinyal (Rx) sehinnga kita hanya bisa menerima sinyal tetapi tidak dapat koneksikan.

Ketiga:
Tentu saja, spesifikasi lainnya perlu dipertimbangkan, tetapi juga kemampuan Tx dan Rx dari perangkat yang paling penting untuk kemampuan fitur yang dimiliki perangkat tersebut dapat digunakan untuk bekerja secara optimal. serta driver / frimeware mampu bersaing mudah digunakan dan dengan Operating System yang kita gunakan.

Oke semoga bermanfaat ..............!

Created by : I Nyoman Suryasa S.Kom

Menggunakan NetStumbler – Wireless Network Scan Signal

Kita semua tahu bahwa dengan perkembangan WiFi alias nirkabel saat ini juga membuat pertumbuhan jumlah Access Point (AP) semakin banyak. Hanya saja, kalau hanya mengandalkan tool yang standar (terlebih lagi dengan tool Wireless Network Connection dari Windows) kita tidak akan mampu untuk mendeteksi AP yang sinyalnya lemah. nah dengan NetStumbler bisa membantu memberikan informasi sinyal yang kita terima

Salah satu free tool yang mungkin bisa dikatakan salah satu yang terbaik sampai saat ini dalam hal mengatasi kendala – kendala tersebut adalah NetStumbler, Tool dapat didownload di menu download.
NetStumbler merupakan tool yang dapat membatu nutuk mendeteksi sinyal WifFi yang berada dalam jangkauan device wireless kita,serta memberi info kerapatan sinya yang kita terima karena tidak akan terkoneksi dengan bagus apabila sinyal yang kita terima cukup besar tapi terputus-putus maka akan sulit terkoneksi.

Setelah kita instal NetStumbler, langsung bisa digunaakan



Pada gambar diatas kita bisa melihat beberapa AP yang terdeteksi oleh NetStumbler.Warna yang menunjukkan Sinyal yang kita terima. Hijau berarti sinyal bagus, Kuning berarti sinyal kurang bagus, Merah berarti sinyal sangat lemah sekali.



Semakin mendekati 0 maka sinyal yang kita terima semakin bagus. seperti diatas... dengan berpindah posisi atau merubah arah antena sangat berpengarur terhadap sinyal yang kita terima...

Okey selamat mengunakan.....

Created by : I Nyoman Suryasa S.Kom

Sunday, April 03, 2011

Implementasi Penggunaan PCQ Untuk Mendapatkan Hasil Yang Maksimal untuk mencegah IDM

Melihat banyaknya pertanyaan mengenai pembagian sharing bandwith yang adil dan yang pasti bisa
membatasi semua jenis trafik baik IDM maupun P2P sehingga gak perlu takut kecolongan, saya coba untuk
mensharing CMIIW :)
Konfigurasi Jaringan :


Public --- (10.0.0.1/24) MT (192.168.1.1/24)--- Local
Skenarionya kaya gini :
Client 192.168.1.10 --- Bandwidth 512kbps 1:1 (corporate)
(512k up / 512 down)
Client 192.168.1.20, 21, 22, 23 --- Bandwidth 384kbps 1:4 (personal)
(64k up / 384 down)


Pertama-tama lakukan mangle :
Untuk trafik upload corporate


/ip firewall mangle add chain=prerouting src-address=192.168.1.10 in-interface=Local action=mark-packet
new-packet-mark=corporate-up passthrough=no


Untuk trafik download corporate
/ip firewall mangle add chain=forward src-address=192.168.1.10 action=mark-connection new-connectionmark=
corporate-conn passthrough=yes
/ip firewall mangle add chain=forward connection-mark=corporate-conn in-interface=Public action=markpacket
new-packet-mark=corporate-down passthrough=no


Untuk trafik upload personal
/ip firewall mangle add chain=prerouting src-address=192.168.1.20 in-interface=Local action=mark-packet
new-packet-mark=personal-up passthrough=no
/ip firewall mangle add chain=prerouting src-address=192.168.1.21 in-interface=Local action=mark-packet
new-packet-mark=personal-up passthrough=no
/ip firewall mangle add chain=prerouting src-address=192.168.1.22 in-interface=Local action=mark-packet
new-packet-mark=personal-up passthrough=no
/ip firewall mangle add chain=prerouting src-address=192.168.1.23 in-interface=Local action=mark-packet
new-packet-mark=personal-up passthrough=no


Untuk trafik download personal
/ip firewall mangle add chain=forward src-address=192.168.1.20 action=mark-connection new-connectionmark=
personal-conn passthrough=yes
/ip firewall mangle add chain=forward src-address=192.168.1.21 action=mark-connection new-connectionmark=
personal-conn passthrough=yes
/ip firewall mangle add chain=forward src-address=192.168.1.22 action=mark-connection new-connectionmark=
personal-conn passthrough=yes
/ip firewall mangle add chain=forward src-address=192.168.1.23 action=mark-connection new-connectionmark=
personal-conn passthrough=yes
/ip firewall mangle add chain=forward connection-mark=personal-conn in-interface=Public action=markpacket
new-packet-mark=personal-down passthrough=no


Harap diperhatikan untuk mark-packet maka passthrough=no sedangkan untuk mark-connection
passthrough=yes


Nah setelah beres urusan mangling ini, kita lanjut ke pembuatan queue tree :


/queue tree add name=down parent=Local queue=default
/queue tree add name=up parent=global-in queue=default


untuk download kita menggunakan in-interface kita dalam hal ini Local, sedangkan untuk upload kita
menggunakan global-in


selanjutnya kita tambahkan type baru di queue kita :
yang harus kita tambahkan melihat skenario diatas adalah PCQ untuk paket corporate 512kbps (1:1) dan
paket personal 384kbps (1:4).
Untuk paket corporate kita langsung menetapkan angka 512kbps, sedangkan untuk personal kita tidak dapat
menetapkan angka disini karena bandiwdth yang akan diterima oleh paket personal tergantung seberapa
banyak user yang online, jadi jika hanya 1 orang online akan mendapatkan bw penuh 384kbps, kalau 2
orang online maka masing-masing akan mendapatkan 192kbps dan seterusnya.


/queue type add name=512-down kind=pcq pcq-rate=512k pcq-classifier=dst-address pcq-total-limit=2000
/queue type add name=512-up kind=pcq rate=512k pcq-classifier=src-address pcq-total-limit=2000
/queue type add name=auto-down kind=pcq pcq-rate=0 pcq-classifier=dst-address pcq-total-limit=2000
/queue type add name=auto-up kind=pcq rate=0 pcq-classifier=src-address pcq-total-limit=2000


kita menggunakan 0 pada paket personal karena MT akan menghitung berapa besar bw yang tersedia pada
saat client melakukan koneksi.


Nah setelah itu kita kembali ke queue tree dan menambahkan :
Paket corporate
/queue tree add name=corp-down packet-mark=corporate-down parent=down queue=512-down
/queue tree add name=corp-up parent=up packet-mark=corporate-up queue=512-up
Paket personal
/queue tree add name=per-down packet-mark=personal-down parent=down queue=auto-down maxlimit=
384k
/queue tree add name=per-up parent=up packet-mark=personal-up queue=auto-up max-limit=64k


Done.


Setelah melakukan semua hal ini silahkan dicoba gunakan aplikasi P2P ataupun downloader, seharusnya
semuanya sudah dapat ter-shaping dengan baik
Settingan diatas cocok diterapkan buat konfigurasi seperti diterangkan diatas, tanpa menggunakan proxy
internal MT dan hanya 2 interface, untuk penggunakan proxy internal dan lebih banyak interface diperlukan
sedikit perubahan dan penambahan pada script diatas


Created by : I Nyoman Suryasa S.Kom

Cisco Standard Switch Configuration

!
interface FastEthernet0/1
switchport trunk allowed vlan 100,200
switchport mode trunk
duplex full
speed 100
!
interface FastEthernet0/2
switchport trunk allowed vlan 100,200
switchport mode trunk
duplex full
speed 100
!
interface FastEthernet0/3
switchport access vlan 100
switchport mode access
duplex full
speed 100
spanning-tree portfast
!
interface FastEthernet0/4
switchport access vlan 100
switchport mode access
duplex full
speed 100
spanning-tree portfast
!
interface FastEthernet0/5
switchport access vlan 100
switchport mode access
duplex full
speed 100
spanning-tree portfast
!
interface FastEthernet0/6
switchport access vlan 100
switchport mode access
duplex full
speed 100
spanning-tree portfast
!
interface FastEthernet0/7
switchport access vlan 100
switchport mode access
duplex full
speed 100
spanning-tree portfast
!
interface FastEthernet0/8
switchport access vlan 100
switchport mode access
duplex full
speed 100
spanning-tree portfast
!
interface FastEthernet0/9
switchport access vlan 100
switchport mode access
duplex full
speed 100
spanning-tree portfast
!
interface FastEthernet0/10
switchport access vlan 100
switchport mode access
duplex full
speed 100
spanning-tree portfast
!
interface FastEthernet0/11
switchport access vlan 200
switchport mode access
duplex full
speed 100
spanning-tree portfast
!
interface FastEthernet0/12
switchport access vlan 200
switchport mode access
duplex full
speed 100
spanning-tree portfast
!
interface FastEthernet0/13
switchport access vlan 200
switchport mode access
duplex full
speed 100
spanning-tree portfast
!
interface FastEthernet0/14
switchport access vlan 200
switchport mode access
duplex full
speed 100
spanning-tree portfast
!
interface FastEthernet0/15
switchport access vlan 200
switchport mode access
duplex full
speed 100
spanning-tree portfast
!
interface FastEthernet0/16
switchport access vlan 200
switchport mode access
duplex full
speed 100
spanning-tree portfast
!
interface FastEthernet0/17
switchport access vlan 200
switchport mode access
duplex full
speed 100
spanning-tree portfast
!
interface FastEthernet0/18
switchport access vlan 200
switchport mode access
duplex full
speed 100
spanning-tree portfast
!
interface FastEthernet0/19
switchport access vlan 200
switchport mode access
duplex full
speed 100
spanning-tree portfast
!
interface FastEthernet0/20
switchport access vlan 200
switchport mode access
duplex full
speed 100
spanning-tree portfast
!
interface FastEthernet0/21
!
interface FastEthernet0/22
!
interface FastEthernet0/23
!
interface FastEthernet0/24
!
interface Vlan1
no ip address
shutdown
!
interface Vlan100
ip address 172.16.3.254 255.255.255.0
!
interface Vlan200
ip address 172.16.4.254 255.255.255.0
!
!
line con 0
!
line vty 0 4
login
line vty 5 15
login
!
!
end

Created by : Amin Faozi

Membuat PHP Captcha Sendiri

Pernah denger istilah Captcha? captcha itu harfiahnya “Completely Automated Public Turing test to tell Computers and Humans Apart” ( dari Wikipedia ). Dibuat untuk membedakan antara mesin ( bot ) dan manusia. Captcha dibuat untuk melakukan validasi input pada website2 yang mempersilahkan pengunjung memberikan inputan baik berupa komentar, shoutout, kotak pendaftaran, atau apapun dimana pengunjung menginputkan sesuatu.

Kenapa harus divalidasi? soalnya banyak banget program2 SPAM COmment yang bisa aja menyerang situs kita. Kebayang kan klo kita bikin website, terus isi dari Comment/guestbook di website kita itu isinya Link2 ad ato penawaran tentang produk ato ga link ke situs2 porno. Jadi gak sedap dipandang. Biasanya yg ngisi Comment adalah program yang secara otomatis melakukan submit ke buku tamu / halaman comment website/blog kita.. Nah, klo pernah kejadian kayak gitu ato ga ngeliat yang kayak gitu, sebaiknya lengkapi websitenya dengan Captcha.

Captcha = Gambar Samar2
Simpelnya, Captcha merupakan sebuah gambar (image) yang berisi Angka / Teks atau kombinasi Angka & teks yang disamar2kan bentuk & rupanya sehingga memerlukan ketelitian dari pengunjung / orang yang ingin melakukan inputan data disebuah website.

Menambahkan Captcha pada website kita

Cara yang pertama adalah dengan download library Captcha dari thecaptcha.com Kita tinggal menambahkan librarynya dan disisipkan dengan website kita.

Cara yang kedua adalah dengan membuat PHP Captcha kita sendiri. Kode ini saya dapat dari somewhere setelah googling2. Eh ga taunya baru tau kalo di rumahweb.com tutorial kayak gini udah pernah ditulis. Jadi klo mau lebih detail boleh liat ke situsnya.

Cara Kerjanya:

Nah, cara kerjanya adalah bermain2 dengan session,  pada saat form pendaftaran di Load, maka dibuatkan String Random dari MD5 yang diambil 5 digit pertamanya. Kemudian string itu disimpen di SESSION, Dari String itu dibuatkan Image dengan menggunakan GDLIbrary bawaan dari PHP dan ditampilkan di halaman Form tersebut. Pada saat User Submit String tersebut, dilakukan pengecekan dengan Session yang sudah tersimpan sebelumnya.

File: php_captcha.php
<?php

session_start();
$RandomStr = md5(microtime());// md5 to generate the random string
$ResultStr = substr($RandomStr,0,5);//trim 5 digit
$NewImage =imagecreatefromjpeg("img.jpg");//image create by existing image and as back ground

$LineColor = imagecolorallocate($NewImage,233,239,239);//line color
$TextColor = imagecolorallocate($NewImage, 255, 255, 255);//text color-white

imageline($NewImage,1,1,40,40,$LineColor);//create line 1 on image
imageline($NewImage,1,100,60,0,$LineColor);//create line 2 on image
imageline($NewImage,5, 1, 200, 50, $LineColor);

imagestring($NewImage, 5, 15, 5, $ResultStr, $TextColor);// Draw a random string horizontally

$_SESSION['key'] = $ResultStr;// carry the data through session
header("Content-type: image/jpeg");// out out the image
imagejpeg($NewImage);//Output image to browser

?>

File: form.php
<?php

session_start();

?>

<html>
<head>
<title>PHP-CAPTCHA </title>
</head>
<body onload="return focuson();">
<script   language="javascript">
function focuson()
{ document.form1.number.focus()}

function check()
{
if(document.form1.number.value==0)
{
alert("Please enter your Category Name");
document.form1.number.focus();
return false;
}
}

</script>

<?php

if(isset($_REQUEST['Submit'])){
$key=substr($_SESSION['key'],0,5);
$number = $_REQUEST['number'];
if($number!=$key){
echo '<center><font face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">
Validation string not valid! Please try again!</font></center>';}
else{
echo '<center><font face="Verdana, Arial, Helvetica, sans-serif"  color="#66CC00">
Your string is valid!</font></center>';}
}

?>

<form name="form1" method="post" action="form.php"  onsubmit="return check();">
<img src="php_captcha.php" /></td>
<input name="number" type="text" id="number" /></td>
<input name="Submit" type="submit"   value="Submit" /></td>
</form>
</body>
</html>

 

Created By : I Nyoman Suryasa S.Kom

Kode SWIFT Bank di Indonesia

Lagi googling cari-cari kode SWIFT Bank Central Asia (BCA) untuk fasilitas transaksi layanan online dengan jasa internet, dan nemu di beberapa sumber. Akhirnya nemu kode SWIFT semua bank di Indonesia, dan saya rasa ini informasi umum. So, barangkali berguna, neh, SWIFT Code Bank di Indonesia :

* Bank Central Asia (BCA): CENAIDJA
* ABN AMRO Bank: ABNAIDJA
* Hagabank: HAGAIDJA
* Bank Artha Graha: ARTGIDJA
* Bank Bumiputera Indonesia: BUMIIDJA
* Bank Bumi Arta Indonesia: BBAIIDJA
* Bank Buana Indonesia: BBIJIDJA
* Bank Danamon: BDINIDJA
* Bank Mandiri (not Bank Syariah Mandiri): BEIIIDJA
* Bangkok Bank: BKKBIDJA
* Bank Niaga: BNIAIDJA
* Bank Negara Indonesia (BNI): BNINIDJA
* Bank BNP Paribas Indonesia: BNPAIDJA
* Bank Resona Perdania: BPIAIDJA
* Bank Rakyat Indonesia (BRI): BRINIDJA
* Bank Bukopin: BBUKIDJA
* Deutsche Bank AG: DEUTIDJA
* Bank Mizuho Indonesia: MHCCIDJA
* Hongkong and Shanghai Banking (HSBC): HSBCIDJA
* Bank Internasional Indonesia (BII): IBBKIDJA
* Bank Indonesia: INDOIDJA
* Lippobank: LIPBIDJA
* Bank NISP: NISPIDJA
* Pan Indonesia Bank: PINBIDJA
* Bank Rabobank International Indonesia: RABOIDJA
* Bank UFJ Indonesia (formerly Bank Sanwa Indonesia): SAINIDJA
* Bank Swadesi: SWBAIDJA
* Bank Tabungan Negara (BTN): BTANIDJA
* Bank UOB Indonesia: UOBBIDJA
* Bank Permata: BBBAIDJA
* Bank Maybank Indocorp: MBBEIDJA
* Bank Chinatrust Indonesia: CTCBIDJA
* Woori Bank Indonesia: HVBKIDJA
* Bank Sumitomo Mitsui Indonesia: SUNIIDJA
* Bank Finconesia: FINBIDJA
* Bank OCBC Indonesia: OCBCIDJA
* Bank Kesawan: AWANIDJA
* Bank Commonwealth: BICNIDJA
* Bank Ekonomi Raharja: EKONIDJA
* Bank DBS Indonesia: DBSBIDJA
* Bank CIC International (formerly Bank Century Intervest Corp): CICTIDJA
* Bank Ekspor Indonesia: BEXIIDJA
* Bank Mega: MEGAIDJA
* Bank of China, Jakarta Branch: BKCHIDJA
* Bank Syariah Mandiri (not Bank Mandiri): BSMDIDJA
* Bank Syariah Muamalat Indonesia: MUABIDJA

Created by : I Nyoman Suryasa S.Kom

Mekanisme Pengiriman Uang melalui Moneybookers

Pendaftaran :

1.Register di www.moneybookers.com. Ingat, nama yang Anda daftarkan di account moneybookers harus sama dengan nama di rekening bank yang hendak Anda jadikan sumber dana dan/atau rekening tujuan.

2.Menambahkan rekening Belanda:

Klik My Account, di sisi sebelah kiri pilih Profile, kemudian di List of Bank Accounts klik Manage. Klik Add, isi form, Country : (pilih Netherlands), City/Town: (isi lokasi bank yang mengeluarkan rekening Anda), Bank Name : (nama bank Anda di Belanda), klik Next…teruskan sampai selesai.

3.Menambahkan rekening Indonesia (khusus untuk rekening pribadi kita, bukan rekening atas nama orang lain):

Klik My Account, di sisi sebelah kiri pilih Profile, kemudian di List of Bank Accounts klik Manage. Klik Add, isi form, Country : (pilih Indonesia), SWIFT: (isi kode SWIFT bank Anda),  klik Next…teruskan sampai selesai.

àJika rekening Indonesia yang menjadi tujuan pengiriman uang merupakan milik orang lain, maka bukalah account baru di moneybookers. Nama yang didaftarkan untuk account tersebut harus sama dengan nama di rekening yang hendak ditambahkan.

Kemudian, lakukan prosedur no.3

Ingat, kita tidak boleh memiliki lebih dari satu account moneybookers atas nama yang sama.

4.Lakukan verifikasi rekening

Verifikasi harus dilakukan agar kita bisa meng-upload dana ke moneybookers dari rekening Belanda kita melalui iDEAL. Dengan fasilitas ini, dana kita akan masuk seketika itu juga. Tanpa memverifikasi, bisa memakan waktu hingga 5 hari untuk memasukkan dana.

Caranya :

Klik My Account, di sisi sebelah kiri pilih Profile, kemudian di sebelah rekening yang akan kita verifikasi, klik Verify, teruskan hingga selesai. Moneybookers akan mengirimkan kode ke rekening kita dalam waktu sekitar 3 hari, yang bisa dilihat dengan mengecek overview rekening melalui internet banking. Catat kode, kemudian ulangi prosedur verifikasi di atas, dan masukkan kodenya.

Khusus untuk rekening Indonesia, verifikasi bisa kita lakukan setelah beberapa kali melakukan pengiriman uang ke rekening tersebut. Namun prosedur verifikasi seperti di atas mungkin tidak bisa dilakukan. Bila demikian maka hubungi customer service moneybookers dan minta untuk memverifikasi rekening kita.

Customer service akan meminta bukti bahwa rekening yang bersangkutan sudah pernah menerima transfer uang dari moneybookers.  Bisa dengan men-capture picture screen pada saat kita membuka history transaksi rekening kita melalui internet banking (di sinilah salah satu gunanya kita sudah mengaktifkan internet banking rekening Indonesia kita).

Tanpa memverifikasi, dalam beberapa kali (tidak tahu pastinya) pengiriman uang, kita tidak bisa lagi melakukan withdraw. Tetapi, kalau tidak sering-sering mengirim uang (lebih dari sebulan sekali), verifikasi mungkin tidak diperlukan.

Pengiriman Uang :

Untuk account monerbookers yang sama, pengiriman uang cukup dilakukan dengan UPLOAD FUNDS dan WITHDRAW. Upload funds pilih rekening Belanda kita, kemudian withdraw pilih rekening Indonesia kita.

Untuk account moneybookers yang berbeda, pengiriman uang dilakukan dengan UPLOAD FUNDS di account moneybookers tempat rekening Belanda kita, kemudian SEND MONEY ke account moneybookers tujuan, kemudian WITHDRAW di account itu juga.

Berdasarkan pengalaman, mengirim uang melalui moneybookers cukup memuaskan, karena selain relative cepat, nilai tukarnya pun terhitung bagus.

Created By : I Nyoman Suryasa S.Kom

Tips dan Trik mendapatkan uang dari internet

Tips dan Trik mendapatkan uang dari internet.

memaksimalkan penggunakan internet anda untuk mendapatkan uang dari internet.


Ziddu.Com

Ziddu.com adalah tempat atau server kita menyimpan data dan link yang diberikan secara gratis sehingga bisa di download oleh semua orang dengan cara kita share kepada orang orang melalui blog, website, jejaringan sosial, YM atau yang lainnya. Bagaimana cara mendapatkan Uang dari Ziddu ? Gampang saja kita tinggal upload file atau data yang berupa zip, rar sampai ziddu memberikan Link kepada kita.

Kenapa pake Ziddu !

1. Gratis dan gampang cara kerjanya
2. Tidak terbatas untuk upload file atau unlimited
3. Kita mendapatkan untung $0.001 setiap link yang kita share di download oleh orang , semakin banyak orang mendownload link yang kita share semakin banyak pemasukan uang yang kita dapat dari Ziddu.

Langkah Langkah Mendaftar/Register di Ziddu
1. Klik di sini atau banner di bawah ini

Kenapa pake Ziddu !

1. Gratis dan gampang cara kerjanya
2. Tidak terbatas untuk upload file atau unlimited
3. Kita mendapatkan untung $0.001 setiap link yang kita share di download oleh orang , semakin banyak orang mendownload link yang kita share semakin banyak pemasukan uang yang kita dapat dari Ziddu.

Langkah Langkah Mendaftar/Register di Ziddu
1. Klik di sini atau banner di bawah ini.

2. Setelah masuk ke form pendaftaran ziddu. anda isi sesuai dengan yang di perintahkan.

3. Lalu setelah anda selesai klik Submit dan akan tampil layar baru.

4. Anda tinggal " Go to My Account " dan anda sudah bisa memulai upload data yang anda inginkan. Seperti Data, Gambar, Mp3, Tutorial, Ebook dsb.

Selain itu anda juga bisa mendapatkan tambahan uang $ 0,1 lagi jika anda mengajak orang untuk daftar ke ziddu melalui Refferal yang anda berikan. Untuk Mendapatkan Link Refferalnya ada bisa cek di Menu Link Reffeal di account ziddu anda , disana akan di kasih banyak pilihan banner berserta kode link refferal yang sebarkan.

Pembayaran Ziddu ?

Ziddu akan membayar anda setelah anda minimal mendapatkan $10 dengan melalui Paypal.

Cara Cepat Ziddu.Com

Banyak cara menghasilkan dollar dai internet, salah satunya dalah melalui ziddu.com. ziddu adalah file hosting yang memperbolehkan kita untuk meng upload file sesuka kita dan jika file kita ada yang di download oleh orang lain, maka kita akan mendapatkan pendapatan $0.001, kecil memang, tapi kita tidak membahas itu, kita akan membahas bagaimana bisa menghasilkan dollar dari ziddu dengan cara cepat.

Ziddu mempunyai system refferal, yaitu jika ada orang yang mendaftar di ziddu melalui link referral kita maka kita akan mendapatkan $0.1, lebih lumayan bukan?tetapi jika kita sengaja mendaftar sendiri dengan link refferal kita, maka tidak dihitung sebagai pendapatan, karena kita menggunakan IP address yang sama.

Sekarang bagaimana cara mendapatkan refferal yang banyak?? padahal orang pasti malas untuk mendaftar jika tahu mendaftar melalui link referral kita. kita tahu lah orang2 kita banyak yang pelit..he.

Caranya cukup mudah yaitu…memaksa mereka untuk mendaftar melalui link referral kita walapun bukan dia yang melakukan, yang melakukan adalah kita sendiri dengan melakukan IP address yang berbeda tentunya saaat mendaftar, karena ziddu selalu mencatat IP address kita. Jika anda tidak mengerti IP address tidak masalah karena bukan itu yang penting.

Yang anda perlukan adalah hanya koneksi internet menggunakan Handphone GSM, IM2 maupun CDMA ataupun internet speedy tetapi yang bukan unlimited.

yang kita manfaatkan dari koneksi diatas adalah mereka tidak memberikan IP address Statis untuk kita, artinya setiap kita restart modem atau merestart koneksi pada handphone, IP address kita akan berubah. perubahan itulah yang akan kita manfaat kan, apalagi sekarang banyak orang yang memanfaatkan koneksi menggunakan handphone. perubahan IP address setiap merestart koneksi internet bisa anda cek di www.myipaddress.com

Lalu bagaimana Langkah2nya :

1. Daftarkan diri anda pada ziddu.com disni

2. Jika sudah, upload lah 1 file apa saja dengan ukuran kecil saja.

3. Setelah itu click My Account pada menu ziddu, kemudian plih refferal banner, catatlah link refferal anda. contoh : http://www.ziddu.com/register.php?referralid=(ykNfR4m.:1

4. Proses pendaftaran telah selesai, sekarang saatnya kita menghasilkan dollar dari ziddu dengan cara cepat, restart modem atau koneksi internet HP anda, jika anda ingin melihat apakah IP address kita sudah berubah bisa anda cek IP anda pada www.myipaddress.com setiap merestart koneksi internet,

5. Setelah anda restart koneksi internet , Daftarkan diri anda melalui link refferal yang anda catat tadi. Kita tidak perlu membuat email baru untuk mendaftar pada ziddu, kita gunakan cara gampang yaitu melalui situs facebook. pada profil teman2 kita banyak yang menampilkan alamat emailnya, kita tidak perlu mengetahui password email teman kita, karena ziddu tidak menerapkan verivikasi email.

6. Setelah anda daftar, jangan lupa upload 1 file kecil untuk mengantisipasi agar ziddu tidak curiga.

7. lakukan cara 1 sampai 6 berulang2.

PERHITUNGAN PENDAPATAN :

Jika dalam 1 hari kita mendaftarkan 10 refferal, maka

1 hari = $1

1bulan :  $30

dalam 3 bulan anda bisa mendapatkan $100 ( 1 juta rupiah lebih ), lumayan bukan.sambil main facebook kita bisa mendapatka penghasilan.

lalu bagaimana bila dalam 1 hari 20 atau lebih refferal, anda bisa hitung sendiri..

Adsense Google


Secara singkat, AdSense adalah layanan iklan yg dimiliki oleh Google, dimana para pemilik situs dapat memasang iklan tersebut di situs2 mereka dan mendapatkan penghasilan tambahan. Iklan yg muncul bermacam-macam jenisnya, bisa berupa teks, gambar, bahkan video; namun yg pasti, semuanya menggunakan sistem kontekstual (contextual), dimana iklan tersebut akan relevan atau sesuai dengan isi halaman dimana iklan tersebut dipasang.

Seluruh iklan disimpan di server milik Google sendiri, sehingga kita tidak perlu menyediakan ruang khusus di server kita untuk AdSense, ataupun meng-upload file-file tertentu. Cukup dengan menyisipkan kode JavaScript yg diberikan pada halaman situs kita saja kita sudah dapat menikmati hadirnya iklan AdSense di situs kita.

Bagaimana Kita Mendapatkan Uang?
Seperti disebutkan di atas, dengan memasangkan iklan AdSense di situs mereka, pemilik situs memperoleh kesempatan untuk mendapatkan penghasilan tambahan. Bagaimana caranya?
Tidak sulit. Yg perlu Anda, sebagai pemilik situs, lakukan adalah menunggu (dan berdoa) agar ada pengunjung yg meng-klik iklan2 tersebut. Ya, cukup dengan meng-klik saja, otomatis Anda, sebagai publisher AdSense, akan mendapatkan sejumlah uang yg nilai bagiannya diperhitungkan dari besarnya bid yg telah ditentukan oleh si pemasang iklan (advertisers). Meskipun ada faktor2 lain yg mempengaruhi, secara umum, bagian yg diperoleh publisher adalah 20% dari nilai bid.
Perlu diingat, klik yg dihitung hanyalah klik2 yg dianggap valid. Anda tidak diperbolehkan untuk melakukan klik terhadap iklan milik Anda sendiri atau pun menyuruh orang lain meng-klik iklan Anda. Detil peraturan Google AdSense dapat Anda baca di sini.
Setelah Anda mendaftarkan diri di Google AdSense dan diterima, Anda akan mendapatkan akses ke Member Area Google AdSense. Di situ, selain tersedia tool untuk men-generate kode iklan yg dibutuhkan, juga terdapat halaman Report yg mencantumkan perolehan pendapatan Anda beserta jumlah klik yg didapatkan, jumlah tampilan iklan, dan info2 penting lainnya. Perhatikan gambar berikut:

Bagaimana Pembayarannya?
Pembayaran akan dilakukan 30 hari setelah total pendapatan Anda dalam satu bulan mencapai minimal $100. Jadi apabila bulan Februari ini Anda memperoleh $100, maka penghasilan Anda tersebut akan dikirimkan pada akhir bulan Maret. Untuk Indonesia, pembayaran akan dikirimkan dalam bentuk cek dan Anda dapat memilih untuk menggunakan jasa pos ataupun DHL (Express Delivery) dalam proses pengiriman tersebut.
Jika menggunakan jasa pos, waktu pengiriman biasanya paling cepat adalah 20-25 hari (tergantung lokasi Anda). Sedangkan, jika menggunakan DHL, cek sudah akan Anda terima dalam waktu 2-3 hari kerja. Jangan lupa, ada biaya sebesar $24 jika Anda memilih menggunakan sistem Express Delivery, dimana biaya tersebut otomatis akan dipotong dari penghasilan kita.

Bagaimana Potensi Penghasilannya?
Tidak terbatas! Banyak publisher AdSense yg telah memperoleh ribuan bahkan puluhan ribu dollar per bulannya. Di Indonesia sendiri, publisher AdSense dengan penghasilan ribuan dollar per bulan sudah bukan hal yg aneh lagi.

Meskipun berpotensi untuk meraih pendapatan yg besar dan bahkan tidak terbatas, berbisnis Google AdSense tidak semudah membalikkan telapak tangan. Semua tetap butuh usaha dan waktu yg mungkin tidak sedikit.

Created By : I Nyoman Suryasa S.Kom

Withdraw ke rekening Bank lokal Indonesia

Syarat dan ketentuan withdraw paypal ke rekening bank lokal :

1. Untuk bisa withdraw anda harus :
- Sudah menjadi verified member
- Memiliki rekening bank lokal di indonesia, seperti BCA, Mandiri, Lippo bank, dll atas nama pemegang Paypal tsb. Dana withdraw akan dimasukan kedalam rekening tsb.

2. Bank lokal yang anda pakai harus dapat menerima Rupiah

3. Diperlukan 5-7 hari kerja atau mungkin lebih tergantung Bank anda untuk memproses withdraw

4. Terdapat minimal jumlah withdraw, yaitu $10 USD atau Rp100.000

5. Terdapat biaya fee setiap anda withdraw, yaitu sekitar Rp16.000 untuk withdraw dibawah Rp1.500.000, gratis biaya fee jika withdraw minimal Rp1.500.000 atau lebih

Memasukan rekening bank lokal anda pada account paypal anda :

1. Login ke situs www.paypal.com

2. Ke My Account --> Profile --> Add or Edit Bank Account

3. Isi data rekening bank dan informasi Bank lokal anda.

Untuk kolom Bank code (Sandi Bank Penerima) adalah 7 digit angka (terdiri dari 3 angka Sandi Bank + 4 angka Kode cabang Bank tempat membuat rekening)

Catatan 1. Bank code nama lainnya di Indonesia adalah nomor kliring bank, jadi anda juga dapat menanyakan nomor kliring cabang bank anda saja yang mempunyai 7 digit angka agar lebih mudah

Catatan 2. Kode cabang bank bukanlah kode SWIFT bank, untuk mendapatkan nomor Kode cabang Bank anda yang benar kunjungi situs Bank nya atau hubungi bank yang bersangkutan

Sandi Bank-Bank di Indonesia :

1. BCA - BANK CENTRAL ASIA = 014 (Cari kode cabang bank BCA di http://www.klikbca.com/individual/silver/network.html )
2. BANK MANDIRI = 008
3. BANK SYARIAH MANDIRI = 451
4. ANZ PANIN BANK = 061
5. CITIBANK = 031
6. ABN AMRO BANK = 052
7. BANK BUKOPIN = 441
8. BANK DANAMON = 011
9. LIPPO BANK = 026
10. BNI - BANK NEGARA INDONESIA = 009
11. BANK MEGA = 426
12. BANK SYARIAH MEGA = 506
13. BANK HSBC - THE HONGKONG & SHANGHAI B.C. = 041
14. STANDARD CHARTERED BANK = 050
15. BTN - BANK TABUNGAN NEGARA = 200
16. BRI - BANK RAKYAT INDONESIA = 002
17. BANK NIAGA = 022
18. NISP - BANK NILAI INTI SARI PENYIMPAN = 028
19. AMERICAN EXPRESS BANK LTD. = 030
20. BANK OF AMERICA, N.A = 033
21. BANK OF CHINA LIMITED = 069
22. DEUTSCHE BANK AG. = 067
23. JP. MORGAN CHASE BANK = 032
24. ANGLOMAS INTERNASIONAL BANK = 531
25. BANK AGRONIAGA, Tbk. = 494
26. BANK AKITA = 525
27. BANK ALFINDO = 503
28. BANK ANTARDAERAH = 088
29. BANK ARTA NIAGA KENCANA. = 020
30. BANK ARTHA GRAHA INTERNASIONAL = 037
31. BANK ARTOS INDONESIA = 542
32. BANK BINTANG MANUNGGAL = 484
33. BANK BISNIS INTERNASIONAL = 459
34. BANK BNP PARIBAS INDONESIA = 057
35. BANK BUMI ARTA = 076
36. BANK BUMIPUTERA INDONESIA = 485
37. BANK CAPITAL INDONESIA = 054
38. BANK CENTURY = 095
39. BANK CHINA TRUST INDONESIA = 949
40. BANK COMMONWEALTH = 950
41. BANK CREDIT AGRICOLE INDOSUEZ = 039
42. BANK DBS INDONESIA = 046
43. BANK DIPO INTERNATIONAL = 523

44. BANK EKONOMI RAHARJA = 087
45. BANK EKSEKUTIF INTERNASIONAL = 558
46. BANK EKSPOR INDONESIA = 003
47. BANK FAMA INTERNASIONAL = 562
48. BANK FINCONESIA = 945
49. BANK GANESHA = 161
50. BANK HAGA = 089
51. BANK HAGAKITA = 159
52. BANK HARDA INTERNASIONAL = 567
53. BANK HARFA = 517
54. BANK HARMONI INTERNATIONAL = 166
55. BANK HIMPUNAN SAUDARA 1906, Tbk. = 212
56. BANK IFI = 093
57. BANK INA PERDANA = 513
58. BANK INDEX SELINDO = 555
59. BANK INDOMONEX = 498
60. BANK INTERNASIONAL INDONESIA Tbk. = 016
61. BANK JASA ARTA = 422
62. BANK JASA JAKARTA = 472
63. BANK KEPPEL TATLEE BUANA = 053
64. BANK KESAWAN. = 167
65. BANK KESEJAHTERAAN EKONOMI = 535
66. BANK MASPION INDONESIA = 157
67. BANK MAYAPADA INTERNATIONAL Tbk. = 097
68. BANK MAYBANK INDOCORP = 947
69. BANK MAYORA = 553
70. BANK MERINCORP = 946
71. BANK MESTIKA DHARMA = 151
72. BANK METRO EXPRESS = 152
73. BANK MITRANIAGA = 491
74. BANK MIZUHO INDONESIA = 048
75. BANK MUAMALAT INDONESIA = 147
76. BANK MULTI ARTA SENTOSA = 548
77. BANK MULTICOR = 036
78. BANK NUSANTARA PARAHYANGAN 145
79. BANK OCBC = 948
80. BANK PERMATA Tbk. = 013
81. BANK PERSYARIKATAN INDONESIA = 521
82. BANK PURBA DANARTA = 547
83. BANK RABOBANK INTERNASIONAL = 060
84. BANK RESONA PERDANIA = 047
85. BANK ROYAL = 501
86. BANK SHINTA = 153
87. BANK SINAR HARAPAN BALI = 564
88. BANK SRI PARTHA = 466
89. BANK SUMITOMO MITSUI = 045

90. BANK SWADESI. = 146
91. BANK SWAGUNA = 405
92. BANK TABUNGAN PENSIUNAN NASIONAL = 213
93. BANK UIB = 536
94. BANK UOB BUANA = 023
95. BANK UOB INDONESIA = 058
96. BANK VICTORIA INTERNATIONAL = 566
97. BANK WINDU KENTJANA = 162
98. BANK WOORI INDONESIA= 068
99. BANK YUDHA BHAKTI = 490
100. CENTRATAMA NASIONAL BANK = 559
102. HALIM INDONESIA BANK = 164
103. ING INDONESIA BANK = 034
104. KOREA EXCHANGE BANK = 059
105. LIMAN INTERNATIONAL BANK = 526
106. PAN INDONESIA BANK = 019
107. PRIMA MASTER BANK = 520
108. THE BANGKOK BANK. = 040
109. THE BANK OF TOKYO MITSUBISHI UFJ = 042
110. BANK DKI = 111
111. BPD ACEH = 116
112. BPD BALI = 129
113. BPD BENGKULU = 133
114. BPD JAMBI = 115
115. BPD JAWA BARAT DAN BANTEN = 110
116. BPD JAWA TENGAH = 113
117. BPD JAWA TIMUR = 114
18. BPD KALIMANTAN BARAT = 123
119. BPD KALIMANTAN SELATAN = 122
120. BPD KALIMANTAN TENGAH = 125
121. BPD KALIMANTAN TIMUR = 124
122. BPD LAMPUNG = 121
123. BPD MALUKU = 131
124. BPD NUSA TENGGARA BARAT = 128
125. BPD NUSA TENGGARA TIMUR = 130
126. BPD PAPUA (DAHULU BPD IRIAN JAYA) = 132
127. BPD RIAU = 119
128. BPD SULAWESI SELATAN = 126
129. BPD SULAWESI TENGAH = 134
130. BPD SULAWESI TENGGARA = 135
131. BPD SULAWESI UTARA = 127
132. BPD SUMATERA BARAT (BANK NAGARI) = 118
133. BPD SUMATERA SELATAN = 120
134. BPD SUMATERA UTARA = 117
135. BPD YOGYAKARTA = 112

4. Anda juga dapat menambahkan nomor rekening bank lain kemudian dengan mengulangi langkah No.2 diatas

Langkah untuk withdraw menarik uang dari balance paypal

Sebelum dapat withdraw ke rekening bank, anda sudah harus memasukan rekening bank lokal anda pada account paypal anda dahulu sebelumnya, seperti langkah diatas.

1. Ke situs www.paypal.com

2. Ke My Account --> Withdraw --> Withdraw funds to your bank account

3. Masukan jumlah dana yang ingin di withdraw dalam dollar (akan di convert menjadi rupiah di rekening bank anda oleh pihak bank anda otomatis)

4. Klik continue dan ikuti langkah selanjutnya

5. Dana akan masuk rekening bank anda dalam 5-7 hari kerja atau mungkin lebih tergantung Bank yang bersangkutan

Created By : I Nyoman Suryasa S.Kom

Fuzzy Logic Untuk Navigasi Robot (Bagian I)

Seperti apa yang pernah diucapkan almarhum buyut :D:
The only source of knowledge is experience

Albert Einstein

Saya ingat bagaimana saya membuat robot pertama kali dengan pengetahuan nol dalam bidang robotika dan juga elektronik. Meskipun banyak buku, artikel dan tutorial yang membahas bagaimana membuat robot dari awal, rasanya hanya akan membuat bingung dengan segudang referensi tanpa mengotori tangan dengan solder dan coding. Akhirnya saya lupakan referensi dan mengingat sebagaian referensi yang masih menyangkut di otak. Ini saatnya memakai otak untuk sedikit berpikir dan berimajinasi. Jadi teringat pesan buyut :D :
Any man who reads too much and uses his own brain too little falls into lazy habits of thinking.

Albert Einsten.

Berhubung robot yang dibuat hanya sebatas tugas lab, maka saya tidak memprioritaskan untuk membuatnya istimewa. Cukup bekerja sesuai deskripsi yang diminta. Apabila saya mengingat robot itu, saya tertawa membayangkan baris program yang sangat sederhana sekali, tapi beberapa orang melihatnya cukup serius :D. Mungkin ini juga sering terjadi apabila Anda belajar bahasa pemrograman dan sebulan kemudian melihat program Hello World. Tadinya saya berniat menaruh skematik beserta program di tulisan ini, tapi filenya entah di mana.. :D. Robot yang saya buat ini adalah light seeking, hanya menggunakan 3 LDR. Kalau tidak salah ada koran yang memuatnya (he2.. narsis).

Robot kedua yang saya buat dibuat untuk mengikuti kontes robot line follower di kampus, kontes perdana.
Masih dengan pengetahuan yang sangat minim dan agak sotoy (karena menganggap enteng) dan masih acuh terhadap sistem kontrol, maka yang terbesit saat itu hanya teknik kontrol ON-OFF. Teknik kontrol seperti ini masih bisa di terapkan di arena tak bersimpang, namun arena yang digunakan banyak terdapat simpangan, sehingga dibutuhkan teknik kontrol
yang dapat mentolelir gain motor. Hal yang pertama di lakukan adalah melakukan pendataan kondisi sensor pada garis dan menentukan aksi terhadap kondisi tersebut. Pada robot tersebut digunakan 5 sensor dengan susunan sebagai berikut :

(4)___(3)_(2)_(1)___(0)

Angka tersebut menunjukkan urutan pin pada port mikrokontroller. Untuk nilai binary dengan 4 variabel (sensor) memliki kemunkinan nilai unik (kondisi sensor) sebanyak 2^4 = 16. Tidak semua kondisi digunakan. Adapun kondisi yang perlu diprioritaskan untuk mendapatkan aksi adalah :

—————————————————-
4 | 3 | 2 | 1 | 0 | Aksi
—————————————————-
x | 0 | 1 | 0 | x | Maju
x | 1 | 1 | 0 | x | Serong kiri
x | 1 | 0 | 0 | x | banting kiri
x | 0 | 1 | 1 | x | serong kanan
x | 0 | 0 | 1 | x | banting kanan
x |1 | 1 | 1 | x | Maju
——————————————————
1 menunjukkan sensor berada pada garis.
Pengaturan jarak antar sensor disini memungkinkan 2 atau 3 sensor mengenai garis. Dengan mengabaikan sensor paling kiri (4) dan kanan (0) dan menggunakan aksi sesuai tabel, robot saya dapat berjalan cukup smooth mengikuti garis lurus. Bila terdapat jalur berupa huruf L, sensor (0) dan (4) bisa membantu. Kontrol yang digunakan hanya proportional
saja, yaitu pemberian PWM motor. Apabila diinginkan pergerakan yang lebih smooth bisa menambah kontrol derivative. Mendapatkan nilai konstanta proportional yang tepat adalah melalui test berulang kali. Ini seperti melakukan mapping input sensor terhadap output PWM motor. Nilai input disini sangat sederhana jadi tidak perlu menggunakan fuzzy logic. Beberapa orang menyebutnya dengan table lookup. Oia ini video robotnya, cupu abis :

http://www.youtube.com/v/ks1zYPqFcEI

Apabila ada yang tertarik ini source codenya. Saya bukan programmer sekelas Kel, jadi masih banyak menggunakan delay. Rutin utama yang perlu diperhatikan adalah rutin scan :scan:
mov a,p1
anl a,#0eh
jz cekKiKamov p2, #66h
mundur: ;serkan / serkir / maju, 0,6,c,e
mov B, A
movc A,@A+dptr
mov pwmKi, A
mov A, B
inc A
movc A,@A+dptr
mov pwmKa, A
ret

mundur_:mov p2, #3Ch
sjmp mundur

cekKiKa:jnb sKiLuar,_kanan
_kiri: mov pwmKi,#40h
mov pwmKa,#50h
mov p2, #36h
ret

_kanan: jnb sKaLuar,mundur_
mov pwmKi,#50h
mov pwmKa,#40h
mov p2, #6Ch
ret

Pemanggilan rutin scan secara otomatis akan memandu robot untuk mengikuti track putih tanpa mempedulikan simpangan. Pertama-tama kontroler akan membaca kondisi sensor saat itu nilai sensor akan menentukan alamat pengambilan data PWM motor. Penggunaan instruksi ‘anl a,#0eh’ akan membaca 3 sensor tengah (sesuai dengan susunan sensor yang saya jelaskan di atas). Instruksi ‘jz cekKiKa’ akan mengecek nilai accumulator, apabila ‘0′ maka sensor paling ujung (0 & 4) akan dicek. Jika ada salah satu dari sensor (0) atau (4) mengenai track putih (memberikan logik ‘1′) maka robot akan spin ke arah sensor bernilai ‘1′ tersebut. Ini berguna untuk track yang memiliki belokan berbentuk huruf L. Jika 3 sensor tengah memberikan nilai ‘0′ dan tidak ada sensor (0) dan (4) yang memberikan logik ‘1′ maka robot akan mundur. Ini kurang efektif, jika saya berpikir sekarang, untuk digunakan sebenarnya. Sayangnya, rutin ini hanya bisa diimplemetasikan pada jalur lurus. Ada paper menarik, Penggunaan Kombinasi Sensor Array Depan dan Belakang pada Robot Pengikut Garis (Kasus Robot Otomatis ASKAF-i), yang menggunakan tambahan sensor belakang dalam kombinasi sensor Array. Jika Anda menginginkan navigasi line tracking yang lebih robust, paper ini dapat dijadikan acuan. Jika jalur yang digunakan tidak lurus, terdapat jalur melengkung, ada baiknya melihat robot ini.
Robot yang saya kerjakan saat ini (sudah selesai seminggu yang lalu) menggunakan fuzzy logic untuk navigasinya, baik untuk wall following (mengikuti dinding) dan obstacle avoidance (menghindari dinding). Karena menggunakan sensor ultrasonic, data untuk satu sensor tidak lagi berupa biner. Biner dalam bahasa pemrograman tingkat tinggi dapat di padankan sama halnya dengan tipe data boolean (true atau false). Engineer melihatnya sebagai level tegangan, apabila bekerja dengan komponen logika, yang mempresentasikan 0 atau 5 V. Tapi tidak absolut 0 atau 5 (tergantung spesifikasi komponen tersebut). Misal jika sebuah sensor memberi masukan 5 V, program melihatnya sebagai ‘1′ atau true, yang mengindikasikan sensor menangkap adanya objek yang berdekatan. Bila tidak objek yang menghalangi sensor dalam batas toleransinya, maka akan dihasilkan tegangan 0 V, dimana program merepresentasikan nya sebagai ‘0′ atau false. Secara sederhana program dapat di tulis seperti ini :

if (sensor==1) {
aksi(1); //aksi yang dilakukan sistem bila ada objek
} else {
aksi(0); //aksi yang dilakukan sistem bila tidak ada objek
}

Dalam teknik kontrol, ini termasuk kontrol ON-OFF. Bagaimana bila sistem yang kita inginkan dapat melakukan aksi yang berbeda untuk jarak yang sangat jauh, jarak jauh, sedang, cukup dekat dan dekat. Mungkin ini saatnya menggunakan Fuzzy logic. Teori fuzzy logic dipropose oleh seorang ahli matematika bernama Lotfi Zadeh pada tahun 1973. Sebelumnya Zadeh memperkenalkan teori fuzzy set pada tahun 1965.

Bersambung … (Ntar lagi ya lanjutinnya, banyak image nya soalnya bagian ke-II)

Referensi :

http://gedex.web.id/archives/2007/05/24/fuzzy-logic-untuk-navigasi-robot-bagian-i/

Daftar Situs Penjualan spearpart Robotik

http://www.elektronik-kits.com
http://www.klinikrobot.com
http://www.delta-electronic.com
http://www.digi-ware.com
http://www.ok-elektronik.com
http://www.innovativeelectronics.com
http://www.dt-51.com
http://www.lynxmotion.com

Line Tracer dengan Sistem Kontrol PD (Proportional Derivative)

Line Tracer dengan Sistem Kontrol PD (Proportional Derivative)

Misalkan kita mempunyai susunan sensor, tampak atas, seperti berikut:

(4) ------ (3) - (2) -(1) ------ (0)

Dimana angka menunjukkan pin uC, katakanlah pada PORT C. Jadi kita menggunakan pin PORTC.0 untuk sensor paling kanan, PORTC.1 untuk sensor tengah kanan, dst hingga PORTC.4 untuk sensor paling kiri. Untuk mempermudah, saya biasanya menggunakan data mapping. Jadi kondisi sensor akan di mapping dengan data PWM motor. Katakanlah sensor line tracer itu aktif low, jadi pin uC akan membaca logika 0 saat mengenai garis. Oke, karena ada 5 sensor maka akan ada 2^5 = 32 kemungkinan kondisi sensor. Saya hanya akan membuat kedua robot bergerak maju, sehingga bisa di buat kontroler motor untuk bergerak satu arah saja. Saya akan membuat beberapa nilai sensor (dalam hexa) saja sebagai contoh, sisanya bisa diimpementasikan sendiri. Berikut tabelnya:
Nilai sensor PWM motor kiri PWM motor kanan
0×11 0xEF 0xFF
0×17 0xA0 0xFF
0×1D 0xEF 0×9F
0×0F 0×20 0xFF
0×1E 0xEF 0×2F
dst… dst… dst…

Saya mengimplementasikan PWM dengan menggunakan interrupt timer pada uC, dimana nilai 0xff adalah PWM full speed (100%) dan motor akan berhenti dengan nilai 0. Pada kasus saya, motor kanan dan kiri akan mempunyai nilai PWM yang berbeda untuk kecepatan aktual yang terlihat sama, jika dilihat pada tabel untuk membuat motor maju lurus nilai PWM kanan dan kiri berbeda 15 desimal. Jika merujuk ke sunsunan sensor, nilai 0×11 menunjukkan tiga sensor tengah mengenai garis, sehingga PWM motor diberi hampir full agar bergerak maju lurus. Kondisi 0×17 mengharuskan robot bergerak serong kiri dan kondisi 0×1E mengharuskan robot banting kanan. Dengan cara mapping nilai sensor dari PINC dengan data PWM kita sudah mengimplementasikan sistem kontrol proportional, dimana gain motor akan mempunyai proporsi sesuai nilai sensor yg diinput ke PINC. Untuk menulisnya dengan bahasa C, saya akan menggunakan array untuk menampung data PWM, berikut potongan programnya:

/**
* isikan data PWM motor kiri dan kanan
* sesuai dengan 32 kondisi sensor
*/
unsigned char PWMKiri[32] = { 0x00, 0x00, ... }
unsigned char PWMKanan[32] = { 0x00, 0x00, ... }
unsigned char state;

void scan() {
state = PINC & 0x1F; //baca PINC.0 - PINC.4
/**
* beri nilai PWM motor kiri dengan
* data PWMKiri dan PWMkanan
* dimana indexnya adalah kondisi sensor
*/
PWMKiriVal = PWMKiri[state];
PWMKananVal = PWMKanan[state];
}

Untuk menambahkan kontrol derivative, kita perlu menggunakan delta PWM. Kita perlu mencatat data PWM sebelumnya. Kita bisa mengubah fungsi scan menjadi:

//variabel untuk menampung nilai PWM sebelumnya
unsigned char last_state, d;

//jika dipanggil tanpa argumen, fungsi scan hanya sistem kontrol proportional
void scan(d = false) {
state = PINC & 0x1F;

//jika dipanggil dengan scan(1), aktifkan fungsi proportioal-derivative
if (d) {
PWMKiriVal = PWMKiri[state] + (PWMKiri[state] - PWMKiri[last_state]);
PWMKananVal = PWMKanan[state] + (PWMKanan[state] - PWMKanan[last_state]);
} else { //sistem proportional saja
/* beri nilai PWM motor kiri dan kanan
* dimana indexnya adalah kondisi sensor
*/
PWMKiriVal = PWMKiri[state];
PWMKananVal = PWMKanan[state];
}
last_state = state;
}

Sistem derivative di atas hanya gambaran bagaimana menerapkan sistem kontrol PD, dan agak redundant jika digunakan dalam robot sederhana dengan 5 sensor. Dalam mendesain sistem derivative perlu diperhatikan apakah penyimpangan error dalam kondisi sistem itu cukup signifikan untuk membuat sistem bergerak stabil jika ditambahkan ke dalam sistem kontrol. Jika masih bingung apa itu sistem PID, coba di googling. Sebagai pendahuluan coba baca artikel PID di Wikipedia.

Referensi :
http://gedex.web.id/archives/2008/04/10/line-tracer-dengan-sistem-kontrol-pd-proportional-derivative/

PWM dengan Interrupt Timer

PWM dengan Interrupt Timer

Ada beberapa teman (especially me2t) yang masih bingung bagaimana sebenarnya Interrupt Timer dapat digunakan sebagai PWM (Pulse Width Modulation). Sebelum menjelaskan lebih dalam mengenai Timer, saya akan mengulas balik tentang sumber pencacah (clock source) pada uC AVR. Sumber pencacah untuk AVR itu seperti detak jantung yang diperlukan untuk mengeksekusi instruksi. Pengeksekusian instruksi umumnya membutuhkan satu sampai tiga siklus pencacah (clock cycles). Satu siklus adalah transisi low-hi-low _|¯|_. Jadi semakin cepat pencacah berjalan (menghitung), maka semakin cepat uC bekerja. Jadi jelas uC AVR 16 MHz akan lebih cepat dari uC AVR 1 MHz. Tapi perlu diperhatikan, kecepatan pencacah tidak begitu berarti banyak. Satu prosesor dapat membutuhkan 1 siklus pencacah untuk memindahkan data dari satu register ke register lainnya, tapi prosesor lain dapat saja membutuhkan 2 sikus pencacah untuk melakukan hal yang sama. Hal ini berarti bahwa prosesor ke-2 harus memiliki kecepatan 2x lipat prosesor ke-1 untuk melakukan instruksi yang sama dalam waktu yang sama. Kuncinya disini adalah sebuah penilaian kasar yang disebut MIPS (Milion of Instructions Per Second), yang dapat digunakan untuk menilai secara kasar berapa instruksi yang dapat dilakukan uC dalam satu detik pada frekuensi pencacah tertentu. Jika pada lembar data (datasheet) tertulis “Up to 16 MIPS Throughput at 16 MHz”, kita bisa mengasumsikan secara kasar bahwa dengan pencacah 4 MHz, kita bisa mencapai 4 MIPS (4 juta instruksi per detiknya atau sekitar 1/4 uS untuk eksekusi 1 instruksi, CMIIW). Sebenarnya penjelasan untuk pencacah dapat lebih panjang, tapi sisanya saya serahkan kepada pembaca untuk mengubeknya di google dan datasheet terkait :).

Kembali ke Timer. Secara prinsip, sebuah timer adalah sebuah counter (penghitung). Tugas Timer hanya menghitung, dia selalu menyimpan hitungannya saat menghitung “satu, dua, tiga, …” hingga 255 (8 bit) atau bahkan bisa sampai 65535 (16 bit). Naiknya hitungan Timer dan berapa lama jeda antar hitungan ini ditentukan dari siklus pencacah uC (seperti saya jelaskan di atas), mode Timer dan settingan Timer. Kita bisa menggunakan Timer sebagai pemicu event. Misal kita bisa menset Timer agar menghitung sampai 255. Dan jika sudah 255 Timer (overflow) akan memberikan sinyal, dan kita bisa mengerjakan sesuatu dalam program (disinilah PWM bekerja) dan menyuruh Timer untuk menghitung lagi dari 0. Demikian seterusnya terjadi jika nilai 255 tercapai, dan Timer hanya akan berhenti jika kita memprogramnya untuk berhenti. Sebagai kemudahan saya akan langsung memberikannya contohnya dengan CodeVisionAVR, menggunakan Timer 0 mode normal yang menghitung sampai 255. Besarnya frekuensi PWM itu bisa Anda hitung secara kasar (tidak akurat) dengan rating MIPS chip. Anda bisa menggunakan CodeWizardAVR untuk menghasilkan kode siap pakai, tanpa perlu mengecek datasheet berapa register terkait Timer harus kita berikan nilai. OK, ini langkahnya:

1. Tentukan mode normal untuk Timer 0 dan check overflow interrupt


2. Generate, Save dan Exit. Maka kurang lebih kita mendapatkan deklarasi rutin Timer 0 overflow interrupt seperti berikut:

// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Place your code here
}

3. Nilai register terkait Timer 0 yang telah diset

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

4. Timer 0 diinisialisasi pada interrupt mask dan interrupt diaktifkan

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x01;...

// Global enable interrupts
#asm("sei")

Apakah Timer 0 sudah mulai menghitung? Ya belum lah. Kita harus menset register Timer Control 0 (TCCR0) agar Timer 0 mulai bekerja. Untuk menjalankan Timer 0 tanpa prescaler beri nilai 0×01 pada TCCR0.

TCCR0 = 0x01;

Nah loh?! Apalagi tuh prescaler? Lalu apa saja sih bit-bit pada TCCR0 dan TIMSK. Nah itu semua sudah sangat jelas di tulis dalam datasheet, silahkan buka datasheet chip terkait jika merasa bingung.

Kembali ke rutin overflow interrupt Timer 0 (pada langkah 2). Rutin tersebut akan dieksekusi jika Timer 0 sudah menghitung sampai TOP atau dalam hal ini 255 / 0xFF. Bagaimana kalau kita menginginkan Timer 0 memulai dari hmm.., katakanlah 100 / 0×64 dan bukan dari 0 ? Ingat bagaimana cara Timer 0 berhitung “satu, dua, tiga, …” ? Hitungan Timer 0 selalu disimpan dalam register TCNT0. Dengan mengakali jarak hitungan Timer, kita dapat memainkan frekuensi PWM. OK, contoh berikut akan mengubah bagaimana Timer 0 akan mulai menghitung dari 192 / 0xc0:

// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
TCNT0 = 0xC0;

}

...

TCNT0 = 0xC0;
OCR0 = 0x00;
TCCR0 = 0x01; //Timer 0 mulai bekerja tanpa prescaler
TIMSK = 0x01; //pantau Timer 0 overflow interrupt service routine

#asm("sei"); //aktifkan global interrupt

...

Nah sekarang bagaimana kita memanfaatkan mode 0 dari Timer 0 agar dapat bekerja sebagai PWM. Katakanlah kita mempunyai 2 pin enable ke motor kiri dan kanan. Kita buat sebuah penampung nilai PWM yang berperan sebagai duty cycle dari PWM. Anggaplah variabel duty cycle PWM ini mempunyai nilai 0 - 255 (unsigned char). Jika duty cycle-nya 100% maka nilai tersebut adalah 255. Dapatkan gambarannya? Full speed adalah 255, half-speed adalah 127 dan no-speed adalah 0. OK, kita tulis kodenya seperti berikut:

...

#define pwmKi PORTC.0
#define pwmKa PORTC.1
#define mKi_plus PORTC.2
#define mKi_min PORTC.3

#define mKa_plus PORTC.4
#define mKa_min PORTC.5

unsigned char pwmKi_val,pwmKa_val,x = 0;

interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{

TCNT0 = 0xC0;

x++;

if (x>=pwmKa_val) {
pwmKa=0;
} else {
pwmKa=1;
}
if (x>=pwmKi_val) {
pwmKi=0;
} else {
pwmKi=1;
}

}

...

Lalu untuk implementasi nya pada program utama bisa dilakukan dengan testing PWM motor.

...

pwmKi = 1;
pwmKa = 1;

mKi_plus = 1;
mKi_min = 0;
mKa_plus = 1;
mKa_min = 0;

while (1) {
pwmKa_val = 0xff;
pwmKi_val = 0x20;
delay_ms(1500);
pwmKa_val = 0x20;
pwmKi_val = 0xff;
delay_ms(1500);
};

...

Jika motor secara bergantian pelan dan cepat setiap 1.5 detik, maka tidak ada masalah dengan implementasi dengan Timer 0 mode 0 dengan overflow interrupt. Perlu diketahui, beberapa chip AVR menyediakan variasi Timer dan modenya. Akan sangat panjang jika ditulis di sini, untuk itu kawan-kawan bisa RTFD (Read The Fucking Datasheet) :p.

Referensi :

- Datasheet ATMega16 / ATmega8535
- http://www.avrfreaks.net/
- http://gedex.web.id/archives/2008/04/11/pwm-dengan-interrupt-timer/