Workshop Interface Selasa, 26 Maret 2019 Lab. H 102 Anggota : 1. Antoni Yoga Setiawan
(1110171004)
2. M. Sholahuddin S
(1110171011)
3. Ninik Fitriana
(1110171019)
4. Alif Ahmad Hakim
(1110171024) Percobaan 1 Komunikasi Serial UART
Tugas 1 Program yang digunakan : #include <stdio.h> #include <string.h> #include <errno.h> #include <wiringPi.h> #include <wiringSerial.h> int ledPin1 = 8 ; int buttonPin == HIGH ;
void setup() { pinMode (ledPin1,OUTPUT);
} int main () { int fd; int count; if((fd = serialOpen ("/dev/ttyS0",115200)) <0) { fprintf(stderr,"unable to open serial device:%s\n",strerror (errno)); return 1 ; } if(wiringPiSetup()==-1) {
fprintf(stdout,"unable to start wiringPi:%s\n",strerror (errno)); return 1; } if (digitalRead (buttonPin) == 0) { cout << "TOMBOL AKTIF" << endl; digitalWrite(ledPin1,LOW);}
else if(digitalRead(buttonPin)==1) {cout <<"TOMBOL TIDAK AKTIF"<< endl; digitalWrite(ledPin1,HIGH);}
printf ("\n"); return 0; } Output yang dihasilkan :
Pengetesan Pada modul rasberry pi pada Rx dan Tx
Outup saat Rx Boudrate 1200
Boudrate pada Rx dan Tx sama antara PC 1 dan 2 3. Tugas 2 Program yang digunakan : #include <stdio.h> #include <string.h> #include <errno.h> #include <wiringPi.h> #include <wiringSerial.h>
int main () { int fd; int count; unsigned int nextTime; int ledPin = 26; int Switch = 28; int ledPin2 = 27; int receive; if ((fd =serialOpen ("/dev/ttyS0" ,115200)) < 0) { fprintf (stderr, " unable to open serial device: %s\n", strerror (errno)); return 1; } if (wiringPiSetup () == -1) { fprintf(stdout, "unable to start wiringPi: %s\n", strerror (errno));
return 1; } pinMode(Switch,INPUT); pinMode(ledPin,OUTPUT); pinMode(ledPin2,OUTPUT); nextTime = millis () + 300; while(1) { if (millis () > nextTime) { if (digitalRead(Switch)==1){ digitalWrite(ledPin,HIGH); printf("wekku OFF
");
count=1;} else {digitalWrite(ledPin,LOW); printf("wekku ON
");
count=99;} printf("\nout: %3d: ",count); fflush (stdout); serialPutchar (fd, count); nextTime += 300; } delay (3); while (serialDataAvail (fd)) { receive = serialGetchar (fd); printf("-> in %3d ", receive) ; fflush (stdout); if (receive==1){ digitalWrite(ledPin2,HIGH); printf("wekmu OFF ");} else{ digitalWrite(ledPin2,LOW); printf("wekmu ON ");
} } } printf ("\n"); return 0 ; }
Output yang dihasilkan :
A
C A : Kondisi awal saat modul belum menerima data B : Kondisi saat modul menerima data C dan D : Display saat modul
Analisa Data
B
D
Berdasarkan percobaan dimana mengenal pemograman rasberry pi dengan bahasa C++ diatas dapat diketahui bahwa : -
Pada percobaan pertama,melakukan komunikasi dengan diri sendiri (rasberry pi dengan rasberry pi) dengan menyambungakn port Rx dan Tx pada modul,lalu melakukan running program dan melihat apakah hasil dari input dan output telah sama.
-
Pada percobaan kedua dilakukan komunikasi antara PC 1 dan PC 2,dimana untuk melkakuakn komunikasi jika PC1 kabel jumper hitam adalah Tx maka pada PC2 kabel jumper hitam adalah Rx hal ini juga berlaku pada kabel jumper putih,pada tahap awal dilakukan komunikasi dengan nilai boudrate yang sama,dengan hasil input dan output pada PC1 dan PC2 adalah sama,saat nilai boudrate dibedakan,maka output pada salah satu pc cenderung terdapat delay.
-
Pada percobaan ketiga dilakukan sama seperti percobaan 2,namun yang awalnya digunakan digital input,maka diubah menjadi buttonpin,hal ini dilakukan untul melihat apakah respon yang ditampilkan akan sama antara transmitter dan receiver,terbukti pada percobaan tersebut saat transmitter menekan pushbutton maka indikator pada LED akan menyala dan pada display akan terlihat indikator jika data telah diterima.
Kesimpulan Berdasarkan percobaan dan analisa yang telah dilakukan dapat diambil kesimpulan bahwa raspberry pi merupakan modul micro computer yg juga mempunyai input output digital port seperti
pada board microcontroller. Diantara kelebihan Rasberry Pi dibanding board
microcontroller yg lain yaitu mempunyai Port/koneksi untuk display berupa Monitor PC serta koneksi USB untuk Keyboard serta Mouse.Untuk komunikasi antar rasberry pi dapat digunakan fitur Rx dan Tx selebihnya digunakan fitur yang sama,Seperti halnya mengakses Lampu LED untuk mengatur dalam keadaan mati dan nyala dari beberapa pin GPIO yang terdapat pada rasberry pi, dimana hasilnya dapat diketahui pada monitor dari program yang telah dimasukkan sebelumnya.