สารบัญ:
- ขั้นตอนที่ 1: การยืดนาฬิกาคืออะไร?
- ขั้นตอนที่ 2: ความช่วยเหลือเล็กน้อยจากหมูที่บินได้
- ขั้นตอนที่ 3: TL;DR เวอร์ชัน
- ขั้นตอนที่ 4: การติดตั้ง
- ขั้นตอนที่ 5: ติดตั้ง Pigpio
- ขั้นตอนที่ 6: ทางเลือก: Dev System Setup
- ขั้นตอนที่ 7: การตั้งค่า WinSCP
- ขั้นตอนที่ 8: (w) รับรหัส
- ขั้นตอนที่ 9: หมายเหตุสำหรับแฮกเกอร์ที่ใกล้จะเป็น
วีดีโอ: TinyLiDAR บน Pi?: 9 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
สวัสดีอีกครั้ง!
ตอนนี้คุณได้ใช้เวลาที่มีคุณภาพกับ tinyLiDAR และ Arduino แล้ว Raspberry Pi ของคุณอาจรู้สึกเหงาบ้าง;)
pi มีพอร์ต I2C ใช่ไหม ทำไมไม่ลองติดมันและลองที่นั่นดูล่ะ! แผนดี แต่ถ้าคุณได้ลองแล้ว คุณอาจสังเกตเห็นว่าข้อมูลดูแปลกไปเล็กน้อย
ใช่ pi ได้สร้าง pull-ups 1.8K แล้ว ดังนั้นคุณจะต้องตัดแผ่น I2C บน tinyLiDAR เพื่อดึง 4.7K ออกจากวงจร - ดูคู่มืออ้างอิงสำหรับรายละเอียด แต่นี่ไม่ใช่สาเหตุของข้อมูลแปลก ๆ
เป็นเพราะบัส I2C ของ pi ไม่ตรงตามสเป็ค มันเป็นเช่นนี้ตั้งแต่เปิดตัว pi ครั้งแรกเนื่องจากชุดชิป Broadcom ตั้งแต่เริ่มต้น พวกเขาไม่รองรับคุณสมบัติ I2C ที่เรียกว่า "การยืดเวลา" อย่างถูกต้อง
คุณสามารถอ่านเพิ่มเติมเกี่ยวกับข้อผิดพลาด h/w ได้ที่นี่
ขั้นตอนที่ 1: การยืดนาฬิกาคืออะไร?
อย่างที่คุณอาจทราบ บัส I2C ประกอบด้วยสายไฟ 3 เส้น สิ่งเหล่านี้มีไว้สำหรับนาฬิกา (SCL) ข้อมูล (SDA) และพื้นทั่วไป สายนาฬิกาและข้อมูลเป็นแบบ open-collector/open-drain ซึ่งหมายความว่าพวกเขาต้องการตัวต้านทานแบบดึงขึ้นที่เชื่อมต่อกับรางจ่ายไฟที่เป็นบวกเพื่อให้มีตรรกะสูง เพื่อให้ลอจิกต่ำ อุปกรณ์ใดๆ บนรถบัสสามารถดึงสายลงสู่พื้นทั่วไปได้
ตามมาตรฐาน I2C อุปกรณ์มาสเตอร์เป็นอุปกรณ์ที่ให้สัญญาณนาฬิกาบนสาย SCL แต่ถ้าอัตรานี้เร็วเกินไป อุปกรณ์ Slave จะได้รับอนุญาตให้ช้าลงโดยเพียงแค่กดสายนาฬิกาค้างไว้จนกว่าจะพร้อมที่จะจัดการ กับข้อมูล นี่แหละที่เราเรียกว่า "การยืดเวลา"
อย่างเป็นทางการ การยืดเวลานาฬิกาถูกระบุว่าเป็นคุณสมบัติเสริมในมาตรฐาน I2C แต่เป็นคุณสมบัติทั่วไปที่จำเป็นสำหรับทาส "อัจฉริยะ" ส่วนใหญ่ที่ต้องการเวลาพิเศษในการให้ข้อมูลเซ็นเซอร์ ฯลฯ
ขั้นตอนที่ 2: ความช่วยเหลือเล็กน้อยจากหมูที่บินได้
เพื่อจัดการกับข้อบกพร่องของ I2C h/w เราพบห้องสมุดฟรีเล็กๆ ที่เรียกว่า "pigpio" เป็นไลบรารี่ยอดนิยม รวดเร็ว และน้ำหนักเบาที่เขียนด้วยภาษาซี มันทำงานเป็นดีมอนพื้นหลังสำหรับ Raspberry Pi และช่วยให้เราควบคุม I2C รวมถึง GPIO ได้อย่างง่ายดายจากไพ ธ อน ไลบรารีปฏิบัติต่อพอร์ต I2C เหมือนกับ GPIO และด้วยเหตุนี้จึงข้ามข้อผิดพลาดในการยืดเวลานาฬิกา I2C เช่นเดียวกับซอฟต์แวร์ทั้งหมดบน pi ไลบรารี่ของ pigpio อยู่ห่างออกไปเพียงแค่ "รวม" เท่านั้น ไปกันเลย!
ขั้นตอนที่ 3: TL;DR เวอร์ชัน
ตั้งค่า PiEnable SSH เพื่อเข้าสู่ระบบด้วย PuttyInstall pigpio library รับไฟล์ zip tinyLiDARUnzip และเรียกใช้จาก Putty
ไม่จำเป็น:
ตั้งค่า SublimeText ด้วย WinSCP
ขั้นตอนที่ 4: การติดตั้ง
สำหรับ Raspberry Pi 3 ของเรา เราใช้ระบบปฏิบัติการ New Out Of the Box Software (NOOBS Lite v2.4) มาตรฐาน มันมีเวอร์ชันเริ่มต้นของ Python ที่ติดตั้งไว้แล้วสำหรับเราพร้อมที่จะเขียนโค้ดด้วย คุณสามารถดาวน์โหลด OS ได้จากที่นี่
เมื่อติดตั้งบนการ์ด micro SD แล้ว คุณต้องเชื่อมต่อแป้นพิมพ์และจอภาพเพื่อให้คุณสามารถเข้าสู่ระบบ pi ได้เป็นครั้งแรก:
ชื่อผู้ใช้: pi รหัสผ่าน: raspberry
จากนั้น คุณสามารถเริ่มเซิร์ฟเวอร์เชลล์ที่ปลอดภัย (SSH) ด้วยคำสั่งเหล่านี้:
sudo systemctl เปิดใช้งาน sshsudo systemctl เริ่ม ssh
ต่อไปเราจะต้องการที่อยู่ IP ของ pi บนเครือข่ายของคุณเพื่อให้เราสามารถเข้าสู่ระบบด้วย PuTTY เพื่อรับสิ่งนี้ เพียงพิมพ์:
ชื่อโฮสต์ -I
และมองหาที่อยู่รูปแบบ IPv4 (สำหรับการตั้งค่าของเราคือ: 192.168.0.27)
ขั้นตอนข้างต้นจะช่วยให้ pi เรียกใช้ "headless" ได้ ซึ่งหมายความว่าคุณไม่จำเป็นต้องพิมพ์บนแป้นพิมพ์นี้อีก และไม่จำเป็นต้องใช้จอภาพวิดีโออีกต่อไป เราจะเข้าสู่ระบบผ่านเครือข่ายผ่านการเชื่อมต่อ SSH ที่ปลอดภัยในอนาคต คำสั่งดังกล่าวทำให้เซิร์ฟเวอร์ SSH เริ่มทำงานโดยอัตโนมัติทุกครั้งที่เปิด pi สิ่งนี้สะดวกสำหรับเราในขณะที่เรากำลังเข้ารหัส แต่อาจเป็นความเสี่ยงด้านความปลอดภัยในภายหลัง (การหวาดระแวงนั้นดี) ดังนั้นเมื่อคุณพร้อม คุณสามารถปิดใช้งานคุณสมบัติเริ่มต้น SSH อัตโนมัติได้โดยใช้คำสั่งนี้:
sudo systemctl ปิดการใช้งาน ssh
คำสั่งนี้ควรพิมพ์ที่แป้นพิมพ์ที่เชื่อมต่อกับ pi แน่นอน
PuTTY เป็นโปรแกรมเทอร์มินัลซึ่งจำเป็นต้องออกคำสั่งจากพีซีไปยัง pi ดังนั้นคุณควรคว้าสำเนาล่าสุดจากที่นี่
ติดตั้งและเริ่มต้น PuTTY คุณจะต้องพิมพ์ที่อยู่ IP จากด้านบนที่รายการชื่อโฮสต์และใช้การตั้งค่า SSH เริ่มต้น ตั้งชื่อเซสชั่นที่คุณต้องการและกดบันทึก จากนั้นกดโหลดและคลิกเปิดเพื่อเริ่มเซสชัน
ควรพาคุณไปที่หน้าจอเข้าสู่ระบบสำหรับ pi ใช้ชื่อผู้ใช้และรหัสผ่านเดียวกับที่คุณใช้ก่อนหน้านี้
ขั้นตอนที่ 5: ติดตั้ง Pigpio
สิ่งเดียวที่เราต้องติดตั้งหลังจากนี้ก็คือไลบรารี่ของ pigpio และเราสามารถทำได้โดยใช้คำสั่งต่อไปนี้
เคล็ดลับ: คุณสามารถคัดลอก [ctrl+c] และวาง [คลิกขวาเมาส์] เหล่านี้และคำสั่งอื่นๆ ลงในเทอร์มินัล PuTTY
sudo apt-get update
sudo apt-get ติดตั้ง pigpio python-pigpio python3-pigpio
ขั้นตอนที่ 6: ทางเลือก: Dev System Setup
นี่คือเคล็ดลับที่อาจช่วยประหยัดเวลาในโลกของการพัฒนาโค้ดของคุณได้ เราเกลียดโปรแกรมแก้ไขข้อความที่ใช้ยูนิกซ์จริงๆ อินเทอร์เฟซผู้ใช้มักจะงุ่มง่ามและแบบอักษรดูด GNU nano เกือบจะทนได้ แต่ไม่มีสิ่งใดที่ละเอียดเท่า SublimeText ที่คุณสามารถดาวน์โหลดได้จากที่นี่
เรามีสภาพแวดล้อมการพัฒนาที่ใช้ Windows และชอบที่จะใช้โปรแกรมแก้ไขข้อความนี้ทุกครั้งที่ทำได้ ดังนั้นเคล็ดลับในที่นี้คือการตั้งค่าระบบของคุณให้สามารถใช้โปรแกรมแก้ไขข้อความระดับมืออาชีพนี้บนเดสก์ท็อปของ Windows เพื่อเขียนโค้ดบน pi ที่ไม่มีส่วนหัวได้โดยตรง
ยังไง? ใช้แอพฟรีที่เรียกว่า WinSCP ที่คุณสามารถดาวน์โหลดได้จากที่นี่
ขั้นตอนที่ 7: การตั้งค่า WinSCP
WinSCP เป็นโปรแกรมถ่ายโอนไฟล์ที่ปลอดภัยซึ่งให้การแสดงภาพกราฟิกของไฟล์ที่มีอยู่ในประเภท rpi ของคุณ เช่นเดียวกับที่คุณเห็นในตัวจัดการไฟล์บนพีซีที่ใช้ Windows ของคุณ
ดังนั้นไปข้างหน้าและติดตั้งสองโปรแกรมข้างต้นด้วยตอนนี้
ถัดไป คุณจะต้องทำการปรับเปลี่ยนเล็กน้อยเพื่อให้ทั้งหมดทำงานได้อย่างถูกต้อง
สำหรับ WinSCP คุณสามารถคลิกที่ NEW Site เราจะใช้การตั้งค่า SFTP เริ่มต้น และคุณจะต้องป้อนที่อยู่ IP (สำหรับชื่อโฮสต์) ของ pi ของคุณและชื่อล็อกอิน (สำหรับชื่อผู้ใช้) เท่านั้น คุณสามารถเลือกที่จะปล่อยรหัสผ่านว่างไว้ได้หากต้องการ โดยระบบจะถามรหัสผ่านทุกครั้งที่คุณเข้าสู่ระบบ
ถัดไป ให้คลิกปุ่มขั้นสูง จากนั้นคลิกทางด้านซ้ายเพื่อตั้งค่า Environment Shell ทางด้านขวาเปลี่ยน "ค่าเริ่มต้น" ให้ดึงลงมาที่ตัวเลือก "sudo su -" สิ่งนี้จะช่วยให้สามารถเขียนการเปลี่ยนแปลงไปยัง pi ของคุณโดยไม่มีข้อผิดพลาดในการอนุญาตเมื่อคุณกดบันทึกจาก SublimeText
ตั้งค่า SublimeText เป็น Default Editor ใน WinSCP
ในการดำเนินการนี้ ให้คลิกปุ่มเครื่องมือบนหน้าจอการตั้งค่าการเข้าสู่ระบบ WinSCP ที่คุณเริ่มกล่องโต้ตอบ NewSite ภาพหน้าจอทั้งสองแสดงให้เห็นว่ามีการกำหนดค่าอย่างไร แต่โดยทั่วไป คุณจะคลิกเพื่อกำหนดค่าการตั้งค่า Editors และเพิ่ม Editor ซึ่งจะเป็นตัวแก้ไขภายนอก จากนั้นคุณสามารถเรียกดูไฟล์.exe ของตำแหน่งที่โปรแกรมแก้ไขนี้อยู่ในคอมพิวเตอร์ของคุณ
ขั้นตอนที่ 8: (w) รับรหัส
เมื่อเสร็จแล้ว ให้เข้าสู่ระบบด้วย WinSCP และ PuTTY
ตอนนี้เราพร้อมแล้ว เราสามารถเริ่มโค้ด tinyLiDAR ของเราได้
สร้างไดเร็กทอรีชื่อ tinyLiDAR ภายใต้ไดเร็กทอรี home/pi ของคุณ
คุณสามารถทำได้โดยคลิกขวาที่ด้านขวาของหน้าจอ WinSCP แล้วเลือก New / Directory
ตอนนี้ที่เทอร์มินัล PuTTY คุณสามารถพิมพ์
cd t
และกด tab เพื่อให้คำสั่งของคุณเติมข้อความอัตโนมัติเพื่อไปยังไดเร็กทอรี tinyLiDAR
เมื่อที่นี่พิมพ์ต่อไปนี้:
wget
เพื่อรับไฟล์โดยตรงจากเซิร์ฟเวอร์ของเรา จากนั้นเราสามารถเปิดเครื่องรูดโดยพิมพ์
เปิดเครื่องรูด
แล้วกด tab เพื่อเติมชื่ออัตโนมัติอีกครั้ง
หากต้องการเรียกใช้เพียงพิมพ์
หลาม tlgui.py
และ tinyLiDAR ของคุณจะตอบสนองต่อทุกคำสั่งของคุณบน pi:)
ขั้นตอนที่ 9: หมายเหตุสำหรับแฮกเกอร์ที่ใกล้จะเป็น
ไปข้างหน้าและดูภายใต้ประทุนโดยดับเบิลคลิกที่ไฟล์รหัสใด ๆ จาก WinSCP เป็นไฟล์ที่มีนามสกุล.py ไฟล์ควรเปิดขึ้นใน SublimeText บนพีซีของคุณโดยตรง เปลี่ยนสิ่งที่คุณต้องการแล้วกดบันทึก การเปลี่ยนแปลงของคุณจะถูกบันทึกโดยตรงไปยัง pi ของคุณ
เมื่อพร้อมแล้ว คุณเรียกใช้อีกครั้งโดยใช้แป้นลูกศรขึ้นสำหรับคำสั่งที่พิมพ์ล่าสุด หรือเพียงพิมพ์อีกครั้งแล้วกด Enter:
หลาม tlgui.py
คุณอาจสังเกตเห็นว่าเลย์เอาต์ Terminal GUI ดูดีกว่ารุ่น Arduino เล็กน้อย เป็นเพราะ PuTTY รองรับอักขระ Unicode ดังนั้นเราจึงสามารถใช้อักขระควบคุมเคอร์เซอร์พิเศษบางอย่างเพื่อให้ดูละเอียดยิ่งขึ้น
นอกจากนี้ยังมีคำสั่งเพิ่มเติมที่นี่ (เมื่อเทียบกับรุ่น Arduino) ซึ่งก็คือ "dc" สำหรับฟังก์ชันอ่านต่อเนื่อง ลองใช้และดูว่าคุณคิดอย่างไร
นั่นคือทั้งหมด!
ขอบคุณสำหรับการอ่านและสนุกกับการแฮ็คบน pi:)
แนะนำ:
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
CircuitPython และ TinyLiDAR: ตัวอย่างง่ายๆ: 3 ขั้นตอน
CircuitPython และ TinyLiDAR: ตัวอย่างง่ายๆ: TinyLiDAR ของ MicroElectronicDesign เป็นโมดูลตามเวลาในการบิน (ToF) แบบ ST VL53L0X ที่มีการเชื่อมต่อบัส i2c บอร์ดไมโครคอนโทรลเลอร์ Adafruit เชื่อมต่อกับเซ็นเซอร์นี้อย่างง่ายดาย เนื่องจากสามารถพูดโปรโตคอล i2c ผ่านหมุดข้อมูล
TinyLiDAR ในโรงรถของคุณ!: 10 ขั้นตอน
TinyLiDAR ในโรงรถของคุณ!: โครงการที่เปิดประตูโรงรถ DIY WiFi โลก IoT เพิ่งจะเริ่มระเบิด - บริษัท เทคโนโลยีทุกแห่งทั่วโลกกำลังพยายามคิดว่าพวกเขาจะเข้ากับโลกใหม่นี้ได้อย่างไร มันเป็นโอกาสที่ยิ่งใหญ่เท่านั้น! ดังนั้นสำหรับคำแนะนำนี้ ฉัน
TinyLiDAR สำหรับ IoT: 3 ขั้นตอน
TinyLiDAR สำหรับ IoT: หากคุณมองไปรอบๆ คุณจะสังเกตเห็นว่ามีการใช้อุปกรณ์อัจฉริยะจำนวนมากในชีวิตประจำวัน โดยทั่วไปจะใช้แบตเตอรี่และมักจะเชื่อมต่อกับอินเทอร์เน็ต (หรือที่เรียกว่า 'คลาวด์') อย่างใด ทั้งหมดนี้คือสิ่งที่เราเรียกว่าอุปกรณ์ 'IoT' และพวกเขา
ฉันสามารถใช้ TinyLiDAR ใน เกาได้ไหม: 3 ขั้นตอน
ฉันสามารถใช้ TinyLiDAR ใน… Scratch ได้หรือไม่: เราได้รับคำขอเป็นระยะๆ เพื่อสอบถามว่า tinyLiDAR จะทำงานบนแพลตฟอร์มการประมวลผลเฉพาะของพวกเขาหรือไม่ แม้ว่า tinyLiDAR ได้รับการออกแบบมาให้เป็นเซ็นเซอร์ LiDAR ที่ใช้งานง่ายสำหรับ Arduino UNO แต่ก็ไม่มีอะไรหยุดยั้งไม่ให้ใช้งานบนแพลตฟอร์มอื่น