TELLOのプログラミングプリを使ってみた。
簡単でした。
TELLOをプログラムで動かす方法には、大きく分けて2つの方法があります。
一つは、動作のための命令ブロックを組み合わせて所望の動きを作るもの。
これはScratch的なアプリでTELLO用としてはDrone blocksというのがあります。
もう一つの方法は、pythonなどを使ったプログラミングによって所望の動きを作るものです。
まずは簡単な最初の方法についてやってみたいと思います。
Drone blocksを動かしました。
Drone blocksをiPadにインストールしました。
使い方は下の記事を参考にしました。
今回は、離陸して前に進み、そこから四角を描くように水平飛行を行い、元の場所に戻り着陸する、というプログラムをブロックを使って作りました。
作ったブロック列がコレ。
離陸 ⇒ 前に50㎝ ⇒ 90度右旋回 ⇒ 前に50㎝ ⇒ 90度右旋回 ⇒ 前に100㎝ ⇒ 90度右旋回 ⇒ 前に100㎝ ⇒ 90度右旋回 ⇒ 前に100㎝ ⇒ 90度右旋回 ⇒ 前に50㎝ ⇒ 90度左旋回 ⇒ 後ろに50㎝
実際に動かした動画がコレ
ほぼほぼ正確に飛んでいると思います。
離陸したところと着陸したところは、約20㎝程度のずれしかありませんでした。
良くできていると思います。
飛行性能が思ったよりいいのでホバリングにおける安定性を見てみました。
安いドローンの場合、ホバリングで停止させようとしても流れていく傾向にあります。
TELLOはどうかなと思いやってみました。
その動画がコレ。
天井に近かったこともあり、若干動いてはいますが、ホバリングでの姿勢制御は良くできていると思います。
最低高度で飛ばした時にどうなるかと調べたのがコレ。
机の周りの無数のオモチャが動画に入っていて少々恥ずかしい動画ですが。
TELLOはとても安定して飛んでいます。
満足ですね。
さて、次はいよいよpythonを使ったプログラミングです。
またまた調査から開始します。
今日はここまで。
では、また。
(記事後記)
昨日の記事でバッテリーが充電できないことを書きましたが、なんと充電できました。
メルカリで買ったTELLOの付いていたmicro-usbケーブルを手持ちのmicro-usbケーブルに代えて充電したところ充電し始めて充電完了まで行きました。
別の電池でも、充電中の青点滅から充電完了にならなかったものが青点灯の充電完了になりました。
3つの電池全て健全でした。
過去にもmicro-usbケーブルで悩まされたことがあります。
原因は判りませんが、充電できたmicro-usbケーブルはTELLOのハードケースに入れておくことにします。
久々に無駄遣いしました。 TELLOを買いました。
お買い物は楽しいですね。
メルカリの残金が2000円程度になったこともあり、また、特に欲しいものもなく暫くの間、メルカリでお買い物をしていませんでした。
一応、メルカリは毎日チェックしているのですが、目新しいものを見つけることもできすという日々を過ごしていました。
ところが先週末に心惹かれるものがでてきました。
それが、TELLO、です。
ジャンルとしては、トイドローンです。
www.ryzerobotics.comAmazonで調べてみると本体だけのタイプで13000円弱でした。
これに予備のプロペラやバッテリーを加えたりしたものが19000円程度でした。
メルカリに出ていたのは、TELLO本体に予備のプロペラと予備のバッテリーに加えハードケースがついたもので9800円でした。
数回しか使っていないとのことで痛んではいないようです。
この出品に対してある人が7000円のオファーをして断られていました。
そこで8500円のオファーを出しましたが最終的に8800円で合意して購入することになりました。
内容物から考えて定価の半額程度なので良しと思っています。
届いたので内容の確認です。
昨日、ゆうパックで届きました。
箱をあけると中から出てきたのはコレ。
なかなかいいハードケースです。
開けてみると、
片方には本体と予備を含めてバッテリーが3個
反対側には、
予備のプロペラが2式とUSBケーブルと取説とストラップ
本体をケースから出すと、こちらが前で中央にはカメラがあります。
こちらが後ろで中央がバッテリーの挿入口です。
バッテリーは、コチラ
定格3.8V 1100mAh
これを本体に入れた写真がコレ
バッテリーは専用の充電器もありますが、本体に挿入した状態でUSBで充電できます。
それでは充電を、というところでトラブル発生
充電を開始してもカメラの横にあるLEDが消灯したままです。
正常ならば青でゆっくりと点滅しないといけません。
ゲゲゲ、ババ引いたかな、壊れている?と思い、他のバッテリーを入れてみると青で点滅しました。
3つの内の一つがダメなようです。
予想では、前の所有者がバッテリーを本体に入れた状態で使わない状態が長くなりバッテリーが過放電して保護が働き充電できなくなっている可能性があります。
本当にバッテリーの問題には困らせられます。
当面は2個のバッテリーを使って遊ぼうと思います。
その上で、充電器を買って過放電したバッテリーの復活も試みてみようと思います。
TELLOに魅かれた理由
なぜ魅かれたか。
それは価格もありますが、このドローン、プログラムが組めるのです。
普通のドローンは、コントローラやスマホのアプリを使って遊ぶことしかできません。
ところがTELLOはプログラムができるみたいなのです。
プログラムができるドローンと言うのは結構少なくて手軽にできるのはTELLOだけのように見えました。
でも、これには仕掛けがあって、プログラムはパソコンで組み、そのプログラムを動かしてTELLOを動かすというものです。
それでもTELLOをプログラムしていることには違いないので、これをやってみたくて買った次第です。
明日からは、この作業開始です。
qiita.com今日はここまで。
では、また。
レーザー距離センサVL53L0Xを動かしてみました。
無事動きました。
レーザー距離センサVL53L0Xが無事動きました。
チャンとしたところのものを買ったのは正解でした。
レーザーセンサ自体は同じSTマイクロなんですが、回路が違うんでしょうね。
下の写真にあるようにArduino unoを載せたZumo Robotに取り付けてI2Cとして認識されているかどうかを確認しました。
結果がコチラ。
まずは、VL53L0Xを接続せずにI2Cが使っているアドレスを調べました。
すると下の図にあるように、アドレス1Dと6BにI2Cデバイスを見つけました。
そしてVL53L0Xを接続して同じように調べると下の図のように
アドレス1D、29、6BにI2Cデバイスを見つけました。
結果、アドレス29がVL53L0Xであることが判ります。
VL53L0Xがちゃんと認識されたので、いよいよ動作確認をします。
動作確認は、githubにあるPololuのVL53L0Xのコードを使って行いました。
それがコレ。
VL53L0Xは波長940nmの不可視光線を放出し、それが対象物にぶつかって跳ね返ってくるまでの時間を測定することで対象物までの距離を測ります。
githubのコードは幾つかの測定方法を含んでいます。
大きくは、continuousとsingleがありsingleには長距離優先、速度優先、精度優先があ
今回は、これらの測定方法を試してみることでZumo Robotで使う測定方法はどれがいいかを考えてみることにします。
測定結果です。
VL53L0Xの前にキャラメルの箱を置いて距離を測りました。
下の写真の右端にZumo Robotに載せたVL53L0Xが見えます。
左端の水玉の箱がキャラメルの箱です。
まずは、singleの長距離優先の結果です。
箱の位置は変えていないのですが、短いときで728mm、長いときで792mmとなっています。
また、8190mmとなっているのは測定できなかったときではないかと思います。
次にsingleの速度優先です。
下の図が結果ですが、短いときで658mm、長いときで849mmと長距離優先より測定の幅が広くなってしまっています。
ところが、8190mmは存在せず、測定不能な状態にはなっていないようです。
誤差は大きいが測定は行う、ということのようです。
次にsingleの精度優先です。
下の図が結果ですが、短いときで740mm、長いときで792mmと3つの測定方法の中で一番測定の幅が小さくなっています。
但し、回数は少ないものの測定不能を意味すると思われる8190mmは存在します。
次にcontinuousでの測定を試しました。
まずは、キャラメルの箱とVL53L0Xの距離が短いところから始めました。
その結果がコチラ。
短いときが126mmで長いときが132mmです。
なかなかのものです。
ちょっとずつ距離を離しました。
その結果がコチラ。
短いとき241mm、長いとき246mm
短いとき471mm、長いとき505mm
短いとき748mm、長いとき858mm
短いとき687mm、長いとき976mmで測定不能もあり。
以上の測定からVL53L0Xの特徴が大体わかりました。
まとめ
VL53L0Xは、
・短い距離は測定不能にならず数ミリの誤差で測定できる。
・距離が長くなるにつれ誤差範囲は大きくなる(カタログ上は3%)。
・更に距離が長くなると測定不能の状態も発生する。
・測定不能の状態をできるだけ発生させないようにするためには、
singleの速度優先で測定する。
以上のことから、Zumo Robotでは、
・まずはsingleの速度優先で使ってみて測定誤差が問題なければOK
・測定誤差が問題になればsingleaの精度優先で測定不能のときは無視する機能を
つけて対応
という順番でやってみようと思います。
今日はここまで。
では、また。
レーザー距離センサを買いました。
超音波距離センサの次はレーザー距離センサです。
Zumo Robotに搭載する次のセンサーとしてレーザー距離センサを買いました。
VL53LXX-V2です。
入手後、Zumo Robotではないですが、別の自走車に載せて使おうとしました、が、動かない。
色々調べましたが、センサ自体の認識もできない状態でした。
どうしようかな、と、Amazonの評価欄をみていると、
2個買ったけど1個は動いたが1個は動かない、とか、
初期化できないとかのコメントが幾つかありました。
そうか、当たり外れがあるのか、と、ある意味、納得した次第です。
さてさて、どうしようと思った結果、Amazonで追加を手配してもまた外れることもあるので、できるだけ問題がおきないもの、問題がおきても対応が可能なところから買おうと思いました。
それがコレ。
センサモジュールの詳しい説明はコレ。
V53L0Xはセンサ自体はSTがやっているようなのですがモジュールとしてはPololuが作っているようで、Pololuから買うとなると輸入になるのでPololu製品を日本で扱っている朱雀技研から買うことにしました。
届いたモノがコレ。
壊れたVL53L0Xと今回のVL53L0Xをブレッドボードに並べてみました。
同じセンサを使ってはいますが、回路は明らかに違います。
また、朱雀技研は下のような紙を製品に付けていました。
不具合があったら対応するよ、とのことです。
こういうのがあると助かりますね。
ということで早速、下手なハンダ付けで基板にヘッダーピンを付けました。
そしてブレッドボードに載せて配線したものがコレ。
Zumo Robotに載せた姿がコレ。
これから動作チェックです。
このセンサは、分解能が1㎜ということなので測定結果を見るのが楽しみです。
ということで、今日はここまで。
では、また。
Hyper-Vを入れてみました。
久々にwindowsをいじりました。
メインマシンをminsforum TH50に切り替えることにしたので、今のメインマシンであるSurface Laptop2をいじってみることにしました。
minsforum TH50が到着するまでには、まだまだ日数がかかりそうですがSurface Laptop2が動かなくならない程度で触ってみます。
今回は、仮想マシンのインストールをしてみます。
今回使う仮想マシンは、Hyper-Vです。
Raspberry PiやJetson Nano、Arduino nanoを使っているとUBUNTUを使うケースが色々と出てきます。
今までは、Macbook Pro 16とLenovo Ideapad DuetにUBUNTUを入れて対応してきたのですが、windows機でコード開発をやっている関係でwindows機でUBUNTUが動く方がメリットがある場合が沢山あります。
windows用の仮想マシンとしてはVMwareなどがありますが、仮想マシンを入れるとSDDを消費したり、処理速度も遅いのではないかと思い、今までは避けてきました。
minsforum TH50が来た時にそれに仮想マシンを入れるつもりなので、その準備としてどの仮想マシンを使うのが良いかを調べる目的で幾つかの仮想マシンの評価をしてみたいと思っています。
今回は、第一弾として、windowsの標準機能にあるHyper-Vを入れてみます。
Hyper-Vはwindows Proでないと使えないという記事が沢山ありますが、そんなことはなくてwindows homeでも使えます。
僕のパソコンはwindows 10 homeですがHyper-Vをインストールして動かすことができました。
Hyper-Vってどんなもの?
Hyper-Vの紹介記事を以下に示します。
下の記事はMicrosoftが出している記事ですが、この中にはwindows 10 homeではHyper-Vは使用できないと書いてあります。
これがあるので皆、使えないと思っているようです。
ところがこれが違うわけで、以下のような記事を見つけました。
確かに上のやり方でHyper-Vを有効にすることができました。
それではUBUNTUをインストールしてみます。
Hyper-Vが動くようになりましたのでUBUNTUを入れてみました。
そして動かした結果がコチラ。
Hyper-VにUBUNTUをインストールした状態です。
そしてUBUNTUを起動。
動くには動いたけれど、重い。
7世代のcore i5、メモリ8GBには少々荷が重い処理のようです。
パソコンの動きが全体的にもさっとしたというか、反応にちょっとしたラグが出ているように感じます。
UBUNTUを使ってみて反応の具合を確かめてみたいと思います。
それが終わったらVMwareやDockerなども調べてみようと思います。
今日はココまで。
では、また。
それにしてもタイピングも思い。
悩むところだな。
久々にミニPCを買いました。
悩んだ末に買いました。
2週間前ぐらいから気になるミニPCがありました。
それは、minisforum TH50です。
姿は、コレ。
ミニPCなので画面もキーボードもありません。
今なら定価の13000円引き、という甘い言葉に悩まされ、2週間、色々と調べた結果、えいや、と、購入のボタンを押してしまいました。
CPUがcore i5 11320H、GPUがIntel iris Xe Graphic、 メモリが16GB、SSDはM2の512GBで、68700円です。
要は、インテルの11世代CPUに高速のGPUが載ってこの値段です。
明らかにお買い得と思います。
Minisforum EliteMini TH50store.minisforum.jp
今はAMDのCPUが華やかに宣伝されていますが、インテルのCPU開発のために装置を開発し工程獲得競争を続けてきた身としては何とかインテルには勝って欲しいし、インテル製品を買いたいという気持ちが強く働いています。
今回の購入判断には、そういう面も強く影響しています。
ネットでの評価は如何に?
この2週間、色々と調べました。
結果は、悪くはないが、というものでした。
というのもインテルの12世代CPUが発表されており、これがAMDを遥かにしのぐ性能を持ったものと言うので11世代を買うのではなく12世代を買うべきだ、というものです。
12世代を称賛する動画はコチラ。
インテル11世代CPUを搭載したminisforum TH50の評価はコチラ。
仕事用には悪くないけどね、というものがほとんどですね。
minisforum TH50に2万円ちょっと足すと、皆が絶賛しているminisforum HX90が変えます。
minisforum HX90の絶賛動画がコチラ。
でもこれにはAMDが載っているんですよね。
これを買うわけにはいきません。
どうしようかな、と悩んだ結果、インテル11世代について調べてみることにしました。
というのも、僕は昨年は手持ちのパソコンを整理して一時期は2台にまで減らしたのですが、今は、また増えて4台ほど持っています。
その内訳が、
Surface Laptop2:インテル7世代core i5、アメリカで2018年に購入(windows10)
Macbook Pro16:インテル9世代core i9、2020年購入(MacOS、windows10)
Lenovo Ideapad Duet:Mediatek ARMチップ、2021年購入(chromeOS、UBUNTU)
Lenovo Ideapad U350:中古で購入(UBUNTU)
Macbook Pro 16にwindowsを入れているのはSteamsでゲームをやるためのものです。
windowsの切り替えが面倒で、結局のところあまり使っていないのが実態です。
メインマシンは、SurfaceLaptop2で毎日使っています。
Macbook Pro16は勿体ないことにネットフリックスやyoutubeを毎日流す存在になっています。
こういう中でminisforum TH50を買うということはメインマシンであるSurface Laptop2に置き換えることを前提にする必要があります。
Surface Laptop2にも購入に関する思い入れがあり、これはこれで手放せない存在です。
下の表はインテルの開発コードを説明するものです。
コード名Haswell(P1270)の獲得を目指して装置の開発を進めていましたが時間的に厳しくて14nmプロセスであるBroadwell(P1272)からの適用となりました。
我々が開発した製品の最初の適用コード名がBroadwellのP1272プロセスでした。
そういうこともあって、P1272プロセスを使ってできたインテルのCPUを搭載したパソコンが欲しいなと思っていた時に出たのがSurface Laptop2でした。
これがまた安かったので。
アメリカのMicrosoftでcore i5、8GB、256GB、画面は2256x1504で700ドル台だったように記憶しています。
僕は、Surface Laptop2には本当に満足しています。
普通の作業には何の支障もなく動きますし、画面も精細で美しいです。
引退させるにはもったいない感じがしますが、一旦お休みさせようと思います。
minisforum TH50のCPUってなに?
minisforum TH50には、インテル11世代のCPUが載っており、コード名はTiger Lakeです。
これは10nmプロセスのCPUになります。
これは多分P1274プロセスで、僕がアメリカに出向していた時にインテルが歩留まり、生産性改善で悩みに悩んでいたものだと思います。
この活動には我々も全面的に参加したわけですが、非常に難しいお題であったと記憶しています。
たった10nm程度の膜を数分から数十分かけてエッチングするわけで、車で言えばブレーキを踏んでエンジンを吹かして少しづつ前に進むというようなものでした。
排気ポンプにも負荷がかかり、ターボ分子ポンプの故障予知機能なども開発しました。
故障して動かなくなる1週間前に故障を予知するというものです。
装置性能の劣化を見つけ、いつも同じ状態で処理できるようにと装置状態の劣化の具合を機械学習を使って判断するような機能の開発も進めていました。
そういうことをやってきた結果として出てきたCPUがTiger Lakeになるわけで、これはこれで感慨深いものがあります。
ということでインテルの最新CPUである12世代Alder Lakeが出たにも係わらず、インテル11世代CPUであるTiger Lakeを載せたminisforum TH50を買うことにしました。
これも中国のメーカなので手配から到着までは1週間チョットかかります。
気長に到着を待ちたいと思います。
参考までのインテルのロードマップ的な図を載せておきます。
インテル、頑張れ!
今日はここまで。
では、また。
Zumo Robot自動運転動画です。
動きました。
超音波センサHC-SR04を使ってのZumo Robot自動運転のコードを作ったので動かしてみました。
昨日の状態のコードで動かした動画がコレ。
一応、壁までの距離を測り姿勢を変えて走行はしていますが、壁との距離が離れていたり同じ場所で距離を測定し続けたりしています。
カッコ悪いので少し変えてみます。
距離の測定を正面と左右の30度ずらしたところで行っていますが、これを正面と左右の60度ずらしたところで行うようにして少しでもオープンなエリアを見つけれるようにしてみました。
その結果がコチラ。
同じ場所で測定し続けることは多少は改善されていますが、壁までの距離が遠く、走行動作が窮屈そうに見えます。
これを少しでも改善できないかと壁までの距離を50㎝から30㎝にしてみました。
それがコチラ。
壁に当たりすぎているので、姿勢を変える前に一旦バックするようにしたのがコチラ。
おお、4つのケースの中で一番マトモな状態になりました。
まだまだ改善すべきところはありますが、結構楽しめる動きになってきたかなと思います。
超音波センサHC-SR04は使えますね。
今日はここまで。
では、また。