25日目の記事として、いろいろと手直しを行いました。25日、みなさんいかがお過ごしでしょうか。今年のクリスマスは、残念ながら25日が平日で、イブの日になんか次の日仕事じゃねえか!と悲しんだ方もきっと多かったはず。そこで今回は、時間がなくて会えないカップルや、まだクリスマスプレゼントあげてない!という人にぴったりな電子工作に挑戦します。何ができるかは最後のお楽しみだよ!購入するものラズペリーパイZeroの設定をしよう大人のモーターを電子工作に使えるようにするラズパイと大人のモーターをつなげるモーターを動かすシンプルなコード操作画面を作成するFlaskを準備するさきほどのdc_motor.pyを呼ぶ処理を書こう画面をつくろう最後に購入するもの今回、使うものは以下の通りです。大人のモーターラズパイZeroから、電池ケースについては、モーターを動かす際に必要となる一般的なキットだね。詳しく知りたい!っていう方は、以前、DCモーターを動かした記事があるのでこちらを見てね。www.tohuandkonsome.site大人のモーターについては、好きなものを購入しよう!自分はこんな感じのやつを購入しました。さあ、何ができるのかな!ラズペリーパイZeroの設定をしよう何はともあれ、まずはラズパイを用意しよう。いえ、ラズパイの初期設定については、こちらの記事にも書いたので、ここでは省略しちゃうよ。www.tohuandkonsome.sitePythonとラズパイのGPIOをコントロールするWiringPiまで使えるようなれば大丈夫!大人のモーターを電子工作に使えるようにするブレッドボードに接続しやすいように、ハサミでケーブルを途中で切っちゃうよ。カッターでビニール部分を削ると、プラスとマイナスの導線がでてきた。ちなみに行き当たりばったりでやってるから、ここでどうしよもなかったらこの企画は、ここで中止だったよ!ラズパイと大人のモーターをつなげるそしたら、ラズパイと大人のモーター、電池、モータードライバたちをブレッドボード上でつなげます。なんだかごちゃごちゃしているけれども、こんな感じでつなげてみたよ!写真には、DRV8835以外のモータードライバと、普通のDCモーターが写っているけれども、これは気にしないで大丈夫!最初にいろんなモータードライバーと、DCモーターでテストしてたんだ。モータードライバーの制御は、以下のサイトが一番わかりやすいです!英語なのでなんとなくしかわからないのですが、それでもなんとなくわかる、わかりやすさです!www.pololu.com今回は、シンプルなPHASE/ENABLEモードで設定を行っているよ!余談ですが、同じDRV8835でもピンの数が少ないやつがあったりして混乱したことがあります。モーターを動かすシンプルなコードとりあえずモーターが動くか確認します。DRV8835を使ったモータ制御うまくいけば、激しく動くはずです。操作画面を作成するコマンドラインからも動かせるのですが、せっかくなので、操作画面を用意しましょう。そのほうがきっと盛り上がるはずです!Flaskを準備する操作画面は、一番シンプルなpythonのWebフレームワーク「Flask」を使用します。ラズパイにさっそくFlaskをインストールします。Flaskインストールが終わったら、小さいWebアプリであるapp.pyを書こう。app.run(host='0.0.0.0')書き終わったら、さっそく起動してみよう。quit)無事、起動したかな?起動したら、PCで「http://ラズパイのIP:5000」にアクセスしてみよう。こんな画面が見れるはず。無事見れたら、Webアプリケーションを止める。さきほどのdc_motor.pyを呼ぶ処理を書こうそれでは、さきほどのdc_motor.pyを、app.pyと同じディレクトリに置こう。dc_motor.py次にapp.pyを修正します。app.run(host='0.0.0.0')ここでは、「/start」「/stop」それぞれにアクセスがあった場合、さきほどのクラス「DC_Motor_DRV8835」のモーターを回転させるstartメソッドと、止めるstopメソッドを呼ぶようにします。試しにこの段階で、「http://ラズパイのIP:5000/start」にアクセスすると、モーターが動きます。画面をつくろう最後に、シンプルな操作画面をhtml、css、javascriptでつくっちゃいましょう。完成イメージはこんな感じです。Herokuにもデプロイしました。https://sample-basic-css.herokuapp.com/sample/2/toggle3ただですね、スマホとかの小さい画面でみることを一切考慮していない残念な画面になってます。リソースを置くディレクトリをそれぞれ作成します。staticディレクトリ構成はこんな感じになるよ。templatesそうしたら、htmlファイルをtemplates配下に、cssとjavascriptをstatic配下に置きます。ついでにapp.pyのルートディレクトリにアクセスがあった場合(つまりトップ画面)の処理を以下のように修正します。#テンプレートエンジンを使うよ。デフォルトでtemplates配下を探しに行くよ。title="大人のモーター")それぞれのファイルはこんな感じにしました。id="right-label">とまる</label></div>また、以下のcssファイルもstaticディレクトリ配下に置きます。border-right:0;}/*疑似要素afterを右のラベルの上にかぶせる。});画面に関しては、CodePenで素敵なトグルボタンを探していたのですが、シンプルなトグルという言葉を信じて見てたのですが、ある程度理解するのにものすごく時間がかかりました。HTMLとCSSになんだかとても苦手意識があります。»プロフィール30歳からWebやらなんやらを学び始めた人のブログです。(4)検索はてなブログをはじめよう!konoemarioさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。