Notifications
Clear all

[Source Code] Ultimate 4s Line Follower

Angga Priyatmoko
(@priyatmokoangga)
Admin

Berikut ini contoh source code yang kami sediakan untuk robot ultimate 4s.

Program sederhana untuk membuat robot dapat berjalan mengikuti garis hitam dengan kendali PD.

Apa saja yang perlu disiapkan ?

  1. Library LCD Oled 0.96' (download dibawah) kemudian extract di document > arduino > libraries
  2. Source Code (download dibawah) kemudian buka menggunakan menggunakan Arduino IDE
  3. Library Hardware ichibot download disini 

Cara penggunaan ?

  1. Upload program ke robot.
  2. Cari nilai max dan min pembacaan sensor

    Mencari nilai max dengan cara letakan robot pada dasar track bewarna hitam, kemudian catat hasil pembacaan semua sensor.

    Mencari nilai min dengan cara letakan robot pada dasar track bewarna putih, kemudian catat hasil pembacaan semua sensor.

  3. Masukan nilai limit pada program dengan rumus dibawah ini
    Limit = (pembacaan max + Pembacaan min) / 2
  4. Jalankan robot pada track sederhana.

 

#define OLED_RESET 4
Adafruit_SSD1306 lcd(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
int adcValue[14];
char buff[100];

#define PIN_PWM_MOTOR_L 14
#define PIN_DIR_MOTOR_L 15

#define PIN_PWM_MOTOR_R 13
#define PIN_DIR_MOTOR_R 12

void setup() {
Serial.begin(9600);
if (!lcd.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
Serial.println(F("SSD1306 allocation failed"));
for (;;);
}
lcd.clearDisplay();
pinMode(PIN_DIR_MOTOR_L, OUTPUT);
pinMode(PIN_PWM_MOTOR_L, OUTPUT);
pinMode(PIN_DIR_MOTOR_R, OUTPUT);
pinMode(PIN_PWM_MOTOR_R, OUTPUT);
pinMode(PIN_BTN_OKR, INPUT_PULLUP);

lcd.setTextColor(WHITE);
lcd.setRotation(2);
lcd.clearDisplay();
lcd.display();

setMotor(0, 0);

lcd.setCursor(34, 15);
lcd.print(F("HELLO WORLD"));
lcd.setCursor(0, 30);
lcd.print(F("ICHIBOT LINE FOLLOWER"));
lcd.setCursor(25, 45);
lcd.print(F("WWW.ICHIBOT.ID"));
lcd.display();

delay(1000);
lcd.clearDisplay();
lcd.display();
}

 

Pinout Atemega 1284p DIP

Pinout Atemega 1284p SMD

Quote
Topic starter Posted : 09/02/2020 4:10 am
Angga Priyatmoko
(@priyatmokoangga)
Admin

Library LCD Oled Adafruit_SSD1306-master

Tambahkan di libraries arduino

ReplyQuote
Topic starter Posted : 09/02/2020 4:11 am
Angga Priyatmoko
(@priyatmokoangga)
Admin

Library LCD Oled Adafruit-GFX-Library-master

Tambahkan di libraries arduino

ReplyQuote
Topic starter Posted : 09/02/2020 4:12 am
Angga Priyatmoko
(@priyatmokoangga)
Admin

Tambahan detail pin tombol

#define PIN_BTN_UPL 21
#define PIN_BTN_DOWNL 19
#define PIN_BTN_OKL 20

#define PIN_BTN_UPR 2
#define PIN_BTN_DOWNR 11
#define PIN_BTN_OKR 3

ReplyQuote
Topic starter Posted : 16/02/2020 7:29 am
Ryo Chandra
(@ryo-chandra)
New Member

@priyatmokoangga mau tanya mas. ini source code nya waktu di compile banyak error nya. mungkin ada yang lain. buat line follower single line

ReplyQuote
Posted : 26/11/2020 9:20 am
Angga Priyatmoko
(@priyatmokoangga)
Admin

@ryo-chandra errornya seperti apa ya ? bisa kirim SS nya ?

 

kalo tidak coba pakai yang ini https://ichibot.id/forum/postid/108/

ReplyQuote
Topic starter Posted : 26/11/2020 10:07 am
Ryo Chandra
(@ryo-chandra)
New Member

@priyatmokoangga sudah bisa mas. sekarang tidak paham yang masalah limit value. susah memahami penjelasan nya ini

/*
ATUR LIMIT SENSOR PADA limit_value DIBAWAH INI MULAI DARI SENSOR PALING KIRI HINGGA PALING KANAN
CARI NILAI TERTINGGI PEMBACAAN SENSOR SAAT SENSOR TERKENA GARIS/BIDANG HITAM, DAN
CARI NILAI TERENDAH PEMBACAAN SENSOR SAAT SENSOR TERKANA GARIS/BIDANG PUTIH

RUMUS LIMIT = (PEMBACAAN TERTINGGI + PEMBACAAN TERENDAH) / 2

UNTUK MENJALANKAN ROBOT GUNAKAN TOMBOL CANCEL (OKR)
*/

int limit_value[14] = {600, 600, 600, 750, 600, 800, 750, 600, 600, 600, 600, 600, 600, 600};

ReplyQuote
Posted : 02/12/2020 6:08 am
shmukti
(@shmukti)
Admin

@ryo-chandra di isi saja 500 semuanya, nanti kalo ada yang kurang peka sensornya maka dikurangi nilainya. kalo terlalu peka sensornya ditambahkan nilainya.

ReplyQuote
Posted : 02/12/2020 6:46 am
Share: