Windowsにインストールしたもの

週末から自宅のデスクトップパソコンにWindows8.1をインストールして、環境を新しく構築中。とりあえず、現時点でインストールしたものをメモ。

Androidアプリのデバッグ環境構築メモ

家のデスクトップパソコンにWindows8.1をインストールをしたので、XamarinによるAndroidアプリ開発のためのデバッグ環境を構築したのでメモ。

  1. Xamarinをインストール。
  2. SDKマネージャから必要なものをインストール。
    1. 必要なバージョンのSDK。4以上ならSystemImageもインストールしないと仮想マシンが作れない。
    2. Windows向けのUSBドライバ。実機デバッグに必要。
  3. 仮想マシンマネージャで仮想マシンを生成する。
    1. Deviceは適当に選択。
    2. TargetはSDKのバージョンから選択。
    3. CUP/ABIは4以上でダウンロードしたCPUから選択。
    4. Emulation Optionsで「Use Host GPU」を使わないと画面が真っ暗なままな場合があるので注意。
  4. 実機でデバッグするためには、開発者向けオプションを有効にする必要がある。
    1. 設定から「タブレット情報」を開き、「ビルド番号」を7回タップして「開発者向けオプション」が有効になる。
    2. 設定から「開発者向けオプション」で「USBデバッグ」をチェック。
    3. PCに接続して、ドライバのインストール。
      1. 自動ではインストールされないので、デバイスマネージャからインストールされたUSBドライバを選択してインストール。

mbedでコンバットクリーチャーズ

今年の盆休みは長めにもらったので、その間ぼけーっと過ごしていたのだけれど、終わり際にBLEな工作を!と思い立ち、Amazonでコンバットクリーチャーズとmbed HRM1017を購入。半月かかったけれどもようやく動かすことができたので、動画を公開。

ハードウェアの構成は次のような感じ。

今回の動画では、サンプルとして公開されているiOS向けのアプリを使い、そのアプリ向けに書かれたmbedのサンプルを使ってファームウェアを作成。次の目標は、コンバットクリーチャーズにウェブカメラを乗っけて、その画像を見ながらNexus7を使ってBLE経由で操作。

netduino plus + Androidでロボットを操作

netduino plusにVS-BT001と自作のモータドライバとかの基板をつけてロボットを制御できるようにして、Androidアプリとロボットを操作できるようにしてみた。

ロボットのアクチュエータは次のような感じ

  • 移動用モータx2
    • 左右の車輪
  • カメラ角度用RCサーボx2
    • 垂直角度
    • 水平角度
  • カメラ
    • ウェブカメラ

netduino plusからの入出力は次のような感じ。

  • モーター制御x2
    • 正転
    • 反転
    • PWM
  • RCサーボ制御2
    • PWM
  • シリアル通信x1
    • RxD
    • TxD

アンドロイドアプリの仕様は次のような感じ。

  • 接続ボタン

Bluetoothのペアリングとウェブカメラからの画像取得状態を切り替え。

  • 移動方向ボタン

ロボットの車輪を動かす。

  • スピードボタン

ロボットの移動速度を変更する。

  • カメラ方向ボタン

カメラの撮影方向を動かす。

基本的な構造はVS-WRC103LVの時と変わらないけど、カメラの角度調整をRCサーボを使うようにしただけ。netduinoを使うようになり、電源をmobile boosterを使えるようになったのでカメラの電源もCR2からUSBによる給電に変更。

実際に動かすとこんな感じ。

netduino plus買ってみた

Vstone社のビュートローバーARMに付属していたVS-WRC103LVというボードを使ってロボットの製作をしてきた。小型のマブチモーター程度を動かすには十分なボードで、便利なCPUボードだとは思う。けど、乾電池2本で動かして、3.3V、5Vへ昇圧して使っているので、拡張していくと電源が不安定になりがち。なので、新しいボードが欲しいなー、といろいろと検討した結果、netduino plusを購入。netduino plusを選択した理由は次のような感じ。

  • 出力ピンがArduiino互換なので、Arduino関連のものが使いやすそう。
  • Arduino互換ピン以外にイーサネットポートやMicroSDスロットがある。
  • 開発言語がC#である。

最初、Arduinoかmbedで迷ったんだけど、Auduinoの方が出力ピンが多くてロボット向きかなと思いAuduino UNO辺りを攻めようかと思っていたところ、netduino plusを発見。イーサネットやMicorSDがあること、C#で開発できるのは使っていく上で面白そうというのが購入に至った理由。

パーツショップを見ていると、Auduinoはボード本体だけでなく、シールドとか結構周辺機器も充実しているようで、互換品であるnetduino/plusも使えるのが便利。実際、ロボット用の回路を載せるユニバーサル基板はAuduino UNOと同サイズの基板を使ってnetduinoに挿してる。しばらくはこれで遊べそう。

カメラの仰角を変更できるようにしてみた


昨年作ったロボット、そのリモコンとなるAndroidアプリを改造して見ました。改造内容は以下の通り。

  • ウェブカメラを搭載し、ウェブカメラの仰角を変更できるように。
  • 操作をボタンを押下している間のみに変更。

ウェブカメラの仰角はモーターに直結させただけなので、物理限界に達してもモーターは止まらないようになってるので、センサを付ける、あるいは、ラジコンサーボに変更するなどの改良は必要。

実際に操作している動画はこちら

ロボットを作りました(2)

BluetoothでPCやAndroidと繋がるロボットのハードが手に入ったので、とりあえずは簡単に動かすということを目標に2〜3日かけてソフトを作って見ました。大体の仕様は次のような感じ。

  • Androidをマスター、ロボットをスレーブとしてBluetoothでペアリングして、SPPを使って通信を行う。
  • Androidアプリはボタンを押すと、対応する1バイトのコマンドをロボットに送信する。
  • ロボットはメインループの先頭でシリアル受信バッファを確認して、受信内容に応じた処理を実行する。
  • コマンド処理の実行後、現在の状態をシリアル送信バッファに書き込み、Bluetoothモジュールを通してAndroidに送信する。
  • Androidはデータを受信すると内容を解析して操作ボタンの状態に反映する。
  • コマンドは、前進、後退、右旋回、左旋回、停止、スピードアップ、スピードダウン。
  • 動作方向は駆動輪の方向で設定。
  • スピードは10段階でPWMの出力を変更することで実現。
  • ロボットの状態は、「(方向1バイト),(スピード1バイト)」の3バイトで定義。

これを、AndroidのBluetoothChatサンプルアプリと、BeautoRoverのシリアル通信/モーター駆動サンプルアプリを元に改造して作ってみた。まーまー、簡単にできたほうかも。しれない。