Perancangan Alat Pengendali Lampu dan Gerbang Otomatis Tanpa Kebel Menggunakan Neurosky Mindwave Headset
Lampiran - Lampiran
Universitas Sumatera Utara
Lampiran 1
Rangkaian keseluruhan pengirim
Universitas Sumatera Utara
Lampiran 2
Rangkaian keseluruhan penerima
Universitas Sumatera Utara
Lampiran 3.
Kode Program Pengirim Sinyal
/**********************************************************
// Arduino Brain Library - Brain Blinker
// Description: Basic brain example, blinks an LED on pin 13 faster as your "attention"
value increases.
// Adapted from the Blink without Delay example distributed with Arduino environment.
// More info: https://github.com/kitschpatrol/Arduino-Brain-Library
// Author: Eric Mika, 2010 revised in 2014
#include
#include
#define buzzer A0
#define led 10
int perhatian=0;
char *kirim;
// Set up the brain reader, pass it the hardware serial object you want to listen on.
Brain brain(Serial);
void setup() {
Serial.begin(9600);
vw_set_tx_pin(12);
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000);
// Bits per sec
Universitas Sumatera Utara
pinMode(13, OUTPUT);
pinMode(8, OUTPUT);
pinMode(led, OUTPUT);
digitalWrite(13, LOW);
digitalWrite(8, LOW);
while(brain.readSignalQuality()==200)
{
if (brain.update()) {
Serial.println(brain.readCSV());
Serial.print("Satu");
}
digitalWrite(led,HIGH);
}
while(brain.readSignalQuality()!=200)
{
if (brain.update()) {
Serial.println(brain.readCSV());
Serial.print("Satu");
}
digitalWrite(led,HIGH);
}
while(brain.readSignalQuality()!=0)
{
if (brain.update()) {
Universitas Sumatera Utara
Serial.println(brain.readCSV());
Serial.print("Dua");
}
digitalWrite(buzzer,HIGH);
}
delay(1000);
digitalWrite(buzzer,LOW);
}
byte counter = 0;
void loop() {
if (brain.update()) {
Serial.println(brain.readCSV());
if(brain.readSignalQuality() == 26 || brain.readSignalQuality() == 51 )
{
if(counter == 0)
{
kirim="1";
vw_send((uint8_t *)kirim,strlen(kirim));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13, HIGH);
delay(2000);
counter= 1;
}
else
{
Universitas Sumatera Utara
kirim="0";
vw_send((uint8_t *)kirim,strlen(kirim));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13, LOW);
delay(2000);
counter= 0;
}
}
if(brain.readSignalQuality() == 0 && brain.readAttention() > 80)
{
kirim="2";
vw_send((uint8_t *)kirim,strlen(kirim));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13, HIGH);
delay(2000);
}
}
}
Universitas Sumatera Utara
Lampiran 4
Kode Program penerima Sinyal
/**********************************************************
// receiver.pde
//
// Simple example of how to use VirtualWire to receive messages
// Implements a simplex (one-way) receiver with an Rx-B1 module
//
// See VirtualWire.h for detailed API docs
// Author: Mike McCauley (mikem@airspayce.com)
// Copyright (C) 2008 Mike McCauley
// $Id: receiver.pde,v 1.3 2009/03/30 00:07:24 mikem Exp $
#include
void setup()
{
vw_set_rx_pin(8);
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000);
vw_rx_start();
// Bits per sec
// Start the receiver PLL running
pinMode(16, OUTPUT);
analogWrite(15, 1000);
pinMode(18, OUTPUT);
Universitas Sumatera Utara
pinMode(17, OUTPUT);
pinMode(19, INPUT);
pinMode(20, INPUT);
digitalWrite(19, HIGH);
digitalWrite(20, HIGH);
int sw1 = digitalRead(20);
while(sw1 == 1)
{
sw1 = digitalRead(20);
digitalWrite(18, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(17, LOW);
}
digitalWrite(18, LOW);
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // Non-blocking
{
if(buf[0]=='1')
{
digitalWrite(16, HIGH);
}
Universitas Sumatera Utara
else if(buf[0]=='0')
{
digitalWrite(16, LOW);
}
else if(buf[0]=='2')
{
int sw2 = digitalRead(19);
while(sw2 == 1)
{
sw2 = digitalRead(19);
digitalWrite(18, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(17, HIGH);
}
digitalWrite(17, LOW);
delay(3000);
int sw1 = digitalRead(20);
while(sw1 == 1)
{
sw1 = digitalRead(20);
digitalWrite(18, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(17, LOW);
}
digitalWrite(18, LOW);
}
}
}
Universitas Sumatera Utara
Lampiran 5
Gambar alat pengirim sinyal
Universitas Sumatera Utara
Lampiran 6
a. Gambar alat penerima tampak depan
b. Gambar alat penerima tampak depan
Universitas Sumatera Utara
Universitas Sumatera Utara
Lampiran 1
Rangkaian keseluruhan pengirim
Universitas Sumatera Utara
Lampiran 2
Rangkaian keseluruhan penerima
Universitas Sumatera Utara
Lampiran 3.
Kode Program Pengirim Sinyal
/**********************************************************
// Arduino Brain Library - Brain Blinker
// Description: Basic brain example, blinks an LED on pin 13 faster as your "attention"
value increases.
// Adapted from the Blink without Delay example distributed with Arduino environment.
// More info: https://github.com/kitschpatrol/Arduino-Brain-Library
// Author: Eric Mika, 2010 revised in 2014
#include
#include
#define buzzer A0
#define led 10
int perhatian=0;
char *kirim;
// Set up the brain reader, pass it the hardware serial object you want to listen on.
Brain brain(Serial);
void setup() {
Serial.begin(9600);
vw_set_tx_pin(12);
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000);
// Bits per sec
Universitas Sumatera Utara
pinMode(13, OUTPUT);
pinMode(8, OUTPUT);
pinMode(led, OUTPUT);
digitalWrite(13, LOW);
digitalWrite(8, LOW);
while(brain.readSignalQuality()==200)
{
if (brain.update()) {
Serial.println(brain.readCSV());
Serial.print("Satu");
}
digitalWrite(led,HIGH);
}
while(brain.readSignalQuality()!=200)
{
if (brain.update()) {
Serial.println(brain.readCSV());
Serial.print("Satu");
}
digitalWrite(led,HIGH);
}
while(brain.readSignalQuality()!=0)
{
if (brain.update()) {
Universitas Sumatera Utara
Serial.println(brain.readCSV());
Serial.print("Dua");
}
digitalWrite(buzzer,HIGH);
}
delay(1000);
digitalWrite(buzzer,LOW);
}
byte counter = 0;
void loop() {
if (brain.update()) {
Serial.println(brain.readCSV());
if(brain.readSignalQuality() == 26 || brain.readSignalQuality() == 51 )
{
if(counter == 0)
{
kirim="1";
vw_send((uint8_t *)kirim,strlen(kirim));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13, HIGH);
delay(2000);
counter= 1;
}
else
{
Universitas Sumatera Utara
kirim="0";
vw_send((uint8_t *)kirim,strlen(kirim));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13, LOW);
delay(2000);
counter= 0;
}
}
if(brain.readSignalQuality() == 0 && brain.readAttention() > 80)
{
kirim="2";
vw_send((uint8_t *)kirim,strlen(kirim));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13, HIGH);
delay(2000);
}
}
}
Universitas Sumatera Utara
Lampiran 4
Kode Program penerima Sinyal
/**********************************************************
// receiver.pde
//
// Simple example of how to use VirtualWire to receive messages
// Implements a simplex (one-way) receiver with an Rx-B1 module
//
// See VirtualWire.h for detailed API docs
// Author: Mike McCauley (mikem@airspayce.com)
// Copyright (C) 2008 Mike McCauley
// $Id: receiver.pde,v 1.3 2009/03/30 00:07:24 mikem Exp $
#include
void setup()
{
vw_set_rx_pin(8);
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000);
vw_rx_start();
// Bits per sec
// Start the receiver PLL running
pinMode(16, OUTPUT);
analogWrite(15, 1000);
pinMode(18, OUTPUT);
Universitas Sumatera Utara
pinMode(17, OUTPUT);
pinMode(19, INPUT);
pinMode(20, INPUT);
digitalWrite(19, HIGH);
digitalWrite(20, HIGH);
int sw1 = digitalRead(20);
while(sw1 == 1)
{
sw1 = digitalRead(20);
digitalWrite(18, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(17, LOW);
}
digitalWrite(18, LOW);
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // Non-blocking
{
if(buf[0]=='1')
{
digitalWrite(16, HIGH);
}
Universitas Sumatera Utara
else if(buf[0]=='0')
{
digitalWrite(16, LOW);
}
else if(buf[0]=='2')
{
int sw2 = digitalRead(19);
while(sw2 == 1)
{
sw2 = digitalRead(19);
digitalWrite(18, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(17, HIGH);
}
digitalWrite(17, LOW);
delay(3000);
int sw1 = digitalRead(20);
while(sw1 == 1)
{
sw1 = digitalRead(20);
digitalWrite(18, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(17, LOW);
}
digitalWrite(18, LOW);
}
}
}
Universitas Sumatera Utara
Lampiran 5
Gambar alat pengirim sinyal
Universitas Sumatera Utara
Lampiran 6
a. Gambar alat penerima tampak depan
b. Gambar alat penerima tampak depan
Universitas Sumatera Utara