雑記 -Miscellaneous-

Xiaomi Poco F2 Proはコスパモンスターと呼ばれるほど、値段に対しての性能が素晴らしく、
最新のゲームもヌルヌル動く性能を持つSnapdragon 865が搭載されていながらこの金額は脅威です。

カメラ性能も4眼カメラが搭載されており、非常に美しい写真が取れます。(iPhone 11やXiaomi mi Note 10と比べても綺麗に撮れていると感じます)
実際に利用するとマクロに驚かされ、通常のスマホではこれ以上寄れないような被写体であっても数センチレベルまで綺麗に撮影できてしまいます。

楽天モバイルは公式で対応を謳っている製品ではありませんが、楽天モバイル網で利用することができます。(au網はBAND18もBAND26も対応していない)

楽天モバイルで使えるようになるまでの手順をポイントだけ紹介します。
MIUIバージョン:MIUI Global12.0.2安定版
Androidバージョン:10 QKQ1.191117.002









初めて利用する場合、VoLTEがデフォルトオフになっていますので、有効化することで利用できるようになります。試したところ、VoLTEをオンにしないと電話はおろかデータ通信もできなさそうでした。
VoLTEを有効化するには電話アプリで以下のコマンドを打ちこみます。

*#*#86583#*#*

ssdialer


Whoscallなどをインストールしている場合はそちらでコマンドを打ち込む必要がありますので注意してください。(標準の電話アプリだとコマンドが効かなくなります。)
もっとも、楽天モバイルの通話SIMの場合、通常「Rakuten Link」アプリを使うことになりますので、ほかの電話アプリはインストールしないほうがいいかもしれません。

voltedisabled


disabledとポップアップが表示されれば事前準備は完了です。
ちなみにdisabled(チェック無効化)とenabledチェック有効可はコマンド実行のたびに切り替わりますので、ご注意ください。
設定->SIMカードとモバイルネットワーク->SIMカードを開き、「VoLTEを使用」という項目があればokです。


Screenshot_2020-09-09-21-32-47-803_com.android.phone


この設定をオンにすればすぐに使えるようになります。ならなければ一旦端末を再起動してみましょう。


また、楽天モバイルのSIMを契約後に初めて利用する場合は、楽天回線でアクチベーションする必要があるようです。アクチベーションするといっても、電波が立っている場所にしばらく放置していると自動的にアクチベーションは行われます。

SIMカードのAPN設定はテザリングを使う場合は変更する必要があります。
APNタイプにdunを追加しましょう。

Screenshot_2020-09-09-21-41-08-514_com.android.settings


これで一通りのことはできるようになったと思います。

心拍数と血中酸素濃度(SpO2)を手軽に測りたいと思い、作りました。
必要なものはM5StickCと脈拍センサーの2つのみで、UIFlowというものを使うのでプログラミングも不要で作れます。
作業時間はノートラブルで30分ほどです。

注意:この記事で作成したものは医療機器として認められたものではありません。あくまで日常的に自分の健康状態を把握することを目的としています。
正確な値を取得する必要がある場合は、医療機器を購入ください。

1. 必要なもの
・Windows 10 64bitが動作するパソコン(スペック不問)
※2020年7月現在、M5Burnerは64bit版のみ提供されており、32bit版は無いようです。

 https://www.switch-science.com/catalog/5695/

ということで、しめて3000円ちょっとでできるお手軽工作です。

 2. 大まかな手順
①PCにUSBシリアルドライバのダウンロードとインストール
②M5StickCをUSBでPCと接続
③M5Burnerをダウンロード
④.NetFramework 3.5インストール
⑤M5BurnerでUIFlowのファームウェアを書き込み
⑥M5StickCをWiFiに接続
⑦M5StickCに表示されるAPI KEYをメモしておく
⑧PCのブラウザでUIFlowにアクセス
⑨UIFlowにAPI KEYをセット
⑩UIFlow用の定義ファイルをダウンロード
⑪UIFlow用の定義ファイルを開く
⑫(オプション)M5Stack用の画像作成
⑬(オプション)M5Stack用の画像アップロード
⑭M5StackCへアプリケーション書き込み

3. 手順
①PCにUSBシリアルドライバインストール
https://m5stack.com/pages/download
にアクセスし、CP2104 DriverのWindows版をダウンロードし、解凍します。
CP210xVCPInstaller_x64_vx.x.y.y.exe
をダブルクリックし、インストールします。

②M5StickCをUSBでPCと接続
ここで、M5StickCと心拍センサーを付属のケーブルで接続しておきます。
M5StickCが正しく認識された場合は、デバイスマネージャのポート(COMとLPT)にUSB Serial Port(COMX)と表示されます。
デバマネ


③M5Burnerをダウンロード
https://m5stack.com/pages/download
に再度アクセスし、M5BurnerのWindows版をダウンロードし、解凍します。

④.NetFramework 3.5インストール
③で解凍した、M5Burner.exeをダブルクリックします。
警告が出た場合は、[実行]をクリックしてください。
m5warning

M5Burnerは前提として.NetFramework 3.5が必要ですが、未インストールの場合、Windows 10であればここで自動的にインストールが行われます。

⑤M5BurnerでUIFlowのファームウェアを書き込み
COM番号を②で確認した番号と同じものを指定し、[STICKC]を選択。[Download]をクリックするとインターネットから自動的にソフトウェアのダウンロードが始まります。
m5burn1

ダウンロードが終わると、以下のようにボタンが変化するので、[Burn]をクリックします。
書き込みには数分かかります。
m5burn2


⑥M5StickCをWiFiに接続
正常に書き込みが終わると、M5StickCが再起動され、WiFi設定のモードに入ります。
お持ちのiPhoneやAndroidスマートフォンなどで、WiFiの接続先をM5SXXから始まるアクセスポイントに接続してください。
m5wifi


左:iPhoneの場合 右:Androidの場合
m5wifiapplem5wifidroid













次に、接続したスマートフォンでブラウザを立ち上げ、アドレスバーに[192.168.4.1]と入力します。
するとWiFi接続用のページに遷移しますので、インターネットに接続可能なWiFiアクセスポイントを選択し、パスワードを入力してください。
Screenshot_2020-07-16-15-42-42-238_com.android.chrome


設定が成功すると、M5StickCが自動的に再起動され、UIFlowに接続されます。


⑦M5StickCに表示されるAPIキーをメモしておく
正しく接続されると、M5StickCにAPIキーが表示されますので、メモしてください。

⑧PCのブラウザでUIFlowにアクセス
PCのブラウザでhttp://flow.m5stack.com/にアクセスします。
バージョンは2020年7月現在、心拍センサユニットに対応したばかりなので[Beta]を選びます。
uiflowversion


⑨UIFlowにAPI KEYをセット
⑦でメモした[API KEY]を入力し、[Language]を[日本語]に、[Device]を[Stick-C]にして、OKをクリックします。
uiflowconfig


⑩UIFlow用の定義ファイルをダウンロード
ダウンロード
上記リンクからダウンロードし、解凍しておきます。

⑪UIFlow用の定義ファイルを開く
UIFlowの画面に戻り、[開いた]をクリックします。
uiflowopen


⑩でダウンロードしたフォルダの、[src]フォルダの中にuiflow_hr_spo2_stickc.m5fがあるので、開きます。
uiflowopenfile

以下のような画面になります。
example


⑫(オプション)M5Stack用の画像作成
心臓の鼓動を表示する画像をインターネットで検索し、ダウンロードします。
画像は50x50ピクセルを目安にリサイズしておきましょう。
なお、UIFlowで画像を扱う場合のファイル条件は、サイズ: 25KB以下、フォーマット: jpgまたはbmpです。
今回は、ファイル名を、[heart.jpg]としてください。

⑬(オプション)M5Stack用の画像アップロード
作成した画像をアップロードします。
UIFlowで以下のアイコンをクリックします。
photoupload

[Add Image]をクリックして、作成した画像をアップロードします。
M5StickCと直接通信して書き込みに行きますので、ここで手順⑥で実施したようにM5StickCがUIFlowに接続されている必要があります。
アップロードが終わったら[Reload]をクリックします。
正しくアップロードが終われば、追加した画像のファイル名がここに表示されます。
photoupload2


⑭M5StackCへアプリケーション書き込み
最後に、[RUN]ボタンをクリックすれば自動的にアプリケーションが書き込まれ、実行されます。
uiflowrun



4. 使い方
心拍光センサユニットの赤い光が出ているところに人差し指を覆い被せ、つまむように持ちます。
測定には10秒ほどかかります。
結果が表示されない場合は、指の位置を少しずつずらしながら測定結果がでるまで静かに待ってみてください。
heart

3Dプリンタを使い始めると、SDカードに印刷用ファイルコピーして3Dプリンタに入れて->失敗したからもう1回・・・というのを何度も繰り返すのが面倒になったり、印刷が終わるまで結構時間がかかるものなので遠隔で印刷状況を確認したりしたくなります。
最近、「ANYCUBIC MEGA-S」という、コスパがとてもよく初心者にもオススメな3Dプリンタを買いましたので、「OctoPrint」という無償のプリントサーバーソフトウェアと組み合わせて遠隔印刷システムを作ってみたいと思います。

大まかな手順は、
1. 必要なものの準備
2. MEGA-Sの組み立て
3. Raspberry Pi セットアップ
4. OctPrint設定
5. remote.itの導入
6. 動作確認
となります。




1. 必要なもの
  • ANYCUBIC MEGA-S

  • Raspberry Pi 3bか3b+ (4bでも動作可能)
5GHz帯のWiFi(11aや11ac)を利用したい場合、3bは2.4GHz帯(11b等)しか使えませんので下記のような3b+を購入しましょう。
  • microSDカード8GB以上(上記のようなセット品を買った場合は不要)
  • Webカメラ:安いもので大丈夫です。機種によっては非対応(映らない)ものもあるようなので、不安な場合はhttps://github.com/foosel/OctoPrint/wiki/Webcams-known-to-workで確認しておきましょう。
  • 設定用のPC(WindowsやMacなど)
  • 適当なmicroSDカードリーダー(設定用のPCについている場合は不要)

2. MEGA-Sの組み立て
組み立ては割愛しますが、付属の説明書の絵を見れば比較的簡単にでき、完成まで30分もかからないと思います。

3. Raspberry Pi セットアップ
・イメージのダウンロード
Raspberry Piに「OctoPi」という「OctoPrint」がプリインストール済みのイメージをダウンロードします。イメージは以下からダウンロードできます。[Download OctoPi x.xx.x]
https://octoprint.org/download/
ダウンロードしたzipファイルは解凍しておきます。

・イメージの書き込みと設定
書き込みができるソフトはたくさんありますが、[balenaEtcher]が使いやすくておすすめです。
https://www.balena.io/etcher/
①[Etcher for Windows (x86|x64) (Installer)]からダウンロードし、インストールします
②Raspberry Piのイメージ用のmicroSDカードをカードリーダーなどを介しPCに挿入しておきます

③書き込み
[Select image]を選択
etchermain

先ほど解凍したoctopiのイメージファイルを選択
octopi-img

[Select target]をクリックし、挿入したmicroSDカードのドライブを指定。
[Flash!]クリックで書き込み開始。
環境にもよりますが5~10分程度で書き込みが終わります。

⑥初期設定(WiFi接続先とSSHの設定)
書き終わるとbootというドライブができているはずなので、エクスプローラーで開いてください
 octopi-wpa-supplicant.txtの編集
 bootドライブ直下に作成済みのはずなので、テキストエディタで開き、下記のように編集して保存します。(ワードパッドは非推奨)
 ssh設定
bootドライブ直下にsshという空ファイルがあることを確認。
bootdrive



これで初期設定は終わりです。

カメラやケーブルなどを接続後、Raspberry Piを起動します。
・Raspberry PiにWebカメラを接続する。
・作成したmicroSDカードをRaspberry Piに挿入
・Raspberry Piを電源に挿ししばらく待ちます。
Raspberry PiのLEDが点滅し、自動的に設定ファイルに従ってネットワークに接続するはずですが、不安な場合は、HDMIなどをディスプレイに接続し、何が起きてるか確認しながら進めると良いです。
うまくつながらない場合や無線LAN環境がない場合は有線LANで接続しましょう。

・5分ほど待ち、Raspberry Piと同じネットワークにつながったパソコンなどからChromeなどのWebブラウザでhttp://octpi.local(またはルーターの管理画面などで調べたIPアドレス)にアクセス
octo20


4. OctPrint設定
・日本語パックインストール
https://t.ly/BO362 -> [Download]
Downloadしたzipファイルは解凍不要です。
以下の手順で適用します。
①[Settings]アイコンをクリック
octo21

②[Appearance] -> [Language Packs]の[Manage]ボタンをクリック
octo22


③[Browse]ボタンをクリック->先ほどDLしたzipファイルを指定
octo23

④[Upload]ボタンをクリック
octo24


⑤[Close]で画面を閉じる
octo25


※今回は上記の言語パックを利用していますが、別の言語パックを適用する際は、「delete」ボタンで削除後、同じ手順でインストールすることができます。

・rebootコマンド指定
[Server]をクリックし、[Commands]の設定項目にそれぞれ以下のように設定します。
・Restart OctoPrint
sudo service octoprint restart 

・Restart System
sudo shutdown -r now 

・Shutdown System
sudo shutdown -h now 

octo26


最後に[Save]をクリックして設定画面を閉じます。

OctoPrintサービス再起動
[Commands]の設定をすると[System]アイコンが新たに表示されます。
Restart OctoPrintをクリックし、OctoPrintを再起動します。
octo27



これで初期設定は終わりです。

⑤Webカメラ設定
ひとまず[コントロール]タブを開きます。下記のように映像が表示されていれば特に設定は必要ありません。
octo04


出ない場合はSSHでRaspberry Piにログインして設定が必要です。
・TeraTermのようなターミナルソフトをインストールします。
・TeraTerm等を用い、ルーターの管理画面などで調べたRaspberry PiのIPアドレスにアクセスします。
octo06

・ログインIDとパスワードは初期値(pi/raspberry)となります。
・lsusbコマンドでusbデバイス一覧が表示されるので、接続したWebカメラを特定する。(Webカメラの機種によって表示が異なる)
次のファイル編集で使うので赤字箇所を控えておく(Webカメラの機種によって表示は異なる)
Bus 001 Device 005: ID xxxx:yyyy Logitech, Inc. HD Webcam C525 
octo07


sudo vi /boot/octopi.txtでファイルを開き、以下の2行を追記。
camera="auto"
additional_brokenfps_usb_devices=("xxxx:yyyy")
xxxx:yyyyの箇所には先ほど控えた赤字箇所の文字を入力
octo08

[Escキー]を押下してInsertモードを抜け、[:wq]->[エンターキー]で保存

・最後にOctoPrintサービスを再起動し、再度[コントロール]タブを開いて映像が表示されるようになったか確認する。
octo09


5. remote.itの導入
外部からRaspberry Pi上のOctoPrintにアクセスするためのサービスです。

※外部から接続できるようにするとセキュリティリスクが高まりますのでログインパスワードを変更する必要があります。
octo02

新パスワードを入力し、確認ボタンをクリック。
octo01


・remote.itアカウント登録
https://remote.it/
①[Sign up]->emailアドレスを入力し、仮メール登録。
認証コード付きメールが届くので、URLから本登録。

②[ADD DEVICE+]をクリック
screencapture-app-remote-it-2019-12-03-15_31_16

③Raspberry Piをクリック
os


④以下のようなコマンドが表示されるので、コピーする。
sudo apt update
sudo apt install connectd
sudo connectd_installer

⑤TeraTermのようなターミナルソフトをインストールします。
ルーターの管理画面などで調べたRaspberry PiのIPアドレスにアクセス
octo06
ログインIDとパスワードは初期値(pi/raspberry)となります。

先ほど控えたコマンドを上から順に1行ずつ実行します。
sudo apt update
sudo apt install connectd
sudo connectd_installer

sudo connectd_installerは以下のように設定していきます。
octo10

octo11


6. 動作確認
ANYCUBIC MEGA-S付属のUSBケーブル(Type-B)でMEGA-SとRaspberry Piを接続します。
OctoPrintの管理画面に戻り、[電源アイコン]->システムの再起動でRaspberry Piを再起動します。
octo03



remote.it経由のアクセスの場合、恐らくアクセスURLが変わりますので、再度remote.itの管理コンソールを表示し、リロードしてからRaspberry Piにアクセスします。

ポート:auto
ボーレート:250000(Mega-Sは現行最新FWで左記のボーレートです。)
[接続]をクリック。
(ボタン名が[切断]と変われば接続成功です。)

ここまで出来たら、Ultimaker Curaなどのスライサーソフトウェアで作成したモデル(stlファイルなど)をスライスし、gcodeファイルを直接アップロード、印刷することができます!
stlファイルはFusion 360で3Dモデリングすることで作成できますし、Thingiverseなどの有名サイトから無料でダウンロードすることもできます。

octo05

また、remote.itを導入したのであれば、外出先からも印刷指示が行えるようになっているはずです。

このページのトップヘ