ポモドーロはじめました #M5Stack

どうもこんにちは、@yamacho1111 です。
最近注意力が散漫です。戦闘力はたったの5です。うそです。
周りにポモドーロ・テクニックを駆使しているメンバーがいるので、私もやってみようと思いました。

ポモドーロ・テクニックとは

「ポモドーロ・テクニックとは」でググると、強調スニペットで次のように表示されていました。

ポモドーロテクニックは、「25分(集中)・5分(休憩)・25分(集中)・5分(休憩)…」のリズムで仕事をするという、取り入れやすく、かつ、効果も絶大な仕事術・時間術です。

なるほどですね。効果絶大。
他にも色々ありそうですが、ひとまずこの言葉を信じます。

作りました

ということで、ポモドーロ・テクニックを実践するために、ポモドーロ・タイマーを自作しました。

f:id:yamacho1111:20190214050708p:plain

まずはデモをご覧ください。

25分の集中と5分の休憩を交互にカウントダウンし、表示するだけのデバイスです。

f:id:yamacho1111:20190214050806p:plain

Slackのメンションで集中できない問題

ポモドーロ・タイマーを試した結果、Slackのメンションが飛んでくるので全然集中できないことに気づきました。
話はそれますが、私の思い出に残る集中できないメンションあるあるを2つほどご紹介しておきます。

集中できないメンションあるあるその1

f:id:yamacho1111:20190214051822p:plain

Slackでの質問に回答。
しばらくしてメンション。なんだろう?と思って作業を中断して見てみると・・・

f:id:yamacho1111:20190214051835p:plain

お礼のメンションはいらないよ!

集中できないメンションあるあるその2

f:id:yamacho1111:20190214051853p:plain

メンション付きで声をかけて、用件を書き込み中。

f:id:yamacho1111:20190214051910p:plain

気になって、ずっと待っちゃったよ!

結局何が問題?

失礼しました。
結局根本的には何が問題なのかというと、ポモドーロ・タイマーを使っているだけでは他の人には集中していることが伝わらない事と、集中している時でもメンションを受け付けてしまっている事です。

改善しました

f:id:yamacho1111:20190214052121p:plain

まずはデモをご覧ください。(2回目)

おわかりいただけただろうか
具体的には、以下のようなことをおこなっています。

f:id:yamacho1111:20190214052235p:plain

基本は25分の集中と5分の休憩を交互にカウントダウンしているのですが、集中と休憩の切り替わりのタイミングで、Slackのステータスなどを変更するようにしています。
集中しているときはメンションを受け付けないように。他の人にも状況が伝わるように。

実際使ってみたところ、なかなかよいです。(小並感)

今後発生しそうな問題

Slack(オンライン)からの集中の中断はなくせましたが、おそらくオフラインでの直接的な話しかけが今後問題になるかなと感じます。そんなときはこうします。

f:id:yamacho1111:20190214052306p:plain

ポモドーロ・タイマーをディスプレイの上に置けば、きっと大丈夫なはずです。みんな気づいてくれます。
不十分であれば、LEDをぶっさして、チカチカさせてもよいのでは。

レシピ

自分用のメモとして、雑にレシピを書いておきます。
興味ある方は参考にしてみてください。

材料

M5Stack
320 x 240 TFTカラーディスプレイ、microSDカードスロット、スピーカーを備えたコンパクトで便利な開発モジュールです。
Wi-FiおよびBluetooth通信を扱え、Arduino環境での開発が可能です。
■microSDカード
M5Stackのディスプレイで表示する画像を格納しておくために使います。
そんなに容量は必要ありませんので、家に余ってるようなもので十分です。

Slack設定手順

Slack APIにアクセスし、「Create an App」ボタンをクリックします。

f:id:yamacho1111:20190212135231p:plain

「App Name」に任意のアプリ名(ここではPomodoroとします)、「Development Slack Workspace」に使用するSlackのワークスペースを入力し、「Create App」ボタンをクリックします。

f:id:yamacho1111:20190212135810p:plain

「Basic Informartion」の画面に切り替わります。
「Add features and functionality」の「Permissions」をクリックします。

f:id:yamacho1111:20190212132318p:plain

「OAuth & Permissions」の画面に切り替わります。
「Scopes」の「Select Permissions Scopes」から必要な権限を追加していきます。

f:id:yamacho1111:20190212140630p:plain

今回必要な権限は以下の4つです。

  • chat:write:bot
  • dnd:write
  • users:write
  • users.profile:write

4つすべて選択したあと、「Save Changes」ボタンをクリックします。

f:id:yamacho1111:20190212141334p:plain

セーブを終えたら、「OAuth & Permissions」の画面の一番上まで戻り、「Install App to Workspace」ボタンをクリックします。

f:id:yamacho1111:20190212142006p:plain

権限を承認します。
「Authorize」ボタンをクリックします。

f:id:yamacho1111:20190212142515p:plain

「OAuth Access Token」が生成されました。
こちらは後ほど使いますので、「Copy」ボタンをクリックしてコピーしておきましょう。

f:id:yamacho1111:20190212152358p:plain

Slackの自分のメンバーIDの取得手順

今回、Slackで自分に対してメンションを飛ばします。
そのために、自分自身のメンバーIDをコードに埋め込む必要がありますので、事前に取得しておきます。

Slack左上のワークスペース名の部分をクリックします。

f:id:yamacho1111:20190213164947p:plain

左側に表示されたメニューから、「Profile & account」をクリックします。

f:id:yamacho1111:20190213165134p:plain

右側に表示されたメニューから、「Edit Profile」の横にある「・・・」のボタンをクリックします。

f:id:yamacho1111:20190213165148p:plain

表示されたメニューから、「Copy member ID」をクリックし、メンバーIDを取得します。

f:id:yamacho1111:20190213165201p:plain

画像

M5Stackに挿し込むSDカードに、あらかじめ入れておく画像です。
以下の4つを使います。それぞれ右クリックで名前をつけて保存してください。

f:id:yamacho1111:20190213122253j:plain
break.jpg

f:id:yamacho1111:20190213122453j:plain
active.jpg

f:id:yamacho1111:20190213122336j:plain
break_wait.jpg

f:id:yamacho1111:20190213122511j:plain
active_wait.jpg

ソースコード

タイマー部分のコードは、以下の記事を参考にさせていただきました。

kawahara-ci.hatenablog.com

以下が、今回M5Stackに書き込むソースコードです。

gist05d35efc7e3d97e87983a5bb3fdfce98

レシピは以上です。

最後まで読んで頂いてありがとうございます。
興味がある方は、是非作ってみてください!