กลับไปหน้ารวมไฟล์
transporter-karnaugh-map-25005d.md

โลจิสติกส์แบบอัลกอริทึม: Transporter ที่ถูกปรับให้เหมาะสมด้วย Karnaugh Map

ระบบอัตโนมัติในอุตสาหกรรมสมัยใหม่พึ่งพาการผสมผสานที่ลงตัวระหว่างตรรกะบูลีนและการเคลื่อนไหวทางกายภาพ Transporter นี้คือยานพาหนะอัจฉริยะอัตโนมัติที่ออกแบบมาเพื่อเดินตามเส้นทางโลจิสติกส์สีดำและหลบหลีกสิ่งกีดขวาง สิ่งที่ทำให้โปรเจกต์นี้เจ๋งคือการประยุกต์ใช้การปรับให้เหมาะสมด้วย Karnaugh Map (K-Map) อย่างจริงจัง แสดงให้เห็นว่าโค้ด "If-Then" ที่ซับซ้อนสามารถกลั่นกรองออกมาเป็นสมการลอจิกที่มีประสิทธิภาพสูงสุดได้ยังไง

ระบบการรับรู้ขั้นสูง

Transporter รักษาการรับรู้สภาพแวดล้อม 360 องศาผ่านเซ็นเซอร์หลายโหมด:

  1. ไลน์แทรกกิ้งสามตัว (KY-033): เซ็นเซอร์ IR สามตัวที่ติดตั้งใต้ท้องรถให้ข้อมูลความละเอียดสูงเกี่ยวกับการเปลี่ยนผ่านของเส้นทาง ด้วยการวิเคราะห์สถานะของเซ็นเซอร์ทั้งสามพร้อมกัน รถสามารถแยกแยะระหว่างเส้นตรง, การเลี้ยว 90 องศา และสถานการณ์ "หลุดเส้น" ได้
  2. การนำทางด้วยอัลตราโซนิก (HC-SR04): ติดตั้งบน servo-motor เซ็นเซอร์อัลตราโซนิกจะกวาดตรวจสอบเป็นมุม 60 องศาหน้ารถ นี่ทำหน้าที่เหมือน "กันชนเสมือน" ให้ข้อมูลระยะทางที่แม่นยำกับ Arduino เพื่อหยุดมอเตอร์ก่อนจะเกิดการชน

จากคณิตศาสตร์สู่การเคลื่อนไหว: การปรับให้เหมาะสมด้วย K-Map

แทนที่จะพึ่งพารายการ if-else ยาวเหยียด โปรเจกต์นี้ใช้พีชคณิตบูลีนในการกำหนดขาควบคุมมอเตอร์ (IN1, IN2, IN3, IN4):

  • การกลั่นกรองทางตรรกะ: ด้วยการแมปสถานะที่เป็นไปได้ 8 แบบของเซ็นเซอร์ไลน์แทรกกิ้งทั้งสามลงใน Karnaugh Map เราได้สมการบูลีนที่ง่ายขึ้นมา เช่น IN1 = RS * !LS
  • ประสิทธิภาพในการประมวลผล: สมการเหล่านี้ถูกประมวลผลเป็นลอจิกระดับฮาร์ดแวร์ ลดรอบการทำงานของ CPU ต่อลูป และทำให้การควบคุมพวงมาลัยตอบสนองได้ไวที่สุด ซึ่งจำเป็นสำหรับการไลน์แทรกกิ้งความเร็วสูง

การผลิตและการประกอบที่ยั่งยืน

Transporter เป็นแพลตฟอร์มกึ่งอัตโนมัติที่มี แท่นวางของที่พิมพ์จากเครื่อง 3D พริ้นเตอร์ แบบกำหนดเอง

  • การผสานรวมฮาร์ดแวร์: โปรเจกต์ใช้ Arduino Sensor Shield V5.0 ซึ่งมีเฮดเดอร์ VCC/GND แยกให้ทุกเซ็นเซอร์ ทำให้ไม่ต้องเดินสายบนเบรดบอร์ดที่ซับซ้อน และรับประกันความเสถียรทางไฟฟ้าในระหว่างที่มอเตอร์ทำงานแรงบิดสูง
  • ส่วนประกอบระดับอุตสาหกรรม: ขับเคลื่อนด้วย L298N H-Bridge และใช้พลังงานจากแบตเตอรี่ 18650 Li-ion สองก้อน ทำให้ Transporter มีความสามารถในการจ่ายกระแสสูงสำหรับการลากจูงวัสดุขนาดเล็กข้ามแบบจำลองพื้นผิวคล้ายโกดัง

เกี่ยวกับโปรเจกต์นี้หน่อย...

นี่คือรถอัจฉริยะที่สามารถเดินตามเส้นทางสีดำได้ด้วยเซ็นเซอร์ไลน์แทรกกิ้งสามตัว โดยใช้เซ็นเซอร์อัลตราโซนิกเพื่อตรวจจับสิ่งกีดขวางที่ขวางทางและจะหยุดมอเตอร์หากมีสิ่งกีดขวาง

เราสร้างมันขึ้นมาเพื่อแก้ปัญหาของเราเอง คือการเคลื่อนย้ายวัตถุอย่างอิสระ หลังจากศึกษาวิธีแก้ปัญหาที่เป็นไปได้อย่างถี่ถ้วน เราก็เลือกวิธีนี้ เพราะมีประสิทธิภาพและไม่ยากเกินไป

นี่คือรูปภาพและวิดีโอบางส่วนเพื่อแสดงการทำงานของมัน

Line follower

Obstacle detection

Front

Back

ด้านหลังรถมี [servo](https://s.shopee.co.th/7fUgFAWSki) motor อยู่ตัวหนึ่งแต่เราไม่ได้ใช้มัน

The project

การพัฒนาโปรเจกต์

เพื่อทำโปรเจกต์นี้ เราใช้ชุดอุปกรณ์ Elegoo ที่ซื้อออนไลน์ ลิงก์ของมันถูกเพิ่มในบิลออฟแมททีเรียลแล้ว แต่ก็เป็นไปได้ที่จะสร้างอุปกรณ์นี้โดยไม่ต้องซื้อชุด เพราะแบบวาดชิ้นส่วนและส่วนประกอบทั้งหมดได้ถูกใส่ไว้ที่นี่แล้ว

ผลิตภัณฑ์นี้มีจำหน่ายที่ลิงก์ต่อไปนี้:

1. ระยะออกแบบและวาดแบบ

ส่วนประกอบส่วนใหญ่ถูกทำไว้แล้ว แต่ก็ได้ถูกวาดแบบไว้เช่นกัน ดังนั้นจึงเป็นไปได้ที่จะทำโปรเจกต์นี้ซ้ำโดยไม่ต้องซื้อชุดออนไลน์ ชิ้นส่วนหนึ่งซึ่งไม่มีในชุดแต่มีประโยชน์ต่อระบบ ได้ถูกพิมพ์ขึ้นโดยใช้เครื่องพิมพ์ 3D มันคือแท่นวางของที่ทำให้เราสามารถขนส่งสินค้าและวัสดุขนาดเล็กได้ แบบวาดทั้งหมดได้ถูกแสดงไว้ด้านล่างของย่อหน้านี้

Higher frame

Lower frame

Loading platform

ล้อไม่ได้ถูกวาดแบบไว้ คุณสามารถค้นหามันได้บน Thingiverse:

Wheel interior

Wheel exterior

2. บิลออฟแมททีเรียลและคำอธิบาย

  • ElegooUNO R3 (x1)
  • DC motor (x4): DC motor คือมอเตอร์ไฟฟ้าแบบหมุนทุกประเภทที่แปลงพลังงานไฟฟ้ากระแสตรงเป็นพลังงานกล เป็นมอเตอร์ประเภทที่พบได้บ่อยที่สุดและโดยปกติจะมีเพียงสองขา คือขาบวกและขาลบ ถ้าคุณเชื่อมต่อพวกมันโดยตรงกับแบตเตอรี่ มอเตอร์จะหมุน ถ้าสลับขา มอเตอร์จะหมุนในทิศทางตรงกันข้าม
  • L298N motor driver (x1): มันคือมอเตอร์ไดรเวอร์แบบ H-Bridge ที่อนุญาตให้ควบคุมความเร็วและทิศทางของ DC motor โมดูลนี้สามารถขับ DC motor ที่มีแรงดันระหว่าง 5 ถึง 35V ด้วยกระแสสูงสุดถึง 2A การใช้มันทำให้เราสามารถเปลี่ยนทิศทางการไหลของกระแสและทิศทางการหมุนของมอเตอร์ได้ ดังนั้นถ้าเรารวม PWM และ H-Bridge เข้าด้วยกัน เราจะสามารถควบคุม DC motor ได้อย่างสมบูรณ์ มี DC motor driver หลายตัวที่มีคุณสมบัติเหล่านี้ และ L298N เป็นหนึ่งในนั้น สำหรับรายละเอียดเพิ่มเติม:
  • Line tracking [sensor](https://s.shopee.co.th/7VBG2rX65j) module KY-033 (x3): โมดูลนี้ใช้ตัวส่งและตัวรับ IR ที่จะตรวจจับว่าพื้นผิวด้านหน้าโมดูลสะท้อนแสงแค่ไหน มันมีโพเทนชิโอมิเตอร์เพื่อปรับความไวของโมดูลให้สามารถตรวจจับได้ว่าพื้นผิวเป็นสีดำหรือสีขาว
  • Ultrasonic sensor module HC-SR04 (x1): มันปล่อยคลื่นอัลตราซาวนด์ที่ 40000 Hz ซึ่งเดินทางผ่านอากาศ และหากมีวัตถุหรือสิ่งกีดขวางในเส้นทาง มันจะสะท้อนกลับมาที่โมดูล โดยพิจารณาจากเวลาเดินทางและความเร็วของเสียง คุณสามารถคำนวณระยะทางได้
  • Servo motor(x1): มี servo motor หลายประเภทและคุณสมบัติหลักของพวกมันคือความสามารถในการควบคุมตำแหน่งของเพลาอย่างแม่นยำ servo motor เป็นระบบลูปปิดที่ใช้ฟีดแบ็กตำแหน่งเพื่อควบคุมการเคลื่อนไหวและตำแหน่งสุดท้าย ตำแหน่งจริงที่ถูกตรวจจับโดยอุปกรณ์เหล่านี้จะถูกส่งกลับไปยังตัวตรวจจับข้อผิดพลาดซึ่งจะถูกเปรียบเทียบกับตำแหน่งเป้าหมาย จากนั้นตามข้อผิดพลาด ตัวควบคุมจะแก้ไขตำแหน่งจริงของมอเตอร์ให้ตรงกับตำแหน่งเป้าหมาย
  • Expansion board – [Arduino](https://s.shopee.co.th/7fUgFAWSki) sensor shield v5.0 (x1): Arduino sensor shield ช่วยให้คุณเชื่อมต่อโมดูลต่างๆ (เช่น เซ็นเซอร์, เซอร์โว, รีเลย์, ปุ่ม, โพเทนชิโอมิเตอร์ ฯลฯ) กับ Arduino Uno ของคุณได้ แต่ละพินมีพิน VCC และ GND ที่ตรงกันเพื่อให้เดินสายโมดูลและจ่ายไฟให้มันได้ง่าย
  • Battery holder (x1)
  • Battery – BRC 186504200mAh 3.7V li-ion (x2)
  • DC connector-adapter(x1)
  • Loading platform (x1)
  • Connection wires
  • Car frame (x2)
  • Wheels (x4)
  • Bolts

3. การทำงาน

ยานพาหนะที่ถูกสร้างขึ้นนี้สามารถเดินตามเส้นทางสีดำได้ โดยใช้เซ็นเซอร์ไลน์แทรกกิ้งสามตัวที่วางไว้ใต้โครงด้านหน้าของรถ สิ่งนี้จะเป็นจริงก็ต่อเมื่อเซ็นเซอร์อัลตราโซนิก ซึ่งเชื่อมต่อกับเซอร์โวมอเตอร์ที่กวาดเป็นมุม 60° อ่านค่าระยะทางมากกว่า 20 ซม. ในกรณีนี้สามารถมีสถานการณ์ที่แตกต่างกันได้สี่แบบ:

1. เซ็นเซอร์ทั้งหมดอ่านค่าเป็นสีขาว ดังนั้นรถจึงหลุดเส้น ด้วยเหตุนี้มอเตอร์จึงถูกหยุด การเคลื่อนที่อาจเป็นอันตรายต่อผู้คนในบริเวณโดยรอบ

2. เซ็นเซอร์ทั้งหมดอ่านค่าเป็นสีดำ ดังนั้นระบบจึงอยู่บนเส้นทางทั้งหมด สิ่งนี้เกิดขึ้นเช่นเมื่อมีเครื่องหมายหยุด และในกรณีนี้ "Transporter" ก็จะไม่เคลื่อนที่เช่นกัน

3. เซ็นเซอร์ซ้าย/เซ็นเซอร์กลาง (ทั้งสองหรือแค่ตัวแรก) อยู่บนเส้นสีดำ สถานะของเส้นทางเปลี่ยนไป คือมันเลี้ยวซ้าย ดังนั้นรถก็ต้องเลี้ยวซ้ายเพื่อเดินตามเส้นทางต่อไป

4. เซ็นเซอร์ขวา/เซ็นเซอร์กลาง (ทั้งสองหรือแค่ตัวแรก) อยู่บนเส้นสีดำ เส้นทางเลี้ยวขวา และด้วยเหตุนี้ "Transporter" ก็ต้องเลี้ยวขวา ด้วยวิธีนี้มันจะกลับมาอยู่ในตำแหน่งที่ถูกต้องอีกครั้ง

จากเงื่อนไขเหล่านี้ ตารางคอมบิเนชันได้ถูกจัดทำขึ้นเพื่อให้รู้ว่าระบบที่สร้างขึ้นทำงานอย่างไร โดยกำหนดให้:

  • LS = เซ็นเซอร์ไลน์แทรกกิ้งด้านซ้าย
  • CS = เซ็นเซอร์ไลน์แทรกกิ้งตรงกลาง
  • RS = เซ็นเซอร์ไลน์แทรกกิ้งด้านขวา
  • END = เปิด/ปิด DC motor ด้านขวา
  • ENS = เปิด/ปิด DC motor ด้านซ้าย
  • IN1 = อนุญาตให้ DC motor ด้านขวาถอยหลัง
  • IN2 = อนุญาตให้ DC motor ด้านขวาเดินหน้า
  • IN3 = อนุญาตให้ DC motor ด้านซ้ายเดินหน้า
  • IN4 = อนุญาตให้ DC motor ด้านซ้ายถอยหลัง

สิ่งสำคัญที่ต้องบอกคือสีดำสำหรับเซ็นเซอร์คือ HIGH หรือ 1 ในขณะที่สีขาวสำหรับพวกมันคือ LOW หรือ 0

ตารางคอมบิเนชัน:

- คือเงื่อนไข indifference (ไม่สนใจ)

การทำงานของระบบในระหว่างสถานะต่างๆ:

  • สถานะ 1 = DC motor ทั้งหมด OFF (หยุด)
  • สถานะ 2 = DC motor ด้านขวาถอยหลัง ในขณะที่ DC motor ด้านซ้ายเดินหน้า (เลี้ยวขวา)
  • สถานะ 3 = DC motor ด้านขวาและซ้ายเดินหน้า (เดินหน้า)
  • สถานะ 4 = DC motor ด้านขวาถอยหลัง ในขณะที่ DC motor ด้านซ้ายเดินหน้า (เลี้ยวขวา)

ข้อมูล Frontmatter ดั้งเดิม

title: "Transporter (Karnaugh Map)"
description: "This is a line follower car able to transport small objects thanks to a loading platform."
author: "MacFe72"
category: ""
tags:
  - "vallauri"
  - "vallauri"
  - "cars"
  - "robots"
views: 1793
likes: 0
price: 299
difficulty: "Intermediate"
components:
  - "1x Jumper wires (generic)"
  - "1x Connector Adapter, DC Power - 2.1mm"
  - "1x SG90 Micro-servo motor"
  - "1x Drill / Driver, Cordless"
  - "1x Batteries (18650 3,7V 4200mAh li-ion) & Charger"
  - "1x 3D Printer (generic)"
  - "1x Arduino sensor shield V5.0 - Expansion board"
  - "1x L298N motor driver - H bridge"
  - "1x Ultrasonic Sensor - HC-SR04 (Generic)"
  - "1x DC motors & Wheels"
  - "1x Battery holder"
  - "1x ELEGOO UNO R3 Board ATmega328P ATMEGA16U2 with USB Cable"
  - "1x Screwdrivers"
  - "3x SparkFun RedBot Sensor - Line Follower"
  - "1x Various bolts (like screws, nuts, spacers)"
tools: []
apps:
  - "1x Arduino IDE"
  - "1x Fritzing"
  - "1x Arduino reference"
  - "1x Draw.io"
downloadableFiles: []
documentationLinks: []
passwordHash: "57dfefe6890abadcbbd7bc52cb87afe9e958878fb1f47d495527425f409c72dd"
encryptedPayload: "U2FsdGVkX19KiMW5X9/A/fkj1ukY116ULKUWMLovOzf57ulFLUcflfUYQjatU6epkEgUOje71pxmn6Xz+D78N5d8CjXD8XgPkNTH4kybvz3C8y3qWXbKg30nHDqtFLbtQkYll/BhHMySyz4zfG6wRUw/dt1i0aoi8an5pnB0icA="
seoDescription: "Arduino line follower car project with a loading platform for transporting small objects using Karnaugh Map logic."
videoLinks:
  - "https://www.youtube.com/embed/Sz64iUTHjIY"
  - "https://www.youtube.com/embed/J7mokd139Uk"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/transporter-karnaugh-map-25005d_cover.jpg"
lang: "th"