jupyter notebookでなんちゃってGUI

どうもはとバスです.最近は大学の研究室にいることが多いです.

今回は研究室でやったことについてです.

現在やっているのは自動車の自動走行です.

大学のレーザーカッターや3Dプリンターを使って,ある程度は車体ができたので,これからは実際に走行させ,データを収集するというところまで来ています.

そこでやろうとしたのがjupyter notebookを使用したコントロールです.

jupyter notebookに入っているのはpythonです.

pythonでよく使われるGUIツールの開発は,Tkinterというツールです.

これを使えばすぐにGUIツールを作ることができ.ボタンやスライダもすぐに作成できます.

さっそくこれを使ってコントローラを作ろうとしましたが.壁がありました.

jupyter notebookというのはssh接続でraspberry piと接続しています.

sshでは,原則ではGUIを飛ばしてくることはできず,エラーが出てしまいます.

そのために,他のライブラリを使用する必要がありました.

そこで出てくるのが, ipywidgets というライブラリです.

ipywidgetsって何よ

という話があります.そもそもこれは何かという話なのですが.jupyter notebookでインタラクティブGUIを作成できます.

作成できるものとしては,ボタンやスライダや入力フォームなどを作成できます.

これが動くのはjupyter notebook上なので,Tkinterのように,GUIの画面を飛ばしてくる必要がなくなります.

これを使用することで,Raspberry piを同一LAN上で制御し,なおかつそれっぽいGUIを使用することができます.

ipywedgetsのドキュメントはこちら,ここを見れば一通り使うことはできると思います,

僕がまとめたipywedgetsのgithubこちら,ここで一から解説するとなると修羅の道になると思うので,参考までにこちらをご覧ください.

ちなみに,これを使って,僕はラジコンのコントローラーを作成しました.

こちらがその動画です.