pak agus job 14 15

Upload: jessica-stephens

Post on 14-Apr-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 Pak Agus Job 14 15

    1/8

    LAPORAN MIKROKONTROLER DAN ANTARMUKA 2

    STAGE 12-15

    NO. KELOMPOK : 07KELAS : Telkom 5CNAMA KELOMPOK : Kenneth Januarima

    : Novrian Ikhsan Prasetyo

    : Pulung Pawestri Utomo

    TEKNIK TELEKOMUNIKASI

    POLITEKNIK NEGERI JAKARTA

    Tahun 2013-2014

  • 7/29/2019 Pak Agus Job 14 15

    2/8

    P.14

    Menampilkan posisi dua buah push button di Arduino Uno ke

    Serial Monitor

    (dengan R pull-up internal)

    /*

    * Uses internal pullups to read 2 pushbutton states,

    * Comunicate the state of the button using serial interface and

    * lights on/off 2 LEDs associated with the buttons

    */

    #define LEDPIN1 13

    #define LEDPIN2 12

    #define INPIN1 2

    #define INPIN2 3

    int state1 = HIGH;

    int state2 = HIGH;

    void setup() {

    Serial.begin(9600);

    pinMode(LEDPIN1, OUTPUT);

    pinMode(LEDPIN2, OUTPUT);

    pinMode(INPIN1, INPUT);

    digitalWrite(INPIN1, HIGH); // enable pullup resitor

    pinMode(INPIN2, INPUT);

    digitalWrite(INPIN2, HIGH); // enable pullup resitor

    }void loop() {

    delay(10); // debounces switches

    int val1 = digitalRead(INPIN1);

    int val2 = digitalRead(INPIN2);

    if(state1 != val1 || state2 != val2) {

    state1 = val1;

    state2 = val2;

    digitalWrite(LEDPIN1, val1); // turns the LED on or off

    digitalWrite(LEDPIN2, val2); // turns the LED on or off

    Serial.print(val1, DEC);Serial.println(val2, DEC);

    }

    }

  • 7/29/2019 Pak Agus Job 14 15

    3/8

    ANALISA

    Job ini secara garis besar hampir sama seperti job 13. Perbedaan yang terlihat di job ini

    hanya terletak di INPIN 1 dan INPIN 2, dimana INPIN 1 terletak di pin 2 sedangkan INPIN 1

    terletak di pin 3. Perbedaan terletak di output dari INPIN tersebut. Jika di job sebelumnya

    output dari INPIN tidak diberi keterangan HIGH, maka di jpb ini diberi keterangan HIGH. Hal ini

    Membuat kodingan

    dengan arduino

    sketch

    Membuat

    rangkaian

    Hubungkan arduino

    dengan computer

    dan rangkaian

    Upload

    kodingan

    Lihat output pada LED

    dan gunakan pushbutton

    untuk mengatur

  • 7/29/2019 Pak Agus Job 14 15

    4/8

    dikarenakan kondisi awal dari LED adalah menyala, maka output dari INPIN tersebut harus

    diberikan keterangan.

    Alasan kondisi awal LED menyala, bisa dilihat dari rangkaian job ini yang juga sedikit

    berbeda dari job sebelumnya. Jika di job sebelumnya menggunakan tahanan di pin 2 dan pin 3,

    maka di job ini tidak menggunakan tahanan tersebut. Hal ini menyebabkan kondisi awal dari

    LED pada job ini adalah menyala. Dengan ini juga, dapat membuktikan pada rangkaian arduino

    dapat pull up maupun pull down tanpa menggunakan resistor. Hal ini juga menyebabkan

    perbedaan pengkodingan dengan job sebelumnya.

    P.15

    Program Simple Video game berbasis Arduino dan Processing

    Sketch arduino

    /*

    * Uses internal pullups to read 4 pushbutton states,

    * Comunicate the state of the buttons using serial interface

    */

    #define IN1 2 // fire

    #define IN2 3 // right

    #define IN3 4 // up

    #define IN4 5 // left

    #define IN5 6 // down

    int state1 = HIGH;

    int state2 = HIGH;

    int state3 = HIGH;

    int state4 = HIGH;

    int state5 = HIGH;

    void setup() {

    Serial.begin(9600);

    pinMode(IN1, INPUT);

    digitalWrite(IN1, HIGH); // enable pullup resitor

    pinMode(IN2, INPUT);digitalWrite(IN2, HIGH); // enable pullup resitor

    pinMode(IN3, INPUT);

    digitalWrite(IN3, HIGH); // enable pullup resitor

    pinMode(IN4, INPUT);

    digitalWrite(IN4, HIGH); // enable pullup resitor

    pinMode(IN5, INPUT);

    digitalWrite(IN5, HIGH); // enable pullup resistor

  • 7/29/2019 Pak Agus Job 14 15

    5/8

    }

    void loop() {

    delay(10); // debounces switches

    int val1 = digitalRead(IN1);

    int val2 = digitalRead(IN2);

    int val3 = digitalRead(IN3);int val4 = digitalRead(IN4);

    int val5 = digitalRead(IN5);

    // check if we had a change in state

    if(state1 != val1 || state2 != val2 || state3 != val3 || state4 != val4 || state5 !=

    val5) {

    state1 = val1;

    state2 = val2;

    state3 = val3;

    state4 = val4;

    state5 = val5;

    /*

    we create a 8 bit word (1 byte) whose 5 right bit represent

    from right to left buttons fire, right, up, left, down status:

    0 if pressed, 1 if not pressed

    remaining bits are unused

    I'm not that expert in bit operations, there's probably a

    better way (faster) to do the following.

    */

    unsigned int state = (val5

  • 7/29/2019 Pak Agus Job 14 15

    6/8

    int c = 0;

    void setup()

    {

    size(600, 600);

    myPort = new Serial(this, "/dev/ttyUSB5", 9600);

    }void draw() {

    if(myPort.available() > 0) {

    state = myPort.read();

    println(state);

    println(binary(state));

    fire = state & 1;

    right = (state & 2) >> 1;

    up = (state & 4) >> 2;

    left = (state & 8) >> 3;

    down = (state & 16) >> 4;

    print(fire);

    print(right);

    print(up);

    print(left);

    println(down);

    }

    c = (fire == 0) ? 250 : 0;

    if(right == 0 && left == 1) {

    x = x + 2;

    }if(up == 0 && down == 1) {

    y = y - 2;

    }

    if(left == 0 && right == 1) {

    x = x - 2;

    }

    if(down == 0 && up == 1) {

    y = y + 2;

    }

    background(255, 255, 150);

    fill(c);

    rect(x, y, 50, 50);

    }

  • 7/29/2019 Pak Agus Job 14 15

    7/8

    ANALISA

    Pada job kali ini, akan melakukan percobaan tentang program sederhana video game

    berbasis arduino. Pada job kali ini, menggunakan 2 aplikasi, yaitu arduino sketch dan

    processing.

    Membuat kodingan

    dengan arduino

    sketch

    Upload kodingan

    tersebut ke arduino

    Membuat kodingan

    dengan processor

    Upload

    processor

    Terlihat output

    yang dihasilkan

  • 7/29/2019 Pak Agus Job 14 15

    8/8

    Pertama adalah membuat kodingan di arduino sketch seperti di atas. pada kosingan tersebut,

    terlihat bahwa IN1 untuk fungsi menembak, IN2 untuk bergerak ke kanan, IN3 untuk bergerak

    ke atas, IN4 untuk bergerak ke kiri, dan IN5 untuk bergerak ke kanan. Sedangkan untuk pin,

    digunakan pin 2 sampai pin 6 untuk IN1 sampai IN5. Pada void setup digunakan seperti pada job

    sebelumnya. Sedangkan untuk void loop menggunakan int val1 membaca IN1 dan seterusnya.Kemudian memasukkan state1 adalah val1, yang berarti jika state 1 high maka val1 berfungsi.

    Dan perintah state dalam bentuk byte.

    Kodingan untuk processing cukup sederhana, setelah mengatur serial class, kemudian

    atur ukuran untuk output (disini menggunakan 600x600). Setelah itu di void draw atur state

    membaca dari myport dan atur arah sesuai dengan biner. Kemudian atur dengan if sesuai

    dengan int x dan y. Untuk arahnya, atur kebalikan dari arah tersebut. Jika ke kiri adalah 0, maka

    ke kanan adalah 1. Setelah itu atur warna background.

    Jika semuanya sudah dilakukan, upload sketch ke arduino, kemudian upload diprocessing.

    KESIMPULAN

    Rangkaian arduino dapat pull up maupun pull down tanpa menggunakan resistor Sketch arduino dapat menggunakan processing sebagai outputnya