Kali ini saya akan bercerita mengenai bagaimana cara membuat alat dengan kendali Leap Motion, jika belum tahu apa itu Leap Motion silahkan tanyakan mbah gugel atau om yutub, Leap Motion adalah alat yang digunakan untuk mendeteksi gesture tangan atau juga bisa digunakan untuk deteksi jari2 secara real time, sehingga alat ini bisa difungsikan sebagai sensor gerak, pada contoh kali ini saya menjelaskan tentang kendali 4 buah led menggunakan gesture Leap Motion, berikut program dan skemanya.
a. Arduino Uno
b. Leap Motion
c. Program Processing IDE
// An array of LEDs lit up by LEAP motion on an ARDUINO
// LEAP libraries
import de.voidplus.leapmotion.*;
LeapMotion leap;
// Serial Port Output
import processing.serial.*; // Serial libraries, send OUTPUT through USB
Serial myPort;
int ledPin;
int checkPin;
void setup() {
size(800, 500, P3D);
background(255);
noStroke();
fill(50);
// New port object
myPort = new Serial(this, Serial.list()[0], 9600);
// New leap object
leap = new LeapMotion(this);
}
void draw() {
background(255);
// Leap magic
int fps = leap.getFrameRate();
// Clean LEAP Hand position
for (Hand hand : leap.getHands()) {
hand.draw();
PVector hand_position = hand.getPosition();
println("Hand on X: " + hand.getPosition().x );
println("Hand on Y: " + hand.getPosition().y );
// Determine ledPin according to mapped hand x position
checkPin = (int) map(hand.getPosition().x, 0, 700, 8, 14);
if (ledPin != checkPin) {
assignPin();
}
// Send ledPin number through port
}
}
void assignPin() {
ledPin = checkPin;
myPort.write(ledPin);
println("Serial Output: " + ledPin);
}
void leapOnInit() {
// println(“Leap Motion Init”);
}
void leapOnConnect() {
// println(“Leap Motion Connect”);
}
void leapOnFrame() {
// println(“Leap Motion Frame”);
}
void leapOnDisconnect() {
// println(“Leap Motion Disconnect”);
}
void leapOnExit() {
// println(“Leap Motion Exit”);
}
d. Program Arduino IDE
// Arduino sketch turn LED on via serial input from Processing
// Define main variables
int ledPin = 0;
int currentRead;
// Slowing down the process
//unsigned long millisCounter = 0;
//int interval = 10;
// activate the pins I want to use on my board
int myPins[5] = {
9, 10, 11, 12, 13};
void setup() {
// Activate all Digital pins on my board
for (int i = 0; i < 5; i++) {
pinMode(myPins[i], OUTPUT);
}
Serial.begin(9600);
}
void loop() {
if (Serial.available()) {
currentRead = Serial.read();
if(currentRead != ledPin) {
digitalWrite(ledPin, LOW);
ledPin = currentRead;
digitalWrite(ledPin, HIGH);
}
}
}
e. Cara Menginstal Library
- Pertama buka procssing -> sketch -> import library -> add library
- lalu pilih seperti di gambar dan install
f. VIDEO HASILNYA
No comments:
Post a Comment