วิธีทำสมาร์ทสติ๊กสำหรับคนตาบอดโดยใช้ Arduino

ฉันเชื่อมั่นในคำพูดของ Helen Keller ซึ่งระบุว่า “สิ่งเดียวที่เลวร้ายยิ่งกว่าการตาบอดคือการมองเห็นแต่ไม่มีการมองเห็น” เทคโนโลยีนี้สามารถช่วยให้ผู้พิการใช้ชีวิตได้ตามปกติเหมือนที่มนุษย์คนอื่นทำ ทุกคนรู้จักสาวอินเดียที่ชื่อ อรุนิมา สิงหา ผู้ซึ่งสูญเสียขาไปจากอุบัติเหตุทางรถไฟและเธอต้องเดินด้วยขาเทียมไปตลอดชีวิต หลังจากเกิดอุบัติเหตุ เธอตัดสินใจปีนยอดเขาเอเวอเรสต์ด้วยขาเทียม ดังนั้นเทคโนโลยีล่าสุดจึงปูทางให้เธอบรรลุความฝัน

เทคโนโลยีนี้สามารถต่อต้านความพิการของมนุษย์ได้อย่างแท้จริง โดยคำนึงถึงสิ่งนี้ให้เราใช้พลังของ Arduino และเซ็นเซอร์อย่างง่ายเพื่อสร้างไม้เท้าคนตาบอด ที่สามารถช่วยชีวิตผู้พิการทางสายตาได้ เซ็นเซอร์อัลตราโซนิกจะถูกติดตั้งในแท่งซึ่งจะตรวจจับระยะห่างของบุคคลจากสิ่งกีดขวางใด ๆ LDR เพื่อตรวจจับสภาพแสงและรีโมท RF ซึ่งคนตาบอดสามารถใช้เพื่อค้นหาไม้ของเขาจากระยะไกล คำแนะนำทั้งหมดจะถูกส่งไปยังชายตาบอดผ่าน Buzzer เราสามารถใช้มอเตอร์สั่นแทน Buzzer และก้าวหน้ามากขึ้นโดยใช้ความคิดสร้างสรรค์ของเรา

วิธีใช้ Arduino ในการออกแบบวงจร

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

ขั้นตอนที่ 1: ส่วนประกอบที่ต้องการ (ฮาร์ดแวร์)

ขั้นตอนที่ 2: ส่วนประกอบที่ใช้ (ซอฟต์แวร์)

ขั้นตอนที่ 3: ศึกษาส่วนประกอบ

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

  1. Arduino นาโน: Arduino nano เป็นบอร์ดไมโครคอนโทรลเลอร์ที่ใช้ควบคุมหรือทำงานต่างๆ ในวงจร เราเผา รหัส C บน Arduino Nano เพื่อบอกบอร์ดไมโครคอนโทรลเลอร์ว่าต้องดำเนินการอย่างไรและอย่างไร Arduino Nano มีฟังก์ชันการทำงานเหมือนกับ Arduino Uno ทุกประการ แต่มีขนาดค่อนข้างเล็ก ไมโครคอนโทรลเลอร์บนบอร์ด Arduino Nano คือ ATmega328p.
  2. อัลตราโซนิกเซนเซอร์ HC-SR04: บอร์ด HC-SR04 เป็นเซ็นเซอร์อัลตราโซนิกที่ใช้ในการกำหนดระยะห่างระหว่างวัตถุสองชิ้น ประกอบด้วยเครื่องส่งและเครื่องรับ ตัวส่งแปลงสัญญาณไฟฟ้าเป็นสัญญาณอัลตราโซนิกและเครื่องรับแปลงสัญญาณอัลตราโซนิกกลับไปเป็นสัญญาณไฟฟ้า เมื่อเครื่องส่งสัญญาณส่งคลื่นอัลตราโซนิกจะสะท้อนกลับหลังจากชนกับวัตถุบางอย่าง ระยะทางคำนวณโดยใช้เวลาที่สัญญาณอุลตร้าโซนิคใช้ในการไปจากเครื่องส่งและกลับมาที่เครื่องรับ
  3. 433 เมกะเฮิร์ตซ์ RF เครื่องส่งสัญญาณและตัวรับสัญญาณ: ทำงานบนความถี่เฉพาะ 433MHz มีอุปกรณ์ความถี่วิทยุอื่น ๆ มากมายในตลาด และเมื่อเทียบกับอุปกรณ์เหล่านี้ ประสิทธิภาพของโมดูล RF จะขึ้นอยู่กับปัจจัยหลายประการ เช่น เมื่อเราเพิ่มกำลังของเครื่องส่งสัญญาณ จะมีการรวบรวมระยะการสื่อสารขนาดใหญ่ จะทำให้สิ้นเปลืองพลังงานไฟฟ้าสูงบนอุปกรณ์ส่งสัญญาณ ซึ่งทำให้อายุการใช้งานของอุปกรณ์ที่ใช้พลังงานจากแบตเตอรี่สั้นลง หากเราใช้อุปกรณ์นี้ด้วยกำลังส่งที่สูงกว่าอุปกรณ์จะสร้างสัญญาณรบกวนกับอุปกรณ์ RF อื่น ๆ
  4. 7805 ตัวควบคุมแรงดันไฟฟ้า:ตัวควบคุมแรงดันไฟฟ้ามีความสำคัญอย่างมากในวงจรไฟฟ้า แม้ว่าจะมีความผันผวนของแรงดันไฟฟ้าขาเข้า ตัวควบคุมแรงดันไฟฟ้านี้ให้แรงดันเอาต์พุตคงที่ เราสามารถหาแอปพลิเคชันของ 7805 IC ได้ในโครงการส่วนใหญ่ ชื่อ 7805 หมายถึงสองความหมาย "78" หมายความว่าเป็นตัวควบคุมแรงดันไฟฟ้าบวกและ "05" หมายความว่าให้ 5V เป็นเอาต์พุต ดังนั้นตัวควบคุมแรงดันไฟฟ้าของเราจะให้แรงดันเอาต์พุต +5V IC นี้สามารถรองรับกระแสไฟได้ประมาณ 1.5A แนะนำให้ใช้แผ่นระบายความร้อนสำหรับโครงการที่ใช้กระแสไฟมากกว่า ตัวอย่างเช่น หากแรงดันไฟฟ้าขาเข้าคือ 12V และคุณใช้ 1A ดังนั้น (12-5) * 1 = 7W 7 วัตต์นี้จะกระจายไปเป็นความร้อน

ขั้นตอนที่ 4: การประกอบวงจร

เราจะต้องออกแบบสองวงจรสำหรับโครงการนี้ วงจรแรกจะวางในสถานที่ที่เหมาะสมในไม้เท้าของคนตาบอดและวงจรที่สองจะเป็น เครื่องส่งสัญญาณ RF วงจรและจะใช้เพื่อค้นหาวงจรหลัก ก่อนออกแบบวงจรบน Proteus เราจำเป็นต้องรวมไลบรารีโพรทูสของเครื่องรับ RF ไว้ในซอฟต์แวร์ก่อน คุณสามารถดาวน์โหลดห้องสมุดได้จากที่นี่และหลังจากดาวน์โหลดห้องสมุดแล้วให้เปิด ห้องสมุด โฟลเดอร์และคัดลอก MODULO_RF.LIB และวางลงในโฟลเดอร์ Library ของ Proteus ในกรณีที่คุณไม่พบโฟลเดอร์ไลบรารี ให้คลิกที่ (C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY) เมื่อคุณเปิดโฟลเดอร์ MODELS เสร็จแล้ว ให้คัดลอก RX.MDF แล้ววางลงในโฟลเดอร์ proteus MODELS ในกรณีที่คุณไม่พบโฟลเดอร์รุ่น ให้คลิกที่ (C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\MODELS)

ไมโครคอนโทรลเลอร์ซึ่งจะใช้ในการควบคุมเซ็นเซอร์ทั้งหมดในวงจรคือ Arduino นาโน แหล่งจ่ายไฟที่ใช้สำหรับการทำงานของวงจรคือแบตเตอรี่ 9V และแรงดันไฟ 9V นี้จะลดลงเหลือ 5V โดยใช้a 7805 ตัวควบคุมแรงดันไฟฟ้า จะเห็นได้จากวงจรว่า เซ็นเซอร์อัลตราโซนิก ขับเคลื่อนโดย Vout ของตัวควบคุมแรงดันไฟฟ้า ทริกเกอร์และหมุดสะท้อนของเซ็นเซอร์เชื่อมต่อกับพิน 3 และพิน 2 ของ Arduino ตามลำดับ ตัวต้านทานขึ้นอยู่กับแสง (LDR) เชื่อมต่อกับโพเทนชิออมิเตอร์ที่มีค่า 10k และ and อนาล็อกเป็นดิจิตอล พินการแปลง A1 ของ Arduino เชื่อมต่อกับจุดนั้นเพื่อสังเกตความแตกต่างของแรงดันไฟฟ้า เราจำเป็นต้องรู้สัญญาณที่ปล่อยออกมาจากเครื่องรับ RF ดังนั้นเราจึงเชื่อมต่อ ADC pin A0 เพื่ออ่านสัญญาณจากเครื่องรับ RF เอาต์พุตของวงจรทั้งหมดถูกกำหนดโดย ออด ดังนั้นพินบวกของออดเชื่อมต่อกับพิน 12 ของ Arduino และพินลบเชื่อมต่อกับกราวด์ของเซ็นเซอร์อัลตราโซนิก

เราไม่ได้รวมเครื่องส่งสัญญาณ RF ไว้ในแผนภาพวงจรของเรา เนื่องจากเราจะประกอบขึ้นบนฮาร์ดแวร์แยกต่างหาก เมื่อใดก็ตามที่เราใช้เครื่องส่งและเครื่องรับ superheterodyne 433 MHz เราจำเป็นต้องมีไมโครคอนโทรลเลอร์เพื่อเชื่อมต่อกับอุปกรณ์ดังกล่าว แต่ในโครงการนี้ เราจำเป็นต้องมีเครื่องส่งเพียงเครื่องเดียวในการส่งสัญญาณไปยังเครื่องรับ ดังนั้น เราจึงเชื่อมต่อขาข้อมูลของเครื่องส่งสัญญาณกับ Vcc ดาต้าพินของตัวรับจะถูกส่งผ่านฟิลเตอร์ RC จากนั้นเชื่อมต่อกับดาต้าพิน A0 ของ Arduino ตามลำดับ เราจะกดปุ่มที่วางบนตัวส่งสัญญาณซ้ำ ๆ และเมื่อกดปุ่มเครื่องรับจะให้ค่าคงที่ใด ๆ เป็นเอาต์พุต

ขั้นตอนที่ 5: การประกอบฮาร์ดแวร์

ในขณะที่เราทำการจำลอง ไม่มี เราอยู่ในฐานะที่จะสร้างต้นแบบได้ ในขณะที่บัดกรีส่วนประกอบบนบอร์ด Perf ให้ความสนใจเป็นพิเศษกับหมุดของ Arduino Nano ตรวจสอบให้แน่ใจว่าหมุดไม่สัมผัสกัน ไม่เช่นนั้น Arduino อาจเสียหายได้ หาไม้ที่บ้านของคุณและต่อวงจรที่ประกอบด้วยเครื่องรับ Arduino และ RF ลงไป คุณสามารถใช้ปืนกาวร้อนสำหรับติดวงจรบนแท่งไม้ และควรทากาวบนขั้วบวกและขั้วลบ เพื่อไม่ให้สายไฟของแหล่งจ่ายไฟหลุดออกมาหากแท่งไม้ถูกลูบลงบนพื้นอย่างแน่นหนา

ขั้นตอนที่ 6: เริ่มต้นใช้งาน Arduino

หากคุณไม่คุ้นเคยกับ Arduino IDE มาก่อนไม่ต้องกังวลเพราะด้านล่างนี้คุณสามารถดูขั้นตอนการเขียนโค้ดบนบอร์ดไมโครคอนโทรลเลอร์ได้อย่างชัดเจนโดยใช้ Arduino IDE คุณสามารถดาวน์โหลด Arduino IDE เวอร์ชันล่าสุดได้จากที่นี่และทำตามขั้นตอนด้านล่าง:

  1. เมื่อบอร์ด Arduino เชื่อมต่อกับพีซีของคุณแล้ว ให้เปิด "แผงควบคุม" และคลิกที่ "ฮาร์ดแวร์และเสียง" จากนั้นคลิกที่ "อุปกรณ์และเครื่องพิมพ์" ค้นหาชื่อพอร์ตที่บอร์ด Arduino ของคุณเชื่อมต่อ ในกรณีของฉันมันคือ“ COM14” แต่อาจแตกต่างกันในพีซีของคุณ
  2. คลิกที่เมนูเครื่องมือ และตั้งกระดานเป็น Arduino นาโน จากเมนูแบบเลื่อนลง
  3. ในเมนูเครื่องมือเดียวกัน ให้ตั้งค่าพอร์ตเป็นหมายเลขพอร์ตที่คุณสังเกตเห็นก่อนหน้านี้ใน in อุปกรณ์และเครื่องพิมพ์.
  4. ในเมนูเครื่องมือเดียวกัน ให้ตั้งค่าตัวประมวลผลเป็น ATmega328P (บูตโหลดเดอร์รุ่นเก่า)
  5. ดาวน์โหลดโค้ดที่แนบมาด้านล่างแล้ววางลงใน Arduino IDE ของคุณ คลิกที่ ที่อัพโหลด ปุ่มเพื่อเบิร์นโค้ดบนบอร์ดไมโครคอนโทรลเลอร์ของคุณ

หากต้องการดาวน์โหลดโค้ด คลิกที่นี่

ขั้นตอนที่ 7: ทำความเข้าใจรหัส

รหัสมีความคิดเห็นที่ดีและอธิบายตนเองได้ แต่ก็ยังมีคำอธิบายด้านล่าง:

  1. ในตอนเริ่มต้นของโค้ด หมุดทั้งหมดของบอร์ด Arduino Nano ที่เชื่อมต่อกับเซ็นเซอร์อัลตราโซนิกและโมดูล RF จะถูกเตรียมใช้งาน
ทริกเกอร์ int const = 3; //ทริกเกอร์พินของเซนเซอร์ตัวที่ 1 const int echo = 2; // Echo pin ของเซ็นเซอร์ตัวที่ 1 const int Buzz = 13; // ปักหมุดเพื่อเชื่อมต่อออด const int Remote = A0; const int แสง = A1; นาน time_taken; int dist; int สัญญาณ; int เข้มข้น; int similar_count;

2. การตั้งค่าเป็นโมฆะ () เป็นฟังก์ชันที่ใช้ในการตั้งค่าพินที่ใช้เช่น อินพุต และ เอาท์พุทอัตราบอดถูกกำหนดในฟังก์ชันนี้ Baud Rate คือความเร็วในการสื่อสารที่บอร์ดไมโครคอนโทรลเลอร์สื่อสารกับเซ็นเซอร์ที่รวมอยู่ด้วย

การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); โหมดพิน (Buzz, OUTPUT); digitalWrite (Buzz, LOW); pinMode(ทริกเกอร์, เอาต์พุต); pinMode (เสียงสะท้อน, INPUT); }

3. ตอนนี้ เราจะสร้างฟังก์ชันที่จะคำนวณระยะทาง

ถือเป็นโมฆะ คำนวณ_distance (ทริกเกอร์ int, int echo) { digitalWrite (ทริกเกอร์ LOW); ดีเลย์ไมโครวินาที(2); digitalWrite (ทริกเกอร์สูง); ดีเลย์ไมโครวินาที(10); digitalWrite (ทริกเกอร์ LOW); time_taken = pulseIn (เสียงสะท้อน, สูง); dist= time_taken*0.034/2; ถ้า (dist>300) dist=300; }

4.วงเป็นโมฆะ () เป็นฟังก์ชันที่ทำงานซ้ำๆ กันเป็นรอบ ในฟังก์ชันนี้ เราบอกคณะกรรมการไมโครคอนโทรลเลอร์ว่าต้องดำเนินการอย่างไรและอย่างไร ในลูปหลัก เราจะอ่านข้อมูลของเซ็นเซอร์ ในที่นี้ ขั้นแรก หมุดทริกเกอร์ถูกตั้งค่าให้ส่งสัญญาณซึ่งหมุดสะท้อนจะตรวจจับได้ เงื่อนไขบางประการจะใช้เพื่อส่งเสียงกริ่งอย่างต่อเนื่องหากตรวจพบวัตถุในระยะทางหนึ่ง ออดจะส่งเสียงบี๊บโดยจะมีเสียงขาดๆ หายๆ หากตรวจพบความมืด และจะส่งเสียงบี๊บดังขึ้นอีกเล็กน้อยหากตรวจพบว่าสว่าง

โมฆะลูป () {// ระยะการคำนวณลูปไม่สิ้นสุด (ทริกเกอร์, เสียงสะท้อน); สัญญาณ = analogRead (รีโมท); Intens = analogRead (แสง); //ตรวจสอบว่ากด Remote ไว้หรือไม่ int temp = analogRead(Remote); similar_count=0; ในขณะที่ (สัญญาณ == อุณหภูมิ) { สัญญาณ = analogRead (ระยะไกล); similar_count ++; } // หากกดจากระยะไกล if (similar_count<100) { Serial.print(similar_count); Serial.println ("กดจากระยะไกล"); digitalWrite (Buzz, สูง); ความล่าช้า (3000); digitalWrite (Buzz, ต่ำ); } // ถ้ามืดมาก if (Intens<200) { Serial.print(Intens); Serial.println ("แสงจ้า"); digitalWrite(Buzz,สูง);ดีเลย์(200);digitalWrite(Buzz,LOW);delay(200);digitalWrite(Buzz,สูง);ดีเลย์(200); digitalWrite(Buzz,LOW);ล่าช้า(200); ล่าช้า (500); } // ถ้าสว่างมาก if (Intens>800) { Serial.print(Intens); Serial.println("แสงน้อย"); digitalWrite (Buzz สูง); ความล่าช้า (500); digitalWrite (Buzz, LOW); ความล่าช้า (500); digitalWrite (Buzz, สูง); ความล่าช้า (500); digitalWrite (Buzz, LOW); ความล่าช้า (500); } ถ้า (dist<50) { Serial.print(dist); Serial.println("วัตถุแจ้งเตือน"); digitalWrite (Buzz, สูง); สำหรับ (int i=dist; i>0; i--) ล่าช้า(10); digitalWrite (Buzz, ต่ำ); สำหรับ (int i=dist; i>0; i--) ล่าช้า(10); } //Serial.print("dist= "); //Serial.println(dist);/ //Serial.print("Similar_count="); //Serial.println(similar_count); //Serial.println(similar_count); //อนุกรม.println //Serial.print("Intens="); //Serial.println(เข้มข้น); }

ขั้นตอนที่ 8: การทดสอบ

ตามที่เราเข้าใจโค้ดแล้ว อัปโหลดบนไมโครคอนโทรลเลอร์และประกอบฮาร์ดแวร์ด้วย ตอนนี้ก็ถึงเวลาทดสอบโปรเจ็กต์ของเราแล้ว ก่อนทำการทดสอบ ตรวจสอบให้แน่ใจว่าได้เชื่อมต่ออย่างถูกต้อง และตรวจสอบความต่อเนื่องของวงจรโดยใช้ Digital Multi Meter สำหรับงานกลึง บน วงจรทั้งสองใช้แบตเตอรี่ 9V วางวัตถุลงบนพื้นผิวที่คุณกำลังทดสอบและเคลื่อนเซ็นเซอร์อัลตราโซนิกไปด้านหน้า และสังเกตได้ว่าเสียงของออดจะเพิ่มขึ้นเมื่อเซ็นเซอร์เคลื่อนเข้าใกล้วัตถุมากขึ้น มีความเป็นไปได้สองอย่างหาก LDR ถูกปกคลุมด้วยความมืดหรือหากคุณกำลังทดสอบท่ามกลางแสงแดด ออดจะส่งเสียงบี๊บ หากกดปุ่มบนตัวส่งสัญญาณ RF เสียงเตือนจะส่งเสียงบี๊บเป็นเวลานาน หาก Buzzer ส่งเสียงบี๊บเป็นเวลานาน แสดงว่าสัญญาณเตือนนั้นทำงานผิดพลาด หากคุณกำลังประสบกับข้อผิดพลาดประเภทนี้ ให้เปิดมอนิเตอร์แบบอนุกรมของ Arduino IDE และตรวจสอบพารามิเตอร์ที่ทำให้เกิดปัญหาดังกล่าว

นั่นเป็นวิธีที่ง่ายที่สุดในการสร้างแท่งอัจฉริยะสำหรับคนตาบอดโดยใช้ Arduino ทำตามขั้นตอนทั้งหมดที่กล่าวมาข้างต้น และหลังจากการทดสอบโครงการประสบความสำเร็จ ให้มองหาผู้พิการและเสนอโครงการนี้ให้เขา/เธอเพื่อทำให้ชีวิตของเขา/เธอง่ายขึ้น

Facebook Twitter Google Plus Pinterest