se-lina’s BLOG

Lina KATAYOSE(se-lina)が実験や技術系のことなどをお送りします。

PyLadies Bangkok(Thailand)のご紹介と発足に至るまでの流れ

この記事はPyLadies Japan Advent Calendar 2020 - Adventarの22日目の投稿です。

今回は、2019年に発足したタイのPyLadies支部、PyLadies Bangkok(パイレディース バンコク)のご紹介をしたいと思います。
記事を書くにあたって、現地の方に取材をさせて頂きました。

まずは日本語で書き、後ほど英語版を書きます (I will write the English version as soon as I am ready.)

 
PyLadiesとは、プログラミング言語であるPython(パイソン)が好きな女性を結ぶ国際的なコミュニティです。詳しくはこちら

PyLadies Bangkok

発足日は2019年10月10日

<facebook>
https://www.facebook.com/pyladiesbkk

<Twitter>
pyladiesbkk (@pyladiesbkk) | Twitter

ホームページは現在作成中!
今、作成中とのことですがSNSでご活躍をご覧ください。

 

きっかけが嬉しい

なんと!こちらのPyLadies Bangkokは、2019年にポッと出現したのではなく、2019年に私がPyConThailandでトークしたことがきっかけで動き出したことを聞きました。
「インスピレーションを受けた」というご意見もいただき大変光栄です。

バンコクで活動家のGeorgiさん

発足に至るまで、その中で一番活躍されたのが、Georgi Kerさん
この方はPyConThailandのリード(スタッフ)している方で、とても活動的です。
Georgiさんの活動的ではありますが、PyLadies Bakngkokの代表(オーガナイザー)ではありません。
GeorgiさんはPyConThailandをリードしたり、グローバルのPyLadiesので活躍したいと言うPythonに対するもっと熱い思いから、現地で活動される女性開発者(エンジニア)に声をかけ、発足に至りました。

現在のPyLadies Bakngkokの代表はGatuk S. Chattanonさん
@gatukgl

私はまだお会いしたことがないですが、このコロナウィルス(Covid-19)が収まったころにタイに行き、お会いできたら嬉しいな。と思っています。
もう少しの辛抱ですね。

さらに最近は、Python SoftwareFoundationのDiversity and Inclusion Groupに参加したらしく、また、RubyConfと毎月開催されるRubyTuesdayのミートアップの主催者でもあり、かなり多忙だとか、、、
お身体壊さず引き続き活動してほしいです。

 

ちなみに私がタイで発表した時の、まとめ記事はこちら

PyCon Thailandで初の海外トーク - se-lina’s BLOG

(今見ると、恥ずかしい、、、w)

 

活動写真

 

PyLadies Bangkok

PyLadies Bangkok

 

スマホアプリを0から開発、リリースまで。そして今なぜ地図カメラアプリなのか!?

この記事はPyLadies Japan Advent Calendar 2020 - Adventarの18日目の投稿です。

私は、ドローンの開発をするための会社を立ち上げ、3年経ちましたが、2期目が終わった後、経営について考え直し、ドローン開発事業を切り離しました。

ドローンに関してのノウハウや知見、撮影スキルはあるので、ドローンに関してのコンサルティングやドローン空撮は継続していきたいと思います。

さて、今回のタイトルにあるように

スマホアプリを0から開発、リリースまで。そして今なぜ地図カメラアプリなのか!?

についてを書き進めていきたいと思います。

 

アプリの説明

そのスマホアプリは何ぞや?という方もいるので、まずはそのアプリをご紹介します。
株式会社moegiでは2つのアプリ、CALINT(カリント)とStoryPam(ストーリーパン)を開発・リリースしています。
この2つのアプリの特徴は1アプリ内でカメラ情報と現在地情報(地図)を同時に記録することができます。それに加え、GPSによる速度の算出や標高などの位置情報を一画面に表示し、記録できる点があります。
↓↓イメージで言うとこんな感じのアプリ↓↓

アプリのイメージ

アプリのイメージ

使っていただきたい用途の想定として、現在地情報+現在の移動状況をシンプルに記録(撮影)したい方向けに、開発を行いました。
CALINTとStoryPamの大きな違いは横向きで撮影するか、縦向きで撮影するタイプの違いがありますが、会社的にはCALINTを高機能アプリ。StoryPamは気軽に使えるアプリと位置付け、PR手法を分けて展開を考えています。
詳細は、アプリ専用ページをご覧ください。
CALINTの専用ページ
StoryPamの専用ページ

基本的には無料なので皆さんも使ってみて下さいね❤

アプリを作ろうと思った経緯

このアプリを作ろうと思ったのはもう3年以上前に、電車で旅行しているとき。
今移動しているところを地図と一緒にビデオ録画できないかという想いからでした。
スマホではアプリを利用することによって、移動中の速度を知ることができるし、地図アプリによって、今どこにいるかを知ることができます。
しかし、それを同時に記録するためには速度表示させたアプリを別のカメラで撮らなくてはいけない状況があり、そこから開発したいという気持ちが芽吹き、進めることにしました。

いざ、アプリを開発するにあたって

以前勤めていた会社で、スマホアプリのゲームをUnityというゲームエンジンを使い開発(ディレクション)した経緯もありますが、自分一人で開発した経験はありませんでした。
また、Unityはゲームなどを作るのに特化しているので、それに加え1つの開発でiOSやAndorid用に書き出しができるのでとても良い開発ツールです。
しかし、今回開発するアプリはゲームではありません。
スマホのセンサーなどを直接読み取り、現象を計算して画面に表示させる仕組みでした。
もしかしたらゲームエンジンなどのツールを使って作れたかもしれませんが、私には知識がなく、ずっと構想のまま眠らせていました。

もちろん、CALINTとStoryPamのアプリは上記の開発ツールは使うことができず、開発言語のSwiftとKotlinを使用し進めております。

予期せぬところから開発者を発見

開発できる方を真剣に探しているときはなかなか見つからないものです。
また自分自身が使えるお金も潤沢ではなかったので他の開発会社のようにお金でモノを言わすことはできません。
半ば、あきらめかけていた時に友人にボソッとアプリの構想を話したら、それできる人知っている!と言われました。
その後、半信半疑で実際にお会いし、私のアプリ構想を話すとできると言うこと。
早速、費用感などもお話し、お互い納得した上で開発を進めていただくことになりました。

開発開始からリリースまで

開発関連の詳細は別途書こうと思いますが、開発者と出会い、仕様などを決めて初リリースするまでは10か月かかりました。その後、何度かバージョンアップを重ね、今の形になっています。

 

今なぜ地図アプリなのか!?

今回のBLOGの中心記事ですね。

なぜ作ったかの問いでシンプルな答えは、私が作りたかったからでもあります

しかし、会社として作るからにはそれだけではありません
カーナビが世に出始めた時のように、地図を活用しながら何かをする需要は年数を重ねていくうえで非日常での利用から日常への利用に変移していくと私は考えます。
実際、携帯電話の利用がこんなにも当たり前になることは誰も想定していなかったでしょう。
それらのように、私は今必要ではなくても、すぐ先の未来で必要になるであろうアプリやアイデアなどを具現化し、世に出すことを進めていきたいと思っています。
その中で現在地情報の共有や現在地情報のレポートなどを編集するすることなく瞬時に受け手に送ることによって利便性が上がることを信じています。

現状、このアプリがすごい売れている。とは言えませんが、
開発信念と将来の需要を見据えて、開発を進めたいと考えています。
例えば、ZoomやMeetなどのオンラインツールは昔までは「実際に会えばよい」や「海外などの遠くにい人となら使えるでしょう」「実際に会って話した方がいいよね」が主流でしたが、新型コロナの影響で実際に人と会う機会が減ったこの時期は、オンラインで会うことが前提のようになってきました。
逆に実際に会うことがイレギュラーとなり、問題がなければ実際に会ってもいいですか?

と言うことになっているのが現状であると思います。

 

今後の地図アプリに期待するもの

今は、スマホ単体でアプリを利用することを想定し、撮影した画像や動画はご自身のSNSやストレージに保管し、ユーザーが任意で保管・投稿するアプリとしています。
当初の考えていたアプリは基本的にはできてきました。

また、今リリースしているアプリはBtoCのビジネスモデルを主とし、世に出しています。

やはり、会社としては売り上げを上げなくてはならず、これらのアプリのシステムを活用したBtoB戦略を考えています。


イメージとしては下記のような感じです。

CALINT(カリント)アプリと利用ユーザー想定図?

CALINT(カリント)アプリと利用ユーザー想定図

図の左上にあるようにCALINT WEB(ネットワーク)をベースにアプリ同士が紐づけるようなシステムを構築して、位置情報(移動している車など)とカメラ情報を管理運用できるような仕組みをプラ視したスマホアプリ+WEB+ICTの開発を進めていきたいと思っています。

最後に

まだまだ構想段階であり、私自身も未熟な点が多いですが、

一番は生活や地図システムの活用が重要であると考え、インターネットと人、人・交通・モノがつながる技術をICTと地図を活用したシステム構築を通し、人々の生活の質をより良いものにしていきたいと考えています。そして、全世界の地図とICTを通じて生活の質の向上を目指すようなそんなシステムを作っていきたいと思います。

 

引き続き、応援していただけるととても嬉しいです、

 

moegi.jp

adventar.org

 

スマホアプリを0から開発、リリースまで。そして今なぜ地図カメラアプリなのか!?

スマホアプリを0から開発、リリースまで。そして今なぜ地図カメラアプリなのか!?

ワーケーション(ワーク+バケーション)を実践して思ったこと

この記事は PyLadies Japan Advent Calendar 2020 - Adventarの17日目の投稿です。

 

テレビなどを見ているとワーケーションという言葉が耳に入り、気になっていました。今後の会社(自社)での利用が実践できるかを実際にやってみて、それが本当にどこまでできるのか、会社役員として、または社員として行ったらどうなるのかを想定しながら検証してみました。

この記事はあくまで私私自身の意見がほとんどなので、実際に多くの人の意見をまとめたものではありません。参考になる範囲で見ていただければ幸いです。

 

先日、沖縄県久米島で仕事(ワーク)とバケーションと実践するべく、スケジュールなどを確認しながら予定を立てました。
久米島に宿泊した期間は5泊6日(木金土日月火)
羽田空港から沖縄・那覇空港を経由で久米島空港に空路で渡るルートで向かいました。
片道の時間はおおよそ4時間(乗り換えも含める)です。

実際、私自身は自分の会社を経営している関係もあり、厳密には上司からの指示で動いたわけではありませんが、そのようなことを想定して、下記の項目ごとに書き出し、まとめてみました。

 

通常の勤務時間が当てはめられるか。

当てはめるのは難しいです。それがリモート業務だとしても、、、
例えば9時から~18時の8時間勤務とします。その宿泊しているホテルの掃除や食事、または家族と来ている可能性を考えると通常と同じ勤務時間の当てはめは難しく、時間を短くした勤務時間か自由な時間が活用できる時間の付与が妥当だと考えられます。
また、どうしても実時間工数として社員の作業時間を定めたい場合は9時から~18時の時間幅を7時から21時の間で8時間労働として定めるのが良いかと思います。
どちらにしろ、ワーケーションを通常業務時間帯に合わせるのは厳しいと考えます。

就業中は集中できるか。

できません。(集中できませんでした)
通常のリモート業務と比べての考えです。
ホテルや旅館、宿泊の場所がおおよそシンプルでない限りは、のんびりしたい気持ちや現地の観光場所が気になってしまいます。また、家族と来ていて、お子さんがいる場合ははしゃいでいるお子さんと遊びたい気持ちになります。

時間の流れる早さが都心と異なる。

上記のように、東京と沖縄では日の出日の入りが違うだけでなく、気候も違うので、身体が慣れるまでは時間を感じる早さも違います。

就業時間は変更できるのか。

その会社がフレックスであればできそうです。フレックスがあって、リモートできる会社であれば理想に近い感じでワーケーションとして働くことができると思います。
しかし、1日8時間労働を定めていたり、半休対応しかできない場合は、難しいように感じます。

実際の仕事を時間で見る?想定工数で見る?

理解のある会社であれば仕事内容における想定工数で計算させるべきです。
例えば、Aという仕事を3時間、Bという仕事を5時間で終わると考え、1日でAとBが終われば問題なし。とさせます。
逆に、何が何でも実際に作業した時間で見る場合の会社はワーケーション対応は難しいと思いました。

現地なりのルールがある。

はい。あります。
会社の都合を現地に合わせるのではなく、現地の都合を会社が併せる必要があります。
そうした方が、現地での仕事の効率も上がりますし、モチベーションも上がります。

現地の方との交流が気になる。

私は、現地で知り合った方とほぼ毎日会いました。
やはり、現地の方との交流は大事ですし、会った方が良いです。楽しいです。
現地の方は休暇を使って遊びに来ていると思うので、ワーク+バケーションで来ていると伝えると、相手の方もちょうど良い接し方で遊ぶことができます。

インターネットの回線問題

沖縄の離島であるので、光回線のような超高速な回線は期待できません。
また、それ以外の場所だとしても回線のセキュリティ問題や安定度も違うので、予備の回線(ポケットWiFiなど)を持っていくのが良いです。
海外の場合は、事前に現地情報を確認し、ワーケーションとして活動できるのかなどを事前に確認した宿泊先(地域)を選ぶのが良いと思います。
私はフィリピンの離島で2019年に仕事をしたことがありますが、WiFiがあったとしても回線速度が遅く、また、携帯の電波も3Gでテザリングも難しい環境もありました。
基本的に各国の都心部はだいたい大丈夫ですが、地方は著しく悪い場所があります。
3Gもなく、2G(GSM)電波のみという場所もあります。

経費について

会社の社長や役員であれば、必要経費であればほとんどが経費で落とせますが、社員となると難しいでしょう。ワーケーションの短時間期間で会社経費にできるかどうかを相談するのも工数の無駄ですし、事前にワーケーションで会社経費にできる項目を決めた方がよいでしょう。
例えば、出張のような扱いであれば、現地までの移動費などは会社持ちである。しかし、社員側の都合でワーケーションをしたいという場合には、基本的に社員持ちです。また、そのワーケーションしている時に必要経費として使いそうなものと言えば、安定した通信費を担保するための経費や秘密を保持できる会議室の利用代だと思います。

家族がいた場合の想定。

今回私は1人で検証を行いましたが、パートナーがいたり、子供や親がいたらどうなるのかも考えました。
バケーション(休みとして)で来ている側から仕事している人を見たら「今回ぐらい仕事しなくてもいいのに。」「パパやママは、何で遊んでくれないんだろう」と心理的に思うはずです。
それなのに、いつもと同じような8時間労働だった場合は、自分にも家族にもツライ想いをさせてしまうので、下記に書いてあるようなワーケーション就業規則があった方が良いと感じました。
逆に『全部休暇にしたい!』という気持ちがあるのなら有給休暇として活用し、ワーケーションではなく、純粋なバケーションをするのが家族への奉仕だとも感じました。

時差問題(海外だった時)

今回、私は沖縄だったので時差はありませんが上記にも書いたように、時間の流れる早さ(感覚)が異なりますので、ある程度の配慮が必要だと感じました。
また、ワーケーションの時差がアジア圏なら少しずらすだけで対応可能だと感じましたが、アメリカやヨーロッパとなると同じ時間帯で業務を遂行するのは難しいです。
私は以前、アメリカ滞在中に日本の仕事を1時間ほどしたことがあるのですが、同じ時間帯人できるのは1時間であり、それ以外は時間差ありの業務遂行が良いと感じました。

 

リモート業務とワーケーション業務は異なる

一昔までは、出社して定時まで仕事するのが一般的で、会社にいた時間が給与計算の対象になりました。今では、リモート業務という進め方も一般的になりつつあり、就業時間はそのままで、会社のツールをオンラインにしているときやメンバー間でのホウレンソウでのやり取りで進められるようになりました。
しかし、私の感覚では「仕事以外+日常以外」がある場所では完璧なリモート業務は難しいと感じました。

 

ワーケーションするにはワーケーション就業規則を作るべき

私はこの規則があった方がいいと思いました。
なぜなら、長期休暇をより安心して休み、一部仕事できる仕組みをした方が業務全体の進む効率が上がると考えたからです。
場所が違うからリモート勤務でいいのでは!?と言う考えもよぎりましたが、実際に観光地での作業を行うと8時間労働は大変難しく、1日3時間or事案ごとの処理or効率の良い業務時間のjoinがベターと考えます。
だったら休暇でいいんじゃないの?という考えにも至りますが、今回のBLOGに議題はバケーションについて考えることです。
人によっては長く休みたいけど、その間の仕事が止まって心配になるという気持ちがあります。電話1本で要件が済むのであればそれはそれでよいと思いますが、1つの案としてあると良いと思いました。
役職がある人ならなおさら、〇〇さんは大丈夫かな。▲▲リーダーは大丈夫かな。私のちょっとした意見や業務で仕事が進むことができるのなら、休暇後のあわただしい確認ではなく、休み中のちょっとしたやり取りが業務全体がスムーズに動くと感じたからです。
もちろん、休暇として行っている人には強制できませんがお互いのために長期休暇の方にはそのうちの数日をワーケーションとして協力してほしいと思い、今後はこのような制度を定めていきたいと思います。

 

まとめ

以上のように、仕事を休暇をうまく融合させ、社員のモチベーション+会社のスムーズな業務遂行が一番の解決策だと思いました。会社は社員に日々の仕事のストレスを解消させるために休暇を与えますが、長期休暇の場合の間のストレスもこれらの事案で解決できれば良いと思いました。

純粋に休みたいのであれば休暇。

純粋に仕事させたいのであれば出勤(リモート出勤)

これらをうまく融合してより良い働き方を提案していきたいと思い、この記事を締めといたします。

adventar.org

f:id:se-lina:20201218004501j:plain

 

PyConJP2020、招待講演のスライド&補足資料です

PyConJP2020、招待講演のスライド&補足資料です。
発表時間は8月29日(土曜) 14:00~
オンラインにて発表を行います。

詳細は
PyCon JP 2020
PyConJP2020の公式サイトをご覧ください。


スライドは下記、slideshareに載せていますが、その他、動画などはYoutubeにもアップしました。

見逃してしまった方。イベント時には見れなかった方のために、まとめました。

 

 

TELLO SDKの件はこちら

se-lina.hatenablog.com

 

デモンストレーション動画

2017年(PyConJP2017で使ったドローン 初トーク

youtu.be

youtu.be

2018年(PyConJP2018で使ったドローン)
※こちら音量が大きいです

youtu.be

2019年(別イベントで使った自作ドローン)

youtu.be

2020年(PyConJP2020用)

youtu.be

f:id:se-lina:20200828234233p:plain

 

2020年8月公開までのドローン空撮動画まとめ

ドローン空撮動画を公開するため、Youtubeチャンネル作りました!

https://www.youtube.com/channel/UCuFXOJmf57qUoqpQx2xmK8A

すでにご存じの方もいると思いますが、
今年8月末までに公開した動画(5本)を、整理してこちらに記載したいと思います。

これまで公開している動画は福島県いわき市で飛行撮影したものです。
なぜ、いわき市!?と思う方もいると思いますが、福島県いわき市は私の実家があり、高校卒業まで住んでいました。そのため地理感もわかるので、その場所から撮影と公開を始めました。
撮影場所も徐々に拡大していきます。

 

今後の映像活用を想定し、すべて4K(30fps)で撮影をしています。
データ量は膨大になるのですが、再度撮り直しを考えると、今できる最大限の画質で残しておきたいと思ったからです。
Youtubeではそれぞれのデバイスで見ることが可能なので、それぞれ画像を調整してご視聴ください。
また、4Kで見ることにより、より細かな映像も楽しめるので是非お楽しみください。

 

youtu.be

youtu.be

youtu.be

youtu.be

youtu.be


撮影に関しては、国土交通省無人航空機に関する許可・承認済みです。
FISSの飛行申請済み。その他、撮影場所の詳細も確認し撮影しております。 撮影・映像作成に関しては細心の配慮を行っておりますが、問題点等がありましたら、ご連絡ください。

※FISSとは、ドローン情報基盤システム(飛行情報共有機能)で、ドローンの飛行日時・場所を申告するサイトです。URLは、https://www.fiss.mlit.go.jp/top

 

以上
引き続き、動画をアップしていきますのでよろしくお願いします!

 

www.youtube.com

Tello SDKを利用してPythonでTello(ドローン)を飛ばそう!SDK1.3日本語説明付き!

TelloをPythonで動かすための説明をします。

2020年8月29日に行われるPyConJP2020の発表補足資料としても利用いたしますので、合わせてご覧ください。 これからTelloをPythonを使って飛ばしたい方向けの内容です。

今日の記事内容

  • Telloについて
  • Tello SDKについて
  • Telloを動かすためのPythonコード(入門)
  • Telloとパソコンをつなげて動かす
    Tello SDKを利用してPythonでTello(ドローン)を飛ばそう!SDK日本語説明付き!
    Tello SDKを利用してPythonでTello(ドローン)を飛ばそう!SDK日本語説明付き!

※ご注意:SDKの日本語化は自分の参考になるようにという前提で作ったので日本語がおかしかったりフォントサイズの統一がなかったりとかんぺきではありません。すべての動作の確認等も行っていないので、予めご了承ください。

Telloについて

 Telloは、Ryze Tech社がDJIの技術を使って開発された小型のドローンです。 1万円代の小型ドローンでは比較的安定して飛ばせる良い機体です。 ホームページを見るとこんなことが書いてあります

世界一楽しいドローンを作る、そんな想いを胸に「Tello」は設計されました。たくさんの驚きがつまったTelloは、子供から大人までみんなが楽しめるトイドローンです。 飛ばすだけでなく、プログラミングScratchも学べちゃいます。

TelloとTello EDU
TelloとTello EDU
現在発売されているのは、白い機体のTello(ノーマル)と黒い機体のTello EDUです。 Tello EDUは、ミッションパッドやインフラストラクチャ接続をサポートするSDK2.0を使えます。 通常のTelloはSDK1.3になります。

Tello EDUはWiFi子機となってアクセスポイントに接続することができるので、複数での接続や同時に管理するとき。 つまり編隊飛行が可能になるようです。(いずれやりたい) 少し値段は張りますが、Tello EDUを使うと複数コントロールできるワクワク感があります。

Tello SDKについて

TelloのSDK資料はここからダウンロードできますが、英語なので、苦手な方は「ウっ」って思いますよね。 筆者の私も英語はそれほど得意ではないので、事前に全部訳したものをこちらに公開します。 原文はRize Tech社が作った文ですが、翻訳を行いました。 このSDK(1.3.0.0)についてを読むとなんとなくわかってくるので楽しいです。

Tello EDU
Tello EDUの記事はまた今度
Tello EDUを高度に動かすためのSDKはversionが2.0のものです。 これについては、後ほど説明しようと思います。

急いで訳したこともあり、一部わかりずらいところもあるかと思いますが、英語の原文も載せているので、合わせてお読みください。 (少しずつ直していきます)

本家SDKのダウンロード先

<SDK1.3>
https://www.ryzerobotics.com/jp/tello/downloads
<SDK2.0>
 https://www.ryzerobotics.com/jp/tello-edu/downloads

Tello SDK1.3日本語
Tello SDK1.3日本語
https://drive.google.com/file/d/1A51f-5HK5fq4YfiIR4Anun4DD8ERRtR3/view?usp=sharing (2022/10/19 ファイル場所変更)

 

女性ドローン操縦士
女性ドローン操縦士
  通常、ドローンはイラストのように、プロポ(リモコンのような)を使って操縦をするものですが、このTelloというドローンは、PythonやScratchというプログラミング言語で、移動や状態を支持することができます。 機体も小さく、人に当たっても大きなけがをすることは少ないので安心して飛ばすことが可能です。  

Telloを動かすためのPythonコード(入門)

コードに関しては、本家のGitHubにあるデータなども使えるようなのですが、 シンプルなコードを公開している人がいました。 https://sakayasu.net/python-drone/

sakayasu.net

こちらのサイトが比較的わかりやすくまとめられていました。 そのコードを参考にTelloを離陸+宙返り+着陸できるプログラムを以下のように 書き直しました。 こちらを使うことによって、Telloが動きます。

以下、プログラムについて補足です。 も書いていたのですが、Telloの動作などをプログラミングで制御する というのではなく、Pythonを使って、動き方を支持すると言うのが正しいと思います。

DJI公式SDK「Tello-Python」を試そう - Qiita

Tello本体そのものにはプログラムをする機能も,プログラムを書き込むメモリ領域もありません. こちらにもそのような旨が書いてあるので、それを認識して Pythonを書いていきましょう。

<Telloを上昇させて、1度宙返りさせて着陸させる>

# Tello Python3 Control Basic 
# http://www.ryzerobotics.com/
# https://blog.hatena.ne.jp/se-lina/
#
# 15 Aug 2020


import socket
import time

#Create a UDP socket
socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
tello_address = ('192.168.10.1' , 8889)

#command-mode : 'command'
socket.sendto('command'.encode('utf-8'),tello_address)
print ('start')

socket.sendto('takeoff'.encode('utf-8'),tello_address)
print ('takeoff')

time.sleep(5)
socket.sendto('flip l'.encode('utf-8'),tello_address)
time.sleep(5)

socket.sendto('land'.encode('utf-8'),tello_address)
print ('land')

その他のコードはこちら GitHub - dji-sdk/Tello-Python: This is a collection of python modules that interact with the Ryze Tello drone.

Telloとパソコンをつなげて動かす

続いて、上記のプログラムをどのように使うかについてを説明します。

  1. PCにPythonが実行できるように準備をする。
  2. PCに上記のプログラムをコピペして、tello_basic.pyなどのファイル名にする。
  3. TelloとPCをWiFiでつなぎます。   (これを行うとインターネットにはつながらなくなります。)
  4. ターミナルもしくはコマンドプロンプトでtello_basic.pyを実行する。
  5. 実行するとTelloが動きます。

RaspberryPiにArduinoをつなげる第1歩

今日の記事内容

 

RaspberryPiにArduinoをつなげる第1歩

RaspberryPiにArduinoをつなげる第1歩

私の想い

私はRaspberryPi(ラズベリーパイ)Arduino(アルドゥイーノ)のように基盤がむき出しの機器が好きです。

エアコンやテレビなどに含まれる、すでに製品化されているものを分解してマイコン部分を使うのはできませんが、汎用の機器を使って遊ぶことができるという点でとても気に入っています。

通常売られているパソコンはほとんどが組み立てられていて、改造などができません(しにくいです)。

できたとしてもSSDやHDDやメモリの増設などが一般的です。(自作パソコンは作り手の要素がたくさんあるのでここではコメント省きます。)

 

ですので、パソコンに何かをつなぐと言ってもすでに製品化されているもで、USBでつなぐのがほとんどだと思います。

 

しかし、RaspberryPiは小型で基盤むき出していながらも、LinuxOSを入れれば、PCとして使えますし、最近では性能が上がって快適に使えます。

Arduinoは用途が違うのでパソコンのようにとは行きませんが、汎用マイコンとしてとても情報や本が多く、使っている人もたくさんいます。

 

私は、このRaspberryPiやArduinoを使ってプログラミング言語を書き、モーターやサーボの制御やカメラなどを扱い、最終的にはロボットのようなものを自作できるまでになりたいと思っています。

 

Arduino IDEとは!?

Arduinoの開発環境(統合開発環境)のことです。

このIDEを使うことでArduinoマイコンにプログラムを書き込むことができます。

コンパイル・ダウンロード・実行など一連の作業がこれひとつででき、WindowsMacLinuxのパソコンから操作します。

 

IDE:Integrated Development Environment
(インテグレーティド・デベロップメント・エンバイロメント)

 

Raspberry PiArduino IDEをインストールする

今回はこちらの記事↓を参考し、自分なりにまとめてみました。

https://make.kosakalab.com/make/electronic-work/inst_arduino-ide_raspi/

作業した内容を記載したいと思います。

 

<インストール手順>
今回はホームディレクトリの ~/Appcations/配下にインストールします。

Arduino IDEインストールする場所

ファイルマネージャーのアイコン


デスクトップ画面の左上にあるファイルアイコンからファイルマネージャを起動し
ホームディレクトリ(/home/[ユーザ名]配下に Applications フォルダを作っておきます。
後ほど、このディレクトリ配下にIDEをインストールします。

 


ブラウザを起動し
https://arduino.cc/en/Main/Software
からArduino IDE Linux ARM(32bit)をダウンロードします。
(私はRaspberryPi 3を使っているのでこれを使いました)

Download the Arduino IDE

Download the Arduino IDEのページ

最近は、RaspberryPi4が出ているのでOSが64bitの場合は「Linux ARM 64bits」を使うかもしれません。
ダウンロードの画面の時に寄付のことが聞かれますが、「JUST DOWNLOAD」でもダウンロードできます。
(まずは使ってみて、活用したら筆者も寄付しようと思っています。)

ダウンロードしたファイル arduino-1.8.13-linuxarm.tar.xz を右クリックし
Extract to を選択します。

ダウンロードしたファイルを右クリック

右クリックして、
[指定先にファイルを展開]をクリックして
展開先欄に /home/[ユーザ名]/Applicationsを入力し,
実行(もしくは展開)ボタンをクリックします。
※英語OSだと[Extract to]ボタンなので、都度ご確認ください。

 

その指定先にファイルが解凍されているので見てみます。

Arduino IDEを解凍したファイルたち

解凍後のファイルは上記のようになっており、ここでは
install.sh
を使用するので、ダブルクリックしてインストールしましょう。

 

インストールが完了すると以下のようにアイコンが表示されます。

Arduino IDEアイコン

Arduino IDEアイコン



Arduinoへの書き込みテスト

Arduinoの開発環境(統合開発環境)が準備できたので、このアイコンをダブルクリックして起動します。

Arduino IDE起動中

Arduino IDE起動中1

Arduino IDE起動中

Arduino IDE起動中2

今回は起動して、書き込みできるかをチェックするだけです。
IDEにプログラムを書きたいところですが、まずは初期画面に現れたコードで書き込めるかをやってみましょう。

 

まずは、下図のようにRaspberryPiとArduinoをつなぎます。
ここで使っているArduino機は「ELEGOO UNO R3」と言う安い互換機ですが、ほぼ同じです。

 

RaspberryPiとArduinoをつなげている図

RaspberryPiとArduinoをつなげている図

 その後、Arduino IDEを以下のように操作をします。
メニューバー内、[スケッチ]→[マイコンボードに書き込む]

Arduino IDEの操作

Arduino IDEの操作

書き込みが問題なく完了すると以下のようになります。

書き込みが完了しました。

書き込みが完了しました。

 

 

このIDEの「」の「」をクリックして書き込みます。そうするとArduinoのLEDが点滅し書き込みが完了するとIDEに「書き込み完了」が表示されます。

 

以上、これで完了です。
この方法で、コードを書いてArduinoを触っていきましょう。

 

次の目標

RaspberryPiをインターネットを介し、外部ネットワークからArduinoを操作する。