Custom Macro Mechanical Keypad: 12 ขั้นตอน (พร้อมรูปภาพ)
Custom Macro Mechanical Keypad: 12 ขั้นตอน (พร้อมรูปภาพ)
Anonim
แป้นพิมพ์เครื่องกลมาโครแบบกำหนดเอง
แป้นพิมพ์เครื่องกลมาโครแบบกำหนดเอง
แป้นพิมพ์เครื่องกลมาโครแบบกำหนดเอง
แป้นพิมพ์เครื่องกลมาโครแบบกำหนดเอง
แป้นพิมพ์เครื่องกลมาโครแบบกำหนดเอง
แป้นพิมพ์เครื่องกลมาโครแบบกำหนดเอง
แป้นพิมพ์เครื่องกลมาโครแบบกำหนดเอง
แป้นพิมพ์เครื่องกลมาโครแบบกำหนดเอง

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

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

เนื่องจากวิธีการทำปุ่มกดนี้ เราขอแนะนำให้คุณอ่านคำแนะนำทั้งหมดก่อนตัดสินใจซื้อ

ฉันยังพยายามสร้าง Instructable ตามลำดับตรรกะ แต่ฉันไม่ได้สร้างอย่างมีตรรกะ ดังนั้นจึงควรข้ามไปตามลำดับขั้นตอนขึ้นอยู่กับว่าคุณสร้างอย่างไร

ขั้นตอนที่ 1: รับชิ้นส่วน

รับอะไหล่
รับอะไหล่

ขั้นตอนที่ยาวที่สุดอยู่ที่นี่แล้ว การซื้อชิ้นส่วนและรอการจัดส่ง ลิงก์ของ Amazon จะเป็น Amazon ของแคนาดา ส่วนที่คุณต้องการคือ:

  1. สวิตช์กุญแจเครื่องกล

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

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

  2. ปุ่มกดเครื่องกล

    • ตรวจสอบให้แน่ใจว่าเข้ากันได้กับสวิตช์ที่คุณเลือก!

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

    • ผู้จำหน่ายสามารถพบได้ที่นี่ภายใต้ส่วน 'คีย์แปลกใหม่ (การผลิตมาตรฐาน)' เว้นแต่คุณต้องการชุดคีย์แคปแบบเต็ม
  3. แถบ LED RGB ที่สามารถระบุตำแหน่งได้ (ไม่บังคับ แต่แนะนำเป็นอย่างยิ่ง)

    • ฉันซื้อของที่คล้ายกันจาก Amazon

      • ตรวจสอบให้แน่ใจว่าไฟ LED เป็นไฟ LED WS2812B ซึ่งสามารถรับแรงดันไฟฟ้าที่ต่ำกว่าได้
      • คุณยังสามารถซื้อ LED ปกติขนาด 3 มม. ที่มีสีที่คุณชื่นชอบได้ แต่คุณต้องมีตัวต้านทาน
  4. ไมโครคอนโทรลเลอร์ที่เข้ากันได้กับ HID (ฉันใช้ Pro Micro)

    • ฉันซื้อของจาก Amazon ในราคาสุดคุ้ม

      คุณสามารถซื้อไมโครคอนโทรลเลอร์อื่นๆ ได้ แต่ต้องแน่ใจว่าทั้ง Arduino และ HID (อุปกรณ์อินพุตของมนุษย์) เข้ากันได้

  5. จอแสดงผล OLED 128x32 I2C

    ฉันซื้อสิ่งนี้จากอเมซอน

  6. เข้าถึงเครื่องพิมพ์ 3 มิติ

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

    • หัวแร้งและหัวแร้ง
    • คีมตัดด้านข้าง
    • ไฟล์ขนาดเล็ก (เป็นทางเลือก)
    • ปืนกาวร้อนและกาว
    • ไขควงและสกรูตามชอบ

ขั้นตอนที่ 2: การปรับเปลี่ยนคีย์สวิตช์

การปรับเปลี่ยนสวิตช์กุญแจ
การปรับเปลี่ยนสวิตช์กุญแจ
การปรับเปลี่ยนสวิตช์กุญแจ
การปรับเปลี่ยนสวิตช์กุญแจ
การปรับเปลี่ยนสวิตช์กุญแจ
การปรับเปลี่ยนสวิตช์กุญแจ

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

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

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

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

ขั้นตอนที่ 3: การพิมพ์ 3 มิติ

การพิมพ์ 3 มิติ
การพิมพ์ 3 มิติ

คุณจะต้องดาวน์โหลดไฟล์ zip ไฟล์ใดไฟล์หนึ่งด้านล่าง แล้วพิมพ์ 3 มิติ จะมีรุ่นที่แตกต่างกันขึ้นอยู่กับสิ่งที่คุณต้องการ จะมีโฟลเดอร์ที่มีไฟล์ stl ปกติทั้งหมดอยู่ในนั้น (KeybArrowSTLFiles) และอีกโฟลเดอร์หนึ่งที่มีไฟล์นักประดิษฐ์ Autodesk (KeybArrowSourceFiles) เพื่อให้คุณสามารถแก้ไขไฟล์และเปลี่ยนแปลงได้ตามความต้องการของคุณเอง ไฟล์ต่างจากที่ฉันพิมพ์เล็กน้อย นั่นเป็นเพราะมีข้อบกพร่องในการออกแบบบางอย่าง และฉันรู้สึกว่าฉันสามารถปรับปรุงมันได้ ตัวอย่างจะเป็นด้านข้างของเคส ของฉันค่อนข้างสูงเกินไป ดังนั้นคีย์แคปจะไม่กดลงไปจนสุด ไฟล์ใหม่ควรแก้ไขปัญหานั้น

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

สังเกตว่าแฟ้มปลอกทั้งสองทำมุม 3 องศา และคุณควรทำมุมให้ราบกับเตียง

ขั้นตอนที่ 4: รวบรวมสิ่งที่คุณมีจนถึงตอนนี้

รวบรวมสิ่งที่คุณมีจนถึงตอนนี้
รวบรวมสิ่งที่คุณมีจนถึงตอนนี้
รวบรวมสิ่งที่คุณมีจนถึงตอนนี้
รวบรวมสิ่งที่คุณมีจนถึงตอนนี้
รวบรวมสิ่งที่คุณมีจนถึงตอนนี้
รวบรวมสิ่งที่คุณมีจนถึงตอนนี้
รวบรวมสิ่งที่คุณมีจนถึงตอนนี้
รวบรวมสิ่งที่คุณมีจนถึงตอนนี้

ตอนนี้เรามีชิ้นส่วนทั้งหมดของเราแล้ว และเรามีชิ้นส่วนที่พิมพ์ 3 มิติแล้ว ก็ถึงเวลาประกอบกันสักหน่อย!

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

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

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

ขั้นตอนที่ 5: การตั้งค่า OLED

การตั้งค่า OLED
การตั้งค่า OLED
การตั้งค่า OLED
การตั้งค่า OLED
การตั้งค่า OLED
การตั้งค่า OLED

ฉันแนะนำให้ใช้คำแนะนำนี้สำหรับการเดินผ่านอย่างละเอียด พวกเขาอธิบายได้ดีมาก

คุณจะต้องดาวน์โหลดและนำเข้าไลบรารีนี้และไลบรารีนี้เพื่อให้โค้ดทำงานได้

วางสายก่อน ต่อสาย VCC เป็น VCC และ GND ถึง GND จากนั้นต่อขา SDA และ SCL พิน SDA และ SCL อาจแตกต่างกันไปตาม Arduino แต่ละตัว แต่สำหรับไมโครโปร SDA นั้นต่อสายเข้ากับพิน 2 และ SCL นั้นต่อเข้ากับพิน 3 มองหาพินของไมโครคอนโทรลเลอร์ของคุณ หากคุณไม่แน่ใจว่า SDA ใดเป็นพิน และ SCL เชื่อมต่อกับ

ต่อไปคือการให้มันแสดงและสร้างภาพ จะมีไฟล์ด้านล่างเกี่ยวกับวิธีการทำงาน ขั้นตอนแรกคือการใช้โค้ด ScreenScan (แต่เดิมมีให้โดย Arduino ที่นี่) อัปโหลดโค้ดไปยัง Pro Micro และเปิด Serial reader (ใต้แท็บเครื่องมือด้านบน) มันจะอ่านคุณกลับและที่อยู่ของ OLED หากที่อยู่ของคุณคือ 0x3C คุณไม่จำเป็นต้องเปลี่ยนแปลงอะไรเลย หากไม่เป็นเช่นนั้น คุณต้องไปเปลี่ยนที่อยู่ในรหัส ssd1306_128x32_i2c และรหัสสุดท้าย (ชื่อ ArrowKeypad) เพื่อให้ทำงานได้อย่างถูกต้อง

ตอนนี้ ทดสอบโค้ดตัวอย่างที่มาพร้อมกับไลบรารี Adafruit ssd1306 สำหรับโค้ด 128x32 i2c (ชื่อ ssd1306_128x32_i2c)

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

ดาวน์โหลดโค้ดตอนนี้ และใช้ไฟล์โค้ดอื่นๆ ในขั้นตอนที่ 8 ในภายหลังในคำแนะนำนี้

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

บัดกรี
บัดกรี

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

ตรวจสอบให้แน่ใจว่าหมุดที่ระบุว่า "MOSI, MISO หรือ SCLK" นั้นไม่ได้ใช้งาน มิฉะนั้นจะทำให้ OLED มีปัญหา

หลังจากตัดไฟ LED 6 ดวงเป็นแถบเดียวแล้วติดกาวลงบนจาน วางหัวแร้งบนแผ่นทองแดง และเพิ่มบัดกรีในแต่ละแผ่น ตัดลวดเส้นเล็ก ๆ แล้วดึงออกครึ่งหนึ่ง บิดมัน จากนั้นดึงอีกครึ่งหนึ่งออกแล้วบิดลวด ลวดจะต้องจับด้วยคีมหรือเครื่องมือช่วยบัดกรี ในขณะที่คุณให้ลวดบัดกรีเข้าที่ เพิ่มการบัดกรีให้มากขึ้นเพื่อให้มีความสวยงาม ประสานไฟ LED ทั้งหมดในแถวเข้าด้วยกัน ตัดลวดแล้วบัดกรีที่ส่วนท้ายของ LED ในแถวแรกโดยมีป้ายกำกับ 'DO' หรือ 'D-' และเชื่อมต่อกับ LED ตัวแรกในแถวที่สองด้วยป้ายกำกับ 'DI' หรือ 'D+ '. คุณสามารถทำเช่นนี้กับ 5v และ GND ได้เช่นกัน แต่จะง่ายกว่าถ้า LED 5v และ GND แรกในแต่ละแถวเชื่อมต่อเข้าด้วยกัน ต่อสาย 5v เข้ากับ VCC, ดาต้าพินกับพินดิจิตอลใดๆ (โค้ดตั้งไว้ที่ 10) และ GND กับ GND บน Arduino

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

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

ขั้นตอนที่ 7: ความรู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรม

บทนำสู่การเขียนโปรแกรม
บทนำสู่การเขียนโปรแกรม

ก่อนที่คุณจะต้องการปิดเคส คุณต้องการทดสอบและตรวจสอบว่าใช้งานได้ คุณสามารถข้ามไปยังขั้นตอนที่ 11 เพื่อประกอบได้เลย ฉันเพิ่งพบว่าการทดสอบล่วงหน้าช่วยลดเวลาที่คุณเปิดและปิด แม้ว่าจะไม่ได้รับผลกระทบมากนัก แต่ฉันใช้ Arduino IDE เวอร์ชัน 1.8.3 ดังนั้นหากคุณมีปัญหาลองใช้เวอร์ชันนี้ รหัสอยู่ในขั้นตอนที่ 5 เป็นไฟล์ zip ที่คุณจะต้องแยกและอัปโหลดผ่าน Arduino

จะมีโค้ดหลายส่วนด้านล่าง หนึ่งจะเป็นรหัสสุดท้าย สองจะเป็นการทดสอบ OLED (หนึ่งเพื่อทดสอบ หนึ่งเพื่อค้นหาที่อยู่) และอีกหนึ่งจะเป็นการทดสอบ RGB ใช้รหัสสุดท้ายเพื่อทดสอบสวิตช์

หากคุณต้องการออกแบบโค้ดของคุณเอง ฉันกำลังสอนมันใน 3 ขั้นตอนถัดไป แต่ไม่เป็นไรถ้าคุณต้องการใช้โค้ดของฉัน หรือนำไปใช้และแก้ไข

พื้นฐานของการเขียนโปรแกรมนี้

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

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

  • ไลบรารี LED และ OLED จะเริ่มต้นเป็นวัตถุ คุณสามารถตั้งชื่ออะไรก็ได้ แต่เพื่อการสาธิต ฉันจะตั้งชื่อพวกมันว่า 'แถบ' และ 'การแสดงผล'

    เรียกใช้ฟังก์ชันจากออบเจ็กต์โดยพิมพ์ชื่ออ็อบเจ็กต์ ใส่จุด จากนั้นพิมพ์ฟังก์ชันที่คุณต้องการใช้

ถัดไป ทดสอบ LED อัปโหลดโค้ด และตรวจสอบให้แน่ใจว่าทั้งหมดทำงาน หากไม่ได้ผล หมุดของคุณหายไป ให้ตรวจสอบการบัดกรีของ LED ดวงแรก

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

ขั้นตอนที่ 8: การเขียนโปรแกรมสวิตช์

การเขียนโปรแกรมสวิตช์
การเขียนโปรแกรมสวิตช์
การเขียนโปรแกรมสวิตช์
การเขียนโปรแกรมสวิตช์

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

ก่อนที่เราจะเริ่มต้นด้วยคำสั่งแบบมีเงื่อนไข เราต้องตั้งค่าพิน เราต้องการให้สิ่งนี้ทำงานเพียงครั้งเดียว ดังนั้นให้ใส่สิ่งนี้ลงในการตั้งค่าเป็นโมฆะ เริ่มต้นด้วย pinMode(PinNum, INPUT_PULLUP); สิ่งนี้บอก Arduino ว่า PinNum คาดหวังอินพุต และเพิ่มตัวต้านทานแบบดึงขึ้น (เพื่อที่เราจะได้ไม่ต้องต่อสายใดๆ ในฮาร์ดแวร์)

อินพุตพูลอัพมี 2 สถานะ LOW และ HIGH Arduino จะอ่านค่า LOW บนขาเมื่อเชื่อมต่อกับกราวด์ (GND) และจะอ่านค่าสูงเมื่อไม่ได้เชื่อมต่อ ในการค้นหาว่าพินกำลังอ่านอะไร เราใช้ digitalRead(PinNum)

เริ่มต้นด้วยพื้นฐาน เราใช้เงื่อนไข if คำสั่งเพื่อค้นหาว่ามีการกดปุ่มหรือไม่ เราต้องการให้สิ่งนี้ทำงานซ้ำแล้วซ้ำอีก เราจึงต้องการให้สิ่งนี้ถูกใส่เป็นวงที่ว่างเปล่า หากคีย์ถูกลงทะเบียนเป็น "LOW" เราต้องการให้กดคีย์และปล่อยคีย์เมื่ออินพุตเป็น "HIGH" ในการทำเช่นนี้ เราจึงเขียนโค้ด if(digitalRead(PinNum)==LOW){ [Code for when the button is press] } และ code if(digitalRead(PinNum)==HIGH){ [Code for when the button is release] }

สำหรับรหัสสำหรับแป้นพิมพ์ ให้นำเข้าคลังแป้นพิมพ์ ใส่ keyboard.begin(); ในการตั้งค่าโมฆะ จากนั้นในประโยคเงื่อนไขของเรา เราใช้ keyboard.press([key]); และ keyboard.release([คีย์]); หรือ keyboard.releaseAll(); หากคุณกดหลายปุ่ม คุณสามารถใช้ keyboard.print([String]); และ keyboard.println([String]) เพื่อพิมพ์สตริง เช่น รหัสผ่าน print และ println คล้ายกัน แต่ println เพิ่งเพิ่ม ENTER ดังนั้นจึงไปที่บรรทัดถัดไปโดยอัตโนมัติ

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

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

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

กำหนด OLED_RESET เป็น 4 และรวมไลบรารี SSD1306 ไว้ในโค้ดของคุณ ใส่จอแสดงผล Adafruit_SSD1306 (OLED_RESET); ในรหัสของคุณเพื่อเริ่มใช้ไลบรารี Adafruit SSD1306

เริ่มต้นด้วย Serial.begin(9600); จากนั้น display.begin(SSD1306_SWITCHCAPVCC, 0x3C); เพื่อเริ่มต้นการแสดงผล i2C ด้วยที่อยู่ 0x3C (เว้นแต่จะเปลี่ยนในขั้นตอนที่ 5) ใส่ทั้งสองสิ่งนี้ในการตั้งค่าเป็นโมฆะเนื่องจากจำเป็นต้องเรียกใช้เพียงครั้งเดียว

ก่อนที่คุณจะตั้งโปรแกรมจอแสดงผล คุณควรตรวจสอบให้แน่ใจว่าคุณใช้ display.clearDisplay หากคุณไม่ได้ป้อนข้อมูลจะทับซ้อนกัน และจะไม่สามารถอ่านออกได้ ทั้งนี้ขึ้นอยู่กับสิ่งที่เปลี่ยนแปลง คุณต้องการตั้งค่าต้นทางด้วย ดังนั้นให้ใช้ display.setCursor(0, 0); หากต้องการตั้งไว้ที่จุดบนจอแสดงผล ให้ใส่ (0, 0) เพื่อรีเซ็ตกลับเป็นจุดเริ่มต้น ในการกำหนดขนาดของข้อความ ให้ใช้ display.setTextSize(1); ฉันจะไม่ไปมากกว่า 1 มากนัก มันใหญ่กว่าที่คาดไว้มาก

แม้ว่าจอแสดงผลของเราจะเป็นแบบขาวดำ เราจำเป็นต้องตั้งค่าสีข้อความ ดังนั้นเราจึงตั้งโปรแกรมให้เหมือนกับ display.setTextColor(WHITE);

เมื่อคุณนำเข้าไลบรารีและวัตถุที่แสดงของคุณแล้ว คุณสามารถเริ่มตั้งโปรแกรมได้ หากต้องการเพิ่มข้อความ ให้ใช้ display.print(); และ display.println(); เพื่อพิมพ์สตริง อีกครั้ง การพิมพ์จะไม่เพิ่มการส่งคืนในขณะที่ println จะกลับไปที่บรรทัดถัดไปโดยอัตโนมัติเมื่อมีการพิมพ์บางอย่างอีกครั้ง

ก่อนที่คุณจะได้อะไรมาแสดง คุณต้องอัปเดต OLED และบอกให้อัปเดต คุณใช้ display.display(); ไม่มีพารามิเตอร์และจะอัปเดต

รหัสควรมีลักษณะดังนี้:

//โค้ดที่สร้างโดยฟอสเตอร์ ฟิลลิปส์

#include Adafruit_SSD1306.h #include Wire.h #define OLED_RESET 4 จอแสดงผล Adafruit_SSD1306 (OLED_RESET); การตั้งค่าเป็นโมฆะ () {pinMode (SWITCH, INPUT_PULLUP); Serial.begin(9600); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.display(); ล่าช้า (2000); display.clearDisplay(); display.setTextSize(1); display.setTextColor(สีขาว); } วงเป็นโมฆะ () { display.display (); ล่าช้า (2000); display.clearDisplay(); display.setTextSize(1); display.setCursor(0, 0); display.println("สวัสดีชาวโลก!"); display.println("สวัสดีผู้แนะนำ!"); }

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

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

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

ไฟ LED ก็เรียบง่ายพอสมควรเช่นกัน เราจะใช้ห้องสมุด Adafruit Neopixel โดยส่วนตัวแล้ว ไลบรารี NeoPixel นั้นคล้ายกับการเขียนโปรแกรมในการประมวลผลมาก หากคุณเคยตั้งโปรแกรมไว้

มีรหัสการตั้งค่าแรก ระบุไลบรารีที่เรากำลังใช้ และการตั้งค่าอาร์เรย์ที่บอกโดยทั่วไปว่ามี LED จำนวนเท่าใดบนพิน พินใดสำหรับข้อมูล และวิธีตั้งโปรแกรม ทำได้ด้วยตัวอย่างเช่น Adafruit_NeoPixel strip = Adafruit_NeoPixel(6, 10, NEO_GRB + NEO_KHZ800); สิ่งนี้อธิบายว่ามีไฟ LED 6 ดวง พินคือพินหมายเลข 10 และใช้แถบระบุแอดเดรสประเภท NEO_GRB + NEO_KZH800 โดยปกติไม่จำเป็นต้องแตะอาร์กิวเมนต์สุดท้าย แถบ LED ที่ฉันใช้ไม่จำเป็นต้องเปลี่ยนแปลง

หลังจากนั้นคุณต้องมี strip.begin(); ฟังก์ชั่นแสดงว่าคุณพร้อมที่จะเริ่มใช้งานแล้วไม่มีอะไรต้องอยู่ในวงเล็บ

เมื่อคุณมีแล้ว คุณสามารถเรียกใช้ฟังก์ชันต่างๆ ด้วยแถบนี้ได้[ฟังก์ชัน]

สิ่งที่คุณจะต้องรู้คือ strip.setPixelColour มี 4 ฟังก์ชั่นในวงเล็บ คุณมี LED ใน 'อาร์เรย์' ของ LED (โปรดจำไว้ว่า Array เริ่มต้นที่ 0) และค่าสีแดง สีเขียว และสีน้ำเงินที่สอดคล้องกันตั้งแต่ 0-255 ซึ่งจะช่วยให้คุณสามารถผสมค่าสีแดงสีเขียวและสีน้ำเงินที่ต้องการเพื่อให้ได้สีที่คุณต้องการ รหัสควรมีลักษณะดังนี้: strip.setPixelColour(0, 0, 255, 255); ถ้าคุณต้องการสีฟ้าบน LED ตัวแรก

LED ยังต้องส่งข้อมูลนั้น ซึ่งเป็นสิ่งที่ strip.show(); ทำ. มันจะอัปเดตพิกเซลหลังจากที่คุณได้เปลี่ยนแปลงบางอย่างกับพวกมัน ไม่มีอะไรต้องเข้าไปในวงเล็บ

รหัสควรมีลักษณะดังนี้:

//โค้ดที่สร้างโดยฟอสเตอร์ ฟิลลิปส์

#include Adafruit_NeoPixel.h #define PIN 10 #define Num 6 Adafruit_NeoPixel แถบ = Adafruit_NeoPixel(Num, PIN, NEO_GRB + NEO_KHZ800); การตั้งค่าเป็นโมฆะ () { strip.begin (); แถบ.show(); } วงเป็นโมฆะ () { strip.setPixelColor (0, 255, 0, 0); strip.setPixelColor(1, 255, 0, 0); strip.setPixelColor(2, 255, 0, 0); strip.setPixelColor(4, 255, 0, 0); strip.setPixelColor(3, 0, 0, 255); strip.setPixelColor(5, 0, 0, 255); แถบ.show(); }

ข้อมูลเพิ่มเติมสามารถดูได้ที่นี่.

ขั้นตอนที่ 11: การประกอบ

ประกอบ!
ประกอบ!
ประกอบ!
ประกอบ!
ประกอบ!
ประกอบ!

นี่อาจเป็นขั้นตอนที่ง่ายที่สุดและดีที่สุด

เริ่มต้นด้วยการวางและเลื่อน Pro Micro ไปที่ฝาปิดเคส กาวเข้าที่ด้วยกาวร้อน

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

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

จากนั้นเพียงแค่กดฝาครอบคีย์ลงบนคีย์ เสร็จแล้วสวยมาก! Arrow Key Macropad เวอร์ชันของฉันเสร็จสมบูรณ์แล้ว!

ขั้นตอนที่ 12: การปรับปรุงของคุณเอง

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

  • โปรแกรม Tetris และเกมง่ายๆ อื่นๆ
  • ทำให้เป็นบลูทูธ
  • อนุญาตให้อ่านข้อมูลจากสไลด์โชว์และแสดง OLED หนึ่งรายการ (แสดงหมายเลขสไลด์และชื่อสไลด์)
  • สร้างแป้นพิมพ์ขนาดเต็มหรือมาโครแพดขนาดใหญ่ขึ้นโดยใช้เทคนิคเหล่านี้

    คุณต้องเรียนรู้วิธีสร้างเมทริกซ์สวิตช์สำหรับสิ่งนี้

  • โปรแกรมตัวเลือกสีเพิ่มเติม
  • โปรแกรมมาโครสำหรับเกม การตัดต่อวิดีโอ ฯลฯ
  • ใช้ไฟล์ต้นทางของ Autodesk Inventor เพื่อสร้างเคสของคุณเองหรือแก้ไขให้เป็นเอกลักษณ์ของคุณ!
  • เพิ่มบอร์ดเสียงเพื่อเพิ่มเป็นสองเท่าของเครื่องเล่นเพลง

ขอให้สนุกกับการทำ! อย่าลังเลที่จะเพิ่มคำแนะนำหรือขอให้ฉันชี้แจง!

หากคุณต้องการดูความคืบหน้าของส่วนอื่นๆ ลองตรวจสอบ Instagram ของฉัน ขอบคุณที่อ่านคำแนะนำของฉัน!

การประกวดไมโครคอนโทรลเลอร์
การประกวดไมโครคอนโทรลเลอร์
การประกวดไมโครคอนโทรลเลอร์
การประกวดไมโครคอนโทรลเลอร์

รองชนะเลิศการประกวดไมโครคอนโทรลเลอร์

แนะนำ: