Mikrokontroler &
Robotika
www.widodo.com
Trend Industri
Elektronika dengan TI
Programmer Embedded.
(Orang yang mampu melakukan
pemrograman dan pengisian program ke
dalam sistem mikroprosesor/mikrokontroler
untuk keperluan Industri)
Peluang Karir di bidang TI
berbasiskan Elektronika
Developer aplikasi embedded dan kontrol
(Sistem kontrol, robotika, instrumentasi, Monitoring, PDA, Aplikasi SMS dll)
Hardware:
Pemrograman dan Interfacing mikrokontroler dan PLC
Teknologi GSM dan CDMA
Bidang Elektronika Saat ini
Mengapa Mikrokontroler ?
Chip teknologi terkini yang mampu melaksanakan
tugas-tugas kontrol sistem, karena di dalamnya
umumnya sudah mencakup:
CPU
RAM
ROM
EEPROM (Tidak semua)
I/O (Serial /paralel)
Timer
4 KByte No
AT89C51/ AT89S51 8 X 128 Byte
8 KByte No
AT89C52/ AT89S52 8 X 256 Byte
20 KByte No
AT89C55 8 X 256 Byte
12 KByte No
AT89S53 8 X 256 Byte
8 KByte 2 KByte
AT89S8252 8 X 256 Byte
8KByte 512B
Atmega 8535 512
Minsys. Mikrokontroler
U1
1
PB0 (XCK/T0) PA0 (ADC0)
40 Kelip.bas
2 39
PB1 (T1) PA1 (ADC1)
3
PB2 (AIN0/INT2) PA2 (ADC2)
38 ‘Konfigurasi port B sebagai output
4 37
5
PB3 (AIN1/OC0) PA3 (ADC3)
36 Config portb=output
PB4 (SS) PA4 (ADC4)
6 35
PB5 (MOSI) PA5 (ADC5)
LED 7
8
PB6 (MISO) PA6 (ADC6)
34
33
Do ’pengulangan
PB7 (SCK) PA7 (ADC7) Portb=255 ‘hidup semua
14
PD0 (RXD) PC0 (SCL)
22 Waitms 100 ’delay 100ms
15 23
16
PD1 (TXD) PC1 (SDA)
24 Portb=0 ’mati semua
PD2 (INT0) PC2
17
PD3 (INT1) PC3
25 Waitms 100 ’delay 100ms
18 26
19
PD4 (OC1B) PC4
27
Loop
PD5 (OC1A) PC5
20 28
PD6 (ICP) PC6 (TOSC1)
21 29
PD7 (OC2) PC7 (TOSC2)
VCC
9 10
RESET VCC
C1 30
AVCC
12 32
XTAL2 AREF
13
2
XTAL1
Cap 31
18pF GND
11
GND
C2
1
ATmega8535
Cap 11.0592MHz
18pF
Pengubah Analog ke Digital
VCC
VCC
Q1
U1
ADC.bas
R3 1 40 R1 R? Start Adc
PB0 (XCK/T0) PA0 (ADC0)
390 2 39 1K
10K Dim W As Word
PB1 (T1) PA1 (ADC1)
2N3904 3 38
PB2 (AIN0/INT2) PA2 (ADC2)
4 37
8 X LED 5
PB3 (AIN1/OC0) PA3 (ADC3)
36
Channel = 0
R4 6
PB4 (SS)
PB5 (MOSI)
PA4 (ADC4)
PA5 (ADC5)
35 ‘Baca data di channel
390 7 34
8
PB6 (MISO)
PB7 (SCK)
PA6 (ADC6)
PA7 (ADC7)
33 Do
14 22
W = Getadc(channel)
PD0 (RXD) PC0 (SCL)
15
PD1 (TXD) PC1 (SDA)
23 ‘kirim ke port serial
16 24
17
PD2 (INT0)
PD3 (INT1)
PC2
PC3
25 Print "Channel " ; Channel ; " value " ; W
18
19
PD4 (OC1B) PC4
26
27
Portb=w ‘keluarkan ke port B
PD5 (OC1A) PC5
20
PD6 (ICP) PC6 (TOSC1)
28 Loop
21 29
PD7 (OC2) PC7 (TOSC2)
VCC End
9 10
RESET VCC
C1 30
AVCC
12 32
XTAL2 AREF
13
2
Cap XTAL1
31
GND
18pF 11
GND
C2
1
ATmega8535
Cap 11.0592MHz
18pF
Dasar Kendali
kendali.bas:
’ Dasar kontrol
Config PortD = Input
Config Portb = Output
Dim A As Byte
Pulsin.bas: Pulsout.bas:
Dim w As Byte Dim A As Byte
‘terima pulsa Config Portb = Output
‘misal dari rotary encoder motor DC Portb = 0
pulsein w , PIND , 1 , 0 'detect time from 0 'all pins 0
to 1 Do
print w For A = 0 To 7
end ‘Misal untuk menggerakkan servo
Pulseout Portb , A , 60000
Waitms 250
'wait a bit
Next
Loop
Fungsi
Fungsi.bas:
Dim a As Byte, b1 As Byte, c As Byte
Declare Sub Test(a As Byte)
a = 1 : b1 = 2: c = 3
Print a ; b1 ; c
Call Test(b1)
End
Config lcd=20*4
Suhu=getadc(0)
LCD “Digital Termometer”
lowerline
LCD “Suhu saat ini “; suhu
Desain Robot Sederhana
Desain Robot
Implementasi AVR pada Robot
Penerapan Pada Robot
Robot.bas
Config Portb = Output
Dim W As Word
Start ADC
Do
W = Getadc(0) ‘baca sensor jarak
If W < 200 Then ‘jika tdk ada halangan
Portb = 8 ‘maju
Wait 2 ‘delay 2 detik
Else ‘jika ada halangan
Portb = 0 'belok kiri
Wait 2
End If
Loop
Sistem Minimum Mikro
Dasar Pemrograman
;Program menerima input, ditampilkan ke led
$Mod51 ; file library
Mikro :R5F21134
• ROM sebesar 16 KB
• RAM internal sebesar 1 KB
• 3 Timer 8 bit dan 1 Timer 16 bit
• dll
Interfacing PC
Port Serial
int main(void)
{
bioscom(0, SETTINGS, COM1);//3 parameter dari bioscom
cprintf("Komunikasi serial menggunakan BIOSCOM, tekan [ESC] untuk
keluar \n");
while (!DONE)
{
status = bioscom(3, 0, COM1);
Port Paralel/ISA
outportb(0x378,data) ; Mengeluarkan data
outportb(0x300,data); Meneluarkan data di port ISA alamat 300H
inportb(PA); memasukkan data
Kontrol VB .NET
Private Declare Function inp Lib "inpout32.dll" Alias "Inp32" (ByVal
portaddress As Integer) As Integer
Private Declare Sub out Lib "inpout32.dll" Alias "Out32" (ByVal
portaddress As Integer, ByVal value As Integer)
Sensor Eksternal
Sensor taktil/berbasis sentuhan : limit switch pada bember robot
Sensor torsi /gaya
Sensor proksimity
Sensor jarak (sonar, PSD, dll)
Sensor vision (kamera)
Sensor gyro, kompas digital, detektor api
Low and High Level Control
Sensor internal
Sensor eksternal
Sharp GP2D12
UVtron detector/ Photoreflector Sensor jarak
Sensor Api P5887
HS 15
Sensor kelembaban
Robot for Human
Networking & Wireless
GSM Module
Serial to ethernet adapter
EG-SR 7150MJ
Wireless
Kontrol Over SMS
Konsep-Konsep Penting
Pemrograman Robot Cerdas
Artificial Intelligent
Algoritma Genetics
Neural Network
Perangkat minimal untuk
belajar Mikrokontroler
Kit Sistem Minimum Mikrokontroler + Kabel ISP dengan tipe
89S52 atau AVR 89S8535 (cukup murah)
Software ATMEL ISP Software
atau
Kit Sistem Minimum Mikrokontroler PIC dengan PIC Progammer
+ Software (Lebih mahal)
atau
Kit Sistem Minimum Mikrokontroler Renesas + Software (Lebih
murah)
Buku Referensi:
Widodo Budiharto, 12 Proyek mikro untuk Pemula, Elex Media Komputindo, 2007
Widodo Budiharto, 12 Proyek Sistem Akuisisi Data, Elex Media Komputindo, 2007
Widodo Budiharto, Perancangan Sistem dan Aplikasi Mikrokontroler, Elexmedia
Komputindo, 2005.
Widodo Budiharto. Panduan Lengkap Pemrogrman J2EE, Andi Offset
Widodo Budiharto, Pemrograman Vb .Net 2005
Kontak:
B2PLKLN Cevest
Jl. Guntur Raya no.1
Bekasi