実験室 » Android » この記事

UnityとAndroidを連携させBluetoothでArudinoと通信してみた(1)

「スマホ上のUnityアプリからArduinoに対して命令を送ってみた」といったものです。ユーザーインターフェース部分をUnityで作ったので、その分ややこしくなりました。忘れっぽいのでいつものように備忘録として何をどうやって作ったのかを記録してゆきます。

 

といっても、何から何までどうやってやればいいのかさっぱり解らない状態からのスタートでしたので、先達で参考になりそうなサイト探しからいつものようにしまして、こちらのサイトさんの例をベースにして作ってみました。

 

(参考)Unity で Bluetooth 通信
http://tokyo.supersoftware.co.jp/code/4807

 

上記サイトを読んで、実際作ってもらえば分かることなのですが、Unityでユーザー操作用の画面を作って、ABC…、HIJ…、OPQ…、VWX…というテキストが表示されている4つのボタンを配置し、それらをクリックすると、そのイベントに紐付けられているAndroid側のJavaからイベントに対応するメッセージを、Bluetooth通信で受信用のPCのUnityアプリに飛ばし、Unityの画面上に結果を表示するというプログラムが紹介されています。

 

ちなみに上のプログラムをトレースして組んだだけで、わたしなどは結構お腹いっぱいでした(もうヘトヘト)が、もうちょっと頑張ってこのプログラムをベースにして、受信部分をPCではなくArduinoに変更してなんかやらせてみようと粘ってみることにしました。

 

で、何を作ったのかというのが下の画像になります。上のUnityで作ったRGB値を設定するスライダーから飛ばしたRGB値を、下のArduinoで受信して、RGB_LEDをスマホの色指定と同期させるシンプルな回路を作ってみました。

 

slider_sc
(Unityで作成)

 

20180106a
(HC-06で受信した値をRGB_REDへ)

 

長くなりそうなので何回かに分割して書きます。今回はここまで。

LinuxBeanへのWifi接続

年末は、以前シャープのMebius PC-AL50GにLinuxBeanをインストールして、最後まで残っていたWifi子機の設定をやっていました。

 

出来たけど難しかった。(・´з`・) うん、むずかしい。

 

ブートして起動できるように残したXpの方には、かんたんにドライバが入ったのに比べると、LinuxBeanにドライバを認識してもらうのに3日かかりました。。゚(゚´Д`゚)゚。

 

中国製の安い子機と手元にあったメルコバッファローの「WLI-UC-GNM」というUSB接続のWifi子機の2つをそれぞれ試して、結局メルコの上記のWifi子機で接続することが出来ました。

 

いろんなサイトのやり方をあれこれ試した後で(つまりごちゃごちゃ)、接続出来たので果たしてこれでいけるかは疑問ですが、以下のサイトの手順に従えば、ニアピン状態までもっていけるのでは無いでしょうか。

 

自分がやってた手順[うろ覚え]。

 

1.「lsusb」してみた。以下のブログ記事の他、どこをみても現在認識しているUSB機器の一覧をまず出してごらんよと指示されてますので、やってみました。

 

(参考記事) http://dogwood.skr.jp/blog/2013/06/46/

 

キャプチャーは無いんですが、出ますね。無線接続しているマウスの他に、上の参考記事の様に、「…WLI-UC-GNM Wireless LAN Adapter」末尾に[Ralink RT8070]というのは表示されていませんでした。ベンダIDは同じく0411、デバイスIDは01a2でした。続けて、iwconfigします。うーん。loとeth0以外何も表示されません。wlan0とかra0とか出てると(参考にできるサイトも多いので)取っ掛かりになるんですが、これでは困った。

 

2.次に、上記参考ブログの「無線LAN設定」の項目を試してみました。これは空振りになりました。どうも自分のLinuxBeanでは、エラーがでます。あらたに取得するものは無いとかいう感じのものだったか(ちょっと記憶が曖昧ですいません)。これについては、別のサイトの手順で解決できたっぽいので4で後述します。できないところはとりあえず置いておいて、そのまま通信ソフトの設定ファイル作成の項目に進みます。この項目はそのままこの様な指定で機能しました。「ルーターのSSIDとパスワードを予め書いておいた設定ファイルを用意しておきなさい」ということですね。

 

3.続けて、Linux用のドライバをMakeする作業ですね。
メーカーサイトからダウンロードしてきたファイル群をMakeする前に、デバイスリスト上には無いRT8070を追加して、そのほか修正する箇所を手直ししました。デバイスリスト上には無いRT8070を追加して、そのほか修正する箇所を手直しすればいいみたい。

 

4.3でうまくいかなかったので、こちらのサイトの指定に従ったら、firmware-ralinkの取得とインストールができました。ドライバを作る際に必要となるみたい。

 

(参考サイト)https://wiki.debian.org/rt2800usb

 

5.準備が出来たので、Makeしました。(まともにMakeするのって実はこれが初めてでした。(;´∀`) だから、Linuxのこの敷居の高さは正直困る!)

 

rt2800usbというドライバが作成され、(最初の参考ブログに述べられている様に)本体がrt5370sta.ko、設定ファイルがRT2870STA.dat として指定位置に作られていました。(この辺、ドライバ名と各ファイル名がばらばらで混乱しそうでした。実にわかりにくい)

 

6.これでドライバは作成できているので、後はmodprobeというコマンドでカーネルモジュールをロードして再起動かければ認識してめでたしめでたしと他の多くのWifi子機はなっているようなのですが、「WLI-UC-GNM」はひねくれているので、そのままでは見えてくれませんでした。再起動してもlsusbでは、認識していても、iwconfigでは、lo(ループバック)とeth0しか相変わらず見えません。wlan0はおろかra0も相変わらず出てきません。

 

7.ここでやっと、別の要因で見えないんではという考えに至りまして、やっぱり色々探してこの様なことを書いてあるサイトを見つけました。そのものズバリではないんですが、近似の子機だし、ちょっと応用すればいいんじゃないのということで、以下の追加作業をしてみました。その前に、参考サイトのアドレスを書いておきます。

 

(参考サイト)https://ja.osdn.net/projects/linuxbean/forums/28974/35597/73553/
(参考サイト)http://toronya.tumblr.com/post/38860903165/raspberry-pi-で認識しないusbタイプの無線lan子機-wli-uc-gn

 

先に貼ったLinuxbeanのコミニュティボードのQ&Aに従いつつ、「WLI-UC-GNM」のID 0411:01A2と差し替えて、コマンドを実行しておきます。そのうえで改めて再起動後、GUIのネットワーク設定画面を確認すると、下のキャプチャーの様に、wlan0がやっと見えるようになりました。

 

sc_wifi

 

これでやっとこたつでパソコンが出来るようになりました。

新年明けましておめでとうございます

新年あけましておめでとうございます。

本年も、イラスト、読んだ本の感想、プログラムとか電子工作等、相変わらずのばらばらぶりですが、更新をしていきますのでよろしくお願い致します。_(._.)_

よっつ屋根の下

 

よっつ屋根の下
大崎 梢 (著)

 

好きな作家さんの本なので、甘口評価になるのでしょうが書きますね。

 

家族愛についてのお話になります。四人家族の各人が各章の主人公になって、最初の章の主人公の長男が最終章をまとめるという形式になっています。各章の間に時間経過がある(次の章の開始が前の章の何年後とか…)ので、短編としての性格も感じられちょっとこのスタイルの本に似たものがすぐには思いつきません。

 

本の感想ですが、

 

よくあるパターンの結末ではありませんでした。

 

評価は別れるのかもしれません。型にはまっていても(万人受けするような)ハッピーエンドがよかったわぁという人もいれば、私みたいにこっちの方が現実的でいいんじゃないのと思う人もいるわけで…。結末から見れば本作は現実寄りな作品なのかと思います(時間経過という設定も外せないしね)。しかし、お母さんの選択がもう一つ別の選択であった場合は、よくあるパターンの結末になったのかもしれません。皆さんはどっちの結末を好むのでしょうか。

 

ここのところ大崎本は、みな手堅くまとまっていて豊作続き。次回作も引き続き読みたいです。

ここ最近やってみた工作の練習(4)

ロボット工作でいずれ何かに応用できるのを期待してこのごろ演習をした内容(4)。

 

前回行き詰まっていたところをひつこく調べてみました。

 

やっぱり、記事の指定する8ビット双方向ロジックレベル変換モジュール FXMA108(秋月電子の通販コード(M-04522))を使うと、
ソフトシリアルが出てこなかったので(外すと出てくる)、以前DSPラジオを作る時にアマゾンで買っておいて余った(HiLetgo IIC I2C ロジック レベル 変換 双方向モジュール 5V Arduinoに対応)中華ロジック変換モジュールでやってみました。

 

下の写真の構成で、記事のとおり

 

20171124a

 

(Arduinoと数百円のWi-Fiモジュールで爆安IoTをはじめよう)
https://ics.media/entry/10457

 

LEDのオンオフの切り替えが出来ました。

 

(備忘録)アルディーノからでたRXとTXは、WROOMで受ける時、逆にしないといけない。RX->TX、TX->RX。クロス接続になる。

ここ最近やってみた工作の練習(3)

ロボット工作でいずれ何かに応用できるのを期待してこのごろ演習をした内容(3)。

 

2.ArduinoからESP-WROOM-02(Wifiモジュール)のシリアル通信を経由して、サーバーにデータを書き込む練習。
BlueToothでのシリアル通信は、以前できたので、今回はWifiで接続実験を練習しました。いずれ、Unity+Wifi+Arduinoの組み合わせで何か作りたいものです。が、今は単体の練習をしないとね。

 

最初は、こちらの記事で練習していたんですが、

 

(Arduinoと数百円のWi-Fiモジュールで爆安IoTをはじめよう)
https://ics.media/entry/10457

 

3ページ目の、ATコマンドで通信速度を設定のところで行き詰まってしまいました。(ノД`)シクシク
どうも指定されている[8ビット双方向ロジックレベル変換モジュール FXMA108]のところで、コケたらしくて、指定通りにしても「goodnight moon!」のまま先に進みませんでした。ソフトウェアシリアルのオブジェクトmySerialの出力をリード線で、0,1ピンに入れてあげると、アルディーノのシリアルモニタに値が出てくるので、オブジェクトは出来ているのが確認できますが、Wifiモジュールに届いていないみたいです。これに関しては、またのちのち調べることにしようかと思います。

 

で、わからんものはわからんので、もうちょっと簡潔に実験してるところを探してみたら、「おもちゃラボ」にいい塩梅に実験記事が載っていたのでそちらをやってみました。これはほぼうまくいったので、興味があったら皆さんもやってみると面白いかと思います。

 

(【Arduino】ESP-WROOM-02( ESP8266 )を使ってWifiで無線通信する )
http://nn-hokuson.hatenablog.com/entry/2017/04/09/091148

 

ロジックボード無しでやると、記事の「ESP-WROOM-02の通信速度を9600bpsまで下げる必要があります」というところの処理部分も引っかかること無くクリアできました。(mySerialが取得できてて、”Hellow, world?”が出力される)

 

20171123_w400h300

 

(´・ω・`)ただー、最後のtest.phpの中で、5行目$filenameってありますが、これでデータファイル開けるものなのでしょうか?自分はなんかうまくいかないので、別の変数を起こして、

 

$readfile = ‘data.txt';
のようにして、

 

$contents = fread($fp, filesize($readfile));

 

と書き換えて、期待する動きになりましたが。うーん?

ここ最近やってみた工作の練習(2)

ロボット工作で(?)いずれ何かに応用できるのを期待してこのごろ演習をした内容(2)。

 

gccをPCに入れてみました。今やVisualStudioで、まとめてなんでもやってくれて便利なのでいらないといえばいらないのかもしれないですが。基礎をやっておくのはいいことだと思いましたので。

 

参考は、こちら

 

(Cプログラミングを用いた数値計算のページ)
http://sa.eei.eng.osaka-u.ac.jp/tatsumi/tani_prog/HOWTOprogC/split.htm

 

阪大の研究室のページなのかな。この中の記事の分割コンパイルのところを読んで練習しました。末尾の#ifdef,#defin,externの使い方の解説はとてもわかり易かったので、理解の整理に役立ちました。

(さらに…)

ここ最近やってみた工作の練習(1)

ロボット工作でいずれ何かに応用できるのを期待してこのごろ演習をした内容(1)。

 

1.UnityとArduino間でのシリアル通信
Androidスマホから自走ロボに、ブルートゥースモジュール経由でシリアル通信してコマンドを送り込むというのは以前作ったもので一応出来たので、次はUnityアプリとArdunio間での通信ができたらいいなと思い、参考プログラムを練習しました。「おもちゃラボ」のこの記事の内容をやってみました。

 

(UnityでArduinoとシリアル通信をする )
http://nn-hokuson.hatenablog.com/entry/2016/07/26/205745

 

内容もシンプルだし、cdsセンサーが手元にあれば事足ります。記事の内容で特に行き詰まったところもなかったので、お薦めしたいです。

 

20171121_w400h300

パラダイスバード・クロニクル

 

パラダイスバード・クロニクル
佐藤明機(著)

 

本屋さんに注文しておいた佐藤先生の最新刊読みました。

 

佐藤ワールドの健在ぶりを確認できて、長年のファンとしてはうれしいかぎりです。

 

一回目を読み終えたあとちょっと不思議な余韻が残りました。最初「人の一生」や「死後観」とかがテーマなのかなと思いましたが、「再生」を祝うストーリーなんでしょうかね。感想を書いている自身が人生の折り返し地点をすでに越えたせいか、「人生の後半」とかのキーワードに過剰に反応しやすくなっているのかもしれませんが(;´Д`)

若い人とかが読むとまた違った風に感じるのでしょうね。

扉絵を更新しました。

秋なので扉絵を変えました。クリップスタジオを今回初めて使い描いたのですが、筆のタイプが色々あって面白いです。でも使いこなすのが難しい。フォトショップといったり来たりしながらではないとまとめられませんでした。

2 / 1312345...10...最後 »