สารบัญ:
- ขั้นตอนที่ 1: ชิ้นส่วนและเครื่องมือ
- ขั้นตอนที่ 2: การสร้างระบบเกียร์
- ขั้นตอนที่ 3: การตัดด้วยเลเซอร์และติดแถบอะคริลิก
- ขั้นตอนที่ 4: การใช้คำสั่ง AT เพื่อเปลี่ยนการตั้งค่าโมดูลบลูทูธ
- ขั้นตอนที่ 5: การออกแบบวงจร
- ขั้นตอนที่ 6: การวางแผนเค้าโครง Stripboard
- ขั้นตอนที่ 7: การบัดกรี
- ขั้นตอนที่ 8: การเบิร์น Bootloader บน ATMega
- ขั้นตอนที่ 9: Arduino Sketch
- ขั้นตอนที่ 10: การอัปโหลด Arduino Sketch
- ขั้นตอนที่ 11: รหัสแอป Android
- ขั้นตอนที่ 12: การใช้แอพ
- ขั้นตอนที่ 13: ข้อสังเกตสุดท้าย
วีดีโอ: ท้องฟ้าจำลอง/Orrery ที่เปิดใช้งาน Bluetooth: 13 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
คำแนะนำนี้สร้างขึ้นเพื่อตอบสนองความต้องการของโครงการ Makecourse ที่มหาวิทยาลัยเซาท์ฟลอริดา (www.makecourse.com)
นี่คือท้องฟ้าจำลอง/orrery ดาวเคราะห์ 3 ดวงของฉัน มันเริ่มต้นจากเป็นเพียงโครงการระยะยาวสำหรับ Makecourse แต่เมื่อสิ้นสุดภาคการศึกษา มันกลายเป็นประสบการณ์การเรียนรู้ที่มีคุณค่าอย่างยิ่ง ฉันไม่เพียงแต่เรียนรู้พื้นฐานของไมโครคอนโทรลเลอร์เท่านั้น แต่ยังสอนสิ่งที่น่าสนใจมากมายเกี่ยวกับ C และ C++, แพลตฟอร์ม Android, การบัดกรี และงานอิเล็กทรอนิกส์โดยทั่วไป
ฟังก์ชันพื้นฐานของท้องฟ้าจำลองคือ: เปิดแอปในโทรศัพท์ของคุณ เชื่อมต่อกับท้องฟ้าจำลอง เลือกวันที่ กดส่ง และดูท้องฟ้าจำลองเคลื่อนดาวพุธ ดาวศุกร์ และโลกไปยังลองจิจูดสัมพัทธ์ของเฮลิโอเซนตริกในวันนั้น คุณสามารถย้อนกลับไปได้ไกลถึง 1 AD/CE และไปข้างหน้าถึง 5000 AD/CE แม้ว่าความแม่นยำอาจลดลงเล็กน้อยเมื่อคุณเดินหน้าหรือถอยหลังมากกว่า 100 ปี
ในคำแนะนำนี้ ฉันจะอธิบายวิธีประกอบดาวเคราะห์ ระบบเกียร์ที่ขับเคลื่อนพวกมัน แผงวงจรที่เชื่อมต่อทุกอย่างเข้าด้วยกัน และรหัส Android และ C++ (Arduino) ที่ควบคุมดาวเคราะห์
หากคุณต้องการข้ามไปยังโค้ด ทุกอย่างอยู่ใน GitHub รหัส Arduino อยู่ที่นี่ และรหัส Android อยู่ที่นี่
ขั้นตอนที่ 1: ชิ้นส่วนและเครื่องมือ
ชิ้นส่วนทางกายภาพ
- 1 DC-47P DC Series Heavy Duty Electronics Enclosure - $ 9.58
- แผ่นอะคริลิค/PMMA 0.08" (2 มม.) อย่างน้อย 6" x 6" (15 ซม. x 15 ซม.) - $2.97
- 3 28BYJ-48 Unipolar Stepper Motors - $6.24
- Glow in the Dark Planets - 8.27 เหรียญ (ดูหมายเหตุ 1)
- Glow in the Dark Stars - 5.95 เหรียญ (ไม่บังคับ)
อิเล็กทรอนิกส์
- 3 ULN2003 สเต็ปเปอร์มอเตอร์ไดรเวอร์ - $2.97
- 1 Atmel ATMega328(P) - $1.64 (ดูหมายเหตุ 2)
- 1 HC-05 Bluetooth เป็นโมดูลซีเรียล - $3.40
- 1 16MHz Crystal Oscillator - 0.78 ดอลลาร์สำหรับ 10
- 1 DIP-28 IC Socket $0.99 สำหรับ 10
- Stripboard 1 ชิ้น (pitch = 0.1", size = 20 rows of length 3.5") - $2.48 สำหรับ 2
- แจ็คจ่ายไฟ DC แบบติดตั้งบนแผง 1 ตัว ตัวเมีย (5.5 มม. OD, 2.1 มม. ID) - $1.44 สำหรับ 10
- ตัวเก็บประจุ 2 22pF 5V - 3.00 ดอลลาร์สำหรับ 100 (ดูหมายเหตุ 3)
- ตัวเก็บประจุ 2 1.0 μF - 0.99 เหรียญสำหรับ 50
- ตัวต้านทาน 10kΩ 1 ตัว - 0.99 ดอลลาร์สำหรับ 50
เครื่องมือ
- อะไหล่ Arduino หรือ AVR ISP - คุณต้องใช้สิ่งนี้เพื่อตั้งโปรแกรมชิป ATMega
- ไขควง - สำหรับถอด ATMega สต็อกออกจาก Arduino
- มัลติมิเตอร์ - หรืออย่างน้อยก็เครื่องวัดความต่อเนื่อง
- ค้อน - สำหรับซ่อมสิ่งที่ไม่ได้ทำ The Right Way™
- ดอกสว่านพร้อมดอกสว่าน 5/16", 7/16" และ 1 3/8"
- สนิปขนาดเล็ก - สำหรับการตัดแต่งลีดส่วนประกอบ
- ลวดทองแดงควั่น 22 AWG (ราคาดีและมีตัวเลือกมากมายที่นี่)
- ประสาน - ฉันใช้ 60/40 กับแกนขัดสน ฉันพบว่าบัดกรีแบบบาง (<0.6 มม.) ทำให้สิ่งต่างๆ ง่ายขึ้นมาก คุณสามารถหาบัดกรีได้ทุกที่จริงๆ แต่นี่เป็นสิ่งที่ฉันประสบความสำเร็จ
- ฟลักซ์ - ฉันชอบปากกาฟลักซ์เหล่านี้มาก แต่คุณสามารถใช้ฟลักซ์รูปแบบใดก็ได้ ตราบใดที่ไม่มีกรด
- หัวแร้ง/สถานี - คุณสามารถหาซื้อสิ่งเหล่านี้ได้ในราคาถูกบน eBay และ Amazon แม้ว่าจะได้รับการเตือน: ความหงุดหงิดแตกต่างกันไปตามราคา Stahl SSVT ราคาถูกของฉัน ($25) ใช้เวลาในการทำความร้อนตลอดไป แทบไม่มีความจุความร้อน และมีเสียง 60 Hz ที่ได้ยินที่เล็ดลอดออกมาจากองค์ประกอบความร้อน ไม่แน่ใจว่าฉันรู้สึกอย่างไรเกี่ยวกับเรื่องนั้น
- ตัวช่วย - สิ่งเหล่านี้เป็นเครื่องมืออันล้ำค่าที่เกือบจะจำเป็นสำหรับการบัดกรี และช่วยเมื่อต้องติดกาวดาวเคราะห์กับแท่งอะคริลิก
- Epoxy - ฉันใช้ Loctite Epoxy สำหรับพลาสติก ซึ่งทำงานได้ดีทีเดียว เมื่อฉันทำแขนดาวเคราะห์ข้างหนึ่ง (ที่ติดอยู่กับดาวเคราะห์) บนพื้นคอนกรีตโดยไม่ได้ตั้งใจ อีพ็อกซี่ไม่ได้ยึดทั้งสองส่วนไว้ด้วยกัน แต่แล้วอีกครั้ง ฉันใช้เวลาเพียง 15 ชั่วโมงจาก 24 ชั่วโมงที่แนะนำเพื่อรักษาอย่างเต็มที่ ดังนั้นมันอาจจะไม่แยกออกจากกันเป็นอย่างอื่น แต่ฉันพูดไม่ได้ ไม่ว่าคุณจะใช้กาวหรือกาวใดๆ ก็ตามที่ใช้เวลานานกว่าสองสามนาทีในการรักษา เนื่องจากคุณอาจต้องปรับแต่งเล็กน้อยหลังจากทากาวแล้ว
- ไม้จิ้มฟัน - คุณจะต้องใช้สิ่งเหล่านี้ (หรือเครื่องกวนแบบใช้แล้วทิ้ง) สำหรับอีพ็อกซี่หรือกาว 2 ส่วนใดๆ เว้นแต่จะมาพร้อมกับอุปกรณ์ที่ผสมทั้งสองส่วนให้คุณ
- เครื่องพิมพ์ 3 มิติ - ฉันใช้สิ่งเหล่านี้เพื่อพิมพ์ชิ้นส่วนบางส่วนสำหรับระบบเกียร์ (รวมไฟล์) แต่ถ้าคุณสามารถสร้างชิ้นส่วนเหล่านั้นโดยใช้วิธีการอื่น (อาจจะขี้เกียจน้อยกว่า) ก็ไม่จำเป็น
- เครื่องตัดเลเซอร์ - ฉันใช้สิ่งนี้เพื่อสร้างแขนที่ชัดเจนที่ยึดดาวเคราะห์ไว้ เช่นเดียวกับจุดก่อนหน้านี้ หากคุณสามารถสร้างชิ้นส่วนโดยใช้วิธีการอื่น (สามารถตัดได้ง่ายโดยใช้วิธีอื่น) ก็ไม่จำเป็น
ซอฟต์แวร์
- คุณจะต้องใช้ Arduino IDE หรือ AVR-GCC และ AVRDude เวอร์ชันสแตนด์อโลน
- Android Studio หรือ Android Tools สำหรับ Eclipse (ซึ่งเลิกใช้แล้ว) นี่อาจเป็นทางเลือกในเร็วๆ นี้ เนื่องจากฉันอาจอัปโหลด APK ที่คอมไพล์ไปยัง Play Store
ค่าใช้จ่ายทั้งหมด
ค่าใช้จ่ายทั้งหมดของชิ้นส่วนทั้งหมด (ลบเครื่องมือ) อยู่ที่ประมาณ 50 เหรียญ อย่างไรก็ตาม ราคาที่แสดงหลายรายการมีราคาสำหรับสินค้ามากกว่า 1 รายการต่อรายการ หากคุณนับเฉพาะจำนวนสินค้าแต่ละรายการที่ใช้ในโครงการนี้ ต้นทุนรวมที่มีผลใช้จริงจะอยู่ที่ประมาณ $35 รายการที่แพงที่สุดคือตัวเครื่อง ซึ่งเกือบหนึ่งในสามของราคาทั้งหมด สำหรับ MAKE Course เราต้องรวมกล่องเข้ากับการออกแบบโครงการของเรา ดังนั้นจึงมีความจำเป็น แต่ถ้าคุณกำลังมองหาวิธีง่ายๆ ในการลดต้นทุนในโครงการนี้ ให้ลองดูที่ร้านค้าปลีกขนาดใหญ่ในพื้นที่ของคุณ พวกเขาน่าจะมีกล่องให้เลือกมากมายซึ่งราคาถูกกว่า "ตู้อิเล็กทรอนิกส์" ทั่วไปของคุณ คุณยังสามารถสร้างดาวเคราะห์ของคุณเองได้ (ทรงกลมไม้มีค่าเป็นโหล) และทาสีบนดวงดาวแทนการใช้พลาสติกที่ทำไว้ล่วงหน้า คุณสามารถทำโครงการนี้ให้สำเร็จด้วยเงินน้อยกว่า $25!
หมายเหตุ
- คุณสามารถใช้อะไรก็ได้ที่คุณต้องการเป็น "ดาวเคราะห์" คุณสามารถทาสีของคุณเองได้!
- ฉันค่อนข้างแน่ใจว่าชิปเหล่านี้ไม่ได้มาพร้อมกับ bootloader ของ Arduino R3 อย่างที่กล่าวไว้ หรือต้องมีข้อผิดพลาดในการเขียนโปรแกรม ไม่ว่าเราจะเบิร์น bootloader ใหม่ในขั้นตอนต่อไป
- ฉันขอแนะนำเป็นอย่างยิ่งให้คุณตุนแพ็คที่หลากหลาย/คละประเภทของตัวต้านทานและตัวเก็บประจุ (เซรามิกและอิเล็กโทรไลต์) วิธีนี้ถูกกว่ามาก และคุณยังสามารถเริ่มโครงการได้อย่างรวดเร็วโดยไม่ต้องรอให้ถึงค่าเฉพาะ
ขั้นตอนที่ 2: การสร้างระบบเกียร์
โดยพื้นฐานแล้ว เสากลวงทั้งหมดจะซ้อนกันอยู่ภายในกันและกัน และเผยให้เห็นเฟืองของมันในระดับความสูงที่ต่างกัน จากนั้นสเต็ปเปอร์มอเตอร์แต่ละตัวจะถูกวางไว้ที่ความสูงต่างกัน โดยแต่ละตัวจะขับเคลื่อนในคอลัมน์ที่แตกต่างกัน อัตราทดเกียร์คือ 2: 1 ซึ่งหมายความว่าสเต็ปเปอร์มอเตอร์แต่ละตัวจำเป็นต้องหมุนเต็มที่สองครั้งก่อนที่คอลัมน์จะถูกสร้างขึ้น
สำหรับโมเดล 3 มิติทั้งหมด ฉันได้รวมไฟล์ STL (สำหรับการพิมพ์) รวมถึงไฟล์ชิ้นส่วนและแอสเซมบลีของนักประดิษฐ์ (เพื่อให้คุณแก้ไขได้อย่างอิสระ) จากโฟลเดอร์ exports คุณจะต้องพิมพ์ 3 stepper gears และอีก 1 ชิ้นจากทั้งหมด ชิ้นส่วนไม่ต้องการความละเอียดแกน z ที่ละเอียดมาก แม้ว่าเตียงระดับจะมีความสำคัญเพื่อให้สเต็ปเปอร์เกียร์กระชับพอดี แต่ไม่แน่นจนไม่สามารถเปิดและปิดได้ Infill ประมาณ 10% -15% ดูเหมือนจะทำงานได้ดี
เมื่อทุกอย่างถูกพิมพ์แล้วก็ถึงเวลาประกอบชิ้นส่วน ขั้นแรก ติดตั้งสเต็ปเปอร์เกียร์บนสเต็ปเปอร์มอเตอร์ หากแน่นไปหน่อย ฉันพบว่าการเคาะเบา ๆ ด้วยค้อนนั้นได้ผลดีกว่าการผลักด้วยนิ้วหัวแม่มือของฉันมาก เมื่อเสร็จแล้ว ดันมอเตอร์เข้าไปในรูสามรูที่ฐาน อย่าดันลงไปจนสุดเพราะคุณอาจต้องปรับความสูง
เมื่อใส่ที่ยึดได้อย่างปลอดภัยแล้ว ให้วางคอลัมน์เมอร์คิวรี (อันที่สูงที่สุดและบางที่สุด) ลงบนเสาฐาน ตามด้วยดาวศุกร์และโลก ปรับสเต็ปเปอร์ให้เข้ากันได้ดีกับเฟืองขนาดใหญ่ทั้งสามตัว และให้สัมผัสกับเฟืองที่เหมาะสมเท่านั้น
ขั้นตอนที่ 3: การตัดด้วยเลเซอร์และติดแถบอะคริลิก
เนื่องจากฉันต้องการให้ท้องฟ้าจำลองของฉันดูดีในที่สว่างหรือในความมืด ฉันจึงตัดสินใจใช้แท่งอะคริลิกใสเพื่อยึดดาวเคราะห์ วิธีนี้จะไม่เบี่ยงเบนความสนใจจากดาวเคราะห์และดวงดาวด้วยการบดบังทัศนะของคุณ
ต้องขอบคุณพื้นที่ผู้ผลิตที่ยอดเยี่ยมที่โรงเรียนของฉัน DfX Lab ฉันจึงสามารถใช้เครื่องตัดเลเซอร์ 80W CO2 ของพวกเขาเพื่อตัดแท่งอะคริลิกออก มันเป็นกระบวนการที่ค่อนข้างตรงไปตรงมา ฉันส่งออกภาพวาดนักประดิษฐ์เป็น pdf จากนั้นเปิดและ "พิมพ์" ไฟล์ PDF ไปยังไดรเวอร์เครื่องพิมพ์ Retina Engrave จากนั้นฉันปรับขนาดและความสูงของโมเดล (TODO) ตั้งค่าพลังงาน (2 รอบ @ 40% ทำงานได้) และปล่อยให้เครื่องตัดเลเซอร์จัดการที่เหลือ
หลังจากที่คุณตัดแท่งอะครีลิกออกแล้ว พวกเขาอาจจำเป็นต้องขัดเกลา คุณสามารถขัดมันด้วยน้ำยาเช็ดกระจก (ตรวจสอบให้แน่ใจว่าไม่มีสารเคมีใด ๆ ที่ระบุด้วย "N" ที่นี่) หรือสบู่และน้ำ
เมื่อเสร็จแล้ว คุณจะต้องติดแถบกับดาวเคราะห์แต่ละดวง ฉันทำสิ่งนี้ด้วย Loctite Epoxy สำหรับพลาสติก เป็นอีพ็อกซี่ 2 ส่วนซึ่งใช้เวลาประมาณ 5 นาที ส่วนใหญ่จะแห้งตัวหลังจากผ่านไป 1 ชั่วโมง และแห้งตัวเต็มที่หลังจากผ่านไป 24 ชั่วโมง มันเป็นไทม์ไลน์ที่สมบูรณ์แบบ เพราะฉันรู้ว่าฉันจะต้องปรับตำแหน่งของชิ้นส่วนหลังจากทาอีพ็อกซี่เล็กน้อย นอกจากนี้ยังแนะนำเป็นพิเศษสำหรับพื้นผิวอะคริลิก
ขั้นตอนนี้ค่อนข้างยุติธรรม คำแนะนำบนบรรจุภัณฑ์มีมากเกินพอ เพียงแค่รีดส่วนที่เท่ากันของเรซินและสารชุบแข็งลงบนหนังสือพิมพ์หรือแผ่นกระดาษ แล้วคลุกเคล้าให้เข้ากันด้วยไม้จิ้มฟัน จากนั้นใช้แต้มเล็กๆ ที่ปลายด้านสั้นของแท่งอะคริลิก (ตรวจสอบให้แน่ใจว่าได้เคลือบแถบขึ้นไปเป็นระยะทางเล็กน้อย) และแตะเล็กน้อยที่ด้านล่างของดาวเคราะห์
จากนั้นจับทั้งสองไว้ด้วยกันและปรับทั้งคู่จนกว่าคุณจะพอใจกับการจัดวาง สำหรับสิ่งนี้ ฉันใช้มือช่วยจับแท่งอะคริลิกให้เข้าที่ (ฉันวางกระดาษทรายระหว่างทั้งสอง โดยให้ด้านที่มีฤทธิ์กัดกร่อนออก เพื่อป้องกันไม่ให้คลิปจระเข้เป็นรอยที่แถบ) และแกนบัดกรีที่ยึดโลกไว้.
เมื่ออีพ็อกซี่แห้งตัวเต็มที่แล้ว (ฉันมีเวลาเพียง 15 ชั่วโมงในการรักษา แต่ 24 ชั่วโมงเป็นสิ่งที่แนะนำ) คุณสามารถถอดชุดประกอบออกจากมือช่วยและทดสอบความพอดีในเสาดาวเคราะห์ ความหนาของแผ่นอะคริลิกที่ฉันใช้คือ 2.0 มม. ดังนั้นฉันจึงสร้างรูที่มีขนาดเท่ากันในเสาดาวเคราะห์ มันรัดแน่นมาก แต่โชคดีที่ด้วยการขัดเล็กน้อย ฉันสามารถเลื่อนเสาเข้าไปได้
ขั้นตอนที่ 4: การใช้คำสั่ง AT เพื่อเปลี่ยนการตั้งค่าโมดูลบลูทูธ
ขั้นตอนนี้อาจดูไม่เป็นระเบียบเล็กน้อย แต่จะง่ายกว่ามากหากคุณทำเช่นนี้ก่อนที่จะบัดกรีโมดูลบลูทูธ HC-05 ลงบนบอร์ด
เมื่อคุณได้รับ HC-05 คุณอาจต้องการเปลี่ยนการตั้งค่าจากโรงงานบางอย่าง เช่น ชื่ออุปกรณ์ (โดยทั่วไปคือ "HC-05") รหัสผ่าน (โดยทั่วไปคือ "1234") และอัตราบอด (ของฉันตั้งโปรแกรมไว้ที่ 9600 บอด).
วิธีที่ง่ายที่สุดในการเปลี่ยนการตั้งค่าเหล่านี้คือการติดต่อกับโมดูลจากคอมพิวเตอร์ของคุณโดยตรง สำหรับสิ่งนี้ คุณจะต้องใช้ตัวแปลง USB เป็น TTL UART หากคุณมีอันหนึ่งนอนอยู่รอบ ๆ คุณสามารถใช้สิ่งนั้นได้ คุณสามารถใช้อันที่มาพร้อมกับบอร์ด Arduino ที่ไม่ใช่ USB (Uno, Mega, Diecimila ฯลฯ) ค่อยๆ เสียบไขควงปากแบนขนาดเล็กระหว่างชิป ATMega กับซ็อกเก็ตบนบอร์ด Arduino จากนั้นเสียบหัวแบนจากอีกด้านหนึ่ง ค่อยๆ ยกชิปขึ้นเล็กน้อยจากแต่ละด้านจนหลวมและสามารถดึงออกจากซ็อกเก็ตได้
ตอนนี้โมดูลบลูทู ธ จะเข้าแทนที่ เมื่อถอด Arduino จากคอมพิวเตอร์ของคุณแล้ว ให้เชื่อมต่อ Arduino RX กับ HC-05 RX และ TX กับ TX เชื่อมต่อ Vcc บน HC-05 ถึง 5V บน Arduino และ GND กับ GND ตอนนี้เชื่อมต่อหมุดสถานะ / คีย์บน HC-05 ผ่านตัวต้านทาน 10k กับ Arduino 5V การดึงคีย์พินให้สูงเป็นสิ่งที่ช่วยให้คุณออกคำสั่ง AT เพื่อเปลี่ยนการตั้งค่าในโมดูลบลูทูธ
ตอนนี้ เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณ แล้วดึง Serial Monitor จาก Arduino IDE หรือ TTY จากบรรทัดคำสั่ง หรือโปรแกรมจำลองเทอร์มินัล เช่น TeraTerm เปลี่ยนอัตราบอดเป็น 38400 (ค่าเริ่มต้นสำหรับการสื่อสารของ AT) เปิด CRLF (ในมอนิเตอร์แบบอนุกรม นี่คือตัวเลือก "ทั้ง CR และ LF" หากคุณใช้บรรทัดคำสั่งหรือโปรแกรมอื่น ให้ค้นหาวิธีการนี้) โมดูลสื่อสารกับ 8 บิตข้อมูล 1 บิตหยุด ไม่มีบิตพาริตี และไม่มีการควบคุมการไหล (หากคุณใช้ Arduino IDE คุณไม่จำเป็นต้องกังวลเกี่ยวกับเรื่องนี้)
ตอนนี้พิมพ์ "AT" ตามด้วยขึ้นบรรทัดใหม่ คุณควรได้รับการตอบกลับว่า "ตกลง" หากไม่เป็นเช่นนั้น ให้ตรวจสอบสายไฟและลองใช้อัตราบอดอื่น
ในการเปลี่ยนชื่ออุปกรณ์ประเภท "AT+NAME=" ซึ่งเป็นชื่อที่คุณต้องการให้ HC-05 ออกอากาศเมื่ออุปกรณ์อื่นพยายามจับคู่กับอุปกรณ์นั้น
หากต้องการเปลี่ยนรหัสผ่าน ให้พิมพ์ "AT+PSWD="
หากต้องการเปลี่ยนอัตราบอด ให้พิมพ์ "AT+UART="
สำหรับรายการคำสั่ง AT ทั้งหมด โปรดดูเอกสารข้อมูลนี้
ขั้นตอนที่ 5: การออกแบบวงจร
การออกแบบวงจรค่อนข้างง่าย เนื่องจาก Arduino Uno จะไม่พอดีกับกล่องที่มีระบบเกียร์ ฉันจึงตัดสินใจประสานทุกอย่างไว้ในบอร์ดเดียว และใช้เฉพาะ ATMega328 ที่ไม่มีตัวแปลง usb-to-uart ของ ATMega16U2 ที่อยู่บนบอร์ด Uno
มีสี่ส่วนหลักในแผนผัง (นอกเหนือจากไมโครคอนโทรลเลอร์ที่เห็นได้ชัดเจน): แหล่งจ่ายไฟ ออสซิลเลเตอร์คริสตัล ไดรเวอร์สเต็ปเปอร์มอเตอร์ และโมดูลบลูทูธ
พาวเวอร์ซัพพลาย
แหล่งจ่ายไฟมาจากแหล่งจ่ายไฟ 3A 5V ที่ฉันซื้อจาก eBay มันจบลงด้วย OD 5.5 มม., ปลั๊กกระบอก ID 2.1 มม. พร้อมปลายบวก ดังนั้นส่วนปลายจะเชื่อมต่อกับแหล่งจ่ายไฟ 5V และดังกราวด์ นอกจากนี้ยังมีตัวเก็บประจุแบบแยกส่วน 1uF เพื่อขจัดเสียงรบกวนจากแหล่งจ่ายไฟ โปรดสังเกตว่าแหล่งจ่ายไฟ 5V เชื่อมต่อกับทั้ง VCC และ AVCC และกราวด์เชื่อมต่อกับทั้ง GND และ AGND
คริสตัลออสซิลเลเตอร์
ฉันใช้คริสตัลออสซิลเลเตอร์ 16MHz และตัวเก็บประจุ 2 22 pF ตามแผ่นข้อมูลสำหรับตระกูล ATMegaXX8 สิ่งนี้เชื่อมต่อกับพิน XTAL1 และ XTAL2 บนไมโครคอนโทรลเลอร์
ไดรเวอร์สเต็ปเปอร์มอเตอร์
จริงๆ แล้วสิ่งเหล่านี้สามารถเชื่อมต่อกับพินใดก็ได้ ฉันเลือกสิ่งเหล่านี้เพราะมันทำให้มีเลย์เอาต์ที่กะทัดรัดและตรงไปตรงมาที่สุดเมื่อถึงเวลาต้องใส่ทุกอย่างบนแผงวงจร
โมดูลบลูทูธ
TX ของ HC-05 เชื่อมต่อกับ RX ของไมโครคอนโทรลเลอร์ และ RX กับ TX เพื่อให้ทุกสิ่งที่ส่งไปยังโมดูลบลูทู ธ จากอุปกรณ์ระยะไกลจะถูกส่งต่อไปยังไมโครคอนโทรลเลอร์และข้อรอง หมุด KEY ถูกตัดการเชื่อมต่อเพื่อไม่ให้มีการกำหนดค่าการตั้งค่าใหม่บนโมดูลโดยไม่ได้ตั้งใจ
หมายเหตุ
ฉันวางตัวต้านทานแบบดึงขึ้น 10k บนพินรีเซ็ต สิ่งนี้ไม่จำเป็น แต่ฉันคิดว่าอาจป้องกันโอกาสที่พินรีเซ็ตจะเหลือต่ำนานกว่า 2.5us ไม่น่าจะใช่ แต่ก็มีอยู่แล้ว
ขั้นตอนที่ 6: การวางแผนเค้าโครง Stripboard
เลย์เอาต์สตริปบอร์ดไม่ซับซ้อนเกินไปเช่นกัน ATMega อยู่ตรงกลางโดยมีไดรเวอร์สเต็ปเปอร์มอเตอร์และโมดูลบลูทู ธ เรียงรายไปด้วยพินที่ต้องเชื่อมต่อ ออสซิลเลเตอร์คริสตัลและตัวเก็บประจุอยู่ระหว่าง Stepper3 และ HC-05 ตัวเก็บประจุแบบแยกคัปปลิ้งหนึ่งตัวอยู่ตรงตำแหน่งที่แหล่งจ่ายไฟเข้ามาในบอร์ด และอีกตัวหนึ่งอยู่ระหว่างสเต็ป 1 และ 2
เครื่องหมาย X เป็นจุดที่คุณต้องเจาะรูตื้นเพื่อตัดการเชื่อมต่อ ฉันใช้ดอกสว่านขนาด 7/64 และเจาะจนกระทั่งรูกว้างเท่ากับเส้นผ่านศูนย์กลางของดอกสว่านเท่านั้น วิธีนี้ช่วยให้แน่ใจว่าร่องรอยทองแดงถูกแบ่งออกจนหมด แต่จะหลีกเลี่ยงการเจาะที่ไม่จำเป็นและทำให้กระดานแข็งแรง
การเชื่อมต่อแบบสั้นสามารถทำได้โดยใช้สะพานประสาน หรือโดยการบัดกรีลวดทองแดงขนาดเล็กที่ไม่มีฉนวนหุ้มในแต่ละแถว การกระโดดที่ใหญ่ขึ้นควรทำโดยใช้ลวดหุ้มฉนวนที่ด้านล่างหรือด้านบนของกระดาน
ขั้นตอนที่ 7: การบัดกรี
หมายเหตุ: นี่จะไม่ใช่บทแนะนำเกี่ยวกับการบัดกรี หากคุณไม่เคยบัดกรีมาก่อน YouTube และ Instructables คือเพื่อนที่ดีที่สุดของคุณที่นี่ มีบทช่วยสอนที่ยอดเยี่ยมมากมายนับไม่ถ้วนที่สอนพื้นฐานและจุดปลีกย่อย (ฉันไม่ได้อ้างว่ารู้จุดปลีกย่อย จนกระทั่งเมื่อไม่กี่สัปดาห์ก่อน ฉันเหนื่อยกับการบัดกรี)
สิ่งแรกที่ฉันทำกับไดรเวอร์สเต็ปเปอร์มอเตอร์และโมดูลบลูทูธคือการถอดส่วนหัวของตัวผู้ที่งอและบัดกรีที่ส่วนหัวของตัวผู้ตรงไปทางด้านหลังของบอร์ด สิ่งนี้จะช่วยให้พวกมันแบนราบบนแผ่นกระดาน
ขั้นตอนต่อไปคือการเจาะรูทั้งหมดที่จำเป็นในการทำลายการเชื่อมต่อ หากคุณยังไม่ได้ทำ
หลังจากเสร็จแล้ว ให้เพิ่มสายจัมเปอร์ที่ไม่มีฉนวนที่ด้านบนของบอร์ด หากคุณต้องการให้พวกมันอยู่ด้านล่าง คุณสามารถทำได้ในภายหลัง
ฉันบัดกรีบนซ็อกเก็ต IC ก่อนเพื่อให้เป็นจุดอ้างอิงสำหรับส่วนประกอบที่เหลือ อย่าลืมสังเกตทิศทางของซ็อกเก็ต! การเยื้องรูปครึ่งวงกลมควรอยู่ใกล้กับตัวต้านทาน 10k มากที่สุด เนื่องจากไม่ชอบที่จะอยู่กับที่ก่อนที่จะบัดกรี คุณจึงสามารถ (ใช้ฟลักซ์ก่อนได้) ดีบุกแผ่นมุมตรงข้ามสองอัน และในขณะที่จับซ็อกเก็ตจากด้านล่าง ให้ปรับสภาพกระป๋องใหม่ ตอนนี้ซ็อกเก็ตควรอยู่กับที่เพื่อให้คุณสามารถประสานหมุดที่เหลือได้
สำหรับชิ้นส่วนที่มีลีด (ตัวเก็บประจุและตัวต้านทานในกรณีนี้) การใส่ชิ้นส่วนแล้วดัดลีดเล็กน้อยควรเก็บไว้ให้เข้าที่ขณะบัดกรี
หลังจากที่บัดกรีทุกอย่างเข้าที่แล้ว คุณสามารถใช้สนิปเล็กๆ (หรือเพราะฉันไม่มีที่ตัดเล็บแบบเก่าเลย) เพื่อตัดลีด
ตอนนี้เป็นส่วนสำคัญ ตรวจสอบ ตรวจสอบอีกครั้ง และตรวจสอบการเชื่อมต่อทั้งหมดสามครั้ง เดินไปรอบๆ บอร์ดด้วยเครื่องวัดความต่อเนื่องเพื่อให้แน่ใจว่าทุกอย่างเชื่อมต่อแล้วที่ควรเชื่อมต่อ และไม่มีสิ่งใดเชื่อมต่อที่ไม่ควรเชื่อมต่อ
ใส่ชิปลงในซ็อกเก็ต ตรวจสอบให้แน่ใจว่ารอยเว้าครึ่งวงกลมอยู่ด้านเดียวกัน ตอนนี้เสียบปลั๊กไฟที่ผนังแล้วต่อกับแจ็คไฟ dc หากไฟที่ไดรเวอร์ stepper สว่างขึ้น ให้ถอดปลั๊กแหล่งจ่ายไฟและตรวจสอบการเชื่อมต่อทั้งหมด หาก ATMega (หรือส่วนใดส่วนหนึ่งของบอร์ด แม้แต่สายไฟ) มีความร้อนสูง ให้ถอดปลั๊กไฟและตรวจสอบการเชื่อมต่อทั้งหมด
บันทึก
ฟลักซ์การบัดกรีควรเปลี่ยนชื่อใหม่เป็น "Literally Magic" อย่างจริงจัง ฟลักซ์ทำให้สิ่งต่าง ๆ มีมนต์ขลัง ใช้มันอย่างไม่เห็นแก่ตัวทุกเวลาก่อนที่คุณจะประสาน
ขั้นตอนที่ 8: การเบิร์น Bootloader บน ATMega
เมื่อฉันได้รับ ATMegas ด้วยเหตุผลบางอย่าง พวกเขาจึงไม่อนุญาตให้อัปโหลดภาพสเก็ตช์ใดๆ ให้พวกเขา ดังนั้นฉันจึงต้องเบิร์นบูตโหลดเดอร์ใหม่ เป็นกระบวนการที่ค่อนข้างง่าย หากคุณแน่ใจว่าคุณมี Arduino/optiboot bootloader บนชิปอยู่แล้ว คุณสามารถข้ามขั้นตอนนี้ได้
คำแนะนำต่อไปนี้นำมาจากบทช่วยสอนบน arduino.cc:
- อัปโหลดร่าง ArduinoISP ลงบนบอร์ด Arduino ของคุณ (คุณจะต้องเลือกบอร์ดและพอร์ตอนุกรมจากเมนูเครื่องมือที่ตรงกับบอร์ดของคุณ)
- ต่อบอร์ด Arduino และไมโครคอนโทรลเลอร์ตามที่แสดงในแผนภาพด้านขวา
- เลือก "Arduino Duemilanove หรือ Nano w/ ATmega328" จากเมนู Tools > Board(หรือ "ATmega328 บนเขียงหั่นขนม (นาฬิกาภายใน 8 MHz)" หากใช้การกำหนดค่าขั้นต่ำที่อธิบายไว้ด้านล่าง)
- เรียกใช้เครื่องมือ > เบิร์น Bootloader > w/ Arduino เป็น ISP คุณควรเบิร์น bootloader เพียงครั้งเดียวเท่านั้น หลังจากที่คุณทำเสร็จแล้ว คุณสามารถถอดสายจัมเปอร์ที่เชื่อมต่อกับพิน 10, 11, 12 และ 13 ของบอร์ด Arduino ได้
ขั้นตอนที่ 9: Arduino Sketch
รหัสของฉันทั้งหมดมีอยู่ใน GitHub นี่คือภาพร่าง Arduino บน GitHub ทุกอย่างได้รับการจัดทำเป็นเอกสารด้วยตนเอง และควรเข้าใจได้ง่ายว่าคุณเคยทำงานกับไลบรารี Arduino มาก่อนหรือไม่
โดยพื้นฐานแล้ว จะรับบรรทัดอินพุตบนอินเทอร์เฟซ UART ซึ่งมีตำแหน่งเป้าหมายสำหรับดาวเคราะห์แต่ละดวงเป็นองศา มันใช้ตำแหน่งองศาเหล่านี้และกระตุ้นสเต็ปเปอร์มอเตอร์เพื่อย้ายดาวเคราะห์แต่ละดวงไปยังตำแหน่งเป้าหมาย
ขั้นตอนที่ 10: การอัปโหลด Arduino Sketch
ต่อไปนี้ส่วนใหญ่คัดลอกมาจาก ArduinoToBreadboard บนเว็บไซต์ arduino.cc:
เมื่อ ATmega328p ของคุณมี Arduino bootloader อยู่แล้ว คุณสามารถอัปโหลดโปรแกรมได้โดยใช้ตัวแปลง USB เป็นซีเรียล (ชิป FTDI) บนบอร์ด Arduino คุณต้องถอดไมโครคอนโทรลเลอร์ออกจากบอร์ด Arduino เพื่อให้ชิป FTDI สามารถพูดคุยกับไมโครคอนโทรลเลอร์บนเขียงหั่นขนมแทนได้ แผนภาพด้านบนแสดงวิธีเชื่อมต่อสาย RX และ TX จากบอร์ด Arduino กับ ATmega บนเขียงหั่นขนม ในการตั้งโปรแกรมไมโครคอนโทรลเลอร์ ให้เลือก "Arduino Duemilanove หรือ Nano w/ ATmega328" จากเมนู Tools > Board แล้วอัพโหลดตามปกติ
หากสิ่งนี้พิสูจน์ได้ว่าเป็นงานที่น่าเบื่อเกินไป สิ่งที่ฉันทำคือเพียงแค่เสียบ ATMega ลงในซ็อกเก็ต DIP28 ทุกครั้งที่ฉันต้องการตั้งโปรแกรม และนำออกในภายหลัง ตราบใดที่คุณระมัดระวังและอ่อนโยนกับหมุด ก็น่าจะไม่เป็นไร
ขั้นตอนที่ 11: รหัสแอป Android
เช่นเดียวกับรหัส Arduino รหัส Android ของฉันอยู่ที่นี่ อีกครั้งเป็นเอกสารด้วยตนเอง แต่นี่เป็นภาพรวมโดยย่อ
ผู้ใช้ใช้วันที่จากผู้ใช้และคำนวณว่าดาวพุธ ดาวศุกร์ และโลกอยู่ที่ไหน/จะ/จะอยู่ที่ใดในวันนั้น ถือว่าเที่ยงคืนเพื่อทำให้ง่ายขึ้น แต่บางทีฉันจะเพิ่มการสนับสนุนด้านเวลาเร็ว ๆ นี้ มันทำการคำนวณเหล่านี้โดยใช้ไลบรารี Java ที่ยอดเยี่ยมชื่อ AstroLib ซึ่งสามารถทำได้มากกว่าที่ฉันใช้ เมื่อมีพิกัดเหล่านี้แล้ว จะส่งเพียงลองจิจูด ("ตำแหน่ง" ที่คุณมักนึกถึงเมื่อพูดถึงวงโคจรของดาวเคราะห์) ไปยังโมดูลบลูทูธสำหรับดาวเคราะห์แต่ละดวง มันง่ายมาก!
หากคุณต้องการสร้างโปรเจ็กต์ด้วยตัวเอง ก่อนอื่นคุณต้องตั้งค่าโทรศัพท์ให้อยู่ในโหมดนักพัฒนาซอฟต์แวร์ คำแนะนำในการดำเนินการนี้อาจขึ้นอยู่กับผู้ผลิตโทรศัพท์ของคุณ รุ่นของอุปกรณ์ หากคุณใช้ม็อดแบบกำหนดเอง ฯลฯ แต่โดยทั่วไป ไปที่การตั้งค่า -> เกี่ยวกับโทรศัพท์ แล้วแตะ "หมายเลขบิลด์" 7 ครั้งน่าจะทำได้ คุณควรได้รับข้อความแจ้งเตือนว่าคุณเปิดใช้งานโหมดนักพัฒนาซอฟต์แวร์แล้ว ตอนนี้ไปที่การตั้งค่า -> ตัวเลือกสำหรับนักพัฒนาและเปิดการแก้จุดบกพร่อง USB ตอนนี้เสียบโทรศัพท์ของคุณเข้ากับคอมพิวเตอร์โดยใช้สาย USB สำหรับชาร์จ + ข้อมูล
ตอนนี้ดาวน์โหลดหรือโคลนโครงการจาก GitHub เมื่อคุณมีในเครื่องแล้ว ให้เปิดใน Android Studio แล้วกด Run (ปุ่มเล่นสีเขียวบนแถบเครื่องมือด้านบน) เลือกโทรศัพท์ของคุณจากรายการและกดตกลง บนโทรศัพท์ของคุณ ระบบจะถามว่าคุณเชื่อถือคอมพิวเตอร์ที่คุณเชื่อมต่ออยู่หรือไม่ กด "ใช่" (หรือ "เชื่อถือคอมพิวเตอร์เครื่องนี้เสมอ" หากเป็นเครื่องของคุณเองและปลอดภัย) แอปควรรวบรวม ติดตั้งบนโทรศัพท์ของคุณ และเปิดขึ้น
ขั้นตอนที่ 12: การใช้แอพ
การใช้งานแอพค่อนข้างง่าย
- หากคุณยังไม่ได้จับคู่ HC-05 กับโทรศัพท์ของคุณ ให้ทำในการตั้งค่า -> Bluetooth
- กด "เชื่อมต่อ" จากเมนูตัวเลือกที่มุมบนขวา
- เลือกอุปกรณ์ของคุณจากรายการ
- หลังจากผ่านไปสองสามวินาที คุณควรได้รับการแจ้งเตือนว่ามีการเชื่อมต่อ หากไม่ ให้ตรวจสอบว่าท้องฟ้าจำลองเปิดอยู่และไม่ติดไฟ
- เลือกวันที่ เลื่อนขึ้นและลงในตัวเลือกคำสั่งผสมเดือน วัน และปี และใช้ปุ่มลูกศรเพื่อข้ามย้อนกลับหรือไปข้างหน้าทีละ 100 ปี
- กดส่ง!
คุณควรเห็นท้องฟ้าจำลองเริ่มเคลื่อนตัวดาวเคราะห์ ณ จุดนี้ ถ้าไม่ตรวจสอบให้แน่ใจว่าได้เปิดเครื่องแล้ว
ขั้นตอนที่ 13: ข้อสังเกตสุดท้าย
การเป็นโครงการที่จับต้องได้ครั้งแรกของฉัน การพูดน้อยเกินไปว่าฉันได้เรียนรู้อะไรมากมาย อย่างจริงจัง มันสอนฉันมากมายเกี่ยวกับทุกอย่างตั้งแต่การบำรุงรักษาการแก้ไขโค้ด การบัดกรี การวางแผนโครงการ การตัดต่อวิดีโอ ไปจนถึงการสร้างแบบจำลอง 3 มิติ ไมโครคอนโทรลเลอร์ จนถึง… ฉันก็ไปต่อได้
ประเด็นคือ ถ้าคุณไปที่ USF (Go Bulls!) และสนใจสินค้าประเภทนี้ ให้เข้าร่วมหลักสูตร MAKE หากโรงเรียนของคุณเสนอสิ่งที่คล้ายกันให้ทำ หากคุณไม่ได้อยู่ในโรงเรียนหรือไม่มีชั้นเรียนที่คล้ายกัน ให้ทำอะไรบางอย่าง! อย่างจริงจังนี่เป็นขั้นตอนที่ยากที่สุด การได้รับความคิดเป็นเรื่องยาก แต่เมื่อคุณมีไอเดียแล้ว ให้ดำเนินการตามนั้น อย่าพูดว่า "โอ้ โง่" หรือ "โอ้ ฉันไม่มีเวลา" แค่คิดต่อไปว่าอะไรจะทำให้ไอเดียนั้นเจ๋งและลงมือทำ
นอกจากนี้ ให้ google รอบๆ เพื่อดูว่ามีแฮ็กเกอร์สเปซอยู่ใกล้คุณหรือไม่ หากคุณสนใจที่จะทำโปรเจ็กต์ฮาร์ดแวร์และซอฟต์แวร์ แต่ไม่รู้ว่าจะเริ่มต้นจากตรงไหน นี่เป็นจุดเริ่มต้นที่ดี
ฉันหวังว่าคุณจะสนุกกับคำแนะนำนี้!
แนะนำ:
เกจวัดในรถยนต์ OLED ESP32 ที่เปิดใช้งาน Wifi: 3 ขั้นตอน (พร้อมรูปภาพ)
เกจวัดในรถยนต์ OLED ESP32 ที่เปิดใช้งาน Wifi: บทนำก่อน… ฉันสร้างเกจในรถยนต์เป็นงานอดิเรกเปิดและปิดอีกครั้ง ดู https://www.instructables.com/id/Remote-Car-Monit… และ https://www.instructables.com/id/Remote-Car-Monit… สำหรับตัวอย่างล่าสุดอีกสองตัวอย่าง ชอบเป็นพิเศษ
สร้าง Micro-quadrotor ที่เปิดใช้งาน WiFi: 5 ขั้นตอน
สร้างไมโครควอโดรเตอร์ที่เปิดใช้งาน WiFi: คำแนะนำนี้เพียงแค่บันทึกว่าการสร้างไมโครควอโดรเตอร์ที่เปิดใช้งาน WiFi ด้วยตัวเองนั้นง่ายเพียงใด ! ชิ้นส่วนส่วนใหญ่สามารถซื้อได้ในราคาถูกและง่ายดาย และใช้โทรศัพท์ Android ของคุณเป็นรีโมตคอนโทรล
Nerf Blaster ที่เปิดใช้งาน Bluetooth: 7 ขั้นตอน
Nerf Blaster ที่เปิดใช้งาน Bluetooth: ฉันรู้สึกได้รับแรงบันดาลใจจากโปรเจ็กต์ของ Colin Furze และตัดสินใจสร้างเวอร์ชั่นของตัวเองสำหรับ Remix Challenge การออกแบบที่ฉันใช้นั้นคล้ายคลึงกัน แต่มีความชำนาญมากกว่า และมีโมดูล Bluetooth ที่ช่วยให้สามารถควบคุมป้อมปืนจากโทรศัพท์ของฉันได้ นี่คือ
โคมไฟ Death Star ที่เปิดใช้งาน Alexa: 17 ขั้นตอน (พร้อมรูปภาพ)
โคมไฟ Death Star ที่เปิดใช้งาน Alexa: นำตัวอย่างด้านมืดมาสู่ห้องนั่งเล่นของคุณด้วยโคมไฟสั่งงานด้วยเสียงที่ไม่เหมือนใคร งานศิลปะที่มีประโยชน์ใช้สอยและน่ามอง เปิดหรือปิด? โคมไฟทั้งหมดทำเช่นนั้น! เปลี่ยนความสว่าง? ธรรมดามาก! แต่ของคุณได้ไหม
การใช้โทรศัพท์ Sony Ericsson ที่เปิดใช้งาน Bluetooth เพื่อควบคุมคอมพิวเตอร์ของคุณ: 6 ขั้นตอน
การใช้โทรศัพท์ Sony Ericsson ที่เปิดใช้งาน Bluetooth เพื่อควบคุมคอมพิวเตอร์ของคุณ: ฉันได้อ่านคำสั่งสอนมาระยะหนึ่งแล้ว และฉันต้องการทำบางสิ่งที่ผู้คนเขียนถึงอยู่เสมอ แต่พบว่าตัวเองกำลังดูสิ่งที่ ที่ทำได้ยากเพราะทำได้ยากจริงๆ หรือ