|
|
> No.221[元記事へ]
sionさんへのお返事です。
> 初めまして。電子工作初心者です。
> 現在Arduinoを使っていて、Arduino同士を連結させて同時に実行させたいです。
> Arduino同士の連結は出来ないのでしょうか?
> 調べてみているのですが、なかなか良い方法が見つかりません。
> 何か良い方法はないでしょうか?
sionさん、こんにちは。
”同時に実行”というのがどんなイメージなのか
によって盛り込む要件や制約事項などが変わってくる
と思うので、ある程度イメージが見えないとなんとも
いえないかなぁといった感じです。
色々公開されているたくさんの作品でもマイコン同士
を接続して同期させた動きをしているものがあり
ますが、そういったモノはそれぞれが色々なアイデアを
盛り込んで緻密に作り上げたんだろうなぁと思います。
一般公式は無いと思います。
イメージ的に、1個1個のマイコン(今回ならarduino)
を一人一人の人に例えて考えると…
(1)どこか一つのマイコンを親玉にする
→親玉から各子分に合図を送り、子分は合図が
届いたらそれに相当する動作をする
(2)親分子分を作らず、同等の扱いで通信しあう
→一人一人に名前をつけるように”通番”を
振っておいて、宛先の番号に向けて合図を
送り、送られる方は自分宛ての番号が呼ばれ
たら合図に相当する動作を行う
のような方法が思いつきます。(他にもたくさん
あると思います)
また、その合図を送る通信の方法ですが、シリアル
通信を使う方法、I2Cを使う方法、I/Oピンの
HIGH/LOWで送る方法などなど色々あるかと
思います。
どの様な仕上がりを求めているのかによって
使える方法も限られてくるでしょうし、さらには
arduinoの場合シリアルはPCとの接続に使って
いるので、これをarduino同士の通信にも使う
となると少々厄介です。
また、先ほどの(1)(2)などの方式によっては
使える通信方法、使えない通信方法もでてくると
思います。
まずは”同時に実行”という意味について整理して、
arduino同士でどの様な会話(通信)を行えば
機能の要件を満たせるのかを整理してみるのは
いかがでしょう?
arduino1個1個を一人一人の人と仮定してみて、
それぞれがどんな通信を送り出し、またそれぞれ
がどんな通信を受信できればうまく機能する
のかを、arduinoの立場になったつもりで想像して
みると解りやすいかと思います。
|
|