Rapiro の起動

組み立てた Rapiro を起動するために必要なソフトをダウンロード

http://arduino.cc/en/Main/software
から
Arduino IDE
をダウンロード

Ubuntu で行うので 64bit 版のものをダウンロード
rapiro

ダウンロードしたら

tar zxvf arduino-1.0.6-linux64.tgz

で解凍

cd arduino-1.0.6/
./arduino

で起動

次にFTDIドライバ
これは
http://www.ftdichip.com/Drivers/VCP.htm
からダウンロード
してみたけど、これを使わなくても
Ubuntu12.04 の場合起動した

ダウンロードページに
All FTDI devices now supported in Ubuntu 11.10, kernel 3.0.0-19
と書いてあり

rapiro2

uname -r

で確認したら、
3.2.0-75-generic
だったのでカーネルでサポートされてるのかもしれない

そして次に
https://github.com/Ishiwatari/RAPIRO
から
サーボモータ制御基板用標準ファームウエア
をダウンロード
Download ZIP
をクリックしてダウンロード
rapiro3

そして

unzip RAPIRO-master.zip

で解凍

解凍後 Arduio IDE でこのファイルを開く
ファイル名は
RAPIRO_ver0_0.ino

rapiro5

次にRapiro の後ろにある microUSB から
Ubuntu の USB へ接続
すると rapiro の目が青く点灯

http://makers-with-myson.blog.so-net.ne.jp/2013-10-27
で思い出したけど
Ubuntu で実行するときには
sudo をつけて root 権限で動かす必要がある

ちなみに
file > preferences

Display line numbers
にチェックをいれれば行番号が表示されるようになる
rapiro6

これについては
http://nuneno.cocolog-nifty.com/blog/2014/11/arduino-ide-106.html
を参考にさせていただきました

これで Rapiro の電源をいれてみたけど
足が変な方向に傾くため
int trim[MAXSN]の配列に角度の補正値を入力
することに

コの場所を調べるには
ardunio IDE

ctrl + f で検索できるので
trim
で探すと
22行めに発見することができる

rapiro7

現在の状態は左足が内側を向いてしまうので
設定値を変更していく

// Fine angle adjustments (degrees)
int trim[MAXSN] = { 0,  // Head yaw
                    0,  // Waist yaw
                    0,  // R Sholder roll
                    0,  // R Sholder pitch
                    0,  // R Hand grip
                    0,  // L Sholder roll
                    0,  // L Sholder pitch
                    0,  // L Hand grip
                    0,  // R Foot yaw
                    0,  // R Foot pitch
                    0,  // L Foot yaw
                    0}; // L Foot pitch

が元のコード

Foot yaw は足の向きの調整
最初はこれを40増やしてみた
そしたら左側を向いてしまったので修正
ちょっと傾いていたので
20, // L Foot yaw
に調整

20, // R Foot pitch
とすることで
足の方は修正できた
どうやら Foot picth が足の傾きの調整

次に左腕の調整
Sholder roll が肩の位置の調整
腕が後ろにずれるので
-5, // L Sholder roll
負の値にすると前にでてくる
正の値だと後ろに下がる

次に右腕の調整
こちらは正の値だと前にでた
5, // R Sholder roll

次に胴体の設定
これは Waist yaw を設定すればOK
右前にずれているので
-10, // Waist yaw

腕の角度を調整したいので
Sholder pitchを調整して
-10, // R Sholder pitch

値を変更したら
Tools > Board > Ardunio Uno
を選択し
Upload アイコンをクリック

今回は修正した値は

// Fine angle adjustments (degrees)
int trim[MAXSN] = { 10,  // Head yaw
                    -10,  // Waist yaw
                    5,  // R Sholder roll
                    -10,  // R Sholder pitch
                    0,  // R Hand grip
                    -5,  // L Sholder roll
                    15,  // L Sholder pitch
                    0,  // L Hand grip
                    0,  // R Foot yaw
                    25,  // R Foot pitch
                    20,  // L Foot yaw
                    0}; // L Foot pitch

rapiro8

ちなみにコの設定値は私の環境の場合です
汲みたてのときにサーボモーターが動いたりすると
値を変える必要があります

これで Rapiro から異音や変な角度になっていなければOK

ここまでできたら、いよいよ Rapiro の起動
動かし方は Ardunio IDE のシリアルターミナルを使う

Ctrl + shift + m で
Serial Monitor を起動できるので

http://wiki.rapiro.com/page/serial-command_ja/
を参考に実践

なおシリアルターミナルの通信速度を
57600bpsに設定する必要があるので
57600 baud
に設定してから
#M7
と入力し
Enter をおすと両手を降り始めます
rapiro9

動作を止めるには
#M0
で動きを止めます
rapiro10

Android apk ファイルの解析

Android apk ファイルの解析

まず
Android 端末を USB デバッグ有効にして
PCとつなげます

 adb shell pm list packages -f

でインストールしているアプリのパッケージをみることができるので

この出力結果を元に apk ファイルをPCに抜きだします

ちなみに、大量にインストールしていると
見分けるのが大変なので
grep コマンドをパイプで使うと簡単に見れます

例えば、パッケージ名に developapp とあるなら

adb shell pm list packages -f | grep developapp

とします

この developapp をパッケージ名の一部に変更すれば見つけやすくなります

PCへの抜きだしは adb pull でできるので
今回はGallery を開くアプリを抜き出すので

adb shell pm list packages -f | grep galle

で目星をつけて、結果として出力された

package:/data/app/net.developapp.opengallery-1.apk=net.developapp.opengallery
package:/data/app/net.developapp.exifgallery-1.apk=net.developapp.exifgallery
package:/system/app/GalleryGoogle.apk=com.google.android.gallery3d

から

net.developapp.opengallery-1.apk=net.developapp.opengallery

を抜き出すことにします

adb pull /data/app/net.developapp.opengallery-1.apk

まずは
Android Manifest.xml の中身を見るには
aapt コマンドを使います

このコマンドの場所は
パスを通していないのなら
android-sdk-linux/build-tools/
の中

ネットで検索すると
17.0.0
とかあるけど
ls コマンドで調べてみたら

drwxrwxr-x 11 snowpool snowpool 4096  5月 14  2014 ./
drwxr-x--- 13 snowpool snowpool 4096  5月 14  2014 ../
drwxrwxr-x  4 snowpool snowpool 4096 11月 26  2013 17.0.0/
drwxrwxr-x  4 snowpool snowpool 4096 11月 26  2013 18.0.1/
drwxrwxr-x  4 snowpool snowpool 4096 11月 26  2013 18.1.0/
drwxrwxr-x  4 snowpool snowpool 4096 11月 26  2013 18.1.1/
drwxrwxr-x  4 snowpool snowpool 4096  3月 17  2014 19.0.0/
drwxrwxr-x  4 snowpool snowpool 4096  3月 17  2014 19.0.1/
drwxrwxr-x  4 snowpool snowpool 4096  3月 17  2014 19.0.2/
drwxrwxr-x  4 snowpool snowpool 4096  3月 17  2014 19.0.3/
drwxrwxr-x  4 snowpool snowpool 4096  5月 14  2014 19.1.0/

とバージョンごとに分かれている模様

とりあえず、今回は最新っぽい 19.1.0 を使って見ます

android-sdk-linux/build-tools/19.1.0/aapt l -a net.developapp.opengallery-1.apk 

これで端末にAndroidManifest.xml の情報がでてきます
とはいってもソースコードがでるわけではないので注意

AndroidManifest.xml に燗する情報は
Android manifest:
とかかれているところから下の部分

今回は以下のようなかんじ

Android manifest:
N: android=http://schemas.android.com/apk/res/android
  E: manifest (line=2)
    A: android:versionCode(0x0101021b)=(type 0x10)0x1
    A: android:versionName(0x0101021c)="1.0" (Raw: "1.0")
    A: package="net.developapp.opengallery" (Raw: "net.developapp.opengallery")
    E: uses-sdk (line=7)
      A: android:minSdkVersion(0x0101020c)=(type 0x10)0x11
      A: android:targetSdkVersion(0x01010270)=(type 0x10)0x11
    E: application (line=11)
      A: android:theme(0x01010000)=@0x7f060001
      A: android:label(0x01010001)=@0x7f050000
      A: android:icon(0x01010002)=@0x7f020000
      A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff
      A: android:allowBackup(0x01010280)=(type 0x12)0xffffffff
      E: activity (line=16)
        A: android:label(0x01010001)=@0x7f050000
        A: android:name(0x01010003)="net.developapp.opengallery.MainActivity" (Raw: "net.developapp.opengallery.MainActivity")
        E: intent-filter (line=19)
          E: action (line=20)
            A: android:name(0x01010003)="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN")
          E: category (line=22)
            A: android:name(0x01010003)="android.intent.category.LAUNCHER" (Raw: "android.intent.category.LAUNCHER")

次に apk ファイルのソースコードをみる方法

これは apk ファイルは zip形式ファイルなので
拡張子を apk から zip に変更すれば中身をみれる

cp net.developapp.opengallery-1.apk net.developapp.opengallery-1.zip

としてファイルをコピーして zip 形式に変更

解凍するとファイルが広がるので

mkdir apk
cp net.developapp.opengallery-1.zip apk/
cd apk
unzip net.developapp.opengallery-1.zip apk/

とすると解凍したときにわかりやすい

ファイル一覧をみたいので

drwxrwxr-x  4 snowpool snowpool   4096  1月 30 21:35 ./
drwx------ 83 snowpool snowpool  69632  1月 30 21:34 ../
-rw-rw-r--  1 snowpool snowpool   1708  1月 14 20:50 AndroidManifest.xml
drwxrwxr-x  2 snowpool snowpool   4096  1月 30 21:35 META-INF/
-rw-rw-r--  1 snowpool snowpool 714684  1月 14 20:50 classes.dex
-rw-r--r--  1 snowpool snowpool 289161  1月 30 21:35 net.developapp.opengallery-1.zip
drwxrwxr-x  8 snowpool snowpool   4096  1月 30 21:35 res/
-rw-rw-r--  1 snowpool snowpool   3424  1月 14 20:49 resources.arsc

この中にある classes.dex
がプログラムの本体

画像などのリソースファイルについては
res フォルダの中にあります

注意点としては
これらのxmlファイルはバイナリファイルになっているためテキストファイルのようにソースをみることができません

これを解析するツールがGoogle から提供されているので
これをダウンロード
https://code.google.com/p/dex2jar/

今回は
dex2jar-0.0.9.15.zip
をダウンロードして解凍
Ubuntu なら

unzip  dex2jar-0.0.9.15.zip 

これで
dex2jar-0.0.9.15 の中に
dex2jar.sh
があるので、これを使って
classes.dex を jar に変換する

~/dex2jar-0.0.9.15/dex2jar.sh classes.dex 


classes_dex2jar.jar
が作製される

この jar ファイルを逆コンパイルした状態で閲覧するには
jd-gui を使います

http://jd.benow.ca/
からダウンロード可能で
windows
mac
Linux
どれでも対応しています

今回は Linux 対応版をダウンロード

tar zxvf jd-gui-0.3.5.linux.i686.tar.gz 

で解凍します

解凍すると
jd-gui*
があるので

./jd-gui

で起動

あとは
ソースコードをみたい jar ファイルをドラッグ&ドロップするとソースコードをみることができます

jd

Ymobile 305ZT のMy Y!Mobile からの通信制限解除

去年 Ymobile の機種変を行いました

305ZT に変更した理由は
http://faq.ymobile.jp/faq/view/300596
にあるように通信制限の解除が可能になるためです

とはいっても毎回通信制限の解除を行わなければならないため 
面倒ではあるのですが

実際、私自身も今月の初めに通信制限をなりましたが
簡単に解除できました

ただ気になるのは
http://www.arakawa.me/?tag=305zt
でかかれていた
低速化になる警告なしにいきなり通信速度が低下する状況
というものが存在することです

端末そのものでも解除はできるのですが
My Y!mobile からでもできるのでこちらを試してみました

ログインしてから
▼オンラインサポート(契約内容照会/変更、請求情報の確認など)
をクリック

ymobile

契約内容紹介/変更
をクリックし

ymobile2

通信速度に戻すお申し込み・ご利用データ通信料の確認
をクリック

ymobile3

通常速度に戻すお申し込み・予約・キャンセル
の次へをクリック

ymobile4

申し込みのところの
通常速度に戻すお申し込みを選択し
確認をクリック

ymobile5

ymobile6

最後に確認画面で
登録
をおすと手続き完了となります

ymobile7

端末に制限解除が表示されてない状態の場合
こちらからも解除できるのでおすすめです

Rapiro の購入と組み立て

去年から電子工作をはじめて
RAPIRO
でいろいろと操作してみたいので購入してみました

なお、スイッチサイエンスでも購入が可能です
会員登録したところ、年始に割引クーポンをいただきました

これを使えば Rapiro を15%OFFで購入できたのですが
年末に購入してしまったため
このクーポンは Ardunio Uno 関連に使いました

Rapiro そのものは4万5千円と高めで
汲みたてのときに失敗したときのことも考えて
部品も売っているか調べたところ
スイッチサイエンスで部品の購入が可能のようなので
もし途中で部品が壊れたときの保険にもなりますし
後々自分で改造するときにも使えそうです


https://www.switch-science.com/catalog/list/540/

から部品の購入ができるので
もし途中で部品を壊してしまったりなくしたときにはここから購入することで対処できます

なお、RAPIRO
の組み立てにはドライバーが必要になります

私の場合、昔自作パソコンのために購入したドライバーを使いましたが
小さいドライバーが必要になるため
もし内容なら
スイッチサイエンスで購入するといいかもしれません

このRapiroスターターセットは Amazon にはないため
スイッチサイエンスからの購入となります

購入のURLは
https://www.switch-science.com/catalog/1807/

また、組み立てるときにサーボモータの初期化のために電池が必要になります
また
Rapiro 組み立てマニュアル も公開されているのですが
ここによれば
アルカリ乾電池、マンガン電池は使えず

使えるのは
Panasonic Eneloop
Panasonic Eneloop Pro
Energizer Recharge
とのことです

今回は
Panasonic eneloop 単3形 8本パック(スタンダードモデル) BK-3MCC/8
を使いました

必要な本数は5本になるため amazon で購入したほうが安く購入できそうです

なお組み立てマニュアルのURLは
http://www.rapiro.com/ja/assembly-manual/
となります

まずは Rapiro 単体での起動
次にラズパイマガジンなどを参考に Raspberry PI を組み込んでいこうと思います

raspberryPi へSSH接続

raspberryPi へSSH接続

まず最初に RaspberryPi のIPアドレスを調べる

Ubuntu から調べるのなら
nmap を使ってポートスキャンを仕掛ける

最初に

ifconfig

でIPを調べる
これでネットワークの状態がわかる
これでもし
ubuntu のIPが
192.168.10.100
なら

nmap 192.168.10.1/24

というようにするとLAN内のポートスキャンができる

この中で22番ポートが開いているものが
RaspberryPI 候補となる

nmap のオプションについては
Nmapコマンドラインオプションの使い方

を参考に

ちなみに、Android を持っていると
Fing

というアプリで簡単に調べることができる

RaspberryPi のiPが分かれば

ssh pi@IPアドレス

で端末からアクセスできる

初期パスワードは
ユーザ名 pi
パスワード raspberry
でログインできる

さすがにデフォルトパスワードでは危険なので

sudo raspi-config

を実行すると
Setup Options が表示されるので
Change User Password
を選択

raspi2

これで新しいパスワードを2回入力する
ちなみにセキュリティのため
パスワードは表示されない

設定が完了したら
Tab キーで移動して
finish
を選んで Enter を押せば設定が反映される

RaspberryPI インストール

RaspberryPI インストール

2014/12/24
に新しいNOOBS_v1_311.zip
がリリースされたのでこれを使い
RaspberryPi をインストール

まずは必要なファイルをダウンロード

http://www.raspberrypi.org/downloads/
から
NOOBS

Download Zip
をクリックしダウンロード

ダウンロード容量は724MB

ダウンロード完了したら

unzip NOOBS_v1_3_11.zip

で解凍

次にmicroSD をPCにさして
展開したファイルをすべて
microSD にコピー

今回、私の環境の場合だと

mkdir RaspberryPiB_Plus

で作成したディレクトリの中に展開していて

差し込んだ microSD のパスが
/media/9016-4EF8/
だったので

コマンドで行うなら

cp -rp ../RaspberryPiB_Plus/* /media/9016-4EF8/

というようにできる

これでインストールメディアは完成

次に RaspberryPI B+ の本体の準備

インストールするときには
購入した本体以外に
キーボード
マウス
LANケーブル
HDMIケーブルにつないだディスプレイ
電源ケーブル
が必要になる

これらについては去年の夏に
RaspberryPi B
を購入したときに使ったので、それを流用

まず本体に microSD をさして
キーボード
マウス
LANケーブル
HDMIケーブルにつないだディスプレイ
を差し
最後に電源ケーブルをさす

このときにディスプレイのモードを
HDMIにしないと画面に表示されないので注意

電源が入ると
インストール画面がでるので

Raspbian[RECOMMENDED]

にチェックを入れ

Install(i)

をクリック

英語で

システムをインストールすると

microSDの中の

今あるデータが消えるよ

って警告がでるけど

元々ないから、気にせずに

Yes

を選択

あとは、インストールが始まるので

そのまま待つとインストール完了

インストール完了すると

Setup Optionの画面になる

変更するのは

4 Internationalization Options

の中の項目

まず

I1 Change Locale

一覧がでるので、キーボードで

どんどん下へ行って

ja_JP .UTF-8 UTF-8

でスペースを押すと

* がつくので、この状態でEnterキーを押し

次の画面でも

ja_JP .UTF-8

を選択する

これで、言語の選択ができたので

次は、タイムゾーンの選択

画面が

Setup Optionsに戻るため

4 Internationalization Options

を選択し

I2 Change TimeZone

Asia

でEnterを押し

Tokyo

を選択

次は、キーボードの設定

またSetupOptions 画面になるので

4 Internationalization Options

を選んで

I3 Change Keyboard Layout

を選択

Generic 101-key PC

で、Enter

Other

Japanese

で次も

Japanese

を選び

The default for the keyboard layout

を選び

No Compose key

を選択

次の画面で

Ctrl + Alt Backspace

を使えるようにするか聞かれるので

Yes

を選択

Setup Optionsの画面になるけど

これで、主要な設定はできたので

Finish

を選択すると、設定反映のため

RaspberryPiが再起動する

これで、raspberryPiが使えるようになる

Ardunio Uno の購入

Ardunio Uno の購入

ラズパイマガジンとハルロックをみて
Ardunio Uno を試してみることに

まずはArdunio Uno の購入から

スイッチサイエンスで年始に
割引クーポンをいただいたので
Ardunio Uno と付属パーツを購入することに

Arduino Uno R3
で選んだら2つあり

Arduino Uno SMD R3
のほうだとメインチップ交換が簡単にできないため
単にUno を使うには通常のほうを
と書いてあるため
通常版を選択

Arduino Uno R3

が通常版

今回は
みんなのArduino入門:基本キット

でまとめて購入

またケースも購入しておきたかったので
ABCプレート (スモーク)

も一緒に購入

I2C controlled 8×2LCD Breakout for Raspberry Pi

というハンダ付けずみのLCDモジュールもあったので
これも購入

これでひととおり必要な機材を揃えたので
到着してから実践予定

今回も参考書籍は

RaspberryPi B+ であると便利なもの

RaspberryPi B+ であると便利なもの

以前購入した Raspberry Pi の新型がでていたので購入

今回は省電力化
USBポートが4つに増加するなど
いろいろと進化あり

また今回新たに購入するとき購入した
ラズパイマガジンに購入しておくとよいもの
があったのでこれも購入

まず、電源供給の USB ACアダプタ
これは2A以上のものがよい
理由は電力不足を防ぐため

次に microSDカード
raspberryPi はHDDとかSSDではなく
microSD にシステムをいれるので
読み書き速度は重要
購入するなら SDHC class 10
もしくは
UHSにする

ディスプレイはHDMI対応のディスプレイにすること
でもリモート操作したり
サーバーにするのなら最初だけなので
PCで使っているディスプレイを
これに使うというのもあり

あと、あると便利なのが
USB電源スイッチ
これは
RaspberryPi には電源ボタンがないため
microUSBポートを抜き差しすることになる

しかしやりすぎると壊れるリスクがあるので
こういったスイッチを用意するとリスクを減らせる

今回は
RaspberryPi B+
ケース
電源
microSD
これらを
https://raspberry-pi.ksyic.com/
で購入

現在セットで
RaspberryPi B+ のケースや電源のセット販売
をしているし、
調べた中だと一番安いのでここで購入

USB電源スイッチアダプタは現在検討中

今回の参考書籍は

atom で markdown 文書のプレビュー

atom で markdown 文書のプレビュー

ドットインストールで
atom で Markdown プレビューができる
ということなので
実践

動画で使っているファイルを出すには
ctrl + t でファイルを検索して
contri md
といれると対象のファイルがでてくるので
これを元に実践

しかし、全然違うものがでてくるため
別のファイルを使うことにする

まず
ctrl + shift + m
でプレビュー画面を表示できるらしいけど
なぜか表示されない

READMEをみたら
拡張子が
.markdown
.md
.mkd
.mkdown
.ron
が対象だった

もしそれでも動かない場合を調べたところ
http://blog.cheekpouch.com/373/
によれば
特定のパッケージをインストールするとデフォルトのMarkdownプレビューが使えない
とのこと
このパッケージについては不明

japanese wrap
をいれると日本語の表示がうまくできるようになる

atom package導入

atom package導入

atom を起動して
ctrl + , で
Setting 画面を起動して
Packages を選択

とりあえず記述が楽になるものはインストール

emmet

emmet-vim と同じ効果を得られる

ubuntu の場合 ctrl + e
でできる
liタグなら
li
と入力して
ctrl + e
とすると

<li></li>

となる

autocomplete-plus
で文字の補完機能を搭載
これをいれることで
文字を入力しているとスマホの入力みたいに
候補がでてくる

htmlタグを入力するときに
pkage1

pakage2

以下の画面は
emmet パッケージのショートカットキー
を調べるために開いたRead Me

package3

ちなみに私の環境は Ubuntu なので

Linux/Windows の部分を使うことに

もし Mac なら
Darwin のところになる