MUDAなことをしよう。MUDAなことをしよう。前回ご紹介したamiiboオルゴールポケットの作り方の前編、ソフト編になります。ArduinoでのNFCの扱い方の復習から入りたいと思います。Aのタグを使用しています。F(Felica)の読み書きにしか対応していません。Aタグのデータの読込みが可能になります(※書込みもできると思いますが、未検証)。ArduinoHkNfcRw詳しくは以前書いた記事をご参照ください。amiiboを個別に認識するためには、まずはそれぞれを一意に特定するID情報(UID)を知る必要があります。Megaに繋いで、それぞれのUIDを確認します。UNOではなくMegaを使う理由ですが、UNOにはハードウェアシリアル(RX/TX)が一組しかないからです(Megaは四組)。IDEのシリアルモニタにデバッグ情報をprintlnで表示することができなくなってしまうのです。そのため、折角UIDを読み取っても、目視で確認できません。RC-S620Sの接続をハードウェアシリアルの代わりにソフトウェアシリアルで代替するやり方は、少なくとも自分は成功例を見たことがありません。UIDを確認するためのサンプルプログラムはこんな感じです。以下は、RC-S620SをRX1/TX1に接続することを想定しているので、ライブラリ(ArduinoHkNfcRw)のファイル”devaccess_uart.cpp”で”Serial”になっているところは、事前に一時的に”Serial1′′に変更しておいてください。delay(500);}接続はこんな感じです。これにamiiboを乗せると、(なんかマリオでかいな。)こんな感じでシリアルモニタに表示されます。ここでUIDとして表示されている値をメモって置いてください。認識させたいamiiboの分だけ記録しておきます。Tag.”が毎回挟まってしまうのは、ライブラリの仕様のようです。UIDは別にamiiboのみに含まれる情報ではなく、すべてのNFCタグの固定位置に含まれ、読み取ることができる情報です。そのため、amiiboの中でどのように情報が格納されているかについての仕様情報は不要です。UIDではなく、ちゃんと「マリオ」や「リンク」という識別情報を使いたい場合は、amiiboの仕様を理解してのハックが必要になります。これで前準備は終了です。次はゲームボーイポケットに組み込むためのソフトを書いて、ブレッドボードでプロト作成です。Miniを使うので、ライブラリの”devaccess_uart.cpp”で”Serial1′′に変更したところは、”Serial”に戻しておきましょう。ソースコードはこんな感じです。未検出カウントが規定回数連続すると、UIDを初期化する。delay(20);}前のamiiboオルゴールのソースを流用しているので、LEDの発光についての記述がちょっとオーバーかもしれません。Miniに焼き込みます。Miniを使用します。16MHz配線はだいたいこんな感じで。Miniを5V版に変更したことで、電源も何とかして5Vのものを用意しなくてはいけないのではないかと心配したのですが、幸い、3.7Vのリチウムイオンポリマー電池でも動作してくれました。リチウムイオンポリマー電池110mAh簡単な動作確認をした結果がコチラです。https://make-muda.net/wp-content/uploads/2016/12/amiibo-music-box-pocket-proto.mp4もうちょっと動作を詰めたいところもなくはないですが、今回はあまり時間をかけたくないので、これで良しとします。ソフト編は以上で終了です。次回、ハード側に作成物を組み込んでいきます。こっちの方が大変です。MUDAなことをしよう。前回でソフト側の準備は終わったので、あとは必要な部品を頑張ってゲームボーイポケットの本体に押し込んでいきます。MUDAなことをしよう。ここで、自分の持っているamiiboのNFCチップのUIDを記載しています。UIDの調べ方はこちらをご参照ください。コメントをキャンセルメールアドレスが公開されることはありません。hidaka_hirojiAmazonほしいものリストこちら自身の工作用に使いたいものがメインですが、必ずしも工作に使うわけではないのでご了承ください。MUDAなことをしよう。