Androidのメモとか

ポキオの日記です。今日も遅延してない。

ATOM Motionキットっていいよね、っていう話。

この記事はIoTLT Advent Calendar 2022の14日目のネタです。

ポキオ ATOM Motionキット

ATOM Motionキットとは?

これです。

ATOM Motionキット モーター/サーボドライバ(STM32F0搭載)www.switch-science.com

ATOMという名前からも分かる通り、マイコンとしてATOM Liteが付属しており、それと合体できるATOM Motionがセットになっている商品です。

ポキオ M5Stack ATOM Lite Motion Kit

詳しい記事はこちらから。

relativelayout.hatenablog.com

relativelayout.hatenablog.com

とにかくお伝えしたいのは、マイコンをつかってなにか動くものを作りたい、モーターを動かしたい、そういう人にはおすすめということです。

ATOM Motionキットって何がいいの?

個人的にATOM Motionキットがお勧めな点を4つほど挙げさせていただくと…。

すべて入っている

マイコンも同梱しているので、このキットを買えばとりあえず始められるという点。どのマイコンが互換性あるのかな?なんて考えなくて良いのがGOOD。そして意外と嬉しいのが電源も付属しているということ。大容量の充電式バッテリー(700 mAhの16340リチウムバッテリー)が搭載されていて、マイコンとモーターでの給電に関しても何も考えなくて良いのが非常に助かります。

あとは、DCモーターやサーボモーターを買うくらいですかね。

UIFlowで簡単に実装できる

開発環境はUIFlowが使えるため、IDEをPCにインストールすることなく、フッ軽で開発を開始できるものいいところ。

ポキオ M5Stack ATOM Lite Motion Kit

また、UIFlowはATOM Motionにも対応しているため、ノーコードで動くものが作れてしまいます。

面倒なモータードライバーの準備が不要

初心者としては、マイコンでモーターを動かすのが本当に面倒。電源を用意して、モータードライバーを用意して、それをよしなにつないで…、となると結構面倒。どのマイコンを使えば良いのか、配線はあっているか、そういう心配をする必要がなく、全て実装済みというのが素晴らしいです。

動いてなんぼ

要はここ。実際に作ったものが動くとテンション上がりますよねー。

個人的には小さい頃からラジコンカーに憧れがあって、それを自分の手で作れてしまうというところにちょっと感動を覚えます…(笑)

というわけで

ATOM Motionキットべた褒めの記事でしたが、これから何か動くものを作りたいと思ってる方にピッタリなマイコンかと思います。選択肢の一つに入れていただけると幸いです!(回し者じゃないよ!)

スマホの画面が逝ったときにすべきこと

メモ。

ポキオ oppo A73 画面 Vysor

画面が逝きました

去年11月頃に買ったOPPO A73

www.oppo.com

1年経たずに画面が逝ってしまいました。

昨晩寝る前は元気だったんですが、朝起きたらこの状態。よく見ると画面左側にヒビが入っているので、もしかしたら派手に落下させてしまったのかもしれません。

  • 良くも悪くも右半分は正常に映る(ただしだんだん見えるエリアが狭くなってきている)
  • タッチは効く

こんな状態でした。

こんな感じでだんだん画面の右半分も死に始めたので、急いで対処しました・・・。

(以降、Androidスマホをベースに書いています。iOSはすべきこと・できることが異なります。)

画面が逝ってまずやったこと

画面ロックの無効化

ロックしてると色々不便なので、思い切って無効化。

LINEアカウントの避難

幸い、手元には予備のAndroidスマホがあったため、そちらにLINEをインストール。画面が逝ってしまったスマホ側のLINEアプリでなんとかアカウント引き継ぎのスイッチを入れることができたので、LINEアカウントを別の端末に移動することができました。

Vysorのセットアップ

Vysorとは、スマホとPCをつないで、PCからスマホの画面操作ができるようになるツール。

www.vysor.io

Vysorを使うには

  • スマホとPCの両方でVysorアプリのセットアップ(もしかしたらPC側だけでもOKかも)
  • スマホの開発者向けオプションの有効化
  • スマホのUSBデバッグ機能の有効化

これらが必要になります。

developer.android.com

開発者向けオプションは上のページのように操作することで有効になりますが、とにかくスマホ側の画面操作が多いので、スマホ操作でスクショを撮っては表示してメニューの位置を確認しながら操作して、なんとか開発者向けオプションの有効化とUSBデバッグの有効化を行いました。

そしてなんとかVysorが使えるようになったので、PCからスマホを操作しながら諸々のデータのサルベージ等をしている状況です。

今回の教訓

予備のスマホがあると安心

急にスマホが使えなくなると、この世の中生きていけないですよね。まずは予備のスマホがあるとかなり安心します。

アカウント引き継ぎが必要なアプリをまずは避難

特にLINEですが、避難先の予備のスマホがあっても避難元のアプリでの操作が必要なアプリは本当に厄介(セキュリティ上の対策なんでしょうけど)。それらのアプリは優先的にアカウントやデータの避難をさせたいので、日頃からリストアップしておいたほうが良いかもしれません。

開発者向けオプションやUSBデバッグの手順を確認しておく

開発者向けオプションは常に有効化しているとセキュリティ上の懸念があるのであまりおすすめできません。ただ、いざというときに必要になるオプションなので、有効化の手順は予め確認しておいたほうが良いかもしれません。USBデバッグも然り。

安心と信頼のVysor

こまったらVysorですね。素晴らしいツールです。

日頃からデータをバックアップ

とにかくバックアップ。それに尽きます。

Xiaomi Smart Band 7を買った話

これは良いぞ?

ポキオ Xiaomi Smart Band 7

Xiaomi Smart Band 7って?

これです。

www.mi.com

第7世代になったXiaomiのスマートバンド。Mi BandからSmart Bandに名前を変えて、ほぼスマートウォッチに進化しています。日本では(執筆当時は)未発売でしたが、思い切ってSmart Band 7を個人輸入。以前はMi Band 5との比較を交えて使った感じをレビューしていきます。

嫁とオソロ

実は2つ購入。嫁とお揃いで買ってしまいました。

ポキオ Xiaomi Smart Band 7

というのも、まずは値段の安さ。1個あたり6000円を切っています。

ポキオ Xiaomi Smart Band 7

2つ買っても12000円。破格です。

技適もしっかり

この手の商品でまず気になるのが技適。みなさんも気になりますよね。はい。

ポキオ Xiaomi Smart Band 7

意外や意外?ちゃんと技適マークが表示されてますね。ひとまず安心。

日本語表示もOK

次に日本語表示がちゃんとできるかどうか。Mi Band 5でもちゃんと表示できていたので特に心配はしていませんでしたが…。

ポキオ Xiaomi Smart Band 7

ちゃんと表示できていますね。(ただ、流れてきたニュースが非常に残念な感じ…)

大画面、そして常時表示

Mi Band 5に慣れてしまうと、Smart Band 7の画面が本当に大きく感じます。

ポキオ Xiaomi Smart Band 7

いろんな情報を表示させても見にくくならないのが良いですね。通知も文字が大きくしっかり読めます。そして個人的に最大の魅力的な機能は…。

ポキオ Xiaomi Smart Band 7

常時表示機能!

Smart Band 7からの新機能で、画面が表示していないときも時刻が表示されます。わざわざ腕を上げてディスプレイをONにしなくても時間確認ができるのは本当にストレスフリーです。

他にも機能はあるけれど

SpO2測定機能や100種類以上のスポーツに対応したアクティビティトラッキング機能など、いくつか新機能があるそうですが、ぶっちゃけあまり使ってません。

ポキオ Xiaomi Smart Band 7

とにかく

  • 安価
  • 技適OK
  • 日本語表示OK
  • 大画面
  • 常時表示OK

これだけで買いなガジェットでした。

意識の低いツイートを自動的につぶやいてみる

Techで意識の低いことを。

ポキオ 意識の低い ツイート 自動化 Node-RED

意識が低くてもいいじゃない

意識高い系ばかりで疲れてませんか?

たまにはゆるく行きましょう。というわけで、今回は「意識の低いツイートを自動でつぶやくしくみ」を作ってみます。

やりたいこと

毎週月曜日ってやる気がでないですよね、私は皆無です。

ポキオ 意識の低い ツイート 自動化 Node-RED

やる気がなさすぎて、こういう愚痴をつぶやくのも面倒。ならば自動化するしかない、そういうモチベーションです。意識の低いDX、上等です。

自動化に使うのはNode-RED

毎度おなじみのNode-REDを使っていきます。いわゆるコーディングをしなくてもGUI上でロジックを組み立てて、実行できるすごい開発環境です。

まだNode-REDを使ったことがない方はこちらを…。

relativelayout.hatenablog.com

relativelayout.hatenablog.com

ちなみに、Raspberry PiのOSにもプリインされてたり(されてなかったり)するので、こちらも併せてどうぞ。

relativelayout.hatenablog.com

Node-REDでの設定

こんな感じでノードを組んでいます。

ポキオ 意識の低い ツイート 自動化 Node-RED

すごいシンプルですね…。

nodered.jp

まずはInjectノードで「定期的に発火して」「決まった文字列を次のノードに渡す」ようにします。

ポキオ 意識の低い ツイート 自動化 Node-RED

こんな感じで、時間とか曜日を指定することができます。ほんとに便利ですねぇ。ついでに定期的に「労働はクソ」などとつぶやくようにしたりしています、極めて便利ですね。

flows.nodered.org

そして、Twitterノードで渡された文字列をつぶやきます。これだけ。

意識の低いDX

これで定期的に意識の低いツイートをつぶやけるようになりました。これってなんの意味があるの?そういうことはあまり考えないようにしましょう。

M5Stack ATOM Motion KitをEspNowでラジコンにしてみた

みんなラジコン好きでしょ?

ポキオ M5Stack Atom Motion Kit EspNow

前回までの話

ATOM Motion Kitを購入したので、久々にセットアップをしました。

relativelayout.hatenablog.com

今回は、セットアップしたATOM Motion Kitにモーターをつなぎつつ、それをM5Stack BasicからEspNowでリモートコントロールすることでラジコンっぽくしていきます。

今回使うもの

使うものやら環境はこんな感じ。

ポキオ M5Stack Atom Motion Kit EspNow

  • コーディング : UIFlow ver. 1.9.1 (on MacBook Air)
  • ATOM Motion Kit (M5Stack ATOM Lite) : ver. 1.9.1
  • M5Stack Basic : ver. 1.9.1
  • タミヤ 楽しい工作シリーズ ダブルギヤボックス等

ダブルギヤボックスの2つのモーターをMotion KitのM1/M2端子に直接接続させています。本来はコンデンサを挟むとか挟まないとかあると思いますが、今回は省略しています。

コーディングはUIFlowで

今回もコーディングにはUIFlowを使っていきます。ATOM LiteとM5Stack Basicとの通信にはEspNowという通信を使っていきます。

www.espressif.com

(個人的解釈なので間違ってたらごめんなさいですが)BLEではなくWi-Fi上で通信をする独自通信らしく、UDP的にBroadcastしたりそれをReceiveしたりするのが簡単にできるメソッドです。ホントかよ。

ポキオ M5Stack Atom Motion Kit EspNow

一応、UIFlowの「Advanced」の中にEspNowというカテゴリがあり、ここから利用可能になっています。ありがたいことによく使う「初期化」や「送信」「受信」のテンプレートも用意されているので、それを自分のフローに持ってくるだけでM5Stack間通信が簡単にできてしまいます。

コントローラー側を実装

UIFlowはこんな感じです。

ポキオ M5Stack Atom Motion Kit EspNow

Setupで初期化のテンプレートをそのまま持ってきて、ボタンのPressedとReleasedでそれぞれ別のデータをBroadcastするようにしています。アドレスやチャネルを詳細に設定することも可能そうですが、今回はデフォルトのままで使っています。

ラジコン側を実装

ラジコン側も同じように初期化。データを受信した際に、データの中身によってモータを回転させたり止めたりしています。

ポキオ M5Stack Atom Motion Kit EspNow

今回は、

  • Aボタンが押されたら、左のキャタピラが正回転し、離すと停止
  • Bボタンが押されたら、左右のキャタピラが逆回転し、離すと停止
  • Cボタンが押されたら、右のキャタピラが正回転し、離すと停止

こんな感じでブロックを組んでみました。(Bは別のボタンと同時に押さないこととしますw)

動いている様子がこちら

普通に動きますねー。タイムラグもなく、PressedとReleasedのタイミングで動作が切り替わっていることがわかります。パケットの取りこぼしもなさそうなので、キャタピラが動きっぱなしになる、みたいなこともなさそうです。

本当はBLEで通信させたかったんですが、持っているM5Stackの種類や、UIFlowでできることが限られているため、今回はEspNowを利用しましたが、こちらも簡単にM5stack間連携をさせることができたので、かなりおすすめです。

コードはこちら。

コントローラー側

from m5stack import *
from m5ui import *
from uiflow import *
import espnow
import wifiCfg

setScreenColor(0x222222)




wifiCfg.wlan_ap.active(True)
wifiCfg.wlan_sta.active(True)
espnow.init()

def buttonA_wasPressed():
  # global params
  espnow.send(id=1, data=str('A1'))
  pass
btnA.wasPressed(buttonA_wasPressed)

def buttonA_wasReleased():
  # global params
  espnow.send(id=1, data=str('A2'))
  pass
btnA.wasReleased(buttonA_wasReleased)

def buttonC_wasPressed():
  # global params
  espnow.send(id=1, data=str('C1'))
  pass
btnC.wasPressed(buttonC_wasPressed)

def buttonC_wasReleased():
  # global params
  espnow.send(id=1, data=str('C2'))
  pass
btnC.wasReleased(buttonC_wasReleased)

def buttonB_wasPressed():
  # global params
  espnow.send(id=1, data=str('B1'))
  pass
btnB.wasPressed(buttonB_wasPressed)

def buttonB_wasReleased():
  # global params
  espnow.send(id=1, data=str('B2'))
  pass
btnB.wasReleased(buttonB_wasReleased)


print(espnow.get_mac_addr())
espnow.add_peer('ff:ff:ff:ff:ff:ff', id=1, channel=0, ifidx=0, encrypt=False)

ラジコン側

from m5stack import *
from m5ui import *
from uiflow import *
import espnow
import wifiCfg
from base.Motion import Motion



addr = None
data = None
speed = None

wifiCfg.wlan_ap.active(True)
wifiCfg.wlan_sta.active(True)
espnow.init()




def recv_cb(_):
  global addr,data,speed
  addr, _, data = espnow.recv_data(encoder='str')
  if data == 'A1':
    motion.set_motor_speed(1, speed)
  if data == 'A2':
    motion.set_motor_speed(1, 0)
  if data == 'B1':
    motion.set_motor_speed(1, speed * -1)
    motion.set_motor_speed(2, speed * -1)
  if data == 'B2':
    motion.set_motor_speed(1, 0)
    motion.set_motor_speed(2, 0)
  if data == 'C1':
    motion.set_motor_speed(2, speed)
  if data == 'C2':
    motion.set_motor_speed(2, 0)

  pass
espnow.recv_cb(recv_cb)



motion = Motion()
speed = 96
espnow.add_peer('ff:ff:ff:ff:ff:ff', id=1, channel=0, ifidx=0, encrypt=False)

ATOM Lite

ATOM Lite

  • スイッチサイエンス
Amazon

M5Stack ATOM Lite (Motion Kit) ことはじめ

久しぶりのM5Stack。

ポキオ M5Stack ATOM Lite Motion Kit

これ買いました。

ATOM Lite Motion Kitを買ってみました。

www.switch-science.com

久しぶりのセットアップだったので、メモも兼ねて手順を残しておきます。

ポキオ M5Stack ATOM Lite Motion Kit

今回買ったのはM5Stack ATOM Lite Motion Kitですが…

ポキオ M5Stack ATOM Lite Motion Kit

今回は同梱されているATOM Liteのセットアップの話がメインになります。

ATOM Lite

ATOM Lite

  • スイッチサイエンス
Amazon

まずはファームを焼く

ここにアクセスして、M5Burnerをダウンロード。

shop.m5stack.com

アプリを起動して、ATOMのカテゴリーを表示。

ポキオ M5Stack ATOM Lite Motion Kit

UIFLOW LITE」を見つけて、最新ファームをダウンロードします。

ポキオ M5Stack ATOM Lite Motion Kit

ダウンロードが完了すると、「Burn」できるようになるので、USBケーブルでM5Stack ATOM Liteを接続して「Burn」をクリック。

ポキオ M5Stack ATOM Lite Motion Kit

最初にM5Stackに設定するSSID/PWの入力が求められるので、とりあえず自宅のAP情報を入力。

ポキオ M5Stack ATOM Lite Motion Kit

入力が完了すると、ファーム焼き焼きが開始されます。

UIFLOWとの連携

M5Stackファミリーの真骨頂であるUIFLOWと連携するために、API Keyが必要になるんですが。

flow.m5stack.com

ATOM Liteはディスプレイを持たないため、API KeyをM5Burnerから取得する必要があります。

ポキオ M5Stack ATOM Lite Motion Kit

M5Burnerの画面の「Burn」の隣の「Configure」を押すと・・・

ポキオ M5Stack ATOM Lite Motion Kit

こんな感じでAPI Keyが取得できます。

ポキオ M5Stack ATOM Lite Motion Kit

これをUIFLOW上で入力すると、無事に連携することができます。

ポキオ M5Stack ATOM Lite Motion Kit

とりあえずLEDをいろんな色に光らせてみます。

ポキオ M5Stack ATOM Lite Motion Kit

光ってますね(笑)

UIFLOWからMotion Kitは制御できるの?

UNIT一覧を見ると・・・

ポキオ M5Stack ATOM Lite Motion Kit

Motion Kitがないっぽいので、ゴリゴリポートを指定して使うか、潔くArduino IDEでやったほうが簡単かもしれませんね。

UIFLOWの [BASE] > [MOTION] からモーターやサーボのブロックがあり、そこから実装可能でした!かんたんだね!

ポキオ M5Stack ATOM Lite Motion Kit

2021年版ベストガジェット3つ

2021年はあまり買ってない?

ポキオ 2021年 ベストガジェット

今更ですが

毎年恒例のベストガジェットを振り返ろうと思います。あくまでも個人的な観点でのベスト3なので、異論反論オブジェクションは認めません。

白光(HAKKO) 電池式はんだこて コードレスタイプ FX901-01

まずはこれ。

ポキオ 2021年 ベストガジェット

いままで、コンセントから電源を引っ張ってくるタイプのハンダゴテを使っていましたが、経年劣化のため買い替えを検討していた際に、思い切って電池式に。コードレスになったので取り回しが楽になったのが最高です。エネループ4本でも全然稼働するので、経済面も良し。立ち上がりは遅いかもしれませんが、ガンガンはんだ付けをする感じではないので、これで充分だったりします。

OPPO A73 ダイナミック オレンジ

まさかのOppo

ポキオ 2021年 ベストガジェット

何機種も連続してMotorolaを使っていましたが、数年ぶりにMotorola以外のスマホを使いました。素のAndroid OSではないので、ちょっと気持ち悪いですが、カメラもそこそこ、バッテリーもそこそこ、薄さもそこそこで重宝しています。一番の推しポイントは「廉価なくせして、物理SIMとeSIMに両対応している」という点です。メインはIIJ mioを使いつつ、バックアップ回線として楽天モバイルをeSIMで運用しています。最近、某回線が急に使えなくなる、みたいなことがあるのでバックアップ回線は本当に重要。

Sonos Roam

最後にこれ。

ポキオ 2021年 ベストガジェット

持ち運べる高音質、そして防水。使い方は無限大です。サイクルジャージのポケットに入れてライドに連れて行ったり、キッチンで料理をしながら音楽を聞いたり、お風呂でリラックスをしながら聞いたり…。そしてSonosならではの音質がどこでも楽しめるのが良いですね。Wi-FiとBTに両対応しているので、家の中でも出先でも使えるのもヨシ。

「Androidのメモとか」は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。

このブログは個人的なメモ書きであったり、考えを書く場所であります。執筆者の所属する団体や企業のコメントや意向とは無関係であります。また、このブログは必ずしも正しいことが書かれているとは限らず、誤字脱字や意図せず誤った情報を載せる場合がありえます。それが原因で読者が不利益を被ったとしても、執筆者はいかなる責任も負いません。ありがとうございます。