สารบัญ:
- ขั้นตอนที่ 1: Pi Zero W คืออะไร
- ขั้นตอนที่ 2: สก็อตตี้ เราต้องการพลังมากกว่านี้
- ขั้นตอนที่ 3: ตำแหน่งเซ็นเซอร์และซอฟต์แวร์
- ขั้นตอนที่ 4: การตั้งค่า Pi
- ขั้นตอนที่ 5: เวลา WiFi
- ขั้นตอนที่ 6: การเข้าสู่ระบบ
- ขั้นตอนที่ 7: สายไฟ
- ขั้นตอนที่ 8: สว่างขึ้น
- ขั้นตอนที่ 9: ขั้นตอนเพิ่มเติมและคำสั่งที่เป็นประโยชน์
วีดีโอ: ระบบช่วยจอดรถแบบ Pi: 9 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
สวัสดี! นี่เป็นโปรเจ็กต์เล็กๆ เจ๋งๆ ที่คุณสามารถทำได้ในบ่ายวันเดียว แล้วใช้งานทุกวัน มันขึ้นอยู่กับ Raspberry Pi Zero W และจะช่วยให้คุณจอดรถได้อย่างสมบูรณ์แบบทุกครั้ง
นี่คือรายการชิ้นส่วนทั้งหมดที่คุณต้องการ:
- Raspberry Pi Zero W (เราจะเรียกสิ่งนี้ว่า 'rpi' หรือ 'pi' ในบทความนี้)
- การ์ด micro SD ขนาด 4GB หรือใหญ่กว่าสำหรับ pi OS
- TinyLiDAR Time of Flight เซนเซอร์โมดูลสองโมดูล
- แผงไฟ LED RGB ขนาด 32x32 (มีผู้ผลิตหลายรายสำหรับสิ่งนี้ด้วยระยะพิทช์ที่แตกต่างกัน ตัวอย่างเช่น คุณสามารถใช้ Adafruit 1484 หรือที่คล้ายกัน เพียงค้นหา '32x32 LED Matrix' บน Google) แผงของเรามีระยะพิทช์ 6 มม.
- สาย CAT5 25 ฟุต
- สายจัมเปอร์พินพินตัวผู้ถึงตัวผู้ประมาณ 22 สี
- 5v 2Amp แหล่งจ่ายไฟ microUSB (ที่ชาร์จโทรศัพท์มือถือ) ชุดทั้งหมด? ไปกันเถอะ!
TL;DR บทสรุป
- ดาวน์โหลด Raspbian Lite OS สำหรับ rpi
- กำหนดค่า pi ให้ทำงานแบบ headless ผ่าน WiFi ด้วย IP แบบคงที่
- ตั้งค่าสภาพแวดล้อม PC dev ของคุณด้วย PuTTY, WinSCP และ SublimeText w/ FTP addon ที่เป็นตัวเลือก
- ดาวน์โหลด สร้างและผูกไดรเวอร์แผง LED
- ดาวน์โหลดและติดตั้ง pigpio
- ดาวน์โหลดโค้ด Python ของเรา
- ต่อแผงแสดงผล LED ขนาด 32x32
- ทำสายต่อ CAT5 สำหรับเซ็นเซอร์ tinyLiDAR ด้านข้าง
- ขั้นตอนที่เลือกได้ (แต่สำหรับผู้ใช้ขั้นสูงเท่านั้น): เต้นอย่างมีความสุขอย่างรวดเร็วเมื่อทุกอย่างทำงาน;)
ขั้นตอนที่ 1: Pi Zero W คืออะไร
คุณไม่ต้องสงสัยเลยว่าเคยได้ยินเกี่ยวกับ Raspberry Pi แต่อะไรคือ pi 'Zero W'?
Raspberry Pi Zero และ Zero W เป็นส่วนเสริมล่าสุดของตระกูล Pi ซึ่งมีความหมายมากกว่าสำหรับ IoT และแอพพลิเคชั่นฝังตัวราคาประหยัดอื่นๆ พวกเขาถูกถอดออกจากบอร์ด pi ดั้งเดิม แต่ยังคงมีโปรเซสเซอร์ 1GHz อันทรงพลัง นี่คือการเปรียบเทียบที่ดีของทุกรุ่น
ประโยชน์สำหรับเราในการเลือก Pi Zero W ที่นี่เหนือบอร์ดควบคุมอื่นๆ คือ เราสามารถตั้งโปรแกรมในภาษา Python ระดับสูงได้อย่างง่ายดาย ในขณะที่ยังคงใช้ไดรเวอร์แผง C/C++ LED ที่รวดเร็ว นอกจากนี้ยังมีราคาที่น่าดึงดูดใจเพียง 10 เหรียญสหรัฐเท่านั้น
โปรดจำไว้ว่าเนื่องจากบอร์ดนี้เป็นเวอร์ชันเต็มของ pi ที่แยกส่วนแล้ว บางสิ่งจึงเปลี่ยนไป โดยเฉพาะอย่างยิ่ง ช่องเสียบอีเทอร์เน็ตถูกขจัดออกไป ขั้วต่อ HDMI ได้เปลี่ยนเป็นขนาดมินิ และพอร์ต USB สี่พอร์ตได้รับการลดความซับซ้อนลงเหลือเพียงประเภทไมโคร USB เพียงชนิดเดียวเท่านั้น มีขั้วต่อ micro USB อีกตัวหนึ่งออนบอร์ด แต่ใช้สำหรับเปิดเครื่องเท่านั้น การกำจัดตัวเชื่อมต่อ USB ขนาดเต็มทั้งหมดทำให้เกิดความซับซ้อนบางอย่าง คือคุณจะเชื่อมต่อแป้นพิมพ์และเมาส์ได้อย่างไร? อุปกรณ์ต่อพ่วง USB มาตรฐานและฮับใช้ขั้วต่อ Type A ไม่ใช่ไมโคร
แล้วเราจะทำอะไรได้บ้าง?
เราสามารถไปหัวขาด!
ไม่ เราไม่ได้หมายถึงการคลั่งไคล้ แต่ใช้ทางเลือกอื่นแทนการตั้งค่าแบบมีสายตรงแบบปกติ หัวขาดหมายถึง "อุโมงค์" เข้าสู่ pi จากระยะไกลโดยใช้การเชื่อมต่อเครือข่าย Secure Shell (SSH) สำหรับโครงการนี้ เราจะใช้วิธีการ headless ผ่าน WiFi ดังนั้นเหตุผลที่เราเลือกรุ่น W ของ pi zero แทนที่จะเป็น pi zero ที่มีต้นทุนต่ำกว่า
โปรดทราบว่ายังมีอีกวิธีหนึ่งในการรัน pi ในโหมด headless โดยใช้สิ่งที่เรียกว่า VNC ต้องใช้ซอฟต์แวร์ VNC พิเศษที่ทำงานบนพีซีของคุณ เนื่องจากมีเดสก์ท็อปกราฟิกเสมือนเต็มรูปแบบบนพีซีของคุณ เราไม่ต้องการ (และไม่ต้องการ) เดสก์ท็อปสำหรับโครงการของเรา ดังนั้นเราจะใช้วิธี SSH ที่ง่ายกว่า
ขั้นตอนที่ 2: สก็อตตี้ เราต้องการพลังมากกว่านี้
แผงเมทริกซ์ LED ขนาด 32x32 สามารถรับกระแสไฟได้หลายแอมป์ ไม่ได้ล้อเล่น! นั่นเป็นสาเหตุที่แผงเหล่านี้ส่วนใหญ่มีสายไฟที่ดูแข็งแรงสำหรับจ่ายไฟ โชคดีสำหรับเรา แม้ว่าเราจะไม่ต้องการแหล่งจ่ายไฟจำนวนมากสำหรับโครงการนี้ เราสามารถจ่ายไฟให้กับระบบทั้งหมดได้จากเครื่องชาร์จโทรศัพท์มือถือ microUSB ขนาด 5v/2amp ที่เราเคยวางไว้ สาเหตุของกระแสไฟที่ต่ำกว่านั้นเป็นเพราะเราใช้กราฟิกที่ค่อนข้างง่าย ดังนั้นจึงไม่เปิดไฟ LED ส่วนใหญ่ หากคุณกำลังคิดที่จะสร้างแอนิเมชั่นหรือใช้วิดีโอ/กราฟิกที่สว่างสดใส คุณควรพิจารณาเปิดเครื่องจากแหล่งจ่ายไฟแยกต่างหาก
ขั้นตอนที่ 3: ตำแหน่งเซ็นเซอร์และซอฟต์แวร์
คุณสังเกตเห็นไหมว่าเราใช้ tinyLiDAR สองตัวในระบบนี้แทนที่จะเป็นเพียงอันเดียว ดังที่แสดงในแผนภาพการตั้งค่าโรงรถ อันหนึ่งวางไว้ด้านหน้ารถและอีกอันวางไว้ที่ด้านหนึ่งของรถ
เซ็นเซอร์ด้านข้างจะตรวจจับว่าคุณเลี้ยวออกจากศูนย์กลางขณะจอดรถหรือไม่ และแน่นอนว่าเซ็นเซอร์ด้านหน้าจะบอกคุณว่าเมื่อใดควรหยุด
จอแสดงผล LED ขนาด 32x32 จะช่วยคุณด้วยการแสดงลูกศรเพื่อเดินหน้า ซ้ายหรือขวา และจอแสดงผลนับถอยหลังพร้อมมุมสีเพื่อระบุว่าคุณยังคงต้องขับรถอีกไกลแค่ไหน ดูวิดีโอสั้น ๆ ของเราสำหรับสถานะการแสดงผลทั้งหมด
แผนเกม
โดยสรุป เราใช้ไลบรารี hzeller C ยอดนิยมสำหรับไดรเวอร์ LED, Python สำหรับโค้ดควบคุม และไลบรารี pipgpio C สำหรับการควบคุม I2C ที่เหมาะสมสำหรับเซ็นเซอร์ของเรา
Python เป็นภาษาระดับสูงที่ใช้งานง่ายสุด ๆ ที่คุณสามารถแก้ไขได้บนโปรแกรมแก้ไขข้อความใดๆ ก็ตาม โดยปกติเราใช้ SublimeText และสำหรับโปรเจ็กต์นี้ เรายังใช้ปลั๊กอิน FTP ที่มีประโยชน์มาก ซึ่งช่วยให้เราแก้ไขไฟล์สคริปต์บน pi ได้โดยตรง นี่เป็นขั้นตอนที่ไม่บังคับ เนื่องจากจำเป็นเฉพาะในกรณีที่คุณต้องการแก้ไขโค้ดเท่านั้น รายละเอียดเพิ่มเติมมีอยู่ที่ส่วนท้ายของบทความนี้
อย่างที่คุณอาจทราบ บอร์ด rpi ทั้งหมดไม่รองรับการยืดนาฬิกา I2C โดยกำเนิด ดังนั้นเราจึงใช้ห้องสมุด pigpio อีกครั้งสำหรับโครงการนี้เพื่อควบคุมเซ็นเซอร์ tinyLiDAR แต่คราวนี้มีการบิดเล็กน้อย…
TinyLiDARs หลายตัว
เมื่อคุณซื้อ tinyLiDAR มันจะถูกตั้งค่าเป็นที่อยู่สเลฟเริ่มต้นที่ 0x10 เสมอ สิ่งนี้ใช้ได้เมื่อคุณใช้เซ็นเซอร์ตัวเดียว แต่ถ้าคุณมีมากกว่าหนึ่งตัวบนบัส อาจมีปัญหาหากคุณเขียนคำสั่งไปที่ 0x10 และคำตอบทั้งหมดตอบกลับมา!
ดังนั้นเราจึงมี 3 ตัวเลือกที่นี่:
อันดับแรก เราสามารถใช้คำสั่ง (tinyLiDAR) "R" เพื่อเขียนที่อยู่รองใหม่ไปยังเซ็นเซอร์ตัวเดียวที่เชื่อมต่อกับบัส I2C จากนั้นทำซ้ำสำหรับเซ็นเซอร์แต่ละตัว การติด เขียน และถอดเซ็นเซอร์แต่ละตัวสำหรับขั้นตอนนี้ tinyLiDAR จะเก็บที่อยู่ที่ระบุในหน่วยความจำแบบไม่ลบเลือนบนเครื่อง ที่อยู่จะยังคงอยู่แม้หลังจากเปิดเครื่องแล้วจนกว่าคุณจะล้างข้อมูลโดยออกคำสั่ง RESET
ตัวเลือกที่สองคือการใช้คุณสมบัติ Auto Assign ที่สะดวกซึ่งเราสร้างขึ้นเพื่อเป็นเป้าหมายที่ยืดยาวในแคมเปญ IGG สิ่งนี้เกี่ยวข้องกับการส่งคำสั่ง "AR" แล้วชี้นิ้วของคุณไปที่เซ็นเซอร์แต่ละตัวเพื่อกำหนดที่อยู่ I2C ตามลำดับให้กับเซ็นเซอร์แต่ละตัวที่คล้ายกับตัวเลือกแรกโดยอัตโนมัติ แต่คุณไม่จำเป็นต้องถอดเซ็นเซอร์แต่ละตัวออกเพื่อทำสิ่งนี้
ตัวเลือกที่สามคือตัวเลือกที่เราใช้ที่นี่ในโปรเจ็กต์นี้ และเป็นไปได้ด้วยไลบรารี pigpio ในการใช้มาตรฐาน I2C อย่างถูกต้อง Pigpio bitbangs GPIO ด้วยเหตุนี้ เราจึงสามารถสร้างบัส I2C แยกกันได้อย่างง่ายดายบนพิน GPIO สำรองเกือบทุกคู่
ดังนั้นจึงไม่จำเป็นต้องตั้งโปรแกรมที่อยู่รองใหม่สำหรับเซ็นเซอร์ LiDAR หลายตัว เรานั่งรถเมล์คนละคันกัน:)
โปรดทราบว่าบัส I2C ที่ทำงานที่ 100Kbps นั้นค่อนข้างแข็งแกร่ง เราใช้สายเคเบิลอีเธอร์เน็ต CAT5 แบบเก่าเพื่อรันบัส I2C ออกไปยังเซ็นเซอร์ tinyLiDAR ด้านข้างซึ่งอยู่ห่างออกไป 25 ฟุตโดยไม่มีส่วนประกอบทวนสัญญาณที่ทำงานอยู่! รายละเอียดการเดินสายเซ็นเซอร์แสดงไว้ด้านบน
โอเค พอแล้ว jibber jabber มาเริ่มดาวน์โหลดโค้ดกัน!
ขั้นตอนที่ 4: การตั้งค่า Pi
ข้อควรระวัง: pi ใช้ระบบไฟล์ Linux ดังนั้นจึงควรทำตามขั้นตอนต่อไปนี้บนระบบที่ใช้ Linux คุณอาจสิ้นสุดการฟอร์แมตการ์ด SD ของคุณใหม่หากคุณทำเช่นนี้บน Windows เราใช้เดสก์ท็อป Ubuntu 18.04 ที่ยอดเยี่ยมและฟรีที่ทำงานในสภาพแวดล้อมเสมือนบนพีซี Windows 10 แต่คุณสามารถลองใช้สิ่งที่คล้ายกันได้
คุณจะต้องดาวน์โหลดระบบปฏิบัติการจาก raspberrypi.org ก่อน แล้วจึงเบิร์นลงในการ์ด microSD ของคุณ ดังนั้นให้ทำตามขั้นตอนเหล่านี้:
(1) ใน Ubuntu ไปที่นี่และคว้าภาพ Raspbian Lite บันทึกลงในโฟลเดอร์ดาวน์โหลดของคุณ
(2) ถัดไปดาวน์โหลดยูทิลิตี้การเขียนการ์ด Etcher SD FYI - ลิงก์ดาวน์โหลด Etcher อย่างเป็นทางการสำหรับเวอร์ชัน Linux บนโฮมเพจใช้ไม่ได้สำหรับเรา ดังนั้นเราจึงใช้วิธีที่อธิบายไว้ที่นี่แทน:
โดยสรุปขั้นตอนที่อธิบายไว้ในลิงค์คือ:
เพิ่มที่เก็บเดเบียน Etcher:
echo "deb https://dl.bintray.com/resin-io/debian stableetcher" | sudo tee /etc/apt/sources.list.d/etcher.list
เชื่อถือคีย์ GPG ของ Bintray.com:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 379CE192D401AB61
อัปเดตและติดตั้ง:
sudo apt-get update
sudo apt-get install etcher-electron
เมื่อเสร็จแล้ว คุณสามารถเปิดใช้งาน Etcher จากเดสก์ท็อป Ubuntu ได้ มันจะถามหาไฟล์ต้นฉบับ (ซึ่งคุณใส่ไว้ในโฟลเดอร์ดาวน์โหลด) ขั้นตอนต่อไปใน Etcher คือการเลือกเป้าหมายที่ถูกต้อง Etcher ทำงานได้ดีในการตรวจจับการ์ด micro SD ของคุณ แต่คุณควรจะหวาดระแวงที่นี่ ในการตรวจสอบว่าพบปลายทางที่ถูกต้องหรือไม่ ให้ลองนำการ์ด microSD ออกโดยคลิกดีดออกในหน้าต่างสำรวจไฟล์ของ Ubuntu และตรวจสอบว่าตัวเลือกดังกล่าวหายไปจากตัวเลือกเป้าหมายภายใน Etcher จากนั้นใส่กลับเข้าไปและดำเนินการต่อไปยังขั้นตอนสุดท้าย ซึ่งก็คือการเขียนไฟล์ลงในการ์ด microSD นี้
รอสักครู่จนกว่าจะเสร็จสิ้นแล้วดำเนินการต่อ
ขั้นตอนที่ 5: เวลา WiFi
เอาล่ะ ได้เวลาป้อนรายละเอียด WiFi ของคุณแล้ว
เคล็ดลับ: คุณสามารถคัดลอก (Ctrl+C) และวาง (คลิกขวา วาง) ข้อมูลจากบทความนี้ไปยังหน้าจอเทอร์มินัล PuTTY แทนการพิมพ์คำสั่งได้ ตรวจสอบส่วนท้ายของบทความนี้เพื่อดูคำสั่ง Linux ที่เป็นประโยชน์หลายประการเช่นกัน
เมื่อ Etcher เขียนลงในการ์ด micro SD เสร็จแล้ว จะมี 2 ไดรฟ์ปรากฏขึ้นดังที่แสดงด้านบน ตัวหนึ่งเรียกว่า boot อีกอันเรียกว่า rootfs
เราจำเป็นต้องใช้ตัวจัดการไฟล์เพื่อไปที่โฟลเดอร์บูตและสร้างไฟล์ชื่อ wpa_supplicant.conf
ในการดำเนินการตามขั้นตอนนี้ คุณเพียงคลิกทางด้านซ้ายที่มีข้อความว่าบูต จากนั้นที่ด้านขวาของหน้าจอ คุณสามารถคลิกขวาที่พื้นหลังสีขาวแล้วเลือกเปิดในเทอร์มินัล
ซึ่งจะเปิดหน้าต่างเทอร์มินัลขึ้นมา (คล้ายกับ CMD ใน Windows) ซึ่งคุณสามารถพิมพ์ข้อความต่อไปนี้:
sudo nano wpa_supplicant.conf เคล็ดลับ: คุณจะต้องป้อนรหัสผ่านระบบ Linux เพื่อให้ทำงานเป็นผู้ใช้ขั้นสูงได้ จำเป็นมิฉะนั้นคุณจะไม่สามารถบันทึกไฟล์ได้เมื่อแก้ไขเสร็จแล้ว
คำสั่งดังกล่าวจะเปิดตัวแก้ไขข้อความ "นาโน" ซึ่งคุณสามารถป้อนข้อมูลต่อไปนี้:
ประเทศ = US
ctrl_interface = DIR = /var/run / wpa_supplicant GROUP = netdev update_config = 1 เครือข่าย = { ssid = "WiFi_SSID" scan_ssid = 1 psk = "WiFi_Password" key_mgmt = WPA - PSK }
หมายเหตุ: อย่าลืมแทนที่ WiFi_SSID และ WiFi_Password ด้วยชื่อและรหัสผ่านเครือข่าย WiFi ของคุณเอง
เมื่อเสร็จแล้ว เพียงคลิก Ctrl+X เพื่อออกและตอบใช่เพื่อเขียนไฟล์เมื่อออก
ขั้นตอนต่อไปของเราคือการสร้างไฟล์เปล่าที่เรียกว่า ssh ในการดำเนินการนี้ เราเพียงแค่พิมพ์ข้อความต่อไปนี้ในหน้าต่างเทอร์มินัล:
สัมผัส ssh
ตอนนี้เราต้องให้ที่อยู่ IP แบบคงที่แก่ pi ของเรา เพื่อให้เรารู้ว่ามันอยู่ที่ไหนทุกครั้งที่เราต้องการเชื่อมต่อ พิมพ์ข้อมูลต่อไปนี้ในหน้าต่างเทอร์มินัล:
sudo nano /etc/dhcpcd.conf
สิ่งนี้ควรเปิดตัวแก้ไขข้อความนาโนอีกครั้งและเราสามารถเพิ่มข้อความนี้ที่ด้านล่างของไฟล์ได้:
อินเทอร์เฟซ wlan0
ip_address แบบคงที่=192.168.0.static เราเตอร์=192.168.0.1 โดเมนแบบคงที่_name_servers=192.168.0.1 8.8.8.8
หมายเหตุ: นี่ถือว่าคำนำหน้าเครือข่ายของคุณคือ 192.168.0 หากคุณมี 192.168.1 ฯลฯ ให้ใช้เครือข่ายของคุณแทน เซิร์ฟเวอร์ชื่อโดเมน 8.8.8.8 มีไว้สำหรับ Google และเป็นตัวเลือกที่นี่
พิมพ์ 'exit' ใน Terminal เพื่อปิด จากนั้นคลิกขวาที่ชื่อบูตทางด้านซ้ายของหน้าต่างตัวจัดการไฟล์และเลือก Eject
ตอนนี้คุณสามารถเสียบการ์ด microSD นี้เข้ากับ pi ของคุณและเสียบสายไฟ microUSB เพื่อจ่ายไฟให้กับ pi ของคุณ
หากทุกอย่างเป็นไปด้วยดี ไฟ LED สีเขียวจะกะพริบครู่หนึ่งเหมือนกับว่ากำลังเข้าถึงฮาร์ดดิสก์และควรนำคุณเข้าสู่เครือข่าย WiFi ของคุณ ให้เวลาประมาณหนึ่งนาทีในการปักหลักและรอให้ไฟ LED เป็นสีเขียวค้าง
เพื่อตรวจสอบว่าทุกอย่างใช้งานได้ เราสามารถลอง ping ได้
ดังนั้นเพียงพิมพ์บรรทัดด้านล่างและตรวจสอบการตอบกลับ
ปิง 192.168.0.200
ใน Ubuntu คุณควรได้รับสิ่งที่คล้ายกันนี้:
ปิง 192.168.0.200
PING 192.168.0.200 (192.168.0.200) 56 (84) ไบต์ของข้อมูล 64 ไบต์จาก 192.168.0.200: icmp_seq=1 ttl=128 เวลา=752 ms 64 ไบต์จาก 192.168.0.200: icmp_seq=2 ttl=128 เวลา=5.77 ms 64 ไบต์จาก 192.168.0.200: icmp_seq=3 ttl=128 เวลา=7.33 ms ^C --- 192.168.0.200 สถิติ ping --- ส่ง 3 แพ็กเก็ต, รับ 3 ครั้ง, สูญเสียแพ็กเก็ต 0%, เวลา 2001ms rtt min/avg/max/mdev = 5.777/255.346/752.922/351.839 ms
โปรดทราบว่า ping จะยังคงทำงานต่อไปจนกว่าคุณจะกด Ctrl+C เพื่อออก
ใน Windows คุณควรได้รับสิ่งนี้:
ปิง 192.168.0.200
ปิง 192.168.0.200 ด้วยข้อมูล 32 ไบต์: ตอบกลับจาก 192.168.0.200: ไบต์=32 เวลา=4ms TTL=64 ตอบกลับจาก 192.168.0.200: ไบต์=32 เวลา=5ms TTL=64 ตอบกลับจาก 192.168.0.200: ไบต์=32 เวลา =6ms TTL=64 ตอบกลับจาก 192.168.0.200: ไบต์=32 เวลา=5ms TTL=64 Ping สถิติสำหรับ 192.168.0.200: แพ็คเก็ต: ส่ง = 4, ได้รับ = 4, สูญหาย = 0 (สูญเสีย 0%), เวลาไปกลับโดยประมาณ หน่วยเป็นมิลลิวินาที: ต่ำสุด = 4ms, สูงสุด = 6ms, เฉลี่ย = 5ms
ทั้งหมดดี? เป็นต้นไป…
ขั้นตอนที่ 6: การเข้าสู่ระบบ
ตอนนี้เรามีการเชื่อมต่อกับ pi แล้ว เราต้องการส่งคำสั่ง แต่อย่างไร?PuTTY แน่นอน! คุณสามารถดาวน์โหลด PuTTY ได้จากที่นี่การตั้งค่า PuTTY หลังจากดาวน์โหลดซอฟต์แวร์ PuTTY แล้ว ให้สร้างโปรไฟล์สำหรับ pi ของคุณด้วยข้อมูลต่อไปนี้:
ชื่อโฮสต์ (หรือที่อยู่ IP): 192.168.0.200 ประเภทการเชื่อมต่อ: SSHG ตั้งชื่อโปรไฟล์นี้ภายใต้เซสชันที่บันทึกไว้แล้วกดบันทึก คุณสามารถใช้ชื่อใดก็ได้ เช่น "rpizw_200"
ในการเข้าสู่ระบบ เพียงแค่เลือกจากรายการและกดโหลด จากนั้นกดเปิด ป้อนชื่อผู้ใช้และรหัสผ่านเพื่อเข้าสู่ระบบ:
ชื่อล็อกอิน: pi
รหัสผ่านเริ่มต้น: raspberry
นี่คือตัวอย่างเซสชันที่แสดงใน PuTTY เมื่อคุณเข้าสู่ระบบ:
เข้าสู่ระบบเป็น: pi
รหัสผ่านของ [email protected]: Linux raspberrypi 4.14.34+ #1110 จันทร์ เม.ย. 16 14:51:42 BST 2018 armv6l โปรแกรมที่มาพร้อมกับระบบ Debian GNU/Linux เป็นซอฟต์แวร์ฟรี เงื่อนไขการแจกจ่ายที่แน่นอนสำหรับแต่ละโปรแกรมมีอธิบายไว้ในไฟล์แต่ละไฟล์ใน /usr/share/doc/*/copyright Debian GNU/Linux มาพร้อมกับการรับประกันอย่างไม่มีเงื่อนไข ในขอบเขตที่กฎหมายที่ใช้บังคับอนุญาต เข้าสู่ระบบครั้งล่าสุด: [วันที่และเวลา] ตั้งแต่ 192.168.0.[ที่อยู่ IP] SSH ถูกเปิดใช้งานและรหัสผ่านเริ่มต้นสำหรับผู้ใช้ 'pi' จะไม่มีการเปลี่ยนแปลง นี่เป็นความเสี่ยงด้านความปลอดภัย โปรดเข้าสู่ระบบในฐานะผู้ใช้ 'pi' และพิมพ์ 'passwd' เพื่อตั้งรหัสผ่านใหม่
เมื่อเข้าสู่ระบบครั้งแรก ระบบจะเตือนว่าคุณยังไม่ได้เปลี่ยนรหัสผ่าน คุณควรเปลี่ยนให้เป็นสิ่งที่แข็งแกร่งแต่จำง่าย ดังนั้นให้เปลี่ยนโดยพิมพ์ passwd และปฏิบัติตามคำแนะนำ
ต่อไปเราควรอัปเดตซอฟต์แวร์บน pi โดยพิมพ์สิ่งนี้:
sudo apt-get update && sudo apt-get upgrade
การดำเนินการนี้จะดาวน์โหลดการอัปเดตที่จำเป็นจากการเชื่อมต่ออินเทอร์เน็ตของคุณ ตอบ ใช่ หากได้รับแจ้งให้อนุญาตให้ดำเนินการต่อ จากนั้นให้เวลาในการอัปเดต
ในเวลานี้ เราควรปิดเสียงบน pi ด้วย เนื่องจากมี juju ที่ไม่ดีกับไลบรารีไดรเวอร์ LED คัดลอก วางบรรทัดต่อไปนี้ทีละบรรทัด แล้วกด Enter หลังแต่ละบรรทัด:
ซีดี ~
แมว <<EOF | sudo tee /etc/modprobe.d/blacklist-rgb-matrix.conf บัญชีดำ snd_bcm2835 EOF sudo update-initramfs -u
ผลลัพธ์จะเป็นดังนี้:
pi@raspberrypi:~ $ cd ~
pi@raspberrypi:~ $ cat < > บัญชีดำ snd_bcm2835 > > บัญชีดำ EOF snd_bcm2835 pi@raspberrypi:~ $ sudo update-initramfs -u pi@raspberrypi:~ $
จากนั้นเราต้องรีบูต pi เพื่อให้การเปลี่ยนแปลงมีผล ดังนั้นพิมพ์ดังต่อไปนี้:
sudo รีบูตทันที
การเชื่อมต่อจะลดลงอย่างแน่นอนเมื่อ pi กำลังรีบูตเพื่อให้คุณสามารถปิด PuTTY ได้ ลองกลับเข้าสู่ระบบอีกครั้งในภายหลัง
ตอนนี้ได้เวลารับตัวจัดการไฟล์ FTP แบบกราฟิกที่เรียกว่า WinSCP คุณสามารถดาวน์โหลด WinSCP ได้จากที่นี่
WinSCP นั้นเหมือนกับตัวจัดการไฟล์บน Windows และ Ubuntu ช่วยให้เราสามารถลากและวางไฟล์ไปที่ & จาก pi และสร้างไดเร็กทอรีด้วยการคลิกขวาของเมาส์
เมื่อดาวน์โหลดแล้ว คุณจะต้องตั้งค่าโปรไฟล์สำหรับ pi ของคุณ
การตั้งค่า WinSCP ที่ป๊อปอัปเข้าสู่ระบบ ให้เลือกไซต์ใหม่ ใช้การตั้งค่าต่อไปนี้สำหรับเซสชัน:
โปรโตคอลไฟล์: SFTP ชื่อโฮสต์: 192.168.0.200 ชื่อผู้ใช้: pi รหัสผ่าน: {รหัสผ่านใดก็ตามที่คุณเปลี่ยนค่าเริ่มต้นเป็นในขั้นตอน PuTTY ด้านบน}
ในการตั้งค่าไซต์ขั้นสูง ให้ไปที่ Environment | ไดเร็กทอรีและป้อน /home/pi สำหรับไดเร็กทอรีระยะไกลและสิ่งที่คุณต้องการสำหรับการตั้งค่า Local Directory
ในการตั้งค่าไซต์ขั้นสูง ให้ไปที่ Environment | เชลล์ และเลือก sudo su - ในรายการแบบหล่นลงของเชลล์
จากนั้นกดบันทึก
เปิดทั้ง WinSCP และ PuTTY ไว้ในขณะที่ทำตามขั้นตอนต่อไปนี้
ไปที่เทอร์มินัล PuTTY และป้อนข้อมูลต่อไปนี้:
ซีดี ~
นี่จะพาเราไปที่โฮมไดเร็กทอรีของเราภายใน pi
ตอนนี้เราสามารถคว้าไลบรารีไดรเวอร์ LED จาก github ได้แล้ว ในการใช้โค้ดล่าสุด เราจะต้องดึง repo ดังนั้นเราต้องติดตั้งยูทิลิตี้ git
ป้อนสิ่งนี้ใน PuTTY:
sudo apt-get ติดตั้ง git
ตอบ Y เพื่อดำเนินการต่อและจะใช้เวลาสองสามวินาทีในการติดตั้ง git ให้เราจากอินเทอร์เน็ต
ผลลัพธ์ควรมีลักษณะดังนี้:
pi@raspberrypi:~ $ sudo apt-get ติดตั้ง git
กำลังอ่านรายการแพ็คเกจ… เสร็จสิ้น การสร้างแผนผังการพึ่งพา กำลังอ่านข้อมูลสถานะ… เสร็จสิ้น แพ็คเกจเพิ่มเติมต่อไปนี้จะถูกติดตั้ง: git-man liberror-perl แพ็คเกจที่แนะนำ: git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn แพ็คเกจใหม่ต่อไปนี้จะถูกติดตั้ง: git git-man liberror-perl 0 อัปเกรดแล้ว 3 ติดตั้งใหม่ 0 เพื่อลบและ 0 ไม่ได้อัปเกรด ต้องการรับไฟล์เก็บถาวร 4, 848 kB หลังจากการดำเนินการนี้ พื้นที่ดิสก์เพิ่มเติม 26.4 MB จะถูกใช้ คุณต้องการดำเนินการต่อหรือไม่ [ใช่] รับ:1 https://muug.ca/mirror/raspbian/raspbian stretch/main armhf liberror-perl all 0.17024-1 [26.9 kB] รับ:2 https://muug.ca/mirror/ raspbian/raspbian stretch/main armhf git-man ทั้งหมด 1:2.11.0-3+deb9u3 [1, 433 kB] รับ:3 https://muug.ca/mirror/raspbian/raspbian stretch/main armhf git armhf 1: 2.11.0-3+deb9u3 [3, 388 kB] ดึงข้อมูล 4, 848 kB ใน 5 วินาที (878 kB/s) การเลือกแพ็คเกจที่ไม่ได้เลือกก่อนหน้านี้ liberror-perl(กำลังอ่านฐานข้อมูล … 34363 ไฟล์และไดเร็กทอรีที่ติดตั้งอยู่ในปัจจุบัน) กำลังเตรียมที่จะแกะ …/liberror-perl_0.17024-1_all.deb … กำลังแกะ liberror-perl (0.17024-1) … กำลังเลือกแพ็คเกจ git-man ที่ไม่ได้เลือกก่อนหน้านี้ กำลังเตรียมแกะ …/git-man_1%3a2.11.0-3+deb9u3_all.deb … กำลังแกะ git-man (1:2.11.0-3+deb9u3) … กำลังเลือก git แพ็คเกจที่ไม่ได้เลือกก่อนหน้านี้ กำลังเตรียมแกะ …/git_1%3a2.11.0-3+deb9u3_armhf.deb … กำลังแกะ git (1:2.11.0-3+deb9u3) … กำลังตั้งค่า git-man (1:2.11.0-3+deb9u3) … กำลังตั้งค่า liberror-perl (0.17024-1) … กำลังประมวลผลทริกเกอร์สำหรับ man-db (2.7.6.1-2) … กำลังตั้งค่า git (1:2.11.0-3+deb9u3) …
กลับไปที่ WinSCP และไปที่โฟลเดอร์ /home/pi จากนั้นทางด้านขวาของหน้าต่าง WinScp ให้คลิกขวาแล้วเลือกสร้าง New Directory ชื่อ "parking"
กลับไปที่หน้าจอ PuTTY คุณสามารถพิมพ์ ls เพื่อยืนยันว่าคุณเพิ่งสร้างโฟลเดอร์ใหม่ใน pi จากนั้นป้อนสิ่งนี้:
ซีดีพี[TAB]เคล็ดลับ: การกดแป้น TAB จะเติมชื่อบางส่วนให้คุณโดยอัตโนมัติ
กดปุ่ม Enter เพื่อเข้าสู่ไดเร็กทอรีนี้
pi@raspberrypi:~ $ ที่จอดรถซีดี/
pi@raspberrypi:~/parking $ ls
ตอนนี้เราสามารถรับไฟล์ไดรเวอร์ได้โดยป้อนข้อมูลต่อไปนี้ใน PuTTY:
โคลน git
ผลลัพธ์จะมีลักษณะดังนี้:
pi@raspberrypi:~/parking $ git clone
กำลังโคลนเป็น 'rpi-rgb-led-matrix'… ระยะไกล: กำลังนับวัตถุ: 3740 เสร็จแล้ว รีโมต: รวม 3740 (เดลต้า 0), นำกลับมาใช้ใหม่ 0 (เดลต้า 0), นำแพ็คกลับมาใช้ใหม่ 3740 วัตถุที่รับ: 100% (3740/3740), 20.61 MiB | 1.32 MiB/s เสร็จแล้ว แก้ไขเดลต้า: 100% (2550/2550) เสร็จแล้ว
ตอนนี้รวบรวมไฟล์ไดรเวอร์ LED โดยไปที่ไดเร็กทอรี 'rpi-rgb-led-matrix' ใหม่และพิมพ์คำสั่ง make:
ซีดีอาร์[TAB]
ทำ และนี่คือสิ่งที่ดูเหมือนบนกระดานของเรา
pi@raspberrypi:~/parking $ cd rpi-rgb-led-matrix/
pi@raspberrypi:~/parking/rpi-rgb-led-matrix $ make make -C./lib make[1]: กำลังเข้าสู่ไดเรกทอรี '/home/pi/parking/rpi-rgb-led-matrix/lib' g++ - I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o gpio.o gpio.cc g++ -I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o led-matrix.o led-matrix.cc g++ -I../include - Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o options-initialize.o options-initialize.cc g++ -I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o framebuffer.o framebuffer.cc g++ -I../include -Wall -O3 -g - fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o thread.o thread.cc g++ -I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE=' "ปกติ"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o bdf-font.o bdf-fon t.cc g++ -I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o graphics.o graphics.cc g++ - I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o transformer.o transformer.cc g++ -I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o led-matrix-co led-matrix-c.cc cc -I../ รวม -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -c -o hardware-mapping.o hardware-mapping.c g++ -I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o content-streamer.o content-streamer.cc g++ -I../include -Wall -O3 - g -fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o pixel-mapper.o pixel-mapper.cc g++ -I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -fno-excep tions -c -o multiplex-mappers.o multiplex-mappers.cc ar rcs librgbmatrix.a gpio.o led-matrix.o options-initialize.o framebuffer.o thread.o bdf-font.o graphics.o transformer.o led-matrix-co hardware-mapping.o content-streamer.o pixel-mapper.o multiplex-mappers.o g++ -shared -Wl, -soname, librgbmatrix.so.1 -o librgbmatrix.so.1 gpio.o นำ -matrix.o options-initialize.o framebuffer.o thread.o bdf-font.o graphics.o transformer.o led-matrix-co hardware-mapping.o content-streamer.o pixel-mapper.o multiplex-mappers o -lpthread -lrt -lm -lpthread make[1]: ออกจากไดเร็กทอรี '/home/pi/parking/rpi-rgb-led-matrix/lib' make -C Example-api-use make[1]: การเข้าสู่ไดเร็กทอรี ' /home/pi/parking/rpi-rgb-led-matrix/examples-api-use' g++ -I../include -Wall -O3 -g -Wextra -Wno-unused-parameter -c -o demo-main. o demo-main.cc make -C../lib make[2]: เข้าสู่ไดเร็กทอรี '/home/pi/parking/rpi-rgb-led-matrix/lib' make[2]: ออกจากไดเร็กทอรี '/home/pi /parking/rpi-rgb-led-matrix/lib' g++ demo-main.o -o demo -L../lib -lrgbmatrix -lrt -lm -lpthread g++ -I../include -Wall -O3 -g -Wextra -Wno-unused-parameter -c -o minimal-example.o minimal-example.cc g++ minimal-example.o - o ตัวอย่างขั้นต่ำ -L../lib -lrgbmatrix -lrt -lm -lpthread cc -I../include -Wall -O3 -g -Wextra -Wno-unused-parameter -c -o c-example.o c- example.c cc c-example.o -o c-example -L../lib -lrgbmatrix -lrt -lm -lpthread -lstdc++ g++ -I../include -Wall -O3 -g -Wextra -Wno-unused- พารามิเตอร์ -c -o text-example.o text-example.cc g++ text-example.o -o text-example -L../lib -lrgbmatrix -lrt -lm -lpthread g++ -I../include -Wall - O3 -g -Wextra -Wno-unused-parameter -c -o scrolling-text-example.o scrolling-text-example.cc g++ scrolling-text-example.o -o scrolling-text-example -L../lib -lrgbmatrix -lrt -lm -lpthread g++ -I../include -Wall -O3 -g -Wextra -Wno-unused-parameter -c -o clock.o clock.cc g++ clock.o -o clock -L.. /lib -lrgbmatrix -lrt -lm -lpthread g++ -I../include -Wall -O3 -g -Wextra -Wno-unused-parameter -c -o ledcat.o ledcat.cc g++ le dcat.o -o ledcat -L../lib -lrgbmatrix -lrt -lm -lpthread make[1]: ออกจากไดเรกทอรี '/home/pi/parking/rpi-rgb-led-matrix/examples-api-use' pi @raspberrypi:~/parking/rpi-rgb-led-matrix $
ขั้นตอนต่อไปคือการผูกไลบรารีเมทริกซ์ RGB กับ Python เราใช้ Python 2 เริ่มต้นสำหรับโครงการนี้ เพื่อทำการเชื่อมโยงนี้ เราป้อนทีละบรรทัดต่อไปนี้ในแต่ละครั้งเหมือนเมื่อก่อน:
sudo apt-get update && sudo apt-get ติดตั้ง python2.7-dev python-pillow -y
ทำ build-python sudo ทำ install-python
หมายเหตุ: คุณสามารถละเว้นหนึ่งคำเตือนเกี่ยวกับ '-Wstrict-prototype' ที่ปรากฏขึ้นเมื่อรันคำสั่ง make สองรายการได้อย่างปลอดภัย คำสั่ง make ใช้เวลาสองสามนาทีในการรัน และพวกเขาจะไม่พูดอะไรในขณะที่พวกเขากำลังยุ่ง ไม่ต้องกลัว พายของคุณจะกลับมาเร็ว ๆ นี้;)
นี่คือผลลัพธ์บางส่วนในคำสั่ง make แรก:
การสร้างส่วนขยาย 'กราฟิก'
arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-kKRR4y/python2.7-2.7.13=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I../../include -I/usr/include/python2.7 -c rgbmatrix/graphics.cpp -o build/temp.linux- armv6l-2.7/rgbmatrix/graphics.o -O3 -Wall cc1plus: คำเตือน: ตัวเลือกบรรทัดคำสั่ง '-Wstrict-prototypes' ใช้ได้กับ C/ObjC แต่ไม่ใช่สำหรับ C++ arm-linux-gnueabihf-g++ -pthread -shared -Wl, -O1 -Wl, -Bsymbolic-functions -Wl, -z, relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix -map=/build/python2.7-kKRR4y/python2.7-2.7.13=. -fstack-protector-strong -Wformat -Werror=format-security -Wl, -z, relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-kKRR4y/python2.7 -2.7.13=. -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-armv6l-2.7/rgbmatrix/graphics.o -L../../lib -lrgbmatrix -o./rgbmatrix/graphics.so make [1]: ออกจากไดเรกทอรี '/home/pi/parking/rpi-rgb-led-matrix/bindings/python' pi@raspberrypi:~/parking/rpi-rgb-led-matrix $
ต่อไปเราจะติดตั้งไลบรารี่ pigpio C ในการทำสิ่งนี้อย่างถูกต้องเราจำเป็นต้องสร้างจากแหล่งที่มาดังนั้นเพียงป้อนบรรทัดต่อไปนี้:
ซีดี ~
sudo rm -rf PIGPIO wget abyz.me.uk/rpi/pigpio/pigpio.zip เปิดเครื่องรูด pigpio.zip cd PIGPIO ทำให้ sudo ทำการติดตั้ง rm pigpio.zip
การติดตั้งข้างต้นใช้เวลาประมาณ 3 นาที
ตอนนี้ได้เวลารับไฟล์โครงการ Python ของเราแล้ว ป้อนต่อไปนี้:
ซีดี ~
cd /home/pi/parking/rpi-rgb-led-matrix/bindings/python/samples wget https://s3.amazonaws.com/microedco/tinyLiDAR/Raspberry+Pi/tinyL_parking.zip unzip -j tinyL_parking.zip rm tinyL_parking.zip
จากนั้นให้พิมพ์ดังต่อไปนี้:
sudo python parking.py
แต่คุณไม่จำเป็นต้องทำตอนนี้ เพราะเรายังต้องวางสายทั้งหมด…
ขั้นตอนที่ 7: สายไฟ
ดังที่ได้กล่าวไว้ก่อนหน้านี้ เราขับเคลื่อนแผง LED จากอะแดปเตอร์จ่ายไฟตัวเดียวกันกับที่จ่ายไฟให้กับ pi ในการทำเช่นนี้ คุณจะต้องต่อสายไฟสีแดงและสีดำที่แข็งแรงเข้ากับหมุดส่วนหัวของตัวผู้เพื่อให้สามารถเสียบเข้ากับพิน 2 และ 9 ของขั้วต่อ 40 พิน pi ได้
ถอดปลั๊กไฟเข้ากับ pi ทันทีและต่อแผง LED ตามแผนภาพด้านบน ยกเลิกการเชื่อมต่อพิน 2 ไว้ก่อน
หมายเหตุ: บางครั้งแผงเมทริกซ์ LED สามารถเปิดเครื่องได้ในสถานะขี้ขลาด หากเกิดเหตุการณ์นี้ขึ้น จะสามารถโหลดพาวเวอร์ซัพพลายของคุณลงได้อย่างรุนแรงไม่ว่าจะมีความจุปัจจุบันเท่าใด เราสังเกตเห็นสิ่งนี้ในระหว่างการพัฒนาอุปกรณ์ตั้งโต๊ะของเราซึ่งสามารถจ่ายไฟได้มากกว่า 4 แอมป์ วิธีแก้ไขคือเรียกใช้รหัส pi ก่อนแล้วจึงเสียบพิน 2 เพื่อจ่ายไฟให้กับแผง LED ด้วยวิธีนี้ แผงควบคุมควรอยู่ในสถานะใช้พลังงานต่ำ เนื่องจากจะล้างสถานะ LED แบบสุ่มออก กระแสไฟนิ่ง (ปิด LED ทั้งหมด) สำหรับแผง LED ของเรามีเพียง 50mA ที่ 5v
CAT5
เราใช้สายเคเบิลอีเทอร์เน็ต CAT5 ขนาด 25 ฟุตและปรับเปลี่ยนให้เสียบเข้ากับหมุดส่วนหัวของ pi ที่ปลายด้านหนึ่ง และยอมรับหมุดขั้วต่อ GROVE ที่อีกด้านหนึ่ง เพื่อให้เราสามารถขยายระยะห่างเพื่อวางเซ็นเซอร์ tinyLiDAR ที่ด้านข้างของเราได้ รูปภาพด้านบนแสดงสายเคเบิลนี้ก่อนและหลังการดัดแปลง ไม่ต้องสนใจสีของสายพินของส่วนหัวเนื่องจากไม่สัมพันธ์กับไดอะแกรม เพียงให้แน่ใจว่าคุณวางสายระบบของคุณตามที่แสดงในไดอะแกรมการเชื่อมต่อรูปภาพที่แสดงก่อนหน้าในขั้นตอนที่ 3
ขั้นตอนที่ 8: สว่างขึ้น
ลำดับการเปิดเครื่องเริ่มต้นที่เหมาะสมควรเสียบอุปกรณ์ชาร์จ microUSB เข้ากับ pi และรอให้ไฟ LED สีฟ้าบนเซ็นเซอร์ tinyLiDAR กะพริบอย่างรวดเร็วซึ่งแสดงว่ากำลังดำเนินการวัด นี่เป็นการพิสูจน์ว่าโค้ดทำงานอย่างถูกต้อง
จากนั้นคุณสามารถเชื่อมต่อพิน 2 อย่างช้าๆ แต่แน่นหนาสำหรับแหล่งจ่ายไฟแผง LED ระวังอย่าผิดพลาดในขณะที่ทำเช่นนี้! หากแผง LED แสดง LED สว่างค้างสองสามดวง แสดงว่าอาจมีปัญหา ดังนั้นให้ถอดไฟ microUSB ออกจาก pi แล้วรอสองสามวินาทีเพื่อลองลำดับการเปิดเครื่องอีกครั้ง
ในการรันโค้ด ให้ป้อนข้อมูลต่อไปนี้:
cd /home/pi/parking/rpi-rgb-led-matrix/bindings/python/samples
sudo python parking.py
หากทุกอย่างเป็นไปด้วยดี คุณควรได้หน้าจอที่คล้ายกับที่แสดงในวิดีโอ
ดูรหัส park.py อย่างรวดเร็วเพื่อทำความเข้าใจว่าเราใช้ขีดจำกัดใด ค่าเริ่มต้นสำหรับเซ็นเซอร์ด้านหน้าคือ 200 มม. เนื่องจากช่วงเซ็นเซอร์อยู่ระหว่าง 11 มม. ถึง 2 ม. จึงเป็นความคิดที่ดีที่จะรักษาระยะห่าง nom_parked_Front ไว้ที่ 200 มม. หรือสูงกว่า เซ็นเซอร์ด้านข้าง nom_parked_Side ตั้งไว้ที่ 600 มม. ดูภาพด้านบนสำหรับโค้ด Python ที่แสดงตัวเลือกการกำหนดค่าเหล่านี้
หากทุกอย่างใช้งานได้ คุณสามารถติดตั้งระบบในโรงรถและปรับพารามิเตอร์ด้านบนได้ตามต้องการ เนื่องจากคุณเชื่อมต่อ pi กับ WiFi คุณจึงสามารถเข้าไปแก้ไขการตั้งค่าระยะทางได้ตามต้องการสำหรับการตั้งค่าโรงรถของคุณในขณะที่ยังติดตั้งอยู่
“ตอนนี้เลยเหรอ?”
ทำไมใช่ ใช่แล้ว! -- ถึงเวลาเต้นรำอย่างมีความสุขของคุณ:)
ขอบคุณสำหรับการอ่านและสนุกกับผู้ช่วยที่จอดรถใหม่ของคุณ!
ขั้นตอนที่ 9: ขั้นตอนเพิ่มเติมและคำสั่งที่เป็นประโยชน์
ขั้นตอนเพิ่มเติม - โปรแกรมเสริม FTP สำหรับ Sublime Text
ในการแก้ไขไฟล์สคริปต์ Python โดยตรงบน pi เราสามารถติดตั้ง FTP addon ชื่อ Sublime SFTP โดย Wbond คุณสามารถดาวน์โหลด addon นี้โดยทำตามคำแนะนำที่นี่
ในการตั้งค่าส่วนเสริมนี้ เราจำเป็นต้องกำหนดค่าข้อมูลรับรอง FTP ภายใต้ไฟล์ | SFTP/FTP | ตั้งค่าเซิร์ฟเวอร์… หน้า
สำหรับการตั้งค่าของเราเราใช้:
"type": "sftp", "sync_down_on_open": true, "sync_same_age": true, "host": "192.168.0.200", "user": "pi", "password": "YOUR_RPI_PASSWORD_HERE", "พอร์ต": "22", "remote_path": "/home/pi/", "file_permissions": "664", "dir_permissions": "775",
ใช้ Ctrl+S หรือ ไฟล์ | บันทึกเพื่อบันทึกข้อมูลนี้ คุณจะได้รับพร้อมท์ให้ตั้งชื่อเพื่อเรียกการกำหนดค่านี้ เราเรียกง่ายๆ ว่า "rpizw_0_200"
ตอนนี้เพื่อเข้าสู่ระบบ pi จาก SublimeText ไปที่ File | SFTP/FTP | เรียกดูเซิร์ฟเวอร์…
เลือกจากรายการตัวเลือกที่ปรากฏขึ้น คุณจะต้องเลือกโปรไฟล์ด้วยชื่อที่คุณระบุไว้ข้างต้น;) ปฏิบัติตามคำแนะนำเพื่อไปยังโฟลเดอร์ต่างๆ และแก้ไขไฟล์ที่ต้องการ
สิ่งพิเศษที่เป็นประโยชน์
คำสั่ง Linux ที่มีประโยชน์เพื่อใช้กับ pi
ก่อนถอดปลั๊ก pi ตรวจสอบให้แน่ใจว่าได้ปิดเครื่องเสมอ เพื่อไม่ให้ไฟล์เสียหายในการ์ด microSD ของคุณ ป้อนคำสั่งนี้:
sudo ปิดตอนนี้
และรอให้ไฟ LED สีเขียวดับก่อนที่จะถอดปลั๊ก ในทำนองเดียวกันเพื่อเริ่มต้นใหม่ คุณสามารถป้อน:
sudo รีบูตทันที
ในการแสดงรายการไฟล์ในไดเร็กทอรี ใช้สิ่งนี้:
ลส
คุณสามารถค้นหาคำสั่ง Linux ที่เป็นประโยชน์อื่นๆ ได้ที่นี่
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง