AdSense

2017年4月15日土曜日

ミニ四駆をワイヤレス(Wi-Fi)で動かす⑤ ステアを制御する

前回投稿からしばらく経ちましたが、今回ミニ四駆の前輪ステアを制御できるようにしました。
ただし、ミニ四駆では前輪は固定ですので、代わりにバギーカーを使用しています。
さらに、ステア用の動力としてサーボモータを使用しています。

使ったもの:

・タミヤのバギーカー


・前輪ステア用サーボモータ


・電池と電池ボックス(ESP-WROOM-02とサーボ用)


・ESP-WROOM-02(WiFiモジュール)


・FT232RL USB-シリアル変換モジュール(千円以下の安いやつでOK)


(注意)ESP-WROOM-02は単品で使うと、
上記のFT232RL USBシリアル変換、レギュレータ、その他コンデンサなど必要になるので、下記の開発ボードを使った方がはるかに楽です。



やったこと:

さて、やったことのおさらいです。

(注意)開発ボードを使う場合はUSBを指すだけで電源供給もできるので、図のFT232RLや3.3Vレギュレータは不要です。


ここまでの説明は前回記事を参照ください。
http://mementomorisince2013.blogspot.jp/2015/11/wi-fi_29.html

さて、本題はここからです。


接続は上記のイメージですが、今回肝心なのは、サーボモータの動力を前輪シャフトに伝える機構部分です。下記の赤矢印になります。


この部品が欲しかったので、先日組み立てた、3Dプリンタでつくりました。
使った3D編集ソフトは、Windows10に標準で入っている3Dペイントアプリです。

データは下記になります。
ステアの部分のデータはこちらです。

サーボモーターのマウンターはこちらのデータを使わせていただきました。


全体でみるとこんな感じです。


無事、前輪のステアをワイヤレスで制御できました。


2017年2月25日土曜日

Google Tango対応ARアプリを作った

#AR_FukuokaでGoogle Tango対応ARアプリの作り方を学びました。

スマホ(Phab 2 Pro)が3Dで空間認識しているので、タッチした実空間の位置にキャラクタが出てきます。


UnityでGoogle Tango SDKを使い、タッチ座標を取得してそこにキャラクタを配置するプログラムを書いています。


MS HoloLensと同じことが5万程度のスマホでできるのが凄いです。







using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Tango;

public class NewBehaviourScript : MonoBehaviour {

    public TangoPointCloud pointcloud;

    // Use this for initialization
    void Start () {
        
    }
    
    // Update is called once per frame
    void Update () {
        if (Input.touchCount > 0) {
            Touch t = Input.GetTouch (0);
            TouchPhase p = t.phase;    //ふれているときの状態
            if (p == TouchPhase.Began) {     //触れ始めならば
                //transform.Translate (0.1f, 0, 0);  //X軸に0.1動かす
                StartCoroutine(FindPlane(t.position));
            }
        }
    }

    private IEnumerator FindPlane(Vector2 touchPosition)
    {
        Camera cam = Camera.main;
        Vector3 pos;    //3つのパラメータ
        Plane plane;

        if (!pointcloud.FindPlane (cam, touchPosition, out pos, out plane)) {
            yield break;
        }

        transform.position = pos;

        //こっち向かせる
        transform.forward = new Vector3 (cam.transform.position.x - transform.position.x, 0, cam.transform.position.z - transform.position.z).normalized;

            
    }

}

2017年1月7日土曜日

Android ThingsをRaspberry Pi3で動かしてみた

IoT向けAndroidのAndroid Thingsがリリースされたので動かしみた。

使うもの:

・Raspberry Pi3
・MicroSDカード
・PC
・LANケーブル




Google公式と、こちらを参考にさせて頂いた。

唯一引っかかったのは、adbがUSBではなくネットワーウ経由で接続する必要があった点。
Raspberry PiのUSBはあくまでも電源供給用で、Android Deviceとしては認識しません。
Wifi設定もadbで行う必要があるので、まずEthernetでLANケーブルを指してadbで設定する必要がある点に注意。
(ちゃんと手順に書いてある)


やったこと:

1. 手順通りMicroSDカードにAndroid Thingsのイメージを焼く
2. Raspberry Pi3にイメージを焼いたMicroUSBを指して起動
3. RaspBeery Pi3のEthernetにLANケーブルを指してadb接続
4. adbでWifi設定
5. Android Studioでサンプルアプリ(Lチカ)をビルド&実行



サンプルプログラムはこちら

無事、Android ThingsでLチカできました。


なお、上記のスタンバイ画面でIPアドレスが表示されますが、
サンプルアプリを実行すると、毎回起動時に自動的にアプリが立ち上がるようになってipアドレスが見えなくなります。
そんなときは、Raspberry PiにキーボードをつないでESCを数回押すと、アプリを閉じてスタンバイ画面に戻すことができます。


Android開発環境に慣れてると、非常に簡単に動かせます。

2016年12月8日木曜日

ピクセルRGB LEDでクリスマスイルミネーションみたいなのを作る

AliExpressにて安価でピクセルRGB LEDストリップが購入できることが分かったので、arduinoで光らせてみました。


使うもの:

・ピクセルRGB LEDストリップ

      
 AliExpressで500円くらいのを使いました。
 ws2812bで探すとよいです。

・Arduino

      


使ったソフトウェア:

・光らせる用のサンプル

   https://github.com/adafruit/Adafruit_NeoPixel

・Aruduino Nano(互換品)用のUSBドライバ

※純正Arduinoを使う場合は必要ありません。
   http://www.wch.cn/download/CH341SER_ZIP.html


作り方:

1.サンプルコードを頼りに配線する

といっても、下記3つをつなぐだけ
  ・LEDの+5VをArduinoの+5VまたはVinにつなぐ
  ・LEDのGNDをArduinoのGNDにつなぐ
  ・LEDのDinまたはDoをArduinoの6番PINにつなぐ

2.プログラムをArduinoで実行する

上記のAdafruit_NeoPixelをzipのままArduinoのexampleに取り込み、実行するだけでOK。

できあがり:

10分とかからずに綺麗なイルミネーションが確認できました。



とても簡単なので、今後何に応用するか考えるのが楽しみです。

2016年10月23日日曜日

デルタ型3Dプリンターを作る記録(後編)

前回フレームと機構が組み上がりましたので、
今回は電装系をつけていきます。

やることは、メインの制御基板(Arduino互換機)組み立てと、
周辺デバイスの接続です。

メイン基板の組み立てとして、まずLCDを接続します。
ここでは接続する線の向きに注意します。
私の場合は、マニュアルが間違ってたので、基板のシルクで判断しました。


次に、モーター制御用のチップにヒートシンクを貼り付けます。
両面テープがついてるので、付けるだけです。
ただし、回路にくっつかないように注意します。



ヒートシンクをつけ終わったら、メイン基板に接続します。
ここまでできたら、接続図に従って配線していきます。

配線図ではスッキリしてますが、実際につなぐと下記のようにかなりごちゃごちゃになります。

配線を終えたら、メイン基板をフレームに付けます。


線はまだ束ねてませんが、すっかり3Dプリンタらしくなりました。


電源の種類がマニュアルと違ってたので、テスターでプラスマイナスと電圧を確認しておきます。


ここまでできたら、パソコンからメイン基板にファーム(Arduino SDKで書き込む)の書き込みます。
マニュアルには、ソフトを書き込まなくても初期画面がLCDに出るとありましたが、私の場合はでませんでした。気にせずファームを書き込んだら画面がでたので良しとします。




制御ソフトによる各軸の設定をします。
この辺はややこしいので、マニュアルやWebの情報をよく見て慎重に調整しました。
特にPronterfaceの設定はマニュアルだけは不十分であり、下記のサイトを参考にさせていただきました。
http://techbase.biz/Machines/Pronterface.htm


・ファーム(Arduinoで書くメイン基板の制御ソフト)の軸設定
・プリントソフト(Pronterface)の軸設定
・スライサーソフト(Cura)の設定

と、いずれも正確に設定する必要がありました。
設定を終えたらサンプルを試しプリント。




無事サンプルデータのプリント成功しました。

2016年10月4日火曜日

デルタ型3Dプリンターを作る記録(前編)

3Dプリンタを作る記録。 発端はミニ四駆をラジコン化改造する際に前輪のステア部品の自作が必要だったこと。 機構パーツの3Dデータは見つけたが、いざプリントアウトしようとすると、コワーキングスペースでは使用方法の講習やら時間単価やらで、どうやら簡単にいかないみたい。 3Dプリンタを買おうと思ったがまだ結構高い。 知人に聞くと、Amazonとかでは売ってないけど中華版のAmazonみたいなやつ(AliExpress)にて、3DプリンタのDIYキットが二万くらいで売ってるとのこと。 https://ja.aliexpress.com/ Kossel 3DプリンタDYIキット 購入自体にそれなりのスキルがいるとの事だが、そこに労力がかかるなら、購入スキルもつくし安く手に入るしで、良かろうと考え注文する事にした。 まず購入先選びで大事なのは、店の信用情報。 下手に選ぶと品物届かないとかザラにあるらしい。 ここで見極め方たが、その店の取引履歴に日本が複数あるか、という点がポイント。 値段を最優先すると、物が正しく届かない恐れがあるので、この取引履歴に注視する。 で、最安値では無いが日本と複数取引履歴のある業者(Renren)を見つけたので注文する。 注文から半月ほどで国際便が届く。 注意深く箱を開けて内包物を確認してると、ガラスの部品がバッキバキに割れてる。 薄いプチプチ巻いた程度で、一番外側に入れてたら割れるがな。


しかしここは想定内。 Aliexpressは、購入者が承認しないとお金が支払われないシステムになってるので、早速拙い英語で、割れたガラスの写真とともに再送要望を連絡。

相手も良い業者だったようで、迅速な対応(割れてたガラスを再送)してくれる事になった。

 システム上、ある期間承認しないと紛争起こすボタン(Open Dispute)を押すことになるので、業者には嫌がられるが品物届くまでは心配なので押しておく。

結局1週間ちょいで無事届き、支払い承認。 なお知人は動かさないと判らない部品が壊れてて、泣き寝入りするしか無かったとのこと。そういう事も覚悟は必要。




さあ、部品も揃ったので作り始める。





と思ったが中国語と英語の紙ペラ二枚あるだけで、作り方のマニュアルがない。

Kosselの3Dプリンタは有名なのでググれば作り方はわかるだろうと高を括ってたが、どうも手元に届いたやつはVer2.0であり、ネットに出回ってる部品と微妙に異なる。
さー参ったと思ってたが、購入サイトの中国語を翻訳してると、どうやら購入IDとメール登録すればマニュアルが見れるようになる的なことが書いてあった。(キチンと読んでないのが悪い) 早速AliExpressの購入IDとともに登録し、マニュアル発見。 無事作業開始です。
作り始めたら、微妙にネジの指定が間違ってる奴とかあるけど、マニュアルの写真が多いので何とかなる。

付属のレンチがショボいので、ネジ山がやられる前に、下記のドライバーを購入推奨。 朝Amazon頼んだら夕方には届いた。Amazon凄い。





こちらは必須だと思います。















フレームが組みあがり、見た目も3Dプリンタらしくなりました。
後編では、電装系になります。

2016年8月27日土曜日

ウェアラブル活動量計Mi bandのAndroid SDKを動かしてみる

格安の心拍・活動量計である XiaomiのMi Bandが届いたので、自作AndroidアプリでBLE接続してみた。


買ったのは安かった一つ古いこの型です。
 
なお、最新はこちらで、時間も見れます。



自作Androidアプリといっても
中国語ですがSDKはこちらを使用しました。
https://github.com/pangliang/miband-sdk-android

中国語なので、ログのコメントなどを英語か日本語に書き換えます。

Android Studioに読み込ませると、
特に苦労することなく動きました。


BLEの通信コマンドが一通り使えるのとCharactaristicsが読めるので、ここから拡張していくと良さそうです。