Jumat, 25 November 2016

MEMBUAT RADAR PENDETEKSI OBJEK DENGAN ARDUINO

ﺑِﺴْﻢِ ﺍﻟﻠّﻪِ ﺍﻟﺮَّﺣْﻤَﻦِ ﺍﻟﺮَّﺣِﻴْﻢ

ﺍﻟﺴَّﻼَﻡُ ﻋَﻠَﻴْﻜُﻢْ ﻭَﺭَﺣْﻤَﺔُ ﺍﻟﻠﻪِ ﻭَﺑَﺮَﻛَﺎﺗُﻪ
ُ
Anda semua pada tahu kan apa itu Radar ? Yups Radar yakni semacam alat pendeteksi objek. Biasanya sering terdapat pada kendaraan-kendaraan perang semacam jet tempur, tank, kapal selam, dan lain sebagainya. Nah pada tutorial kali ini, kita akan mencoba membuat sebuah radar sederhana dengan bantuan Arduino sebagai pengcontrol hardwarenya, dan Processing sebagai antarmuka atau interface-nya.

Nah setelah kita kemarin membuat pengontrol 3 step kecepatan motor DC menggunakan Arduino, sekarang saatnya kiat mencoba mengintegrasikan Arduino dengan software interface atau antarmuka yakni Processing.

Yups, Processing adalah sebuah software open source yang memungkinkan kita untuk mengolah berbagai karya visual seperti gambar, tulisan, grafik, dan lain sebagainya. Processing ini juga bisa kita hubungkan dengan perangkat keras lain seperti halnya Arduino. Nah kali ini kita akan menugaskan Processing untuk membaca data serial dari arduino yang berupa jarak objek di depan sensor serta derajat putaran servo yang dipadukan dalam bentuk interface berupa radar.

Project ini bersumber pada website : http://howtomechatronics.com/projects/arduino-radar-project/ dengan beberapa pengeditan pada program Arduinonya. Sedangkan program pada Processing saya copy paste dari website tersebut dengan sedikit penyesuaian karena saya sendiri masih dalam proses belajar untuk software Processing ini hehehe .

Berikut adalah komponen yang perlu sampean siapkan :

Arduino (bisa UNO, MEGA, NANO, dll)
1 buah motor servo
1 buah sensor ultrasonic HC-SR04
Software Processing

Jangan lupa taruh sensor ultrasonicnya di atas servo, karena sensor ultrasonic akan mengikuti pergerakan dari servo.

Berikut adalah program Arduinonya : 

//———PROGRAM RADAR PROJECT USING ARDUINO————//
//——AND INTERFACE 2D USING PROCESSING SOFTWARE——–//
//—Original Project From : http://www.howtomechatronics.com—-//
//———–Editing by : M. Nofgi Y.P.U.—————-//
//———-www.nofgipiston.wordpress.com—————-//

//Menambah library servo
#include .

//Deklarasi pin sensor ultrasonic
const int pinTrigger = 36;
const int pinEcho = 37;

//Deklarasi variabel durasi
long durasi;

//Deklarasi variabel jarak
int jarak;

//Deklarasi variabel servo1
Servo servo1;

void setup()
{
//Deklarasi status pin I/O
pinMode(pinTrigger, OUTPUT);
pinMode(pinEcho, INPUT);

//Deklarasi baud rate serial monitor
Serial.begin(9600);

//Deklarasi pin servo1
servo1.attach(A3);
}

void loop()
{
//Derajat servo1 bertambah satu derajat terus-menerus dari 15 derajat
//sampai 165 derajat
for (int i = 15; i <= 165; i++)
{
servo1.write(i);
delay(50);
jarak = hitungJarak();

//Menulis pada serial monitor derajat servo1 dan nilai jarak
Serial.print(i);
Serial.print(“,”);
Serial.print(jarak);
Serial.print(“.”);
}

//Derajat servo1 berkurang satu derajat terus-menerus dari 165 derajat
//sampai 15 derajat
for (int i = 165; i > 15; i–)
{
servo1.write(i);
delay(50);
jarak = hitungJarak();
//Menulis pada serial monitor derajat servo1 dan nilai jarak
Serial.print(i);
Serial.print(“,”);
Serial.print(jarak);
Serial.print(“.”);
}
}
int hitungJarak()
{
//Pengaktifan Trigger pada sensor ultrasonic
digitalWrite(pinTrigger, LOW);
delayMicroseconds(2);
digitalWrite(pinTrigger, HIGH);
delayMicroseconds(10);
digitalWrite(pinTrigger, LOW);

//Pembacaan pulsa pada Echo sensor ultrasonic
//dan konversi dari durasi ke jarak
durasi = pulseIn(pinEcho, HIGH);
jarak = (durasi * 0.034) / 2;
return jarak;
}

 

 

 

Dan berikut ini adalah program pada software Processingnya :

/* Arduino Radar Project
*
* Updated version. Fits any screen resolution!
* Just change the values in the size() function,
* with your screen resolution.
*
* by Dejan Nedelkovski,
* http://www.HowToMechatronics.com
*
*/
import processing.serial.*; // imports library for serial communication
import java.awt.event.KeyEvent; // imports library for reading the data from the serial port
import java.io.IOException;
Serial myPort; // defines Object Serial
// defubes variables
String angle=””;
String distance=””;
String data=””;
String noObject;
float pixsDistance;
int iAngle, iDistance;
int index1=0;
int index2=0;
PFont orcFont;
void setup() {

size (1366, 768); // ***CHANGE THIS TO YOUR SCREEN RESOLUTION***
smooth();
myPort = new Serial(this,”COM3″, 9600); // starts the serial communication
myPort.bufferUntil(‘.’); // reads the data from the serial port up to the character ‘.’. So actually it reads this: angle,distance.
orcFont = loadFont(“OCRAExtended-30.vlw”);
}
void draw() {

fill(98,245,31);
textFont(orcFont);
// simulating motion blur and slow fade of the moving line
noStroke();
fill(0,4);
rect(0, 0, width, height-height*0.065);

fill(98,245,31); // green color
// calls the functions for drawing the radar
drawRadar();
drawLine();
drawObject();
drawText();
}
void serialEvent (Serial myPort) { // starts reading data from the Serial Port
// reads the data from the Serial Port up to the character ‘.’ and puts it into the String variable “data”.
data = myPort.readStringUntil(‘.’);
data = data.substring(0,data.length()-1);

index1 = data.indexOf(“,”); // find the character ‘,’ and puts it into the variable “index1”
angle= data.substring(0, index1); // read the data from position “0” to position of the variable index1 or thats the value of the angle the Arduino Board sent into the Serial Port
distance= data.substring(index1+1, data.length()); // read the data from position “index1” to the end of the data pr thats the value of the distance

// converts the String variables into Integer
iAngle = int(angle);
iDistance = int(distance);
}
void drawRadar() {
pushMatrix();
translate(width/2,height-height*0.074); // moves the starting coordinats to new location
noFill();
strokeWeight(2);
stroke(98,245,31);
// draws the arc lines
arc(0,0,(width-width*0.0625),(width-width*0.0625),PI,TWO_PI);
arc(0,0,(width-width*0.27),(width-width*0.27),PI,TWO_PI);
arc(0,0,(width-width*0.479),(width-width*0.479),PI,TWO_PI);
arc(0,0,(width-width*0.687),(width-width*0.687),PI,TWO_PI);
// draws the angle lines
line(-width/2,0,width/2,0);
line(0,0,(-width/2)*cos(radians(30)),(-width/2)*sin(radians(30)));
line(0,0,(-width/2)*cos(radians(60)),(-width/2)*sin(radians(60)));
line(0,0,(-width/2)*cos(radians(90)),(-width/2)*sin(radians(90)));
line(0,0,(-width/2)*cos(radians(120)),(-width/2)*sin(radians(120)));
line(0,0,(-width/2)*cos(radians(150)),(-width/2)*sin(radians(150)));
line((-width/2)*cos(radians(30)),0,width/2,0);
popMatrix();
}
void drawObject() {
pushMatrix();
translate(width/2,height-height*0.074); // moves the starting coordinats to new location
strokeWeight(9);
stroke(255,10,10); // red color
pixsDistance = iDistance*((height-height*0.1666)*0.025); // covers the distance from the sensor from cm to pixels
// limiting the range to 40 cms
if(iDistance<40){
// draws the object according to the angle and the distance
line(pixsDistance*cos(radians(iAngle)),-pixsDistance*sin(radians(iAngle)),(width-width*0.505)*cos(radians(iAngle)),-(width-width*0.505)*sin(radians(iAngle)));
}
popMatrix();
}
void drawLine() {
pushMatrix();
strokeWeight(9);
stroke(30,250,60);
translate(width/2,height-height*0.074); // moves the starting coordinats to new location
line(0,0,(height-height*0.12)*cos(radians(iAngle)),-(height-height*0.12)*sin(radians(iAngle))); // draws the line according to the angle
popMatrix();
}
void drawText() { // draws the texts on the screen

pushMatrix();
if(iDistance>40) {
noObject = “Out of Range”;
}
else {
noObject = “In Range”;
}
fill(0,0,0);
noStroke();
rect(0, height-height*0.0648, width, height);
fill(98,245,31);
textSize(25);

text(“10cm”,width-width*0.3854,height-height*0.0833);
text(“20cm”,width-width*0.281,height-height*0.0833);
text(“30cm”,width-width*0.177,height-height*0.0833);
text(“40cm”,width-width*0.0729,height-height*0.0833);
textSize(40);
text(“Object: ” + noObject, width-width*0.875, height-height*0.0277);
text(“Angle: ” + iAngle +” °”, width-width*0.48, height-height*0.0277);
text(“Distance: “, width-width*0.26, height-height*0.0277);
if(iDistance<40) {
text(” ” + iDistance +” cm”, width-width*0.225, height-height*0.0277);
}
textSize(25);
fill(98,245,60);
translate((width-width*0.4994)+width/2*cos(radians(30)),(height-height*0.0907)-width/2*sin(radians(30)));
rotate(-radians(-60));
text(“30°”,0,0);
resetMatrix();
translate((width-width*0.503)+width/2*cos(radians(60)),(height-height*0.0888)-width/2*sin(radians(60)));
rotate(-radians(-30));
text(“60°”,0,0);
resetMatrix();
translate((width-width*0.507)+width/2*cos(radians(90)),(height-height*0.0833)-width/2*sin(radians(90)));
rotate(radians(0));
text(“90°”,0,0);
resetMatrix();
translate(width-width*0.513+width/2*cos(radians(120)),(height-height*0.07129)-width/2*sin(radians(120)));
rotate(radians(-30));
text(“120°”,0,0);
resetMatrix();
translate((width-width*0.5104)+width/2*cos(radians(150)),(height-height*0.0574)-width/2*sin(radians(150)));
rotate(radians(-60));
text(“150°”,0,0);
popMatrix();
}

Nah setelah itu silahkan hubungkan Arduino dengan kabel ke laptop/PC sampean, lalu run program pada Processing tersebut. Maka program akan berjalan.

Sabtu, 19 November 2016

THERMO-ELECTRIC (PELTIER)

Pendingin Thermo-Electric (TEC), juga sering disebut pendingin
Peltier ataupompa panassolid-stateyang
memanfaatkanefekPeltier. Saat TEC / Peltier dilewati arus maka
alat ini akan memindahkan panas dari satusisi ke sisi lain,
biasanya menghasilkan perbedaan panas sekitar 40°C - 70°C.
Prinsip pendinginan Thermo-Electric ini ditemukan pertama kali
pada tahun 1834 oleh Jean Peltier, sehingga hasil penemuannya
ini sering disebut “Pendingin Peltier”. Ketika dua konduktor
dihubungkan kontak listrik, elektron akan mengalir dari satu
konduktor yang mempunyai elektron kurang terikat ke konduktor
yang mempunyai elektron yang lebih terikat.
Bahan semikonduktor Thermo-Electric yang paling sering
digunakan saat ini adalah Bismuth Telluride (Bi2Te3). Thermo-
Electric dibangun oleh dua buah semikonduktor yang berbeda,
satu tipe N dan yang lainnya tipe P.
Sebuah Thermo-Electric akan menghasilkan perbedaan suhu
maksimal 70oC antara sisi panas dan dinginnya. Apabila Thermo-
Electric semakin panas maka akan semakin kurang efisiensinya.
Thermo-Electric mempunyai efisiensi sekitar 10% - 15%,
sementara efisiensi model konvensional antara 40% - 60%.
Kata kunci : Thermo-Electric, Peltier, Bismuth Telluride
Pendingin Thermo-Electric (TEC), juga sering disebut
pendingin Peltier atau pompa panas solid-state yang
memanfaatkan efek Peltier untuk memindahkan panas
Saat TEC / Peltier dilewati arus maka alat ini akan
memindahkan panas dari satu sisi ke sisi lain, biasanya
menghasilkan perbedaan panas sekitar 40°C- 70°C dalam
perangkatyang high-end dapat digunakan untuk mentransfer
panas dari satu tempat ke tempat yang lain.
Efek Peltier
Prinsip pendinginan Thermo-Electric ini ditemukan
pertama kali pada tahun 1834 oleh Jean Peltier, sehingga hasil
penemuannya ini sering disebut “ Pendingin Peltier ” Apabila ada
aliran arus listrik, maka akan disertai dengan panas hasil dari
arus tersebut (pemanasan Joule). Jean Peltier mengamati hal ini,
bahwa ketika arus listrik melewati pertemuan dua buah konduktor
yang berbeda (thermocouple ), akan ada efek pemanasan yang
tidak bisa dijelaskan oleh pemanasan Joule saja. Bahkan
tergantung pada arah arus, efeknya bisa berupa pemanasan atau
pendinginan.
Jean Peltier sendiri tidak mau menghargai potensi
penemuannya sendiri, karena hal ini dianggap tidak efisien sampai
akhir abad ke 20.
Cara Kerja
Ketika dua konduktor dihubungkan kontak listrik, elektron
akan mengalir dari satu konduktor yang mempunyai elektron
kurang terikat ke konduktor yang mempunyai elektron yang lebih
terikat. Alasan yang mudah untuk hal ini adalah tingkat perbedaan
Fermi antara dua konduktor.
Perbedaan Fermi adalah istilah yang digunakan untuk
menggambarkan bagian atas kumpulan tingkat energi elektron
pada suhu nol absolut. Konsep ini berasal dari statistik Fermi-
Dirac.
Konsep energi Fermi adalah konsep yang sangat penting
untuk memahami sifat listrik dan termal pada benda padat. Kedua
proses listrik dan termal biasanya melibatkan energi elektron.
Ketika dua konduktor dengan tingkat Fermi yang berbeda
digabungkan, elektron akan mengalir dari konduktor dengan
tingkat yang lebih tinggi ke tingkat yang lebih rendah, hingga
perubahan potensial elektrostatik membawa dua tingkat Fermi
menjadi nilai yang sama.
Arus yang melewati Junction baik arah maju maupun
mundur akan menghasilkan perbedaan suhu. Jika suhu Junction
panas (heat sink) bpat isa dijaga tetap rendah dengan
mengurangi atau menghilangkan panas yang dihasilkan, maka
suhu bagian yang dingin dapat dipertahankan sesuai dengan yang
diinginkan dan bisa beberapa puluh derajad dibawah titik nol.
Bahan Thermo-Electric
Semikonduktor adalah bahan pilihan untuk Thermo-Electric
yang umum dipakai. Bahan semikonduktor Thermo-Electric yang
paling sering digunakan saat ini adalah Bismuth Telluride
(Bi2Te3) yang telah diolah untuk menghasilkan blok atau elemen
yang memiliki karakteristik individu berbeda yaitu N dan P. Bahan
Thermo-Electric lainnya termasuk Timbal Telluride (PbTe), Silicon
Germanium (SiGe) dan Bismuth-Antimony (SbBi) adalah paduan
bahan yang dapat digunakan dalam situasi tertentu. Namun,
Bismuth Telluride adalah bahan terbaik dalam hal pendinginan.
Bismuth Telluride memiliki dua karakteristik yang patut
dicatat. Karena struktur kristal, Bismuth Telluride sangat
anisotropic . Perilaku anisotropic perlawanan lebih besar daripada
konduktivitas termalnya. Sehingga anisotropic ini dimanfaatkan
untuk pendinginan yang optimal. Karakteristik lain yang
menarik dari Bismuth Telluride adalah kristal Bismuth Telluride
(Bi2Te3) terdiri dari lapisan heksagonal atom yang sama.
Konstruksi
Thermo-Electric dibangun oleh dua buah semikonduktor
yang berbeda, satu tipe N dan yang lainnya tipe P. (mereka harus
berbeda karena mereka harus memiliki kerapatan elektron yang
berbeda dalam rangka untuk bekerja). Kedua semikonduktor
diposisikan paralel secara termal dan ujungnya digabungkan
dengan lempeng pendingin biasanya lempeng tembaga atau
aluminium.

Kamis, 03 November 2016

KODE RAHASIA ANDROID


 Kode Rahasia Android Fungsi

 * Kode Rahasia Android Fungsi
 * # 0 * # Menu layanan pada Galaxy S III
 * # 0 6 # Mengetahui nomor IMEI
 * # * # 0 * # * # * Mengetes layar LCD
 * # * # 0283 # * # * Menguji paket loopback
 * # * # 0289 # * # * Tes Audio
 * # * # 0588 # * # * Menguji jarak sensor
 * # * # 0842 # * # * Menguji Getar
 * # * # 1111 # * # * Menampilkan versi software FTA
 * # * # 1234 # * # * Menampilkan info firmware HP dan
PDA
 * # 12580 * 369 # Menampilkan info Software dan
Hardware
 * # * # 1472365 # * #
* Menguji GPS dengan cepat
 * # * # 1575 # * # * Menguji GPS dengan lebih banyak
pilihan
 * # * # 197328640 # *
# * Mengaktifkan mode tes layanan
 * # * # 2222 # * # * Menampilkan versi hardware FTA
 * # * # 232331 # * # * Menguji Bluetooth
 * # * # 232337 # * # Menampilkan alamat Bluetooth
 * # * # 232338 # * # * Menampilkan alamat Wi-Fi MAC
 * # * # 232339 # * # * Mengetes Wireless LAN
 * # * # 2664 # * # * Menguji Touchscreen
 * 2767 * 3855 # Melakukan Format Factory
 * # * # 2663 # * # * Menampilkan versi software
Touchscreen
 * # * # 273283 * 255 *
663282 * # * # *
Melakukan Backup dengan cepat
terhadap file media hiburan
 * # * # 273282 * 255 *
663282 * # * # * Melakukan Backup terhadap file
 ## 33284 # Menguji field
 ##3424# Menjalankan mode diagnostik
 ## 3282 # Menampilkan menu EPST
 * # * # 34971539 # * #
*
Menampilkan informasi kamera
secara detil
 * # 301279 # Menampilan menu kontrol HSDPA /
HSUPA
 * # * # 3264 # * # * Menampilkan versi RAM
 * # * # 4636 # * # * Menampilkan informasi statistik
penggunaan HP dan baterai
 * # * # 44336 # * # * Menampilkan waktu pembuatan
dan daftar nomor perubahan
 * # * # 4986 *
2650468 # * # *
Menampilkan informasi firmware
HP, Hardware, PDA dan RF
 * # 7465625 # Melihat status kunci telepon
 * # * # 7780 # * # * Melakukan reset data/partisi ke
kondisi pabrik
 * # 872564 # Mengaktifkan USB control logging
 * # 9090 # Melihat konfigurasi diagnostik
Untuk menggunakan kode-kode rahasia hp Android diatas, Anda
hanya perlu mengetiknya pada tampilan dial. Jika kode tersebut
tidak berfungsi, maka dipastikan kode yang diketik bukan untuk
merk Android yang sedang Anda gunakan. # 0 * # Menu layanan pada Galaxy S III

 * # 0 6 # Mengetahui nomor IMEI

 * # * # 0 * # * # * Mengetes layar LCD

 * # * # 0283 # * # * Menguji paket loopback

 * # * # 0289 # * # * Tes Audio

 * # * # 0588 # * # * Menguji jarak sensor

 * # * # 0842 # * # * Menguji Getar

 * # * # 1111 # * # * Menampilkan versi software FTA

 * # * # 1234 # * # * Menampilkan info firmware HP dan PDA

 * # 12580 * 369 # Menampilkan info Software dan
Hardware

 * # * # 1472365 # * #* Menguji GPS dengan cepat

 * # * # 1575 # * # * Menguji GPS dengan lebih banyak pilihan

 * # * # 197328640 # *# * Mengaktifkan mode tes
layanan

 * # * # 2222 # * # * Menampilkan versi hardware FTA

 * # * # 232331 # * # * Menguji Bluetooth

 * # * # 232337 # * # Menampilkan alamat Bluetooth

 * # * # 232338 # * # * Menampilkan alamat Wi-Fi MAC

 * # * # 232339 # * # * Mengetes Wireless LAN

 * # * # 2664 # * # * Menguji Touchscreen

 * 2767 * 3855 # Melakukan Format Factory

 * # * # 2663 # * # * Menampilkan versi software
Touchscreen

 * # * # 273283 * 255 *663282 * # * # * Melakukan Backup dengan cepat terhadap file media hiburan

 * # * # 273282 * 255 *663282 * # * # * Melakukan Backup terhadap file

 ## 33284 # Menguji field

 ##3424# Menjalankan mode diagnostik

 ## 3282 # Menampilkan menu EPST

 * # * # 34971539 # * #* Menampilkan informasi kamera secara detil

 * # 301279 # Menampilan menu kontrol HSDPA /
HSUPA
 * # * # 3264 # * # * Menampilkan versi RAM

 * # * # 4636 # * # * Menampilkan informasi statistik penggunaan HP dan baterai

 * # * # 44336 # * # * Menampilkan waktu pembuatan dan daftar nomor perubahan

 * # * # 4986 *2650468 # * # * Menampilkan informasi firmware HP, Hardware, PDA dan RF

 * # 7465625 # Melihat status kunci telepon

 * # * # 7780 # * # * Melakukan reset data/partisi ke
kondisi pabrik

 * # 872564 # Mengaktifkan USB control logging

 * # 9090 # Melihat konfigurasi diagnostik

Untuk menggunakan kode-kode rahasia hp Android diatas, Anda
hanya perlu mengetiknya pada tampilan dial. Jika kode tersebut
tidak berfungsi, maka dipastikan kode yang diketik bukan untuk
merk Android yang sedang Anda gunakan.