Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
[LT] Emacs 小指に足で対抗した話
Search
zk-phi
July 06, 2018
Programming
0
620
[LT] Emacs 小指に足で対抗した話
社内 LT で自作フットペダルの話をしました。一部ネタはカットしています
zk-phi
July 06, 2018
Tweet
Share
More Decks by zk-phi
See All by zk-phi
[LT] 最近遊んだインディーゲーム
zk_phi
0
190
[LT] ちょっと賢く酒を飲む
zk_phi
0
260
[LT] 渋谷発おすすめ散歩ルート
zk_phi
0
240
[LT] ビールじゃない話
zk_phi
0
310
今週末できるお手軽ビアテイスティング
zk_phi
1
160
[LT] ビールが面白い話・2
zk_phi
1
390
[LT] 早押しクイズが楽しい話
zk_phi
0
240
[LT] ビールがおもしろい話
zk_phi
2
220
[LT] OpenSCAD でキーボード設計
zk_phi
0
780
Other Decks in Programming
See All in Programming
AIコーディングエージェント(Manus)
kondai24
0
200
dotfiles 式年遷宮 令和最新版
masawada
1
800
マスタデータ問題、マイクロサービスでどう解くか
kts
0
110
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
130
大体よく分かるscala.collection.immutable.HashMap ~ Compressed Hash-Array Mapped Prefix-tree (CHAMP) ~
matsu_chara
2
220
AIコーディングエージェント(skywork)
kondai24
0
190
手が足りない!兼業データエンジニアに必要だったアーキテクチャと立ち回り
zinkosuke
0
780
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
860
Go コードベースの構成と AI コンテキスト定義
andpad
0
130
開発に寄りそう自動テストの実現
goyoki
2
1.3k
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
420
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
10
2.5k
Featured
See All Featured
Building an army of robots
kneath
306
46k
Agile that works and the tools we love
rasmusluckow
331
21k
Rails Girls Zürich Keynote
gr2m
95
14k
How to Talk to Developers About Accessibility
jct
1
81
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
61
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.3k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
390
Believing is Seeing
oripsolob
0
11
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
How STYLIGHT went responsive
nonsquared
100
6k
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