สารบัญ:

Raspberry Pi Planet Finder: 14 ขั้นตอน (พร้อมรูปภาพ)
Raspberry Pi Planet Finder: 14 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Raspberry Pi Planet Finder: 14 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Raspberry Pi Planet Finder: 14 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: The New Method to Setup Raspberry Pi (2023 Update) 2024, กรกฎาคม
Anonim
Image
Image
สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ

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

เมื่อฉันเดินผ่านนิทรรศการที่ตายไปนานเมื่อเร็ว ๆ นี้ ฉันคิดว่า "ฉันพนันได้เลยว่าฉันทำได้" และฉันก็ทำได้!

นี่คือคู่มือเกี่ยวกับวิธีการสร้าง 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
ปุ่มเมานต์และหน้าจอ LCD
ปุ่มเมานต์และหน้าจอ LCD
ปุ่มเมานต์และหน้าจอ LCD
ปุ่มเมานต์และหน้าจอ LCD
ปุ่มเมานต์และหน้าจอ LCD
ปุ่มเมานต์และหน้าจอ LCD
ปุ่มเมานต์และหน้าจอ 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: เสร็จสิ้น

ที่เสร็จเรียบร้อย
ที่เสร็จเรียบร้อย

ทุกอย่างเสร็จเรียบร้อย!

สนุกกับการรู้ว่าดาวเคราะห์ทั้งหมดอยู่ที่ไหน:)

ความท้าทายในอวกาศ
ความท้าทายในอวกาศ
ความท้าทายในอวกาศ
ความท้าทายในอวกาศ

รางวัลที่หนึ่งในการท้าทายอวกาศ

แนะนำ: