Upload
naoki-sekiguchi
View
1.176
Download
0
Embed Size (px)
Citation preview
Web of Lanterns(デモ)
• Revolving Lantern~ A Web browser ~
– 360度ディスプレイ
– フィジカルインターフェース
• NyoroNyoro Lantern~ duplicate and fork physical ~
– 3D変形
–モーションのダウンロード
– CSS lighting
Spec (2015.03. now)
B2G(OSS版FirefoxOS)2.5Hardware:● Rockchip RK3066 (1.6Ghz)
● 1GB DDR3 DRAM
● 8GB Nand Flash
● HDMI Micro x 1
● Micro SD Slot x 1
● USB (Micro x 2, Full x 1)
● I/O 28pin
(incl. I2C, UART, GPIO, SPI, Sound in/out etc)
Interface
micro USB (OTG)
micro HDMI
micro UWB(DEBUG)
ADB接続やイメージの書き込み。
AC電源
Full USB端子
シリアルコンソールなど。電源ポートも兼ねる。
ちょっと抜けやすい。。
WiFiアダプタやUSBハブ用
ローダーモードになるのに使用(後述)
recovery key
I/O 28pin スルーホールで用意しました。
名前(CHIRIMEN)の由来
Web
ハード
実は初めは“INARI”で、初期サンプルには印字が。。。
CHIRIMEN = 縮緬(織物)
“Web”と“ハード”異なる世界を織り込んで新しいモノを作っていく
準備• まずお手元にCHIRIMENを用意して・・・
・・・2015.3、現存するCHIRIMENは5枚
• Marsboard RK3066
– 同じチップを使った組み込みボード
– ソフトウェア的にはCHIRIMENと一緒
→同じイメージをインストールできる
– http://www.marsboard.com/
代わりのボード
B2Gのインストール
おおまかな手順• B2Gイメージのビルド• update.imgの生成• ローダモードで接続しイメージの書き込み
• 書き込みに必要なツールなど– https://github.com/MozOpenHard/CHIRIMEN-tools
• 詳しい手順は以下– https://github.com/MozOpenHard/CHIRIMEN-
tools/blob/master/doc/installFirefoxOS.pdf
B2Gイメージのビルド
• B2Gのビルドに必要なパッケージのインストール(割愛)
• B2Gのソースを取得( Matchstick用のソース)
• MozOpenHardのリポジトリのソースを取得
• B2Gをビルド
$ git clone https://github.com/flingone/B2G-FlingOne.git $ cd B2G-FlingOne $ ./config.sh –j 4 rk30sdk
$ cd.repo$ git clone https://github.com/MozOpenHard/local_manifests.git $ cd .. $ repo sync –d –j 4
$ ./build.sh –j 4 $ ./flash.sh
rockdev/Image/にboot.img, kernel.img, recovery.img, system.imgが生成される
update.imgの生成
• 必要なツールの導入
• ビルドしたboot.img, kernel.img, recovery.img, system.imgをpackage-fileに従い配置
• mkupdate.shを実行 ->update.imgが生成される
$ git clone [email protected]:MozOpenHard/CHIRIMEN.git
$ cd B2G-FlingOne/rockdev/Image$ cp boot.img kernel.img recovery.img system.img CHIRIMEN/rockdev-rk3066/Image/
$ cd CHIRIMEN/rockdev-rk3066/$ ./mkupdate.sh
イメージの書き込み(ubuntu)• Linux_Upgrade_Tool_v1.2.1.zipを任意の場所に展開し、PATHを設定
• CHIRIMENをローダモードで接続– recovery keyを押しながら電源投入
– ※Marsboardの場合はVol+
• イメージの書き込み
※自動で再起動するのでFirefoxOSが立ち上がるまで待つ
※書き込みで失敗する現象が何度か確認されているので、うまくいかな
い場合、2,3回書き込み直してみると成功するかも
$ cd CHIRIMEN$ PATH=${PATH}:`pwd`/Linux_Upgrade_Tool_v1.2.1
$ upgrade_tool uf update.img
WebアプリからGPIO制御
node(httpサーバ)
gecko
gonk
gaia(Webアプリ)
WebGPIOAPI
• Gecko APIからGPIO制御(本間さんが実現!?)
• nodeを経由してGPIOを制御してみる
sysfsからのGPIO制御
• まずはshellコマンドからのGPIO制御• GPIO端子の論理番号確認
– CHIRIMENは基板上のLEDがGPIO6_B3(gpio363)から制御可能– 6*32 + 160 + 8+3 = 363– 計算方法: http://www.hotmcu.com/wiki/Use_GPIO_in_marsboard_RK3066
• sysfsからGPIO制御
# echo 363 > /sys/class/gpio/export# echo “out” > /sys/class/gpio/gpio363/direction# echo 1 > /sys/class/gpio/gpio363/value
$ adb shell
CHIRIMENにログイン
※後ほど使うので、これをledon.shとして保存しておく
ledon.sh
nodeのインストール• nodeのバイナリファイルをCHIRIMENにpush
– ビルドしてくれたバイナリファイル(感謝)
• https://www.facebook.com/groups/305208196333685/353904911464013/
• nodeからshellコマンドでGPIO制御のコマンドを実行– ※ shellスクリプトを実行する場合/system/binへのシンボリックリンクを作っておく
$ adb root$ adb remount$ adb push node /system/bin/node
$ adb shell# mount –o remount, rm /# ln –s /system/bin /bin
nodeサンプルコードvar http = require('http'),
url = require("url");exec = require('child_process').exec;
http.createServer(function (req, res) { var path = url.parse(req.url).pathname;if(path.charAt(0) == "/"){if(path.split("/")[1] == "ledon"){console.log("ledon");ledOn();
}}
}).listen(8000);console.log('Server running at port 8000');
function ledOn(){var child = exec("/etc/www/nodeGpio/ledon.sh", function(err,
stdout, stderr) {if (!err) {console.log("success");
}else{}
});}
server.js
サーバプログラムの実行• server.jsとledon.shをpush
• shellスクリプトのパーミッションを変更し、サーバプログラムの実行
• サーバへアクセス
→ 基板上のLEDが点灯するはず!
$ adb push server.js /etc/www/nodeGpio$ adb push ledon.sh /etc/www/nodeGpio
$ adb shell# cd /etc/www/nodeGpio# chmod 755 ledon.sh# node server.js
# busybox wget http://127.0.0.1:8000/ledon
便利グッズの紹介
• スルーホール用テストワイヤ– http://www.marutsu.co.jp/pc/i/137556/–スルーホールに直接挿すことができる–ブレッドボードにも挿せる(但し接触は弱め)
今後のこと
• Maker Faire @ all over the world!
– Tokyo, NY,…
• CHIRIMENおさわりイベント
–随時 ※facebookコミュニティでアナウンスします
プロジェクトに参加してくれる方• MozOpenHard
– http://mozopenhard.mozillafactory.org/
• Facebookコミュニティ(議論の場)
– https://www.facebook.com/groups/305208196333685/?pnref=lhc
• CHIRIMEN技術情報
– http://mozopenhard.mozillafactory.org/techinfo#hardspec