専門内容 日常 紹介

Arduinoを使ってぶつからない車を自作~初代~

投稿日:2019年4月27日 更新日:

こんばんは。

最近は温かくなってきて、「半袖をそろそろ出そうかな~。でも、まだ学校でも半袖の人はそんなにいないし『ヤバいやつ』なんて思われるかな~」と、陰キャ特有の深い考察を行っています(笑)

さて、今回は「Arduinoを使ってぶつからない車を自作~初代~」ということで先日秋葉原に旅行に行ったときに購入したツインモーターギヤーボックスを中心に自動車を作る企画の第1回です!

大学生の1人東京観光~熊本から東京へ(秋葉原編)~

超音波センサやモータードライバの使い方についても参考になると思います。

それでは~

シュワッチ!


 

①作るもの:

超音波センサを使うことで前方方向にぶつからない車

②用意するもの:

Arduino Uno

ブレッドボード

超音波距離センサーHC-SR04

モータードライバーTA7291P

絶縁ラジアルリード型積層セラミックコンデンサー0.1μF 50V 2.54mm(10個入)

抵抗300[Ω]

ジャンパ線

電池ケース 単3×2 スイッチ・カバー付 KIT-UM32SK

パナソニック 単3形アルカリ乾電池 12本パック LR6XJ/12SW

・モバイルバッテリー

6角オネジ・メネジ MB3-30

【ツインモーターギヤーボックス】タミヤ 楽しい工作シリーズ tk097

【ユニバーサルプレートセット】 タミヤ 楽しい工作シリーズ TK098

タミヤ 楽しい工作シリーズ No.101 トラックタイヤ 36mm(70101)

③回路

 

ポイント:
1)超音波センサとArduinoの途中にはアナログローパス・フィルタを作っています
*アナログローパス・フィルタについての昔の記事↓
アナログローパス・フィルタとデジタルローパス・フィルタの比較

2)TA7291Pのデータシートを見ると、左から4番目の端子が制御電源端子となっています。この端子に対応するArduinoのピンはpwm(~が数字の後についているピン)にして下さい

④プログラム

ポイント:
1)Arduinoの開発環境では関数のプロトタイプ宣言はいりませんが、他の言語では必要なので一応、記載しています

2)関数の記述順番は“超音波で障害物との距離測定”・“前進”・“後退”・“斜め左に進行方向を変えながら前進”

3)プログラムでデジタルローパス・フィルタを作ることも考えましたが、distanceの値を更新するのがif文の関係で毎度というわけではないので今回はアナログローパス・フィルタを採用しました

⑤完成画像:

・正面図:

ポイント:
1)ジャンパ線をテープで固めているのは超音波センサにかぶって誤った距離を算出することがあったからです

・右側面図:

ポイント:
1)6角オネジ・メネジ MB3-30を使うことで、ブレッドボードに接続されたジャンパ線の高さを確保しています。(少し斜めっていますが・・・)

⑥完成動画:

おしい・・・

残念ながら、超音波センサの位置の関係で右のタイヤが最後に障害物にぶつかってしまいます。なので、超音波センサの位置を右のタイヤの真正面に移動させたりもしてみたのですが、今度は下の写真を参照してもらえればわかるのですが、ブレッドボードが車体からはみ出してしまって障害物にぶつかってしまいました。

サーボモータを使って超音波センサの乗った首を振って直進方向以外の方向にある障害物との距離も測定する必要があると思いました。

なので、次回はこの“首振り機能”を備えた“ぶつからない車~2代目~”を作る記事になると思います!


 

いかがでしたでしょうか?

なかなか挙動が上手くいかなくて苦心しました・・・。キーとなったのはプログラム中に記載している2つのフラグ(flag,subflag)です。

今回は超音波センサの個数の関係で前方方向だけの衝突が避けられる仕様となっていますが、下図のように4方向に超音波センサを設置すれば“絶対にぶつからない車”が出来ます♪予算に余裕ができれば、試してみたいと思います💪

あっ!まずは“首振り機能”を付けなくては!もう忘れてた(笑)

 

最後にクリスタの練習状況です↓

▲▲▲アリガ島▲▲▲

次回予告
「未定」







-専門内容, 日常, 紹介

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

軸を設計してみよう!

こんにちは~ 突然ですが、普段生活している中で”軸”ってよく見るじゃないですか~。 鉄棒、掛け軸、信号機の信号を支えている軸、車のシャフト、モーターの軸とか・・・。 モーターに至っては電気系と機械系を …

arduinoを使ったLEDのトライアングル制御

こんばんは。 今回はarduinoを使って、トライアングル状に並べたLED6個をいろいろ制御してみたので、それを紹介します! 奇麗に見えるように、配線も工夫したのでお気に入りの物が1つでもあればうれし …

【院試対策】線形代数③(行列の和積)

こんにちは~ 前回の予告通り、今回は“行列の和積”の計算の仕方について記事にしていきたいと思います。 それでは~ シュワッチ!   第3回:【院試対策】線形代数③(行列の和積) 第3回は“行 …

Visual Studio 2017 Communityを使ったC#入門~第2回:LEDをArduinoと協力して光らせる~

こんにちは~ 申し遅れましたが、最近、Twitterを始めました!ちょっとしたことを呟いていきます(笑)よろしければフォローをお願いします→FineManのTwitter さて、今回はArduinoの …

大学生の健康管理!

こんにちは~ 「大学生になったら太る」、「大学生になったら痩せる」なんて、よく聞きませんか? この間、同窓会に行った時は太った人が多かったように思います。 原因は大学では選択しない限り「体育」の授業が …