t_kahi’s blog

KNIMEやCellProfiler、創薬に関する記事と,日々のメモです

【KNIME】日々のworkoutを記録・Tweetして筋トレのモチベーションを高める

こんにちは,@PKです.

初めに

みなさん筋トレ好きですか?

最近は在宅勤務だったので、体がなまらないように家でできる筋トレをするのを日課にしていました.
GWまでは30日チャレンジをやっていて楽しかったのですが、それが終わったあと何をしようか…と考えた結果、プリズナートレーニングを再開することにしました.

筋トレってなかなか続かないのですが、自分の場合は記録をきちんとつけると比較的長続きすることが経験的にわかっています. あと、筋トレした結果をTwitterに呟くと、さらにモチベーションが高まることも経験的によくわかっています.

と、いうわけで筋トレの記録をつけて、Twitterに投稿し、ちょこっと可視化するKNIME workflowを作ったので紹介します.

リズナートレーニングとは

いわゆる自重トレーニングです.
詳細はこちら.
www.t-kahi.com

Big6と呼ばれる6つのトレーニングについて、細かくレベルが分かれています.
少しずつステップアップしながら筋肉を鍛えるプログラムになっています(STEP10は超人レベルです).

f:id:t_kahi:20200509181039p:plain:w400

workoutを記録するKNIME workflow

workflow概要

Workflowは以下のように、3つのパートに分かれています.

  1. workout registration workflow
  2. twitter post workflow
  3. workout visualization

f:id:t_kahi:20200509174336p:plain

それぞれを簡単に紹介します.

workout registration workflow

f:id:t_kahi:20200509175422p:plain:w300

workoutの登録workflowですが、勉強がてらSQLiteというデータベースに登録することにしました.
今までデータベース=大変、難しいものと思っていたのですが、SQLiteというのは比較的扱いそうだった(Macには初めから導入されていた!)ので、試しに使ってみました.

本当に素人なので、まずはGUIのDB Browser for SQLiteをインストールして新しいデータベースを作りました.

qiita.com

KNIMEには、DB連携のノードもたくさんあるので、以下のexample workflowを参考にしながらSQlite connecterでデータベースへのアクセスをしました.

nodepit.com

実際にどのように登録をするかというと、上図の左上の「component」ノードのinteractive viewを使います. 実行すると、以下のように、いつ、どのトレーニングを何セット実行したかを入力することができます. f:id:t_kahi:20200509175740p:plain

実際には以下のように、workoutを入力すると記録が表として出力されます.
f:id:t_kahi:20200509180617g:plain

あとは「DB insert」ノードを使ってデータベースに登録をするだけです!簡単!

ちなみにcomponentの中身はぐちゃぐちゃです…
f:id:t_kahi:20200509184458p:plain:w400

twitter post workflow

f:id:t_kahi:20200509182349p:plain:w300

筋トレしたら結果をTwitterで呟きたいですよね!

KNIMEはTwitter APIを使って投稿したり、データを収集できるノードが多く用意されています
f:id:t_kahi:20200509101028p:plain:w400

KNIMEでどんなことができるかは、下記を参考にしてください.
@KNIME Twitter Nodes | KNIME
TwitterとMicrosoft Azureを使ったAPIによる感情分析 | KNIME(インフォコム)

まずは、TwitterAPI登録をする必要があります.
Twitter API 登録 (アカウント申請方法) から承認されるまでの手順まとめ ※2019年8月時点の情報 - Qiita

登録が終わったら、以下の「Twitter API connector」ノードに「Consumer API Keys」と「アクセストークン情報」を入力して準備完了です.
f:id:t_kahi:20200509182702p:plain:w600

実際に呟くと、以下のように投稿されるようにしました.
f:id:t_kahi:20200509182943p:plain:w400 f:id:t_kahi:20200509183036p:plain:w400

これで毎回手打ちする必要がなくなりましたね!

workout visualization

f:id:t_kahi:20200509183426p:plain:w400

せっかくDBに登録したので、たまに進捗とかを確認したくなります.
やっつけの可視化をKNIMEのvisualizationとR viewノードで作成しました.

カレンダー形式の図で日々の記録を確認するのと、パイチャート(偏りなく筋トレできているか確認)、表を用意しました. f:id:t_kahi:20200509183647p:plain

componentの中身はもう少しブラッシュアップさせます…
f:id:t_kahi:20200509183947p:plain:w500

終わりに

GWの自由研究として取り組みました. 筋トレとKNIMEの勉強は忙しくなっても続けたいですね…!