สารบัญ:
- ขั้นตอนที่ 1: วัสดุในการเริ่มต้น
- ขั้นตอนที่ 2: การทดสอบส่วนประกอบ
- ขั้นตอนที่ 3: บัดกรีแผงตัวบ่งชี้
- ขั้นตอนที่ 4: ใส่แผงตัวบ่งชี้ไปที่การทดสอบ
- ขั้นตอนที่ 5: การรวมแผงตัวบ่งชี้กับทัชแพด
- ขั้นตอนที่ 6: ทำให้มันฉลาด
- ขั้นตอนที่ 7: การทาสีและการประกอบ
- ขั้นตอนที่ 8: การทดสอบระยะไกลด้วย VNC และ Final Code
- ขั้นตอนที่ 9: การจัดการสายเคเบิลและการประกอบขั้นสุดท้าย
- ขั้นตอนที่ 10: รูปภาพบางส่วนของตัวบ่งชี้
วีดีโอ: ตัวบ่งชี้จักรยานที่เรียบง่าย เปิดใช้งานระบบสัมผัส!: 10 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
สวัสดี! นี่เป็นคำสั่งสอนครั้งแรกของฉัน ฉันต้องการทำสิ่งต่าง ๆ จากศูนย์เสมอเพื่อดูว่ามันทำงานอย่างไรและใครไม่ชอบ DIY (ทำเอง) เมื่อคุณสามารถปรับเปลี่ยนบางสิ่งตามความต้องการของคุณได้ใช่ไหม แม้ว่างาน DIY จะน่าสนใจ แต่ก็ต้องใช้ความพยายามเล็กน้อยในการทำให้มันเกิดขึ้น การดูเว็บไซต์ Instructables เป็นวิธีที่ดีในการเริ่มต้นแรงบันดาลใจในการทำ DIY ของคุณ และนั่นคือวิธีที่ฉันเริ่มสร้างโครงการบางส่วนก่อนหน้านี้ แต่ฉันไม่เคยคิดเลยว่าจะทำอย่างนั้น
เมื่อโอกาสมาถึงแล้ว ฉันได้สร้างตัวบ่งชี้จักรยานด้วยการออกแบบที่เรียบง่ายและเปิดใช้งานระบบสัมผัส ฉันรู้ว่ามีคำแนะนำหรือแหล่งข้อมูลออนไลน์มากมายสำหรับตัวบ่งชี้จักรยาน แต่ส่วนใหญ่ใช้พื้นที่เพิ่มขึ้นหรือไม่ฉลาดพอที่จะปรับเปลี่ยนในลักษณะเฉพาะ หากคุณกำลังมองหาตัวบ่งชี้ที่ฉลาดพอที่จะตอบสนองความต้องการของคุณและให้โอกาสคุณในการปรับเปลี่ยนตามความต้องการของคุณ คำแนะนำนี้เหมาะสำหรับคุณ!
ทำไมตัวบ่งชี้จักรยาน?
ฉันชอบปั่นจักรยานรอบเมือง! ฉันใช้จักรยานของฉันและไปนั่งรถในตอนเช้าหรือตอนเย็น บางครั้งในตอนกลางคืนก็ยากที่จะขี่ เนื่องจากการจราจรด้านหลังคุณจะมองไม่เห็นคุณ และนั่นเป็นสัญญาณอันตราย นั่นคือเหตุผลที่ฉันต้องการสร้างอินดิเคเตอร์ด้วยวัสดุทั้งหมดที่ฉันมีที่บ้าน และยังดูดีบนจักรยานเมื่อคุณขี่ในเมืองโดยเปิดไฟสัญญาณ!
ทำโปรเจกต์แบบไม่ต้องเจอปัญหาก็ไม่เกิด! แต่ฉันจะบอกคุณถึงข้อผิดพลาดทั้งหมดที่ฉันทำในขณะที่สร้างสิ่งนี้เป็น "Handy Tip" เพื่อที่คุณจะได้ไม่พยายามทำมัน วิดีโอ YouTube ประกอบด้วยภาพประกอบเกี่ยวกับวิธีการสร้างโปรเจ็กต์ แอนิเมชั่นขนาดเล็กเพื่อสื่อถึงวิธีการทำงาน และลักษณะของตัวบ่งชี้เมื่ออยู่บนท้องถนน! ข้อมูลที่ซับซ้อนที่สุดจะได้รับในคำแนะนำนี้ ในขณะที่คุณดำเนินการ ฉันจะติดแท็กส่วนต่างๆ ของวิดีโอ youtube ของฉันเป็น "ไทม์ไลน์: " ในแต่ละขั้นตอนเพื่อให้คุณเห็นว่าสิ่งต่างๆ ทำงานอย่างไร คุณสามารถรับข้อมูลเพิ่มเติมได้โดยคลิกลิงก์ที่ไฮไลต์ที่ให้ไว้
คุณสมบัติของโครงการนี้:
- ไฟเลี้ยวขวา
- ไฟเลี้ยวซ้าย
- ตัวบ่งชี้สายตากลางคืน
- สัมผัสที่เปิดใช้งาน
ขั้นตอนที่ 1: วัสดุในการเริ่มต้น
- ตัวต้านทาน (330 โอห์มและ 120 โอห์ม): 330 โอห์มและ 120 โอห์ม
- Raspberry Pi 3: RPi 3
- เขียงหั่นขนม: เขียงหั่นขนม
- สายจัมเปอร์ (ชาย-ชาย, ชาย-หญิง, หญิง-หญิง): สายจัมเปอร์
- สายไฟหลายเส้น: ลวดหลายเส้น
- เซ็นเซอร์สัมผัสแบบ Capacitive (TTP223) - (2): Link
- ไฟ LED RGB (ประเภทแคโทดทั่วไป) - (13): RGB LED แคโทดทั่วไป
- ไฟ LED ปกติ - (2): LED
- วัสดุบัดกรี: ชุดบัดกรี
- บอร์ด Perf: บอร์ด Perf
- พาวเวอร์แบงค์: พาวเวอร์แบงค์
- 1 micro Farad Electrolytic Capacitor: ตัวเก็บประจุด้วยไฟฟ้า
- LDR (ตัวต้านทานขึ้นอยู่กับแสง): LDR
- เคเบิ้ลไทร์: เคเบิ้ลไทร์
- เคเบิ้ล คอนซีลเลอร์: เคเบิ้ล คอนซีลเลอร์
- สีอะครีลิคและแปรง (อุปกรณ์เสริม): สีและแปรง
- กล่องเก็บของ 2 ช่องสำหรับประกอบ (1 ขนาดใหญ่และ 1 ขนาดกลาง)
ให้เพิ่มปริมาณตามที่ระบุไว้ข้างต้นเสมอ ฉันได้เชื่อมโยงส่วนประกอบใน Amazon และชุดซื้อที่ดีที่สุดสำหรับวัสดุบัดกรีแล้ว!
ไทม์ไลน์: รวบรวมวัสดุ
ขั้นตอนที่ 2: การทดสอบส่วนประกอบ
มาทดสอบส่วนประกอบของคุณกันเถอะ! วิธีนี้มีประโยชน์มากในการแยกส่วนประกอบที่เสียหายหรือทำงานผิดปกติด้วยเหตุผลบางอย่าง และระยะนี้จะช่วยให้คุณได้รับประสบการณ์ใช้งานจริงเบื้องต้นกับส่วนประกอบต่างๆ และเรียนรู้สักเล็กน้อยก่อนที่จะสร้างโครงการทั้งหมด
ทดสอบชนิดของ RGB LED
มีไฟ LED RGB สองประเภทที่เราพบในตลาด ชนิดแคโทดทั่วไปและชนิดแอโนดทั่วไป
นี่เป็นคำแนะนำที่มีประโยชน์ (แต่ใหญ่กว่า) เนื่องจากฉันเชื่อมต่อ LED ตามที่เห็นจากวิดีโอนี้ และไฟ LED ไม่สว่างตามที่คาดไว้แม้จะตรวจสอบวงจรหลายครั้งแล้วก็ตาม จากนั้นฉันก็รู้ว่า LED นี้มีสองประเภทและเมื่อผ่านแผ่นข้อมูลฉันก็ได้วิธีแก้ปัญหา! ปัญหาเกี่ยวกับวงจรของฉันคือพินแคโทดทั่วไปเชื่อมต่อกับ 3.3V ตามที่กล่าวไว้และฉันได้เก็บ GPIO พินไว้ที่ HIGH ดังนั้นทั้งพินแคโทดทั่วไปและอีก 3 พินจึงมีศักยภาพเท่ากัน
วิธีแก้ปัญหา: ฉันเชื่อมต่อพินแคโทดทั่วไปกับพื้นและไฟ LED ติดสว่าง! เหตุผลที่ฉันไม่เปลี่ยนรหัสเพื่อให้หมุด GPIO ต่ำเพราะเราจะใช้ LED มากขึ้นในภายหลังและ RPi ให้สองพินที่ 3.3 V แก่เราซึ่งเราต้องการเพื่อวัตถุประสงค์อื่นเช่นกัน!
วิธีการทดสอบสำหรับประเภท?
ให้มัลติมิเตอร์อยู่ในโหมดความต่อเนื่อง แตะลีดที่ยาวที่สุดด้วยปลายสีแดงของมัลติมิเตอร์ และด้วยปลายสีดำ ให้แตะลีดอื่นๆ อันใดอันหนึ่ง หากไฟ LED สว่างขึ้นโดยทำตามขั้นตอนข้างต้น จะเป็นไฟ LED แบบ Common Anode RGB หากไม่เป็นเช่นนั้น ให้กลับด้านปลายมัลติมิเตอร์ทันที แตะลีดที่ยาวที่สุดด้วยปลายสีดำและปลายสีแดงกับลีดอื่นๆ ตอนนี้จะสว่างขึ้นเพื่อแสดงว่า LED เป็นไฟ LED แคโทด RGB ทั่วไป
เคล็ดลับที่มีประโยชน์: ฉันได้ใช้ประเภทแคโทดทั่วไปในโครงการนี้ พยายามรับประเภทเหล่านี้เท่านั้น แต่ถึงแม้ประเภทอื่นจะพร้อมใช้งานก็ไม่ต้องกังวล การเชื่อมต่อวงจรยังคงเหมือนเดิม ต้องสร้างความแตกต่างเพียงอย่างเดียวในรหัสที่ฉันจะให้เป็นความคิดเห็นถัดจากบรรทัดรหัสจริงที่คุณต้องเปลี่ยน หายใจเข้า
ไทม์ไลน์:ทดสอบ RGB
ข้อมูลอ้างอิง: วิธีทดสอบ RGB
ไฟ LED RGB สว่างขึ้น
ในการทำเช่นนี้ ให้ตรวจสอบไดอะแกรมการเชื่อมต่อที่ให้ไว้ในรูปภาพด้านบนและเชื่อมต่อตามพินผ่านเขียงหั่นขนม (เพื่อให้ปลอดภัยในการเริ่มต้น)
สีแดง: ขา 11 (ตัวต้านทาน 330 โอห์ม)
สีเขียว: ขา 13 (ตัวต้านทาน 120 โอห์ม)
สีน้ำเงิน: ขา 15 (ตัวต้านทาน 120 โอห์ม)
ค่าตัวต้านทานแตกต่างกันไปเนื่องจากแรงดันไปข้างหน้าที่แตกต่างกันของลีด
เมื่อคุณเชื่อมต่ออย่างถูกต้องแล้ว ให้โค้ด RPi ใน python IDE ในตัวของมัน
นำเข้า RPi. GPIO เป็น GPIO
#หมายเลขพินสอดคล้องกับหมายเลขที่แน่นอนบน RPi GPIO Red_pin = 11 Green_pin = 13 Blue_pin = 15 #เชื่อมต่อพินแคโทดทั่วไปเข้ากับพิน 6 def turnOn(พิน): GPIO.setmode(GPIO. BOARD) GPIO.setup(พิน, GPIO. OUT) GPIO.output(pin, GPIO. HIGH) #GPIO.output(pin, GPIO. LOW) สำหรับประเภทขั้วบวกทั่วไป def turnOff(pin): GPIO.setmode(GPIO. BOARD) GPIO.setup(pin, GPIO. ออก) GPIO.output(pin, GPIO. LOW) #GPIO.output(pin, GPIO. HIGH) def redOn(): turnOn(Red_pin) def redOff(): turnOff(Red_pin) def greenOn(): turnOn(Green_pin) def greenOff(): turnOff(Green_pin) def blueOn(): turnOn(Blue_pin) def blueOff(): turnOff(Blue_pin) ลอง: while True: cmd = input("Type your command: ") if cmd == "red on ": #type คำสั่งอินพุตตามที่กล่าวไว้ภายใน "" redOn() elif cmd == "red off": redOff() elif cmd == "green on": greenOn() elif cmd == "green off": greenOff() elif cmd == "blue on": blueOn() elif cmd == "blue off": blueOff() else: print("Not a valid command") ยกเว้น KeyboardInterrupt: GPIO.cleanup()
ฉันอ้างถึงคำแนะนำนี้ โปรดตรวจสอบคำอธิบายโดยละเอียดและรหัสนี้!
ใช้รหัสเดียวกันด้านบนเพื่อตรวจสอบ LED หลายดวงร่วมกันโดยเชื่อมต่อแบบขนานบนเขียงหั่นขนมและนำจุดเดียวออกจากหมุดที่เชื่อมต่อเข้าด้วยกัน ใช้ค่าตัวต้านทานที่แตกต่างกันสำหรับแต่ละพินเพื่อตรวจสอบความสว่างของไฟ LED ของคุณ
เคล็ดลับที่มีประโยชน์: ตรวจสอบให้แน่ใจว่าคุณเชื่อมต่อแบบขนานแบบพินเดียวกัน นั่นคือ หมุดสีแดงของ LED ดวงหนึ่งเชื่อมต่อกับหมุดสีแดงของ LED อีกดวงเท่านั้น
ไทม์ไลน์: ทำให้พวกเขาเปล่งประกาย!
การทดสอบทัชแพด
การเชื่อมต่อวงจรเป็นดังที่แสดงไว้ที่นี่ (ไทม์ไลน์) เชื่อมต่อตามที่แสดงและทดสอบทัชแพดของคุณโดยใช้รหัสต่อไปนี้
รหัส:
นำเข้า RPi. GPIO เป็น GPIO
จากเวลานำเข้า sleep GPIO.setmode(IO. BOARD) touchpad1 = 11 #pin 11 touchpad2 = 13 #pin 13 GPIO.setup(touchpad1, GPIO. IN) GPIO.setup(touchpad2, GPIO. IN) # เราสามารถคลับได้ทั้ง ข้อความข้างต้นรวมกันเป็น # GPIO.setup([touchpad1, touchpad2], GPIO. IN) ลอง: ในขณะที่ True: if(GPIO.input(touchpad1) == True): print ("Touchpad 1 touched") sleep(2) elif (GPIO.input(touchpad2) == True): print ("Touchpad 2 touched") sleep(2) else: print("Not Touched") ยกเว้น KeyboardInterrupt: GPIO.cleanup() #CTRL-C เพื่อออก
การทดสอบ LED
อ้างถึงคำแนะนำที่ยอดเยี่ยมนี้สำหรับการทดสอบ LED ของคุณ!
เมื่อคุณได้ทดสอบส่วนประกอบข้างต้นทั้งหมดแล้ว คุณก็พร้อมที่จะสร้างเวอร์ชันที่ใหญ่กว่านี้
ขั้นตอนที่ 3: บัดกรีแผงตัวบ่งชี้
หากคุณยังใหม่ต่อการบัดกรี ลองดูบทช่วยสอนนี้เพื่อเรียนรู้พื้นฐานบางอย่างที่นี่ (วิธีการบัดกรี) หากคุณเป็นผู้เชี่ยวชาญด้านการบัดกรี มาเริ่มกันเลย!
แผงตัวบ่งชี้
คุณสามารถหาภาพประกอบเกี่ยวกับวิธีการบัดกรีได้บนบอร์ดที่สมบูรณ์แบบในภาพด้านบน
เราใช้ไฟ LED RGB 13 ดวงสำหรับแผงควบคุม แยกออกเป็นสามส่วน: ซ้าย ขวา และตรงกลางเพื่อประสานตามลำดับ
สำคัญ: ระยะห่างของ LEDs
ฉันเหลือ 3 แถวระหว่าง LEDs ดังแสดงในภาพที่ 2 ซึ่งเป็นสิ่งสำคัญสำหรับแผง LED ที่จะดูดีและรู้สึกดี เราไม่ต้องการให้ LED อยู่ไกลเกินไปเพื่อเพิ่มพื้นที่หรือใกล้เกินไปจนแยกแสงจากที่ไกลออกไปไม่ได้
เคล็ดลับที่มีประโยชน์: เริ่มต้นด้วยการบัดกรี Common Cathode Pins ทั้งหมดก่อน
เคล็ดลับที่มีประโยชน์: ใช้สายไฟแบบหลายเส้นเพื่อเชื่อมต่อ LED เข้าด้วยกัน เนื่องจากมีความทนทานน้อยกว่าและงอได้ง่าย คุณสามารถใช้หมุดตัดพิเศษจากไฟ LED เพื่อเชื่อมต่อระยะทางที่สั้นลง
ส่วนขวา: (5 LEDs)
- เชื่อมต่อหมุดสีแดงทั้งหมดเข้าด้วยกัน
- เชื่อมต่อ Green Pins ทั้งหมดเข้าด้วยกัน
- เชื่อมต่อพินแคโทดทั่วไปทั้งหมดเข้าด้วยกัน
ส่วนด้านซ้าย: (5 LEDs)
- เชื่อมต่อหมุดสีแดงทั้งหมดเข้าด้วยกัน
- เชื่อมต่อ Green Pins ทั้งหมดเข้าด้วยกัน
- เชื่อมต่อพินแคโทดทั่วไปทั้งหมดเข้าด้วยกัน
ส่วนศูนย์: (ไฟ LED 3 ดวง)
เคล็ดลับที่มีประโยชน์: ส่วนนี้ต้องใช้ความระมัดระวังเพียงพอ อย่าประสานหมุดทั้งหมดเข้าด้วยกันเหมือนที่เราทำในสองส่วนด้านบน!
- เชื่อมต่อหมุดสีแดงทั้งหมดเข้าด้วยกัน
- เชื่อมต่อ Green Pin ของ LED ด้านบนและด้านล่างเท่านั้น
- เชื่อมต่อพินแคโทดทั่วไปทั้งหมดเข้าด้วยกัน
สายไฟ
เราต้องการสายไฟที่ยาวขึ้นเพื่อเชื่อมต่อแผงกับบอร์ด GPIO
เคล็ดลับที่มีประโยชน์:
- ใช้สายไฟเส้นเดียว! พวกมันแข็งแรงพอที่จะทนต่อแรงกดทางกลที่ใช้กับมัน!
- ให้สายไฟยาวกว่าความยาวจริงที่จำเป็นระหว่างแผงควบคุมและ RPi เล็กน้อย (ซึ่งสะดวกมากในขณะที่จัดการสายไฟในภายหลัง! (ไทม์ไลน์: การวัด)
- กันความร้อนหลังบัดกรี! สำคัญมาก
ใช้ลวดจัมเปอร์และสายเดี่ยวในการบัดกรี ปลายด้านหนึ่งของสายจัมเปอร์จะต้องเป็นขั้วต่อตัวเมีย บัดกรีตามที่แสดงไว้ที่นี่ (ไทม์ไลน์)
รหัสสีสายไฟเป็นสีแดงสีเขียวและสีดำ ซึ่งสอดคล้องกับพินสีแดง พินสีเขียว และพินแคโทดทั่วไปตามลำดับ
เราต้องการสายสีดำ 3 เส้น สายสีแดง 3 เส้น และสายสีเขียว 3 เส้น
เมื่อสายไฟพร้อม บัดกรีสายไฟเข้ากับไฟ LED แสดงสถานะ
เคล็ดลับที่มีประโยชน์:
- ตรวจสอบให้แน่ใจว่าได้บัดกรี LED ตามการเชื่อมต่อที่ให้มา
- ตรวจสอบให้แน่ใจว่าคุณได้บัดกรีค่าตัวต้านทานที่ถูกต้องแล้ว หากค่าเปลี่ยนไปจะส่งผลต่อความสว่างของ LEDs
- วิธีหนึ่งเพื่อให้แน่ใจว่าไฟ LED ทั้งหมดของคุณทำงานโดยใช้มัลติมิเตอร์ที่ระบุในขั้นตอนที่ 2 ซึ่งมีประโยชน์มากเพราะคุณจะรู้ว่ามีการลัดวงจรหรือไม่ ไฟ LED จะไม่สว่างขึ้น
- อย่าดึงปลายสายไฟออกนานเกินความจำเป็น นี้จะเป็นเรื่องยากที่จะเก็บไว้ในสถานที่และยังมีความเสี่ยงสูงที่จะเกิดไฟฟ้าลัดวงจร
- ใช้ลวดหลายเส้นเพื่อเชื่อมต่อระหว่าง LEDs
- ใช้ลวดเกลียวเดี่ยวเพื่อเชื่อมต่อส่วนต่างๆ กับ RPi
ขั้นตอนที่ 4: ใส่แผงตัวบ่งชี้ไปที่การทดสอบ
รุ่งโรจน์! หากคุณได้บัดกรีแผงอย่างถูกต้อง มาเริ่มเขียนโค้ดอินดิเคเตอร์กันเลย!
ดังที่ได้กล่าวไว้ก่อนหน้านี้ เราจะระบุให้เลี้ยวขวา เลี้ยวซ้าย และเปิด/ปิดกล้องมองกลางคืน
อ้างถึงการเชื่อมต่อของวงจรในขั้นตอนที่ 3
ต่อสายไฟของแผงตามที่ระบุด้านล่าง:
- แดง ขวา -- พิน 7
- เขียวขวา -- พิน 11
- แคโทดทั่วไปขวา - ขา 6 (GND)
- แดง ซ้าย -- พิน 13
- เขียวซ้าย -- พิน 15
- แคโทดทั่วไปซ้าย - พิน 9 (GND)
- Center Red -- พิน 16
- สีเขียวกลาง (บนและล่าง) -- พิน 18
- Center Common Cathode - พิน 14 (GND)
รหัสทดสอบ:
นำเข้า RPi. GPIO เป็น GPIO
จากเวลานำเข้าโหมดสลีป #เชื่อมต่อตามหมายเลขพินด้านล่าง Red_right = 7 Green_right = 11 Red_left = 13 Green_left = 15 Red_center = 16 Green_top_bottom = 18 GPIO.setmode(GPIO. BOARD) def right_turn(): พิมพ์ ("เลี้ยวขวา") กะพริบ (Green_right, Green_top_bottom, 0) def left_turn(): พิมพ์ ("เลี้ยวซ้าย") กะพริบ (Green_left, Green_top_bottom, 0) def กะพริบ (pin1, pin2, pin3): if(pin3 == 0): GPIO.setup([pin1, pin2], GPIO. OUT) สำหรับ x ในช่วง (10): GPIO.output([pin1, pin2], GPIO. HIGH) sleep(0.5) GPIO.output([pin1, pin2], GPIO. LOW) sleep (0.5) อื่นๆ: GPIO.setup([pin1, pin2, pin3], GPIO. OUT) for x in range(10): GPIO.output([pin1, pin2, pin3], GPIO. HIGH) sleep(0.5) GPIO.output([pin1, pin2, pin3], GPIO. LOW) sleep(0.5) def night_sight(): print("Night Sight ON") กะพริบ (Red_left, Red_right, Red_center) ลอง: ในขณะที่ True: cmd = input(" ทดสอบ LED สำหรับ: ") ถ้า cmd == "เลี้ยวขวา": right_turn() elif cmd == "เลี้ยวซ้าย": left_turn() elif cmd == "night sight": night_sight() else: print("Invalid Command") ยกเว้น Ke yboardInterrupt: GPIO.cleanup ()
หากแผงของคุณล้างขั้นตอนการทดสอบทั้งหมดตามในโค้ด ทำได้ดีมาก! เตรียมพร้อมสำหรับขั้นตอนต่อไป
หากแผงไม่สว่างขึ้น ตรวจสอบให้แน่ใจว่าคุณได้ทำตามขั้นตอนทั้งหมดอย่างถูกต้องและอ่านคำแนะนำที่เป็นประโยชน์ก่อนหน้านี้ หากปัญหายังคงอยู่ คุณสามารถแสดงความคิดเห็นด้านล่าง เราพร้อมที่จะช่วยเหลือ
เส้นเวลา: ทดสอบ ONE (ตรวจสอบวิดีโอสำหรับต้นแบบการทำงาน)
ขั้นตอนที่ 5: การรวมแผงตัวบ่งชี้กับทัชแพด
การเชื่อมต่อกับ RPi
ทำการเชื่อมต่อตามที่แสดงในภาพด้านบน
แผงขวา
ทัชแพด:
- พิน GND - พิน 34
- พิน VCC - พิน 1
- พิน SIG -- พิน 29
นำ:
ขั้วบวก (+) ขา - ขา 33
แผงด้านซ้าย
ทัชแพด:
- พิน GND - พิน 30
- พิน VCC - พิน 17
- SIG pin - พิน 31
นำ:
ขั้วบวก (+) ขา - ขา 35
Common GND: Pin 39 (สำหรับทั้งแคโทดของ LEDs) - Common Ground Soldering (ไทม์ไลน์)
รหัสทดสอบ:
นำเข้า RPi. GPIO เป็น GPIO
จากเวลานำเข้า sleep Red_right = 7 Green_right = 11 Red_left = 13 Green_left = 15 Red_center = 16 Green_top_bottom = 18 right_touch = 29 left_touch = 31 right_led = 33 left_led = 35 triggered = 0 GPIO.setmode(GPIO. BOARD) GPIO.setup([right_led, left_led], GPIO. OUT) GPIO.setup(right_touch, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup(left_touch, GPIO. IN, pull_up_down = GPIO. PUD_UP) def right_turn (ช่อง): GPIO.output (right_led, GPIO. HIGH) global triggered triggered = 1 พิมพ์ ("เลี้ยวขวา") กะพริบ (Green_right, Green_top_bottom) def left_turn (ช่อง): GPIO.output (left_led, GPIO. HIGH) global triggered triggered = 1 พิมพ์ ("Turning ซ้าย") กะพริบ (Green_left, Green_top_bottom) GPIO.add_event_detect (right_touch, GPIO. FALLING, โทรกลับ = right_turn, bouncetime = 500) GPIO.add_event_detect (left_touch, GPIO. FALLING, โทรกลับ = left_turn, bouncetime = 500) def กะพริบ pin2): GPIO.setup([pin1, pin2], GPIO. OUT) for x in range(10): GPIO.output([pin1, pin2], GPIO. HIGH) sleep(0.5) GPIO.outpu t([pin1, pin2], GPIO. LOW) sleep(0.5) GPIO.output([right_led, left_led], GPIO. LOW) global triggered triggered = 0 def night_sight(): while (True): GPIO.setup([) Red_center, Red_left, Red_right], GPIO. OUT) global ทริกเกอร์หาก (triggered == 0): print ("Night Sight ON") GPIO.output([Red_center, Red_left, Red_right], GPIO. HIGH) sleep(0.27) GPIO.output([Red_center, Red_left, Red_right], GPIO. LOW) sleep(0.27) else: print ("Night Sight OFF") GPIO.output([Red_center, Red_left, Red_right], GPIO. LOW) ลอง: night_sight() ยกเว้น KeyboardInterrupt: GPIO.cleanup()
แตะทัชแพดเพื่อดูแสงของคุณ
ไทม์ไลน์ (ไม่มีไฟ LED แสดงสถานะ): ทดสอบสอง
ไทม์ไลน์ (พร้อมไฟ LED แสดงสถานะ): ทดสอบ 3
คำอธิบายโค้ด: เราต้องการให้ระบบการมองเห็นตอนกลางคืนทำงานอย่างต่อเนื่อง และเมื่อเราแตะทัชแพด ระบบควรหยุดและดำเนินการฟังก์ชันของทัชแพด ในการทำสิ่งนี้พร้อมกัน เราใช้สิ่งที่เรียกว่า "Interrupts" ใน python ซึ่งช่วยให้เราสามารถเรียกใช้โค้ดปกติของเราซึ่งเป็นโหมดกลางคืนที่นี่ และยังเรียกเหตุการณ์เมื่อตรวจพบการสัมผัส เราใช้ตัวแปรทริกเกอร์เป็นแฟล็กเพื่อหยุดการมองเห็นตอนกลางคืน
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการขัดจังหวะ โปรดดูที่ลิงค์นี้
ประสานแผง
ตอนนี้มาประสานแผงทัชแพดซึ่งจะไปที่แฮนด์ของจักรยาน อ้างถึงการเชื่อมต่อตามที่ระบุในภาพด้านบน
ตอนนี้คุณได้ทดสอบ LED และทัชแพดแล้ว คุณก็พร้อมแล้วที่จะไป หากคุณยังไม่ได้ทำการทดสอบ โปรดอ้างอิงถึงขั้นตอนนี้และขั้นตอนก่อนหน้า
วางทัชแพดไว้ใกล้กับแฮนด์บาร์ตามที่แสดงในวิดีโอ นั่นคือ สำหรับทัชแพดด้านขวา ทัชแพดจะอยู่ทางขวาและซ้ายไปทางซ้าย ในทำนองเดียวกัน สำหรับทัชแพดด้านซ้าย ไฟ LED จะอยู่ที่ด้านขวาและทัชแพดทางด้านซ้าย ซึ่งทำให้นิ้วหัวแม่มือเอื้อมได้ง่ายขึ้น
PS: ฉันไม่ได้บัดกรีทัชแพดกับบอร์ดประสิทธิภาพเพราะฉันจะใช้ซ้ำอีกครั้ง ดังนั้นฉันจึงวางมันลงบนแผงด้วยเทปกาวสองหน้า
เชื่อมต่อพาเนลกับ RPi โดยใช้สายที่ยาวกว่า
ขั้นตอนที่ 6: ทำให้มันฉลาด
ใช่! ตอนนี้เรามีข้อมูลสำคัญเกี่ยวกับอินดิเคเตอร์ที่พร้อมใช้งานแล้ว ก้าวไปอีกขั้นเพื่อทำให้ฉลาดขึ้น
ที่นี่สมาร์ทกำหนดประหยัดแบตเตอรี่เช่นกัน คุณอาจสังเกตเห็นว่าระบบการมองเห็นตอนกลางคืนเปิดอยู่เสมอ และบางครั้งอาจไม่จำเป็นต้องใช้ในวันที่มีแดดจ้า ในการเอาชนะปัญหานี้ ให้รวม LDR (Light Dependent Resistor) เพื่อให้ข้อมูลความเข้มของแสงแก่เรา ซึ่งเราสามารถรวบรวมและประมวลผลตัวบ่งชี้ของเราตามนั้น
การทดสอบ LDR
ฉันอ้างถึงเว็บไซต์นี้เพื่อทดสอบ LDR เพื่อตรวจสอบความเข้มของแสงและค่าที่ส่งคืน
อ้างถึงเว็บไซต์ที่ติดแท็กด้านบนสำหรับวงจรและโค้ดตัวอย่างสำหรับการทำงานของ LDR
การรวม LDR เข้ากับโค้ดของเรา
ประสาน LDR เข้ากับแผงด้านขวาของทัชแพดตามที่แสดงในแผนภาพการเชื่อมต่อด้านบน
หลังจากบัดกรีหมุดในตำแหน่งที่ถูกต้องแล้วก็ถึงเวลาสำหรับการเข้ารหัสบิตสุดท้าย รหัสสุดท้าย!
- เชื่อมต่อจุดร่วมของแคโทด (-) ของตัวเก็บประจุและ LDR กับพิน 36 บน RPi
- ขั้วบวกของตัวเก็บประจุเชื่อมต่อกับจุดกราวด์ทั่วไปที่อ้างถึงในขั้นตอนที่5
รหัสสุดท้าย:
นำเข้า RPi. GPIO เป็น GPIO
จากเวลานำเข้า sleep Red_right = 7 Green_right = 11 Red_left = 13 Green_left = 15 Red_center = 16 Green_top_bottom = 18 right_touch = 29 left_touch = 31 right_led = 33 left_led = 35 ldr = 36 triggered = 0 GPIO.setmode (GPIO. BOARD) GPIO ตั้งค่า ([right_led, left_led], GPIO. OUT) GPIO.setup (right_touch, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (left_touch, GPIO. IN, pull_up_down = GPIO. PUD_UP) def right_turn (ช่อง): GPIO.output(right_led, GPIO. HIGH) global triggered triggered = 1 print ("Turning Right") กะพริบ (Green_right, Green_top_bottom) def left_turn(channel): GPIO.output(left_led, GPIO. HIGH) global triggered triggered = 1 print ("เลี้ยวซ้าย") กะพริบ (Green_left, Green_top_bottom) GPIO.add_event_detect (right_touch, GPIO. FALLING, โทรกลับ = right_turn, เวลาตีกลับ = 500) GPIO.add_event_detect (left_touch, GPIO. FALLING, โทรกลับ = left_turn, def lighttime_sening = 500) (ldr): count = 0 #Output บนพินสำหรับ GPIO.setup(ldr, GPIO. OUT) GPIO.output(ldr, GPIO. LOW) sleep(0.1) #Chang e พินกลับไปที่อินพุต GPIO.setup(ldr, GPIO. IN) #Count จนกว่าพินจะสูงในขณะที่ (GPIO.input(ldr) == GPIO. LOW): นับ += 1 นับกลับ def กะพริบ (pin1, pin2): GPIO.setup([pin1, pin2], GPIO. OUT) สำหรับ x ในช่วง (10): GPIO.output([pin1, pin2], GPIO. HIGH) sleep(0.5) GPIO.output([pin1, pin2], GPIO. LOW) สลีป (0.5) GPIO.output ([right_led, left_led], GPIO. LOW) ทริกเกอร์ทั่วโลก = 0 def night_sight (): ในขณะที่ (จริง): GPIO.setup ([Red_center, Red_left, Red_right], GPIO. OUT) โกลบอลทริกเกอร์ if(light_sensing(ldr) > 7800): if (triggered == 0): print ("Night Sight ON") GPIO.output([Red_center, Red_left, Red_right], GPIO. HIGH) sleep (0.27) GPIO.output([Red_center, Red_left, Red_right], GPIO. LOW) sleep(0.27) อื่น: พิมพ์ ("Night Sight OFF") GPIO.output([Red_center, Red_left, Red_right], GPIO. LOW) ลอง: night_sight() ยกเว้น KeyboardInterrupt: GPIO.cleanup()
โว้ว! และตัวบ่งชี้ก็พร้อมที่จะหมุน
เคล็ดลับที่มีประโยชน์: ก่อนประกอบ RPi และส่วนประกอบอื่นๆ เข้ากับวงจร ตรวจสอบให้แน่ใจว่าคุณได้ทดสอบโปรแกรมนี้อย่างถูกต้องแล้ว! เรียกใช้สองสามครั้งเพื่อแก้ไขข้อผิดพลาด
ขั้นตอนที่ 7: การทาสีและการประกอบ
วัสดุที่จำเป็น:
- เครื่องมือตัด/ปอกสายไฟ
- กล่องเก็บของขนาดใหญ่หนึ่งช่องสำหรับใส่ Raspberry Pi
- กล่องเก็บของขนาดเล็กหนึ่งช่องสำหรับใส่แผงแสดงสถานะ
- สี
- แปรงทาสี
เริ่มต้นด้วยการทาสีแผงตัวบ่งชี้และแผงทัชแพดด้วยสีดำ ฉันใช้สีอะครีลิคที่นี่ คุณสามารถใช้มันตามที่คุณต้องการซึ่งเข้ากันได้ดีกับบอร์ดที่สมบูรณ์แบบ ใช้พื้นหลังสีดำเพื่อทำให้แผง LED สว่างสดใสและโดดเด่นยิ่งขึ้น ทำรูโดยใช้ไขควงอุ่นหรือใช้วัตถุที่เป็นโลหะเพื่อละลายพลาสติก
หมายเหตุ: โปรดใช้ความระมัดระวังในขณะที่ทำหลุม
ไทม์ไลน์:ระบายสี
เคล็ดลับที่มีประโยชน์: ฉันใช้กล่องพลาสติกและสีหลุดออกมาอย่างง่ายดาย ใช้สีที่มีคุณภาพ
เมื่อทาสีอินดิเคเตอร์และแผงหน้าปัดแล้ว ผึ่งแดดให้แห้งและเตรียมพร้อมสำหรับการประกอบ
ฉันได้ตัดขอบพิเศษของบอร์ด perf ในแผงตัวบ่งชี้และแผงด้านหน้าเพื่อประหยัดพื้นที่
ตรวจสอบวิดีโอสำหรับการประกอบ!
ไทม์ไลน์: อเวนเจอร์ส! ประกอบ. (ประกอบแผงไฟแสดงสถานะและ RPi พร้อมกล่อง)
ตามที่เห็นในวิดีโอ วางสายไฟตามลำดับโดยทำสามรูในกล่องที่ใหญ่ขึ้น หนึ่งอันสำหรับสายไฟพาวเวอร์แบงค์ RPi หนึ่งอันสำหรับแผงทัชแพด และอีกอันสำหรับแผงตัวบ่งชี้ กล่องขนาดเล็กต้องการเพียงหนึ่งรูเท่านั้น
เคล็ดลับที่มีประโยชน์: ตรวจสอบฉนวนของสายไฟและตรวจสอบว่าสายไฟบัดกรีถูกต้องหรือไม่ก่อนเชื่อมต่อในกล่อง
ขั้นตอนที่ 8: การทดสอบระยะไกลด้วย VNC และ Final Code
การทดสอบครั้งสุดท้ายก่อนที่ตัวบ่งชี้จะพร้อมอย่างเต็มที่ เชื่อมต่อ RPi ของคุณกับ VNC Viewer และเรียกใช้โปรแกรม
ฉันใช้เซิร์ฟเวอร์ VNC เพื่อเรียกใช้โปรแกรมและแก้ไขข้อผิดพลาดในโปรแกรมเสมอ วิธีนี้ทำให้ฉันสามารถวาง RPi ลงในตำแหน่งที่ต้องการทดสอบได้โดยตรงโดยไม่ต้องเชื่อมต่อจอภาพจากภายนอก
ตรวจสอบหน้านี้เพื่อเชื่อมต่อ RPi ของคุณกับเซิร์ฟเวอร์ VNC (เซิร์ฟเวอร์ VNC)
เมื่อคุณเชื่อมต่อ RPi กับ VNC Server แล้ว คุณสามารถเรียกใช้โค้ดบนเดสก์ท็อปเสมือนและแก้ไขข้อผิดพลาดได้
ไทม์ไลน์:เรียกใช้เมื่อเริ่มต้น
เคล็ดลับที่มีประโยชน์: เมื่อคุณเชื่อมต่อ Raspberry Pi กับเดสก์ท็อปเสมือนแล้ว คุณจะลงชื่อเข้าใช้ด้วยที่อยู่ IP ของ RPi แต่ถ้าคุณได้รับข้อผิดพลาดที่ระบุว่า RPi ปฏิเสธการเชื่อมต่อ นั่นเป็นเพราะการเปลี่ยนแปลงที่อยู่ IP ใน RPI สิ่งนี้สามารถเกิดขึ้นได้เมื่อคุณรีสตาร์ทเราเตอร์หรือฮอตสปอต WiFi แล้วลองเข้าสู่ระบบด้วยที่อยู่เดิม เราเตอร์จะกำหนด IP ใหม่ทุกครั้งที่คุณรีสตาร์ท แต่ถ้าคุณจำที่อยู่ IP เก่าของ RPi ได้ ให้เพิ่มตัวเลขหลักสุดท้ายทีละ 1 แล้วเข้าสู่ระบบ ตัวอย่าง: หากที่อยู่ IP เก่าคือ 190.148.1.100 ให้เข้าสู่ระบบโดยใช้ 190.148.1.101
เมื่อคุณได้ตรวจสอบว่าทั้งหมดทำงานอย่างถูกต้องหรือไม่ ก็ถึงเวลาสำหรับการประกอบขั้นสุดท้าย
เราไม่สามารถมีเดสก์ท็อปเสมือนเพื่อตรวจสอบหรือเรียกใช้สคริปต์หลามได้เสมอ ให้เราทำอย่างนั้นเมื่อเริ่มต้น
เราต้องการให้โปรแกรมของเราทำงานเมื่อ RPi เริ่มทำงาน ตรวจสอบเว็บไซต์นี้สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับเรื่องนี้!
หาก RPi ของคุณอยู่ในการตั้งค่าการเข้าสู่ระบบอัตโนมัติ ให้ดำเนินการต่อ
รันคำสั่งต่อไปนี้ในเทอร์มินัลของ RPi
sudo nano /etc/profile
เลื่อนไปที่ด้านล่างและเพิ่มบรรทัดต่อไปนี้:
sudo python file_path &
file_path ที่นี่อ้างอิงถึงเส้นทางของไฟล์ python ที่จัดเก็บรหัสสุดท้ายของคุณ
หมายเหตุ: ควรเพิ่มเครื่องหมายและ (&) ที่ส่วนท้ายของไฟล์ เพื่อให้โปรแกรมของคุณทำงานขนานกับการบูตระบบ เนื่องจากโปรแกรมของเราประกอบด้วยการวนซ้ำไม่รู้จบ ขั้นตอนนี้จึงจำเป็น ดังนั้นแม้ว่าโปรแกรมจะไม่ทำงานตามที่คาดไว้ เรายังคงสามารถใช้เดสก์ท็อป RPi เพื่อเปลี่ยนการตั้งค่าได้
หลังจากนี้ให้กด CTRL-X แล้วกด Ypress Enter สองครั้งแล้วคุณจะกลับไปที่เทอร์มินัลคำสั่ง
รีบูต Pi
ตอนนี้รหัสควรทำงานเมื่อเริ่มต้น
ขั้นตอนที่ 9: การจัดการสายเคเบิลและการประกอบขั้นสุดท้าย
ยินดีด้วย! ในการจบโครงการนี้ ฉันให้คำว่า Minimal ตามที่คุณเห็นว่าเราใช้ LED น้อยลงเพื่อแสดงสิ่งบ่งชี้ทั้งหมดที่จำเป็นและด้วยสีที่กำหนดเอง คุณสามารถใช้สีต่างๆ สำหรับไฟ LED ของคุณ เช่น สีเหลืองสำหรับไฟเลี้ยวหรืออื่นๆ
หากคุณทำโปรเจ็กต์นี้เสร็จแล้ว ให้คลิกที่ "ฉันทำมัน" และแบ่งปันประสบการณ์ของคุณ แบ่งปันความคิดของคุณและข้อเสนอแนะหรือความคิดเห็นเกี่ยวกับโครงการนี้ ฉันชอบที่จะได้ยินว่า!
การจัดการสายเคเบิล
ใช่! อย่างที่คุณอาจสังเกตเห็นว่ามีสายไฟจำนวนมากเข้าและรอบรอบ และการจัดการสายไฟนั้นค่อนข้างยุ่งยาก ฉันใช้แท็กสายไฟ เทปฉนวน และปลอกหุ้มสายไฟเพื่อซ่อนสายไฟและทาให้เป็นสีดำตามที่คุณเห็นในรูปภาพ
เคล็ดลับที่มีประโยชน์: เนื่องจากคุณมีสายเคเบิลเหลืออยู่เกินความจำเป็น การจัดการสายเคเบิลอย่างถูกต้องโดยไม่ต้องเครียดในขณะนี้จึงมีประโยชน์! หากไฟ LED ดวงใดดวงหนึ่งของคุณสว่างขึ้นและอีกดวงหนึ่งไม่ทำแม้ว่าคุณจะทำทุกอย่างถูกต้องแล้ว ปัญหาก็ยังคงอยู่ สายจัมเปอร์ที่เชื่อมต่อกับ RPi จะมีหน้าสัมผัสหลวม หากยังคงเป็นเช่นนี้ ให้ใช้สายจัมเปอร์ตัวผู้กับตัวเมียเพื่อต่อสายและต่อเข้าด้วยกัน ใช้ที่รัดสายไฟเพื่อยึดสายไฟไว้ไม่ให้เคลื่อนที่
ตอนนี้ตัวบ่งชี้พร้อมสำหรับการขี่แล้ว! สนุกกับมัน
PS: ในคำแนะนำเพิ่มเติมฉันชอบที่จะลดจำนวนสายไฟในวงจรและคิดแผนที่ดีขึ้น ถ้าฉันทำอย่างนั้นฉันจะแบ่งปันคำแนะนำเกี่ยวกับสิ่งนั้น!
ขั้นตอนที่ 10: รูปภาพบางส่วนของตัวบ่งชี้
ขอบคุณที่อ่านคำแนะนำนี้ ฉันหวังว่าคุณจะสนุกกับมันมากที่สุดเท่าที่ฉันทำ
ไทม์ไลน์: การทดสอบครั้งสุดท้ายในส่วนข้างต้น คุณจะเห็นได้ว่าทันทีที่ห้องมืดลง "โหมดกลางคืน" จะเปิดขึ้น และเมื่อสว่างขึ้นก็จะดับลงทันที!
ไทม์ไลน์:วิดีโอที่พร้อมจะฉายบางวิดีโอที่ฉันถ่ายเพื่อแสดงตัวบ่งชี้ในไฟแก็ซ เครดิตทั้งหมดสำหรับการปั่นจักรยานของพี่สาวฉันสำหรับวิดีโอ!
แนะนำ:
DIY 37 Leds เกมรูเล็ต Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)
DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
หมวกนิรภัย Covid ส่วนที่ 1: บทนำสู่ Tinkercad Circuits!: 20 ขั้นตอน (พร้อมรูปภาพ)
Covid Safety Helmet ตอนที่ 1: บทนำสู่ Tinkercad Circuits!: สวัสดีเพื่อน ๆ ในชุดสองตอนนี้ เราจะเรียนรู้วิธีใช้วงจรของ Tinkercad - เครื่องมือที่สนุก ทรงพลัง และให้ความรู้สำหรับการเรียนรู้เกี่ยวกับวิธีการทำงานของวงจร! หนึ่งในวิธีที่ดีที่สุดในการเรียนรู้คือการทำ ดังนั้น อันดับแรก เราจะออกแบบโครงการของเราเอง: th
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)
4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-