AdSense

2015年11月29日日曜日

ミニ四駆をワイヤレス(Wi-Fi)で動かす④ 電池給電化

前回までの記事で、制御のワイヤレス化は実現できましたが、
バッテリーが電源からの給電だったので、今回電池給電にして完全なワイヤレスにしました。


これ迄の記事

http://mementomorisince2013.blogspot.jp/2015/11/esp-wroom-02.html
ワイヤレスモジュール(Wi-Fi)の使い方

http://mementomorisince2013.blogspot.jp/2015/11/drv8832arduino.html
モーターコントローラーの使い方

http://mementomorisince2013.blogspot.jp/2015/11/wi-fi.html
ミニ四駆に接続してワイヤレス化

やったこと


まずは、電池だけで動くことを確認します。
電池BOXからの給電で動くことが確認できたので、モーターとモーターコントローラー側はシャシーに乗る電池をつかうことにします。

ただし、そのままつけるとモーターが直接電流を拾ってしまうので、エナメル線でモーターコントローラ経由になるように取り回します。

モーター側も絶縁ビニールテープで金具に接触しないようにします。



電池からもエナメル線で外に流します。



このように、元の場所に収まりますが、電気的には接触してません。



エナメル線を外に出します。


ワイヤレスモジュールのESP-WROOM-02は、単三乾電池(1.5V)を3つを直列につないで4.5Vにし、レギュレータで3,3Vにして流し込みました。ばっちり動いています。

これで完全にミニ四駆のワイヤレス化です。


モーターコントローラは後ろのバンパーに載せました。


シリアルのチップも載せてるので、ブレットボードの配線はまだごちゃごちゃしてます。
追々整理して小型化するとして、とりあえず動かしてみます。



無事動きました!
速度は、モーターコントローラで調整できます。

不恰好ではありますが、とりあえずミニ四駆のワイヤレス制御成功です。
ハードの知識があまり無いので試行錯誤でしたが、よい勉強になりました。



2015年11月9日月曜日

Xcode7でDeveloper登録せずにiPhone実機で自作アプリを動かす

swiftが登場して購入したMacBookでしたが、
iPhoneで自作プログラム動かすには、Apple Developer Program(年会費11800円)に登録が必要とのことですっかり手が止まっていたiPhoneアプリ作成。
ひょんなことから、最新のXcode7ならばDeveloper Programに登録せずに、無料で実機動作させることができるとのお話を聞き、 早速ためしてみました。

概ねこちらを参考にさせて頂きました。
http://qiita.com/FumihikoSHIROYAMA/items/a754f77c41b585c90329
Xcode7で1円も払わずに自作iOSアプリを実機確認する


試したプログラムは下記のiPad Roboさんのソース

同ページからのリンクでGitHubにソース公開されてたので、動かしてみました。

やったこと:

1. Xcode(7.0.1)を立ち上げて、GitHubのレポジトリからソース取得する

 起動したら、「Check out an existing project」を選択する。
 「or enter a repository location:」というとこにGithubのURLを貼り付けてNextを押す。

2. 「Identity」で警告が出てるので治す

まず、Identityで「No provisioning profiles found」と警告がでてるので「Fix issue」を押す。

そうすると、Bundle Identifierについて、
「An App ID with Identifier “com.netonjapan.RoboPad” is not available. Please enter a different string.」と怒られるので、

IdentityのBundle Identifierを適当な名前を変える。

再度「Fix issue」押すと、今度は
「creating a provisioning profile requires one or more devices to be registered with your team. ...」と怒られた。
 ※これは、Deployment InfoのDevicesがiPadになってるのに、
  iPhone実機をつなげてたため。
  今回はiPhoneで動かすので、DevicesをiPhoneにする。

すると、左上のとこが、
 「Robo > iPhoneの名前」になる。

で「No provisioning profiles found」という警告もなくなった。

途中でアカウント関連の警告もでたけど、

 http://qiita.com/FumihikoSHIROYAMA/items/a754f77c41b585c90329
 Xcode7で1円も払わずに自作iOSアプリを実機確認する

こちらを参考にさせて頂き、自分のicloudアカウントを入れて解決。


3. ビルドエラーを修正する

左上の▶︎マークで実行する、Build Failedになる。
どうやら、ビルドラーがたくさんでてる模様。

CBPeripheral.isConnectedが無いとか、CBPeripheral.UUIDが無いとかエラーになっている。どうやらiOS7から非推奨担っている模様。


を参考に、
    if(activePeripheral && activePeripheral.isConnected){
    if(activePeripheral && activePeripheral.state == CBPeripheralStateConnected){
に書き換える

もう一方の、
 Property 'UUID' not found on object of type 'CBPeripheral *’
というエラーについては、下記に変更する。

    [self UUIDToString:p.UUID]
    p.identifier.UUIDString
に修正する。

さらに、
 [self UUIDToString:peripheral.UUID]
 を
 peripheral.identifier.UUIDString
に修正する。

さらに、
        if ([self UUIDSAreEqual:p.UUID u2:peripheral.UUID]) {
        if ([self UUIDSAreEqual:(__bridge CFUUIDRef)(p.identifier) u2:CFBridgingRetain(peripheral.identifier)]) {
に修正する。(自信無いが、Xcodeの補完機能を信じる)

これで、幾つかの警告は残るがBuild successになる。

4. iPhoneで実行する

ホーム画面にアプリが登録されてるので、タップして実行。



無事、カメラが起動して、顔認証が動きました。

やはり実機で動かすとテンションが上がります。
Xcode7のおかげでようやく、iPhoneアプリ作成も捗りそうです。

2015年11月3日火曜日

ミニ四駆をワイヤレス(Wi-Fi)で動かす③ モーターと無線を結合して確認

前回、前々回と、単体のモジュールは動かせたので、いよいよ組み合わせて
ミニ四駆をWi-Fiでリモートコントロールします。

前々回のWi-fiモジュール(ESP-WROOM-02)を動かした記事
http://mementomorisince2013.blogspot.jp/2015/11/esp-wroom-02.html

前回のDCモーター(DRV8832)を動かした記事
http://mementomorisince2013.blogspot.jp/2015/11/drv8832arduino.html


使ったもの
・ESP-WROOM-02

・DRV8832使用DCモータードライブキット
・ミニ四駆


とりあえず、前回、前々回の組み合わせだけで、
ミニ四駆のモーターを開始、停止、逆回転できました。

ESP-WROOM-02のIO13とIO14を、DRV8832のIN1とIN2に接続しています。
写真、動画では、IN1とIN2それぞれがHIGHになるとLEDを点灯させました。





動画はこちら



ソースコードはこちら


さて、今回はモーター、WifiそれぞれにUSBシリアルとArduinoから5V電源供給していますが、制御がワイヤレスでも、電源が有線では意味無いので、次は電池駆動を考えます。

続く。

ミニ四駆をワイヤレス(Wi-Fi)で動かす② モーターコントローラ(DRV8832)をArduinoで制御


ESP-WROOM-02を動かしてみる

上記の記事の続きです。
ミニ四駆wifi遠隔操作環境作成のため、モーター側の制御を確認します。

今回はDRV8832のDCモータードライブキットを使用します。




Arduinoで動かすスケッチをググって探すと、DRV8830の記事は見つかりますが、
DRV8832の記事が見つかりません。
どうやら品番間違って買ってたようです。

サンプルスケッチが無いけどめげません。
どうやら、DRV8830はI2Cタイプ、DRV8832はポート制御タイプのようです。

なので正転、逆回転の制御ですが、DRV8832はシンプルで、
IN1, IN2をHIGH, LOW設定することで制御できました。

●正転
 IN1 HIGH
 IN2 LOW
●逆回転
 IN1 LOW
 IN2 HIGH
●停止
 IN1 LOW
 IN2 LOW

で動きました。
とりあえずArduinoとシリアル通信でモーターの動きを確認します。

下記は、シリアルで上記PINをHigh/Lowして正転・逆回転・停止するだけのスケッチです。


とりあえず動いたので、これでミニ四駆作成を進めます。

2015年11月1日日曜日

ミニ四駆をワイヤレス(Wi-Fi)で動かす① Wi-Fiモジュール(ESP-WROOM-02)を動かしてみる

ESP8266が乗ってるESP-WROOM-02を動かした記録。DMM,makeのミニ四駆のwifi操作ワークショップにエントリーできなかったので、自前で部品買ってどこまで出来るか頑張ってみる。


使ったもの

・ESP-WROOM-02(wifiモジュール) ※リンクは参考

・FT232RL USBシリアル変換 ※リンクは参考

・3.3v レギュレーター
・47μF、0.1μFコンデンサ
・10k抵抗



秋月電子で購入。



所々のブログを参考に回路を組む。
どうやら、「ESP-WROOM-02ピッチ変換済みモジュール《シンプル版》」を使った例は少ない模様。PINに注意しながらブレッドボードに回路を組む。




USB挿した時点では、ESP-WROOM-02と通信できなかったが、
ESP-WROOM-02の3.3V入力を抜き差しすると、シリアル通信OK。

その後、ATコマンドでWifi接続OK。

こちらを参考にArduinoのスケッチアップロード設定。

途中で、
error : espcomm_open failed
となって書き込み失敗。

ググると、下記PIN設定必要なことがわかる。
GPIO 0 -> GND(PullDown)
GPIO 2 -> 3.3V(PullUp)

設定後は、書き込みOK。
ESP-WROOM-02だけ3.3V入力PIN挿し直してリセット。



無事プログラム書き込み成功。
webサーバとして動きました。

次回はモーターだ。