2013年5月19日日曜日

Scratch1.4(相当)とArduinoと光センサーで、かめはめ波測定器(仮)を作ってみた

先日、Qiitaに投稿したようにArduinoと光センサーでアナログ値を入力として得られることを確認しました。
しかし、これを見た子供の反応は薄く、3秒程度で、やっていた3DSに視線を戻していきました。「子供に電子回路の関心を持たせるにはどうしたらいいか」を考え、子ども達が触っているScratchを組み合わせる事にしました。

準備
  1. 回路
    回路に関して準備したものと、回路図はこちらと同じです。
  2. ScratchとArduinoを連携する環境(S4A)の導入
    こちらのInstallationの1-3を実行します。
    1はArduinoの開発環境ですので、Arduinoを触ってる人は、既にinstall済のはずです。
    2は、local PCの適当な場所に保存し、1のArduino開発環境でコンパイルおよびArduinoへの転送を実施します。
    3については、自分の使用しているOSのものを選択し、installします。私はMac版をinstallしました。下記の「S4A」をクリックしてアプリを起動します。


    起動後の画面は下記の通りです。Scratch1.4とほぼ同じような画面です。右側のArduinoの絵(スプライト)とAnarogx6,Digitalx2の入力値が表示されます。(まだ何も入力されていないので、適当な値が表示されています)

  3. Scratch(実際はS4A)にてプロジェクト(アプリ)の作成
    下記のような感じでブロックを並べてみました。(S4Aに含まれるブロックは、Scratchのサイト上で公開できないので、現時点では下記画像でご勘弁ください。Scratch2.0では2013年夏頃に、外部デバイス操作機能が追加予定なので、そうなれば、下記のようなアプリを公開する事ができるようになります)
    「value of Analog0」で光センサーの値を取得しています。Analog0の値の変化を読み取り、良いタイミングで期待する値になった場合に、「成功」の判定をしています。

  4. かめはめ波測定器(仮)を実行する
    実際に実行してみましょう。以後はScratchの操作方法と同じです。
    画面右上の緑の丸をクリックします。すると「かーめーはーめー」とArduinoの絵がしゃべりはじめます。(この辺りは、それっぽい絵を用意すればいいのですが、著作権の問題もあるので、横着してArduinoの絵のままとしています。w)


    「波ーーー!!」のタイミングで、光センサーに対して、かめはめ波を発射してください。(本当は、手で光センサーを隠すようにすればいいです。。。)


    タイミングとかめはめ波の勢いがあえば「成功」と表示されます。下記の例では発射タイミングが遅く失敗となってます。


以上、簡単ですが、Scratch1.4(S4A)とArduinoと光センサーを組み合わせて、センサーから取得したアナログ値をScratch上に表示する事を試してみました。
当初の目的であった「子供に電子回路に関心を持たせる。(少なくとも3秒以上の関心を引く)」については、1分程いろいろ触っていたので成功とします。

Scratch2.0では、同等の外部デバイスとの連携機能は2013年夏にリリース予定との事なので、リリースされたら、本アプリをScratchサイトにて公開したと思っています。
このエントリーをはてなブックマークに追加

2013年5月3日金曜日

Arduino x Ruby x 光センサーで電子回路作り

最近Arduinoを入手し、どのような使い方ができるか模索しています。
まずはセンサーで値を取得するところから始めたいと思います。
センサーも温度、湿度、気圧、光センサーなど様々なものがあります。こんな感じ。

今回は光センサーを使います。手を近づけると値が変わるので、手の動きで操作をする。なんて事が安価にできそうです。
今回はQiitaに投稿してみましたので、こちらをご覧下さい。


今後も、センサーとネットを使って名にができるのか、試してみたいと思います。

このエントリーをはてなブックマークに追加

2013年5月2日木曜日

なぜRubyを使っているか?

最近Rubyを使う事が少しずつ増えていますが、「なぜRubyなのか?」mindmapでまとめてみました。
結論としては「気になるツール、技術要素、トピックにアプローチするのに都合がいいから」となりました。

用途によって適切な言語を選択するのがいいのでしょうが、学習コストも高いので現実的ではありません。そういった意味でRubyは幅広い用途で利用シーンがあり、とても重宝しています。

今後はPerlは仕事でのみ利用となり、JavaScriptはiPhoneアプリ開発(TitaniumMobile)やnode.js等で利用が増えてくるのではないかと思ってます。


Make your own mind maps with Mindomo.
このエントリーをはてなブックマークに追加

2013年4月21日日曜日

twitter bootstrap railsでdropdownが動かない時の対処

備忘録。
下記環境のdevelopment環境にてdropdownが動かない、herokuのproduction環境では正常に動作するという事象に遭遇しました。


  • 環境
    • OS:MacOSX 10.7.5
    • Ruby:1.9.3p194
    • Rails:3.2.13
    • twitter-bootstrap-rails:2.2.6
  • 原因
    railsのasseteのprecompileという動作が原因のよう。こちら参照。
  • 対処
    こちらを参考に、config/environments/development.rbを編集。

    変更前
  • config.assets.debug = true

        変更後
  • config.assets.debug = false

以上

このエントリーをはてなブックマークに追加

2013年4月7日日曜日

HerokuのDB接続時のエラー「FATAL: password authentication failed for user "xxx" (PG::Error)」

Herokuの標準DBであるPostgresに接続する外部スクリプトを使っていたある日、突然、該当DBに接続できなくなり、ハマったのでメモ。


  • 事象
    • 外部スクリプトから、HerokuのDBに接続しようとすると「FATAL: password authentication failed for user "xxx" (PG::Error)」エラーが発生し、接続できない。
  • 原因
    • 答えを先に言うと、「Herokuのメンテナンスのタイミングで、DBの設定情報が変更されていた」でした。
    • さらにHerokuからのメールをよくみると、ちゃんと「DBの設定情報が変更される。app側の設定は適切に変更しておくから」と書いてありました。


[Heroku Support] Maintenance is required for your database (ticket #xxxxx)
Your database HEROKU_POSTGRESQL_xxx_URL on xxx-xxx-xxx requires maintenance. During this period, your database credentials will become read-only. Once it has completed, your database URL will have changed, but we will update your app's config variables accordingly.
We expect maintenance to last just a few moments. We will update this ticket once it's complete


  • 対応
    • Herokuのサポート対象外(Herokuが知る由もない)外部スクリプトのDB接続情報を適切なものにupdateするだけ。
    • Heroku DBの設定情報は「heroku config」コマンドで確認。こちらを参照。


原因が分かったらなんてことはないが、なかなか「メンテナンスによる設定変更」ということに気づけなかったので、残しておきます。
このエントリーをはてなブックマークに追加

2013年1月17日木曜日

Yahoo!Japanカテゴリを解析するgreasemonkeyスクリプトを作成してみた

先日公開した、Mobage解析サイトに続き、Yahoo!Japanカテゴリの解析ツールを作成してみました。
FireFox用アドオンのgreasemonkey用ユーザスクリプトを用いて、表示されているサイトのFQDN、AS番号、AS番号運用企業名を表示します。
greasemonkeyは、javascriptを用いて、webサイト表示時に情報追加表示等ができるもので、以前から気になっていたのですが、今回やっと試すことができました。

動作概要

  1. Yahoo!Japanカテゴリに登録されているサイトのURL からFQDNを抽出、表示。
  2. 1で抽出したFQDNからIPを求め、そのIPからAS 番号情報を抽出、表示。

使用方法

  1. Firefoxアドオンのgreasemonkeyをinstall
  2. 下記サイトにアクセス。
    http://userscripts.org/scripts/show/156710
  3. 画面右上の[install]をクリックし、表示されたウィンドウにて[インストール]をクリック。install完了
  4. Yahoo!Japanカテゴリにアクセスすると、installしたスクリプトが自動で起動し、解析結果を自動で表示。
    「http://dir.yahoo.co.jp/Computers_and_Internet/Hardware/SmartPhone/Site/Twitter/?q=Twitter」の解析結果は下記の通りです。

ハマった点

  • cross domainでも使用できるGM_xmlhttpRequestを使うために、greasemonkeyを使ったが、GM_xmlhttpRequestは非同期通信となり、AS番号の情報の取得および表示のタイミングを取るのに手間取った。
  • AS番号情報の情報参照先サイトのレスポンスが遅いため、全体的に情報表示が遅くなった。これは今後の課題。

参考にしたサイト


このエントリーをはてなブックマークに追加

2013年1月5日土曜日

昨年の振り返りと、今年の目標

昨年に続き今年も。まずは振り返りから。

できたこと

  • iPhoneアプリの作成
    開発環境としてTitanium Mobileを利用(言語はjavascript)
    iTunes appstore、githubで公開
    ※appstoreでreviewいただけたのは本当にうれしかった。Titanium Mobileが安定したら、また開発再開したいと思います。
  • ビジネス会計2級合格
    会計知識0から始めて3級合格。そして、2回目の挑戦で2級合格。
  • OpenFlowコントローラ:Tremaとの出会い
    ちょうどTrema本の執筆の噂を聞いたので、文言の間違いやサンプルコードの動作確認などに参加しました。初めてのオブジェクト指向型言語で、最初は少し戸惑いましたが、Trema本にはRubyに関する簡単な説明もあるので、なんとか進める事ができました。
    書籍中「協力者」として、名前を記載いただきました。
    今まで簡単なスクリプトぐらいしか書く事がなく、Perlで対応していましたが、やっとRubyを使う機会を得ることができました。
  • HerokuとRuby on Railsでサイト作成
    Trema本でRubyに触れる機会を得たので、もう1つ気になっていた「Ruby on Rails」にも挑戦してみました。そして、PaaSであるHerokuを利用し、サイト構築してみました。サイトはこちら。
    技術要素としては他に、O/R mapperの「ActiveRecord」や、CSSフレームワークの「Twitter Bootstrap」のRails版も利用しました。
  • ブログ
    この1年で、月間PV数が約2倍になりました。
    「ブログは継続が重要」を実感しました。

できなかったこと

  • 日頃の体力作り
    昨年後半から、朝のウォーキングが続かなくなった。
  • ビッグデータ関連の取り組み
    Hadoop、機械学習などを想定していたが、具体的な課題がないと、表面的な学習だけで終わり、継続できない。

で、

今年の目標

  • Tremaのアプリ作成
  • OpenStack, CloudStackのplugin作成
    Tremaの学習のoutputとして、何か作成してみたいなと。結局、OpenFlowで何ができるのか、何をしたいのか。。。
    できれば、plugin的なものもできればいいなと。OpenStackなど、CloudStack以外からも学ぶところは多いなと。
  • Railsを利用したサイト構築
    Railを通じて、今風のサイト構築の勘所を学習したいなと。

今年もよろしくお願いいたします。
このエントリーをはてなブックマークに追加