สารบัญ:
- ขั้นตอนที่ 1: สิ่งที่คุณต้องการ
- ขั้นตอนที่ 2: พิกัดดาวเคราะห์
- ขั้นตอนที่ 3: การเข้าถึง Planet Data
- ขั้นตอนที่ 4: รหัส
- ขั้นตอนที่ 5: การเชื่อมต่อฮาร์ดแวร์
- ขั้นตอนที่ 6: การออกแบบเคส
- ขั้นตอนที่ 7: ทดสอบงานพิมพ์
- ขั้นตอนที่ 8: ขยายสเต็ปเปอร์มอเตอร์
- ขั้นตอนที่ 9: ติดตั้งปุ่มและหน้าจอ LCD
- ขั้นตอนที่ 10: การเพิ่มครีบ
- ขั้นตอนที่ 11: เรียกใช้เมื่อเริ่มต้น
- ขั้นตอนที่ 12: กาวเข้าด้วยกัน
- ขั้นตอนที่ 13: การใช้งาน
- ขั้นตอนที่ 14: เสร็จสิ้น
วีดีโอ: Raspberry Pi Planet Finder: 14 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
นอกศูนย์วิทยาศาสตร์ในเมืองของฉัน มีโครงสร้างโลหะขนาดใหญ่ที่สามารถเลี้ยวและชี้ไปยังตำแหน่งที่ดาวเคราะห์อยู่บนท้องฟ้าได้ ฉันไม่เคยเห็นมันทำงาน แต่ฉันคิดเสมอว่าคงจะวิเศษมากที่รู้ว่าโลกอื่นที่ไม่สามารถเข้าถึงได้จริงเหล่านี้เกี่ยวข้องกับตัวฉันเล็ก ๆ น้อย ๆ ของฉันอย่างไร
เมื่อฉันเดินผ่านนิทรรศการที่ตายไปนานเมื่อเร็ว ๆ นี้ ฉันคิดว่า "ฉันพนันได้เลยว่าฉันทำได้" และฉันก็ทำได้!
นี่คือคู่มือเกี่ยวกับวิธีการสร้าง Planet Finder (ที่มีดวงจันทร์) เพื่อให้คุณรู้ว่าจะต้องมองที่ไหนเมื่อรู้สึกทึ่งกับอวกาศ
ขั้นตอนที่ 1: สิ่งที่คุณต้องการ
1 x Raspberry Pi (เวอร์ชัน 3 ขึ้นไปสำหรับ wifi ออนบอร์ด)
1 x หน้าจอ LCD (16 x 2) (แบบนี้)
2 x สเต็ปเปอร์มอเตอร์พร้อมไดรเวอร์ (28-BYJ48) (เช่นนี้)
3 x ปุ่มกด (แบบนี้)
2 x ข้อต่อแบบแปลน (แบบนี้)
1 x ปุ่มเข็มทิศ (แบบนี้)
สลักเกลียวและน็อต 8 x M3
ชิ้นส่วนที่พิมพ์ 3 มิติสำหรับเคสและกล้องโทรทรรศน์
ขั้นตอนที่ 2: พิกัดดาวเคราะห์
มีหลายวิธีในการอธิบายตำแหน่งของวัตถุทางดาราศาสตร์บนท้องฟ้า
สำหรับเรา สิ่งที่เหมาะสมที่สุดที่จะใช้คือระบบพิกัดแนวนอนดังที่แสดงในภาพด้านบน ภาพนี้มาจากหน้า Wikipedia ที่เชื่อมโยงที่นี่:
th.wikipedia.org/wiki/Horizontal_coordinat…
ระบบพิกัดแนวนอนช่วยให้คุณมีมุมจากทิศเหนือ (Azimuth) และขึ้นไปจากเส้นขอบฟ้า (ระดับความสูง) ดังนั้นจึงแตกต่างกันไปขึ้นอยู่กับว่าคุณมองจากที่ใดในโลก ดังนั้นผู้ค้นหาดาวเคราะห์ของเราต้องคำนึงถึงสถานที่และมีวิธีในการค้นหาทิศเหนือเพื่อเป็นข้อมูลอ้างอิง
แทนที่จะพยายามคำนวณระดับความสูงและ Azimuth ซึ่งเปลี่ยนแปลงตามเวลาและสถานที่ เราจะใช้การเชื่อมต่อ wifi บน Raspberry Pi เพื่อค้นหาข้อมูลนี้จาก NASA พวกเขาคอยติดตามเรื่องแบบนี้เราจึงไม่ต้อง;)
ขั้นตอนที่ 3: การเข้าถึง Planet Data
เราได้รับข้อมูลของเราจาก NASA Jet Propulsion Laboratory (JPL) -
ในการเข้าถึงข้อมูลนี้ เราใช้ไลบรารีชื่อ AstroQuery ซึ่งเป็นชุดเครื่องมือสำหรับการสืบค้นแบบฟอร์มและฐานข้อมูลทางดาราศาสตร์ เอกสารประกอบสำหรับห้องสมุดนี้มีอยู่ที่นี่:
หากนี่เป็นโครงการ Raspberry Pi แรกของคุณ ให้เริ่มต้นด้วยการปฏิบัติตามคู่มือการตั้งค่านี้:
หากคุณใช้ Raspbian กับ Raspberry Pi (คุณจะปฏิบัติตามคำแนะนำด้านบน) แสดงว่าคุณได้ติดตั้ง python3 แล้ว ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งเวอร์ชันล่าสุดแล้ว (ฉันกำลังใช้เวอร์ชัน 3.7.3) เราจำเป็นต้องใช้สิ่งนี้เพื่อรับ pip เปิดเทอร์มินัลแล้วพิมพ์ดังต่อไปนี้:
sudo apt ติดตั้ง python3-pip
จากนั้นเราสามารถใช้ pip เพื่อติดตั้ง astroquery เวอร์ชันอัพเกรดได้
ติดตั้ง pip3 --pre --upgrade astroquery
ก่อนดำเนินการต่อกับส่วนที่เหลือของโปรเจ็กต์นี้ ให้ลองเข้าถึงข้อมูลนี้ด้วยสคริปต์ Python ง่ายๆ เพื่อให้แน่ใจว่าได้ติดตั้งการพึ่งพาที่ถูกต้องทั้งหมดอย่างถูกต้อง
จาก astroquery.jplhorizons นำเข้า Horizons
mars = Horizons(id=499, location='000', epochs=None, id_type='majorbody') eph = mars.ephemerides() พิมพ์ (eph)
นี่ควรแสดงรายละเอียดตำแหน่งของดาวอังคารให้คุณเห็น!
คุณสามารถตรวจสอบว่าข้อมูลนี้ถูกต้องหรือไม่โดยใช้ไซต์นี้เพื่อค้นหาตำแหน่งดาวเคราะห์ที่มีชีวิต:
เพื่อแยกการสืบค้นนี้ออกเล็กน้อย id คือหมายเลขที่เกี่ยวข้องกับ Mars ในข้อมูลของ JPL ยุคคือเวลาที่เราต้องการข้อมูลจาก (ไม่มีหมายความว่าตอนนี้) และ id_type กำลังขอวัตถุหลักของระบบสุริยะ ที่ตั้งปัจจุบันตั้งเป็นสหราชอาณาจักรเนื่องจาก '000' เป็นรหัสที่ตั้งของหอดูดาวในกรีนิช สามารถค้นหาสถานที่อื่นๆ ได้ที่นี่:
การแก้ไขปัญหา:
หากคุณได้รับข้อผิดพลาด: ไม่มีโมดูลชื่อ 'keyring.util.escape'
ลองใช้คำสั่งต่อไปนี้ในเทอร์มินัล:
ติดตั้ง pip3 --upgrade keyrings.alt
ขั้นตอนที่ 4: รหัส
สิ่งที่แนบมากับขั้นตอนนี้คือสคริปต์ python แบบเต็มที่ใช้ในโปรเจ็กต์นี้
หากต้องการค้นหาข้อมูลที่ถูกต้องสำหรับตำแหน่งของคุณ ให้ไปที่ฟังก์ชัน getPlanetInfo และเปลี่ยนตำแหน่งโดยใช้รายการหอดูดาวในขั้นตอนก่อนหน้า
def getPlanetInfo (ดาวเคราะห์):
obj = Horizons(id=planet, location='000', epochs=None, id_type='majorbody') eph = obj.ephemerides() กลับ eph
ขั้นตอนที่ 5: การเชื่อมต่อฮาร์ดแวร์
ใช้เขียงหั่นขนมและสายจัมเปอร์ เชื่อมต่อสเต็ปเปอร์มอเตอร์สองตัว หน้าจอ LCD และปุ่มสามปุ่มดังแสดงในแผนภาพวงจรด้านบน
หากต้องการค้นหาหมายเลขพินบน Raspberry Pi ของคุณ ให้ไปที่เทอร์มินัลแล้วพิมพ์
pinout
นี่ควรแสดงภาพด้านบนพร้อมหมายเลข GPIO และหมายเลขบอร์ด เราใช้หมายเลขบอร์ดเพื่อกำหนดพินที่ใช้ในโค้ด ดังนั้นฉันจะอ้างอิงตัวเลขในวงเล็บ
เพื่อช่วยในแผนภาพวงจร นี่คือหมุดที่เชื่อมต่อกับแต่ละส่วน:
สเต็ปเปอร์มอเตอร์ตัวที่ 1 - 7, 11, 13, 15
สเต็ปเปอร์มอเตอร์ตัวที่ 2 - 40, 38, 36, 32
Button1 - 33
Button2 - 37
Button3 - 35
หน้าจอ LCD - 26, 24, 22, 18, 16, 12
เมื่อเชื่อมต่อทั้งหมดแล้ว ให้รันสคริปต์ python
python3 planetFinder.py
และคุณควรเห็นหน้าจอแสดงข้อความการตั้งค่าและปุ่มต่างๆ ควรเคลื่อนสเต็ปเปอร์มอเตอร์
ขั้นตอนที่ 6: การออกแบบเคส
ตัวเคสได้รับการออกแบบให้พิมพ์ 3 มิติได้อย่างง่ายดาย โดยจะแบ่งออกเป็นส่วนต่างๆ แยกกัน ซึ่งจะติดกาวเข้าด้วยกันเมื่ออุปกรณ์อิเล็กทรอนิกส์เข้าที่แล้ว
รูมีขนาดสำหรับปุ่มที่ฉันใช้และสลักเกลียว M3
ฉันพิมพ์กล้องโทรทรรศน์เป็นชิ้นส่วนและติดมันเข้าด้วยกันในภายหลังเพื่อหลีกเลี่ยงโครงสร้างการรองรับที่มากเกินไป
ไฟล์ STL แนบมากับขั้นตอนนี้
ขั้นตอนที่ 7: ทดสอบงานพิมพ์
เมื่อทุกอย่างถูกพิมพ์ออกมาแล้ว ตรวจสอบให้แน่ใจว่าทุกอย่างเข้ากันพอดีก่อนที่จะทำการติดกาว
ติดตั้งปุ่มให้เข้าที่และยึดหน้าจอและสเต็ปเปอร์มอเตอร์ด้วยสลักเกลียว M3 และทำให้ทุกอย่างขยับได้ ตะไบขอบหยาบๆ ให้แยกทุกอย่างออกจากกันอีกครั้งก่อนทำขั้นตอนต่อไป
ขั้นตอนที่ 8: ขยายสเต็ปเปอร์มอเตอร์
สเต็ปเปอร์มอเตอร์ซึ่งจะควบคุมมุมเงยของกล้องโทรทรรศน์จะตั้งอยู่เหนือเคสหลักและต้องใช้สายไฟที่หย่อนเพื่อหมุน ต้องขยายสายไฟโดยการตัดระหว่างสเต็ปเปอร์กับบอร์ดควบคุม และบัดกรีลวดที่มีความยาวใหม่ระหว่างนั้น
ฉันสอดลวดใหม่เข้าไปในเสาค้ำโดยใช้ด้ายเพื่อช่วยกลบเกลื่อนให้ผ่าน เนื่องจากลวดที่ฉันใช้ค่อนข้างแข็งและติดค้างอยู่เรื่อยๆ เมื่อผ่านไปแล้วก็สามารถบัดกรีเข้ากับสเต็ปเปอร์มอเตอร์ได้ โดยต้องคอยติดตามว่าสีใดที่เชื่อมต่ออยู่ เพื่อประกอบสีที่ถูกต้องเข้ากับปลายอีกด้านหนึ่ง อย่าลืมเพิ่มการหดตัวด้วยความร้อนให้กับสายไฟ!
เมื่อบัดกรีแล้ว ให้รันสคริปต์ python เพื่อตรวจสอบว่าทุกอย่างยังทำงานอยู่ จากนั้นดันสายไฟกลับลงไปในท่อจนกระทั่งสเต็ปเปอร์มอเตอร์อยู่ในตำแหน่ง จากนั้นสามารถติดเข้ากับตัวเรือนสเต็ปเปอร์มอเตอร์ด้วยสลักเกลียวและน็อต M3 ก่อนที่ด้านหลังของตัวเรือนจะติดกาวเข้าที่
ขั้นตอนที่ 9: ติดตั้งปุ่มและหน้าจอ LCD
ใส่ปุ่มและขันน็อตให้แน่นก่อนทำการบัดกรี ฉันชอบใช้สายกราวด์ทั่วไปซึ่งวิ่งระหว่างพวกเขาเพื่อความเรียบร้อย
ยึดหน้าจอ LCD ด้วยสลักเกลียวและน็อต M3 LCD ต้องการโพเทนชิออมิเตอร์บนหมุดตัวใดตัวหนึ่งซึ่งฉันบัดกรีในขั้นตอนนี้ด้วย
ทดสอบรหัสอีกครั้ง! ตรวจสอบให้แน่ใจว่าทุกอย่างยังทำงานอยู่ ก่อนที่เราจะติดกาวทุกอย่างเข้าด้วยกัน เพราะในขั้นตอนนี้จะแก้ไขได้ง่ายกว่ามาก
ขั้นตอนที่ 10: การเพิ่มครีบ
ในการเชื่อมต่อชิ้นส่วนที่พิมพ์ 3 มิติเข้ากับสเต็ปเปอร์มอเตอร์ เราใช้ข้อต่อหน้าแปลนขนาด 5 มม. ซึ่งพอดีกับปลายสุดของสเต็ปเปอร์มอเตอร์และยึดเข้าที่ด้วยสกรูขนาดเล็ก
หน้าแปลนหนึ่งติดกาวที่ฐานของหอคอยหมุนและอีกอันติดกับกล้องโทรทรรศน์
การติดกล้องดูดาวเข้ากับมอเตอร์ที่ด้านบนของหอคอยที่หมุนได้นั้นทำได้ง่าย เนื่องจากมีที่ว่างมากมายสำหรับการเข้าถึงสกรูขนาดเล็กที่ยึดไว้ หน้าแปลนอีกอันยึดติดยากกว่า แต่มีช่องว่างเพียงพอระหว่างเคสหลักกับฐานของทาวเวอร์หมุนได้เพื่อให้พอดีกับกุญแจอัลเลนขนาดเล็กและขันสกรูให้แน่น
สอบอีกแล้ว!
ตอนนี้ทุกอย่างควรจะทำงานตามที่มันจะอยู่ในสถานะสุดท้าย หากไม่เป็นเช่นนั้น ก็ถึงเวลาแก้ไขจุดบกพร่องและตรวจสอบให้แน่ใจว่าการเชื่อมต่อทั้งหมดปลอดภัย ตรวจสอบให้แน่ใจว่าสายไฟที่เปิดอยู่ไม่สัมผัสกัน พันด้วยเทปพันสายไฟ และปะบริเวณใดๆ ที่อาจก่อให้เกิดปัญหาได้
ขั้นตอนที่ 11: เรียกใช้เมื่อเริ่มต้น
แทนที่จะรันโค้ดด้วยตนเองทุกครั้งที่ต้องการค้นหาดาวเคราะห์ เราต้องการให้โค้ดนี้ทำงานเป็นการจัดแสดงแบบสแตนด์อโลน ดังนั้นเราจะตั้งค่าให้รันโค้ดของเราทุกครั้งที่ Raspberry Pi เปิดขึ้น
ในเทอร์มินัล พิมพ์
crontab -e
ในไฟล์ที่เปิดขึ้น ให้เพิ่มสิ่งต่อไปนี้ต่อท้ายไฟล์ ตามด้วยบรรทัดใหม่
@reboot python3 /home/pi/PlanetFinder/planetFinder.py &
ฉันมีรหัสที่บันทึกไว้ในโฟลเดอร์ชื่อ PlanetFinder ดังนั้น /home/pi/PlanetFinder/planetFinder.py คือตำแหน่งของไฟล์ของฉัน หากคุณถูกบันทึกไว้ที่อื่นอย่าลืมเปลี่ยนที่นี่
& ในตอนท้ายมีความสำคัญเนื่องจากช่วยให้โค้ดทำงานในเบื้องหลัง ดังนั้นจึงไม่รองรับกระบวนการอื่นๆ ที่เกิดขึ้นในการบู๊ตเช่นกัน
ขั้นตอนที่ 12: กาวเข้าด้วยกัน
ทุกสิ่งที่ยังไม่ได้ติดกาวควรได้รับการแก้ไข
สุดท้าย เพิ่มเข็มทิศเล็กๆ ตรงกลางฐานหมุน
ขั้นตอนที่ 13: การใช้งาน
เมื่อเปิด Planet Finder ระบบจะแจ้งให้ผู้ใช้ปรับแกนแนวตั้ง การกดปุ่มขึ้นและลงจะเป็นการขยับกล้องดูดาว พยายามปรับให้อยู่ในระดับ ชี้ไปทางขวา จากนั้นกดปุ่ม ok (ที่ด้านล่างสุด)
จากนั้นผู้ใช้จะถูกขอให้ปรับการหมุน ใช้ปุ่มเพื่อหมุนกล้องโทรทรรศน์จนชี้ไปทางทิศเหนือตามเข็มทิศขนาดเล็ก จากนั้นกด ตกลง
ตอนนี้คุณสามารถวนรอบดาวเคราะห์โดยใช้ปุ่มขึ้น/ลง และเลือกหนึ่งที่คุณต้องการค้นหาด้วยปุ่มตกลง โดยจะแสดงระดับความสูงและมุมแอซิมัทของดาวเคราะห์ จากนั้นชี้ไปที่มันสักครู่ก่อนจะหันกลับไปทางทิศเหนือ
ขั้นตอนที่ 14: เสร็จสิ้น
ทุกอย่างเสร็จเรียบร้อย!
สนุกกับการรู้ว่าดาวเคราะห์ทั้งหมดอยู่ที่ไหน:)
รางวัลที่หนึ่งในการท้าทายอวกาศ
แนะนำ:
IoT Keychain Finder โดยใช้ ESP8266-01: 11 ขั้นตอน (พร้อมรูปภาพ)
IoT Keychain Finder ใช้ ESP8266-01: คุณชอบฉันลืมอยู่เสมอว่าคุณเก็บกุญแจไว้ที่ไหน? ฉันไม่สามารถหากุญแจได้ทันเวลา! และเนื่องจากนิสัยของฉัน ฉันจึงมาเรียนวิทยาลัยสาย การขายสารพัด star wars รุ่นลิมิเต็ดอิดิชั่น (ยังคงกังวลใจอยู่!) ออกเดท (เธอไม่เคยเลือก
Apple TV Siri Remote Hard Case พร้อม Bluetooth Tile Finder: 7 ขั้นตอน (พร้อมรูปภาพ)
Apple TV Siri Remote Hard Case พร้อม Bluetooth Tile Finder: ครั้งหนึ่งฉันเคยอ่านคำอธิบายของ iPhone ว่าเป็น "แท่งเนยที่ชุบน้ำมันและฉีดด้วย WD40 เพื่อการวัดที่ดี!" ฉันคิดว่ามันเป็นตอนที่รุ่น 6 ออกมาและทุกคนต่างก็ทิ้งโทรศัพท์ราคาแพงใหม่และกระจกแตก
Digital Stud Finder: 6 ขั้นตอน (พร้อมรูปภาพ)
Digital Stud Finder: Stud Finder เป็นแนวคิดที่เรียบง่าย เซ็นเซอร์แบบคาปาซิทีฟสองตัว: ตัวหนึ่งส่งคลื่นพัลส์ไปยังตัวรับที่สองและวัดแรงดันไฟฟ้าที่ลดลงระหว่างวัสดุระหว่างแผ่นทั้งสอง ในความพยายามที่จะพัฒนาการออกแบบนี้ โปรเจกต์นี้จึงได้จัดทำขึ้นเพื่อ
Attiny85 Distance Finder: 4 ขั้นตอน (พร้อมรูปภาพ)
Attiny85 Distance Finder: ก่อนที่ฉันจะทำให้คำแนะนำนี้ฉันเพิ่งได้รับ Attinys ใหม่ (Attinies?) และต้องการทำอะไรกับพวกเขา นั่นคือตอนที่ฉันสังเกตเห็นว่าตัวค้นหาช่วงอัลตราโซนิกของฉันไม่ได้ใช้งานเพียงอย่างเดียว เครื่องหาระยะทาง Attiny ล้ำเสียงนี้ให้ระยะทาง
Ultrasonic Range Finder พร้อมประตู: 7 ขั้นตอน (พร้อมรูปภาพ)
ตัวค้นหาระยะอัลตราโซนิกพร้อมประตู: ตัวค้นหาช่วงอัลตราโซนิกจะตรวจจับว่ามีสิ่งใดอยู่ในเส้นทางของมันโดยปล่อยคลื่นเสียงความถี่สูง จุดเน้นของคำแนะนำนี้จะเป็นวิธีที่ประตูและตัวค้นหาระยะอัลตราโซนิกสามารถทำงานร่วมกันได้อย่างไรโดยเฉพาะวิธีที่สามารถใช้เพื่อตรวจจับเมื่อ