Wifi接続されたラズベリーpiでarduinoを制御するにはどうすればよいですか?


8

インターネットを媒体としてiOSアプリケーションに応答する必要があるarduino unoがあります。私の最初の計画はarduinoにwifiシールドを使用することでしたが、現時点では入手できないため、インターネットに接続されているラズベリーpiを使用してarduinoを制御できると考えました。これは可能だと思いますか?

ラズベリーパイをWebサーバーに応答させ、Arduinoに信号を送信する必要があります。これは可能ですか?可能であれば、誰かがこれを行う方法についてアドバイスをくれますか?

回答:


3

私は実際に今同様のプロジェクトに取り組んでいます。そのシンプルなウェブ制御のR / Cカー。私はあなたと同じ船に乗っていましたが、もともとはarduino用のwifiシールドが必要でした。しかし、私はUSB経由でメガ2560に接続されたラズベリーpiを使用することにしました。arduinoでfirmataプロトコルを実行することを検討する必要があります。Arduino IDEに付属しています。File-> Examples-> Firmataを見て、StandardFirmataをボードにアップロードしてください。

私が取った次のステップは、firmataおよびsocket.ioノードパッケージでnode.jsウェブサーバーを実行することでした。私は最近、johnny-five node.jsパッケージの実験を始めました。Imは、node.jsプログラミングに関しては少し気の利いたものであり、firmataノードパッケージだけで正しく機能させるのに問題がありました。Johnny-fiveは有望であるようで、私は少し運が良かったのですが、私のコードはまだ開発中です。私のgithubページへのリンクを投稿して、少なくとも参照(motor_test.jsとmotor_test.htmlを覚えておいてください。まだ機能していないコードです。LEDを正常に制御できましたが、モーターは別の話です。今日時間が取れない場合は、node.jsプロジェクトを介してコードを私の作業中のLEDコントロールに投稿してください。

とにかく、私はあなたに完全に機能する解決策を提供できなかったことを知っていますが、これが少なくともあなたが正しい方向に進むことを願っています。いつでもお気軽にメールでお問い合わせください(messyfresh@gmail.com)できる限りのお手伝いをさせていただきます。

こちらが参考資料です。それらをググってください。2つ以上のリンクを投稿することはできません。
RPI(上のNode.jsをインストールhttp://joshondesign.com/2013/10/23/noderpi
私のgithubのページ(https://github.com/messyfresh/pi_rc
Firmata
Node.jsの(私はするための最良のバージョンを見つけましたsocket.ioで使用し、firmataは0.8.2x)
Socket.io
Node.js Firmata
Johnny-Five Node.js


3

最近、これをnode- serialportで達成しました。

次のリンクは、Arduinoを完全に制御するための優れた戦略を説明しています。

編集:誰かが私のためにリンクを編集して追加しました:)

私の解決策

arduino / serial.ino、pi / server.js、pi / views / profile.ejsを確認してください。Server.jsは、profile.ejsでシリアルポートとソケットを開きます。profile.ejsで何かが発生すると、server.jsでserialPort.write(buffer、encoding)がトリガーされます。

Arduino Unoは、デフォルトでシリアル接続が開かれるとリセットされます。シリアル接続を開いてから1〜2秒待たずにデータを送信しようとすると、失敗します。この問題は、serialport.write()をトリガーするために人間の操作が必要なときに自動的に解決することがわかりました。DisablingAutoResetOnSerialConnectionをグーグルすることで別の解決策を見つけることができます。

お役に立てれば!

あずきっく


コメントにあなたが参照しているgithubプロジェクトを追加する必要があります。そうすればOPを見ることができます
kolin

3

最も簡単な方法は、両方のデバイスでハードウェアUART(最初にPiでコンソールを無効にする)を使用することです。115kilobaudで設定すると、JSONなどのテキストデータのすべてを送信できますが、zip、jpgなどのバイナリデータも処理できます。一部のライブラリには高いボーレートで問題があるため、最初は低いレートで開始することをお勧めします。

その後、C、PHP、Java、.NET MONO、Perl、Pythonなど、好きなフレーバーでラッパーをPiに記述できます。

これは、自分で構築できる軽量ライブラリのオプションであり、ArduinoとRaspberry Piでこれを行う方法に関する記事が豊富にあります。


1

レムセリアルデーモン(Uart-to-TCP-Socket)に接続してラップする小さなphpデーモンを開発しました。Webサーバーへの接続やデータの送信などの追加タスクを実行するように簡単に拡張できます。

デーモンは、CoPiinoと呼ばれるボードのようなArduinoを制御するための完全なWEB UIとともにパッケージで提供されます。

デーモンの抽出をサポートする必要があるかどうかをお知らせください。

いくつかのプロジェクト情報はここで見つけることができます http://www.copiino.cc

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.