RANCANG BANGUN SISTEM CONVEYOR PENYORTIR BOX BERDASARKAN WARNA BERBASIS RASPBERRY PI PICO DAN ARM ROBOT

 

RANCANG BANGUN SISTEM CONVEYOR

PENYORTIR BOX BERDASARKAN WARNA

BERBASIS RASPBERRY PI PICO DAN ARM ROBOT

 

Dosen Pengampu :

Dr. Samuel Beta K., Ing. Tech, M.T.

 

Disusun Oleh

Kelompok 4 :

1. Annas Ade Iskandar                                RE-2C     4.34.23.2.03

2. Ganesha Keyzar Muhammad Al Faize  RE-2C     4.34.23.2.09

3. Muhammad Rizha Alfrendy                    RE-2C     4.34.23.2.16

4. Tegar Bagas Ksatria Arghawana             RE-2C     4.34.23.2.23

 

 

PROGRAM STUDI TEKNOLOGI REKAYASA ELAKTRONIKA

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI SEMARANG

2026

KATA PENGANTAR

Puji syukur kami panjatkan kepada Tuhan Yang Maha Esa atas rahmat dan karunia-Nya, sehingga proyek tugas besar berjudul “Rancang Bangun Sistem Conveyor Penyortir Box Berdasarkan Warna Berbasis Raspberry Pi Pico Dan Arm Robot” dapat diselesaikan dengan baik. Proyek ini merupakan upaya kami dalam mengaplikasikan prinsip-prinsip otomasi dan sistem kendali yang krusial bagi industri modern.

Sistem penyortiran otomatis ini dirancang menggunakan conveyor, sensor jarak, dan sensor warna TCS34725 untuk mendeteksi karakteristik box secara real-time. Melalui integrasi mikrokontroler Raspberry Pi Pico dan ESP, serta aktuator seperti servo dan lengan robot (arm robot), sistem mampu mengarahkan dan memindahkan barang ke kotak yang sesuai secara otomatis. Implementasi ini bertujuan mempercepat proses logistik sekaligus meminimalkan kesalahan manusia.

Keberhasilan proyek ini tentu tidak terlepas dari bimbingan dan dukungan berbagai pihak. Oleh karena itu, kami mengucapkan terima kasih yang sebesar-besarnya kepada dosen pengampu Dr. Samuel Beta Kuntardjo, Ing.Tech., M.T., serta kepada teman-teman yang telah berkolaborasi dalam pengerjaan proyek ini.

Semoga hasil dari proyek tugas besar ini dapat memberikan manfaat, baik sebagai referensi bagi mahasiswa lain maupun sebagai inspirasi untuk pengembangan teknologi penyortiran barang otomatis yang lebih canggih di masa depan. Kami juga berharap bahwa proyek ini dapat meningkatkan pemahaman kami tentang otomasi industri serta penerapan teknologi dalam dunia nyata.


BAB 1

PENDAHULUAN

1.1  Latar Belakang

Perkembangan pesat di era Revolusi Industri 4.0 menuntut berbagai sektor, khususnya manufaktur dan logistik, untuk terus meningkatkan efisiensi dan kecepatan operasional. Salah satu tahapan paling krusial dalam siklus produksi dan distribusi adalah proses pemilahan atau penyortiran barang. Secara konvensional, proses penyortiran yang mengandalkan tenaga manusia sering kali dihadapkan pada berbagai kendala, seperti keterbatasan stamina, waktu pemrosesan yang lambat, serta tingginya risiko kesalahan manusia (human error) dalam mengklasifikasikan barang secara visual. Oleh karena itu, transisi menuju sistem otomasi industri menjadi sebuah keharusan untuk menjamin presisi, konsistensi, dan efisiensi kerja.

Dalam sistem penyortiran otomatis, pendeteksian karakteristik fisik barang, seperti warna, merupakan parameter identifikasi yang sangat umum digunakan. Tantangan utama dalam perancangan sistem ini adalah bagaimana mensinkronkan antara pergerakan barang pada ban berjalan (conveyor), pembacaan sensor secara real-time, dan mekanisme pemindahan barang ke wadah yang tepat. Dibutuhkan sebuah sistem kendali terintegrasi yang mampu memproses data sensor dengan cepat dan memberikan instruksi aktuasi yang presisi pada perangkat mekanik.

Untuk menjawab kebutuhan dan tantangan tersebut, mikrokontroler Raspberry Pi Pico menawarkan solusi komputasi yang tangguh dan efisien. Dukungan bahasa pemrograman MicroPython pada lingkungan Thonny IDE memudahkan pengembangan algoritma kendali yang kompleks. Dalam rancang bangun ini, Raspberry Pi Pico diplot sebagai pengendali utama (master controller) yang mengelola operasional conveyor melalui driver motor MX1508. Sistem ini mengandalkan sensor Infrared (IR) untuk mendeteksi kedatangan kotak (box) di titik pembacaan, yang kemudian memicu sensor TCS34725 untuk mengekstraksi nilai spektrum warna RGB secara akurat.

Nilai tambah dan kompleksitas dari proyek ini terletak pada mekanisme eksekusi akhir (pick-and-place) yang mengimplementasikan sistem aktuasi lengan robot (robot arm) berbasis mikrokontroler ESP. Alih-alih hanya menggunakan tuas pendorong sederhana, sistem ini memanfaatkan komunikasi serial antara Raspberry Pi Pico dan ESP. Setelah Pico mengklasifikasikan warna box, data tersebut dikirimkan ke ESP yang bertindak sebagai pengendali lengan robot. Lengan robot ini kemudian mengeksekusi pergerakan kinematika secara otomatis untuk mengambil box dari ujung jalur conveyor dan meletakkannya secara presisi ke dalam kotak penyimpanan yang sesuai dengan warna box tersebut.

Integrasi antara berbagai komponen perangkat keras, protokol komunikasi antarmikrokontroler, dan sistem kendali aktuator ini merupakan bentuk aplikasi nyata dari keilmuan otomasi dan mekatronika. Berdasarkan pertimbangan tersebut, maka diusulkanlah sebuah proyek tugas besar dengan judul “Rancang Bangun Sistem Conveyor Penyortir Box Berdasarkan Warna Berbasis Raspberry Pi Pico”. Proyek ini diharapkan dapat menjadi purwarupa yang andal untuk merepresentasikan sistem logistik cerdas di dunia industri modern.

 

1.2  Tujuan

1. Merealisasikan purwarupa fisik sistem conveyor penyortir box berbasis Raspberry Pi Pico yang terintegrasi dengan mekanisme mekanik dan elektronik.

2. Mengimplementasikan penggunaan sensor TCS34725 dan sensor IR dalam sistem pembacaan karakteristik objek untuk meminimalisasi kesalahan klasifikasi warna pada proses penyortiran.

3. Menerapkan prinsip-prinsip sistem kendali (control systems) untuk mengatur kecepatan motor DC dan pergerakan sudut aktuator servo secara akurat.

4. Menyatukan alur kerja dua sistem mikrokontroler yang berbeda (Pico dan ESP) menjadi satu kesatuan sistem otomasi yang utuh, dari tahap deteksi, penyortiran, hingga pemindahan akhir oleh robot arm.

 

 

 

 

 

1.3  Rumusan Masalah

1. Bagaimana merancang dan membangun perangkat keras (hardware) sistem conveyor penyortir box otomatis menggunakan mikrokontroler Raspberry Pi Pico?

2. Bagaimana mengintegrasikan sensor Infrared (IR) dan sensor warna TCS34725 agar dapat mendeteksi keberadaan dan mengklasifikasikan warna box secara real-time dan presisi?

3. Bagaimana menyusun algoritma pengendalian motor conveyor melalui driver MX1508 serta pergerakan servo SG90 menggunakan bahasa pemrograman MicroPython pada Thonny IDE?

4. Bagaimana membangun sistem komunikasi dan koordinasi kerja antara Raspberry Pi Pico pada conveyor dengan mikrokontroler ESP pada robot arm untuk menyelesaikan siklus pemindahan barang?


BAB II

TINJAUAN PUSTAKA

2.1    Raspberry Pi Pico

Gambar 2.1 Raspberry Pi Pico

Raspberry Pi Pico adalah papan mikrokontroler berbasis cip RP2040 yang dikembangkan oleh Raspberry Pi Foundation. Mikrokontroler ini memiliki prosesor Dual-core ARM Cortex-M0+ dengan kecepatan clock hingga 133 MHz, RAM 264KB, serta memori flash eksternal. Keunggulan Pico dalam proyek otomasi adalah ketersediaan pin GPIO (General Purpose Input/Output) yang banyak, dukungan komunikasi antarmuka (I2C, SPI, UART), serta kemudahan pemrograman menggunakan MicroPython, menjadikannya sangat ideal sebagai master controller untuk memproses data sensor dan mengendalikan aktuator secara real-time.

2.2    ESP32

Gambar 2.2 ESP32

Modul ESP32 merupakan mikrokontroler berbiaya rendah yang dirancang untuk aplikasi berbasis Internet of Things (IoT) dan sistem kendali terpadu. Pada sistem penyortiran ini, mikrokontroler ESP difungsikan sebagai slave controller yang secara khusus bertugas mengendalikan lengan robot (robot arm). ESP menerima instruksi koordinat atau data warna dari Raspberry Pi Pico melalui komunikasi serial (UART) dan menerjemahkannya menjadi sinyal kendali PWM (Pulse Width Modulation) untuk menggerakkan sendi-sendi motor servo pada lengan robot.

 

2.3    Sensor Warna TCS34725

Gambar 2.3 Sensor TCS34725

TCS34725 adalah sensor pengenal warna presisi tinggi yang mampu mendeteksi spektrum cahaya merah, hijau, biru (RGB), dan Clear (cahaya putih). Sensor ini dilengkapi dengan filter pemblokir inframerah (IR-blocking filter) yang meminimalkan efek bias dari sumber cahaya eksternal, sehingga hasil pembacaan warna menjadi jauh lebih akurat dibandingkan sensor warna konvensional. Sensor ini berkomunikasi dengan mikrokontroler menggunakan antarmuka protokol I2C (Inter-Integrated Circuit).

2.4    Sensor Infrared

Gambar 2.4 Sensor Infrared

Sensor Infrared (IR) berfungsi sebagai pendeteksi halangan atau pendeteksi keberadaan objek. Sensor ini bekerja dengan memancarkan cahaya inframerah melalui LED transmitter, yang kemudian pantulan cahayanya (jika mengenai objek) akan ditangkap oleh photodiode (LED receiver). Dalam sistem conveyor, sensor ini difungsikan sebagai sakelar batas (limit switch non-kontak) untuk mendeteksi kapan box tiba di stasiun pembacaan warna atau di ujung conveyor.

2.5    Driver Motor MX1508

Gambar 2.5 Driver Motor MX1508

Modul driver motor ganda (H-Bridge) berukuran ringkas yang digunakan untuk mengatur kecepatan dan arah putaran motor DC penggerak conveyor. MX1508 dapat dikendalikan dengan sinyal PWM dari mikrokontroler dengan efisiensi tinggi pada tegangan rendah.

2.6    Motor Servo SG90

Gambar 2.6 Motor Servo SG90

Motor rotasi presisi yang memiliki sistem feedback internal (potensiometer). Motor ini digunakan untuk mengatur sudut gerbang pemilah di conveyor dan menggerakkan sendi-sendi mekanik (kinematika) pada lengan robot. Sudut putaran servo ditentukan oleh lebar pulsa (PWM) yang dikirimkan oleh mikrokontroler.

 

2.7    Komunikasi UART

UART adalah salah satu protokol komunikasi serial asinkron yang digunakan untuk mentransfer data antar perangkat elektronik. Komunikasi ini hanya membutuhkan dua jalur kabel, yaitu TX (Transmit) dan RX (Receive), ditambah jalur Ground (GND) bersama. Dalam proyek ini, protokol UART dimanfaatkan sebagai jembatan komunikasi data real-time antara Raspberry Pi Pico dan ESP, di mana data hasil pemilahan warna dari Pico dikirimkan ke ESP agar lengan robot dapat mengeksekusi proses pick-and-place ke wadah yang benar.

2.8    Software Thonny

Gambar 2.7 Software Thonny

MicroPython adalah implementasi perangkat lunak dari bahasa pemrograman Python 3 yang dioptimalkan agar dapat berjalan pada mikrokontroler dan lingkungan dengan sumber daya terbatas. Thonny IDE adalah perangkat lunak antarmuka (Integrated Development Environment) yang ramah pengguna, yang memungkinkan pengembang untuk menulis, menjalankan, dan melakukan proses debugging kode MicroPython secara langsung pada perangkat keras seperti Raspberry Pi Pico.

 

2.9    Arduino Ide

Gambar 2.8 Software Arduino Ide

Arduino IDE adalah perangkat lunak open-source yang digunakan untuk menulis, mengompilasi, dan mengunggah kode program ke dalam mikrokontroler. Meskipun pada awalnya dirancang khusus untuk keluarga papan Arduino, perangkat lunak ini memiliki fleksibilitas tinggi dan mendukung berbagai mikrokontroler pihak ketiga, termasuk modul ESP dan Raspberry Pi Pico, melalui instalasi board manager tambahan. Arduino IDE menggunakan bahasa pemrograman berbasis C/C++ yang telah disederhanakan dan didukung oleh komunitas yang sangat luas. Dalam proyek otomasi ini, Arduino IDE memudahkan pengembang untuk mengintegrasikan berbagai library bawaan untuk mengendalikan sensor, aktuator, dan menjalin komunikasi serial antarmikrokontroler.


BAB III

PERANCANGAN ALAT

3.1    Daftar Komponen

Komponen yang digunakan dalam perancangan alat :

1.     1x Raspberry Pi Pico

2.     1x Sensor warna TCS34725

3.     2x Sensor Infrared

4.     1x Driver MX1508

5.     1x ESP32

6.     1x Motor DC

7.     1x Motor Servo

8.     5x Motor Servo

 

3.2    Cara Kerja

Sistem penyortir boks ini beroperasi melalui dua proses utama yang berjalan secara bersamaan dan saling berkomunikasi menggunakan protokol UART. Proses dimulai dengan aktifnya konveyor yang membawa boks bergerak maju. Ketika sensor inframerah pertama (Infrared 1) mendeteksi kehadiran boks, konveyor akan dimatikan sejenak; sebuah motor servo kemudian membuka dan menutup penahan boks untuk menyejajarkan posisinya sebelum sensor warna melakukan pembacaan. Setelah warna teridentifikasi, konveyor kembali dijalankan hingga boks mencapai sensor inframerah kedua (Infrared 2) di ujung lintasan. Pada titik ini, konveyor kembali berhenti, dan mikrokontroler mengirimkan data jenis warna tersebut melalui UART ke sistem lengan robot. Di saat yang sama, sistem lengan robot yang terus bersiaga akan menerima data tersebut, lalu secara otomatis mengeksekusi gerakan spesifik untuk memindahkan boks sesuai dengan warnanya (merah, kuning, atau biru). Setelah seluruh rangkaian gerakan pemindahan selesai, lengan robot akan kembali ke posisi awal dan kembali bersiaga, sementara sistem konveyor mengulang siklusnya untuk memproses boks berikutnya.

 

 

 

 

 

3.3    Diagram Blok

Gambar 3.1 Diagram Blok Sistem

3.4    Flowchart

 

Gambar 3.2 Flowchart Sistem

 

 

 

3.5    Wiring

Gambar 3.3 Wiring Sistem

3.6    Skematik

Gambar 3.4 Skematik Sistem

3.7    Program

4   from machine import Pin, PWM, I2C, UART

5   import time

6    

7   # ==========================================

8   # 1. INISIALISASI PIN & KOMPONEN

9   # ==========================================

10   

11  # --- Komunikasi UART (Ke ESP32) ---

12  # Menggunakan UART0, Baudrate 115200, TX=GP0, RX=GP1

13  uart = UART(0, baudrate=115200, tx=Pin(0), rx=Pin(1))

14   

15  # --- Sensor IR ---

16  ir_bawah = Pin(3, Pin.IN, Pin.PULL_UP) # Mendeteksi box di terowongan

17  ir_ujung = Pin(2, Pin.IN, Pin.PULL_UP) # Mendeteksi box di ujung konveyor

18   

19  # --- Konveyor (MX1508) ---

20  in1 = Pin(16, Pin.OUT)

21  in2 = Pin(17, Pin.OUT)

22   

23  # --- Servo Penahan ---

24  pin_servo = Pin(11)

25  servo = PWM(pin_servo)

26  servo.freq(50)

27   

28  # --- Sensor Warna (TCS34725) ---

29  i2c = I2C(1, scl=Pin(19), sda=Pin(18), freq=100000)

30  TCS_ADDR = 0x29

31  CMD_BIT = 0x80

32   

33  # ==========================================

34  # 2. FUNGSI-FUNGSI KONTROL

35  # ==========================================

36   

37  # --- Fungsi Konveyor ---

38  def konveyor_maju():

39      in1.value(1) 

40      in2.value(0)

41   

42  def konveyor_mati():

43      in1.value(0) 

44      in2.value(0)

45   

46  # --- Fungsi Servo ---

47  def set_sudut_servo(sudut):

48      if sudut < 0: sudut = 0

49      elif sudut > 180: sudut = 180

50          

51      min_duty = 1638 

52      max_duty = 8192 

53      duty = int(min_duty + (max_duty - min_duty) * (sudut / 180))

54      servo.duty_u16(duty)

55   

56  def penahan_buka():

57      set_sudut_servo(90)

58   

59  def penahan_tutup():

60      set_sudut_servo(0)

61   

62  # --- Fungsi Sensor Warna ---

63  def init_sensor_warna():

64      try:

65          i2c.writeto_mem(TCS_ADDR, CMD_BIT | 0x00, bytes([0x03]))

66          time.sleep_ms(10)

67          return True

68      except Exception as e:

69          print("Gagal menemukan TCS34725. Cek kabel!")

70          return False

71   

72  def baca_raw_data():

73      data = i2c.readfrom_mem(TCS_ADDR, CMD_BIT | 0x14, 8)

74      c = data[1] << 8 | data[0]

75      r = data[3] << 8 | data[2]

76      g = data[5] << 8 | data[4]

77      b = data[7] << 8 | data[6]

78      return r, g, b, c

79   

80  def deteksi_warna():

81      r, g, b, c = baca_raw_data()

82      

83      if c == 0: return "GELAP"

84          

85      r_norm = int((r / c) * 255)

86      g_norm = int((g / c) * 255)

87      b_norm = int((b / c) * 255)

88      

89       # 1. RANGE MERAH (Target: R=230 | G=159 | B=160)

90      # Ciri khas: Nilai R sangat tinggi (di atas 215), sedangkan G dan B di bawah 175

91      if (r_norm > 215) and (g_norm < 175) and (b_norm < 175):

92          return "MERAH"

93          

94      # 2. RANGE KUNING (Target: R=189 | G=152 | B=131)

95      # Ciri khas: Nilai B adalah yang paling rendah (di bawah 145)

96      elif (170 <= r_norm <= 210) and (135 <= g_norm <= 170) and (b_norm <= 145):

97          return "KUNING"

98          

99      # 3. RANGE BIRU (Target: R=200 | G=194 | B=200)

100    # Ciri khas: Semua nilai (R, G, B) tinggi, seimbang, dan B di atas 180

101    elif (180 <= r_norm <= 215) and (180 <= g_norm <= 215) and (b_norm > 180):

102        return "BIRU"

103       

104    else:

105        return "TIDAK_DIKETAHUI"

106 

107 

108# ==========================================

109# 3. LOOPING UTAMA (ALUR KERJA SISTEM)

110# ==========================================

111 

112print("Memulai Sistem Penyortir Barang...")

113 

114# Setup Awal

115penahan_tutup()

116if not init_sensor_warna():

117    print("Sistem dihentikan karena sensor warna error.")

118    while True: pass

119 

120IR_TERDETEKSI = 0

121warna_simpanan = "TIDAK_DIKETAHUI" # Variabel untuk menyimpan hasil baca warna sementara

122 

123try:

124    while True:

125        print("Menunggu box masuk...")

126        konveyor_maju()

127       

128        # 2. Tunggu sampai box terdeteksi di terowongan

129        while ir_bawah.value() != IR_TERDETEKSI:

130            time.sleep(0.05)

131           

132        print("Box masuk terowongan!")

133        time.sleep(0.2)  # JEDA 500 ms (0.2 detik) sebelum mematikan konveyor

134        konveyor_mati() # 3. Konveyor mati

135       

136        # 4. Servo membuka penahan

137        penahan_buka()

138        time.sleep(1)

139        penahan_tutup()

140       

141        # 5. Jeda 5 detik untuk sensor warna mendeteksi

142        print("Menunggu 2 detik untuk pembacaan warna...")

143        time.sleep(2)

144       

145        # 6. Baca warna lalu SIMPAN dulu hasilnya (belum dikirim)

146        warna_simpanan = deteksi_warna()

147        print(f"Warna terdeteksi: {warna_simpanan} (Disimpan)")

148       

149        # 7. Konveyor jalan lagi membawa box ke ujung

150        print("Membawa box ke ujung...")

151        konveyor_maju()

152       

153        # 8. Tunggu sampai box sampai di ujung (IR Ujung Terdeteksi)

154        while ir_ujung.value() != IR_TERDETEKSI:

155            time.sleep(0.05)

156           

157        print("Box TERDETEKSI di IR Ujung!")

158       

159        # --- KIRIM DATA VIA UART KETIKA IR UJUNG TERDETEKSI ---

160        # Menambahkan '\n' (newline) agar ESP32 tahu akhir dari pesan data

161        data_kirim = warna_simpanan + "\n"

162        uart.write(data_kirim)

163        print(f"UART -> Mengirim data ke ESP32: {warna_simpanan}")

164       

165        # 9. Konveyor mati, berikan jeda untuk lengan robot mengambil box

166        print("Konveyor berhenti. Lengan Robot dipersilakan mengambil.")

167        konveyor_mati()

168       

169        # Jeda 5 detik waktu untuk robot mengambil box

170        time.sleep(5)

171       

172        print("-" * 35)

173 

174except KeyboardInterrupt:

175    print("\nProgram dihentikan oleh pengguna.")

176    konveyor_mati()

177    servo.deinit()

 


BAB IV

KESIMPULAN

Kesimpulan dari proyek ini adalah berhasilnya perancangan purwarupa sistem penyortiran otomatis yang mengintegrasikan mikrokontroler Raspberry Pi Pico dan ESP32 untuk mendeteksi serta memindahkan barang berdasarkan spesifikasi warnanya. Dalam pengoperasiannya, Raspberry Pi Pico bertindak sebagai pengendali utama (master controller) yang memproses pembacaan dari sensor inframerah (IR) dan sensor warna presisi TCS34725, serta mengatur pergerakan konveyor menggunakan driver motor MX1508. Mikrokontroler ESP32 difungsikan sebagai pengendali lengan robot (slave controller) yang menerima data instruksi dari Raspberry Pi Pico melalui protokol komunikasi UART. Instruksi tersebut kemudian diterjemahkan oleh ESP32 untuk mengeksekusi sistem aktuasi lengan robot (pick-and-place) menggunakan motor servo SG90 secara presisi. Secara keseluruhan, implementasi sistem otomasi yang terintegrasi ini menjadi solusi efektif untuk mempercepat proses logistik, menjaga konsistensi penyortiran, dan meminimalisasi risiko kesalahan manusia (human error) yang sering terjadi pada proses penyortiran konvensional.


BAB V

LAMPIRAN

6.1    Link PPT

https://canva.link/pdef7sv8kuuwuve

 

6.2    Link YouTube

https://youtube.com/shorts/Wsp4CuswxYA?si=y0OL-TcWFwdZA956

Komentar

Postingan populer dari blog ini

SISTEM KONVEYOR OTOMATIS DENGAN SENSOR INFRARED DAN KONTROL MANUAL

Pompa Air Otomatis Berbasis ATMega8535

SISTEM PEMANTAUAN SUHU DAN KELEMBABAN PADA SUATU RUANGAN MENGGUNAKAN SENSOR DHT22 BERBASIS MIKROKONTROLLER ARDUINO UNO ATMEGA328P