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
Komentar
Posting Komentar