Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
[LT] Emacs 小指に足で対抗した話
Search
zk-phi
July 06, 2018
Programming
0
550
[LT] Emacs 小指に足で対抗した話
社内 LT で自作フットペダルの話をしました。一部ネタはカットしています
zk-phi
July 06, 2018
Tweet
Share
More Decks by zk-phi
See All by zk-phi
[LT] 最近遊んだインディーゲーム
zk_phi
0
160
[LT] ちょっと賢く酒を飲む
zk_phi
0
230
[LT] 渋谷発おすすめ散歩ルート
zk_phi
0
200
[LT] ビールじゃない話
zk_phi
0
280
今週末できるお手軽ビアテイスティング
zk_phi
1
130
[LT] ビールが面白い話・2
zk_phi
1
350
[LT] 早押しクイズが楽しい話
zk_phi
0
210
[LT] ビールがおもしろい話
zk_phi
2
190
[LT] OpenSCAD でキーボード設計
zk_phi
0
690
Other Decks in Programming
See All in Programming
Better Code Design in PHP
afilina
0
190
たのしいSocketのしくみ / Socket Under a Microscope
coe401_
8
1.5k
iOSでQRコード生成奮闘記
ktcryomm
2
150
Drawing Heighway’s Dragon- Recursive Function Rewrite- From Imperative Style in Pascal 64 To Functional Style in Scala 3
philipschwarz
PRO
0
190
CDKを使ったPagerDuty連携インフラのテンプレート化
shibuya_shogo
0
130
良いコードレビューとは
danimal141
10
9.5k
未経験でSRE、はじめました! 組織を支える役割と軌跡
curekoshimizu
1
230
もう一人で悩まない! 個の知見をチームの知見にする3つの習慣と工夫 / Into team knowledge.
honyanya
3
250
Visual StudioのGitHub Copilotでいろいろやってみる
tomokusaba
1
240
dbt Pythonモデルで実現するSnowflake活用術
trsnium
0
290
Django NinjaによるAPI開発の効率化とリプレースの実践
kashewnuts
1
310
LINE messaging APIを使ってGoogleカレンダーと連携した予約ツールを作ってみた
takumakoike
0
150
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Six Lessons from altMBA
skipperchong
27
3.6k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
How to Ace a Technical Interview
jacobian
276
23k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.6k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
134
33k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.3k
Designing for humans not robots
tammielis
250
25k
Transcript
&NBDT খࢦʹͰର߅ͨ͠ ![LQIJ
&NBDT খࢦʹͰର߅ͨ͠ IUUQXXXHBSJOJPSTJUPCFUUFSEFW
খࢦ͕௧͍ͳΒɺ Ͱ౿Ί͍͍͡ΌΜ ఱ ࠽ ͔
Ϩγϐ ࡐྉ ΤϑΣΫλʔͱ͔ͷϑοτϖμϧ ϞϊϥϧδϟοΫ "SEVJOP6/0 ߅ -&% ݸ ݸ ݸ
ຊ దྔ
ճ࿏Λ࡞Δ
ϓϧμϯ߅
㱨 ճ࿏ͷσβύλ
7 7 3 ϓϧμϯ߅
7 7 0VUQVU 3 ϓϧμϯ߅
4XJUDI0GG 3 7 7 0VUQVU7
4XJUDI0O 7 7 0VUQVU 7
ϓϧμϯ߅͕ͳ͍ͱʜ
4XJUDI0O 7 7 0VUQVU 7
4XJUDI0GG 7 7 0VUQVUʁʁ
4XJUDI0GG 3 7 7 0VUQVU7
ϑοτϖμϧΛͭͳ͙
ϑοτϖμϧͷΠϯλʔϑΣʔε
None
(/% 0VUQVU
0VUQVU (/%
7 7 0VUQVU 3
7 7 0VUQVU7 3
7 7 0VUQVU 7
7 7 0VUQVU 7
None
ϖμϧͷ 0/0''͕औಘͰ͖ͨ
1$ʹͭͳ͍͗ͨ
ˣ 6 4#
Ոͷๅ "SEVJOP
$ ͬΆ͍ ϓϩάϥϜͰ ϚΠίϯΛ 64#੍ޚͰ͖Δͭ ˡ ϚΠίϯ "73
ίʔυΛॻ͘
#define THRESHOLD 700 uint8_t key_ctrl[8] = { 0, 0, 0xe0,
0, 0, 0, 0, 0 }; uint8_t key_none[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; void setup () { Serial.begin(9600); } void loop () { static int pressed = 1; int input = analogRead(5); if (pressed && input < THRESHOLD) { Serial.write(key_none, 8); pressed = 0; } else if (!pressed && input1 > THRESHOLD) { Serial.write(key_ctrl, 8); pressed = 1; } }
#define THRESHOLD 700 uint8_t key_ctrl[8] = { 0, 0, 0xe0,
0, 0, 0, 0, 0 }; uint8_t key_none[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; void setup () { Serial.begin(9600); } void loop () { static int pressed = 1; int input = analogRead(5); if (pressed && input < THRESHOLD) { Serial.write(key_none, 8); pressed = 0; } else if (!pressed && input1 > THRESHOLD) { Serial.write(key_ctrl, 8); pressed = 1; } }
#define THRESHOLD 700 uint8_t key_ctrl[8] = { 0, 0, 0xe0,
0, 0, 0, 0, 0 }; uint8_t key_none[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; void setup () { Serial.begin(9600); } void loop () { static int pressed = 1; int input = analogRead(5); if (pressed && input < THRESHOLD) { Serial.write(key_none, 8); pressed = 0; } else if (!pressed && input1 > THRESHOLD) { Serial.write(key_ctrl, 8); pressed = 1; } }
#define THRESHOLD 700 uint8_t key_ctrl[8] = { 0, 0, 0xe0,
0, 0, 0, 0, 0 }; uint8_t key_none[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; void setup () { Serial.begin(9600); } void loop () { static int pressed = 1; int input = analogRead(5); if (pressed && input < THRESHOLD) { Serial.write(key_none, 8); pressed = 0; } else if (!pressed && input1 > THRESHOLD) { Serial.write(key_ctrl, 8); pressed = 1; } }
"SEVJOP*%&Ͱ ΫϩείϯύΠϧˍసૹ
None
ͱࢥ͍͖
"SEVJOPΩʔϘʔυͱͯ͠ ೝࣝ͞Εͳ͍ ΦοεɺΦϥ EFWUUZ64#
γϦΞϧϙʔτΛࢹ ͢Δπʔϧॻ͘ʜʁ ͳΜ͔μα͍
"SEVJOPͷϑΝʔϜ ॻ͖͑Ε͍͍͡ΌΜ ఱ ࠽ ͔
"SEVJOPʹ 64#)*%ΒͤΔ
λʔήοτ "SEVJOPୈೋͷϚΠίϯ 64#⁵γϦΞϧมˠ
ઌਓ͕͍ͨͷͰഈआ
Arduino を DFU モードに ここをショート
EGVQSPHSBNNFSͰম͘ $ brew install dfu-programmer $ dfu-programmer atmega16u2 erase $
dfu-programmer atmega16u2 flash Arduino-keyboard-0.3.hex $ dfu-programmer atmega16u2 rest
None
Ͱ
2&NBDT খࢦ ྑ͘ͳͬͨͷʁ
"ࠨ͕௧͍
·ͱΊ
·ͱΊ FNVMBUJPOϓϥάΠϯΛೖΕΔͱศར ɾWJNPEFʜϏϧτΠϯ EFQSFDBUFE ɾWJNNPEFʜϏϧτΠϯ ɾWJQFSNPEFʜϏϧτΠϯ ɾFWJMNPEFʜIUUQTHJUIVCDPNFNBDTFWJMFWJM ɾTQBDFNBDT ʜIUUQTHJUIVCDPNTZMCOSTQBDFNBDT ɾHPENPEFʜIUUQTHJUIVCDPNDISJTEPOFHPENPEF
ͪͳΈʹ
౿Ή $USM[ͱͯ͠ σβΠφʔͷ੮Ͱ͕Μ͍ͬͯ·͢
5IBOLZPV Πϥετ͍Β͢ͱ QJYBCBZ GSJU[JOH