Cookpad Spring 1day Intern 自作キーボードコースに参加しました

Cookpad Spring Intern 自作キーボードコースに参加してきたので、その記録です。

f:id:cameremon84:20190321021254j:plain

 

 

参加した経緯

誰かに促されたわけではなく、Twitterで告知ツイートが流れてきたので応募しました。

てかこんなん流れてきたら条件反射で応募しちゃうよね。

エントリーシート代わりのGoogleフォームに回答して放置してたら無事通過。やったね。

エントリーはかなり多かったみたいで、

 なんかこんなことになっており、最終的に蓋を開けてみたら 受講者 & 講義のレベル爆上げになっており、魔窟だった。

魔窟情報です。

f:id:cameremon84:20190321003451j:image

僕が今までに行ったインターンでは一番受講者側のレベルが高かった気がする。

あと、応募フォームは熱意を持ってしっかり書こうね。僕は熱意を込めて書きました。

あと、講師情報です。

f:id:cameremon84:20190321003514j:image

 

もーいーくつ寝ーるーと、イーンーターーンー♪

インターン選考通過通知のメールがきたんですけど、通過できたやったーってしてメールをよく読んでいなかったら、実は返信必須のメールだったみたいで、放置するとインターンこれないよみたいな旨が書いており、それに気付かずそのままにしていたら、本当に参加しないの??みたいな催促メールが来て最速でメールを返しました(ここで抱腹絶倒)(講師リスペクト)

そんなこんなでしばらくすると、事前準備資料が届いていたのでやっていき。

Cookpad Spring 1day Internship 2019 自作キーボードコース 事前準備手順書 · GitHub

僕はこれがRustデビューだったので、適当にこれをやっていきました。

doc.rust-jp.rs

いわゆるTRPLです。Rustなんもわからんになりました。

KiCADデビューも果たしました。これで123D,Fusion360,Rhinocerosに次いで4つ目のCADに触れることになります。

 

イの幕開け

えーまず開幕遅刻しました。すみませんでした。

インターンは、まず講師 & TA & 受講生の簡単な自己紹介から始まりました。なんか自作キーボードの作り方を教わりに来てるのに、自作キーボード作ったことある人ばっかりだったのでツッコミを受けててウケた。

自己紹介が終わると、机の上に並べられたパーツの説明とかそのパーツを回路図で書くときに使われる図の説明とかが始まりました。

の間にもらったステッカーをPCに貼り付けたりしていました。

それが終わると、そのパーツの中に入っていた白のPCBに書かれたパターンを目で見て紙に回路図を写経するワークが始まりました。

回路は簡単な2x3のキーマトリクスの回路で片面PCBだったので特に写経に苦労することはなかったです。

次に、ここで書いた手書き回路をKiCADでおこして、実際に回路の配置までして、それぞれ思い思いの「ぼくのかんがえたさいきょうの6鍵キーボード」を作っていました。

ここで午後1時になり午前の部が終了しました。

 

らんち

お昼ご飯はカレーを食べました。さすがCookpad様、美味しかったです。

このインターンは元々エンジニアではなく人事部の偉い人が考えたものらしいことを昼食中に聞きました。自作キーボード好きの人事がいる会社。さすが〇〇padを名乗るだけはある。

hikaliumさんとちょっとだけ技術書典トークをしました。

お昼ご飯が終わり会場に戻ってから午後の部が始まるまでの間は、みんなの自作キーボード展覧会が開催されていました。

全キーがEscキーのキートップになってる発狂したVimmerみたいな自作ラップトップとかもあってなかなかコアだった。

 

そして舞台は午後の部へ

昼からは、もらったパーツを実際にPCBに実装する作業に移っていくんですが、その前にキースイッチの仕組みの解説のためにみんなで分解していました。のちに判明するんですが、実はこのとき受講生の中で僕一人だけ非可逆分解(破壊)をしていました。

いい感じにはんだ付けが終わって、Lチカとか動作確認が終わると、ついにやってきました。自作ファームウェアのお時間です。

正直これが目当てで来たのでワクワクだった。

当日の講義資料はgithubで公開されています。

github.com

まずはUSBの仕様と規格の説明が入って、一同ポカーンとしていた(でも早口だったけど分かりやすかった)

そんななか、hikalium先生だけはウンウン頷きながら話を聞いていて、やっぱりすごいなぁとなるなど。

とりあえず「USB3.0 設計のすべて」をほしい物リストに追加しました。各位お願いします。

USBについてはざっくりさらった程度なので、このへんとかこのへんを読んで理解を深めたいね。

そんなこんなでどんなファームウェアを書けばよいか分かってきたところで、aだけ入力できるキーボードが出来上がり、そこからは各自queueを実装したり、入力できるキーを増やしたりしていました。

おわり。

 

俺たちのインターンはまだ始まったばかりだ

というわけでまだ終わりませんでした。

サイゼリヤ 恵比寿駅東口店という高級イタリアンが食べられるお店で渾身の会を開きました。

15人の参加者のうち11人が懇親会に来ていて、こいつらほんまに情報系か?になってた。講師の @KOBA789 さんも加わって、12人で飲み食いをした。

なんかメモリを使ったPLDの話とかDBの話とか筑波のWORDの話とか人材輩出言語OCamlの話とかをした。難しくてあんまりついていけませんでした。専門外の話むずかしいね。

 

感想

楽しかったです(小並感)

強いて言うなら、序盤の回路の説明とかどうせ全員既知の情報だったと思うので、それよりもUSBの話をもう少し濃くしてもらえると良かったのかもしれないけど、KiCADの知見がたまったり、キースイッチの仕組みが知れたり、ちょこちょこ知らない情報もあったので、それはそれで良かったです。

もう少しUSBについて詳しくなったら、配布されたファームウェアGolangで移植したいと思います。