41歳文系ノンプログラマ、ハード連携開発に挑戦す ~第5話「結局、自力ではScratchでドローンは飛ばせなかった」

January 3, 2016

 

身も蓋もないタイトルですが、結論としてはそういうことでした。

 

前回の記事で挑戦した(ドローンとScratchをつなぐ何かをやる)で挫折。

 

ちなみに、Scratchでドローンを飛ばすのに近い、お手軽な方法として、ScratchっぽいプログラミングができるiPad向けのアプリ「Tickle」というものがあるそうです。最初から、Parrot社のミニドローンと接続できるようになっているみたいです。

 

日本のScratchの第一人者の阿部先生が教えてくれました。ありがとうございます。

 

が、手元のiPadは、5年前に購入した、もはやただの板にすぎずorz

 

・・・ということもあり、Tickleはどっかで機会を見つけていじってみたい!という衝動も芽生えつつ、お手本サイトにそってNode.jsを使って、Scratchとドローンを連携させるのを、どうにか完遂したい。で、ダメでしたってオチなのですが、どこまでできて、何ができなかったのか、その経緯を以下、記します。

 

 

Bluetoothをパソコンに装備!

 

そもそもパソコンにBluetoothがついてないということに、前回の記事の最後あたりで気づきました。

 

ならばUSBアダプタを買うまでと思って、飲み会があるついでに集合場所近くの家電量販店に行ったものの、店頭には展示されてないんすね。お店の人に聞こうとしたものの、正月商戦でてんやわんやだったんであきらめました。

 

かと言って、Amazonさんを待つ気はなく、自宅から近い別な家電量販店にWEBで取り置きを申し込んで、再度足を運ぶという展開に。最初からAmazonさんにしておけば、タイミング的には変わらなかったので、足を使った分、時間をロス。まぁ、そんなもんす。判断力悪し。

 

 

GitHubからクローンできない

 

お手本にしていたサイトには、

 

$ git clone git@github.com:champierre/scratch2airborne.git

 

というコマンドが書いてある。Scratchとドローンを連携させるためのファイルを、GitHubから自分のパソコンに落とせってことなのですが、このコマンドが動かない。

 

何度やってもエラーになる。

 

英語で書かれたエラーメッセージには、「お前、そのファイルにアクセスするための鍵、持ってんの?持ってないなら拒絶すっぞコラ」みたいなことが書いてある。

 

・・・鍵?

 

エラーメッセージをコピペしてググってみると、どうやらコマンドでGitHubにアクセスするには、SSHの公開鍵というものが必要らしい。要はヒミツの合言葉みたいなもんか。で、それって、どこにあるの??

 

ど素人の自分でも書かれてる通りにすればどうにかなるレベルで説明してくれるサイトを探しまくる。

 

ありました。

 

(参照)gitHubでssh接続する手順~公開鍵・秘密鍵の生成から~

 

書かれた通りにやって、生成成功。ついでに、GitHubの自分のアカウントに関連づけられるようなのでやってみる。できた!というか、年末にとりあえず作ったGitHubアカウントが役に立つ日がこんなに早く来るとは。何事もとりあえずやってみるもんです。

 

これで、無事、GitHubからScratchとドローンを連携させるためのファイルを落とすことができました。

 

 

何を調べてもQiitaに行きつく

 

わからないことを調べていると、ほとんどが「Qiita」というサイトへの投稿記事にたどり着きます。

 

このサイト、「プログラミングに関する知識を記録・共有するためのサービス」だそうで、いろんな人が、どんなつまずきをどうクリアしていったかを、わかりやすく説明してくれています。

 

いまの時点(2016.1.4)で124,700点の記事があるそうです。便利だなぁ。

 

これからも幾度となくお世話になりそうです。

 

 

パッケージ管理ツールでライブラリを入手する

 

お手本のサイトには、次の手順として、

 

$ npm i noble
$ npm i rolling-spider

 

とある。npmというのは、パッケージ管理ツールというものだそうで、いろんな機能をひとかたまりにしたライブラリと呼ばれるプログラムやら何やらを、パッケージとしていろいろ取り揃えている管理ツールみたいなもん・・・だと思う。ちゃんと知りたい人は、別途調べてみてください。

 

nobleというライブラリと、rolling-spiderというライブラリを、インストールしろというコマンドなわけです。rolling-spiderはドローンの機種名が元だろうから、ドローンを飛ばすためのプログラムみたいなのが、あれこれ入っているんでしょう、たぶん。

 

どちらもコマンドを打ち込んだら、自分のパソコンに入りました。何やらエラーメッセージっぽいのが出ているような気がしますが、まぁ、気にしない。

 

で、次は

 

$ node find.js

 

なるコマンドで、ドローン本体からBluetoothの識別情報を入手します。

 

ドローンの電源を入れ、パソコンにもすでにBluetoothアダプタが待機済み。これであと一歩!

 

・・・のつもりでした。

 

 

数百行のエラーメッセージに心が折れる

 

さぁ、行け!と心の中で叫びながら、

 

$ node find.js

 

と打ち込むと、「Bluetooth-hci-socketがないぞ、ボケ」とのエラーが出る。

 

Bluetooth絡みのライブラリが必要ってことなのかしら?何のことかわからずにいると、GitHubにそういうパッケージがあがっているのを発見。これもコマンドでインストールできるらしい。


(参照)node-bluetooth-hci-socket

 

これを入れればいいわけだ。
 

説明どおりにコマンドを打ち込むと・・・おおおおおおお?????

 

大量のエラーメッセージが出て、失敗。よく見ると、最初のほうに「pythonが入ってないぞ」みたいなエラーが。Raspberry Piに入ってるプログラミング言語だ。これを避けようと思って、まずこっちをやってるのに。

 

でも、ここではパソコンにインストールさえしてけばよさそうだ。ということで、公式サイトから早々にゲット。一応怖いので説明サイトを見ながらやって、すいっと完了。

 

(参照)Windows で Python を使う(「Python入門」より)

 

で、Bluetooth-hci-socketのインストールに再チャレンジ・・・おおおおおおお???

 

ダメだ。python絡みのエラーは消えたけど、それは最初の数行だ。以前、数百行の警告やらエラーやら。

 

インストール先のフォルダを見ながらやってみると、一瞬、インストールされるんだけど、途中でみんな消えてしまう。なんで?

 

調べてもわからず、何か足りないのかと思いってほかのmpnでいろんなライブラリを一斉にインストールしてみたりするも、むしろエラーの数が増えてるような気がする。

 

あと、エラーメッセージの大半が、バージョンが云々みたいなことを言ってるっぽい。余計に入れちゃったものは削除。Node.jsもバージョンが最新版だったから、安定版にバージョンを下げてみる。

 

・・・が、事態は変わらず。

 

 

エラーメッセージを解さないと、前には進めない

 

つまづいたときに出てくるエラーメッセージの数々。要するに、こいつらを解決しないといけないわけだ。そして、これは「ここが間違ってますよ」と、丁寧に教えてくれているわけだから、そいつを読みこなさないといけない。おそらく、そういうことなんでしょう。

 

が、しかし。英語で書かれた数百行をひとりで読み込む気力は、もはや(というか最初から)ない。

 

きっと、わかっている人ならこんなエラーを出さずにすいっと行くんでしょう。つまりアレです。この段階では、もうわかる人に聞かないとダメってことです。

 

薄々わかってはいましたが、気力、体力が続く限り、自分でやってみたい気分だったのです。

 

で、気力と体力が尽きました。もう時間もありません。仕事しなきゃ。

 

一応、この一連のあれこれでできたことは、

 

・GitHubのアカウントを作った

・NodistからNode.jsを入れて、バージョン管理ができた

・Node.jsでHello Worldができた

・コマンドをあれこれ打ち込んでみた

・GitHub向けにSSHの鍵を作った

・npmを使ってみた

・ドローンを買って飛ばした

・パソコンにBluetoothが装備された

・Tickleというアプリを知った

・とりあえずPythonもインストールした

 

といったあたりですかね。いろいろできた。が、目的は果たせず。

 

こういうときの引き際は難しい。理性では「もうやめろ、時間の無駄だ!」と思いつつも、感情が「いや、まだあきらめたくない!」となる。大人なら理性の声に従うべき。が、なかなかできない。弱いなぁ。

 

もし自分が戦国武将だったら、負け戦の引き際を誤ってすぐ滅びそうだ。同じ理由で、ギャンブルもやってはいけないタイプでしょう。一方的に惚れる恋愛も、やめた方がいいでしょう。

 

引き際の悪さで思い起こすのは、若かりし頃、浪人時代や大学時代の話。

 

塾講師のアルバイトに励み過ぎ、分厚い自作教材を連日徹夜で作ったり、90分の授業を4時間やったり、塾長に内緒で土日に教室を開けてテスト対策の臨時授業をやったり、どれも給料が増えるわけでもないのに、自分の勉強そっちのけで、延々と戦い続けてました。

 

40過ぎると体というブレーキがかかりやすいのはありがたい。単独での戦いは一旦終了です。

 

どっかのタイミングで教えてくれる人を捕まえるのが、次のミッション。いつになるやら。

 

(つづく)

Please reload

Recent Posts

Monday, December 18, 2017

Please reload

Search By Tags
Please reload

Follow Me
  • Facebook - Black Circle
  • Twitter - Black Circle

※本ブログの掲載記事の取り扱いは、出典表記や特別な注記がない限り、クリエイティブコモンズCC-BY-2.1-JP ライセンスに従うものとします。