Intel EdisonのGetting startedその2.(Arduino IDEからの転送,Edison初期設定)

Getting Started Edison

  • このエントリは以下の2つの事項について説明します.

    • Arduino IDEからのプログラムの書き込み方法
    • Edisonの初期設定(デバイス名,パスワード,WiFi設定)を行う方法
  • これも公式の訳+アルファです.

  • 購入してからファームウェアを更新していない場合は,1つ前のエントリを参考にしてファームウェアの更新を行ってください.

step 1. Connectiong Edison

  • 箱から出したedisonをボードに接続する.順番としては前回エントリのファームウェア更新よりも前ですね〜

step 2. Download Edison Arduino IDE

step 2-1. Edison 用Arduino IDEのインストール

  • 公式ページから,Edison用のArduino IDEをダウンロードしてインストール
    • Macの場合,アプリ名が”Arduino.app”となっており,本家Arduinoと競合するので,”Arduino edison.app”とかにでもリネームしておきましょう.

step 2-2. テストとしてBlinkプログラムをEdisonへ書き込む

HWでのHello, World!であるBlink(LED点滅)プログラムを書き込みます.

  1. Arduino IDEを起動して,File -> Examples -> Basics -> Blink を開く
  2. Tools -> Board で”Intel Edison”を選択
  3. Tools -> Serial Portで,”/dev/cu.usbmodemxxxx”を選択

    • xxxx部分は各環境により異なります.
    • ttyではなくcuのものを選択します.
  4. IDE左上のチェックマークのアイコンをクリックしてビルドする

  5. チェックマークアイコンの隣の矢印アイコンを押してEdisonへプログラムを転送する

    • No, such file or directory というエラーが出たら指定しているSerial Portが間違っているので,3に戻ってSerial Portの選択を行います
  6. Arduinoボード上のLEDが点滅すればOKです.

    • Break out boardの場合は該当するGPIOにLEDつないで確認するのかな?未確認です!

Step 4. 初期設定(デバイス名,SSID名,パスワード,Wifi設定)

  • edisonの設定を行うために,”configure_edison”というコマンドが提供されている.さらに,setupオプションを付けることで初期設定を一括でできる.
# 初期設定の実施
 # configure_edison --setup
# これで実行される設定は以下の3つ.
# 1. デバイス名の設定.これはSSIDとしても利用されるようです.
# 2. rootパスワードの設定.これはSSIDパスワードとしても利用されるようです.
# 3. WiFiの設定.初回は失敗したけど,2回目でAPが見えるようになりました.
# 最後に表示されるIPかURLを使ってブラウザからアクセスするとEdisonに関する情報が確認できます.
# 各設定で間違えたら,以下の補足にあるようにconfigure_edisonコマンドのオプションを変えて実行しましょう.

補足

ちなみに,”configure_edison”コマンドのオプションは以下のようになっている.

# configure_edison --help
usage: configure_edison [-h] [--server]
                        [[--setup | --name | --password | --wifi]
                        [--showWiFiIP | --version | --latest-version | --upgrade | --disableOneTimeSetup | --enableOneTimeSetup | --flash <version> [<release name> ...]
                        | --showNames]

optional arguments:
  -h, --help            show this help message and exit
  --server              Starts the server (testing only)
  --setup               Goes through changing the device name, password, and
                        wifi options
  --name                Changes the device name
  --password            Changes the device password
  --wifi                Changes the wifi options
  --showWiFiIP          IP address associated with the wireless interface
  --version             Gets the current firmware version
  --latest-version      Gets the latest firmware version
  --upgrade             Downloads the latest firmware
  --disableOneTimeSetup
                        Disable one-time setup and WiFi access point
  --enableOneTimeSetup  Enable one-time setup and WiFi access point
  --flash <version> [<release name> ...]
                        Downloads and flashes an image
  --showNames           Show device name and SSID

wifi接続先を追加するときとか,Edisonの名前(SSID)変えたい時とかも使えますね.
例えばwifiの設定変更なら以下のようになります

# configure_edison --wifi

きたぞ!ぼくらのIntel Edison!けどファームが古いクソ野郎だったので更新する.

Edison,まあこういうデバイスの発売日としてはありがちで,ファームウェアが古い.
シリアルで送受信する文字のとりこぼしとかが気になる. 購入したらまずは新しいファームウェアを書き込むべきだと思う.

Edisonのファームをアップデートする.

step 1. Connecting Edison

  • 2本のmicro USB ケーブルを使ってEdisonボードとPCを接続します.
    • Arduino Boardの場合,micro USBコネクタとUSBコネクタの間にスイッチがありますが,これをmicro USBコネクタ側にしておくようにしてください.
    • 補足:J3 -> J16の順にPCと接続する必要があります.
  • 接続が成功すると,FinderにEdisonがドライブとして現れます.

step 2. Remove old images

  • ターミナルを開き,以下のコマンドを順に実行します.
# Edisonのドライブを開く
$ cd /Volumes/Edison
# Edisonに入っている全てのファイルを削除(不可視ファイルも削除する).
$ rm -rf *
$ rm -rf \.*
# lsして全てのファイルが消えていることを確認(何も表示されなければOK)
$ ls 

step 3. Download the latest image

step3-1. 下準備(ファイルシステムの変更)

  • 出荷時にはEdisonのファイルフォーマットはFAT16に設定されています.MacではFAT16への書き込みができないため,ファイルシステムを変更します.

    • Windowsの場合には問題ないのでStep3-1は飛ばして良いです.また,Macの場合でもファイルシステムがすでに変更されていれば飛ばします.
  • アプリケーションディレクトリ内のユーティリティディレクトリにある,ディスクユーティリティ.appを起動します.

  • 左のカラムにある,”Linux File—CD Gadget Media”を選択.
  • 右のカラムの,”消去(Partition)”タブの,”Format”を”MS-DOS(FAT)”に変更します

step3-2. イメージのダウンロードと展開

  • Intel のサポートページから,”Edison Yocto complete image”をダウンロードし,解凍します.
  • 解凍したディレクトリの中にある全てのファイルを,Edisonのドライブ(/Volumes/Edison)へコピーします.

step 4. Flashing Edison

  • ターミナルを開き,以下のようにコマンドを入力し,実行します
# 以下のコマンドを入力し,Enterではなく,”tab”キーを押す.
$ screen /dev/cu.usbserial
# すると,以下のような形でコマンドの~usbserial以降が自動補完される
# “A102GW3T”は各自の環境により異なります.
$ screen /dev/cu.usbserial-A102GW3T
# さらにボーレートをオプションとしてコマンドへ追加しEnterを押して実行.
$ screen /dev/cu.usbserial-A102GW3T 115200 -L
# screenコマンドを実行すると黒い画面が表示されるので,Enterを2回入力すると以下の様な文字が表示されます.
> Poky (Yocto Project Reference Distro) 1.6 edison ttyMFD2

> edison login:
# >edison loginの後に,”root”を入力しEnter
> edison login: root
# 再起動して,Edisonドライブへ展開したimageを書き込む(※ これを実行すると,以前に設定していた,userアカウント,パスワード,WiFiなどの設定は初期化されます)
# 書き込みには3分くらいかかります.画面表示が止まっていても辛抱強く待ちましょう.
 # reboot ota
  • 書き込みが成功すると,以下の画面のようにログイン画面が表示されます.

  • ちなみにバージョンの確認方法は以下

$ cat /etc/version
> edison-weekly_build_68_2014-09-08_13-49-07
# 2014/10/26現在の最新ファームのバージョンです.

Punch Through の Light Blue Bean がようやっとやって来た!

タイトルのとおり,Punch Through のBeanがやって来た.
http://punchthrough.com/bean/
たぶんMakeかなんかを見て1年半くらい前に注文(投資)したと思うんだけど,ようやっと来た.
小さいしかわいい感じだし,スマホなんかのアプリと連携するシンプルなデバイスのプロトタイプ作るには良さそうだと思う.


で,こいつはArduino IDEからプログラム書き込めるんだけど,
その準備に微妙に手間取ってしまってだるい感じだった.
あとでまとめたい.
http://punchthrough.com/bean/getting-started/

注意点としてはざっくり3つあって,
1.Arduino IDEは1.0.5を使う
2.Arduino IDEを起動した状態でTeensyduinoとBean Loaderのプラグインを入れる.で,その後再起動
3.Bean Loaderは以下の写真のディレクトリにあるんだけど,特に気にする必要はなくて,ArduinoIDEで対象のマイコンボードをBeanにして,Verifyしてあげれば勝手に立ち上がる.


あと,Macから4台同時に見えることがなくって,どれか1台だけが見えてる状態が基本なんだけどこれなんなんだろう.
うちにはMacが3台あるんだけど,全部同じ状態.
こいつらBluetoothのヘッドホンも見えないし,Mac側のBluetoothが腐ってるんだろうか.
iPadからは全然問題なく4台同時に見えるし,ヘッドホンもつながる.
とてもだるい.

コーヒーの抽出状況を自席でチェックできるやつをつくった

弊社では最近プライベートで新規性や進捗性を出そうとすると偉い人に
お伺いを立てないといけないので、
全く使い古されたコーヒーメーカーの抽出状況を確認するシステムを
今日のお昼休みから作り始めた。
↑別におもしろくない身内ネタ。


仕組みとしては超単純で、コーヒー抽出中に光ってるLEDをcdsで計測して、
その結果をEthernetシールドつけたarduinoで取得してそこのサーバから配信する。
細かい点としては、ルータのイーサの口がお茶場から遠いので、
センサ部分とサーバ部分を担う2つのarduinoXBeeで中継してる。
これは大学時代にインターネットから家電を制御するシステム作った時のやつをそのまま流用してる。
来週のお昼休みにはアイコンとかでパッと抽出状況確認できたり、残量確認できるクロムエクステンション作りたい。
あとたぶんそのうちコーヒーひっかぶって壊れると思うので、ケース的なものもどうにかしたい。


最後に.
コーヒーメーカーのコーヒーがなくなってるのに気づいたらちゃんと新しいの作りましょう。

iOS8で変わるデベロッパの役割(WWDC2014 おもしろかったこと)

サービス、言語、プラットフォームをAppleが殴りまくるという大変すばらしいWWDCでした。死体臭い。

iOS8は、人中心の、計算機とか実世界とかそういう枠をとっぱらったサービス提供をするためのプラットフォームなんだと思った。
・Home Kit(HWのとりこみ)
・Health Kit(行動、状態のとりこみ)
・アプリ間連携(とりこんだコンテキストに対してアプリ間連携によるシームレスなサービスを提供。HWもSWも同じ感じで扱って、ひとつのサービスを提供)



例えば洗濯機かけたままユーザが外出したのを察知して乾燥までやってくれるとか、かけ忘れたカギをかけてくれるとか。
例えばTwitterで見かけたイカすミュージックビデオを1人でリビングにいるときはテレビに、3人でリビングでクイズ番組見てる時はPCに表示してくれるとか。
ドライブ中に超気まずい時に社内の人のこれまで聞いてきた音楽とか、見てきた映画とかのアンドとって場をつなぐための曲をチョイスしてくれるとか。
そういうみんながこれまで思い描いてきたいろんな個々のパーツが連携して新しいサービスとか体験を提供するためのプラットフォームがiOS8。



これまでデベロッパがやってた、個々のパーツ作ることよりも個々のパーツを統合させるプラットフォームがiOS8なんだから、それ使ったクールなサービス提供するのが、これからのデベロッパの役割では。そうはいってもそのためにどんな個々のパーツを用意しておくかというのは大変重要だと思う。そのためのSwiftであり、Metalなんでしょう。

ゴツい発表でした。絵文字プログラミング最高!!

最新のChrome(v24)で動くWebRTCビデオチャット

WebRTCのPeerConnection,Chrome18以降は触れてはならないみたいな感じになってたけど,
最近のAPIだとどうなんだろうと思ってすごいシンプルすぎるビデオチャットアプリをつくった.


こんな感じになる.ふつうのWebカムがなかったので相手側端末はタッチパネル作った時の赤外線フィルタつけたWebカムでテレビの画面をとってる.

  • ソース

shiitakeo/webRTC_simplePeerConnection · GitHub

  • デモ

http://shiitakeo.com:3000/

  • 動かしかた

http://www26.atwiki.jp/shiitakeo/pages/37.html


接続先を選んだり,チャット部屋を作ったりとか全然してないので,そのときビデオチャットしてない人と勝手にマッチングされる.
ランダムチャットみたいな感じでランダムビデオチャット組んだらエロいことあるかもしれないと思ったけど,
ググったらクソほど出てきたのでクソです.あーあークソだなー.