สารบัญ:

CheminElectrique (เกมทักษะ) - SRO2002: 9 ขั้นตอน
CheminElectrique (เกมทักษะ) - SRO2002: 9 ขั้นตอน

วีดีโอ: CheminElectrique (เกมทักษะ) - SRO2002: 9 ขั้นตอน

วีดีโอ: CheminElectrique (เกมทักษะ) - SRO2002: 9 ขั้นตอน
วีดีโอ: เกม ทายรูปภาพตามคำสั่ง ( หมวดสิ่งของเครื่องใช้ 10 ข้อ ) | เกมสร้างสรรค์สำหรับเด็กและเยวาชน 2024, กรกฎาคม
Anonim
CheminElectrique (เกมทักษะ) - SRO2002
CheminElectrique (เกมทักษะ) - SRO2002
CheminElectrique (เกมทักษะ) - SRO2002
CheminElectrique (เกมทักษะ) - SRO2002
CheminElectrique (เกมทักษะ) - SRO2002
CheminElectrique (เกมทักษะ) - SRO2002

วันนี้ผมขอนำเสนอการทำเกมสำหรับงานเลี้ยงสิ้นปีของลูกชายผม ในฝรั่งเศสเราเรียกเทศกาลเหล่านี้ว่า "kermesses" ไม่รู้ว่ามีอยู่ในประเทศอื่นหรือไม่ และเรียกว่าอะไร…

ในงานปาร์ตี้เหล่านี้ มักจะมีเกมแบบเดียวกัน นั่นคือสิ่งที่ผมเรียกว่าเกมคลาสสิก และในปีนี้ ผมได้ตัดสินใจสร้างเกมคลาสสิกเวอร์ชันที่ทันสมัยกว่านี้ นั่นคือ "Chemin electrique" หรือ "Main chaude"

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

ตามเนื้อผ้าไม่มีอุปกรณ์อิเล็กทรอนิกส์ใด ๆ ในการสร้างเกมนี้ แบตเตอรี่ 12V ธรรมดาพร้อมหลอดไฟและสายไฟก็เพียงพอแล้ว แต่ฉันมีไอเดียเจ๋ง ๆ ที่จะทำให้เกมนี้ทันสมัยขึ้น

มาดูกันว่าฉันได้เพิ่มฟังก์ชันอะไรเข้าไปบ้าง!

ขั้นตอนที่ 1: คุณสมบัติ

อย่างที่ฉันเพิ่งพูดไปว่าเกมนี้จะเปิดไฟเมื่อผู้เล่นแตะลวดด้วย "จอยสติ๊ก" โดยไม่ได้ตั้งใจ มันมักจะเกิดขึ้นบ่อยครั้งที่เกมส่งเสียงในระหว่างการสัมผัส ในเวอร์ชันของเกมของฉัน จะมีไฟ LED ทั้งหมด 6 บล็อกจาก 4 ดวง (เขียว-เหลือง-เหลือง-แดง) ที่จะสว่างขึ้นพร้อม ๆ กัน เสียงกริ่งที่จะส่งเสียงและเครื่องสั่นที่รวมอยู่ในคอนโทรลเลอร์ที่จะเปิดใช้งาน เมื่อมีการสัมผัสระหว่างสายไฟฟ้ากับ "จอยสติ๊ก"

ไฟ LED จะค่อยๆ สว่างจากสีเขียวเป็นสีแดง ขึ้นอยู่กับระยะเวลาที่การสัมผัสระหว่างสายไฟและตัวควบคุมจะคงอยู่

ฉันยังเพิ่มการเลือกระดับความยาก (ง่าย-ปกติ-ยาก) เช่นเดียวกับความสามารถในการเปิด/ปิดเครื่องสั่นและเสียง ระดับเสียงจะปรับได้ด้วยโพเทนชิออมิเตอร์

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

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

ขั้นตอนที่ 2: ข้อจำกัดความรับผิดชอบและข้อมูลเพิ่มเติม

ข้อจำกัดความรับผิดชอบและข้อมูลเพิ่มเติม
ข้อจำกัดความรับผิดชอบและข้อมูลเพิ่มเติม

ข้อจำกัดความรับผิดชอบ:

เกมดังกล่าวจะใช้แบตเตอรี่ 4 ก้อน 1.5V แรงดันไฟฟ้ารวม 6V ฉันยัง จำกัด กระแสไฟฟ้าที่ตัดผ่านสายไฟให้เหลือเพียงไม่กี่ไมโครแอมแปร์เท่านั้น ดังนั้นเราจึงอยู่ในขอบเขตของแรงดันไฟฟ้าความปลอดภัยต่ำมาก (SELV) โดยมีค่ากระแสที่ต่ำมากที่ผู้ใช้สามารถเข้าถึงได้

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

แต่ความสนใจฉันจะไม่รับผิดชอบในกรณีที่เกิดอุบัติเหตุ ! ต้องใช้ความระมัดระวังเสมอเมื่อจัดการกับตัวนำไฟฟ้าที่มีชีวิต แม้ที่ค่ากระแสไฟต่ำมาก ฉันขอแนะนำอย่างยิ่งให้คุณแจ้งตัวเองให้มากที่สุดเกี่ยวกับความเสี่ยงของไฟฟ้าและข้อควรระวังที่ดี

ข้อมูลเพิ่มเติม:

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

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

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

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

ฉันมีความสุขกับโปรเจ็กต์นี้เพราะมันประสบความสำเร็จอย่างมากในงานปาร์ตี้ที่โรงเรียนของลูกชายฉัน มาดูกันดีกว่าว่ามีอะไรอยู่ในท้องของสัตว์ร้าย;)

ขั้นตอนที่ 3: ภาระผูกพัน

- ต้องใช้แบตเตอรี่ (เพื่อความปลอดภัยและความคล่องตัว) - เกมจะต้องปลอดภัย (เด็กอายุ 2 ถึง 10 ปีจะใช้ได้)

- ต้องมีการตั้งค่า (ตัวเลือกของการเปิดใช้งานเสียง/ตัวสั่น และเลือกความยากได้)

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

- เสียงต้องดังพอ (เกมจะถูกใช้ภายนอกในสภาพแวดล้อมที่ค่อนข้างมีเสียงดัง)

- ระบบจะต้องถอดออกได้สูงสุดสำหรับการจัดเก็บและชิ้นส่วนทางกายภาพที่เปลี่ยนได้ง่าย (จอยสติ๊ก, สายไฟ…)

- ต้องมีเสน่ห์สำหรับเด็ก (นั่นคือเป้าหมายหลักที่พวกเขาเล่นเพื่อ…:))

ขั้นตอนที่ 4: ส่วนประกอบ (BOM)

สำหรับกรณี:- ไม้กระดาน

- จิตรกรรม

- เครื่องมือสำหรับเจาะและตัด….

สำหรับ "จอยสติ๊ก":- 1 vibrator

- แจ็คสาย 3.5 (สเตอริโอ)

- ช่องเสียบแจ็ค 3.5 (สเตอริโอ)

- สายไฟ 2.5mm²

- ท่อพีวีซีขนาดเล็ก

ชิ้นส่วนอิเล็กทรอนิกส์:

- 16F628A

- 12F675

- ULN2003A

- 2 x 2N2222A

- ซีเนอร์ไดโอด 2.7V

- ไฟ LED สีฟ้า 12 ดวง

- ไฟ LED สีเขียว 6 ดวง

- ไฟ LED สีแดง 6 ดวง

- ไฟ LED สีเหลือง 12 ดวง

- ตัวต้านทาน 5 ตัว 10K

- ตัวต้านทาน 2 ตัว 4.7K

- ตัวต้านทาน 1 ตัว 470 โอห์ม

- ตัวต้านทาน 6 ตัว 2.2K

- ตัวต้านทาน 6 ตัว 510 โอห์ม

- ตัวต้านทาน 18 ตัว 180 โอห์ม

- 1 โพเทนชิออมิเตอร์ 1K

- สวิตซ์เปิด-ปิด 1 ตัว

- สวิตซ์เปิด-ปิด-เปิด 2 ตัว

- ออด 1 ตัว

- ตัวแปลง DC เพิ่ม 1 ตัว

- สายไฟ 2.5mm²

- ขั้วต่อกล้วย 2 ตัว ตัวผู้

- ขั้วต่อกล้วย 2 ตัวเมีย

- ช่องเสียบแจ็ค 3.5 (สเตอริโอ)

- ที่ใส่แบตเตอรี่ LR6 4 ก้อน

- บอร์ดสร้างต้นแบบ PCB บางส่วน

เครื่องมืออิเล็กทรอนิกส์:- โปรแกรมเมอร์ที่ใส่รหัสลงในไมโครชิป 16F628A และ 12F675 (เช่น PICkit 2) -

ฉันแนะนำให้คุณใช้ Microchip MPLAB IDE (ฟรีแวร์) หากคุณต้องการแก้ไขโค้ด แต่คุณจะต้องใช้ CCS Compiler (แชร์แวร์) คุณยังสามารถใช้คอมไพเลอร์ตัวอื่นได้ แต่คุณจะต้องมีการเปลี่ยนแปลงหลายอย่างในโปรแกรม

แต่ฉันจะให้ ไฟล์ HEX เพื่อให้คุณสามารถฉีดลงในไมโครคอนโทรลเลอร์ได้โดยตรง

ขั้นตอนที่ 5: การวิเคราะห์ฟังก์ชัน

การวิเคราะห์ฟังก์ชัน
การวิเคราะห์ฟังก์ชัน
การวิเคราะห์ฟังก์ชัน
การวิเคราะห์ฟังก์ชัน

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

อินเทอร์เฟซกำลังไฟ ULN2003A (Func2): ส่วนประกอบนี้ทำหน้าที่เป็นส่วนต่อประสานกำลังระหว่าง 16F628A และวงจรที่ใช้พลังงานมากกว่าไมโครคอนโทรลเลอร์สามารถให้ได้ (LED, ออด, เครื่องสั่น)

การควบคุมออด (Func3):

PIC 16F628A ไม่สามารถจ่ายกระแสไฟได้เพียงพอที่จะจ่ายไฟให้กับออด โดยเฉพาะอย่างยิ่งเนื่องจากออดเซอร์ต้องส่งผ่านตัวแปลงบูสต์เพื่อเพิ่มพลังเสียง

เนื่องจากแอสเซมบลีจ่ายไฟ 6V และออดต้องใช้ 12V เพื่อทำงานสูงสุด ฉันจึงใช้คอนเวอร์เตอร์เพื่อให้ได้แรงดันไฟที่ดี ดังนั้นฉันจึงใช้ทรานซิสเตอร์เป็นสวิตช์ (โหมดสับเปลี่ยน) เพื่อควบคุมแหล่งจ่ายไฟของออด ส่วนประกอบที่ฉันเลือกคือ 2N2222A แบบคลาสสิกซึ่งเหมาะมากสำหรับการใช้งานนี้

นี่คือคุณสมบัติของออด: 12V 25mA ซึ่งหมายความว่าต้องการพลังทางทฤษฎีของ P=UI=12 x 25mA=0.3W

ดังนั้นจึงมีความต้องการพลังงาน 0.3W จากตัวแปลง DC boost โมดูล DC boost มีประสิทธิภาพ 95% จึงมีการสูญเสียประมาณ 5% ดังนั้นจำเป็นต้องใช้พลังงานขั้นต่ำ 0.3W + 5% = 0.315W ที่อินพุตตัวแปลง

ตอนนี้เราสามารถอนุมาน Ic ปัจจุบันซึ่งจะข้ามทรานซิสเตอร์ Q1:

P = U * Ic

ไอซี = P / U

Ic = P / Vcc-Vcesat

ไอซี = 0, 315 / 6-0, 3

ไอซี = 52mA

ตอนนี้เราคำนวณค่าความต้านทานฐานเพื่อให้ทรานซิสเตอร์อิ่มตัวได้ดี:

อิบซัตมิน = ไอซี / เบทามิน

อิบซัตมิน = 52mA / 100

อิบซัตมิน = 0.5mA

Ibsat = K x Ibsatmin (ฉันเลือกค่าสัมประสิทธิ์ความอิ่มตัวของสี K=2)

อิบซัท = 2 x อิบซัตมิน

อิบซัท = 1mA

R12 = Ur12 / อิบสาท

R12 = Vcc - Vbe

R12 = (6 - 0.6) / 1mA

R12 = 5.4K

ค่าปกติ (E12) สำหรับ R12=4.7K

การควบคุมการสั่น (Func4):

สำหรับออดนั้น 16F628A ไม่สามารถจ่ายกระแสไฟให้กับเครื่องสั่นได้เพียงพอซึ่งต้องใช้กระแส 70mA นอกจากนี้จะต้องจ่ายไฟให้สูงสุดด้วยแรงดันไฟฟ้า 3V ดังนั้นฉันจึงเลือกใช้ซีเนอร์ไดโอดร่วมกับทรานซิสเตอร์เพื่อสร้างตัวควบคุมแรงดันไฟฟ้า 2.7V สำหรับเครื่องสั่น การทำงานของความสัมพันธ์ระหว่างซีเนอร์กับทรานซิสเตอร์นั้นง่าย ซีเนอร์แก้ไขแรงดันไฟฟ้า 2.7V บนฐานของทรานซิสเตอร์และทรานซิสเตอร์ "คัดลอก" แรงดันไฟฟ้านี้และจ่ายไฟ

กระแสที่จะข้ามทรานซิสเตอร์ Q2 จึงเท่ากับ Ic = 70mA

ตอนนี้เราคำนวณความต้านทานฐานทำให้ทรานซิสเตอร์อิ่มตัวได้ดี:

อิบซัตมิน = ไอซี/เบตามิน

อิบซัตมิน = 70mA / 100

อิบซัตมิน = 0, 7mA

Ibsat = K x Ibsatmin (ฉันเลือกค่าสัมประสิทธิ์ความอิ่มตัวของสี K=2)Ibsat = 2 x Ibsatmin

อิบซัท = 1, 4mA

กระแสไฟต่ำสุดในซีเนอร์ไดโอดต้องมีอย่างน้อย Iz = 1mA สำหรับการทำงานของมัน ดังนั้นเราจึงสามารถอนุมานได้ว่ากระแสที่ไหลผ่านตัวต้านทาน R13:

Ir13 = อิบซัท + อิซ

Ir13 = 1, 4mA + 1mA

Ir13 = 2, 4mA

เพื่อให้แน่ใจว่ากระแสของซีเนอร์ไดโอด Iz อยู่ในช่วงการทำงานที่ถูกต้องเสมอ ระยะขอบความปลอดภัยจะถูกนำมาด้วย: Ir13_fixed = 5mA (ตัวเลือกค่าโดยพลการโดยสิ้นเชิง)

ตอนนี้มาคำนวณค่าของ R13:

R13 = U13 / Ir13_fixed

R13 = VCC-Vz / Ir13_fixed

R13 = 6-2, 7 / 5mA

R13 = 660 โอห์ม

ค่านอร์มัลไลซ์ (E12) สำหรับ R13=470 โอห์ม

ฉันสามารถเลือก 560 โอห์มในซีรีส์ E12 ได้ แต่ฉันไม่มีค่านี้ ดังนั้นฉันจึงเอาค่าก่อนหน้า…

สามารถเพิ่มประสิทธิภาพได้

เมื่อฉันออกแบบโปรเจ็กต์ ฉันไม่ได้คิดถึง Vbe ของทรานซิสเตอร์ ดังนั้นแทนที่จะมี 2.7V เพื่อจ่ายไฟให้กับไวเบรเตอร์ ฉันมีเพียง 2.7V-0.6V= 2.1V เท่านั้น ฉันควรใช้ซีเนอร์ 3.3V เช่น เครื่องสั่นจะมีประสิทธิภาพมากกว่านี้เล็กน้อย แม้ว่าผลลัพธ์จะค่อนข้างน่าพอใจ ฉันจะไม่ใช้ประโยชน์จากพลังทั้งหมดของเครื่องสั่น…

ไฟ LED เตือน (Func5):

ไฟ LED ถูกจัดวางในแนวตั้งราวกับว่าพวกมันก่อตัวเป็นเกจ:สีแดง

สีเหลือง2

สีเหลือง1

เขียว

เมื่อตรวจพบการสัมผัสระหว่าง "จอยสติ๊ก" กับสายไฟ จะค่อยๆ สว่างขึ้นจากสีเขียวเป็นสีแดง

ไฟ LED เชื่อมต่อกับ VCC เป็นกลุ่มตามสี:

- ขั้วบวกของไฟ LED สีเขียวทั้งหมดเชื่อมต่อกัน

- ขั้วบวกทั้งหมดของไฟ LED สีเหลือง 1 เชื่อมต่อเข้าด้วยกัน

- ขั้วบวกทั้งหมดของไฟ LED สีเหลือง 2 ดวงเชื่อมต่อกัน

- ขั้วบวกของไฟ LED สีแดงทั้งหมดเชื่อมต่อกัน

จากนั้นไมโครคอนโทรลเลอร์จะเปิดใช้งานโดยต่อสายดินแคโทดผ่าน ULN2003A

บันทึก:

บนแผนผังมี LED แต่ละสีเพียงสีเดียวที่มีสัญลักษณ์ "X6" อยู่ข้างๆ เพราะฉันใช้ Cadence Capture เวอร์ชันฟรี และถูกจำกัดด้วยจำนวนส่วนประกอบสูงสุดต่อไดอะแกรม ดังนั้นฉันจึงไม่สามารถแสดง LEDS ทั้งหมดได้ …

การจัดการระดับเสียงกริ่ง (Func6):

มันเป็นเพียงโพเทนชิออมิเตอร์แบบอนุกรมพร้อมออดซึ่งทำให้สามารถปรับระดับเสียงได้

ไฟ LED "ตกแต่ง" (Func7 - แผนผัง/หน้า 2):

จุดประสงค์ของไฟ LED เหล่านี้คือการสร้างการไล่ล่าเพื่อการตกแต่งเกม พวกมันสว่างขึ้นจากซ้ายไปขวา มีไฟ LED สีฟ้าทั้งหมด 12 ดวง: 6 ดวงที่จุดเริ่มต้นของหลักสูตรแทนเส้นเริ่มต้นและ 6 ที่ท้ายหลักสูตรแสดงถึงเส้นชัย

ฉันเลือกที่จะแสดงผลแบบมัลติเพล็กซ์สำหรับไฟ LED เหล่านี้เพราะจะต้องใช้พินมากขึ้นในการสั่งซื้อ (6 พินพร้อมมัลติเพล็กซ์ 12 พินโดยไม่มีมัลติเพล็กซ์)

นอกจากนี้ยังระบุในแผ่นข้อมูลว่า Vf คือ 4V ดังนั้นฉันจึงไม่สามารถใส่ LED 2 ดวงในซีรีส์ได้ (VCC คือ 6V) และฉันไม่สามารถวางขนานกันได้เพราะในทางทฤษฎีต้องการ 20 mA และไมโครคอนโทรลเลอร์สามารถจ่ายได้เพียง 25 mA สูงสุดต่อพิน ดังนั้น 40mA จะเป็นไปไม่ได้

เพื่อสรุปฉันไม่สามารถสร้างการเชื่อมโยงของ LED (ใส่ในอนุกรมหรือขนาน) และฉันไม่มีพินเพียงพอบนไมโครคอนโทรลเลอร์ที่จะขับเคลื่อนพวกมันต่อไป… ดังนั้นฉันจึงเลือกใช้ไมโครคอนโทรลเลอร์ (12F675) อีก 8 พินเพื่อให้สามารถ เพื่อขับเคลื่อนพวกเขา ขอบคุณไมโครคอนโทรลเลอร์นี้ ฉันควบคุมการเปิดใช้งาน LED โดยการตั้งค่าระดับตรรกะสูง (VCC) บนแอโนดของพวกเขา และฉันใช้ PIC 16F628A และ ULN2003A เพื่อทำมัลติเพล็กซ์

สามารถปรับให้เหมาะสม:

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

และฉันก็รู้ว่าไฟ LED สีฟ้ามีความสว่างเท่ากับไฟ LED สีเขียวที่มีกระแสไฟเพียง 1mA! ซึ่งหมายความว่าหากฉันรู้มาก่อนว่าจะเลือกใส่ไฟ LED สีฟ้าเป็นชุด (ในกลุ่มละ 2) ได้ และฉันต้องการเพียง 3 พินเพิ่มเติมบน 16F675A (ซึ่งมีจำหน่าย) ดังนั้นฉันจึงไม่ต้องเพิ่มไมโครคอนโทรลเลอร์ตัวอื่นเพื่อจัดการ LED เหล่านี้โดยเฉพาะ

แต่ในเวลานี้ของการออกแบบ ฉันไม่รู้ บางครั้งมีความแตกต่างเล็กน้อยระหว่างคุณลักษณะของเอกสารทางเทคนิคและลักษณะที่แท้จริงของส่วนประกอบ…

จำกัดกระแส (Func0):

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

แต่อย่างที่ฉันพูดไปก่อนหน้านี้ ฉันได้ค้นคว้ามากมายเพื่อดูว่ากระแสที่ไหลผ่านสายไฟฟ้าอาจเป็นอันตรายหรือไม่ หากมีการสัมผัสระหว่างสายไฟกับร่างกายมนุษย์

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

ดังนั้นฉันจึงต้องการใส่ตัวต้านทานค่าสูงเพื่อลดกระแสให้เป็นค่าที่ต่ำที่สุดเท่าที่จะเป็นไปได้ แต่เมื่อฉันทำโปรเจ็กต์เสร็จแล้ว ดังนั้นฉันจึงเชื่อมและต่อสายการ์ดต่างๆ เข้าด้วยกัน ฉันไม่สามารถถอดตัวต้านทานแบบดึงลงของ 10Kohm ได้อีกต่อไป เลยต้องเลือกค่าความต้านทานเพื่อให้ได้ 2/3 ของ VCC บนพิน BR0 (พิน 6 ของ 16F628A) เพื่อให้ไมโครคอนโทรลเลอร์ตรวจจับได้ แม้ว่าจะเป็นระดับตรรกะสูงเมื่อมีการสัมผัสระหว่างจอยสติ๊กกับสายไฟ. ถ้าฉันเพิ่มความต้านทานมากเกินไป ฉันจะมีความเสี่ยงที่ไมโครคอนโทรลเลอร์จะตรวจไม่พบการเปลี่ยนแปลงระหว่างสถานะลอจิกต่ำและสถานะลอจิกสูง

ดังนั้นฉันจึงเลือกเพิ่มความต้านทาน 4.7K เพื่อให้ได้แรงดันไฟฟ้าประมาณ 4V บนพินเมื่อมีการสัมผัสระหว่างจอยสติ๊กกับสายไฟฟ้า หากมีการเพิ่มความต้านทานของผิวหนังมนุษย์ในกรณีที่สายไฟฟ้าสัมผัสด้วยมือ เช่น กระแสที่ไหลผ่านร่างกายจะน้อยกว่า 1mA

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

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

ขั้นตอนที่ 6: การเขียนโปรแกรม

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

โปรแกรมเขียนด้วยภาษา C ด้วย MPLAB IDE และคอมไพล์โค้ดด้วย CCS C Compiler

โค้ดมีความคิดเห็นครบถ้วนและเข้าใจง่าย แต่ฉันจะอธิบายฟังก์ชันหลักของ 2 รหัสอย่างรวดเร็ว (สำหรับ 16F628A และ 12F675)

โปรแกรมแรก -CheminElectrique.c- (16F628A):

การจัดการมัลติเพล็กซ์ LED:Function: RTCC_isr()

ฉันใช้ timer0 ของไมโครคอนโทรลเลอร์เพื่อทำให้โอเวอร์โฟลว์ทุกๆ 2ms ซึ่งช่วยให้จัดการมัลติเพล็กซ์ของ LED ได้

การจัดการการตรวจจับผู้ติดต่อ:

ฟังก์ชัน: โมฆะ main()

นี่คือลูปหลัก โปรแกรมจะตรวจจับว่ามีการสัมผัสกันระหว่างจอยสติ๊กกับสายไฟหรือไม่ และเปิดไฟ LED/buzzer/vibrator ตามเวลาที่สัมผัส

การจัดการการตั้งค่าความยาก:

ฟังก์ชัน: GetSensitivityValue() แบบยาว

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

การจัดการการตั้งค่าการเตือน:

ฟังก์ชัน: int GetDeviceConfiguration()

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

โปรแกรมที่สอง -LedStartFinishCard.c- (12F675):

การจัดการการเปิดใช้งาน LED สีน้ำเงิน:ฟังก์ชัน: void main()

นี่คือลูปหลักของโปรแกรม โดยจะเปิดใช้งานไฟ LED ทีละดวงจากซ้ายไปขวา (เพื่อสร้างการไล่ล่า)

ดูไฟล์ zip ของโครงการ MPLAB ด้านล่าง:

ขั้นตอนที่ 7: การบัดกรีและการประกอบ

การบัดกรีและการประกอบ
การบัดกรีและการประกอบ
การบัดกรีและการประกอบ
การบัดกรีและการประกอบ
การบัดกรีและการประกอบ
การบัดกรีและการประกอบ
การบัดกรีและการประกอบ
การบัดกรีและการประกอบ

ส่วน "กายภาพ": ฉันเริ่มต้นด้วยการสร้างกล่อง ฉันจึงตัดแผ่นไม้หนาประมาณ 5 มม. สำหรับด้านบนและด้านข้าง และเลือกกระดานหนา 2 ซม. เพื่อให้ด้านล่างมีน้ำหนักมากขึ้น และเกมไม่ขยับ

ฉันประกอบแผงระหว่างการใช้กาวไม้ ฉันไม่ได้ใส่สกรูหรือตะปู และมันก็แข็งจริงๆ!

ในการทำให้เกมดูน่าสนใจมากกว่ากล่องที่ทาสีธรรมดาๆ ฉันขอให้ภรรยาของฉันสร้างการตกแต่งที่ด้านบนของกล่อง (เพราะฉันไม่ค่อยชอบการออกแบบกราฟิก…) ฉันขอให้เขาทำถนนที่คดเคี้ยว (เพื่อให้สัมพันธ์กับเส้นลวด…) โดยมีกระป๋อง/แผงที่ขอบโค้งเพื่อให้ฉันสามารถรวมไฟ LED เตือนของฉันได้ ไฟ LED สีฟ้าของการตกแต่งจะเป็นเหมือนเส้นเริ่มต้นและเส้นชัย เธอสร้างทิวทัศน์สไตล์ "เส้นทาง 66" ด้วยถนนที่ตัดผ่านทะเลทราย และหลังจากการแสดงผลหลายครั้งเพื่อค้นหาตำแหน่งที่ดีของ LED เราค่อนข้างพอใจกับผลลัพธ์ที่ได้!

จากนั้นฉันก็เจาะรูสำหรับคอนเนคเตอร์ สวิตช์ และไฟ LED ทั้งหมด

สายไฟถูกบิดเพื่อสร้างซิกแซกเพื่อเพิ่มความยากของเกม และปลายแต่ละด้านถูกขันเข้ากับขั้วต่อกล้วยตัวผู้ จากนั้นขั้วต่อจะเชื่อมต่อกับขั้วต่อกล้วยตัวเมียที่ต่ออยู่กับฝาครอบ

ชิ้นส่วนอิเล็กทรอนิกส์:

ฉันได้แบ่งชิ้นส่วนอิเล็กทรอนิกส์ออกเป็นการ์ดต้นแบบขนาดเล็กหลายใบ

มี:

- บัตรสำหรับ 16F628A

- บัตรสำหรับ 12F675

- การ์ดไฟ LED เตือน 6 ใบ

- การ์ด 4 ใบสำหรับไฟ LED ตกแต่ง (เส้นเริ่มต้นและเส้นชัย)

ฉันซ่อมการ์ดเหล่านี้ทั้งหมดไว้ใต้ฝากล่อง และใส่ที่ใส่แบตเตอรี่ไว้ที่ส่วนล่างของกล่องพร้อมกับออดและโมดูล DC boost

ส่วนประกอบอิเล็กทรอนิกส์ทั้งหมดเชื่อมต่อกันด้วยการพันสายไฟ ฉันจัดกลุ่มพวกมันเข้าด้วยกันให้มากที่สุดตามทิศทางของพวกมัน และฉันได้บิดมันเข้าด้วยกันและติดมันด้วยกาวร้อนเพื่อให้พวกมัน "สะอาด" ที่สุดเท่าที่จะเป็นไปได้และโดยเฉพาะอย่างยิ่งที่มี ไม่มีหน้าสัมผัสปลอมหรือสายไฟที่ตัดการเชื่อมต่อ ฉันใช้เวลามากในการตัด/ลอกออก/เชื่อม/วางตำแหน่งสายอย่างถูกต้อง!

ส่วน "จอยสติ๊ก":

สำหรับจอยสติ๊กฉันเอาท่อพีวีซีชิ้นเล็ก ๆ (เส้นผ่านศูนย์กลาง 1.5 ซม. และยาว 25 ซม.) จากนั้นฉันก็บัดกรีขั้วต่อแจ็คตัวเมียแบบนั้น:

- ขั้วต่อที่ต่อกับสายไฟที่ปลายจอยสติ๊ก (ContactWire บนแผนผัง)

- ขั้วต่อที่เชื่อมต่อกับขั้วบวกของเครื่องสั่น (2A บนขั้วต่อ J1A บนแผนผัง)

- ขั้วต่อที่เชื่อมต่อกับขั้วลบของเครื่องสั่น (1A บนขั้วต่อ J1A บนแผนผัง)

จากนั้นฉันก็รวมสายไฟ เครื่องสั่น และขั้วต่อแจ็คในท่อและยึดแจ็คด้วยกาวร้อนเพื่อให้แน่ใจว่าไม่มีสิ่งใดเคลื่อนไหวเมื่อเชื่อมต่อสายแจ็คระหว่างจอยสติ๊กกับส่วนอื่น ๆ ของระบบ

ขั้นตอนที่ 8: วิดีโอ

ขั้นตอนที่ 9: สรุป

ตอนนี้โปรเจ็กต์จบลงแล้ว การทำโปรเจ็กต์นี้เจ๋งจริง ๆ แม้ว่าฉันจะเสียใจที่ไม่มีเวลาทำ มันทำให้ฉันได้รับความท้าทายใหม่;) ฉันหวังว่าเกมนี้จะใช้งานได้หลายปีและจะทำให้เด็ก ๆ หลายคนสนุกสนานที่จะเฉลิมฉลองสิ้นปีการศึกษาของพวกเขา!

ฉันจัดเตรียมไฟล์เก็บถาวรที่มีเอกสารทั้งหมดที่ฉันใช้/สร้างสำหรับโครงการ

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

หากคุณมีคำถามหรือความคิดเห็นเกี่ยวกับโครงการนี้ โปรดแจ้งให้เราทราบ!

แนะนำ: