สารบัญ:

Arduino Riddlebox: 4 ขั้นตอน (พร้อมรูปภาพ)
Arduino Riddlebox: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Arduino Riddlebox: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Arduino Riddlebox: 4 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Setting Up a Raspberry Pi 4 | Vilros 2024, พฤศจิกายน
Anonim
Arduino Riddlebox
Arduino Riddlebox

ในคำแนะนำนี้ฉันจะแสดงวิธีสร้าง Riddlebox ที่ขับเคลื่อนด้วย Arduino ฉันทำสิ่งนี้เพื่อเพิ่มความสนุกให้กับของขวัญคริสต์มาสจริง ๆ กับแฟนของฉัน ซึ่งฉันซ่อนไว้ในช่องของกล่อง

เมื่อนำ 5V ไปใช้กับสาย USB แล้ว Arduino จะเปิดขึ้นและจอ LCD จะแสดงบทช่วยสอนสั้น ๆ จากนั้นจึงไขปริศนาสิบข้อซึ่งจำเป็นต้องแก้ไขเพื่อเปิดช่องที่ทำงานด้วยเซอร์โวซึ่งสามารถเก็บของขวัญหรือของขวัญได้

นอกจากนี้ยังมีเมนูการตั้งค่าลับๆ ล่อๆ ป้องกันด้วยรหัสผ่าน สำหรับรีเซ็ตความคืบหน้าและเปิดช่อง

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

คุณจะต้องการ:

  • Arduino Mega (Uno อาจพอเพียง)
  • สายจัมเปอร์ยืดหยุ่น
  • สวิตช์กุญแจ
  • ปุ่มกด 4x4
  • I2C LCD 20x04
  • เซอร์โวมอเตอร์ SG90 2x
  • เคสอลูมิเนียม
  • บานพับโลหะ
  • แผ่นอลูมิเนียม
  • เลื่อยวงเดือนหรือเครื่องมือโรตารี่พร้อมใบตัด
  • ปืนกาวร้อน
  • กาวยึดติดสูง
  • แฟลชไดรฟ์ USB
  • ตะไบโลหะ

ขั้นตอนที่ 1: การตั้งค่าฮาร์ดแวร์

การตั้งค่าฮาร์ดแวร์
การตั้งค่าฮาร์ดแวร์

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

แป้นกดส่วนใหญ่มีหมุดสำหรับแต่ละแถวและแต่ละคอลัมน์ ค้นหาว่าพินใดเป็นพินของแถว โดยการทดสอบความต่อเนื่องระหว่างพินต่างๆ ขณะกดปุ่มเพื่อปิดวงจร (ดูตัวอย่างแผนภาพ) ส่วนที่เหลืออีก 4 พินจะต้องเป็นพินของคอลัมน์ (หมายเหตุ: บางครั้งหมุดภายนอกส่วนใหญ่สองตัวเชื่อมต่อกับการเติมทองแดงบน PCB และสามารถละเว้นได้)

เชื่อมต่อหมุดปุ่มกด COL0 - COL3 กับหมุด Arduino 12 - 9 และ ROW0 - ROW3 กับหมุด Arduino 8 - 5

จอ LCD เชื่อมต่อผ่าน I2C ดังนั้นจึงต้องใช้เพียงสี่พินเท่านั้น: SDA, SCL, 5V และ GND

สวิตช์กุญแจมีสามตำแหน่งและหกพิน: หมุด C (ทั่วไป) ทั้งสองตัวไปที่กราวด์ในขณะที่หมุดสองตัวที่มีป้ายกำกับว่า NO (เปิดตามปกติ) ไปที่ขา Arduino 22 และ 23 ตามลำดับ (หมายเหตุ: อินพุต Arduino ถูกดึงให้สูง ดังนั้นเราจึงต้องเชื่อมต่อกราวด์กับพินทั่วไปของสวิตช์เท่านั้น)

เซอร์โวสองตัวนี้ใช้เพื่อเปิดประตูห้องและล็อคโดยใช้สลัก

เชื่อมต่อ 5V และ GND ของเซอร์โวเข้ากับ Arduino และเชื่อมต่อสายสัญญาณดังนี้: ล็อคเซอร์โว = พิน 44, เซอร์โวประตู = พิน 45

ขั้นตอนที่ 2: รหัส Arduino และปริศนา

รหัส Arduino และปริศนา
รหัส Arduino และปริศนา
รหัส Arduino และปริศนา
รหัส Arduino และปริศนา

รหัสสำหรับ Arduino ประกอบด้วยหลายไฟล์ ร่างหลักเริ่มต้นฮาร์ดแวร์ ไลบรารี และตัวแปรทั่วโลกทั้งหมด ปริศนาและบล็อคเมนูทั้งหมดจะถูกเก็บไว้ในฟังก์ชันในไฟล์แยกกันเพื่อการจัดการที่ง่าย สถานะของความคืบหน้าซึ่งบันทึกไว้ใน EEPROM (เช่น ปลอดภัยแม้หลังจากใช้ powercylce) กำหนดว่าฟังก์ชันปริศนาใดที่ถูกเรียกในฟังก์ชันสวิตช์ของไฟล์หลัก

ฉันลบข้อมูลส่วนบุคคลใด ๆ ออกจากรหัสและแทนที่โซลูชันบางอย่างด้วย slutions ทั่วไป (1234…) อย่าลังเลที่จะเปลี่ยนรหัสตามที่เห็นสมควรและเพิ่มโซลูชันส่วนบุคคล

ปริศนาและบล็อคเมนู:

  1. ขั้นสูง: เมนูการตั้งค่าขั้นสูงพร้อมการรีเซ็ตความคืบหน้าและการควบคุมช่อง
  2. Intro: เมนูแนะนำพร้อมข้อความทักทายและบทช่วยสอน
  3. ประถม: ปริศนาถามหาเลขอะตอมของไอโอดีน
  4. การเอาท์ซอร์ส: ผู้เล่นต้องติดต่อที่อยู่อีเมลที่ตอบกลับปริศนาตัวเลขโดยอัตโนมัติ (ปริศนารูปดาวในรูป)
  5. สิบหก: ผู้เล่นต้องแปลงเลขฐานสิบหกให้เป็นทศนิยม
  6. ทางเลือก: ผู้เล่นต้องทำการผจญภัยแบบข้อความที่อยู่ในแฟลชไดรฟ์ให้เสร็จสิ้น รหัสผ่านสำหรับด่านถัดไปจะถูกซ่อนอยู่ในเรื่องราว (ดู Amnesia.rtf)
  7. ออฟไลน์: ผู้เล่นจะต้องได้รับกุญแจเพื่อเปิดใช้งานสวิตช์กุญแจ (เช่น ทางไปรษณีย์ วิธีที่ดีในการทำให้ช้าลงหากพวกมันเร็วเกินไป)
  8. ล่องหน: รหัสผ่านสำหรับระดับถัดไปจะถูกเขียนลงบนกระดาษด้วยหมึกที่มองไม่เห็น
  9. แคลคูลัส: งานแคลคูลัสอย่างง่าย (เพิ่มเติมของตัวยึดที่ไม่เคยเต็ม เพราะฉันหมดเวลา)
  10. การเปลี่ยนแปลง: ปริศนาสั้นๆ เกี่ยวกับธนบัตรยูโร สามารถปรับให้เข้ากับสกุลเงินใดก็ได้ที่มีธนบัตรสีต่างกัน
  11. ความอดทน: ผู้เล่นต้องไม่บิดกุญแจเป็นเวลา 5 นาที มิฉะนั้น ตัวจับเวลาจะรีเซ็ตและเพิ่มเป็นสองเท่า (หมายเหตุ: การเปลี่ยนคีย์บ่อยๆ จะทำให้ตัวแปรโอเวอร์โฟลว์และรีเซ็ตเป็นศูนย์เนื่องจากขนาดจำกัด)
  12. คำตอบ: "คำตอบคืออะไร?" คำตอบคือ 42 อย่างเห็นได้ชัด
  13. End Screen: ขอแสดงความยินดีและคำแนะนำในการเปิดช่อง (ผ่านสวิตช์กุญแจ)

ฉันได้รวมเอกสารเพิ่มเติมในรูปแบบของความคิดเห็นในไฟล์โค้ด

FYI: การกด 'A' ค้างไว้ระหว่างหน้าจอเริ่มต้นจะเปิดเมนูการตั้งค่า รหัสผ่าน: 2582

ขั้นตอนที่ 3: สร้างแผ่นปิดหน้า

การสร้างแผ่นปิดหน้า
การสร้างแผ่นปิดหน้า
การสร้างแผ่นปิดหน้า
การสร้างแผ่นปิดหน้า
การสร้างแผ่นปิดหน้า
การสร้างแผ่นปิดหน้า

ฉันซื้อเคสในร้านฮาร์ดแวร์ในพื้นที่พร้อมกับแผ่นอลูมิเนียม มันมาพร้อมกับวงเวียนที่ฉันใช้ซ้ำเพื่อสร้างผนังห้อง

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

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

ประตูสู่ช่องเก็บของเป็นเพียงแผ่นอะลูมิเนียมที่เหลือตัดออก

ฉันติดบานพับเข้ากับประตูและแผ่นโลหะโดยใช้กาวยึดติดสูง นำไปใช้กับพื้นผิวทั้งสอง อนุญาตให้บ่ม 10-20 นาที แล้วกดทั้งสองด้านเข้าด้วยกัน พันธะเกิดขึ้นทันทีและไม่มีทางที่จะปรับสองชิ้นได้ในภายหลัง

ปุ่มกดและจอ LCD ยึดไว้กับที่ด้วยกาวร้อนที่ด้านข้าง (หมายเหตุ: ตรวจสอบให้แน่ใจว่าได้แยกหมุดของส่วนประกอบออกจากแผ่นอลูมิเนียม ใช้กาวร้อนเพียงเล็กน้อยเท่านั้น)

สวิตช์กุญแจมีเกลียวและน็อต ดังนั้นฉันจึงเจาะรูในขนาดที่ถูกต้องและใส่สวิตช์เข้าไป

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

เนื่องจากด้านหน้าดูไม่สวยมากในวิธีนี้ ฉันจึงตัดสินใจพิมพ์กรอบบางกรอบไปรอบๆ ส่วนประกอบต่างๆ และติดด้วยกาวร้อนเช่นกัน

ขั้นตอนที่ 4: จบคดี

จบคดี
จบคดี
จบคดี
จบคดี

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

หลังจากเชื่อมต่อส่วนประกอบทั้งหมดเข้ากับ Arduino Mega และติดกาวร้อนเข้ากับเคสแล้ว ฉันดึงสาย USB ออกทางช่องเล็กๆ ระหว่างตัวแบ่ง เพื่อให้สามารถเข้าถึงได้จากภายนอก

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

สิ่งสุดท้ายที่ต้องทำคือใช้การตกแต่งบางส่วน ฉันออกแบบสติกเกอร์ง่ายๆ ใน MS Publisher ซึ่งฉันพิมพ์ ตัด และติดแผ่นด้านหน้าด้วยแท่งกาวธรรมดา

แน่นอนว่ามันขึ้นอยู่กับคุณทั้งหมดว่าคุณต้องการสร้างและติดสติกเกอร์จำนวนเท่าใด นอกจากนี้ นี่อาจเป็นโอกาสที่ดีในการฝึกฝนเทคนิคการผุกร่อนเพื่อทำให้ทุกอย่างดูแย่ลงไปอีก น่าเศร้าที่สิ่งนี้มาหาฉันขณะเขียนคำแนะนำนี้เท่านั้น

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

แนะนำ: