ประสิทธิภาพสถาปัตยกรรมขนาดเล็ก: การควบคุมการจราจรแบบสองทิศทาง
โปรเจกต์นี้สำรวจพลังของการประมวลผลสไตล์ "bare-metal" โดยการสร้างระบบควบคุมการจราจรที่ซับซ้อนบน ATtiny85 ซึ่งเป็นไมโครคอนโทรลเลอร์ 8 พินที่มี I/O จำกัด โดยการรวม 74HC595 Shift Register โปรเจกต์นี้แสดงให้เห็นถึงวิธีเอาชนะข้อจำกัดของพินเพื่อขับเคลื่อนองค์ประกอบภาพหลายรายการผ่านอินเทอร์เฟซแบบ serial-to-parallel
การเอาชนะข้อจำกัด I/O: The 74HC595 Shift Register
ATtiny85 มีเพียง 6 พิน I/O ที่ใช้งานได้ ซึ่งโดยปกติจะไม่เพียงพอสำหรับไฟจราจรสองแยก (6 LEDs)
- การส่งข้อมูลแบบ Bit-Banging: ATtiny85 ส่งข้อมูล 8 บิตแบบอนุกรมเข้าสู่ shift register โดยใช้เพียงสามพิน: Data, Clock และ Latch
- เอาต์พุตแบบ Parallel: เมื่อ Latch ถูกทริกเกอร์ shift register จะเก็บสถานะ (แดง/เหลือง/เขียว สำหรับสองทิศทาง) ผ่าน 8 พินเอาต์พุตพร้อมกัน
- การซิงโครไนซ์: สิ่งนี้ช่วยให้โค้ดอัปเดตสัญญาณไฟจราจรทั้งสองให้สอดคล้องกันอย่างสมบูรณ์ เพื่อให้มั่นใจว่าทิศทางหนึ่งจะเป็นสีแดงเสมอก่อนที่อีกทิศทางจะเปลี่ยนเป็นสีเขียว
ตรรกะการตั้งเวลาและสถานะความปลอดภัย
ซอฟต์แวร์ที่คอมไพล์โดยใช้ ATTinyCore สำหรับ Arduino IDE ได้ใช้ state machine ที่เข้มงวดเพื่อให้ตรงกับโปรโตคอลความปลอดภัยของการจราจรในโลกแห่งความเป็นจริง:
- การเปลี่ยนเฟส: โค้ดมีการรวมช่วงเวลาเคลียร์ "All-Red" ที่จำเป็น เพื่อให้แน่ใจว่ารถยนต์จากเฟสสีเขียวก่อนหน้าได้เคลียร์ทางแยกแล้ว
- การปรับเทียบ Clock: ทำงานที่ clock speed 1MHz ภายใน ทริกเกอร์การตั้งเวลาได้รับการปรับเทียบเพื่อให้ช่วงเวลาที่สมจริงสำหรับเมืองจำลองหรือการจำลองบนโต๊ะ
- การเพิ่มประสิทธิภาพพลังงาน: เพื่อรักษาเสถียรภาพบน breadboard ระบบจะได้รับพลังงานจาก 5V DC Buck Converter เพื่อให้แน่ใจว่าการดึงกระแสสูงของ LEDs ที่ทำงานอยู่หลายตัวจะไม่ทำให้ microcontroller ที่ละเอียดอ่อนเกิดอาการ brown out
ประตูสู่การเรียนรู้อิเล็กทรอนิกส์แบบกำหนดเอง
สำหรับนักเรียนและผู้สนใจงานอดิเรก โปรเจกต์นี้เป็นสะพานเชื่อมที่สมบูรณ์แบบระหว่าง "การใช้ Arduino Board" และ "การออกแบบอุปกรณ์อิเล็กทรอนิกส์เฉพาะทางของคุณเอง" การเชี่ยวชาญ ATtiny85 ช่วยให้ผู้สร้างสามารถย่อขนาดโปรเจกต์ของตนให้เป็นตู้หุ้มถาวรระดับมืออาชีพ พิสูจน์ว่าคุณไม่จำเป็นต้องใช้โปรเซสเซอร์ขนาดใหญ่เพื่อจัดการกับลอจิสติกส์ที่ซับซ้อนในชีวิตจริง
นี่คือโปรเจกต์ง่ายๆ เพื่อเรียนรู้วิธีใช้ shift register (74hc595) กับชิป ATtiny85
โปรแกรมนี้เขียนขึ้นสำหรับ ATtiny85 โดยใช้ Arduino IDE และบอร์ด 'ATTinyCore' ซึ่งดูได้ที่: https://github.com/SpenceKonde/ATTinyCore
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ ATtiny85 ดูได้ที่: https://www.microchip.com/wwwproducts/en/ATtiny85
ATtiny85 ได้รับการตั้งโปรแกรมด้วยโปรแกรมเมอร์ภายนอก และทำงานที่ clock speed 1MHz (ภายใน)
วงจรนี้ได้รับพลังงานจาก DC buck converter ภายนอกที่ทำงานที่ 5v