Anda di halaman 1dari 5

BAB VI

Pemrograman NXT Dengan Bahasa C


6.1. Aplikasi
Selain menggunakan aplikasi Lego Mindstorms NXT Programming yang berbasis GUI,
NXT juga bisa diprogram menggunakan bahasa C. Adupun salah satu aplikasi yang dapat
digunakan adalah aplikasi bernama BricxCC (Bricx Command Center).

Struktur Penulisan Program :


task main()
{
Statement1;
Statement2;
Statement3;
}

6.2. Setting Program


Saat pertama kali program dijalankan, pendeteksian Brick akan langsung dilakukan.
Tentukan port dimana Brick terhubung (bisa diset secara Automatic). Kemudian pilih Tipe Brick
yang digunakan yaitu NXT. Pilih Firmware Standar kemudian tekan OK.

Gambar 6.1 Setting program BricxCC


6.3. Pemrograman C
A. LCD (Display NXT Brick)
• Sintaks LCD
ClearScreen();//Hapus layar
ClearLine(“line”);//Hapus baris
TextOut(“x”, “line”, ”txt”, ”option”); //Tampilkan
Teks NumOut(“x”, “Line”, “val”, “option”); //Tampilkan
nomor ResetScreen(); //reset layar

• Contoh Program
task main(){
while(true)
{
TextOut(16, LCD_LINE4, “Lab. Robotik”); //Tampilkan teks Lab. Robotik
NumOut(38, LCD_LINE4, 2019); //tampilkan nomor 2019
}
}

B. Button (Tombol NXT Brick)


• Sintaks Button
ButtonPressed("btn"); //tekan button
ButtonCount("btn"); //count tekan button

• Contoh Program Button


Pressed task main() {
while (true)
{
if (ButtonPressed(BTNRIGHT,false)) { //tekan tombol kanan
ClearScreen(); //hapus layar
TextOut(15, LCD_LINE4, "Tombol Kanan");
}
if (ButtonPressed(BTNLEFT,false)) { //tekan tombol kiri
ClearScreen(); //hapus layar
TextOut(17, LCD_LINE4,"Tombol Kiri");
}
if (ButtonPressed(BTNCENTER,false)) { //tekan tombol pilih
ClearScreen(); //hapus layar
TextOut(15, LCD_LINE4,"Tombol Pilih");
}
}
}

Page 2|5
C. Motor
• Sintaks Control Motor
OnFwd("ports", "pwr"); //motor maju
OnRev("ports","pwr"); //motor mundur
OnFwdSync("ports", "pwr", "turnpct"); //motor maju dgn sync
OnRevSync("ports", "pwr", "turnpct"); //motor mundur dgn sync
RotateMotor("ports", "pwr", "angle"); //rotasi motor
Off("ports"); //motor stop

• Contoh Program
task main(){
OnFwd(OUT_AB,50);
Wait(2000); //delay 2000ms = 2 detik
OnRev(OUT_AB,50); Wait(2000);
Off(OUT_AB);
Wait(500); //delay500ms = 0.5 detik
OnFwdSync(OUT_AB,50,35);
Wait(2000);
}

D. Sensor Touch
• Sintaks Sensor Touch
SetSensorTouch("port"); //Setting sensor touch
SetSensor("port", SENSOR_TOUCH); //Setting sensor touch
SetSensorType("port", SENSOR_TYPE_TOUCH); //Setting sensor
touch Sensor("port"); //Baca Sensor

• Contoh Program
task main(){
SetSensorTouch(IN_1); //setting sensor while(true)
{
OnFwd(OUT_AB,50);
if (Sensor(IN_1)==1)
{
Off(OUT_AB); //motor stop
Wait(500); //delay 500ms = 0.5 detik
OnRev(OUT_AB,50);
Wait(2000); //delay 2000ms = 2 detik
OnFwdSync(OUT_AB,50,-35);
Wait(2000); }}}

Page 3|5
E. Sensor Light
• Sintaks Sensor Light
SetSensorLight("port"); //Setting sensor light
SetSensor("port", SENSOR_LIGHT); //Setting sensor light
SetSensorType("port", SENSOR_TYPE_LIGHT_ACTIVE); //lampu Led ON
SetSensorType("port", SENSOR_TYPE_LIGHT_INACTIVE); //lampu Led OFF
Sensor("port"); //Baca Sensor

• Contoh Program
task main() {
SetSensorLight(IN_1);
while(true)
{
Off(OUT_AB); if(Sensor(IN_1)>40)
{
OnFwd(OUT_A,40); Wait(200);
}
else
{
OnFwd(OUT_B,40); Wait(200);
}}}

F. Sensor Sound
• Sintaks Sensor Sound
SetSensorSound("port"); //setting sensor sound
SetSensorType("port", SENSOR_TYPE_SOUND_DB); //(DB spt
Kilometer)
SetSensorType("port", SENSOR_TYPE_SOUND_DBA); (DBA spt Meter)
Sensor("port"); //Baca Sensor

• Contoh Program
void delay(int x) { Wait(x*1000); //x*1000ms
• }
task main() {
SetSensorSound(IN_4);
• while (true)
{
if (Sensor(IN_4)>=60)
{
OnFwd(OUT_AB,50); delay(3); //3 detik
}}}

Page 4|5
G. Sensor Ultrasonik
• Sintaks Sensor Ultrasonic
SetSensorLowspeed("port"); //setting sensor US
SensorUS("port"); //baca nilai sensor

• Contoh Program
void check() {
int ka=0,ki=0;
RotateMotor(OUT_A, 30, -90);
Wait (200);
ka=SensorUS(IN_1);
RotateMotor(OUT_A, 30, 180);
Wait(200);
ki=SensorUS(IN_1);
RotateMotor(OUT_A, 30, -90);
if (ka>ki){
OnFwdSync(OUT_BC,50,30);
}
else {
OnFwdSync(OUT_BC,50,-30);
}
}
task main() {
SetSensorLowspeed(IN_1);
TextOut(30, LCD_LINE4, "WELCOME");
TextOut(9, LCD_LINE5, "Robot Explorer");
TextOut(20, LCD_LINE6, "by Robotic Laboratory");
while (true)
{
OnRev(OUT_BC,60);
if (SensorUS(IN_1)<=30) { Off(OUT_BC);
check();
Wait(1000);
}}}

Page 5|5

Anda mungkin juga menyukai