趣味探しブログ「研究しましょう」 --- 日記 マガジン

    やりたい趣味を探してネットをさまよう私の、ブログです --- I'm here. Find me out.
0

教科書の香り、名前書き、定期券 🎒✨   #学生の季節感 #季節感

定期券購入エリア
 街を歩いていたら、電車やバス乗り場に、定期券購入コーナーができていた。新しい教科書の香りがかぐわしい。そして、母親に書いて貰う、持ち物に名前。

  「どれも懐かしい、春の香り ✨ 」

そんな季節感 🎒✨

0

ユーンミンの『深海の街コンサート』に行ってきたよ ♪   #ユーミンコンサート #深海の街コンサート

ユーミンコンサート
 ユーミンのCD 『深海の街』を買った時に付いてきた、コンサート先行予約抽選券で買えたユーミンのコンサートに行ってきた。

会場は、有楽町駅のすぐそばの『国際フォーラムA会場』40弱列目の席だったけどステージからけっこう距離があった。1階会場の半分ぐらいの位置。まぁ、CDのおまけだからしょうが無いんだけど。

ユーミンのMCを聞いていたら、各会場で、古い曲に較べて、新しいCDの曲の反応が悪いらしく、

  「今のベストのセットリストなんです」

と、一生懸命、説明していた。

でも、新しい深海の街のCDと、JUJUのユーミンのカバーアルバムをずっと聴いていた私から言わせると、

  「良かったです

ほんと

あ、ただ、会場備え付けか、ユーミンが持ち込んだのかは分からないけど、メインスピーカーが、例の、湾曲した奴で、あの音が嫌いなので、ちょっとへたった

PS. コンサート会場は、全席に人が入った形。いわゆる、密状態。あれでコロナに感染しないのなら、コロナ、収まってる気がする。

0

DJI ドローン Tello の動作確認プログラムを動かしてみた 🚁💨   #ドローン #プログラミング #Python

ドローンプログラムTEST
 DJI のドローン Tello の動作確認プログラムを、 Python で作ってみた。プログに乗せるために、記述のチェックをしてて、それに、チョット時間が掛かってしまった。

ドローンの Tello は WiFi のアクセスポイントとして接続するので、ノートパソコンの様に、WiFi が使える物が必要。そのため、私は、MacBookPro 上の Python でプログラミングをした。

上の写真が、自動離陸した後、どの場でホバリングしている、Tello ドローン。この状態で、もたもたしてると、タイムアウトが掛かって、自動着陸してしまう。

Tello は、ホバリングが、超、安定しているので、室内で遊ぶのに適していると思う。

 使い方は、Paython インタープリターを起動して、そこに、このコマンドで、下記のスクリプトを読み込む。

exec(open("[ファイル名].py").read())

以下のコードは main 関数を持たない形にしている。インタープリターに読み込んだら、プロンプトで関数をコールして動作させる。

WiFi で Tello に接続して、最初に connect() を実行する。そうすると、Tello に Socket に UDP 接続される。その後に、以下のコマンドを打って、ドローン操作する。

  takeoff() : ドローンの飛行開始(ある高さにきたらホバリングする)
  land() : ドローンを自動着陸させる

Pathon スクリプトから抜け出す時は、 exit() 関数を使う。インタープリターがロックしたら、MacBookPro の場合 Ctrl+C を使う。

 さてと、動作確認はできた。今後は、このままアプリを作って遊ぶ予定。どういう仕様にしようかなぁ

以下、動作確認テスト用のソース。

PS. 参考記事『Python ソケット通信のサンプル

import socket
#import tellopy    # 公式(?)ドローン制御ライブラリ
#import djitellopy

tello_ip      = b'192.168.10.1'   # Tello の IPアドレス
tello_port    = 8889              # Tello の UDP ポート番号
tello_address = (tello_ip, tello_port)
res_port      = 1518
srv_address   = (b'',9000)

tello_socket  = object # ドローンの接続用(nullの代替が分からない)
sw_res        = True  # print message: True or False

print("TELLO TEST Start")     # テスト用

# ドローンへの接続
def connect():
    global tello_socket,srv_address, tello_address
    tello_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    # tello_socket.bind(srv_address)    # 必要性不明
    if tello_socket == object: return
    tello_socket.sendto(b'command',tello_address)
    getRes()

# 応答の取得
def getRes():
    if sw_res==False: return 
    global tello_socket,res_port
    if tello_socket == object:
        print("NO SOCKET")
        return
    retv, server = tello_socket.recvfrom(res_port)
    msg = retv.decode(encoding="utf-8")
    print(msg)
    return msg

# 飛行開始
def takeoff():
    if sw_res==False: print("takeoff")
    global tello_socket,tello_address,tello_ip,tello_port
    tello_socket.sendto(b'takeoff',tello_address)
    getRes()

# 着陸
def land():
    if sw_res==False: print("land")
    global tello_socket,tello_address,tello_ip,tello_port
    tello_socket.sendto(b'land',tello_address)
    getRes()    # 着陸完了後に OK が返ってくる

# 高度下げ
def down(dist):
    global tello_socket,tello_address,tello_port
    if sw_res==False: print("dist:"+str(dist))
    tello_socket.sendto(b'land '+str(dist),tello_address)
    getRes()

def quit():
    global tello_socket
    tello_socket.close()

def resTest():
    global tello_socket
    retv = getRes(tello_socket)
    print(retv)

0

花だらけの公園で、一休み 🌸   #花見 #季節感 #ダイエット

公園は桜だらけ
 Paython 遊びで疲れてしまったので、ウォーキングに出掛けた。公園は、桜だらけになってた。マンボウが終了したせいか、シートを敷いてお花見をする人が多かった。

えっと、桜の次は、チューリップ🌷だっけ。あ、モミジの花と実も同じ時期だった様な気がする。チェックしなくては。

 ちょうど3週間経った、16時間断食ダイエットの結果、3週間で 3kg 減量できた。一日200g前後ぐらい減ってて、途中、寝ぼけてお菓子を食べてリバウンドしての、3kg減。

  「本物だと思います」

でも、標準体重までは、これから気の狂う程の努力が必要だと考えている。頑張る ✨💪

0

Python あるある 💦   #DJIドローンTello #ドローン #Python #趣味探し

 DJIのドローンTello をパソコンから動かして遊んでる。やっと、飛行、着陸ができる様になった。本のサンプルプログラムが不親切で、だいぶ手こずった。

手こずったのには、Pythonの開発環境を構築できていないのも一因だったりする。雑誌で見ると、開発環境には anaconda3と Visual Studio Code がイイと書いてあることがほとんどだっので、トライしてみた。

 困ったのは、pip でインストールしたドローンの操作ライブラリが使えない問題。環境は、MacBookPro の iOS上。Python3は anaconda3 で導入。エディタは、Visual Studio Code を選び、Python の拡張機能を組み込んである。

まず、Python の拡張機能で、anaconda3 の Python を起動するための設定。Visual Studio Code の [Code] [基本設定] [設定] で、[拡張機能] [CSS言語機能] [Python] をクリックし、右の設定項目 [Default Python] に anaconda3 のパス 、

  「 /Users/ [user] /opt/anaconda3/bin 」

を設定する。

これで、右上の [▷] を押して、実行とデバッグができる様になる。

 もう一つの問題は、pip でインストールした Tello 操作ライブラリ tellopy が使えないこと。これは、『Visual Studio Codeでライブラリやモジュールが could not be resolved になる時の対処法』に書いてあるとおりにやることで解決した。

具体的には、MSCode 上で Ctrl + shift + ^ キーを押して、ターミナルウインドウを表示させ、

  「 pip install tellopy 」

として、Tello コントロール用の tellopy モジュールをインストールする。Python を起動し、import tellopy を実行した後に、print(tellopy.__file__) の応答から、モジュールのディレクトリーパスを抜き出す。

設定タグで extra path を検索し、[項目の追加] をクリックして、先に取得したモジュールのディレクトリーパスを追加して終了。

念のために VSCode を再起動して、ソース画面で import tellopy に波線が無いことを確認出来る。ここまで来るのに、かなりの時間が掛かった。

ここまで行くと、右上の [▷] の Debug Python File を選択すると、デバッグモードが立ち上がり、ブレークや変数のウォッチとかができる様になる。

ここまで、ネットで調べてやっとできたんだけど、ネットの人は凄いなぁと思った

 Tello の制御用のプログラムも動いたんだけど、動作の様子を動画に撮って、アップの実験がしたい。

0

やっと DJI のドローン Tello をPython から動かせた 💦   #Python #ドローン #プログラミング

Python積ん読
 DJI のドローン Tello を Python からコントロールしながら Python の勉強をしようと、写真右上の本『 Scratchでドローンを・・・』を参考に、試して、動かすことができた。

この本の終わりの方に、Python で Tello API を叩いて動かすコードが載っていたので、それを試していた。Python のバージョンの違いからか、そのままでは動かなかった。

その隣の『インターフェース』を見たら、

  「 tellopy や djitellopy というモジュールがあるじゃん」

知らなかった。

でも、逆に勉強になったので、おっけぇ。

 開発環境は、エディタに Visual Studio Code を使い、そのターミナルからプログラムを実行する形を取った。具体的には、ソースをVSCode で開き、ターミナルのディレクトリをソースコードと同じにした。

ターミナルで Paythonインタープリターを起動して、

exec(open("my_tello.py").read())

これで、main を持たないソースファイル my_tello.py をロードして、自作した connect() 等の関数を、インタープリター上で打ち込んで実行する形。ソースに変更を加えたら、ファイルロードからやり直す感じ。

この方法だと、Python 上で UI をコーディングしなくていいので、楽だった。ソースファイルは、綺麗にしたら、掲載予定。その次に tellopy や djitellopy を import して試してみようと思ったら、ライブラリーが見つからないエラーが出てしまった。これを、修復。

正しい修復方法は、『Visual Studio Codeでライブラリやモジュールが could not be resolved になる時の対処法』に書いてある通り。この例では『django』が見つからないことになっているので、それを、そのまんま『tellopy』に置き換えてやったら、見事にエラーが回避された。

先のサイトの、解決法の書き方、素晴らしいす。そして、私の元の情報は、

  「ゴミ以下す」



PS. 実際のプログラムコードに関しては、もうチョット実験をしてから、別途、紹介予定。

まず、ライブラリーのフォルダを探す為に、ターミナルで conda env list を実行すると、

base    /Users/meKaeru/opt/anaconda3
Python27  /Users/meKaeru/opt/anaconda3/envs/Python27

を得る。Python3 の環境である base のフォルダ名を、VSCode の Python: Conda Path の設定の所に書くと、上記のライブラリーを読み込める様になった。

  「まぁ、困ってない人には、ゴミ情報だけど、、、」

プログラミングに関しては、別記事にする予定。

該当の記事は見つかりませんでした。