วิธีการควบคุมของ Raspberry Pi
![Raspberry Pi EP.5 การควบคุมระยะไกลด้วย Remote Desktop by เอกรินทร์](https://i.ytimg.com/vi/TnYjh4zkdVk/hqdefault.jpg)
เนื้อหา
- ขั้นตอน
- ส่วนที่ 1 ติดตั้งระบบปฏิบัติการ
- ส่วนที่ 2 ดาวน์โหลด NOOBS
- ส่วนที่ 3 ฟอร์แมตการ์ด SD
- ส่วนที่ 4 คัดลอก NOOBS ไปยังการ์ด SD
- ส่วนที่ 5 ควบคุม Raspberry pi
- ส่วนที่ 6 กำหนดค่าเครือข่าย
- กำหนดค่าเครือข่ายแบบใช้สาย
- ตั้งค่าเครือข่ายไร้สาย (SSH / wifi)
- ส่วนที่ 7 ติดตั้ง Geany IDE
- ตอนที่ 8 การขับมอเตอร์ DC ใน Python (สายไฟ)
- ส่วนที่ 9 เชื่อมต่อให้เสร็จ
- ตอนที่ 10 ขับเครื่องยนต์ DC ใน Python (ส่วนการเขียนโปรแกรม)
- ตอนที่ 11 การท้าทายอันดับ 1
- ใช้เซ็นเซอร์อัลตร้าซาวด์ HC-SR04 (เดินสาย)
- ใช้เซ็นเซอร์อัลตร้าซาวด์ HC-SR04 (ส่วนการเขียนโปรแกรม)
- ตอนที่ 12 การท้าทายครั้งที่ 2
Raspberry Pi เป็นคอมพิวเตอร์ขนาดเท่าบัตรเครดิต มันถูกออกแบบและผลิตโดยมูลนิธิราสเบอร์รี่ซึ่งเป็นองค์กรที่ไม่แสวงหาผลกำไรที่อุทิศให้กับการสร้างคอมพิวเตอร์และโปรแกรมให้สามารถเข้าถึงได้มากที่สุด ภารกิจดั้งเดิมของโครงการ Raspberry คือการออกแบบคอมพิวเตอร์ให้มีราคาถูกที่สุดเท่าที่จะเป็นไปได้ด้วยความสามารถในการเขียนโปรแกรมที่ดี ดังนั้นใส่ไว้ในมือของนักเรียน คู่มือนี้มีวัตถุประสงค์เพื่อวางรากฐานสำหรับการใช้ Raspberry Pi และช่วยให้การจัดการง่ายขึ้น
การเตือน บทความนี้มีไว้สำหรับผู้ที่มีพื้นฐานด้านคอมพิวเตอร์ที่ดี.
ขั้นตอน
ส่วนที่ 1 ติดตั้งระบบปฏิบัติการ
- เข้าใจว่า NOOBS คืออะไร (ใหม่ออกจากกล่องซอฟต์แวร์) มันเป็นตัวจัดการการติดตั้งสำหรับระบบปฏิบัติการต่าง ๆ ที่สามารถใช้กับ Raspberry Pi โดยมีวัตถุประสงค์เพื่ออำนวยความสะดวกในการติดตั้งระบบปฏิบัติการ (OS) ที่เราเลือก นี่เป็นครั้งแรกที่เราจะติดต่อกับส่วนซอฟต์แวร์ของไมโครคอมพิวเตอร์ของเรา ระบบปฏิบัติการต่อไปนี้รวมอยู่ใน NOOBS:
- Raspbian
- Pidora
- OpenELELC
- RaspBMC
- RISC OS
- ซุ้มประตู Linus
- อุปกรณ์ที่จำเป็นสำหรับการสอนนี้คือ:
- พีซี
- การ์ด SD คลาส 4 อย่างน้อย 8 GB
- กล่องเดิมที่มี Raspberry Pi มีการ์ดหน่วยความจำ SD ที่ติดตั้งไว้ล่วงหน้าพร้อมกับ NOOBS แล้ว ขั้นตอนต่อไปนี้จึงมีประโยชน์เมื่อติดตั้งบนการ์ด SD ใหม่เท่านั้น
ส่วนที่ 2 ดาวน์โหลด NOOBS
-
คุณสามารถดาวน์โหลด "NOOBS" ตามที่อยู่ต่อไปนี้: NOOBS
ส่วนที่ 3 ฟอร์แมตการ์ด SD
- จำเป็นต้องมีการ์ด SD อย่างน้อย 4 GB อย่างไรก็ตาม 8 GB เป็นขนาดที่แนะนำ
ส่วนที่ 4 คัดลอก NOOBS ไปยังการ์ด SD
- แตกไฟล์ แตกเอกสารจากไฟล์ zip ชื่อ NOOBS ที่ดาวน์โหลดในขั้นตอนแรก คัดลอกไฟล์ที่แตกแล้วไปยังการ์ด SD ที่จัดรูปแบบใหม่ อย่างไรก็ตามโปรดระวังว่าในบางกรณีไฟล์ที่ถูกแตกสามารถไปที่โฟลเดอร์ใหม่และในกรณีนี้มันจะเป็นการดีกว่าถ้าจะคัดลอกไฟล์เองแทนที่จะเป็นโฟลเดอร์
- เมื่อคุณเริ่มรายการระบบปฏิบัติการที่ใช้ได้จะปรากฏขึ้น
ส่วนที่ 5 ควบคุม Raspberry pi
- ในการใช้ Raspberry Pi ให้ทำตามขั้นตอนด้านล่าง
- ใส่การ์ด SD ลงใน Raspberry จนกว่าคุณจะได้ยิน "คลิก"
- เชื่อมต่อสาย HDMI และเชื่อมต่อเข้ากับหน้าจอ จำไว้ว่าให้เสียบและเปิด
- หน้าจอ จ่ายไฟให้กับ Raspberry ด้วย Micro USB Charger
- เสียบคีย์บอร์ดและเมาส์เข้ากับพอร์ต USB
- หลังจากทำตามขั้นตอนเหล่านี้แล้วคุณจะเห็นบนหน้าจอว่าซอฟต์แวร์ NOOBS กำลังโหลด เมื่อโหลดแล้วรายการของระบบปฏิบัติการที่สามารถติดตั้งได้จะปรากฏขึ้น Raspbian เป็นระบบปฏิบัติการที่แนะนำสำหรับการติดตั้ง เลือก Raspbian และคลิกที่ปุ่ม "ติดตั้ง" ที่อยู่ด้านบนของหน้าต่าง
-
การติดตั้งใช้เวลาประมาณ 20 นาที เมื่อการติดตั้งเสร็จสิ้นหน้าจอคำสั่งสีดำจะปรากฏขึ้น จากนั้นจะจำเป็นต้องป้อนเมื่อโปรแกรมร้องขอชื่อผู้ใช้: "pi" และรหัสผ่าน: "raspberry" จากนั้นพิมพ์คำสั่งต่อไปนี้ในบรรทัดคำสั่งแล้วกดปุ่ม "Enter":startx
- ขอแสดงความยินดี! คุณมีการจัดการเพื่อติดตั้งสภาพแวดล้อมที่จำเป็นในการใช้ Raspberry pi ของคุณ :)! ตอนนี้เราจะดำเนินการกำหนดค่าเครือข่าย
ส่วนที่ 6 กำหนดค่าเครือข่าย
เชื่อมต่อกับอินเทอร์เน็ต เมื่อ Raspberry Pi ทำงานได้แล้วสิ่งที่ต้องทำต่อไปคือการตั้งค่าการเชื่อมต่ออินเทอร์เน็ตสำหรับ Raspberry Pi เมื่อเสร็จแล้วคุณจะสามารถท่องอินเทอร์เน็ตได้เช่นเดียวกับ คอมพิวเตอร์ที่แตกต่างอย่างสิ้นเชิง มีสองวิธีในการตั้งค่าการเชื่อมต่อของคุณทั้งแบบใช้สาย (ด้วยสายเคเบิลอีเธอร์เน็ต) หรือแบบไร้สายผ่าน Wi-Fi ทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่าเครือข่ายของคุณ
กำหนดค่าเครือข่ายแบบใช้สาย
- อุปกรณ์ที่จำเป็นคือ:
- Raspberry Pi ที่ใช้งานได้ (ดูการเริ่มต้นใช้งาน Raspberry Pi)
- สายเคเบิลอีเธอร์เน็ต
- เพียงเชื่อมต่อสายเคเบิลอีเทอร์เน็ตหนึ่งหัวเข้ากับพอร์ตที่ระบุใน Raspberry Pi และอีกตัวหนึ่งเข้ากับโมเด็มหรือเราเตอร์อินเทอร์เน็ต ดังนั้น Raspberry Pi จะเชื่อมต่อกับอินเทอร์เน็ตโดยอัตโนมัติ
ตั้งค่าเครือข่ายไร้สาย (SSH / wifi)
- อุปกรณ์ที่จำเป็นคือ:
- Raspberry Pi ที่ใช้งานได้ (ดูที่การเริ่มต้นใช้งาน Raspberry Pi 3)
- รหัส WiFi USB
- เสียบ USB wifi stick เข้ากับพอร์ตที่มีอยู่ของ Raspberry Pi
-
เปิดบริการตั้งค่า wifi โดยแตะที่ไอคอนในเมนู- หลังจากเปิดบริการคุณจะเห็นอินเทอร์เฟซต่อไปนี้ปรากฏขึ้น
- หลังจากเปิดบริการคุณจะเห็นอินเทอร์เฟซต่อไปนี้ปรากฏขึ้น
-
คลิกที่ปุ่มสแกน หน้าต่างใหม่จะปรากฏขึ้น ดังนั้นมันจะเพิ่มเครือข่ายที่เราต้องการใช้เป็นสองเท่า -
ใส่รหัสผ่าน ป้อนรหัสผ่านการเข้าถึงเครือข่ายในฟิลด์ Pre-Shared Key (PSK) ดังที่แสดงด้านล่าง- ตอนนี้คลิก "บันทึก" และเพิ่มเครือข่าย หลังจากทำเช่นนี้คุณจะเชื่อมต่อกับเครือข่ายอินเทอร์เน็ต
- ตอนนี้คลิก "บันทึก" และเพิ่มเครือข่าย หลังจากทำเช่นนี้คุณจะเชื่อมต่อกับเครือข่ายอินเทอร์เน็ต
ส่วนที่ 7 ติดตั้ง Geany IDE
- Geany เป็นผู้เผยแพร่ e ที่มีน้ำหนักเบาโดยใช้ GTK + และ Scintilla และรวมถึงคุณลักษณะพื้นฐานของสภาพแวดล้อมการพัฒนาแบบรวม ออกแบบมาเพื่อให้มีการพึ่งพาน้อยและเริ่มต้นอย่างรวดเร็วรองรับ C / C ++, Java, JavaScript, PHP, HTML, CSS, Python, Perl, Ruby, Pascal และภาษา Haskell
-
เปิดพรอมต์คำสั่งในเมนู - ป้อนบรรทัดคำสั่ง "sudo root" เพื่ออยู่ในโฟลเดอร์รูทของ Raspberry จากนั้นป้อนชื่อผู้ใช้ "pi" และรหัสผ่าน "raspberry"
- ป้อนบรรทัดคำสั่งต่อไปนี้
apt-get install python geany xterm
- การติดตั้งใช้เวลาสองสามวินาที
- เปิด Geany IDE ในเมนู
- ตอนนี้คุณสามารถเขียนโปรแกรมแรกของคุณโดยสร้างไฟล์แรกในแท็บ "ไฟล์"
- เมื่อเขียนรหัสแล้วสิ่งที่คุณต้องทำคือลงทะเบียนและรวบรวมรหัส
ตอนที่ 8 การขับมอเตอร์ DC ใน Python (สายไฟ)
ในส่วนนี้เราจะแสดงวิธีการเชื่อมต่อมอเตอร์ DC เข้ากับ Raspberry Pi และวิธีการสร้างโปรแกรมขนาดเล็กในไพ ธ อนสามารถเปลี่ยนแปลงความเร็วในการหมุนและทิศทางของมอเตอร์กระแสตรง
-
บทช่วยสอนเล็ก ๆ นี้อาจจะช่วยคุณในภายหลังเพื่อให้โครงการหุ่นยนต์ของคุณประสบความสำเร็จ - ทำความเข้าใจหลักการ ก่อนอื่นคุณต้องรู้ก่อนว่า มอเตอร์ DC ไม่ได้เชื่อมต่อโดยตรงกับ GPIO ของ Raspberry Pi. แน่นอนว่ากระแสไฟฟ้าที่จะใช้ในการหมุนเครื่องยนต์จะค่อนข้างสูงสำหรับราสเบอร์รี่ Pi ขนาดเล็กของเราและมันอาจเสียหายได้
- นั่นเป็นเหตุผลที่เราจะใช้ชิปที่ออกแบบมาเพื่อควบคุมมอเตอร์กระแสตรงได้สูงสุดสองตัว ชิป L293D
- คุณสมบัติที่สำคัญของ Raspberry Pi คือแถวของพิน GPIO ที่มุมของบอร์ด สามารถกำหนดพิน GPIO ใดก็ได้ในการเขียนโปรแกรมเป็นอินพุตหรือเอาต์พุตพิน
- นั่นเป็นเหตุผลที่เราจะใช้ชิปที่ออกแบบมาเพื่อควบคุมมอเตอร์กระแสตรงได้สูงสุดสองตัว ชิป L293D
- ต่อสาย L293D
- พิน 4, 5, 12 และ 13 ของ L293D จะต้องเชื่อมต่อกับ GND ดังที่เห็นในภาพ Pin 16 ของ L293D ช่วยให้สามารถขับเคลื่อนได้ เราจะเลี้ยงมันใน 5V แรงดันไฟฟ้านี้ไม่ได้ถูกส่งไปยังมอเตอร์ แต่จะส่งไปยังชิป L293D เท่านั้น
- ในการจ่ายไฟให้มอเตอร์ใช้ pin 8 ของ L293D (ขั้วบวก) ที่เชื่อมต่อกับแบตเตอรี่หรือแบตเตอรี่ เทอร์มินัลเชิงลบจะต้องเชื่อมต่อกับกราวด์ (GND) ระวังอย่าให้เกินขีด จำกัด แรงดันไฟฟ้าสำหรับมอเตอร์
- พิน 4, 5, 12 และ 13 ของ L293D จะต้องเชื่อมต่อกับ GND ดังที่เห็นในภาพ Pin 16 ของ L293D ช่วยให้สามารถขับเคลื่อนได้ เราจะเลี้ยงมันใน 5V แรงดันไฟฟ้านี้ไม่ได้ถูกส่งไปยังมอเตอร์ แต่จะส่งไปยังชิป L293D เท่านั้น
-
เชื่อมต่อมอเตอร์ ในการเชื่อมต่อมอเตอร์ตัวแรกเพียงเชื่อมต่อกับพิน 3 และ 6 (เอาต์พุต 1A และ 1B) ของชิป L293D
ส่วนที่ 9 เชื่อมต่อให้เสร็จ
- Pin 1 ของชิป L293D เป็นพิน "enable" ของมอเตอร์ตัวแรก เมื่อพินนี้เป็น "สูง" อย่างเป็นเหตุเป็นผลมอเตอร์จะวิ่งด้วยความเร็วสูงสุดและเมื่อพินนี้เป็น "ต่ำ" อย่างมีเหตุผลมอเตอร์ก็จะหยุดนิ่ง เพื่อให้ความเร็วในการลดลงของเครื่องยนต์นั้นเพียงพอที่จะเล่นในสองสถานะนี้โดยการสลับพวกเขาอย่างรวดเร็ว สิ่งนี้เรียกว่า "PWM" (Pulse Width Modulation) เราจะเชื่อมต่อ pin 1 ของชิป L293D กับ pin 22 ของ Raspberry Pi เพื่อควบคุมความเร็ว
- ในการควบคุมทิศทางการหมุนของมอเตอร์คุณต้องสนุกกับพิน L293D ของพินที่ 2 และ 7 เมื่อพิน 2 เป็น "สูง" และพิน 7 เป็น "ต่ำ" มอเตอร์จะหมุนในทิศทางเดียว หากสถานะลอจิกทั้งสองกลับด้านระหว่างพินทั้งสองนี้มอเตอร์จะหมุนไปในทิศทางอื่น เราจะเชื่อมต่อ l293D chip 2 pin กับ Raspberry pin 18 และ l293D chip 7 pin กับ Raspberry 16 pin
- ในการควบคุมทิศทางการหมุนของมอเตอร์คุณต้องสนุกกับพิน L293D ของพินที่ 2 และ 7 เมื่อพิน 2 เป็น "สูง" และพิน 7 เป็น "ต่ำ" มอเตอร์จะหมุนในทิศทางเดียว หากสถานะลอจิกทั้งสองกลับด้านระหว่างพินทั้งสองนี้มอเตอร์จะหมุนไปในทิศทางอื่น เราจะเชื่อมต่อ l293D chip 2 pin กับ Raspberry pin 18 และ l293D chip 7 pin กับ Raspberry 16 pin
ตอนที่ 10 ขับเครื่องยนต์ DC ใน Python (ส่วนการเขียนโปรแกรม)
- รหัสขนาดเล็กนี้ทำให้สามารถควบคุมทิศทางและความเร็วในการหมุนของเครื่องยนต์ มันหมุนทิศทางแรกในทิศทางเดียวด้วยความเร็วสูงเป็นเวลา 3 วินาที จากนั้นลดความเร็วลง จากนั้นทิศทางการหมุนกลับด้านและมอเตอร์ทำงานด้วยความเร็วที่ลดลงจากนั้นด้วยความเร็วสูง ตอนนี้เราให้คุณสำรวจรหัสนี้:
นำเข้า GPIO.setmode (GPIO.BOARD) GPIO จากเวลานำเข้า sleep sleep RPi.GPIO
- ตอนนี้เราสามารถกำหนดค่าพอร์ต GPIO
Motor1A = 16 ## เอาต์พุต A ของมอเตอร์ตัวแรก, pin 16 Motor1B = 18 ## เอาต์พุต B ของมอเตอร์ตัวแรก, pin 18 Motor1E = 22 ## เปิดใช้งานมอเตอร์ตัวแรก, pin 22 GPIO.setup (Motor1A, GPIO.OUT) ## 3 พินเป็นเอาต์พุต (OUT) GPIO.setup (Engine1B, GPIO.OUT) GPIO.setup (Engine1E, GPIO.OUT)
- ที่นี่เรากำหนดค่า PWM
pwm = GPIO.PWM (Motor1E, 50) ## Pin 22 ใน PWM ที่ความถี่ 50Hz pwm.start (100) ## เรากระทำด้วยรอบการทำงาน 100%
- สถานะของพอร์ต GPIO นั้นเปิดใช้งานอยู่
"การหมุนทิศทางโดยตรงความเร็วสูงสุดพร้อมรอบการทำงาน 100%" GPIO.output (Motor1A, GPIO.HIGH) GPIO.output (Motor1B, GPIO.LOW) GPIO.output (Motor1E, GPIO.HIGH)
- ตอนนี้ให้เครื่องยนต์ทำงานเป็นเวลา 3 วินาที
การนอนหลับ (3)
- รอบการทำงานถูกเปลี่ยนเป็น 20% เพื่อลดความเร็ว
pwm.ChangeDutyCycle (20)
"การหมุนทิศทางโดยตรงกับรอบการทำงาน 20%" การนอนหลับ (3) "การหมุนย้อนกลับที่มีรอบการทำงาน 20%" GPIO.output (Motor1A, GPIO.LOW) GPIO.output (Motor1B, GPIO.HIGH) การนอนหลับ (3) pwm.ChangeDutyCycle (100) "การหมุนย้อนกลับความเร็วสูงสุด (รอบการทำงาน 100%)" การนอนหลับ (3) "หยุดเครื่องยนต์" GPIO.output (Engine1E, GPIO.LOW) pwm.stop () ## หยุด PWM GPIO.cleanup ()
ตอนที่ 11 การท้าทายอันดับ 1
ทำรหัสขนาดเล็กด้วยสองเอ็นจินในครั้งนี้ มันขึ้นอยู่กับคุณ!
ใช้เซ็นเซอร์อัลตร้าซาวด์ HC-SR04 (เดินสาย)
- อุปกรณ์ที่จำเป็นสำหรับขั้นตอนนี้คือ:
- โมดูลอัลตร้าซาวด์ HC-SR04
- ความต้านทาน 1 kΩ
- ความต้านทาน 2 kΩ
- สายเคเบิลเชื่อมต่อ
- Breadbord
- เซ็นเซอร์อัลตราโซนิค HC-SR04 วัดระยะทาง 2 ถึง 400 ซม. โดยส่งสัญญาณเสียงที่ 40 kHz ในฐานะที่เป็นฟังก์ชั่นของเวลาที่แยกการปลดปล่อยจากการรับสัญญาณอัลตร้าซาวด์จะคำนวณระยะทาง
- HC-SR04 มี 4 พิน:
- พิน (Gnd) ใช้เพื่อทำให้โมดูลต่อกราวนด์ (0 V)
- เอาท์พุทพิน (Echo) ใช้เพื่อแจ้งให้ทราบถึงการสิ้นสุดการปล่อยของรถไฟ dultrason และการกลับมาหลังจากการสะท้อนกลับบนสิ่งกีดขวาง
- อินพุตพิน (Trig for Trigger) ใช้เพื่อกระตุ้นการปล่อยของรถไฟ dultrason
- พิน (Vcc) ใช้ในการจ่ายกำลังเซนเซอร์ใน 5 V
- แรงดันไฟฟ้าขาออกที่ส่งมาจาก Echo pin คือ 5V อย่างไรก็ตามขาอินพุต (GPIO) ของ Rapsberry Pi ได้รับการออกแบบให้สูงถึง 3.3V
- ดังนั้นเราจะหลีกเลี่ยงการทำลาย Rapsberry Pi โดยใช้สะพานแบ่งแรงดันไฟฟ้าที่ประกอบด้วยตัวต้านทานสองตัวเพื่อลดแรงดันเอาต์พุตของเซ็นเซอร์
- เมื่อนั้นตามที่คุณเห็นด้านบนให้เสียบ:
- "Vcc" ต้นสนที่ 5 V ของ Raspberry Pi (ด้ายสีแดง)
- พิน "Trig" บนพิน GPIO 23 (พิน 16) ของ Raspberry (เธรดสีเหลือง)
- พิน "Echo" บนพิน GPIO 24 (พิน 18) ของ Raspberry (สายสีน้ำเงิน)
- สน GND กับราสเบอร์รี่ GND (สายสีดำ)
- อย่าลืมความต้านทานเล็กน้อยสองตัวของคุณ!
- ตอนนี้เซ็นเซอร์เชื่อมต่อกับ Raspberry Pi มันหายไปสำหรับการเขียนโปรแกรมหลาม!
ใช้เซ็นเซอร์อัลตร้าซาวด์ HC-SR04 (ส่วนการเขียนโปรแกรม)
- ในขั้นตอนแรกไลบรารีต่าง ๆ จะต้องถูกนำเข้าไปยัง:
- การจัดการพอร์ต GPIO
- การจัดการนาฬิกา
นำเข้า RPi.GPIO เป็นเวลานำเข้า GPIO GPIO.setmode (GPIO.BCM)
- จากนั้นเราจะต้องระบุหมุดต่าง ๆ ที่เราจะใช้ ในกรณีของเราสัญญาณขาออก "GPIO 23" (TRIG: สัญญาณทริกเกอร์ไปยังเซ็นเซอร์อัลตราโซนิค) และขาอินพุต "GPIO 24" (ECHO: การได้รับสัญญาณกลับมา)
TRIG = 23 ECHO = 24
- ตอนนี้เราสามารถกำหนดค่าพอร์ต GPIO
GPIO.setup (TRIG, GPIO.OUT) GPIO.setup (ECHO, GPIO.IN)
- เพื่อให้แน่ใจว่าพิน "Trig" ต่ำในขั้นต้นเราจะตั้งเป็น "เท็จ" และให้เวลารอเพื่อให้เซ็นเซอร์สามารถรีเซ็ตได้
GPIO.output (TRIG, False) "กำลังรอให้เซนเซอร์จับคู่" time.sleep (2)
- เซ็นเซอร์อัลตราโซนิกต้องการพัลส์ 10 μsเพื่อเปิดใช้งานโมดูล ในการสร้างทริกเกอร์พิน Trig ต้องถูกบังคับสูงเป็นเวลา 10 μsจากนั้นรีเซ็ตเป็นต่ำ:
GPIO.output (TRIG, True) time.sleep (0.00001) GPIO.output (TRIG, เท็จ)
- ในการประทับเวลาเหตุการณ์ที่แตกต่างที่มาจากการเปลี่ยนสถานะของพินเราจะใช้ฟังก์ชัน while loop และ time.time () ตรวจจับการเปลี่ยนแปลงสถานะสัญญาณ ขั้นตอนแรกคือการตรวจจับและประทับเวลาในทันทีก่อนที่สถานะจะเปลี่ยนจากสถานะต่ำเป็นสถานะสูง ช่วงเวลานี้ (pulse_start) จะเป็นช่วงสุดท้ายของการปล่อยรถไฟ dultrason โดยเซ็นเซอร์
ในขณะที่ GPIO.input (ECHO) == 0: pulse_start = time.time ()
- เมื่อรถไฟอัลตราโซนิคถูกปล่อยออกมา Echo pin จะยังคงอยู่ในระดับสูงจนกระทั่งอัลตราซาวด์ที่สะท้อนกลับมาจากสิ่งกีดขวาง จากนั้นเราพยายามตรวจสอบการสลับของสัญญาณ Echo อีกครั้งเพื่อให้อยู่ในระดับต่ำ เวลานี้ประทับ (pulse_end) จะเป็นการตรวจจับการกลับมาของอัลตร้าซาวด์
ในขณะที่ GPIO.input (ECHO) == 1: pulse_end = time.time ()
- เราสามารถทราบระยะเวลาของแรงกระตุ้น (pulse_duration) โดยการคำนวณความแตกต่างระหว่างสองจังหวะ:
pulse_duration = pulse_end - pulse_start
- เพื่อให้ทราบระยะทางเราใช้สูตร:
distance = pulse_duration * 17150
- เราจะปัดเศษเป็นสองทศนิยม
ระยะทาง = รอบ (ระยะทาง 2)
- หากต้องการแสดงระยะทางเป็น "ซม.":
"ระยะทาง:", ระยะทาง, "ซม."
- ในการรีเซ็ตพิน GPIO เราเพิ่ม:
GPIO.cleanup ()
- สิ่งที่คุณต้องทำตอนนี้คือบันทึกรหัสโดยการตั้งชื่อมันว่า "sensor_distance" และเปิดใช้ในบรรทัดคำสั่ง:
sudo python remote_capteur.py
- ขอแสดงความยินดี! คุณสามารถควบคุมมอเตอร์รวมทั้งตรวจจับระยะห่างด้วยเซ็นเซอร์อัลตราโซนิคได้!
ตอนที่ 12 การท้าทายครั้งที่ 2
- หากคุณมียานพาหนะสามล้อนี้ ด้วยสิ่งที่คุณได้เรียนรู้มาจนถึงตอนนี้คุณจะต้องสามารถขับรถคันนี้เพื่อที่จะได้ "E" ในขณะที่มันเคลื่อนที่ เขาจะสามารถหยุดถ้าเขาพบสิ่งกีดขวางโดยใช้เซ็นเซอร์อัลตราโซนิก
- มันขึ้นอยู่กับคุณ!