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部品の方がホビーユースには需要があると思う。

それはまた次回に。