surga Lab

読者です 読者をやめる 読者になる 読者になる

surga Lab

営業部でも開発したい!!

Arduino初心者はステップバイステップで学習するのがおすすめです

Arduino 自立走行車

ハードウェアや電子工作についてはほとんど無知だった私ですが、
最近では秋月電子とスイッチサイエンスを眺めて何を作ろうか考えることが大好きになるまでなりました。

これもArduinoを購入し、少しずつ電子工作/勉強を進められたおかげだと思います。

そんな素晴らしいArduino
ぜひとも皆さんにも遊んでいただきたいものです。

しかしながらいろいろなブログや話を聞くと、 “購入をためらっている” or “Lチカで満足” で終えてしまっている方が多い気がします。

おそらく"買ったところで何を作ったらいいかわからない"、"Lチカの次は何をすればいいのかわからない"となってしまうのが理由ではないのでしょうか。

だったら“作る物を私がある程度指定してしまおう”ということで、それなりに動く物が作れるようになるまでの簡単なチュートリアルを用意しました。

といってもほとんど私がこのブログで紹介した物になるんですけどね。

ゴールの設定

自分が何を作っているのかわからないまま製作するほどつまらないものはありません。
小さなものを作るときでも、あらかじめゴールを設定しておきましょう。

今回はある程度自立して走行する車をゴールとします。

ステップ1

ステップ1ではArduino + 単一機能の組み合わせで行います。
センサ等との接続はブレッドボードを利用します。

1つの機能に集中することができるので、比較的容易に実装できます。

Lチカ

基本の基本です。

大抵の方は購入時に試しているかと思いますが、久しぶりに取り組む様でしたら動作確認を含めてやってみましょう。

blog.hisurga.com

超音波センサ

センサを1つ加えてみましょう。
一般的な超音波センサです。

センサの仕様確認が必要になり、コードもいきなり複雑になります。
とりあえずはコピーでいいので、だんだんと仕様やプログラミングに慣れていきましょう。

blog.hisurga.com

7セグLED

7セグLEDとシリアルドライバのセット品を利用します。

シリアルドライバでシリアル通信を行うことにより、LEDで表示する数値の変更が容易になります。

blog.hisurga.com

モータドライバ

モータドライバを使ってモータ制御に挑戦です。

ドライバははんだづけが多くて大変ですが、はんだ付けは慣れたもん勝ちだと思います。がんばりましょう。

blog.hisurga.com

ステップ2

ステップ2ではArduino + 2つの機能を組み合わせて実装します。

とはいってもソフト/ハード共に、ステップ1の作品2つをそのまま繋げるだけです。

超音波式メジャー

超音波センサと7セグLEDを組み合わせて超音波式メジャーを作成します。

blog.hisurga.com

ステップ3

ステップ1、ステップ2を組み合わせて1つの作品に仕上げます。

シールド化

ブレッドボードだけでも問題はありませんが、再利用性を求めるならシールド化はやっておきましょう。
見た目も綺麗になります。

blog.hisurga.com

シールドの自作方法

blog.hisurga.com

仕上げ

今回の場合は自立走行車がゴールですので、シャーシにArduinoを乗せて完成となります。

blog.hisurga.com

アルゴリズムの作成

上記状態では自動停止しかできないので、簡単な法則を与えてみましょう。

blog.hisurga.com

次の作品

一通りArduinoに触れることで、電子工作についても理解が深まったことだと思います。

1つ何かの作品を作ることができれば、あとは発想力の勝負だと思います。
つまり、なんでも作れるってことです。

すでに独自ドメイン設定済みで、さらにドメイン変更をした場合は301リダイレクトすべきかもしれないです

Web 雑記

最近

lab.hisurga.com

から

blog.hisurga.com

に変更したんですが、特にサイト移管の設定をしていませんでした。
もともとアクセス数はかなり少ないですし。

しかしその後アクセス解析を見ると"かなり少ない"から"ないに等しい"レベルまで落ちているではありませんか。

気になって自分のサイトを検索してみると、

  • トップページが上位に来ない(以前はあった)
  • 旧サブドメインと新サブドメインとはてな初期ドメインが混雑している
  • 旧サブドメインにアクセスするとpage not found

と問題だらけになっていました。

設定をせずに新サブドメインで旧サブドメインのコンテンツをそのまま載せるのは、コンテンツのパクリとみなされる可能性を考えると良くないことかもしれません。

しかしそれ以上に、インデックスされた旧サブドメインにアクセスするとpage not foundになるのはまずいのかなと。
ネット上にゴミサイトができてしまうような物ですし。

そこで、はてなブログで旧サブドメインにアクセスした場合は新サブドメインにリダイレクトするように設定しましたので紹介します。

ちなみにはてな初期ドメインはきちんとリダイレクトされていました。

はてなで独自ドメインを再度変えた時のリダイレクト方法

適当なサーバをレンタル

301リダイレクトをするためには、.htaccessを置くことが必要です。
私はスタードメインでドメインを取得していたため、それに付属する無料サーバを利用しました。

そのため説明もスタードメインに準じます。

旧ドメインをサーバに登録

旧ドメインをサーバに登録します。
登録方法はサーバ会社によって変わりますが、スタードメインの場合はサーバ側で登録すれば、ドメイン側のDNSレコード設定も自動で追加されます。

こんな感じの設定です。

f:id:hisurga:20170323222952p:plain

f:id:hisurga:20170323222955p:plain

.htaccessをサーバにアップロードする

登録した旧ドメイン直下(サブドメインならサブドメインフォルダ直下)に.htaccessファイルをアップロードします。

.htaccessは301リダイレクト設定など様々な設定を行えるファイルです。

ファイル名

.htaccess

中身

ついでにGoogle Search Consoleの認証ファイルも直下にアップロードしておきましょう。

アップロードのコツ

web上でのftp通信がサポートされていたら、一旦"a.htaccess"で作成してサーバにアップロードし、その後ターミナルからftpでrenameすると簡単かもしれません。

f:id:hisurga:20170323222953p:plain

Search Consoleで申請

Google様に報告しておきましょう。

旧ドメインと新ドメインをまず登録し、旧ドメインのダッシュボード>歯車マーク>アドレス変更で新ドメインへ移動したことを報告です。

f:id:hisurga:20170323222954p:plain

完了

すると検索で旧ドメインのサイトにアクセスしても、新ドメインで同じ記事が表示されます!

数ヶ月して安定してきたらサーバは閉じても大丈夫だと思います。

Arduinoでシールドを自作する方法をまとめます

Arduino

シールドとは

Arduinoを拡張する基盤です。
Wi-FiやBLEなどの既製品モジュールを搭載したシールドも多く存在しますが、自分で自由に回路を組める自作シールドも非常に便利に使えます。

シールド1枚に載せるべき機能数

特に制限はありません。
しかし、機能単位でシールドを分けると再利用性が高まりますし、不具合の検証時にも便利です。

小型化が必須でなければモジュール化(機能ごとの分割)をしたほうがいいかと思います。

シールド作成方法

準備するもの

自作用シールド

  • Arduino用に型どられた基盤です。
  • 自由に作成することができます。

Arduino用バニラシールド基板ver.2(黒)
(写真は秋月電子のプロトタイプシールド)

f:id:hisurga:20170316233357j:plain

スズメッキ線

  • 基本配線にはこれを使います。
  • どうしても配線が交差してしまう時はスミチューブなどで絶縁したり、被膜で覆われたケーブルを使います。

協和ハーモネット すずめっき軟銅線 10m TCW 0.5mm 10m

f:id:hisurga:20170316233400j:plain

Arduino用ピン

  • バニラシールドとArduino/下層シールドを繋げるために必要です。

Arduinoシールド用ピンソケットのセット(R3対応)

f:id:hisurga:20170316233358j:plain

はんだゴテセット

  • バリバリとはんだ付けをするので必須です。
  • 最初は安いやつでもいいと思いますが、健康面が気になる方は無鉛はんだを利用するのがおすすめ。

goot 電子工作用はんだこて セット 安定感抜群の大型コテ台付き 半田こて はんだ吸い取り線 はんだ 40W BM-40S

f:id:hisurga:20170316233359j:plain

コネクタ

  • 再利用性を高めたい場合、センサーやモータとの接続にコネクタを使うといいですね。

互換EIコネクタ L字 2P <5個セット><2co-212>

f:id:hisurga:20170316233403j:plain

テスタ

  • 個人的には必須かと思います。
  • ショートしていないかの確認などに使います。

OHM(オーム電機) デジタルマルチテスター TDB-401 (04-1891)

f:id:hisurga:20170316233402j:plain

その他道具

  • 切ったり曲げたりに使います。
  • スズメッキ線は熱が伝わりやすいので、はんだ付けの際はラジオペンチなどで掴みましょう。

高儀 GISUKE ホビーニッパー 125mm GHN-125

iHelp(アイヘルプ) 万能ラジオペンチ 150mm IH-62

f:id:hisurga:20170316233401j:plain

ステップ1 配線の下書き

直感のままに配線をしてもいいですが、いざ進めていくと配線がクロスしてしまう箇所が発生したり、スペースが足りなかったりして、匠な業が必要になってしまうかもしれません。

また、他のシールドと使用するピンが被っていないか確認することも重要です。

そこで事前に設計図を書くことで上記問題を減らすことができます。 秋月さんのシールドの仕様図が下書きにぴったりですので、こちらを印刷してペンで下書きをすると便利です。

こんな感じに、見ての通り結構適当ってことです。
私は表面の配置だけ決めたら裏面の配線はノリでやっちゃいます。
(裏面が1番大事なんですけどね)

f:id:hisurga:20170316233404j:plain

ステップ2 配線/はんだ付け

配線の設計図ができたら、後はそれを信じてひたすらはんだ付けをするだけです。

パーツを押さえながらのはんだ付けは大変ですので、セロハンテープなどで仮止めなどをするとやりやすいです。

f:id:hisurga:20170214215508j:plain

ショートしていないか確認

可能であれば一箇所はんだ付けをするたびに、隣とショートしていないかテスタで確認することをお勧めします。
テスタにショートしていたら音のなる機能があれば、抵抗値を見なくてもいいので楽に確認ができます。

もしもショートしていたら、はんだ取りなどで取り除きましょう。

goot はんだ吸取り線 CP-2015

goot はんだ吸取り線 CP-2015

とにかくビビらず作ってみましょう

1つシールドの作成に失敗しても、だいたい数百円の損で済みます。(高価なモジュールを利用していなければ)

金銭的な損失以上に大きな経験値を得ることができますので、ぜひともどんどんシールドを作成して楽しんでください。

Arduinoの自立走行車にダンゴムシ並みの知能を与えてみました

Arduino 自立走行車 GitHub

ダンゴムシって壁にぶつかると右左交互に進んで行くことが多いらしいのです。

実は、オカダンゴムシには進行中に壁にぶつかると左へ、次は右へ(あるいは右へ、次は左へ)と交互に曲がっていく習性がある。この行動は「交替性転向反応」といい、左右に交互に曲がる事で天敵から逃げられる確率を高めているといわれている。(wikipediaより)

オカダンゴムシ - Wikipedia

そこで、前回作成した自立走行車に同じようなアルゴリズムを実装したいと思います。

コード

ハード面の変更はありません。
それと今回から長いコードではgistを使うことにします。見難かったので。

完成

センサーが1つしかなく、加えてモータがどのくらいの距離進んだのか検知することができないために精度がかなり悪いですが、なんとか形にすることができました。

それなりにうまくいった動画も載せておきます。

Arduinoで自立走行車の自動停止を実装しました

Arduino 自立走行車

前回でモータ制御だけ可能な自立走行車ができました。

blog.hisurga.com

しかしこれだけでは事前に与えられたルートでしか制御を行うことができません。
そこで今回は距離センサのシールドを作成し、障害物で自動停止する機能を実装できました。

f:id:hisurga:20170225212247j:plain

必要なもの

-バニラシールド

Arduino用バニラシールド基板ver.2(白)

Arduino用バニラシールド基板ver.2(白)

-配線やピンなど

-過去記事の製作物

blog.hisurga.com

blog.hisurga.com

また、シャーシの連携性が悪かったためにタミヤのユニバーサルプレートを追加購入しています。
初めからタミヤのキットを買っておけばよかったと後悔してます。

タミヤ 楽しい工作シリーズ No.157 ユニバーサルプレート 2枚セット (70157)

タミヤ 楽しい工作シリーズ No.157 ユニバーサルプレート 2枚セット (70157)

配線

基本的には過去記事で作成したものをそのままシールドに移すだけですが、モータドライバとの組み合わせの関係で使用ピンを若干変更しました。

部品量が少ないからと事前に検討せず適当に半田付けしていったら、裏がひどいことになりましたね。

f:id:hisurga:20170225212249j:plain

f:id:hisurga:20170225212250j:plain

ブレッドボードにするとこんな感じです。

f:id:hisurga:20170228211524p:plain:w400

コード

シールドが2枚になったことでコードが若干長くなってしまいましたが、難しく考える必要はなく、ブレッドボード時のコードをほぼそのまま流用できます。

とりあえず今回はシンプルに障害物で止まるコードを試します。

動画で見ると速度変化がわかると思います。

完成

できたシールドを上に乗っけるだけです。
だいぶいい感じになりましたね。

f:id:hisurga:20170225212248j:plain

実際に動かした動画がこちらです。