Arduino用RC-S620/Sサンプルスケッチの改造
先日実行したRC-S620/Sライブラリ付属のサンプルスケッチでは、RC-S620/Sにおサイフケータイ(モバイルFeliCa搭載端末)をかざすと@SDK4FeliCaのURLがPushされるようになっている。
FeliCa Pushとは?
ここでPush(FeliCa Push)というのは、おサイフケータイに対して別のおサイフケータイやリーダ・ライタからURL(ブラウザ起動)や、メールアドレス(メーラ起動)、AndroidであればアプリのIntent情報を投げる機能のことである。私の身近で使われている例では、カラオケ館受付のケータイ会員証表示端末(PitTouch端末と言うらしい)やほっともっとのほっとポイントくらぶなどがある。
続きを読むAndroid – Arduino – RC-S620/S 進捗状況
飛行機の出発が30分遅れるらしい。多少睡眠不足で寝ておきたい気分もあるが、ただボーっとするのも時間の浪費のような気がして筆を執ることとした。
内容は、現時点での進捗状況と今後の予定である。
プロジェクト名(仮)
夏までに、A500 + ながてぃ~の。 + RC-S620/Sでカードエミュレーション!
続きを読むArduino+RC-S620/SでSoftwareSerial通信が上手くいかない
昨日試したサンプルプログラムのソフトウェアシリアル通信対応版の作成に挑戦している。
Arduinoでソフトウェアシリアル通信を行うためには、Arduino標準ライブラリのSoftwareSerialを使うと良いと思われる。この標準ライブラリ、かつては機能制限が多くNewSoftSerialというものが代替としてよく利用されていたようだ。その実状もあってか、Arduino 1.0になってそのNewSoftSerialライブラリが本家のSoftwareSerialに置き換わった。つまり、かつてのNewSoftSerialはArduino 1.0からのSoftwareSerialと同等であるとみなして問題ない(多分)。
ソースコードの改造はほぼ機械的で、ハードウェアシリアル通信を表すSerialを、ソフトウェアシリアル通信のものに置き換えるだけだ。修正にあたっては「なんでも作っちゃう、かも。 Arduinoで遊ぼう – JPEGカメラモジュールで写真を撮る」を参考にした。
手を入れたのは、Arduino用RC-S620/SライブラリであるRCS620S.cpp とRCS620S.h、そして付属するサンプルスケッチFeliCaPush.inoである(つまり全部)。次にコードの修正部分を示す。
続きを読むArduino+RC-S620/SでFeliCa Push
Arduino用のRC-S620/Sライブラリに含まれるサンプルプログラムの実行。シリアル通信はハードウェアのものを使用(デフォルト)
なかなかどうして時間がかかった。結局、配線ミスが原因だったけれども。
続きを読むソフトウェアシリアル通信の動作確認
というわけで今日もいじるよ、ながてぃ~の。
わ「いじるのじゃ!」
Arduinoプログラミング
Arduinoプログラミングに使う言語はC/C++を拡張したようなもので、プログラミングになじみがない人でも簡単に作成できるように配慮されている。Arduinoでできることはリファレンスを参照すればなんとなく想像できた。一つ一つのプログラムはスケッチと呼ばれていて、それぞれのスケッチは主にsetup関数とloop関数によって構成されている。
スケッチを実行する時に始めに一度だけ呼び出されるsetup関数では変数などの初期化を行って、loop関数内には実際の処理を記述するようになっている。loop関数はその名の通り、Arduinoに電源が入っている間、永遠に実行される。loop関数の一回の実行は基本一瞬で終わってしまうようなので、適宜delay関数を使って、実行を遅らせてやる必要があるっぽい。
ところで、Processingというデザイナー向けの環境(言語?)があるがArduino IDEはこれに非常に酷似している。スケッチの拡張子もかつてはProcessingのものと同じ.pdeであったというし(現在は.ino)、何か関係があるのだろうか。……と思ったら、Arduino公式サイトにThe microcontroller on the board is programmed using the Arduino programming language (based on Wiring) and the Arduino development environment (based on Processing).
という記述があった。なるほど!
シリアル通信部分の衝突問題とその解決案
A500(USBホスト機能付きAndroid) – ながてぃ~の。(Arduino) – RC-S620/S(シリアル通信)の三者間連携を実現させるために、いずれ解決しなければならない問題が一つ判明。よくよく考えれば道理なのだが、ながてぃ~の。(Arduino)にはシリアル通信用のポートが一対しか用意されていないのだ。これの意味するところは、A500 – ながてぃ~の。の通信と、ながてぃ~の。 – RC-S620/Sの通信では同じ機能が必要とされており、双方を同時に行おうとすると混線してしまうということである。
実は、開発者ブログの記事にもこんな注意文がある。
Arduino の TX、RX は、USB 経由でプログラムを Arduino に書き込むときの信号線にもなっています。プログラムを書き込むときに Arduino と RC-S620/S がつながっていると信号が混線するので、Arduino の TX、RX には何も接続していない状態でプログラムを書き込まなければなりません。また、RC-S620/S と接続しているときは、Arduino IDE のシリアルモニターも使用できませんので、ご注意ください。
これを字面通りは把握していたが、まさかArduino に書き込むときだけのみならず、プログラム実行中の通信線にも使われているとは。はてさて、どうしたものか。
続きを読むArduinoのセットアップ
題して、「ながてぃ~の。でごにょごにょしてみる(1)」!!……別名「わっちと始めるエレクトロニクス」……うーむ、どっちも微妙だ。困った。
てなわけでこんな記事を書きたいがためにコメント投稿機能を復活させたわけで、私自身も勉強しながらブログにアウトプットできればいいなぁと思ってる。あとはソースコードをいい感じに表示する仕組みが欲しいね、うん。そのうち追加しよう。
わっち(以下「わ」)「どうぞ、よろしくの!」
続きを読む