Upgrade to Pro — share decks privately, control downloads, hide ads and more …

self-made-keyboard

 self-made-keyboard

キーボードをキットを買って自作・使用してみたはなしです。
webだとリンクが辿れないので、よければpdfをダウンロードしてつついてあげてください。

B00956dc6359c1e48e30a0a323745d3b?s=128

Katsuki Kobayashi

November 24, 2019
Tweet

More Decks by Katsuki Kobayashi

Other Decks in Technology

Transcript

  1. ࣗ࡞ΩʔϘʔυԹઘʹ೔ؼΓೖཋͯ͠Έͨ࿩ Katsuki Kobayashi ؔ੢ Debian ษڧձ 2019 ೥ 11 ݄

    24 ೔ (೔)
  2. ͓࿳ͼ ▶ Debian ཁૉ͸͋Μ·Γͳ͍Ͱ͢

  3. Έͳ͞Μ

  4. ݞ΍ࠊ͸ େৎ෉Ͱ͔͢?

  5. ࢲ͸ବ໨Ͱ͢

  6. ࣗ࡞ΩʔϘʔυ΁ͷಈػ (1/4) ▶ ձࣾʹͯࠊ௧͕ࠅͯ͘ɺରࡦͯ͠΋ޮՌ͕ͳ͍ • ੔ࠎӃʹ௨͏ • δϜͰےτϨ͢Δ ▶ ಛʹɺ͜͜਺೥ࠅ͍

  7. ࣗ࡞ΩʔϘʔυ΁ͷಈػ (1/4) ▶ ձࣾʹͯࠊ௧͕ࠅͯ͘ɺରࡦͯ͠΋ޮՌ͕ͳ͍ • ੔ࠎӃʹ௨͏ • δϜͰےτϨ͢Δ ▶ ಛʹɺ͜͜਺೥ࠅ͍

    ▶ ৺౰ͨΓ
  8. ࣗ࡞ΩʔϘʔυ΁ͷಈػ (2/4) ▶ ThinkPad ΩʔϘʔυ • ThinkPad Λ࢖͍࢝Ίͯ໿ 4 ೥

    • τϥοΫϙΠϯτͷྑ͞ʹؾ෇͍ͯձࣾͰ΋ ThinkPad ΩʔϘʔυʹ − Windows Ͱ͸ Linux ΄ͲԸܙʹ͸༬͔Εͳ͍͚Ͳ • τϥοΫϙΠϯτ͕ѱ͍ͷ͔ͱࢥ͍ɺ͜͜਺ϲ݄͸Ϛ΢εΛ࢖༻ − ͔͠͠վળͤͣʜʜ
  9. ࣗ࡞ΩʔϘʔυ΁ͷಈػ (2/4) ▶ ThinkPad ΩʔϘʔυ • ThinkPad Λ࢖͍࢝Ίͯ໿ 4 ೥

    • τϥοΫϙΠϯτͷྑ͞ʹؾ෇͍ͯձࣾͰ΋ ThinkPad ΩʔϘʔυʹ − Windows Ͱ͸ Linux ΄ͲԸܙʹ͸༬͔Εͳ͍͚Ͳ • τϥοΫϙΠϯτ͕ѱ͍ͷ͔ͱࢥ͍ɺ͜͜਺ϲ݄͸Ϛ΢εΛ࢖༻ − ͔͠͠վળͤͣʜʜ ▶ ෼ׂܕΩʔϘʔυ • ·͊ɺݞڽΓʹ͸ޮ͖ͦ͏ • ͔͠͠ɺࠊʹޮ͘ͷ͔૝૾Ͱ͖ͳ͍
  10. ࣗ࡞ΩʔϘʔυ΁ͷಈػ (3/4) ▶ Ultimate Hacking Keyboard ͳΔ΋ͷΛΈ͚ͭΔ • τϥοΫϙΠϯτ͕෇͘!! −

    ͔͠͠৔ॴ͕͓͔͍͠ − τϥοΫϘʔϧ΍λονύου΋෇͚ΒΕΔ • ࣠͸มߋͰ͖Δ − ࣠ʹ͍ͭͯ͸ޙ΄Ͳʜʜ • ϑΝʔϜ΋ΧελϚΠζͰ͖Δ • Ͱ΋͓஋ஈతʹ − ࠷খߏ੒Ͱ΋ 275 υϧ − τϥοΫϙΠϯτ͚ͭͨΓɺϨετΞʔϜ͚ͭΔͱ 4 ສԁӽ͑ − ւ֎ͳͷͰɺૹྉ΍Βೲظ͕ͳ͊ʜʜ
  11. ࣗ࡞ΩʔϘʔυ΁ͷಈػ (4/4) ▶ পͷॅਓ͔Β͓੠͔͚͍ͨͩ͘ • https://twitter.com/rarewin/status/1163656414184689665 ▶ Tex Yoda II

    • ෼ׂ͞ΕͯͨΒٻΊ͍ͯͨײͩͬͨ͡ ▶ ࣗ࡞ΩʔϘʔυʹτϥοΫϙΠϯτΛ෇͚͍ͯΔਓ͸Ұఆ਺͍ΔΒ͍͠ • Google ݕࡧ: τϥοΫϙΠϯτ ࣗ࡞ΩʔϘʔυ ▶ ͦΜͳ͜ΜͳͰɺࣗ࡞΁ͱ৺͕ʜʜ
  12. ΩʔϘʔυͷબఆ (1/2) ▶ ͱ͍͏͜ͱͰࣗ࡞ͯ͠ΈΔ • ࣗ෼ͷ௥͍ٻΊͨཧ૝ͷΩʔϘʔυΛ Endgame ͱ͍͏ͦ͏Ͱ͢ • ͦ͜·ͰਂΈʹ͸·Δؾ͸ͳ͍Ͱ͚͢ͲͶ

    ▶ ݸਓతʹࢼ͔ͨͬͨ͠΋ͷ • ෼ׂΩʔϘʔυ - ݞڽΓʹޮ͖ͦ͏ͩͬͨͷͰඞਢ • ͳΔ΂͘ී௨ͳ഑ྻ - ֨ࢠ഑ྻͱ͔͸ͻͱ·ͣආ͚͍ͨ • ଧݤԻ͸੩͔ͳͷ͕͍͍ • ଧݤײ΋ܰͯ͘Α͍ • τϥοΫϙΠϯτཉ͍͠ʜʜ͕ɺҰ୴͖͋ΒΊΔ
  13. ΩʔϘʔυͷબఆ (2/2) ▶ ߟ͑Δ΂͖ࣄ͸͍͔ͭ͋͘Δ ▶ ֤Ωʔͷ഑ྻ͸ϑΝʔϜ΢ΣΞ͕͋ΔͷͰͳΜͱͰ΋ͳΔ • QWERTY ഑ྻͱ Dvorak

    ഑ྻΛ੾Γସ͑ΒΕΔΑ͏ͳϑΝʔϜ΋͋Δ ▶ Ωʔͷ഑ஔ • ී௨ͷ • ֨ࢠঢ় – লεϖʔε! (୅ද: Helix) • ΤϧΰϊϛΫε – ࢦͷ௕͞΍਌ࢦͷՔಈҬΛߟྀ (୅ද: https://ergodox-ez.com/) ▶ Ωʔͷ਺ • XX%ΩʔϘʔυ – ϑϧΩʔ (104 Ωʔ) ʹରͯ͠ԿݸͷΩʔ͕͋Δ͔ − ओྲྀ͸ 60%͘Β͍ (਺ࣈΩʔͷஈ͋ΓɺςϯΩʔɺFunctionKey ͳ͠) − ͞Βʹ͍͘ͱ 40%͘Β͍ (਺ࣈΩʔͳ͠ɺΧʔιϧΩʔɺҰ෦ͷه߸Ωʔ͕ͳ͍) − ͋ͨ·͓͔͍͠ͷ 10% − ٯʹ 100 Λӽ͑Δͷ΋ (ήʔϜ༻ͱ͔)
  14. Ұൠతͳࣗ࡞ΩʔϘʔυΩοτͷߏ੒ ▶ େମͷΩοτʹ͍ͭͯ͘Δ΋ͷ • ج൘ (ج൫ͱॻ͘ͱܯ࡯͕དྷΔ) • ϚΠίϯ – େମ

    Promicro • ϓϨʔτ – Χόʔ • μΠΦʔυ – ΩʔϚτϦοΫε༻ • ϦηοτεΠον – ϑΝʔϜম͖ͷͨΊ • OLED(Φϓγϣϯ) • LED(Φϓγϣϯ) ▶ ࣗ෼Ͱ༻ҙ͢Δ৔߹͕͋Δ΋ͷ • ΩʔεΠον • ΩʔΩϟοϓ • έʔϒϧ (USB/TRRS)
  15. ࣗ࡞Ωοτ঺հ : Mint60 ▶ ࢲ͸Ұ୆໨ͱͯ͠ߪೖ (ެࣜൢചαΠτ) ▶ ΦʔιυοΫεͳ෼ׂ 60%ΩʔϘʔυ ▶

    ΩʔεΠον/Ωϟοϓ෇͖ͷΩοτ͕͋ͬͯߪೖ͠΍͍͢ • εΠον/Ωϟοϓ͸਺छྨ͔Βબ΂Δ ▶ ૊Έཱͯͷ೉қ౓΋௿͍ • ൒ా෇͚೉қ౓ͷߴ͍ૉࢠ (νοϓμΠΦʔυ/νοϓ LED ͳͲ) ͸ͳ͍ ▶ ࡞ऀͷਓ͸ؔ੢ͷਓ? (ൃૹݩ͕ಸྑͩͬͨ) ͚Ͳ౦ژͰਫ਼ྗతʹΠϕϯτओ࠵ • ఱԼҰΩʔϘʔυΘ͍Θ͍ձ Vol.3 • Mint60 ૊Έཱͯձ Vol.4 Ҿ༻ݩ: http://eucalyn.hatenadiary.jp/entry/about-mint60-01
  16. ࣗ࡞Ωοτ঺հ : Mint60 ▶ ࢲ͸Ұ୆໨ͱͯ͠ߪೖ (ެࣜൢചαΠτ) ▶ ΦʔιυοΫεͳ෼ׂ 60%ΩʔϘʔυ ▶

    ΩʔεΠον/Ωϟοϓ෇͖ͷΩοτ͕͋ͬͯߪೖ͠΍͍͢ • εΠον/Ωϟοϓ͸਺छྨ͔Βબ΂Δ ▶ ૊Έཱͯͷ೉қ౓΋௿͍ • ൒ా෇͚೉қ౓ͷߴ͍ૉࢠ (νοϓμΠΦʔυ/νοϓ LED ͳͲ) ͸ͳ͍ • ͨͩ͠ɺൃදऀ͸ະͩʹγϦΞϧ௨৴͕ಈ͍͍ͯͳ͍ ▶ ࡞ऀͷਓ͸ؔ੢ͷਓ? (ൃૹݩ͕ಸྑͩͬͨ) ͚Ͳ౦ژͰਫ਼ྗతʹΠϕϯτओ࠵ • ఱԼҰΩʔϘʔυΘ͍Θ͍ձ Vol.3 • Mint60 ૊Έཱͯձ Vol.4 Ҿ༻ݩ: http://eucalyn.hatenadiary.jp/entry/about-mint60-01
  17. ࣗ࡞Ωοτ঺հ : Helix ▶ ࢲ͸ Mint60 ͷޙʹ Thinkpad ͷࠨख༻ͱͯ͠ߪೖ (ൢചαΠτ)

    ▶ ༡ࣷ޻๪ͷ୅දऀͷ૔಺͞Μ͕ઃܭͨ͠ΩʔϘʔυ ▶ ಛ௃తͳ׬શͳ֨ࢠ഑ྻ • Ωʔ਺తʹ͸ 60%͘Β͍ (64 Ωʔ)ɺ14 ΩʔݮΒ͢͜ͱ΋Ͱ͖Δ • PCB ͕ϦόʔγϒϧͳͷͰΧʔιϧ౳ͷҐஔ͕ಛघ ▶ ج൘ͷઃܭ͕ͱͯ΋៉ྷ • Cherry/Kailh ϩʔϓϩϑΝΠϧ ྆ରԠ • μΠΦʔυ΋νοϓ/ૉࢠ྆ରԠ (Ωοτ෇ଐ͸νοϓλΠϓ) ▶ PCB ͷσʔλ͕ެ։͞Ε͍ͯͯ೿ੜΩʔϘʔυ΋ଟ͍ Ҿ༻ݩ: https://yushakobo.jp/shop/helix-keyboard-kit/
  18. ࣗ࡞Ωοτ঺հ : Claw44 ▶ ձࣾͷಉ྅͕ߪೖ (ൢചαΠτ) ▶ ഑ྻ͕ಛ௃త • ࢦͷҠಈํ޲ʹ߹Θͤͯઃܭ

    • ಛʹ਌ࢦ͕Θ͔Γ΍ͦ͢͏ ▶ Ωʔ͕૬౰ʹগͳ͍ͷͰɺಉ྅͸ఘΊ෩ຯ Ҿ༻ݩ: https://blog.yfuku.com/entry/claw44
  19. ࣗ࡞Ωοτ঺հ : Fortitude60 ▶ ໊લ͕ಛ௃తͳΩοτ (ൢചαΠτ) • ΠΩϦϗϫΠτ • ΦλΫϒϥοΫ

    ▶ promicro Λ͔͍ͭͬͯͳ͍ ▶ وॏͳ USB Type-C • Type-C Λ͚ͭͨ promicro Ϋϩʔϯ΋ଘࡏ͸͍ͯ͠Δ (͚ͲرগͰׂߴ) Ҿ༻ݩ: https://booth.pm/ja/items/1071554
  20. ΩʔεΠον (1/3) ▶ ݱঢ়ɺීٴ͍ͯ͠Δͷ͸ҎԼͷ 2 छྨ? • Cherry MX (ࠨ)

    - υΠπ Cherry ࣾ − ಛڐ͕੾Ε͍ͯΔͨΊΫϩʔϯ͕͍ͬͺ͍͋Δ໛༷ (Gateron ౳) − ग़ճ͍ͬͯΔΩοτ͸΄ͱΜͲରԠ − ࠷ۙϩʔϓϩϑΝΠϧ͕ग़ͨ? ࢀߟ • Kailh ϩʔϓϩϑΝΠϧ (ӈ) - தࠃͷ Kaihua? − Cherry MX ͱ͸ޓ׵ੑ͕ͳ͍ (ରԠ͍ͯ͠Δج൘͕ඞཁ) ͷͰ஫ҙ͕ඞཁ ▶ Έͳ͞Μ͝ଘ஌ͷ௨Γɺ৭ʹΑͬͯԡ͠۩߹͕มΘΔ Ҿ༻ݩ: https://yushakobo.jp/shop/cherry-mx/, https://yushakobo.jp/shop/pg1350/
  21. ΩʔεΠον (2/3) ࣠ ΫϦοΫײ Ի ॏ͞ ਂ͞ ϐϯΫ࣠ ͳ͠ ͔ͣ͠

    ͔ΔΊ ੺࣠ ͳ͠ ;ͭ͏ ͔ΔΊ ஡࣠ ͋Γ ;ͭ͏ ;ͭ͏ ࠇ࣠ ͳ͠ ;ͭ͏ ͓΋Ί ੨࣠ ͋Γ ΧνΧν ͓΋Ί ۜ࣠ ઙΊ ࢀߟ: https://www.diatec.co.jp/products/CHERRY/ Ҿ༻: https://www.cherrymx.de/en/mx-original/mx-red.html
  22. ΩʔεΠον (3/3) ▶ ط੡඼Ͱ΋࣠͸બ΂Δ • ࣗ࡞ͩͱ഑ஔ͸ࣗ༝ࣗࡏ • খࢦपΓ͸ܰΊͷεΠονΛ഑ஔͨ͠Γ • enter

    key ͚ͩΧνΧνͤͨ͞Γ • ιέοτΛ෇͚͓͍ͯͯޙͰมߋͰ͖ΔΑ͏ʹͨ͠Γ Ҿ༻ݩ: https://yushakobo.jp/shop/a01ps/
  23. ϚΠίϯ ▶ Sparkfun ͕ࣾग़͍ͯ͠Δ Arduino ޓ׵Ϙʔυ • Atmel AVR •

    ͱͯ΋ίϯύΫτ͚ͩͲϐϯ਺͸݁ߏ͋Δ • Arduino ͷ IDE ͕࢖͑Δ • ఆՁ͸݁ߏ͓͔ͨΊʜʜ $19.95 ▶ Promicro ͷޓ׵඼Λ࢖͏ͷ͕ݱࡏͷओྲྀ • ͓΍͍͢ (Ϋϩʔϯ඼ͩͱ 500 ԁͱ͔ͰखʹೖΔ) • ৘ใ͕ଟ͍͘ɺΩʔϘʔυ FW ༻ͷ؀ڥ͕͋Δ (ޙड़) Ҿ༻: https://www.sparkfun.com/products/12640 https://yushakobo.jp/shop/promicro-spring-pinheader/
  24. ΩʔϚτϦοΫεճ࿏ ▶ ͕͢͞ʹΩʔϘʔυશͯͷΩʔΛΧόʔ͢Δ΄Ͳͷϐϯ਺͸ͳ͍ ▶ ΩʔϚτϦοΫεճ࿏Λͭͬͯ͘εΩϟϯ͢Δ • ྫ) 8 ϐϯͰ 16

    ΩʔΛ࢖͏৔߹ − col0, col1, col2, col3 ͱॱ࣍ Hi ʹ − ରԠ͢Δ row0, row1, row2, row3 ͷೖྗΛݟΔ − μΠΦʔυ͕ೖͬͯͳ͍ͱޡ൑ఆ͢Δ
  25. ෼ׂܕΩʔϘʔυ ▶ ෼ׂܕͷΩʔϘʔυͷҰൠతͳߏ੒ • ࠨӈ྆ํͷج൘ʹϚΠίϯΛࡌͤΔ − ͨͩ͠ɺUSB Λ઀ଓ͢Δͷ͸ยํ͚ͩ − ج൘ͷؒΛ

    3/4 ઢͷγϦΞϧ௨৴ͤ͞Δ • ௨৴ʹ͸ 3.5mm ϓϥάͷέʔϒϧ (ΦʔσΟΦͰΑ͘࢖͏ΞϨ) Λ࢖͏ͷ͕ݱࡏͷओྲྀ − TRS(3 ۃ: Ϟϊϥϧέʔϒϧ) − TRRS(4 ۃ: εςϨΦέʔϒϧ) • TRS ͷ৔߹͸௨৴࣌ʹૹड৴Λ੾Γସ࣮͑ͯࢪ͍ͯ͠Δ − VCC/GND Ͱ 2 ۃ࢖༻͢ΔͨΊ − ͔ͭͯ͸ TRRS ͷέʔϒϧ΍ΒδϟοΫ͕ೖखͮ͠Β͔ͬͨΒ͍͠? • ւ֎ͷΩʔϘʔυϛʔτΞοϓͰ͸͋·ΓΈ͔͚ͳ͍Β͍͠
  26. LED / OLED ▶ ΩʔϘʔυ͸֨޷ྑ͘ͳͯ͘͸͍͚ͳ͍!! ▶ LED • LED νοϓΛΩʔͷޙΖʹ͚ͭͯจࣈΛޫΒͤΔ

    • LED ςʔϓͰصΛޫΒͤΔ • LED νοϓͷ͸Μͩ෇͚͸ͪΐͬͱ೉қ౓ߴΊ ▶ OLED • I2C ͷ͓͍҆ OLED Λ͚ͭΔͷ΋ྲྀߦͬͯΔ • Ϟʔυঢ়ଶ΍ΩʔϘʔυͷϩΰΛදࣔͤ͞Δͷʹར༻ • Arduino ༻ͷϥΠϒϥϦ΋͋ΔͷͰ݁ߏ༡΂ͦ͏
  27. ΩʔϘʔυͷ૊Έཱͯʹඞཁͳ΋ͷ ▶ ඞਢ • ͸Μͩ (ૉ௚ʹԖೖΓΛ࢖͍·͠ΐ͏ɻ׵ؾ஫ҙɻ) • ͸Μͩͯ͝ (ԹௐՄೳͳ΋ͷ͕ϕλʔɻLED νοϓΛ෇͚ΔͳΒ΄΅ඞਢ)

    • ͸Μͩͯ͝୆ (ԚΕམͱ͠͸ਫΛ࢖Θͳ͍΍ͭͷํ͕ྑ͍) ▶ ४ඞਢ • ϥδΦϖϯν • χούʔ (μΠΦʔυ͕ૉࢠλΠϓͳΒඞਢ) • ϐϯηοτ (μΠΦʔυ΍ LED ͕νοϓλΠϓͳΒඞਢ) ▶ ਪ঑ • ςελʔ • ͸Μͩٵ͍औΓث (ٵ͍औΓઢ͸೉қ౓ߴΊ)
  28. Mint60 ૊Έཱͯ (1/4) ▶ ։෧!!

  29. Mint60 ૊Έཱͯ (2/4) ▶ ૊ΈཱͯΔͥ!!

  30. Mint60 ૊Έཱͯ (3/4)

  31. Mint60 ૊Έཱͯ (3/4) ▶ ࣮͸ͱΜͰ΋ͳ͘΍Β͔͍ͯ͠·͢

  32. Mint60 ૊Έཱͯ (3/4) ▶ ࣮͸ͱΜͰ΋ͳ͘΍Β͔͍ͯ͠·͢ ▶ ਖ਼͍͠खॱ: ج൘ˠΞΫϦϧ൛ˠΩʔεΠον

  33. Mint60 ૊Έཱͯ (3/4) ▶ ࣮͸ͱΜͰ΋ͳ͘΍Β͔͍ͯ͠·͢ ▶ ਖ਼͍͠खॱ: ج൘ˠΞΫϦϧ൛ˠΩʔεΠον ▶ όΧ:

    ج൘ˠΩʔεΠονˠΞΫϦϧ൛
  34. Mint60 ૊Έཱͯ (3/4) ▶ ࣮͸ͱΜͰ΋ͳ͘΍Β͔͍ͯ͠·͢ ▶ ਖ਼͍͠खॱ: ج൘ˠΞΫϦϧ൛ˠΩʔεΠον ▶ όΧ:

    ج൘ˠΩʔεΠονˠΞΫϦϧ൛ • όΧʮΩʔΩϟοϓ͸·Γѱ͍ʯ ʮΞΫϦϧΧόʔͰ͏·͘ڬΊͳ͍ʯ
  35. Mint60 ૊Έཱͯ (4/4) ▶ ٽ͖ͳ͕ΒΩʔεΠονΛ֎͢

  36. Mint60 ૊Έཱͯ (4/4) ▶ ٽ͖ͳ͕ΒΩʔεΠονΛ֎͢ ▶ ͰɺͳΜͱ͔׬੒͢Δ΋γϦΞϧ௨৴Ͱ͖ͣ

  37. Mint60 ૊Έཱͯ (4/4) ▶ ٽ͖ͳ͕ΒΩʔεΠονΛ֎͢ ▶ ͰɺͳΜͱ͔׬੒͢Δ΋γϦΞϧ௨৴Ͱ͖ͣ ▶ ͦΕͧΕʹ USB

    έʔϒϧૠͯ͠ӡ༻தʜʜ
  38. Mint60 ࢖͍৺஍ ▶ جຊϗʔϜϙδγϣϯ९क೿ͳͷͰҧ࿨ײগͳΊ • ࣗ෼͕ 6 ΛӈखͰ΋ࠨखͰ΋ଧͬͯΔࣄʹؾ෇͍ͨ (Mint60 Ͱ͸ӈखͷΈ)

    • εϖʔεΩʔ͸جຊӈख͕ͩɺΧʔιϧΩʔʹख͕͋ΔͱࠨखͰԡ͍ͯͨ͠ ▶ ݞڽΓ؇࿨Λظ଴͍͕ͯͨ͠ɺΉ͠Ζࠊ௧ʹޮ͍ͨ!!
  39. ϑΝʔϜ΢ΣΞͷΧελϚΠζ (1/4) ▶ ओͳࣗ࡞ΩʔϘʔυΩοτ͸ QMK Firmware Λར༻͍ͯ͠Δ • Atmel AVR

    ϚΠίϯ΍ ARM ͷΩʔϘʔυ༻ϑΝʔϜ • ୯७ͳઃఆϑΝΠϧΛॻ͚ͩ͘Ͱ৽ن FW Λ࡞ΕΔ • Mint60 ΍ Helix ͸ΞοϓετϦʔϜʹϚʔδࡁΈ ▶ Debian Ͱ࢖͏ʹ͸ % sudo apt install gcc unzip wget zip gcc-avr binutils-avr avr-libc \ dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi \ libnewlib-arm-none-eabi
  40. ϑΝʔϜ΢ΣΞͷΧελϚΠζ (1/4) ▶ ओͳࣗ࡞ΩʔϘʔυΩοτ͸ QMK Firmware Λར༻͍ͯ͠Δ • Atmel AVR

    ϚΠίϯ΍ ARM ͷΩʔϘʔυ༻ϑΝʔϜ • ୯७ͳઃఆϑΝΠϧΛॻ͚ͩ͘Ͱ৽ن FW Λ࡞ΕΔ • Mint60 ΍ Helix ͸ΞοϓετϦʔϜʹϚʔδࡁΈ ▶ Debian Ͱ࢖͏ʹ͸ % sudo apt install gcc unzip wget zip gcc-avr binutils-avr avr-libc \ dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi \ libnewlib-arm-none-eabi ▶ ͦͷޙҎԼͷΑ͏ʹϏϧυͰ͖Δ • (ػछ໊):(ΩʔϚοϓ໊) % make helix:default % make mint60:default
  41. ϑΝʔϜ΢ΣΞͷΧελϚΠζ (2/4) ▶ ΩʔͷೖΕସ͑౳͸؆୯ʹͰ͖Δ • keyboards/(ΩʔϘʔυ໊)/(ΩʔϚοϓ໊)/keymap.c ͷ഑ྻΛฤू͢Δ • ྫ) Helix

    ͷίʔυ * ,-----------------------------------------. ,-----------------------------------------. * | ‘ | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ’ | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | Shift| Z | X | C | V | B | [ | ] | N | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * |Adjust| Esc | Alt | GUI | EISU |Lower |Space |Space |Raise | KANA | Left | Down | Up |Right | * ‘-------------------------------------------------------------------------------------------------’ */ [_QWERTY] = LAYOUT( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ ADJUST, KC_ESC, KC_LGUI, KC_LALT, EISU, LOWER, KC_SPC, KC_SPC, RAISE, KANA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ ), ▶ layer ͱݺ͹ΕΔɺಉ࣌ԡ࣌͠ʹผͷΩʔΛׂΓ߹ͯΔํ๏΋࣮૷͞Ε͍ͯΔ • Helix ͷ৔߹ɺAdjust/Lower/Raise ͱ͍͏Ωʔ͕ͦΕʹ૬౰ • ۩ମྫ) “Lower” + “1” = “F1”, “Raise” + “l” / “;” = “PageUP” / “PageDown” • ΩʔͷػೳͰͳͯ͘΋Α͍ (LED ͷઃఆมߋ)
  42. ϑΝʔϜ΢ΣΞͷΧελϚΠζ (3/4) ▶ จࣈྻͷೖྗΛ͢ΔϚΫϩΩʔͷ࡞੒΋؆୯ • enum ͱϚΫϩΛఆٛ • ഑ྻΛมߋ enum

    macro_keycodes { KC_SAMPLEMACRO, KC_HASH_DEBIAN, /* ௥Ճ */ }; //Macros #define M_SAMPLE M(KC_SAMPLEMACRO) #define M_HASH_DEB M(KC_HASH_DEBIAN) /* ௥Ճ */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* தུ */ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_HASH_DEBIAN/* KC_LBR /* ޙུ */
  43. ϑΝʔϜ΢ΣΞͷΧελϚΠζ (4/4) ▶ Ωʔೖྗͷϋϯυϥʹ௥Ճ bool process_record_user(uint16_t keycode, keyrecord_t *record) {

    switch (keycode) { /* தུ */ case KC_HASH_DEBIAN: if (record->event.pressed) SEND_STRING("#debian #kansaidebian"); break; /* ޙུ */
  44. ·ͱΊ ▶ ࣗ࡞ΩʔϘʔυ • ෼཭ܕͱ͔ • ഑ྻͩͱ͔ΩʔεΠονʹ͍ͭͯ޷ΈΛߟ͑Δ • ࠷ॳ͸͋·Γ (ۃ୺ʹΩʔ͕গͳ͍ͱ͔)

    حൈͳΩʔϘʔυ͸ආ͚ͨํ͕ྑ͍ • ૊Έཱͯ͸νοϓ (LED/μΠΦʔυ) ͕ͳ͍ΩοτͰ͋Ε͹ͦ͜·Ͱ೉͘͠ͳ͍ − ಈ࡞֬ೝ͸Ϛϝʹ͠Α͏ (ܦݧऀஊ) • ΩʔϚοϓ͸ɺ݁ߏࢼߦࡨޡ͕ඞཁ
  45. .

  46. ..

  47. ...

  48. ͦΕͰ΋ຬ଍Ͱ͖ͳ͍ Ξφλ΁

  49. ਅͷEndgameΛ໨ࢦ͢ Ξφλ΁

  50. ϓϦϯτج൘ࣗ࡞खॱ

  51. to make the end of battle ▶ ஡൪͸ऴΘͬͯຊ୊ʹೖΓ·͢

  52. to make the end of battle ▶ ஡൪͸ऴΘͬͯຊ୊ʹೖΓ·͢ ▶ ͜͜·Ͱݟ͖ͯͯΘ͔ͬͨͱࢥ͍·͕͢

  53. to make the end of battle ▶ ஡൪͸ऴΘͬͯຊ୊ʹೖΓ·͢ ▶ ͜͜·Ͱݟ͖ͯͯΘ͔ͬͨͱࢥ͍·͕͢

    ▶ ׬ᘳͳΩοτ͕Έ͔ͭΒͳ͚Ε͹ Endgame ͸͋Γಘ·ͤΜ
  54. to make the end of battle ▶ ஡൪͸ऴΘͬͯຊ୊ʹೖΓ·͢ ▶ ͜͜·Ͱݟ͖ͯͯΘ͔ͬͨͱࢥ͍·͕͢

    ▶ ׬ᘳͳΩοτ͕Έ͔ͭΒͳ͚Ε͹ Endgame ͸͋Γಘ·ͤΜ Endgame ͷͨΊʹ ج൘͔Βࣗ࡞͠·͠ΐ͏(ࡨཚ)
  55. to make the end of battle ▶ ஡൪͸ऴΘͬͯຊ୊ʹೖΓ·͢ ▶ ͜͜·Ͱݟ͖ͯͯΘ͔ͬͨͱࢥ͍·͕͢

    ▶ ׬ᘳͳΩοτ͕Έ͔ͭΒͳ͚Ε͹ Endgame ͸͋Γಘ·ͤΜ Endgame ͷͨΊʹ ج൘͔Βࣗ࡞͠·͠ΐ͏(ࡨཚ) ▶ ͳ͓ɺ·ͩࢤ൒͹Ͱ͢
  56. PCB ͷઃܭ – ࢤ൒͹ (1/6) ▶ ࠷ۙ͸ݸਓͰ PCB(ϓϦϯτج൘) ͕ؾܰʹ࡞ΕΔΑ͏ʹͳ͖ͬͯͯΔ Β͍͠

    • seeed • ELECROW ▶ 10cmx10cm Ͱ͋Ε͹ɺ5 $͘Β͍Ͱͭ͘Εͯ͠·͏ • (ಉ͡) ج൘Λ 10 ຕ͘Β͍ͭͬͯͦ͘Ε͘Β͍ • Ή͠Ζૹྉͷํ͕ߴ͍Ͱ͢ (DHL ͱ͔ʹ͢Δͱ 20 $ͱ͔ʹͳΔ)
  57. PCB ͷઃܭ – ࢤ൒͹ (2/6) ▶ ઃܭʹ͸? • KiCad ͱ͍͏

    OSS ͕͋Δ • Linux/Mac/Windows ͲΕͰ΋ಈ͖·͢ • ެࣜ deb ΋͋ΔΑ!! % apt search ’^kicad$’ ιʔτத... ׬ྃ શจݕࡧ... ׬ྃ kicad/unstable,now 5.1.5+dfsg1-1 amd64 [ΠϯετʔϧࡁΈ] ిࢠճ࿏͓Αͼ PCB ઃܭιϑτ΢ΣΞ ▶ ࢀߟʹͳΔจݙ • KiCad 5.0 / 5.1 ೖ໳࣮शςΩετʰKiCad Basics for 5.xʱ • ࣗ࡞ΩʔϘʔυઃܭೖ໳
  58. PCB ͷઃܭ – ࢤ൒͹ (3/6) ▶ ·ͣ͸ճ࿏ਤΛͭ͘Γ·͢ • ΩʔϘʔυ༻ͷύʔπ (εΠονͱ͔

    promicro ͱ͔) • ʮࣗ࡞ΩʔϘʔυઃܭೖ໳ʯͷ࡞ऀ͕ KiCad ༻ϥΠϒϥϦΛެ։ͯ͘͠Εͯ·͢ • https://github.com/foostan/kbd − ద౰ͳ৔ॴʹ clone ͯ͠ʮγϯϘϧϥΠϒϥϦʔΛ؅ཧʯͰొ࿥͠·͠ΐ͏
  59. PCB ͷઃܭ – ࢤ൒͹ (4/6) ▶ ࣍ʹϑοτϓϦϯτΛؔ࿈෇͚·͢ • ϑοτϓϦϯτ΋ઌఔͷ৔ॴʹϥΠϒϥϦ͕ެ։͞Εͯ·͢ •

    ֤ύʔπ͝ͱʹϑοτϓϦϯτΛͲΕʹ͢Δ͔஍ಓʹબ୒͍͖ͯ͠·͢ − Cherry MX / Kailh ϩʔϓϩͷ྆ରԠͷϑοτϓϦϯτ΋͋Γ·͢
  60. PCB ͷઃܭ – ࢤ൒͹ (5/6) ▶ ࣍ʹϨΠΞ΢τΛ͍͖ͯ͠·͢ • ύʔπ͕ׯব͠ͳ͍Α͏ʹ஫ҙͯ͠ʜʜ •

    ൃදऀ͸ݱঢ়Ͱ͸͜͜Ͱྗਚ͖ͯ·͢ • ΩʔͷϨΠΞ΢τ༻ͷπʔϧ΋͋Δ − http://www.keyboard-layout-editor.com/
  61. PCB ͷઃܭ – ࢤ൒͹ (6/6) ▶ ͜ͷޙ͸ʜʜ • ΤοδΧοτઢΛҾ͘ •

    εϖʔαʔ༻ͷ݀Λ͚͋Δ • ഑ઢΛ࣮ࢪ͢Δ (Ұ൪େมΒ͍͠) • ඞཁʹԠͯ͡έʔεΛ࡞੒͢Δ − ΞΫϦϧ൘ΛՃ޻͢Δͷ͕ओྲྀ − ࠷ۙ͸ 3D ϓϦϯλ੎͕૿͍͑ͯΔΈ͍ͨʜʜ ▶ PCB σʔλ͕ެ։͞Ε͍ͯΔΩʔϘʔυͷվมΛ͢Δͱ͍͏ख΋͋Δ • Helix : https://github.com/MakotoKurauchi/helix • fortitude60: https://github.com/Pekaso/fortitude60
  62. ΩʔϘʔυ৘ใ ▶ ࠷ޙʹɺͲΜͳͱ͜ΖͰ৘ใΛಘΔͷ͕ྑ͍͔͝঺հ • ༡ࣷ޻๪ − ࣗ࡞ΩʔϘʔυઐ໳ళ! − ळ༿ݪ๚໰ͷࡍ͸ੋඇ (Ͳ͔ͬͪͱ͍͏ͱ຤޿ொͷ͕͍ۙ)

    • ϛʔτΞοϓܥ − ఱԼҰΩʔϘʔυΘ͍Θ͍ձ Vol.3 − ʲେࡕʳࣗ࡞ΩʔϘʔυ࡞੒ձ − ࣗ࡞ΩʔϘʔυೖ໳ϫʔΫγϣοϓ in γϦίϯϋ΢ε − γϦίϯϋ΢ε͞Μ͸࠷ۙΩοτ΋ஔ͖ͩͨ͠ • Youtube − ΄΅िץΩʔϘʔυχϡʔε
  63. ·ͱΊ (΍Γͳ͓͠) ▶ ࣗ࡞ΩʔϘʔυ • ෼཭ܕͱ͔ • ഑ྻͩͱ͔ΩʔεΠονʹ͍ͭͯ޷ΈΛߟ͑Δ • ࠷ॳ͸͋·Γ

    (ۃ୺ʹΩʔ͕গͳ͍ͱ͔) حൈͳΩʔϘʔυ͸ආ͚ͨํ͕ྑ͍ • ૊Έཱͯ͸νοϓ (LED/μΠΦʔυ) ͕ͳ͍ΩοτͰ͋Ε͹ͦ͜·Ͱ೉͘͠ͳ͍ − ಈ࡞֬ೝ͸Ϛϝʹ͠Α͏ (ܦݧऀஊ) • ΩʔϚοϓ͸ɺ݁ߏࢼߦࡨޡ͕ඞཁ ▶ PCB ͔Βͷࣗ࡞ • 10cmx10cm Ͱ͓ࢼ͢͠Δͷ͕Αͦ͞͏ • PCB σʔλͷ࡞੒ʹ͸ϑϦʔͷ KiCad ͕͔ͭ͑Δ
  64. Έͳ͞Μ΋ԹઘೖΓ·ͤ Μ͔?