{"componentChunkName":"component---src-templates-post-template-js","path":"/posts/raspberrypi-motordriver","result":{"data":{"markdownRemark":{"id":"3e18f3c1-f638-586e-913b-e152d8a0853f","html":"<p>最近友人と電子工作を色々やってみようという話になり、分かりやすいテーマとして「Raspberry Pi でおもちゃの車を自動走行させる」というのを目指すことになりました。</p>\n<p>最初の段階として、まずはモータドライバを使っておもちゃの車を走らせるところまで進めたので、やったことをまとめます。</p>\n<p>同じことに挑戦する方のため、何を購入したのかも具体的に書いていきます。</p>\n<h2 id=\"raspberry-pi-の用意\" style=\"position:relative;\"><a href=\"#raspberry-pi-%E3%81%AE%E7%94%A8%E6%84%8F\" aria-label=\"raspberry pi の用意 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Raspberry Pi の用意</h2>\n<p>まずは何より Raspberry Pi と最低限の周辺機器が必要です。</p>\n<p>1 つ 1 つ探すと手間だったので、以下のキットを購入しました。</p>\n<ul>\n<li><a href=\"https://amzn.to/33MIaI0\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">TRASKIT Raspberry Pi 4 Model B Starter Kit</a></li>\n</ul>\n<p><a href=\"https://www.amazon.co.jp/gp/product/B08BFZ7PXS/ref=as_li_ss_il?ie=UTF8&linkCode=li1&tag=oshimayuki0d-22&linkId=8d3b1deabdb01f86f4997e14359d7cba\" target=\"_blank\"><img border=\"0\" src=\"//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B08BFZ7PXS&Format=_SL110_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=oshimayuki0d-22\" ></a><img src=\"https://ir-jp.amazon-adsystem.com/e/ir?t=oshimayuki0d-22&amp;l=li1&amp;o=9&amp;a=B08BFZ7PXS\" width=\"1\" height=\"1\" border=\"0\" alt=\"\" style=\"border:none !important; margin:0px !important;\"></p>\n<p>入手したら、ディスプレイ、キーボード、マウスなどと接続し、初期設定をしてしまいましょう。</p>\n<p>もしも電子工作や Raspberry Pi 自体あまり自信がない場合、参考になる書籍としては以下のものが結構良かったです。</p>\n<ul>\n<li>『<a href=\"https://amzn.to/2TGOaAk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">これ1冊でできる! ラズベリー・パイ 超入門</a>』</li>\n</ul>\n<p><a href=\"https://www.amazon.co.jp/dp/B084SW6YRW/ref=as_li_ss_il?ie=UTF8&linkCode=li1&tag=oshimayuki0d-22&linkId=ca17b6ec5d8dd8add810b9ba63f08487&language=ja_JP\" target=\"_blank\"><img border=\"0\" src=\"//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B084SW6YRW&Format=_SL110_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=oshimayuki0d-22&language=ja_JP\" ></a><img src=\"https://ir-jp.amazon-adsystem.com/e/ir?t=oshimayuki0d-22&amp;language=ja_JP&amp;l=li1&amp;o=9&amp;a=B084SW6YRW\" width=\"1\" height=\"1\" border=\"0\" alt=\"\" style=\"border:none !important; margin:0px !important;\"></p>\n<p>この本は初心者向けで、最初のセットアップから手厚く書かれています。</p>\n<p>モータで扇風機を回す例もあるので、今回やりたいことの参考にするにも丁度良いです。</p>\n<h2 id=\"車体キットの用意\" style=\"position:relative;\"><a href=\"#%E8%BB%8A%E4%BD%93%E3%82%AD%E3%83%83%E3%83%88%E3%81%AE%E7%94%A8%E6%84%8F\" aria-label=\"車体キットの用意 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>車体キットの用意</h2>\n<p>車体として何が良さそうか調べていたところ、以下の記事のようにラジコンカーを改造する例もありました。</p>\n<ul>\n<li><a href=\"https://qiita.com/Google_Homer/items/7cfc7496a897fdad7cdf\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">たぶん最安、オモチャのRCカーを利用し2800円でDonkey AI Carの車体をつくる方法</a></li>\n</ul>\n<p>Donkey AI Car も気になっており、とても参考になりそうな記事です。</p>\n<p>こちらの記事では 2800 円と書かれている「<a href=\"https://amzn.to/3okce7B\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">バクソーハー ガンマ</a>」ですが、Amazon で調べると 4980 円となっており、思っていたより少し高額でした。</p>\n<p><a href=\"https://www.amazon.co.jp/dp/B079BNM2RZ?&linkCode=li1&tag=oshimayuki0d-22&linkId=5ebbee2dfc52469a086399de163b51c2&language=ja_JP&ref_=as_li_ss_il\" target=\"_blank\"><img border=\"0\" src=\"//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B079BNM2RZ&Format=_SL110_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=oshimayuki0d-22&language=ja_JP\" ></a><img src=\"https://ir-jp.amazon-adsystem.com/e/ir?t=oshimayuki0d-22&amp;language=ja_JP&amp;l=li1&amp;o=9&amp;a=B079BNM2RZ\" width=\"1\" height=\"1\" border=\"0\" alt=\"\" style=\"border:none !important; margin:0px !important;\"></p>\n<p>今回はなるべく費用をおさえつつやっていきたいということもあり、2000 円程度で購入できる以下の車体キットを使うことにしました。</p>\n<ul>\n<li><a href=\"https://amzn.to/3tMOcTx\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">4輪駆動 スマートカー 車体キット</a></li>\n</ul>\n<p><a href=\"https://www.amazon.co.jp/dp/B0761XVVJT/ref=as_li_ss_il?ie=UTF8&linkCode=li1&tag=oshimayuki0d-22&linkId=f118d0f77f7eb7dfda1b2b0e72e178de\" target=\"_blank\"><img border=\"0\" src=\"//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B0761XVVJT&Format=_SL110_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=oshimayuki0d-22\" ></a><img src=\"https://ir-jp.amazon-adsystem.com/e/ir?t=oshimayuki0d-22&amp;l=li1&amp;o=9&amp;a=B0761XVVJT\" width=\"1\" height=\"1\" border=\"0\" alt=\"\" style=\"border:none !important; margin:0px !important;\"></p>\n<p>電子工作にあまり慣れていない自分たちでも、これを走らせるくらいはできそうだなという考えもあります。</p>\n<p>手元に届いたら、まずは電池に直接繋いで、モータが回転することを確認します。</p>\n<center>\n  <video width=\"320\" height=\"240\" controls>\n    <source src=\"/media/run-motor-on-batteries.mp4\" type=\"video/mp4\">\n  </video>\n</center>\n<p>無事回転しました。</p>\n<p>ちなみにこのキットについているモータは、直流で回転するいわゆる「DC モータ」です。</p>\n<h2 id=\"raspberry-pi-でモータを回すときのポイント\" style=\"position:relative;\"><a href=\"#raspberry-pi-%E3%81%A7%E3%83%A2%E3%83%BC%E3%82%BF%E3%82%92%E5%9B%9E%E3%81%99%E3%81%A8%E3%81%8D%E3%81%AE%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88\" aria-label=\"raspberry pi でモータを回すときのポイント permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Raspberry Pi でモータを回すときのポイント</h2>\n<p>電池に直接繋いでモータを回せたら、次は Raspberry Pi 上のプログラムで回転を制御したいところです。</p>\n<p>Raspberry Pi でモータを回すときのポイントはいくつかあります。</p>\n<h3 id=\"ポイント-1-raspberry-pi-の電圧で回さない\" style=\"position:relative;\"><a href=\"#%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88-1-raspberry-pi-%E3%81%AE%E9%9B%BB%E5%9C%A7%E3%81%A7%E5%9B%9E%E3%81%95%E3%81%AA%E3%81%84\" aria-label=\"ポイント 1 raspberry pi の電圧で回さない permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>ポイント 1. Raspberry Pi の電圧で回さない</h3>\n<p>LED を光らせる「L チカ」では Raspberry Pi の GPIO で直接電圧をかけることが多いですが、モータを回す場合は必要な電流が大きくなるため、Raspberry Pi で直接電圧をかけるべきではありません。</p>\n<p>そこで「リレー」や「モータドライバ」を使うことになります。</p>\n<p>リレーを使うと、Raspberry Pi 側の電圧の ON/OFF をトリガーとして、モータ側の回路も ON/OFF できます。</p>\n<h3 id=\"ポイント-2-回転速度を制御するには、モータドライバでパルス変調する\" style=\"position:relative;\"><a href=\"#%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88-2-%E5%9B%9E%E8%BB%A2%E9%80%9F%E5%BA%A6%E3%82%92%E5%88%B6%E5%BE%A1%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%80%81%E3%83%A2%E3%83%BC%E3%82%BF%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%81%A7%E3%83%91%E3%83%AB%E3%82%B9%E5%A4%89%E8%AA%BF%E3%81%99%E3%82%8B\" aria-label=\"ポイント 2 回転速度を制御するには、モータドライバでパルス変調する permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>ポイント 2. 回転速度を制御するには、モータドライバでパルス変調する</h3>\n<p>しかし、リレーを使うだけではモータ側の回路は ON/OFF の 2 値をとるだけになります。</p>\n<p>回転速度を制御するには、モータドライバを使うことになります。</p>\n<p>そもそも、Raspberry Pi の GPIO は 0V と 5V の電圧を ON/OFF することしかできません。</p>\n<p>その中間の電圧を表現したいときは、非常に細かいサイクルで電圧を ON/OFF する、「パルス変調 (PWM)」という出力方式を使うことになります。</p>\n<p>モータドライバを使うと、この PWM をもとに中間の値の滑らかな電圧が扱えるようになるイメージです。</p>\n<h2 id=\"モータドライバでモータを回す\" style=\"position:relative;\"><a href=\"#%E3%83%A2%E3%83%BC%E3%82%BF%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%81%A7%E3%83%A2%E3%83%BC%E3%82%BF%E3%82%92%E5%9B%9E%E3%81%99\" aria-label=\"モータドライバでモータを回す permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>モータドライバでモータを回す</h2>\n<p>ということで、モータドライバを用意します。</p>\n<p>モータドライバは 1 個で 2 つのモータに対応しているものも多いようです。</p>\n<p>タイヤは合計 4 個あり、すべて独立して制御する方向で考えたいので、2 個のモータドライバを購入することになります。</p>\n<p>電子部品は秋月電子で探すのが鉄板だとは思うのですが、今回は Amazon で以下のものを購入しました。</p>\n<ul>\n<li><a href=\"https://amzn.to/3eQaTlu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">HiLetgo 3pcs DRV8833デュアルモータードライバー</a></li>\n</ul>\n<p><a href=\"https://www.amazon.co.jp/gp/product/B014GZ9JTC/ref=as_li_ss_il?ie=UTF8&linkCode=li1&tag=oshimayuki0d-22&linkId=7a9edae65be01b40c225b86353ddbba0\" target=\"_blank\"><img border=\"0\" src=\"//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B014GZ9JTC&Format=_SL110_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=oshimayuki0d-22\" ></a><img src=\"https://ir-jp.amazon-adsystem.com/e/ir?t=oshimayuki0d-22&amp;l=li1&amp;o=9&amp;a=B014GZ9JTC\" width=\"1\" height=\"1\" border=\"0\" alt=\"\" style=\"border:none !important; margin:0px !important;\"></p>\n<p>使い方は Amazon の商品説明などを参考にします。</p>\n<p>はんだ付けしたり回路を組んだりして、モータを回した様子が以下です。</p>\n<center>\n  <video width=\"320\" height=\"240\" controls>\n    <source src=\"/media/raspberrypi-motordriver-demo.mp4\" type=\"video/mp4\">\n  </video>\n</center>\n<p>4 個のタイヤが無事回転しました。</p>\n<p>回転速度はプログラムで制御しており、徐々に速くなるようにしています。</p>\n<p>直進のみですが、地面を走ることもできました。</p>\n<h2 id=\"まとめ\" style=\"position:relative;\"><a href=\"#%E3%81%BE%E3%81%A8%E3%82%81\" aria-label=\"まとめ permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>まとめ</h2>\n<p>ひとまず、モータドライバを使っておもちゃの車を走らせることまではできました。</p>\n<p>次のステップとしては、ラジコンのような操作ができるようにしたいです。</p>\n<p>具体的には、PC の操作で直進したり左右に曲がったりできるようにしようと思います。</p>\n<h2 id=\"その他、使ったもの\" style=\"position:relative;\"><a href=\"#%E3%81%9D%E3%81%AE%E4%BB%96%E3%80%81%E4%BD%BF%E3%81%A3%E3%81%9F%E3%82%82%E3%81%AE\" aria-label=\"その他、使ったもの permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>その他、使ったもの</h2>\n<p>最後に、その他の購入品を掲載しておきます。</p>\n<ul>\n<li>はんだこてセット</li>\n<li>ブレッドボード</li>\n<li>ジャンパワイヤ</li>\n<li>単三電池 4 本</li>\n</ul>\n<p>これだけあれば色々楽しめますので、興味がある方は是非挑戦してみてください！</p>","fields":{"slug":"/posts/raspberrypi-motordriver","tagSlugs":["/tag/raspberrypi/"],"autoRecommendPosts":["linux-learning-roadmap","4839975868","cpu-books","how-to-study-linux-basics"]},"frontmatter":{"date":"2021-05-15T11:33:44.313Z","description":"最近友人と電子工作を色々やってみようという話になり、分かりやすいテーマとして「Raspberry Pi でおもちゃの車を自動走行させる」というのを目指すことになりました。\n最初の段階として、まずはモータドライバを使っておもちゃの車を走らせるところまで進めたので、やったことをまとめます。\n同じことに挑戦する方のため、何を購入したのかも具体的に書いていきます。","tags":["raspberrypi"],"title":"Raspberry Pi でモータドライバを使っておもちゃの車を走らせる","socialImage":null,"recommendPosts":["https://www.kanzennirikaisita.com/posts/raspberrypi-k3s-non-stop-release","https://www.kanzennirikaisita.com/posts/software-developer-books-index"]}}},"pageContext":{"slug":"/posts/raspberrypi-motordriver"}},"staticQueryHashes":["251939775","3942705351","401334301"]}