2015年10月6日火曜日

LTE(携帯電話網)でローバーを遠隔操作してみた。(ドロイドローンVer0.2)WebRTC版

前回LTE携帯電話網でローバーを遠隔操縦してみたで課題だったリアルタイム操縦ができました。
HTML5で使えるXboxのGamePadも購入してつけてみて操縦しました。
AndroidStadioでクローンしてそのままビルドすれば動くはずです。



XboxのGamePADが、スティクから手を放してもばねが弱いためかセンターの0にきっちり戻らず、ローバーが旋回してしまうため、操縦がしにかかったです。まぁ慣れなんでしょうが。

いまFPVはこんなことになっています。 ゴイスー。
このくらい迫力のある動画ならなばインパクトあるんですが、ちんたらうごいていても面白くないですね。今度はそっちに注力せねば。

前回はWebサーバーとAndroid、Webブラウザのポーリング通信で、カメラ画像とローバー操縦に5秒のタイムラグがあったんですが今回WebRTC(Webリアルタイムチャット)でほぼタイムラグがなくなりました。

WebRTCのサーバーはSkyWayを利用させていただきました。
WebRTCの知識0でしたが、ドキュメントもわかりやすく1か月ほどで実装できました。
一部ドキュメント通りに行かないところもありましたが、何とかなりました。

はまったところは、

  • ローバー操縦コマンド、GPSデータなどのデータコネクションPeer
  • カメラ画像とオーディオのメディアストリームPeer

の2本立てで実装するサンプルがない。
両方のPeerのコールバック関数の順番の入れ弧をいろいろ関数の場所を動かしてトライアンドエラーで試しました。うまく行かないときはPeer2本立てってそもそも無理かとも思いましたが。

適当な順番でもうまくいくつながるときがあるんですが、接続の失敗が多しぎました。

結局、WebブラウザとAndroid側で確認ボタンを押して接続するようにし、接続タイミングをウェイトすることで何とか安定させました。

いやー、WebRTC(SkyWay)はすばらしいですね。

WebRTC自体はドロイドローン構想時に使用したいと考えていたんですが、WebRTCはAndroidのネイティブアプリで対応した物ありませんでいた。

CordovaとかのHTML5アプリでは、その時点でBluetooth対応とかいまいちでしたので、ローバー操縦のBluetoothを優先して、ストリーミングは後で考えようということで、AndroidのネイティブアプリでWebサーバー経由で作り出したのが約1年前でしょうか。Android開発もほぼ素人なので、カメラとかWebで散々苦労しました。

やっとWeb版が先月9月に完成したものの、タイムラグありすぎで次バージョンのGCMとかRTC等調べていたら、2015.7月にSkyWayのAndroid SDKが発表されているのに気が付きました。タイミングが良かったです。

それから、Web、カメラのコード全部捨てて、やり直しになりましたが、何とかできました。

課題
  1. カメラ、GPSデータの保存が出来ない。Webブラウザからクラウドストレージに保存予定。
  2. Androidのフロント、バックカメラ2台使いがしたい。
  3. WebRTC中にAndroidの高画質カメラ撮影が保存できないのか?
  4. 乗り物マイコンのArduino対応とラジコン用サーボの制御
  5. いまのところ私個人のSkywayのAPIキーを使っていますが、サービスとして広く提供する為にはどうすりゃいいのか。
5番ですが、Skywayの場合、APIキーが一つだと、複数人つなぐとPeerIDがどんどん増えてしまう。現在生成されたPeerIDを選択する方法ですが、どっかで個々の利用者との区別をしなければです。

1.でクラウドストレージ使うのに、GoogleのIDなんかでログインするとなれば、クラウドストレージを通じてPeerIDのやり取りすることになるかとおもいますが。

また、ものすごく利用されるとGoogleAPIのほうも有償で対応しなければで、アプリはオープンソースでやりたいけど、サーバー利用料を何とかせねばなります。

まぁ追々考えますか。

あと、実際屋外で操縦するのには、操縦側のFPV表示装置も下のような感じでスマフォでやるのがベストだよね。Web画面をスマフォ対応のHTML5にするか、こっちもネイティブにするか。
bluetoothでジョイスティックつないでんのかな。
HTML5のbluetoothも対応進んでるのかな。そうすればスマフォアプリもHTML5にした方がいいのかな。



2015年9月14日月曜日

LTE(携帯電話網)でローバーを遠隔操作してみた。(ドロイドローンVer0.1)

ドロイドドローンのコース設定画面 から約三ヶ月、やっとAndroidコードが何とかなって、ローバーもBluetoothで動くようになり、タミヤのキャタピラーマシンの実機で動かしてみました。
様子を昨日撮影して動画作成しました。

とまぁこんな感じです。
まだまだですね。

一番の問題は操縦がリアルタイムにできていないところ。

実は、スマフォ画面を録画しようとモビゼン入れたら、スマフォ画面がWebから遠隔で操縦できるので、カメラプレビューとBluetoth操作ボタンのあるドロイドローンアプリ画面をモビゼンで遠隔操縦するとリアルタイム操縦とカメラのストリーミングが出来てしまった。

しかし、モビゼンはドコモ携帯のみ対応なので、SIMフリー、格安データー通信SIMでは使えない。
後GPSのリアルタイム表示もないので、まぁこっちにアドバンテージあるかな。

いまWebRTCのチャットでリアルタイムにローバー操縦コマンド送れる様にSkyWayでのコーディングを勉強し始めました。
サンプルアプリとWeb画面はすんなり動いたので、期待しています。
つでに(というか本命ですが)WebRTCビデオチャットでスマフォのカメラ画面をストリーミングします。

リアルタイム操作できればもっと早く動くタミヤのバギーラジコンとか使えます。
サーボ動かすのでArduinoで制御します。
また、GPS精度が低いので、加速度で移動距離計算して、磁気方向で現在地を正確に割り出さないとです。
プロペラ回してエンコーダで風速と移動距離も割り出したいですね。

やって分かったけど、GPSだけでは使い物にならん。
GoogleMapからの移動場所指定をして、自動操縦する予定で実装しましたが
素のGPSデータだけでは、うまくいきそうにないです。
なのでこれは後回し。

今後やることをまとめると(面白そう順)
1.ローバーはタミヤのバギーラジコンにする。
タムテックギア GB-01シャーシキット (組立キット) ヨドバシカメラで7千くらい
2.サーボを動かせるようにマイコンをArduinoに変更。
3.リアルタイム操縦のためのHTML5のGamepad API 
4.WebRTCでリアルタイム操縦、動画ストリーミング表示。
5.スマフォ加速度による移動距離計算と位置情報補正
6.WebサーバをGoogle クラウド対応にして、レンタルサーバーがない人でも使えるようにする。
javascript と Androidで対応)
7.JavascriptをJqueryでかく。
8.ライセンスを決めて表明しておく。
でしょうか。

実際の優先順位は7,4,3、2,1,7 という具合ですが…。


2015年6月26日金曜日

JavaScript エディタ難民からの脱出か

ここんとこ、JavaScriptのエディタとしてbracketsを使っていたが、AdroidStadioのコード保管になれてしまい、JavaScriptでもIDEを使いたくなった。

document.getElementById("dataSet").addEventListener("click", function()…
とか,ナウなJavascript はつづりが長くてぜったいスペルミスする。

大体、学生のときから英語のスペルはぜんぜん覚えれなかったし、保管機能は大変重宝する。
AdroidStadioの元のIntelliJ IDEAもJavaScriptに対応してるみたいだけど、Ultimate Edition(有料)でないと出来ないとのこと。
おんなじ会社のWebStormもいいらしいんだけど、こちらも有料で日本語版はないみたい。

なので、無料のIDEをさがして、ためしにNetbeansに移行してみた。
ばっちり日本語化もされている。
サイトを見ると Getting Started with Creating a Cordova Application なんてあって、
HTML5でモバイルアプリケーションを作るCordovaにも対応しているみたい。
起動はかなり時間がかかるが、ピキピキ動くし問題ない。
昔使っていたEclipseのようなもっさり感はなかった。

これで行こう!

2000年ころからLinuxサーバ管理でViを使ったから、CGIのエディタはGvimを使っていて10年くらい。
HTMLを書くのには結構苦労した。その後2010年以降はSakuraをはじめいろいろエディタを設定しては試すが、長続きしないエディタ難民だった。
けど、やっぱIDEがいいな。
これからはNetbeansに落ちつくんじゃないかと思っているが、果たして。。。




netbeans のマスコット、ねこび〜ん

ドロイドドローンのコース設定画面

携帯電話通信網でリモートコントロールするローバーこと ドロイドドローンのWeb側でコース設定をする画面がとりあえず動くようになりました。

画面は http://www.cirlution.com/dev/droidrone.html で動かせます。
画面の配置とかは、まだぜんぜん手をつけていませんのであれなんですが。


ドロイドローンの撮影した写真はまだないのでストリートビューの写真サービスをつかって模擬的に表示させています。
GoogleMAPで高度を扱うAPIも入れて、いちお、空飛ぶドロイドローン用に高度設定もできるようになっています。

ちなみにGPSの高度は標高ではなく楕円体高の表示とのことで、Android端末のGPS高度と上記のGoogleMap標高と異なると思います。

このためドロイドローンの出発地点で両者を比較して、GPSの高度をGoogleMap標高に補正するようにし、地上高(地面から高さ何メートル)で指定出来る予定。

GPS/地図の高度データが信用ならない理由

まぁ、実際にはGPSもGoogleMap標高も誤差が大きそうだから、超音波センサーで地上との距離を測る方法になるでしょう。

ローバーから送られてくるGPSデーターの保存に HTML5のWeb Storage使おうかと思ったけど、どうもこれは同期処理らしい。そこんとこどうよ?てことで、やっぱXMLHttpRequest非同期処理CGIのファイルロックでで行っている。
最近ではXMLHttpRequestなんかはJQueryでやるんだろうけど、わからないのでつかってない。
その内覚えよう。

このWebサービスは、現在、会社のサイトを置いてあるレンタルサーバーで行っています。

いずれ、保守のしやすさから、GitHubのWebサービスで 公開したいが、GitHubでは当然CGIは動かない。
CGIが必要無いように将来的にはGoogleDriveをJavascriptで使っていきたい。

また、Androidのほうも写真だけでなく、Live動画やリヤルタイム操縦もしたい。
リアルタイム操縦はGCM (Google Cloud Messaging ServiceはAndroidでPUSH通知を行うためのGoogleのサービス) をつかいたい。
しかしペアリングでサーバーが必要みたい。

ということでやっとAndroidのコーディングに戻れる。

2015年6月5日金曜日

エンジン2重反転プロペラのドローンで飛行時間を長くしたいけど

前回のドローンの話しで、農業用マルチコプター Zion AC 940 の飛行時間は10分くらい。
LiPoバッテリーでブラシレスモーターをブンブンまわせば、どうしたってそのくらいでしょう。

じゃ、エンジン駆動のドローンにしたら長時間飛べるのはないのか?

テレビニュースで見たんだけど

で、一般的なドローンが電動なのに対し、試験飛行では、ガソリンエンジンを搭載してより長時間・長距離の飛行を可能にしたヘリコプター型の試作機が登場。
とのこと、これのほかにエンジンのドローンは見当たらない。

詳しく調べようとインダストリーネットワーク(株)の本家サイト見ましたが、しばらく更新が止まっていて何も書いてない。


エンジンドローンは オープン・X という名前らしい。

エンジン、ドローンでググると,ラジコン用O.S.エンジンで有名な小川精機製もドローンを出していました。
エンジン駆動を期待しましたが、モーターのようです。残念。

基本的にドローンの制御は加速度センサーと、モーターPWMでのPID制御ですが、
中型以上のドローンは強力なブラシレスモーターを使っています。
ブラシレスモーターはPWMをラジコン用ESC(Electric Speed Controller)で制御してます。

さて、このモーターをエンジンに変えるといっても、エンジン出力を微妙に変えPID制御するのは大変そうです。
で、池上さんのアイデアは浮遊力はエンジンで、姿勢制御はモーターというハイブリットなドローンはどうかということ。
姿勢制御のモーターもブラシ付きモーター程度でできるのなら回路も簡単で安価です。

しかし、エンジンの欠点は振動で、空撮とかには向かない。

で、ロータリーエンジンは振動がすくないとのことだ。
治具メーカーが模型ヘリ用に独自開発したとのこと。

先ほどのラジコン用O.S.エンジン 小川精機製 はロータリーエンジンは販売中止になってた。
多気筒星型、水平対向エンジンなど振動が少なそうなエンジンはある。

ただ、ドローンもそうですが、プロペラの回転による反トルクを消す為に、対称に半回転プロペラを配置するのがいいようです。

なので、エンジンの浮遊力(推力が本当?)は二重反転式ロータータンデムローターになるでしょう。



2重反転のエンジンを調べていたらヤフオクに面白い物があった。


第二次大戦でアメリカ軍が使用していた遠隔操縦機の2サイクルの2重反転式のエンジン 


逆回転用のエンジンを2つ水平対向に配置したものだろう。
逆回転用クランクシャフトの配置でピストンはわずかに前後しているようにみえる。
これ見たら、ルパンの最終回に出てくるロボット「ラムダ」に似てると思いました。


このアイデアでいくと、単気筒エンジン2つのピストンを対向にして逆回転させるということになるが、こうなると、大きくなるがタンデムローターがいいのだろうか。しかし、逆回転のエンジンはないようで、2ストなら無理に逆回転できるようだが、どちらにしてもスターターで2つエンジンかけるのは大変だ。

ただ、ラジコンのエンジンの1万以下の安いやつは、白金カイロのようなグロー式点火なので、点火タイミングを同期させるのは出来なそうだ。
点火にキャパシター・ディスチャージド・イグニッション(CDI)つかったプラグのエンジンもあるようですが、高価でした。
というわけでこのアイデアは小さいドローン用のグローエンジンではボツ。

振動を消す為にピストンの反対方向の慣性がでる偏芯重りをつけるとか
点火しないピストンを逆方向に動くようにくっつけて空回りさせる、とか
空回りピストンで、ついでにコンプレッサにして、圧縮空気をペットボトルにためて、噴射して機体制御に使う。
とか考えつきました。圧縮空気の制御の方が大変か。
圧縮空気でコンプレッサピストンまわしてスターターにするのはいいかも。
圧が低いときは空気ためて、圧が高くなるとピストンまわすようにする制御もいいかも知れない。

あと振動を制御する方法として
加速度センサーから振動周期を読み取って、反位相の振動を振動モーターで作り、振動を相殺する。です。 
アンドロイドのカメラなら加速度センサーとカメラが一体で、振動モーターも付いてる。
振動モーターのPWMはスイッチのON命令細かくすれば可能か?
とも思いましたが、機種によって振動モーターの種類もちがうからダメですね。
相殺振動モーターは外付けですね。
振動の大きさが変わること考えるとステッピングモーターがいいのかな?
X-Y-Z方向の振動あるとすると3つつける?って複雑ですね。

このように、安いエンジンで振動を消す方法を考えていますが、
まぁ、昔ながらのラジコンのプロの方はいろいろしているみたいです。
私のようなど素人がなんとも出来ないものかもしれません。

モーターの2重反転プロペラは、おもちゃのラジコンヘリから、いろいろあるんですが。
が面白そうでした。

プロペラのシュミレーションなんかは プロペラ・風車の設計解析ソフトXROTORの使い方であたんですが、2重反転は出来ないとのこと。
Flowsquareはプロペラ解析できるのかな?

導出した数学モデルをコンピュータ上でシミュレーションできる環境を数値解析ソフトウェアである
MATLAB を用いて構築した。
とのことですが、数学モデルはさっぱりわかりませんでした。

いろいろ調べていて
は参考になりました。

まぁいずれにせよ、だいぶ先の話になりそうです。


2015年6月4日木曜日

ドローン のオープンソースについて

前の会社、SCF で、設計、購買システムでお世話になった先輩が退職し、2015年4月1日に株式会社IKGMを、起業しました。

その池上さんから「ちょっと寄ってきなよ」と電話をもらったので、西春近の事務所によって見ました。

昔から農業の自動化関連に研究している方で、エンルート社の農薬散布に特化した、農業用マルチコプター Zion AC 940 を購入する予定とのこと。
(Zionってジオン軍意識しての命名かな?)


昨今、ドローンの墜落、事故などがフューチャー?されていますが、農業用であれば農地の上をドローンが飛んで何かあっても作業者がいなければ安全ですし、農地は基本、私有地なのでまぁ自由に飛ばせるわけで、むしろ規制がかかれば、ドローンを飛ばしたい人は農業用に使えば?
ということになるかもしれません。色々応用もできそうです。

そんなわけで、TPPや高齢化で農業の無人化、省力化の将来性はいろいろあり、そこんところに目をつけているとのことで、なるほど~と感じました。

話をしていると、これらのドローン制御のハード、ソフトはオープンソースだよ。と教えてくれました。

ちっこいドローン Bitcraze社製 Crazyflieナノクアッドコプター10DOFは 
前からオープンソースとは知っていましたが、大学研究レベルなのでオープンかと思ってた。

高級なドローンは、どうせ買えないと、詳しく調べてなかったですが、
大体のドローンがオープンソースのようで、恥ずかしながら知りませんでした。

これは興味津々。
オープンソースのドローン制御を調べてみました。

合衆国のドローンメーカーとしては最大の3D Robotics社。
2014/10/13 に
Dronecode:Linux財団と3D RoboticsがオープンソースのUAVソフトウェアプラットフォームを開発

とのことでオープンソース化したようです。
オープンソースの本家は https://www.dronecode.org/

ハードウェアーのほうは
3D ROBOTICS AUTOPILOT SYSTEM FLIGHT CONTROLLER
にあるように、制御装置のFLIGHT CONTROLLER(FCというらしい)は
APM 2.6 と Pixhawk というのがあるみたい。

APM は Arduinoベースにオープンソースで開発したマルチコプター制御とのことらしい。
アルデユパイロット オートパイロット・スイート が本家

日本語情報では
Arduino(アルドゥイーノ)基板と ArduCopter(アルドコプター) 
Arduinoを頭脳にした、多回転翼型の飛行体の製作記録
なんかが詳しそうです。
Japan Drones 株式会社もコントローラーのAPM 2.6を販売 しています。

ArduCopter は、世界各国から集まった DIYDrones (http://diydrones.com/)のボランティアプログラマーが作り上げた ソフトウェアーです。 
APM で使用しているハードウェアーと、ソフトウエアは、全てオープンソースです。
 オープンソースとは、ハード、ソフト共に、全ての情報を無償提供で公開し、どなたでもご利用いただけ将来の開発や 発展に役立てる事が目的です。

とのこと
Japan ArduCopter Group
 http://diydrones.com/group/japan-arducopter-group
のあたりで情報が手にはいりそうです。

Pixhawk は 32 bit STM32F427 Cortex M4 core ということらしい。
Cortex M0 core なら良かったが、M4なのはLinux入れるからかな。
https://pixhawk.org/ が本家かと、
オープンソースハードウェアと謳っていますが、英語ばかり。

3D Robotics社以外では、

よく聞く ARDrone2.0
本格的なプログラミングができるラジコンヘリ・・・ ARDrone2.0 より
ARDroneは制御のためのAPI仕様書が自由にダウンロードできる。とのこと。
Wifi制御なので、IPネットワークのはしるOSが必要となるが、
ARDroneの中ではBusyBoxという軽量版のLinuxが動作していて、無線LANを使えばログインができる。
とのこと。
ドロイドローンにはWifiはいりませんが、離陸と着地の近距離はプロポ操縦者いたほうがいいのかな。

MultiWii という FC
マルチコプター : MultiWii ってなんだ より
MultiWii は、任天堂社の Wii のコントローラーに内蔵されているセンサーと Arduino を接続した物が最初。とのこと。
この発想、一番俺向きっぽいな。
http://picworld.e-monster.jp/category/multiwii/ が一覧。
超音波センサーで高度を測るというのはいいアイデアですね。
MultiWii SE V2.5 CRIUS 設定方法 てのもあった。


で、オープンソースのドローン儲かるのか?とビジネスモデルを考えると、

・オープンソースだからといってみんなが自作するわけでもない。
・自作したほうが高くつく。
・基板設計や安定した回路は売っている基板の方が実績がある。
・協力者が増える、開発や実験はユーザーでいろいろやって検証できる。
・使用は自己責任と謳って販売できる。
・楽しい。

ほかがオープンが多いから、そうでないと敬遠されますね。
なんかの基板作って売れたらいいな-とおもいました。

空飛ぶほうは、いろいろアイデアあって、次回でドローンのエンジン、モーターハイブリットを考えてみました。

2015年5月25日月曜日

カッティングプロッタを用いるCPCG基板(4) データー作成とサービスの展開 

CPCG基板 前回の続き。

CPCG基板の基板が作れるということと別に、簡単に基板パターン設計がCADで行えることが重要です。
つまりは回路図から、すぐに基板ができるイメージです。

CADはオープンソースな回路図・基板作成CAD「KiCad」を用いればいいけると思います。

下図はKiCADでDXFデーターで出力した図です。

























DXF出力は現状ではガーバーデーターのDコードの名残が見受けられます。
ここらへんをどういじればいいのか、まだ手をつけていません。

参考サイト
http://kicad.jp/
http://opencadken.com/54
http://ryuz.txt-nifty.com/blog/2012/09/kicad-silhouett.html
http://www.smartdiys.com/blog/category/pcb/

さて、実際にはCPCG基板は外形や、穴位置は決まっています。
ユーザーがいじれるのは銅パターンとカバーレイ、(レジスト)ということになります。
なので、使用するCPCG基板のテンプレート作製し、提供する必要があります。
回路図からテンプレートを元に基板データを自動配線させます。
自動配線してから、細かいところを修正する。

という手順になろうかと思いますが、いまのところKiCADに精通していないので、
具体的にどのようにするかは課題です。

その他に、ガーバーデーターのアウトラインをDXFに変換する方法も考えられます。
こうするとCADを選ばないので。

時間的にはオープンハードカンファレンス 2016年3月 http://oshwc.project2108.com/ に出展し、サービスを開始したいですが、どうなるか。

今後のサービスの妄想としては、

DXF,DWGファイルの総本家AutoCADを提供するAutoDeskは123D Circuitsという基板製造Webサービスを提供しています。

同社のメーカー運動の参加と支援を表明しています。

このような3Dプリンタに代表される個人メーカー運動はメーカーサブカルチャーとして広く普及しています。

このCPCG基板においても手軽に基板による電気回路が制作できるため個人メーカー運動の一巻となると考えますが、設計段階からの支援があれば、より充実したものになります。

CPCG基板購入者が設計段階からの支援を受けられるようにし、広く利用してもらえるように様々なサービスを展開したいと考えています。

123D Circuits のようにSNSと融合し、設計した基板を利用したい人が大勢いることがわかれば、基板を作製して販売する事も可能とおもいます。



2015年5月20日水曜日

カッティングプロッタを用いるCPCG基板(3) DIP部品 

CPCG基板 前回の続き。


基板回路の試作では基板の穴に部品足を差し込んで半田コテによる半田付けが出来るDIP部品を用いる場合が多い。
DIP部品を基板につけるには、基板にφ1mm程度の穴あけが必要である。
従来はユニバーサル基板といわれるDIP部品用の穴の開いた基板に部品を取り付けてから、リード線を半田付けで配線していた。

このユニバーサル基板で大体のことは出来るのだが、基本的に配線を設計しないで、回路図を見ながら脳内変換して配線するのだが、これが結構大変だ。
ちゃんと銅箔用のCADで自動配線させて、リード配線の参考にする手もあるのだが、ちゃんとした形にならない物を設計するのも気がのらない

このような需要に対応するため、CPCG基板の初期コンセプトして、ユニバーサル基板のようにDIPピン穴をあいた状態で提供しようかと。
銅パターンはベタですので、必要なところをカッティングマシンで切り出してパターンとする形になります。

また、外形を広く普及しているプロトタイプマイコンであるArduinoに接続できるシールド外形とDIPピン穴で提供すれば、コンセプトがはっきりした製品が提供できそうです。

CPCG基板を基材にして基板工場でスルーホールを形成すれば、CPCG両面基板ができます。
これにより電気回路の交差が可能になり、配線の自由度が向上。


基板全面にスルーホールを配置したユニバーサル基板タイプと、一部にスルーホールを配置し配線交差エリアとし、そのほかは表面実装部品を配置できる自由エリアとする基板の2種類のタイプが考えられそうです

基板は、DIPピン穴の形成は従来の基板工場にCPCG基板を基材にして提供し、通常のドリル加工で対応できると考えている。

さらにCPCG基板を基材にして基板工場で銅パターン、レジストしておき、カッティング作業を減らせることも考えられる。

Arduino等のマイコンを実装出来るようなパターンを最初から引いておき、残りのエリアはマイコンの利用目的によって自由にカッティング出来るような基板や、カッティングプロッタでは対応できないファインピッチの実装部品を乗せられるように基板の一部に、一般的なファインピッチICのフットプリントを従来の基板製作技術で形成されたCPGCハイブリッド基板の提供なども考えられそう。

あと、4層基板にして、1.27mmピッチで交互に内層のVCC、GNDに小さいTHでつないで、内装THから電源供給するようにするとかも出来そうだが、使わないTHはすべて分離しなくてはならないのでカッティングが大変になりそうだ。なんかいい方法が無いかな。

これらのCPCG基板が基板工場で製作できるかは妄想ですが、そんなような基板をカッティングする為のデータ作りできるCADが必要になります。


それの構想はまた次回に。



カッティングプロッタを用いるCPCG基板(2) カバーレイ

前回の続き。

通常の基板では銅箔の上にレジスト(カバーレイ)という皮膜を設けてあり、回路の絶縁性を確保し、酸化を防ぎ、半田付けの際の半田の漏れを制限している。

CPCG基板では銅パターン形成後にポリイミド耐熱粘着シートを貼り付けてからカッティングプロッタでハーフカット(ポリイミドだけをカット)してカバーレイを形成をしたい。

これはカッティングプロッタでしか出来ないと思ってたが、インクジェットプリンタでレジストインクを使えば出来るかな。
インクの粘性が高いか。
あとインクジェットプリンタがカッティングプロッタとは別にいる様になる。

インクの印刷で思い出したが、UV速硬化インクをインクジェットプリンタでUV-LEDを照射しながら印刷したら3Dプリンタできるんでは?、
娘がUVレジンでアクセサリ作って遊んでいたのを見て思った。
そんなに早く固まるUVレジン無いかな。また調べてみよう。

話はそれたが、カバーレイにカッティングプロッタのカッターで部品番号などの文字を刻印することも可能とおもわれ、基板で言うところのシルクもできるかな。
手実装のときはシルクは必要不可欠なので。
これもインクジェットプリンタで出来るんだと思うけど、カバーレイ作成時に同時に出来れば手間が減るので。

前回紹介したようにカッティングプロッタでステンシルの製作も可能である。
ただ、CPCG基板に上記カバーレイに十分な厚さ(0.1mm程度)をもたせれば、カバーレイに半田クリームを直接スキージし、そのままSMT部品を実装できるのでは?。
これが出来れば、ステンシルの製作は必要なくなり、また手間がへる。

以上は表面実装だけの話。

実際には穴の必要なDIP部品の方がホビーユースには需要があると思う。

それはまた次回に。



2015年5月16日土曜日

カッティングプロッタを用いるCPCG基板(1)

テストの際に表面実装する為に、ご自宅リフロー http://trac.switch-science.com/wiki/HomeReflowKit などをやっているが、こないだまで売り切れだったソルダペーストはんだ [XG-50] が安くて割と低温で溶ける。

Craft ROBOを使ったリフローはんだづけ用ステンシルの作製 をみて、カッティングプロッタを用いてクリーム半田用メタルマスクの代わりになるステンシルを、ポリプロピレン合成紙や適当な時は100円ショップのラミネートフィルムでメタルマスクの代用を作っている。
https://www.oshstencils.com/) というステンシル屋もあるそうです。

で、カッティングプロッタ一番安かったのが、あなたのカワイイ!をカタチにする Decora iD-01で¥ 12,980 なので購入した。

とりあえずA5くらいのカットができるので、Arduino基板位なら何とかなる。

ただ、DXFデータがそのままでは使えないので、ガーバーからPDFにし、イラストレーターで読み込んで古い形式で保存してから、カティング専用ソフトにインポートして使っていた。

しかし、こいつはもう販売中止になってしまった。クラフト女子向けのコンセプトがちょっとねー。売れなかったかな。

ほかのカッティングプロッタではsilhouette CAMEO ¥ 26,606 なんかがDXF読めるようだしいいかも。

で、もう数十年前、前の会社の工場のステッカー作るカッティングプロッタみてて、漠然と、これで基板のパターン作れるんじゃね?と思ってた。
で、それを試す為と、ステンシル作成にも使えるし、これでできれば¥ 12,980ってメタルマスク代や基板代よりやすいだろうと。

けど最近は基板も結構安い。http://arduino.densikit.com/CheapPCBFab
それはいいとして、カッティングプロッタで基板やってる人いないか調べたら、まァ考えつくよね。 








上記ブログでは銅箔を転写していたが、基材に銅箔が最初からついていれば転写はいらないだろう。
あと、穴あけは別にやらないと。表面実装だけなら穴はいらないけど。
また、レジストがないのでパターンを工夫しないとだ。
それと表面実装なら銅箔の接着剤がリフローの熱に耐えれるものでないと、リフロー時に煙が出たり、臭いだろう。
なので、フリーフォーミング導熱粘着基板屋が接着剤の専門なので、耐熱の弱接着材の銅張基板なんかを作ってもらえるんじゃないかと考えている。
いちお、
カッティングプロッタによる回路形成専用耐熱弱粘着銅張基板
(Cutting Plotter Circuit pattern Generation PCB = CPCG基板)
とネーミングしておこう。

あとカッティングプロッタで切り取っていらない銅箔は手動ではがさねばならないのが面倒だけど、まぁそれほど時間取らずに基板は形成できる。

これらの需要なんだけど予測として、ほかの製品を見てみると、
 
AgIC(エージック)株式会社は、2013年11月、東京大学大学院の川原圭博准教授のもと三菱製紙が製造する「銀ナノインク」(電子回路の配線用に使えるインク)を使い、家庭用プリンタで電子回路素子(要素)を印刷する技術を開発し、「一般の人でも高度な電子回路を手軽に作れるようになる」と話題を集め、同社はTechCrunch東京スタートアップバトル優勝、Maker FaireでのEditor's Choiceなどの賞を受賞している。

同様に専用プリンタ($900USD)で銀インクをプリントするCartesian社 などあるが、銀インクのプリント基板は酸化による劣化(約半年)と表面実装(SMD)部品の実装しか製作できない。

その他に、企業向けにNCフライスマシンのドリルで銅箔を削る基板製作装置がある。
代表例は LPKF社
ミッツ社のプリント基板加工機
イープロニクス プリント基板加工機
企業向けなので、ファインピッチもできるが、いずれも高価。

ホビーユースで利用できる価格帯では、
ローランドのiModelaオリジナルマインド社 等である。

あと、コンパクト3D切削マシンで作るMyプリント基板: パソコンで作ったデータどおりに加工してくれる (電子工作Hi-Techシリーズ) なんて本もあるが、このローランドのiModelaは8万程度であった、カッティングマシンiDecoraと共には販売中止のようだ。

まぁパターンも最小1mmくらいがホビーユースでの要求だろうから、3万円以下のカッティングマシンというのはインクジェットプリンタより少し高いが、手ごろでちょうどいいんではないかと思う。


DroiDrone ドロイドローン(1)


PhoneDroneは携帯電話通信網の遠隔操作はないみたい。

DroiDrone(ドロイドローン)はドローンに携帯電話をのせて、外部のWeb画面から携帯電話通信網を使いコントロールすることを最初に開発していこう。

携帯電話網がある地域なら地球の裏側からでもWeb画面でドローンを操作できる。
コントロールするWeb画面はスマフォ、家のPCどちらからも操作できる。

しょっぱなドローンは難しいので、スマフォからBluetoothで操作できるARMのローバー作ってあるんで、これにスマフォを載せて、公園あたりで走らせる予定。

6月中には完成して公開したいが。

次はドローンのように空撮を行いたい。
ドローンの安定性の設計はCrazyflieナノクアッドコプターがオープンハード、オープンソースなんで研究すればいいと思いってるが、PIDモーター制御とか難しそう。

それに、今はけっこういろいろあるんで、落ちたりしたら大変だ。

なので飛行船なんかを考えた。
まぁ風でどっか飛ばされるかもだけど、携帯電話通信網範囲ならどこ行っても、わかるんでいいんだけど、送電線とかにかかったらやだな。

調べると最近はヘリウム不足で値段高いらしい。
水を電気分解して水素でもいいかも。タダだし。危険物になるかな。
浮力はヘリウム1立方m(1000L)では、1.1kg。
スマフォは200gくらいでサーボとか全部で400g位?バッテリーが重いか。
そうすると浮力を得るため400Lくらいいるか。しかし、400Lって結構大きい。
メイクス の飛行船くらい必要だ。

軽量化のためにスマフォのバッテリから電源横取りしてモーター回すようにしたり、携帯の液晶外して動かしたりしてみたりしたりしたが、結局いい感じの風船が見つからなかった。

長距離飛ぶには飛行機のラジコンなんかのほうがいいかと。
会社と関係のあるBWF-RCで試すのもいいかと思ってたけど、遠隔操縦は難しいかな。

てなわけで関心ある人はご協力おねがいします。
どうやって儲けるかはまったく未知ですが。
オープンハード、オープンソースで開発して、キットを販売するとかになるんだろうか。

DroiDrone(ドロイドローン) のコードは
http://github.com/i386koba にあります。
GitHubようわからないし、AndroidStadioが発表されてすぐに使い始めた程度なんで稚拙なコードですが。

いまのところ、GPS,加速計、磁気コンパスの方向、カメラ撮影は可能な状態。

さらにAndroidのほうでやるべきことは
①.一定期間でGPS等データーのサーバーへのアップ
②一定期間でカメラ画像をサーバーへアップ
③目的地データ等の指示をサーバーからプル。
④現在から目的地までの方向と距離を演算
⑤BTでサーボ信号指示→単体でほぼ完成しているが、④の演算との調整が必要。
とまぁいろいろあります。

サーバーのほうは
http://www.cirlution.com/dev/droidrone.html

にテストであります。

(その後 ドロイドドローンのコース設定画面 でまとめてあります)


こっちはBracketsでコード書いていますが、GitHubは使わずやっていました。
GitHubで公開したいですが、BracketsでGit を見ましたがよくわからず。
まぁ近日中に何とかします。
→その後エディタは Netbeans になりました。(JavaScript エディタ難民からの脱出か

どちらにしてもGitHubようわからないので、コマンドラインの本は買ったけどいまいちなので以下の本買いました。

詳解GitHub はじめよう! ソーシャルコーディング Pull Requestが織りなす効率的ソフトウェア開発
http://www.amazon.co.jp/gp/product/4774151041?psc=1&redirect=true&ref_=oh_aui_detailpage_o00_s00

2015年5月15日金曜日

PhoneDroneに先を越されたたか?DroiDrone(ドロイドローン)

昨日、善光寺でドローン飛ばしてた少年が再逮捕のニュースを車のラジオ聞いていたら、「ドローンでインターネット中継していた」とのこと。
今のドローンはインターネット中継できるんか!これはまずいなと、家に帰ってググったら、
総理官邸に落ちたドローンのメーカーで有名な空撮ドローンDJI Phantom 3はYouTube中継に対応とのこと。
少年のドローンはちっこいやつ だったけど手元のスマフォにWifiで飛ばした動画をYoutubeに転送してんだろうな。Wifiも2km飛べるそうだが、技適には違反だろう。

さて、これはまずいなー。と思ったのは、ドローンのYouTube中継のアイデアがあったから。
そのアイデアは2014年夏頃思いついたんだが、

スマフォをドローンに乗せて、スマフォのカメラでYouTube中継、スマフォからBluetoothでドローンを携帯電話網を通じて遠隔操作させるDroiDrone(ドロイドローン)

というもの。
ネーミングはAndroid載せたドローンとの意味で。まぁAndroidしかプログラミングできないんで、しゃーないですが。

スマフォってドローンで必要なセンサを小型、軽量、安価に用意されているうってつけのマシン。
カメラ、GPS、加速計、磁気コンパス、そしてWifi,BT、更に携帯電話通信網と。
しかもグーグルマップのAPIなんかで位置情報のアプリも作りやすい。
今はデーター通信用の格安SIMもあるんで、中古か格安のSIMフリーAndroid携帯をドローンに乗っければDJI PhantomのWifiiだけの15万のやつを、携帯電話付きで5万くらいで出来るんじゃないかと。携帯バッテリは結構持つし。

作製難度は、AndroidからBluetoothでモーターを制御するアプリとハードはARMでつくたことあるんで、まぁ行けるだろう。

携帯電話網で遠隔操作するほうは、Webサーバーから操作するCGIとJavascriptでつくれば行けるだろう。
こっちはまぁ得意だ。こうすれば地球の裏側にあるドローンもインターネットで操作できる。
サーボなんかはArduinoで簡単にできるし、Bluetoothと接続するスケッチも書けるし。
スマフォの画面でテレビ電話すれば、テレプレゼンスなんかも激安で出来るじゃん。

なんとか一人でできんじゃねーの。

とおもってウカウカしてたら、ドローンでYouTube中継できるだと。
これはまずいな。
誰かドロイドローンのアイデアおもいついてしまうだろうJK。
とおもい、もうちょっとYouTube中継をググってたら、
手持ちのiPhoneがそのまま空を飛ぶ、スマホをドローンに変身させるキットが大人気
てのがあった。うわ、先を越された。しかもかっこいい。
こちらは、Kickstarterで PhoneDrone という xCraft社の構想らしい。安いのでスマフォ無しで2万5千円。この会社は垂直上昇してから飛行機にのようにとべるオスプレイ的なドローンを売っているので知っていたが、先を越されてしまったか。

しかし、構想を思いついたところでオープンにしておけばよかった。
開発はバネ巻ながらか、家でコード確認するくらいだから、絶対先越されるの必定だったのに、考えが甘かった。今日もバネ巻きながら書いてます。

続きはDroiDrone ドロイドローン(1)