gosoly

ゆっくりと趣味に浸る。

IoT&H/W BIZ DAY 3 へ行ってきました

f:id:ban367:20170402204413j:plain

ascii.jp

こちら行ってきました。
メモ(備忘録)です。

備忘録

  • インターネットにつながるっというよりも、スマホから操作できるっというのが重点になってるように感じた
  • ウェアラブルバイスが普及が遅いので身につけるデバイスは商材としては難しいのかな?
    • 例:スマートウォッチ
  • HMDも一家に一台の時代はまだこなさそうなので、誰もが持っているスマホから派生するのが妥当?
  • 家庭に据え置き、スマホで連動できるのは一番気軽で良いと感じた
  • 持ち運んでスマホと連動させるのは、ポケットに入るサイズまで小さくならないと要らないと思った
  • げんだまの落下時の判定はまだらしい
    • 玉か紐に細工しないと難しいと思う
  • 立体視系はやはり正面から見ないと立体視できない
    • 操作用の手を検知するセンサーの位置をつかむのが難しい
  • 音声認識は便利だけど、認識と実用は難しそうに感じる
  • なんか鞄とスポーツタオル宣伝してるところがあった
    • 使わなさそうだけど、若干ほしい
  • アスキーさんのページの写真にちゃっかり後ろ姿写ってた

weekly.ascii.jp

RFID-RC522を使ってみる

IMG_3886.jpg

RFID-RC522を使ってRFIDを読み取ってみる。

こちらの記事の実践したことのまとめになります。

raspmer.blogspot.jp

最初にArduinoでも動かしてみたのですが、Unoだとピンを占拠してしまい、取得データをSDカード等に書き込んだり、たはまた飛ばしたりするのが大変そうでしたので、やっぱRaspberryPiかな?っと思いました。

SPIの有効化

sudo raspi-config

または、GUIの上部設定より設定

各種インストール

パッケージ

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install python-dev git

SPI-Py

$ git clone https://github.com/lthiery/SPI-Py.git
$ cd SPI-Py/
$ sudo python setup.py install

MFRC522-python

$ cd 適当なディレクトリ
$ git clone https://github.com/mxgxw/MFRC522-python.git
$ cd MFRC522-python/

実行

$ sudo python Read.py

sudoを付けないとBluetoothが正常に動かない事があります。

接続ピン

Name Pin Pin Name
VCC 1 3.3v
RST 22 GPIO25
GND Any Ground
MISO 21 GPIO9
MOSI 19 GPIO10
SCK 23 GPIO11
NSS(SDA) 24 GPIO8
IRQ - -

IRQは未使用です。
RC-522の種類によって、ネットで出てくる基盤と載っているピン名称が異なるようです。

終わりに

認識が若干もっさりしているものの、さくっと動きました。
おそらくピンを指し間違えたり、Pythonの環境でコケたりしない限りは苦もなく試せると思います。

RaspberryPiのスタートアップで盛大に躓いた話

DSCF1461.jpg

スタートアップ時に自動的にiBeaconを取得したかった

起動してSSHで入り、コマンドと叩かないと動かないのはいささか面倒。
じゃあ、スタートアップにしておこうっとした時にずっこけたお話

iBeaconの受信について

ありがたい記事があるので、こちらを参照。

qiita.com

使用したRaspberryPiは3なので、無線LANはもといBluetoothも備わっているため、特に設定は不要でプログラムを走らせれば受信できます(たしか…)

なので、rc.localに記述すれば動く!…はずだったのですが、ダメでした。

問題点

ちょくにコマンド叩けば動くのに、何故!?ほぼ同じ動作をさせているだけなのに!
っと思ったところ、rc.localの起動速度が早すぎるためnodejsが立ち上がる前に動いて動かなかったようです。
盲点でした…

これを解消するために考えられるスタートアップ軍を試してみました。
スタートアップの種類にはこちらの方の記事がGOOD

hendigi.karaage.xyz

いざ、ローラー作戦

方法 可否
rc.local ×
crontab ×
autostart
init.d ×
systemd ×

このような結果になりました。

今思えば、nodejsの起動が遅いのが問題なのでそっちをどうにかすれば良かった気がします。

crontabの@reloadも結構遅いのではないかと期待してたのですが、GUI起動にかかってくるautostartの遅さにはかないませんでした。
迷ったらautostart、覚えておくといい…

また、一番使うであろうrc.localですが、とても起動速度が早いうえに権利者権限で動くので、便利ですが気をつけた方が良さそうです。

RaspberryPi自体がスタートアップしなくなった場合

スタートアップに間違った記述をするとPi自体がスタートアップしなくなります。
rescue modeを使うか、microSDをPCで読み込みスタートアップを書き加えたファイルを戻すのが吉です。

自分はrc.localにアホな記述をしてしまい、後者の手段でrc.localをすっきりさせて復活させましたw

おまけ

nodejsのスタートアップ

パッケージ管理ツール入れると、管理ツールの起動タイミングでの動作になります。
おおよそ、普通にインストールした時が設定しない限りは最も順序的に早いはずです。
また、npmから入れるバージョン管理ツールのnがnpmに付随するため、特に設定をしなくとも通常と肩を並べる早さです。

GitHub - tj/n: Node version management

foreverを使いデーモン化させたHubotの自動起動で躓いたのもいい思い出…

FlashAirで動くゲームコントローラー基盤を試してみる

先月、こちらのイベントに参加してきました。

connpass.com

参加背景としては 「FlashAirあるけど全くやること浮かばん!」 っとこんなとこです。 あと、懇親会で美味しいお酒が飲めると書いてあったので
実際参加してみて、どういう感じに使われているか、情報はどこにまとまってるか、などなどを聞くことができてとても楽しいセミナーでした。
一番ありがたかった情報はネタの詰まった無料の同人誌の存在。
そして、思いの外Developersページに情報が埋まっていたという事実…

本題

セミナーで先着で頂いたゲームコントローラー基盤を、この一ヶ月眠らせていたので、作ってサンプルを動かしたお話。
※MakerFaireTokyo2016にて購入者に配布していたものと同一

基盤の詳細

flashair-developers.com

タクトスイッチ、抵抗、ダイオードは付属していますが、SDカードの接続基盤は付属しないので別途購入。

akizukidenshi.com

AE-SDはArduino等々で利用できるよう直接はんだ付けせず、ゲームコントローラーにピンソケットをつけて利用。
ピンソケットは適当に長いものしか手元になかったので、アルティメットカッターでバッサリと切断。
(ピンソケット綺麗に切ったり、なにかとアルティメットカッター1つあると便利、高いけど…)

完成。
DSCF1457.jpg

ソケット部分にAE-SDを取り付け、SDにサンプルゲームの「クイズ ソラちゃんの野望」をSDカード内に展開。
あとはFlashAirにアクセスしてindex.htmlを開くだけ

f:id:ban367:20170402204301p:plain

最初にこの画面拝んだときはなんとも言えない感想でしたw
ゲーム内容はさておき、すごいぜFlashAir… 普通に操作できるやん。
流石に連打したりは通信速度的に無理ですが、かんたんな操作ぐらいだったらなんのその!っという感じです。

夏頃までには3倍早くなった第四世代が来るらしいので、連打できるじゃないかと期待。

プライバシーポリシー

当サイトに掲載されている広告について

当サイトでは、第三者配信の広告サービス(Googleアドセンスを利用しています。
このような広告配信事業者は、ユーザーの興味に応じた商品やサービスの広告を表示するため、当サイトや他サイトへのアクセスに関する情報 『Cookie』(氏名、住所、メール アドレス、電話番号は含まれません) を使用することがあります。
また、Googleアドセンスに関して、このプロセスの詳細やこのような情報が広告配信事業者に使用されないようにする方法については、 こちらをクリックしてください。

当サイトが使用しているアクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。
このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。
このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。
この規約に関して、詳しくはこちら、 またはこちらをクリックしてください。