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はこちら,ここで一から解説するとなると修羅の道になると思うので,参考までにこちらをご覧ください.
ちなみに,これを使って,僕はラジコンのコントローラーを作成しました.
こちらがその動画です.
再び進捗です pic.twitter.com/qN4CsHXIPo
— 飛ばすはとバス (@flying_hato_bus) 2017年5月29日