สารบัญ:

เซ็นเซอร์ลูกเต๋าอินฟราเรด: 5 ขั้นตอน
เซ็นเซอร์ลูกเต๋าอินฟราเรด: 5 ขั้นตอน

วีดีโอ: เซ็นเซอร์ลูกเต๋าอินฟราเรด: 5 ขั้นตอน

วีดีโอ: เซ็นเซอร์ลูกเต๋าอินฟราเรด: 5 ขั้นตอน
วีดีโอ: PIR เซนเซอร์ตรวจจับการเคลื่อนไหว220V 2024, พฤศจิกายน
Anonim
เซ็นเซอร์ลูกเต๋าอินฟราเรด
เซ็นเซอร์ลูกเต๋าอินฟราเรด
เซ็นเซอร์ลูกเต๋าอินฟราเรด
เซ็นเซอร์ลูกเต๋าอินฟราเรด

ฉันชื่อ Calvin และฉันจะแสดงวิธีทำเซ็นเซอร์ลูกเต๋าอินฟราเรดและอธิบายวิธีการทำงาน

ปัจจุบันฉันเป็นนักศึกษามหาวิทยาลัยเทย์เลอร์ที่กำลังศึกษาวิศวกรรมคอมพิวเตอร์และทีมของฉัน และฉันถูกขอให้ออกแบบและสร้างกลไกที่สามารถจัดเรียงวัตถุใดๆ ก็ตามที่สามารถใส่ลงในสี่เหลี่ยมจัตุรัสขนาด 1 นิ้วได้ เราสามารถใช้เส้นทางที่ง่ายและเลือกเรียงลำดับของ m&m โดยใช้เซ็นเซอร์สีที่เรียบง่าย แต่เราตัดสินใจที่จะก้าวต่อไปและจัดเรียงลูกเต๋าตามตัวเลขที่แสดง หลังจากพยายามค้นหาคำแนะนำในการอ่านหน้าลูกเต๋าเป็นเวลาหลายชั่วโมง ฉันพบลิงก์นี้ที่นี่:

makezine.com/2009/09/19/dice-reader-versio…

อย่างไรก็ตาม ลิงก์นี้ไม่ได้ให้อะไรมากไปกว่าแนวคิดในการอ่านหน้าของลูกเต๋า ดังนั้นฉันจึงใช้แนวคิดที่ให้มา เพื่อสร้างและพัฒนาเซ็นเซอร์ที่สามารถเชื่อมต่อกับ Arduino ได้ ได้อย่างง่ายดายและสามารถอ่านหน้าลูกเต๋าได้อย่างแม่นยำที่สุด ทำให้เราได้เซ็นเซอร์อินฟราเรดลูกเต๋า

เสบียง

ตอนนี้ไปที่วัสดุสิ้นเปลือง:

คุณจะต้องการ:

1 x Arduino Uno

5 x ตัวรับ IR

5 x IR Emitters

www.sparkfun.com/products/241

ตัวต้านทาน 5 x 270 โอห์ม

ตัวต้านทาน 5 x 10k ohm

1 x 74HC595N ชิป

ส่วนหัวชายต่างๆ

1 x บอร์ดต้นแบบ (หากคุณไม่ได้รับบอร์ดแบบสั่งทำพิเศษ)

ขั้นตอนที่ 1: ทำความเข้าใจวิธีการทำงาน

ทำความเข้าใจวิธีการทำงาน
ทำความเข้าใจวิธีการทำงาน
ทำความเข้าใจวิธีการทำงาน
ทำความเข้าใจวิธีการทำงาน

เซ็นเซอร์นี้ใช้ตำแหน่ง 5 pip เพื่ออ่านใบหน้าของลูกเต๋า มันใช้แสงอินฟราเรดเพื่อกระเด้งหน้าลูกเต๋าที่ตำแหน่ง pip เหล่านี้และบอกผู้ควบคุมว่ามันเป็นสีขาวหรือสีดำ

คุณอาจสงสัยว่าทำไมมีเพียง 5 ตำแหน่ง pip เท่านั้น? คุณต้องการให้ทั้ง 9 ตัวอ่านลูกเต๋าอย่างมีประสิทธิภาพไม่ใช่หรือ?

เนื่องจากความสมมาตรของลูกเต๋า การใช้ตำแหน่งเฉพาะ 5 ตำแหน่งบนลูกเต๋าอาจเพียงพอที่จะบอกความแตกต่างระหว่างตัวเลขต่างๆ บนลูกเต๋าโดยไม่คำนึงถึงทิศทาง (ภาพที่ 1) สิ่งนี้ทำให้เซ็นเซอร์ลูกเต๋ามีประสิทธิภาพมากขึ้นเพราะมองหาเฉพาะสิ่งที่ต้องการเท่านั้นและไม่มีอะไรพิเศษ

ตัวปล่อยจะไปอยู่ใต้ตัวรับสัญญาณบนเซ็นเซอร์ที่ตำแหน่งจุด 5 จุดแต่ละจุด จากนั้นเซ็นเซอร์จะปล่อยแสงอินฟราเรด จากนั้นผู้รับจะอ่านปริมาณแสงอินฟราเรดที่สะท้อนจากหน้าลูกเต๋า (ภาพที่ 3) หากค่าที่ได้รับมากกว่าตัวเลขการสอบเทียบที่ระบุ เซ็นเซอร์จะเห็นว่าจุดนั้นเป็นจุด หากไม่ใช่ แสดงว่าเป็นพื้นที่สีขาว (ภาพที่ 2)

ขั้นตอนที่ 2: การออกแบบและการวางแผน

การออกแบบและการวางแผน
การออกแบบและการวางแผน
การออกแบบและการวางแผน
การออกแบบและการวางแผน
การออกแบบและการวางแผน
การออกแบบและการวางแผน
การออกแบบและการวางแผน
การออกแบบและการวางแผน

ขั้นตอนแรกในการสร้างเซ็นเซอร์ลูกเต๋าคือการสร้างแผนผังซึ่งอาจเป็นขั้นตอนที่ยากที่สุดหรือง่ายที่สุดในการพัฒนา ก่อนอื่นคุณต้องมีซอฟต์แวร์ชื่อ EAGLE โดย Autodesk นี่เป็นซอฟต์แวร์ที่ฉันใช้สร้างแผนผัง

ฉันได้รวมแผนผัง 2 แบบไว้ด้วยกัน แบบหนึ่งมีชิป shift register เพื่อช่วยให้เซ็นเซอร์มีความแม่นยำมากขึ้น และอีกแบบหนึ่งเป็นแบบที่ไม่มีชิป shift register อย่างไรก็ตามแผนผังนี้ใช้ไม่ได้กับรหัสที่ฉันจะให้ ต่อไปคุณจะต้องพัฒนาบางสิ่งด้วยตัวเอง

ฉันได้รวมเลย์เอาต์บอร์ดของฉันสำหรับเซ็นเซอร์ที่ฉันออกแบบด้วยรีจิสเตอร์กะด้วย

ในการเริ่มต้นออกแบบบอร์ด คุณมีตัวรับ IR 5 ตัวและตัวส่งสัญญาณ IR 5 ตัว ตัวรับต้องการตัวต้านทาน 10k และตัวปล่อยนั้นต้องการตัวต้านทาน 270 โอห์ม ดังนั้นสำหรับองค์ประกอบเหล่านี้ คุณไปจาก:

VCC (5V) -> ตัวต้านทาน -> พินอ่านแบบอะนาล็อก -> ตัวรับสัญญาณ IR -> GND

VCC (5V) -> ตัวต้านทาน -> ตัวส่งสัญญาณ IR -> GND

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

ในบอร์ดที่กำหนดเองของฉัน ฉันใช้ shift register เพื่อให้พลังงานแก่อีซีแอลและตัวรับสัญญาณแต่ละตัวคู่กันเพื่อหลีกเลี่ยงแสง IR ที่ตกจากอีซีแอลอื่นๆ นี่ทำให้ฉันอ่านค่าจากตำแหน่ง pip ได้แม่นยำยิ่งขึ้น หากคุณเลือกที่จะไม่ใช้ shift register ก็จะยังคงทำงานให้คุณ มันอาจจะแม่นยำน้อยกว่าเล็กน้อย บน shift register คุณสามารถรวมพิน 3-4 และ 7-8 เข้าด้วยกัน เนื่องจากไม่จำเป็นต้องมีหมุดเหล่านี้เป็นส่วนหัว ฉันปล่อยให้มันเป็นส่วนหัวและใส่จัมเปอร์บนส่วนหัวในกรณีที่ฉันต้องการพัฒนาในอนาคต

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

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

เมื่อคุณมีการออกแบบบอร์ดแล้ว คุณสามารถไปยังขั้นตอนต่อไปได้!

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

การสร้างคณะกรรมการ
การสร้างคณะกรรมการ
การสร้างคณะกรรมการ
การสร้างคณะกรรมการ
การสร้างคณะกรรมการ
การสร้างคณะกรรมการ

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

หากคุณเลือกทำการสีบอร์ด กระบวนการนี้จะง่ายกว่า ส่งไฟล์บอร์ดไปยังโรงสีพร้อมการตั้งค่าเฉพาะของโรงสี หากทำเอง ให้สร้างก่อนนำออก ตรวจสอบให้แน่ใจว่าทองแดงทั้งหมดโม่ให้ลึกเพียงพอ กระดานแรกที่ฉันทำ ทองแดงไม่ได้โม่ลึกพอ และฉันต้องทำการสีอีกอัน

ตรวจสอบให้แน่ใจว่าทุกอย่างถูกบัดกรีเข้ากับบอร์ดในเลย์เอาต์ที่ต้องการและใช้เวลาของคุณ และหากบัดกรีบน PCB ให้ตรวจสอบว่าคุณบัดกรีที่ด้านที่ถูกต้องของบอร์ด

เมื่อใส่ตัวรับสัญญาณ IR และตัวปล่อย ตรวจสอบให้แน่ใจว่าตัวปล่อยอยู่ใต้ตัวรับพอดี คุณจะต้องลองใช้การงอขาของส่วนประกอบ IR เพื่อให้ได้มาถูกที่ ถือลูกเต๋าไว้ด้วยเพื่อตรวจสอบว่าตำแหน่ง pip อยู่ในตำแหน่งที่ต้องการหรือไม่

เมื่อคุณมีทุกอย่างที่บัดกรีและเพิ่มลงในบอร์ดแล้ว คุณก็อยู่ในการเขียนโปรแกรมเซ็นเซอร์

ขั้นตอนที่ 4: การเขียนโปรแกรมบอร์ด

การเขียนโปรแกรมคณะกรรมการ
การเขียนโปรแกรมคณะกรรมการ
การเขียนโปรแกรมคณะกรรมการ
การเขียนโปรแกรมคณะกรรมการ

นี่เป็นส่วนที่ยุ่งยากในการทำให้เซ็นเซอร์มีความแม่นยำที่สุดเท่าที่จะเป็นไปได้ โดยตั้งโปรแกรมบอร์ด โชคดีที่ฉันได้สร้างห้องสมุดเพื่อให้คุณใช้กับเซ็นเซอร์ที่สร้างขึ้นใหม่เพื่อให้การเขียนโปรแกรมง่ายขึ้นมาก อย่างไรก็ตาม คุณจะต้องปรับเทียบเซ็นเซอร์ตามแสงที่เซ็นเซอร์นี้ตั้งอยู่

ในการเริ่มต้นคุณต้องมี Arduino เพื่อเชื่อมต่อกับเซ็นเซอร์นี้ ใช้พินอนาล็อก 5 พินและพินดิจิตอล 3 พิน

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

บนเซ็นเซอร์ หมุด 1-5 สีแดงไปที่ A0-A4 ดังนั้นสีแดง 1 ไปที่ A0 เป็นต้น หมุด 1-8 สีขาว ต้องการคำอธิบายเพิ่มเติมเล็กน้อย

สีขาว 1 - ดาต้าพิน นี่คือที่ที่ Arduino ส่งข้อมูลไปยัง shift register ฉันตั้งพินนี้เป็นพินดิจิตอล 3 บน Arduino

สีขาว 2 - Q0, ล้าสมัยในกรณีนี้ ฉันรวมไว้ในกรณีที่ฉันตัดสินใจขยายเลย

สีขาว 3 & 4 - จะจับคู่ คุณสามารถประสานทั้งสองเข้าด้วยกันหรือใช้จัมเปอร์เหมือนที่ฉันทำ

สีขาว 5 - สลักพิน หมุดที่สำคัญมากซึ่งเป็นขั้นตอนสุดท้ายในกระบวนการเพื่อดูการเปิดและปิด pip ฉันตั้งพินนี้เป็นพิน 12 บน Arduino

White 6 - Clock Pin ซึ่งให้นาฬิกาจาก Arduino ไปยัง shift register ฉันตั้งค่านี้เป็นพินดิจิตอล 13

สีขาว 7 & 8 - จะจับคู่ คุณสามารถประสานทั้งสองเข้าด้วยกันหรือใช้จัมเปอร์เหมือนที่ฉันทำ

ถัดจากกล่องสีขาว คุณมีหมุดกราวด์และ VCC คุณต้องจัดหา 5v จาก Arduino หรือแหล่งอื่นเพื่อให้พลังงานแก่เซ็นเซอร์นี้

หมายเลขตำแหน่ง PIP สามารถพบได้ในรหัส

ตอนนี้คุณต้องเชื่อมต่อ เราต้องสอบเทียบ เป้าหมายของฉันคือการสร้างสคริปต์ที่สามารถปรับเทียบให้คุณได้ แต่ฉันไม่มีเวลาพอที่จะทำเช่นนั้น เมื่อทำการปรับเทียบ คุณต้องตรวจสอบให้แน่ใจว่าเซ็นเซอร์อยู่ในสภาพแวดล้อมของแสงที่มีการควบคุม เซ็นเซอร์มีความไวต่อแสงภายนอกที่อนุมาน คุณต้องได้รับค่าจากแต่ละตำแหน่ง pip ด้วยจุดสีดำและจุดสีขาวและหาค่าเฉลี่ยความแตกต่าง ฉันใช้ลูกเต๋าสองด้านในการปรับเทียบ ฉันใช้ด้านที่ 1 ด้าน 6 และด้านที่ 6 หมุน 90 องศา เมื่อคุณมีตัวเลขสีขาวและสีดำสำหรับแต่ละตำแหน่ง pip แล้ว คุณต้องหาค่าเฉลี่ยและหาจุดกึ่งกลางของตัวเลขทั้งสอง ตัวอย่างเช่น หากฉันได้ 200 สำหรับสีขาวจากตำแหน่ง pip แรก และ 300 สำหรับค่า dark ของตำแหน่ง pip แรก หมายเลขการสอบเทียบจะเป็น 250 เมื่อคุณทำเช่นนี้สำหรับตำแหน่ง pip ทั้ง 5 ตำแหน่ง เซ็นเซอร์ของคุณก็จะถูกต้อง ปรับเทียบแล้วคุณสามารถใช้ dice. ReadFace(); เพื่อรับหน้าปัจจุบันของลูกเต๋า

ขั้นตอนที่ 5: การสมัคร

แอปพลิเคชัน
แอปพลิเคชัน
แอปพลิเคชัน
แอปพลิเคชัน
แอปพลิเคชัน
แอปพลิเคชัน

ตอนนี้คุณได้สร้างเซ็นเซอร์ลูกเต๋าสำเร็จแล้ว! ยินดีด้วย! นี่เป็นถนนสายยาวแห่งการลองผิดลองถูกสำหรับฉันในการสร้างเซ็นเซอร์นี้ จึงเป็นเป้าหมายของฉันที่จะช่วยใครก็ตามที่ต้องการสร้างเซ็นเซอร์ลูกเต๋า

ฉันได้รวมตัวอย่างบางส่วนของโครงการที่เราสร้างซึ่งใช้เซ็นเซอร์นี้ ภาพแรก เราใช้แป้นหมุนเพื่อวางลูกเต๋าบนเซ็นเซอร์อย่างถูกต้องทุกครั้ง ภาพที่สองเป็นผลิตภัณฑ์สุดท้ายของโครงการของเรา และฐานจะหมุนขึ้นอยู่กับว่าหน้าลูกเต๋าคืออะไร และภาพที่สามคือกล่องแสดงผลที่ฉันออกแบบและสร้างขึ้นเพื่อวางเซ็นเซอร์เหล่านี้ไว้บนจอแสดงผล

ความเป็นไปได้สำหรับเซ็นเซอร์นี้จะไม่มีที่สิ้นสุดหากคุณใส่ใจ ฉันหวังว่าคุณจะพบว่าบทช่วยสอนนี้สนุกและให้ความรู้ และฉันหวังว่าคุณจะลองทำเพื่อตัวคุณเอง

พระเจ้าอวยพร!

แนะนำ: