コンピュータを楽しもう!!

今、自分が面白くていろいろやってみたことを書き綴りたいと思います。連絡先はtarosa.yでgmail.comです。

WindowsでVagrant ec2を試してみる(5) vagrant-awsプラグインインストール

WindowsVagrant ec2を起動するためのaws上の設定は(4)までで全て終わりました。ここからは、Windows上での設定になります。

vagrant-awsのインストール

vagrantプラグインであるvagrant-awsをインストールします。GitBashを起動します。GitBashのインストールはWindowsでVagrant ec2を試してみる(1) 事前環境作りに説明しています。
vagrant-awsを下記のようにしてインストールします。

$ vagrant plugin install vagrant-aws
Installing the 'vagrant-aws' plugin. This can take a few minutes...
Installed the plugin 'vagrant-aws (0.4.1)'!

$ vagrant plugin list
vagrant-aws (0.4.1)
vagrant-login (1.0.1, system)
vagrant-share (1.1.0, system)

vagrant plugin listを取るとインストールされているのがわかると思います。

ダミーのBoxの生成

vagrant-awsを使用するときに、ダミーのBoxが必要となります。そこでダミーのBoxを生成します。ダミーのボックスはvagrant-aws作者さんのサイトから取得できます。

$ vagrant box add aws-dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box
==> box: Adding box 'aws-dummy' (v0) for provider:
    box: Downloading: https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box
    box: Progress: 100% (Rate: 139/s, Estimated time remaining: --:--:--)
==> box: Successfully added box 'aws-dummy' (v0) for 'aws'!

$ vagrant box list
aws-dummy                       (aws, 0)

次に、Vagrantfileの作成について書きたいと思います。

WindowsでVagrant ec2を試してみる(4) awsでのSecurity Group設定

WindowsVagrant ec2を起動するために、Security Groupを設定する必要があります。既にEC2でインスタンスを作成したことがあるのであれば、Security Groupが自動生成されていると思うので、それを使っても大丈夫です。
ここでは、新規にセキュリティーグループを作成してみます。

セキュリティーグループを設定する

EC2のメニューからSecurity Groupsを選択します。そして、Create Security Groupボタンを押します。

Create Security Group画面が出てくるので、セキュリティーグループ名と説明と開くポートの設定をします。

今回は、Security group nameは、VagrantEC2SecurityGroupを、Descriptionは、VagrantEC2 Security Groupを設定し、SSHアクセスを通素ようにしました。
Type:SSH、Protocol:TCP、Port Range:22、Source:Anywhereを設定しました。これでCreateボタンを押せば設定終了です。

WindowsでVagrant ec2を試してみる(3) awsでのKey Pairs設定

WindowsVagrant ec2を行うために、Key Pairを生成する必要があります。その方法について書きます。

Avilability zoneの変更

awsサーバーをどこの地域のサーバーに作成するかを指定する必要があります。デフォルトではオレゴンになっていると思います。それをTokyoに変更したいと思います。これを変更しておかないと、Key Pairsなどはzoneごとに作成されるので、面倒くさくなります。
awsのサービスからEC2を選択します。

画面右上にある地域を選択するメニューからAsia Pacific(Tokyo)を選びます。

Key Pairsの生成

EC2のメニューからKey Pairsを選び、Create Key Pairボタンを押します。

Key pair nameを聞いてくるので、名前を入れてCreateボタンを押すと、暗号キーが生成されてダウンロードできます。

今回は、VagrantEC2と入れたので、VagrantEC2.pem というファイルが生成されました。

Key Pairsのフォルダ保存

生成したpemファイルをどこに保存してもいいのですが、とりあえず、GitBashのホームの .ssh2フォルダに保存しておこうと思います。
GitBashを起動します。GitBashのインストールはWindowsでVagrant ec2を試してみる(1) 事前環境作りに書いています。
GitBashを起動後、下記のコマンドを実行して No such file or directory と表示されたなら、.sshフォルダが無いので、作成してください。

$ ls -l .ssh
ls: .ssh: No such file or directory

.ssh フォルダの作成。

$ mkdir .ssh

.ssh フォルダを生成したら、pemファイルをそこにコピーします。Windowsのフォルダを開いてコピーするのであれば、下記のように .ssh に入って、pwdコマンドを用いると、/c/Users/...とcドライブからのパスが表示されるので、.sshがどこにあるのかわかると思います。

$ cd ~/.ssh
$ pwd
/c/Users/minao/.ssh
$ ls -l
total 1
-rw-r--r--    1 minao    Administ     1692 Jun 22 00:58 VagrantEC2.pem

pemファイルがコピーされていれば、lsコマンドで確認できます。

WindowsでVagrant ec2を試してみる(2) awsでのアクセスキー設定

Vagrant ec2を使うために、先にawsで設定しておかなければならないことがあるので、それを書いておきます。

IAMの設定

ec2をVagrantから使うためには、aws.access_key_id と aws.secret_access_key を用意する必要があります。これが何なのか、わからなくて長く悩んでいたのですが、ec2とは関係なくてIAMで生成するということがわかりました。
AWS IAM のご利用開始にあたって というビデオを見ると、生成方法が良くわかります。
先ず、AWSのサービスからIAMを選びます。

次に、Create New Group of Usersボタンを押します。

グループ名を入力します。とりあえずAdministratorsにしました。Continueを押します。

グループのパーミッションを聞かれるので、自分しかいないので、Administrator Accessを選択しました。

ポリシー名はデフォルトでContinueを押します。
次にユーザーを作る必要があるので、ユーザー名を聞かれます。Vagrantからec2にアクセスするときのユーザ名を入力します。
このとき、Generate an access key each Userのチェックは外します。

ユーザ名を入力すると、「Group Name」「Permissions」「User Names」が表示されるので、OKならばContinueを押します。
これで、Vagrant ec2で用いるaws.access_key_id と aws.secret_access_key を取得する準備が整いました。

パスワードポリシーの変更

今回は生成したユーザーでawsにログインする予定は有りませんが、とりあえずパスワードポリシーをデフォルトから変更しておきます。
最低パスワード長を8文字にして、Requireに全てチェックをいれます。

これでApply Password Policyボタンを押します。

アクセスキーとシークレットアクセスキーの生成

いよいよ、aws.access_key_id と aws.secret_access_keyを生成します。
Usersを選択すると作成したユーザーが表示されるので、ユーザーをチェックしてUser ActionsのManage Access Keysを選びます。

Create Access Keyボタンを押します。

アクセスキーとシークレットアクセスキーが自動生成されるので、これをDownload Credentialsボタンを押して保存します。

以下のようなcredentials.csvファイルが保存されたと思います。

User Name,Access Key Id,Secret Access Key
"tarosay",ここにアクセスキー,ここにシークレットアクセスキー

User Nameは生成したユーザ名です。続いてアクセスキーとシークレットアクセスキーが書かれています。
これが、Vagrant ec2で使用するアクセスキーとシークレットアクセスキーです。

次に、override.ssh.private_key_pathに必要なKey pairを生成したいと思います。

Wakayama.rbのmrubyボード用Bluetooth基板

勢いで、Wakayama.rb mrubyボード(WRRB)用のBluetooth基板を作りました。初めてFusion PCBに基板を頼んでみました。発注して手元に届くまで2週間ちょっと掛かりましたが、安いからいいですね。

この基板、GR-KURUMIPocketDuinoでも使えるつもりで設計したのですが、設計をミスっていまして、一ヶ所パターンをカットしないと使えません。

既に何人かの知り合いに強引に配ってしまったので、どこをカットするのか説明を兼ねてブログに書いておきます。

Wakayama.rbボード用Bluetoothシールドとは

下がWakayama.rbで製作しているmrubyボード(写真右)とBluetoothシールド(写真中央)です。写真左側はGR-KURUMIです。
[:W320]
Wakayama.rbのmrubyボードはGR-KURUMIとほぼピン互換となっています。このボートに直接刺さり、Bluetooth通信ができるものが今回作製したBluetoothシールドです。
GR-KURUMIはArduino MiniProピン互換なので、実はArduino MiniPro互換ボードで使えるはずです。

ただし、3.3V動作とボードなので、5Vを入れると壊れます。

間違いの修正箇所

このBluetoothボードですが、致命的な設計ミスがあります。それは、BluetoothモジュールのRN42のリセットラインとGR-KURUMIのGNDラインが接続されていることです。何故、こんなありえない間違いが起こったかといいますと、Wakayama.rbのmrubyボートは写真の向かって左側の列のピンにはリセットとGNDピンを用意していないのです。Wakayama.rbのmrubyボードに用いているRX63N MPUは使えるポートが多く、少しでもたくさん引き出そうとした結果、リセットとGNDの割り当てを一ヶ所だけに省略て設計しており、それが敗因となりました。

それでは、パターンカットの場所を示します。下の図に示すように、リセットに繋がっているパターンをカットしてください。基板自体はリセットラインをプルアップしているので、カットしても大丈夫です。
[:W480]

使用パーツ

Bluetoothボードに使用しているパーツ一覧を書いておきます。

    • Bluetoothモジュール: RN42-I/RM(Microchip Technology): 写真を見てもわかると思いますが、いろいな通販で購入できると思います。
    • チップ抵抗 1608: 330Ω 2個
    • チップ抵抗 1608: 4.7kΩ 3個
    • チップコンデンサ 1608: 0.1uF 1個
    • チップLED 1608: 2個

Bluetooth基板の詳細資料はGithubにアップしています

Bluetooth基板の詳細資料
回路図はPDFにしてアップしています。zipファイルはFusion PCBに送信したファイルそのままです。このまま発注すれば、同じボードが作製できます。

RN42のGPの説明は回路図に書いていますので参照してください。

おまけ回路

このBluetoothボードには、おまけ回路が付いています。それは昇圧回路です。写真に写っているBluetoothシールドの上の部分に昇圧回路のパターンを入れています。実装した写真を下に示します。
[:W320]
HT7733Aを使って、0.7Vくらいから3.3Vに昇圧できます。下は単4電池1本で、GR-KURUMIを動かしている写真です。GR-KURUMIは、もともと昇圧回路を内蔵しているので余り意味無いですが、GR-KURUMIの昇圧回路を使わないで動作しています。
[:W320]
下はWakayama.rbのmrubyボードを動かしている写真です。上にあるLEDが点滅しています。
[:W320]
HT7733Aの出力は200mAなので、これでWakayama.rbのmrubyボードとRN42を動かせるかどうか自信がないので、おまけ回路としました。

おまけ昇圧回路の部品実装

部品の実装は下の図を参考にしてください。
[:W480]
上のテスト実装回路ではダイオードは適当なものをつけています。上図のものではないです。インダクタは47uHで昇圧できています。また、出力側のコンデンサは100uFを付けると、Wakayama.rb mrubyボードが安定して動作しました。

まっ、おまけ回路なので、適当に遊んでみてください。

mrubyでのバイナリの扱い その2

以前のブログで文字列でバイナリを扱えることを書きましたが、これを書いたことすら忘れてしまって、また、バイナリについて悩んでしまったので、さらに、防備録として書いておきます。

mrubyで.hexは使えない

Ruby 16進数 変換」で検索すると、16進数は.hexで変換できると出てきます。

print '80'.hex #=> 128 ただし、mrubyでは使えません。

これでいいのかと思って、mrubyで .hexを使ってみましたが使えませんでした。16進数表記は、0x を付ければいいだけ。

16進表記は0xを付ける

Rubyの場合もC言語などと同じで、頭に0xを付ければ16進数となります。

print 0x80 #=> 128

 より、詳しくは、先のブログで・・・。

FDTを用いてGR-SAKURAにmotファイルを書き込む E1経由編

E1を買った云々と書きながら、先にUSB編を書いてしまいました。ここではE1経由でGR-SAKURAにmotファイルを書き込む方法を書きます。
FDT(Flash Development Toolkit)のダウンロードは、先のUSB編で書きましたのでそちらを見てください。
試しに、書いてみるGR-SAKURAの元ファーム「Gr_sakura_fw_rev1.mot」のダウンロードについても、先のUSB編で書きましたのでそちらを見てください。

E1経由のmotファイルの書き込み方法

E1を買った目的がHEWを使ってGR-SAKURAのプログラムを作ったりデバッグしたりするということでしたので、ルネサスからe1e20rxfullv10300.exeとccrxv102r01_ev.exeをダウンロードしてインストールします。ダウンロードについては西村さんのブログに詳しく書かれています。

GR-SAKURAとE1とUSBケーブルを接続する

GR-SAKURAのJTAGのポートにヘッダピンを付けてE1と接続します。また、E1とUSBケーブルを接続します。FDTとE1E20RXが正常にインストールできていれば、Windows7の場合ですが、USBドライバは自動で認識されると思います。

FDTの設定

FDTを起動して新規設定を選びます。初めての場合は、自動的に新規設定画面になるかもしれません。

バイスカーネルの選択は、一番下の「Generic BOOT Device」を選びます。「次へ」を押します。

通信ポートの選択は「E1 Direct」を選びます。「次へ」を押します。

電源の供給は、3.3Vを供給する場合は下のように設定して「OK」を押します。

ピン設定は、GR-SAKURAの場合、MDはLOW、EMLEもLOW、UBもLOWなので、下図のような設定になります。チェックを入れたら「OK」を押します。

 io0 (EMLE)    - LOW
 io2 (PC7/UB)  - LOW
 io3 (MD)      - LOW


E1と接続している場合は下のメッセージが出ます。「OK」を押します。

E1のシリアルのようなものが表示されるので「OK」を押します。

バイスを聞いてくるので、RX600シリーズのLittieEndianで「OK」を押します。

そうすると、汎用デバイスの確認がすべて通ります。

OKするとクロックの設定画面が出ます。入力クロックは12MHz、メインクロックの逓倍比を 8、周辺クロックの逓倍比を 4として「次へ」を押します。

  入力クロック                 - 12.00MHz
  メインクロックの逓倍比(CKM)  - 8
  周辺クロックの逓倍比(CKP)    - 4


接続タイプはこのままで「次へ」を押します。

書き込みオプションはこのままで「次へ」を押します。

リセットピンセッティングは何もせずにこのままで「完了」を押します。

設定が終わって、E1接続が完了します。

E1経由で書き込む

「File Selection」の 「User / Data Area」にチェックして右向き黒三角ボタンを押し、書き込むmotファイルを指定します。今回書き込むのは「Gr_sakura_fw_rev1.mot」です。

スタートを押すと書き込みが始まります。38400bpsなので少し時間が掛かります。

しばらくすると終わります。

後は、デバイスとの切断を押すと下の画面が出て「OK」を押すとE1接続が切れます。

接続が切れた画面

これでmotファイルの書き込み終了です。E1コネクタを抜いてGR-SAKURAを起動してください。もしくはHEWを立ち上げてデバッグもできます。