旅する情報系大学院生

旅と留学とプログラミング

Microsoft imagine cupに出しました

阪大の人からお誘いを受け、4人のチームでMicrosoft imagine cupに作品を出しました。
作ったものは、パソコンのディスプレイの上にミクのネンドロイドが乗って、疲れた顔やタイピングの速度が落ちているのを検知するとミクが動いたり話したりして気分転換してくれる、というロボットです。

youtu.be

(顔出さないためとっても短い動画です)


全体の仕組みはこのようになっています

f:id:yamaguchi_1024:20160528171447p:plain
f:id:yamaguchi_1024:20160528171457p:plain
f:id:yamaguchi_1024:20160528171519p:plain

主に担当したのはキー入力の速度を検知する部分で、得られた知見としてWindowsAPIの知識とセマフォがあります。

gist.github.com

バックグラウンドで動作しててもキー入力を取得しないと意味がないので、いろいろAPIを調べた結果GetKeyStateという関数を仮想キーの数である256回回す方法が上手くいきました。
一つのプログラム内でグローバル変数が同時に書き変わる事態を避けるため、セマフォを使いました。