General-purpose input/output

advertisement
Pemrograman
Raspberry Pi (1)
Java dan Pi4J
Dasar Pemrograman Java di
Raspberry Pi (1)
Kebutuhan Dasar
• Rasberry Pi Series board + Power Supply
• Raspbian Linux
• Laptop/PC + Programming Environment + Remote
Connection Tools
• Modul Sensor
• Modul Aktuator
• Modul Data and Signal Converter / Modulator (opsional)
• Kabel Jumper
• Project Board
• Kabel LAN
• Kabel Roll (Listrik)
Raspberry Pi 3
Raspberry Pi 3
•
•
•
•
•
•
•
•
•
SoC: Broadcom BCM2837
CPU: 4× ARM Cortex-A53, 1.2GHz
GPU: Broadcom VideoCore IV
RAM: 1GB LPDDR2 (900 MHz)
Networking: 10/100 Ethernet, 2.4GHz 802.11n wireless
Bluetooth: Bluetooth 4.1 Classic, Bluetooth Low Energy
Storage: microSD
GPIO: 40-pin header, populated
Ports: HDMI, 3.5mm analogue audio-video jack, 4× USB
2.0, Ethernet, Camera Serial Interface (CSI), Display
Serial Interface (DSI)
Raspbian Jessie
The latest Raspbian Distribution, please check https://www.raspberrypi.org/downloads/ ^^
Pemrograman Java di Raspberry Pi
• Raspbian Linux pada dasarnya sudah memiliki
support terhadap beberapa bahasa pemrograman,
termasuk Java
• Raspbian Jessie memiliki JDK 8 yang sudah
ter-install secara default (Java SE 8 Embedded)
• Pemrograman Java di Raspberry Pi menggunakan
API Pi4J (http://pi4j.com/)
Pi4J API
• Pi4J is an open-source project providing a library
for Java programmers to interact with the low-level
I/O capabilities on the Raspberry Pi platform.
•
•
•
•
•
Open Source Project
Low Level I/O Library
Object-Oriented API
Event Based
Java & C (JNI + Native)
Fitur Pi4J API
• Low Level I/O Interfaces
• Digital Interfaces
• GPIO (General Purpose Input Output)
• PWM (Pulse Width Modulation)
• Data Interfaces
• UART, SERIAL (Universal Asynchronous Receiver/Transmitter)
• SPI (Serial Peripheral Interface)
• I²C (Inter-Integrated Circuit)
• Analog Interfaces
Fitur Pi4J Lanjutan
•
Export & unexport GPIO pins
•
Configure GPIO pin direction
•
Configure GPIO pin edge detection
•
Control/write GPIO pin states
•
Pulse GPIO pin state
•
Read GPIO pin states
•
Listen for GPIO pin state changes (interrupt-based; not polling)
•
Automatically set GPIO states on program termination (GPIO shutdown)
•
Triggers for automation based on pin state changes
•
Send & receive data via RS232 serial communication
•
I2C Communication
•
SPI Communication
•
Extensible GPIO Provider interface to add GPIO capacity via expansion boards
•
Access system information and network information from the Raspberry Pi
•
Wrapper classes for direct access to WiringPi Library from Java
•
Pulse Width Modulation Functionality Wrapper
Dasar Pemrograman Java di
Raspberry Pi menggunakan Pi4J
GPIO
• General-purpose input/output (GPIO) adalah pin generik
pada sirkuit terpadu (chip) yang perilakunya (termasuk
apakah pin itu input atau output) dapat dikontrol
(diprogram) oleh pengguna saat berjalan
• Pada Raspberry Pi, pin GPIO (general purpose input/output)
terletak di salah satu sudut papan
• Pin-pin GPIO adalah penghubung antara Raspberry Pi
dengan “dunia luar”
• Bisa diumpamakan sebagai tombol-tombol yang dapat dinyalakan
atau dimatikan (input) atau bisa juga Raspberry Pi yang
menyalakan/mematikan tombol2 tersebut (output)
• GPIO dapat diprogram untuk menghubungkan Raspberry Pi dengan
alat lain, inputnya tidak hanya dapat dihubungkan dengan tombol2
sederhana namun bisa juga dari alat lain seperti sensor atau data
dari komputer lain
GPIO
• Input or Output
• Digital States
• HIGH ~ 3.3 VDC
• LOW ~ 0 VDC
• Models
• Dependent on Raspberry Pi Model
• Model 3 B = 29 pins
GPIO Digital States
GPIO
GPIO Numbering
Scheme :
Raspberry 3
Model B
GPIO
• Programmable I/O Pins
• Input from “something”
• Output for controlling “something”
Praktikum 1
Dasar Pemrograman GPIO pada
Raspberry Pi dengan Menggunakan
Java dan Pi4j
Praktikum 1
• Menyalakan LED dengan menggunakan Program
Java Sederhana
Praktikum 1
• Alat dan Bahan
• Laptop / PC yang sudah terinstall Java Development
Environment (ex. Netbeans dan JDK 8 + Pi4J)
• Remote Connection Tools (ex. Putty)
• Raspberry Pi board
• Power supply 5V
• Kabel LAN
• Project board / bread board
• LED
• Kabel jumper untuk pin
• Resistor ± 220 Ω
Langkah 1
Mempersiapkan Rasberry Pi untuk dapat
diprogram melalui sistem remote
1. Persiapkan Micro SD Card minimum kapasitas 8 GB
2. Download Raspbian Linux OS dari website Raspbian
3. Extract dan Burn Raspbian OS ke dalam Micro SD
Card dengan menggunakan PC / Laptop
• Dapat menggunakan tools tambahan, misalnya UltraISO,
PowerISO atau ISO dan disc image tools yang lain
4. Pasang salah satu ujung kabel LAN di Raspberry Pi
dan ujung lainnya di PC / Laptop
5. Masukkan Micro SD Card ke dalam Raspberry Pi
6. Pasang power supply ke Raspberry PI
Langkah 2
Mempersiapkan rangkaian yang akan
diprogram
Langkah 2
Mempersiapkan rangkaian yang akan
diprogram
Langkah 3
Menemukan alamat IP Address dari
Raspberry Pi
1. Buka setting jaringan Ethernet / LAN kita di
Network and Sharing Center (Windows)
Langkah 3
Menemukan alamat IP Address dari
Raspberry Pi
2. Cek IP Address PC/Laptop kita dan setting dalam
mode dinamis DHCP
3. Simpan dan keluar
4. Buka command prompt di PC/Laptop kita
5. Jalankan command ipconfig dan temukan ip
address dinamis yang diberikan kepada
PC/Laptop kita
Langkah 3
Menemukan alamat IP Address dari
Raspberry Pi
Langkah 3
Menemukan alamat IP Address dari
Raspberry Pi
6. Temukan IP Address dari Raspberry Pi yang
terkoneksi dengan Ethernet kita dengan
menjalankan command arp –a
Langkah 3
Menemukan alamat IP Address dari
Raspberry Pi
2. Temukan IP Address dari Raspberry Pi yang
terkoneksi dengan Ethernet kita dengan
menjalankan command arp –a
Cari yang dynamic
Ex : 169.254.74.234
IP Address Raspberry Pi
Langkah 4
Menguji koneksi dengan remote
connection tools (Putty)
1. Download aplikasi putty di putty.org
2. Buka aplikasi putty
3. Isikan IP Address Raspberry Pi pada bagian Host
Name
4. Pastikan Port sudah terisi nomor port SSH (22)
dan Connection Type adalah SSH
5. Pilih dan tekan tombol Open
6. Isikan username dan password akun linux
Raspbian (default)
a. Username : pi
b. Password : raspberry
Langkah 4
Menguji koneksi dengan remote
connection tools (Putty)
Langkah 5
Mempersiapkan Java IDE untuk dapat
digunakan dalam remote developing
1. Kita gunakan Netbeans IDE dan JDK 8
2. Buka Netbeans
3. Masuk pada menu Tools → Platform
Langkah 5
Mempersiapkan Java IDE untuk dapat
digunakan dalam remote developing
4. Pilih add Platform
dan pilih Remote
Java Standard
Edition dan pilih
Next
5. Isi sesuai alamat
sistem yang akan
di remote
6. Pilih Finish
Langkah 5
Mempersiapkan Java IDE untuk dapat
digunakan dalam remote developing
Langkah 6
Membuat project baru untuk
melakukan pemrograman
1. Membuat projek Java baru
2. Tambahkan library Pi4J
3. Dan saatnya, it’s ngoding time ^^
{ //void main
final GpioController gpio =
GpioFactory.getInstance();
final GpioPinDigitalOutput pin =
gpio.provisionDigitalOutputPin(RaspiPin.GPIO_01,
"LED", PinState.HIGH);
pin.setShutdownOptions(true, PinState.LOW);
Thread.sleep(5000);
pin.low();
Thread.sleep(5000);
pin.toggle();
Thread.sleep(5000);
pin.pulse(1000, true);
gpio.shutdown();
}
Dasar Pemrograman Java di
Raspberry Pi (2)
Pulse Width Modulation
• PWM ( Pulse Width Modulation) adalah salah satu
teknik modulasi dengan mengubah lebar pulsa
(duty cycle) dengan nilai amplitudo dan frekuensi
yang tetap untuk mendapatkan tegangan rata-rata
yang berbeda
• PWM adalah pemodulasian data untuk
telekomunikasi, pengontrolan daya atau tegangan
yang masuk ke beban, regulator tegangan, audio
effect dan penguatan, dll.
• Aplikasi PWM biasanya berupa pengendalian
kecepatan motor DC, pengendalian motor servo,
dan pengaturan nyala terang LED
Pulse Width Modulation
Pulse Width Modulation
Praktikum 2
Dasar Pemrograman PWM GPIO pada
Raspberry Pi dengan Menggunakan
Java dan Pi4j
Praktikum 2
• Menyalakan dan mematikan LED secara perlahan
dengan menggunakan Program Java Sederhana
Praktikum 2
• Alat dan Bahan
• Laptop / PC yang sudah terinstall Java Development
Environment (ex. Netbeans dan JDK 8 + Pi4J)
• Remote Connection Tools (ex. Putty)
• Raspberry Pi board
• Power supply 5V
• Kabel LAN
• Project board / bread board
• LED
• Kabel jumper untuk pin
• Resistor ± 220 Ω
Langkah 1
Membuat project baru untuk
melakukan pemrograman
1. Langkah – langkah sebelumnya sama dengan
praktikum sebelumnya
{ //void main
Gpio.wiringPiSetup();
SoftPwm.softPwmCreate(PIN_NUMBER, 0, 100);
for (int i = 0; i <= 100; i++) {
SoftPwm.softPwmWrite(PIN_NUMBER, i);
Thread.sleep(25);
System.out.println("Power = " + i + " %");
}
Thread.sleep(5000);
for (int i = 100; i >= 0; i--) {
SoftPwm.softPwmWrite(PIN_NUMBER, i);
Thread.sleep(25);
System.out.println("Power = " + i + " %");
}
Pengembangan : Running LED /
Lampu Hias
https://www.youtube.com/watch?v=7cHIA3Nchp4
Terimakasih
Download