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
600
[LT] Emacs 小指に足で対抗した話
社内 LT で自作フットペダルの話をしました。一部ネタはカットしています
zk-phi
July 06, 2018
Tweet
Share
More Decks by zk-phi
See All by zk-phi
[LT] 最近遊んだインディーゲーム
zk_phi
0
180
[LT] ちょっと賢く酒を飲む
zk_phi
0
250
[LT] 渋谷発おすすめ散歩ルート
zk_phi
0
220
[LT] ビールじゃない話
zk_phi
0
300
今週末できるお手軽ビアテイスティング
zk_phi
1
150
[LT] ビールが面白い話・2
zk_phi
1
380
[LT] 早押しクイズが楽しい話
zk_phi
0
230
[LT] ビールがおもしろい話
zk_phi
2
210
[LT] OpenSCAD でキーボード設計
zk_phi
0
740
Other Decks in Programming
See All in Programming
go test -json そして testing.T.Attr / Kyoto.go #63
utgwkk
1
160
FindyにおけるTakumi活用と脆弱性管理のこれから
rvirus0817
0
200
兎に角、コードレビュー
mitohato14
0
160
MCPで実現するAIエージェント駆動のNext.jsアプリデバッグ手法
nyatinte
7
980
Kiroの仕様駆動開発から見えてきたAIコーディングとの正しい付き合い方
clshinji
1
180
OSS開発者という働き方
andpad
5
1.4k
為你自己學 Python - 冷知識篇
eddie
1
300
Azure SRE Agentで運用は楽になるのか?
kkamegawa
0
600
Laravel Boost 超入門
fire_arlo
2
150
パッケージ設計の黒魔術/Kyoto.go#63
lufia
2
350
🔨 小さなビルドシステムを作る
momeemt
2
610
AHC051解法紹介
eijirou
0
640
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
GraphQLとの向き合い方2022年版
quramy
49
14k
BBQ
matthewcrist
89
9.8k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Navigating Team Friction
lara
189
15k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
The Cult of Friendly URLs
andyhume
79
6.6k
Thoughts on Productivity
jonyablonski
69
4.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
Speed Design
sergeychernyshev
32
1.1k
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