Dropbox

トイドローンTelloを入手してまる3ヶ月、公式サポートされたゲームパッドGameSir T1dの出荷が始まりやっと完成した感があります。ここで改めて私のTello使用環境やレビューのまとめをしておきます。

[ ジョイスティックで飛ばしたい ]
基本は携帯電話の画面に表示された仮想的なジョイスティックで操作します。しかし機械的なジョイスティックで飛ばす方が楽であるのは間違いありません。発売当初からMFIに準じたGamePadをiPhoneに接続して操縦することは出来ましたが、BluetoohとWiFiの干渉が問題になりビデオがコマ落ちになったり、操縦中に操作が一瞬途切れたりと今一つでした。唯一使えていたのはiPhoneに有線接続するGameViceという製品でしたが高価なのでTelloには不釣り合いでした。やっと最近になりRYZEから正式にサポートされたGameSir T1dというものが発売になりました。
GameSit T1d + Telloがどんなに快適かは次のビデオをご覧ください。こうやって飛ばすのがTelloの一番面白いところだと思います。木にぶつかったりすることを除けば墜落する気がしないです。

[ GameSir T1d Setup ]
最初、どうやって接続するのか悩みます。ポイントは携帯電話の設定画面でBluetoothのペアリングは必要が無いということです。
手順自体は簡単です。
– 携帯電話のBluetoothをオン
– GameSir T1dの電源オン、ブルーのLEDが点滅していなければPAIRボタンを押し点滅させる
– 携帯電話のTelloアプリケーションの設定/Bluetooth controller画面を開き、そこにあるGameSirをクリックし接続する
以上です。接続されると画面上の仮想ジョイスティックが消えます。

[ 電波の飛び ]
わたしのマンションの庭ではWiFi電波が沢山飛んでいるために悪い時には10mから20mくらいで操縦不能に陥ったりします。そこで広い公園まで出かけてテストを行ったところHuawei Mate9を使用した場合100mほどの距離まで飛ばすことが出来ました。WiFiリピーターを使用することも考えましたが機体を目視して飛ばす場合は必要ないと思います。以下、距離テストのビデオです。

[ 追加バッテリーと充電器 ]
ひとつのバッテリーでの飛行時間は10分強と、このサイズのトイドローンとしてはかなり優秀です。わたしのDJI Sparkとあまり変わらないのは驚きです。それでも、その後に1時間半の充電時間があると思うと、やはり物足りません。そのため追加のバッテリーをひとつ購入しました。バッテリーが増えてくるとTello本体を使用しての充電は面倒になります。やはり複数のバッテリーを同時に充電できる充電ハブが欲しくなります。純正品の発売の予定があるようですが、なかなか出てこないので私は自分でコネクターを作って市販の充電器と組み合わせて充電ハブを作りました。キモは充電電圧を4.35Vに設定できる充電器を探すことです。最近になって社外品の充電バブが発売され、それを入手されている人たちもちらほら見受けられます。

純正の充電ハブも出ました!

[ 写真と動画 ]
いずれもWiFi経由で送られてきたデータを携帯電話に保存する方式ゆえ、WiFi接続が悪い環境(沢山のWiFi電波が飛び交う都市部など)では厳しいものがあります。動画はソフトウエアによるスタビライズが入っていますが、時折それがアダになっていわゆるJelloエフェクトも見られます。またカメラの向きが固定なので構図も限定されます。そんなこともあり動画は諦めています。セルフィー的に写真を撮るのは悪くはありません。サンプル写真は過去記事をご覧ください。

[ FPVフライト ]
やってやれないことは無いくらいの印象です。わたしの自宅のWiFi環境が厳しくて別の部屋に飛ばすとコントロール出来なくなるので、いまひとつ楽しくないです。環境が良ければそれなりに遊べるかもしれません。以下、わたしの動画レビューです。

[ プログラミング ]
Telloはプログラムを組んで飛ばすことが手軽に出来ます。
– Scratchで手軽にプログラミング出来ます(実際はセットアップはやや面倒)。詳しくは以前の記事をご覧ください。
Drone Blocks iPhone, iPadアプリケーションでScratchのような方法でTelloのプログラムが出来ます。特別なセットアップとか無いのでScratchより手軽です。TelloだけではなくDJIのドローンもプログラム出来るそうです。
Tello Scripts Manager Androidのアプリケーションです。特徴は、このプログラムから実際に飛行させたログがそのままスクリプトとして使えることと、複数の携帯電話をBluetoothで接続してスクリプトのコピーや同期動作が行えることです。
– Python、ScratchのプログラムバッケージにPython3によるサンプルプログラムが含まれています。それを読めば簡単に自分のPyhtonスクリプトを書くことが出来ます。Androidで走るQPython3やPydroid 3などからでもTelloを制御出来ますので、かなりスマートにプログラミング出来ます。最初、チュートリアルとか書こうと思っていましたが、あまりに簡単なのでやめました。サンプルを読むとわかりますがUDPでテキストをやりとりするだけなのでネットワークが扱える言語であれば何でも簡単にTelloのコントロールが出来ますね。

Inductrix FPVに比べてTiny7が飛ばしにくいのでBetaflightでRateなどを弄ってきました。色々と関連情報を探すうちに行き着いたのがProject Mockingbirdです。BetaflightをTinyWhoop用に最適化するためのプロジェクトで、まさにInductrixのFCでの飛びを実現するためのものです。 #TinyWhoop について多くの情報を発信している人たちは、みなこのMockingbirdについて語っているくらい重要な設定と言えます。

手順はドキュメントに従うだけですが、自分の設定に合わせた部分もいくらかはあります。ドキュメントと違う設定を行ったところだけ書いておきます。

– PROFILE 2 (Angle)
室内用に使用する機体は初心者でも飛ばせるようにAngleモードの設定を小さくしました。ROLL/PITCH/YAWすべて同じ設定でRC Rateを2.00、Super Rateは0.00、RC Expoも0.00にしました。屋外用で強力なモーターに換装した機体はMockingbird設定そのままです。

– FILTER
文書の通り設定したところ、室内用機体だけ小刻みに震えるようになりました。この機体については文書の指示に反してEnable Gyro Notch Filter 1だけはオンにしました。これで震えは収まりました。<- これはFC不調が原因みたいです。飛ばせますが、ジャイロの水平が微妙に狂ってしまう状態なので引退させました。

ModesとかAdjustmentについては以前からの設定を使用しています。

ステップ2として送信機でスロットルのミキシングを行うようになっています。これはエルロンとエレベーターをきった時に自動的にスロットルを連動して上げるように送信機のミキシングを設定するものです。文書ではSpektrumの設定が書かれていますが、わたしはDEVO 10にDedviationファームウェアを入れて使用しています。これについては、下のYoutube Videoに詳しく書かれています。

おおまかなステップを覚書として書いておきます。
– Mixerを開く
– THR(スロットル)をSimpleからComplexに変更しSave
– THR/Complexに戻りMixersを1から3に変更しSave
– Thr/Complexに戻りPage 1は、そのままです(MuxがReplaceになっていること)
– Page 2でMuxをReplaceからAddに変更SrcはAIL(エルロン)、CurveをEXPO 0からABSVALに変更、Scaleを100から30に変更しSave
– Page 3でMuxをReplaceからAddに変更SrcはELE(エレベーター)、CurveをEXPO 0からABSVALに変更、Scaleを100から30に変更しSave
以上で完了です。Transmitter/Channel Monitorで動作を確認できます。

実際に飛ばしてみると、別の機体かと思うほど良くなりました。目視だと室内でヌルヌルと自由自在に飛ばせます。FPV飛行はまだ慣れなくてInduxtrix FPVほど自由な飛行が出来ていません。腕の問題だとは思いますがカメラの性にしたくなりつつあります(カメラ換装の予告?)。あと、フリップもTiny7の既定値では、高度の取れる屋外でしかうまく行きませんでしたが、室内でも出来るようになりました(腕の問題も有って成功率はまだ高くはないです)。

引き続きTiny7の構成に挑んでいます。Rateの値をAir/Horizon/Angle、それぞれのモードで変更したいと思います。これにはBetaflight Configuratorの右上にある”Enable Expert Mode”をオンにすると現れるAdjustmentページで設定可能です。ところが、わたしのTiny7では今ひとつ効いているのかどうか良く分かりません。

ということでFirmwareの更新から初めます。まず最初にCLI DumpとDiffを取得しておきます。

2018年4月現在の最新バージョンは3.3.1です。ファームウェアのページを見ると沢山の種類があります。何を使えば良いかは、Tiny7の現在のファームウェアバージョンを調べると分かります。CLIページに行きversionコマンドを入れると、
# version
# BetaFlight/SPRACINGF3 3.0.1 Oct 18 2016 / 10:35:52 (48b7b4f)

と表示されます。これでSPRACINGF3を入れれば良いと分かりました。オプションはNo reboot sequenceをオフ、Full chip eraseをオンにしないと更新出来ませんでした。

更新後、設定が失われていますので、以前のCLI Dumpをリストアします(Diffでも良かったかも)。その後もModesの内容などは再設定が必要でしたので、注意深く設定を確認します。わたしの場合Modes画面でAir modeの代わりにFailsafeが設定されていました。

本題のAdjustmentは以下のように設定しました。

これでRCを接続した状態でPID画面を開くとAir/Horizontal/Angleを切り替えるのに合わせてProfileも切り替わりますので、各モードに合わせたRate値を設定します。わたしの目標としてはAngleは舵の効きを甘くして、他のモードはディフォルトに近い状態で飛ばすことにしました。

前回の構成で屋外でがんがん飛ばしています。3Dも出来ます。

ただ室内では舵が敏感過ぎて飛ばしづらいです。そこでBetaflightのRateを調整することにしました。良く分かってはいませんが、RC Rateで全体的な効き具合(数字を大きくすると舵の効きが良くなる)、Super Rateでスティックを大きく倒したところの効き具合、RC Expoでスティックのセンター近くの効き具合(数字を大きくすると効きが弱くなる)感じだと思います。右側にスティックの効き具合がグラフで表示されるので、それと実際の飛行テストで調整します。

屋外で3Dをするための機体は、若干RC Expoを足しただけです。室内専用の機体では、上のようにしてみました。もうちょっと緩くしても良いかもです。あとThrottle MID(Throttleの中間値、40%でホバリングあるいは一番よく使う位置、ならば0.40と指定)、Throttle EXPO(数字を大きくすると、中間値の付近の効き具合が緩くなる)も弄っていますが、今一つ設定を絞り込めていません。

追記) さらに効き具合を緩くして、室内専用機は下の設定にしました。これでも室内なら十分に機敏に動きます。屋外でも試してみたいです。

家のパソコンがMacだけの時はMacAir Expressにプリンターを接続して簡単にリモートプリント出来ていました。最近になり家の据え置きPCをIntel NUCにしてWindows 10を使い始めました。これもBonjurでプリンター自体は簡単に見つかりますが、何故か印刷できずにいました。それに加えてMacAir Expressを別の場所に移動してネットワーク拡張のために利用することになったので、余っていたRaspberry Pi Zero Wをプリンターサーバーにした。

すべてはネット上にあふれている設定事例に従えば良いのですが、HPのプリンター設定の正解を見つけるまでに時間がかかったので、例によって覚え書きとして大まかな手順を書き残しておきます。

sudo apt-get update
sudo apt-get install cups
sudo apt-get install hplip

以上でソフトウエア導入は完了する。最初はcupsのみを導入しました。沢山のプリンターがすでに登録されているもののHP LaserJet P1007は含まれていない。HPのプリンター設定について探すとHPのサイトからパッケージをダウンロードしてスクリプトを実行しろという情報が沢山見つかる。ところがmakeが通らない。しかも、最後には必ずネットワーク接続が切れてしまいデバックしにくい現象に陥る。解決策を探しているうちにコンパイル済みのものがapt-getで導入出来ることが分かりました。それがhplipパッケージです。

ここからは今ひとつ確定的な手順が分かっていないのだが、、、

cupsのwebインターフェースを使ってプリンターの設定を行うとドライバーの説明にpluginが必要とか書かれている。構わず印刷してみるとジョブ画面でfilterが何とか言うメッセージが出ていて印刷出来ない。

hp-pluginというコマンドがあるので、実行すると何をしているのか分からないがメッセージも何もないまま終了する。これでも印刷は出来ない。そのうちネット上で何やら「おまじない」みたいなものを発見する。騙されたとつもりで、プリンターのUSBケーブルを外す、Raspberry Piの再起動、USBケーブルの再接続、Raspberry Piの再起動。何故か、これで印刷出来るようになりました。

PC側の設定ですが、macOSからはBonjourが使えるので何も悩むことはありませんでした。問題はやはりWindows 10ですが、やり方が分かってしまえば難しくはありません。
– cupsのでプリンターの管理画面を開きURLを記録する
– Windows 10の管理画面から「プリンターまたはスキャナーの追加をします」をクリック
– しばらくすると現れる「プリンターが一覧にない場合」をクリック
– 共有プリンターを名前で選択するに先のURLを入力(https:で始まる場合はhttp:に変更し、次へをクリック
– 適切なドライバーを選択
以上です。


KingKong Tiny7は人気のあるTinyWhoopで7mmモーターを搭載し屋外での非行も可能な小型のFPVドローンです。

RTF(Ready to Fly)で送信機セットを購入すれば手間なしですがBNF(Bind and Fly)ですといろいろと設定を行わないとプロペラを回すことさえままなりません。そこでいつも通り自分への覚え書き的に手順を書き残しておきます。

一番大事なのは最初にTiny7の初期設定を保管しておくことです。どこをいじったか把握しているにもかかわらず不調になることもありますので、設定画面を開くより先にバックアップします。画面のボタンでバックアップというのがあるので、それも取得しましたが、結局のところCLI DUMPというものが必要で、それに全て含まれるようです。CLIというコマンドラインの画面でdumpコマンドを実行し表示されたものをテキストファイルに保管しておきます。初期設定に戻すためにはこのテキストファイルの内容を一気にCLIのコマンドラインにコピペし、saveコマンドを実行すればOKです。実際、これに何度救われたことやら。

まずはRC(送信機)とバインド出来ないと話になりません。Tiny7は色々な種類の受信機に対応しています。わたしは送信機に組み込み済みのプロトコルに合わせてDSM2/DSMX受信機を購入しました。わたしのTiny7側の設定は初期設定のままでDSMXプロトコルで接続出来ていました。バインドはスイッチ付きの受信機なので、スイッチを押しながら電源をいれればバインドモードに入るので簡単です。

接続出来ていることは受信機のLEDで分かりますがBetaflightのReciever画面で確認するのが確実です。ここで各スティックの動きやスイッチの動作が確認できます。

このままでは受信機は機能しているのにスロットルを上げてもプロペラが回りません。色々調べていくと、どうもARMというスイッチの設定が必要なようです。これには送信機側でスイッチを使うための設定が必要です。わたしはDEVO10という送信機にDeviationというファームウェアを入れて使用しています。この設定がなかなか難解です。幸いなことにDeviation Forumにiniファイルがアップロードされていましたので、それを使わさせて頂くことにしました。

KingKong Tiny7 DSM2 Devo F12E

最初の投稿に添付されているファイルを使いました。これはDSM2用なのでプロトコルをDSMXに変更、あと各舵の可動範囲も若干調整しましたが、そのままでも大丈夫です。あと設定templateの読み込みはresetした状態から行わないと、それまでの設定が残ってしまい期待通りにならないこともあります。

再びBetaflightのReciever画面に戻りスイッチの動きを確認します。使用するスイッチは送信機の左上のスイッチと右上にある3ポジションのスイッチです。動きが確認できたらMode画面で四つのステータスに割り付けます。この方法については以下のYoutubeビデオの最後のところがよく分かりますので参照ください。

Kingkong Tiny 7 RTF Quick Review Plus Betaflight Setup For Horizon and Air modes

これで飛行準備完了です。電源を上げ、スロットルを一番下にしてARMスイッチをオン。後はスロットルを上げれば飛行開始です。

AIR MODEやHORIZONにて本格的に宙返りなどのアクロバットを行う場合には舵の効きを最大にする必要があります。これには送信機の設定とBetaflightの両方を調整します。

Deviation側の設定は以下のYoutubeビデオの2:40から3:20(1-4までで5-GEARからは触らない)までをご覧ください。
How to set up a DSMX receiver in Betaflight and binding to a Devo 10 with Deviation

Betaflightの設定は以下のYoutubeビデオ(ビデオではCleanflightですが)の8:15から13:30を参照してください。
How to Bind Eachine Micro Quad to Spectrum Radio – Binding Micro Quad to DX9, Dx8, Dx6
簡単に書いておくと、BetaflightのReceiverで四つの舵の可動範囲を調べて、それをCLIコマンドのrxrangeに設定すると最大の可動範囲である1000-2000に設定出来ます。わたしの場合、以下のように設定しました。

rxrange 0 1073 1925
rxrange 1 1073 1925
rxrange 2 1073 1925
rxrange 3 1000 1855

最近のレース用ドローンはFC(Flight Controller)にマイクロUSB端子が付いていてそれをパソコン、場合によっては携帯電話に接続して細かな設定を行います。現在、一番メジャーなFC用Firmwareであると思われるBetaflightを設定るするためのBetaflight Configuratorを使えるようにするまでに少々時間がかかったので、覚え書きです。

RTF(Ready to Fly)セットならば直ぐに飛ばせますが、それ以外の場合はBetaflightによる設定が必須だったりもします。

BetaflightはスタンドアローンなプログラムだけではなくChromeのもとで動くものもあります。使い勝手はどちらも同じです。USB接続したFCをシリアルポート(いわゆるCOMポート)として認識させるのが唯一の設定ですがWindowsでは少々分かりにくいところがあります。

Betaflight Configuratorの画面上に必要なドライバーのリンクが貼ってあります。macOSでFCの種類によってはドライバーを入れなくても大丈夫です。Tiny7の場合はCP210x Driversをドライバーリンクから導入しないとシリアルポートを認識しませんでした。この時High Sierraの場合はシステム環境設定/セキュリティーとプライバシー画面からSILICON LABSのドライバーに実行許可を与えなければなりません。

問題はWindows 10で構成しようとした時です。指定のドライバーをただ入れただけでは目的のCOMポートにはなりません。デバイスマネージャー(Windows 10だとWindowsアイコンを右クリックで見つかります)で見るとCP210xのUSBデバイスとしては認識されていますがCOMポートにはなっていません。ここからの手順ははっきりとは覚えていませんが最後はデバイスマネージャーでドライバーの手動更新を行って目的の構成になりました。その前にZadigによるドライバーの更新も行っているので、そちらも必須な気がします。またCOMポートに現れても違うドライバーだと動かないということもあります。最終的にはSilicon Labs CP201x USB UART Bridgeというドライバーで動いています。

正しいポートが設定されるとBetaflight Configuratorは自動的にポートを見つけてくれるのでConnectボタンを押せば使えるようになります。

手順を再現するのが難しい(面倒?)なので、詳しくは書きませんが以下のYoutubeが正解を示していると思います。英語で長々と話していますが画面を見ていれば何をやりたいかは分かると思います。

Making Flight Controller Connect Through USB by Project Blue Falcon

この問題は新しいGemini Keyboard(おそらくはバージョン1.0.21以上)をGoogle Playから導入すれば解決します。

Gemini PDA日本語かな入力ガイドもご覧ください。


一年前に申し込んだPlanet ComputersGemini PDAがようやく到着しました。ハードウェアの出来はすこぶる良いです。写真の通り日本語かなキーボードを選択しました。PCにおいては英語キーボードで「かな入力」を行う私としては、このサイズのデバイスで「かな入力」が出来ることは夢のような話でした。かってNokiaのQWERTYデバイス向けに日本語入力ソフトを作っていた時も本当はローマ字入力ではなく「かな入力」を実現したかったのですが、如何せんキートップの数が少なすぎて不可能でした。Gemini PDAではかって一世を風靡したPSION 5のキーボードを踏襲することによりそれが可能となりました。これは試さずにはいられません。

前置きが長くなりました。一年を経てやっと手にしたGemini PDA日本語キーボード版。さっそく使ってみてがっかりしました。一時間もたたないうちに明らかな「かな入力」の不具合が見つかってしまいました。それも致命的なものです。細かいことは置いといて入力方法がわかりづらいものを一つと明らかな不具合を二つ紹介しておきます。

使用しているIMEはATOKとGoogle日本語入力です。物理キーボードでGemini Keyboard Japaneseを割り当てています。

[ 分かりにくかったキーアサイン ]
– 小さい”ぁぅぇぉゃゅょ”の入力はAltキーを使用する。”っ”や”ぃ”はShiftキー併用だったので、しばらく悩みました。

[ 不具合 ]
1) “め”が入力出来ない。Alt+Mが”め”のはずですが何故か”ぬ”が入力されてしまいます。これはどうにもならない致命的なエラーです。字形が似ているので間違ったのでしょうね。

2) 濁点、半濁点を伴う文字列の変換が上手く行かない。ATOKとGoogle日本語入力では挙動が異なるが、どうも濁点と半濁点が単独の文字として扱われているように見える。

[ 解析 ]
結論としてはどちらもKey Character Mapの修正で回避出来ました。一つ目は単純に”め”と”ぬ”を取り違えているだけです。Gemini KeyboardのAPKを取り出してkeyboard_layout_japanese_gemini.kcmファイルの中身を見てみます。

key M {
    label: '\u3082'
    base: '\u3082'
    shift, capslock: '\u30FB'
    fn: '\u306C'
}

Mキーはこのように定義されています。\u306cというのは”ぬ”のユニコードです。ここを”め”にするためには\u3081にするだけで大丈夫そうです。

もう一つの問題、濁点と半濁点の扱いは、単純な話では無い気がしました。挙動から濁点、半濁点が単独の文字になっていることは想像出来ました。確認のために”ぱ”という一文字を入力したファイルを作成してバイナリーで表示してみるとe3 81 af e3 82 9aとなっていました。これは”は”と合成用の半濁点という二つの文字です。エディターなどは正しく”ぱ”と表示されます。合成用の半濁点なので当然ですし、なんら問題はないように思えます。ただし、実際の挙動を見るとATOKもGoogle日本語入力も一つの文字コードとしての”ぱ”UTF-8の場合e3 81 b1を期待しているように思えます。ユニコードの定義をまじめに解釈した場合IMEに責任があるように思えます。

かなりやっかいな問題に思えましたがネットをさまよってみるとAndroidデバイスに外部キーボードを接続して「かな入力」を行っている例がちらほら見当たります。「日本語106/109 かな入力対応キーボードレイアウト」というアプリケーションで実現できるようです。試してみると確かに動きます。Google Play上にあるアプリケーションの説明にある”余談”によるとATOKが濁点、半濁点の文字合成をしてくれていると書かれています。ということで、このアプリケーションのkcmファイルを調べてみたところ濁点には ‘\u309b’、半濁点には ‘\u309c’が使われていました。これは単独文字としての濁点、半濁点です。Gemini Keyboardでは、それぞれ合成用の濁点’\u3099’と半濁点’\u309A’になっています。

ユニコードの仕様としてはGemini Keyboardに使われているコードが正しい気もしますがATOKが動いてくれるのであれば、そちらに変更するしかありません。

key O {
    label:              '\u3089'
    base:               '\u3089'
    shift, capslock:    '\u300c'
    fn:                 '\u3099'
}

key P {
    label:              '\u305b'
    base:               '\u305b'
    shift, capslock:    '\u300d'
    fn:                 '\u309A'
}

これがオリジナルです。これを以下のように変更しました。

key O {
    label:              '\u3089'
    base:               '\u3089'
    shift, capslock:    '\u300c'
    fn:                 '\u309b'
}

key P {
    label:              '\u305b'
    base:               '\u305b'
    shift, capslock:    '\u300d'
    fn:                 '\u309c'
}

ということで、3か所の変更をkeyboard_layout_japanese_gemini.kcmに行いAPKを作り直して実機でテストしてみたところうまく動いてくれました。ただし濁点、半濁点の合成はATOKだけで行われますのでGoogle日本語入力では依然として問題は残っています。 ATOKでは、ほぼ思った通りに機能しました。Google日本語入力では何故かChromeやAndroid web browserのアドレスバーでは濁点、半濁点の合成が行われません。他の入力域では大丈夫でした。 若干その他の問題もありますので、今のところATOKがベストチョイスです。

キー数の制限から「かな入力」には色々なシフトを駆使しなければなりません。「かな入力」のメリットはローマ字に比べて打鍵数が少なくて済むので速いことですが、ややこしいシフトのためGemini PDAでの「かな入力」はあまり速くないです。普通に考えるとローマ字入力を使用しておくべきだと思います。

わたし個人としては問題は解決しましたが、正規に直してもらうためにまずはPlanet Computers Developer Forumにてレポートしました。果たして何かしらのアクションに結び付くのかどうか不明です。こういう問題の正式な報告先はどこなんでしょうね。<- 某この界隈で有名な人を介して中の人からコンタクトがありました。詳細ははっきりしてから報告しますが、仕事が速そうですし、良い方向に動きそうです。

#GeminiPDA

Telloはトイドローンながらプログラムを書いてドローンを制御する方法が用意されています。他のトイドローンには無い意欲的な試みで、わたしがTelloを入手して試したかった最大の理由です。最初、詳細が明らかになっていなくて、やきもきしましたが、いつの間にかRYZE社のDownloadページからドキュメントが落とせるようになっていました。必要なことがら、プログラムパッケージのダウンロードリンクなどが、このPDFドキュメントに記述されています。

得られるものはScratchによるプログラミング環境、Pythonによるサンプル、SDKドキュメントです。

まずはRYZE社の一押しであるScratchによるプログラミングを試してみましたので、紹介します。Scratchは子供向けにプログラミングの概念を教えるためのものです。グラフィカルなエディターでスクリプトを組んでいくものです。その中にTelloを操作するための部品が用意されています。文法やエディターの使い方を気にすることもなくスクリプトが組めますので、本当に子供でも容易にTelloを操作することが出来ると思います。

用意されている動作は単純で、離陸、着陸、上下の移動、前後左右の移動、回転だけです。Scatchと言えどもプログラミング言語ですので、ループ中で変数を変化させたりして動きを組み合わせて行くと、それなりに面白い動作をさせることが出来ます。

自宅デスクトップとして使用していたMac Miniがとうとう立ち上がらくなりIntel NUC + Windows 10で脱Mac計画実行中です。NUCちっさくて凄いとかWindowsも随分と使いやすくなったみたいな話は置いといて、ちょっと悩んだことを覚え書きとして書き残しておきます。

MacOSではコンソールを開くとUnixそのものなのでリモートで接続するLinuxとの親和性の高さが利点のひとつでしたが、いまやWindows 10にもWSLという機能が搭載されているのでLinuxそのものをシームレスに起動することができます。さっそくUbunutuを入れてコンソールを開くと確かにUbuntuなのですが、フォントが昔懐かしいMSゴシックです。プロパティでConsolasというフォントに変更すると良い感じになります。が、新規にコンソールを開くとMSゴシックになってしまいます。既定値を変更しても全く効果なし。

Ubuntuのコンソールの実態はWindowsのターミナルcmd.exeです。ターミナルを開いても同様にMSゴシックで開きます。レジストリーを確認しても既定値のフォントは期待していたものになっています、、、 なんか昔の記憶がよみがえって来ました。ターミナルのコードページが932で立ち上がると自動的にMSゴシックになってしまうのでした。

本当の解決策なのかどうか不明ですが設定/時刻と言語/日付、時刻、地域の追加設定/地域/管理/システム ロケールの変更/で現在のシステムロケールを「英語(米国)」に変更して目的のフォントが最初から使用されるようになりました。この設定はUnicode対応では無い古いアプリケーションで使用する言語を決めるものなので、私の使用環境ではこの設定で問題はないと思われます。