GALAXY S22 Ultra

ようやくの新作 Galaxy S22は Noteシリーズとの統合したか

Galaxy Note 10+ を 2年ほど使い やはり Sペンの使い心地に惹かれ
新しい Galaxy Noteの登場を期待してたのですが 新作は出ず

ペンの使える新作を待っている間も Note 10+の有機ELは
表示不可領域ができたり 若干発色が黄色っぽくなったり
有機ELの弱点である寿命の弱さを露呈してきてる状態でした

そのうち 2022年4月 ようやく Galaxy S22 Ultra を購入しました
Galaxy S22 Ultra 購入品
S22 Ultraはペンが搭載され これが実質 Galaxy Noteの後継です
(そして Noteシリーズは今後もう出ないのかもしれません)

買ってみてまず感じたのは まず値段が高い 18万円近くする
Galaxyシリーズの新作を買うのはもう限界かも
ペン付を狙うなら iPadしか選択肢がない

次に SDカードスロットがなくなっていることに気付いた
本体に 256GBフラッシュがあり支障はないですが
Androidの利点がまたひとつ失われた喪失感は
ワンセグフルセグがなくなってしまった時を思い出させます

写真には 同時に買ったフィルムシートと
ClearViewカバーは Note 10の時も買って気に入ったので
今回も買いました
Galaxy S22 Ultra 本体
梱包物も シンプルな操作マニュアルと USB Type-Cケーブル
必要最低限のものだけ という感じです

Type-Cケーブルは Note 10からのデータ移行に便利でした
Galaxyシリーズには Smart Switch というツールが使え
旧端末から データ アプリ をそのまま持ってきてくれます
Galaxy S22 Ultra 設定直後
セットアップ直後のイメージです
写真だと分かりづらいですが 端末の色は バーガンディという
赤っぽい茶色 カバーに完全に隠れるので分かりません

CPUは Snapdragon8 で
2.99GHzが1コア 2.4GHzが3コア 1.7GHzが4コア
の構成 発熱がすごいらしいですが
よほど重いゲームしない限りは 熱くならない感じでした

auですが 5Gのアンテナはたまにしか立たない程度
5Gのエリア構築ってそんなに大変なのか

ドローン関連

ドローンを扱います

ドローン関連パーツ

ドローンを作れないかと思い 関連パーツを購入しました
ドローンパーツセット
左上は 可変スイッチング電源のキット マイコン駆動用の定電圧を作るため
左下は 12V13Aまで出力できるスイッチング電源 モータ駆動用の電源
中央上は ブラシレスDCモータ プロペラの動力
中央は ラズパイ用カメラ 空撮用
中央下は ESCと呼ばれ 4モータを駆動するためのコントローラ
右は プロペラ
ESC片面
ESCは 中華製のものを Amazonで購入 ただし資料がまったくなく調査中
60Aといった大電流で 4つのモータををドライブできる パワフル仕様
しかも 2600円程度とお手頃な値段です
コネクタのピンアサインを調査する必要あります
ESC反対面
こちらはその裏面 載ってるチップを調べたところ ドローンによく使われている構成
MCUに SiliconLab製 EFM8BB21F16G で 50MHzで駆動する 8bitマイコン
MOSFETドライバは FortiaTech製 FD6288Q
モータ用に 12Vと マイコン用に 3.3V の電源が必要なことは調査済

3Dプリンタ 環境構築

3Dプリンタ の紹介

2019年冬に 3Dプリンタを入手しました Ender-3 Pro です
3Dプリンタも安くなったもので 3万円前後で買えるようになりました。
Ender-3 Pro 概要

Ender-3 Pro
Ender-3 Pro
Ender-3 Pro
Ender-3 Pro
Ender-3 Pro
Ender-3 Pro
Ender-3 Pro
Ender-3 Pro
Ender-3 Pro
Ender-3 Pro

サーバ側の環境構築

ここでは Raspberry Pi 3 model B+ を 3Dプリンタサーバとすべく環境構築します
大きくは 次の 3段階です

  1. USBカメラのセットアップ
  2. Octoprintの導入
  3. スライサの導入

USBカメラは 3Dプリント中の状況を遠隔から監視するためのものです

特に 遠隔監視なんか必要ないのでは? と思っていたら
3Dプリントは結構時間がかかるようで 遠隔監視のニーズはあるようです
Octoprintにもカメラ連動の機能があります

まず Raspberry Pi にカメラを挿して 次のコマンドに反応するか確認します

$ lsusb
Bus 001 Device 005: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 001 Device 003: ID 046d:0825 Logitech, Inc. Webcam C270
Bus 001 Device 002: ID 0bda:5411 Realtek Semiconductor Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$
 

Webcam C270 というのがカメラです
大半の USBカメラは認識され /dev/video0 などのデバイスが作られます

次に Webでアクセスできる 動画ストリーミングサービスを入れます
mjpg-streamer がよく使われている Webストリーミングのツールです
手作業でビルドする必要があります

# apt-get install libjpeg9-dev cmake
# git clone "https://github.com/jacksonliam/mjpg-streamer.git" mjpg-streamer
# cd mjpg-streamer/mjpg-streamer-experimental ; make
# cd .. ; su ; cp -r mjpg-streamer-experimental/ /opt/mjpg-streamer
 

これで /opt/mjpg-streamer/ にインストール完了します
次のコマンドで 動画配信を開始できるはずです

$ LD_LIBRARY_PATH=/opt/mjpg-streamer/ /opt/mjpg-streamer/mjpg_streamer -i "input_uvc.so -f 10 -r 640x480 -d /dev/video0" -o "output_http.so -p 8010 -w /opt/mjpg-streamer/www"
MJPG Streamer Version: git rev: 501f6362c5afddcfb41055f97ae484252c85c912
 i: Using V4L2 device.: /dev/video0
 i: Desired Resolution: 640 x 480
 i: Frames Per Second.: 10
 i: Format............: JPEG
 i: TV-Norm...........: DEFAULT
UVCIOC_CTRL_ADD - Error at Pan (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Tilt (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Pan Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Pan/tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Focus (absolute): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Tilt (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan/tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Focus (absolute): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at LED1 Mode: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at LED1 Frequency: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Disable video processing: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Raw bits per pixel: Inappropriate ioctl for device (25)
 o: www-folder-path......: /opt/mjpg-streamer/www/
 o: HTTP TCP port........: 8010
 o: HTTP Listen Address..: (null)
 o: username:password....: disabled
 o: commands.............: enabled
$
 

これで フォアグラウンドでWebサービスが起動します
http://ラズパイのIP:8010/ へアクセスしてカメラのライブ配信が確認できます


OctPrint とは Raspberry Pi でも動作実績のある 3Dプリントサービスです

3D CADツールからのモデルデータを受けて 3Dプリントできる形に変換して
3Dプリンタに転送します 3Dプリンタの操作や管理も可能です

Pythonベースとなっているようで 導入自体はすごく楽です
初回インストールは piユーザの例では 次のコマンドで

$ cd ~/opt
$ git clone "https://github.com/foosel/OctoPrint.git"
Cloning into 'OctoPrint'...
remote: Enumerating objects: 28, done.
remote: Counting objects: 100% (28/28), done.
remote: Compressing objects: 100% (24/24), done.
remote: Total 63768 (delta 3), reused 13 (delta 0), pack-reused 63740
Receiving objects: 100% (63768/63768), 38.94 MiB | 1.64 MiB/s, done.
Resolving deltas: 100% (41372/41372), done.
$ cd OctPrint
$ virtualenv venv
created virtual environment CPython3.7.3.final.0-32 in 12925ms
  creator CPython3Posix(dest=/home/pi/opt/OctoPrint/venv, clear=False, global=False)
  seeder FromAppData(download=True, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/home/pi/.local/share/virtualenv/seed-app-data/v1.0.1)
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
$ ./venv/bin/python setup.py install
…
Installing easy_install script to /home/pi/opt/OctoPrint/venv/bin
Installing easy_install-3.8 script to /home/pi/opt/OctoPrint/venv/bin

Using /home/pi/opt/OctoPrint/venv/lib/python3.7/site-packages
Finished processing dependencies for OctoPrint==1.4.0
$
 

systemd 用のサービススクリプトです これを systemd のフォルダに入れておけば
sudo systemctl start oct などのコマンドで起動できるようになります

[Unit]
    Description=OctoPrint service

[Service]
    User=pi
    ExecStart=/home/pi/opt/OctoPrint/venv/bin/octoprint

[Install]
    WantedBy=multi-user.target
 

なお起動には時間がかかります 特に初回は 10分くらい

起動したら 5000番の Webサービスが立ち上がるので
ブラウザから http://ラズパイのIP:5000/ へアクセスすることができます
OctoPrint初回起動
後から設定変更できますが とりあえず Ender-3 Proを登録しておきます
OctoPrint初回プリンタプロファイル登録
Print be & build volume の設定から print volume の設定を行います
プリンタの仕様にとりあえず合わせました
OctoPrint初回プリント最大サイズ設定
カメラの設定です 先ほど試した mjpg-streamerの URLを指定します
OctoPrint初回カメラの設定
設定が完了すると OctoPrintの再起動が求められます
USBケーブルをつなぎ Serialポートに /dev/ttyUSB0 があれば選択します
Connectボタンを押せば 通信接続が行われます
うまくつながれば 3Dプリンタの状態を見たり プリンタヘッドの駆動を試せます
OctoPrint動作状況

 
 
 
 
 

クライアント側のセットアップ

クライアント側は Win10 ですが必要なのは CAD と スライサ です
FreeCAD Cura アイコン
CADは フリーソフトでは STL形式を出力可能な FreeCAD があります
FreeCAD スタート画面

スライサとは STLなどの3Dモデルを 3Dプリンタが出力可能なフォーマットに
変換するソフトです これもフリーで提供されている Cura があります

STLを Gcodeという 3Dプリンタに適したフォーマットに変換してくれます
Gcodeは フィラメントを下から1層ずつ積み上げる 3Dプリンタに従った流れです
また 印刷物をプレートへ定着させたり 印刷中に倒れたり しないようにするための
サポート ブリム ラフト などの余分印刷も指示できます
Cura スタート画面
Curaは 代表的な 3Dプリンタをサポートしており モデルを指定することができます
Cura プリンタモデル CR-10
ここでは CR-10 を選択していますが Ender-3 Pro の製品自体が CR-10 という
RepRapによるオープン設計に従って製造されているためです

プリンタの設定をカスタマイズします メニューの Mange Printers から
Cura メニュー プリンタ設定
設定できるのは プリンタの基本設定 OctoPrintとの接続 があります
3Dプリンタのファームウェア書き込み機能は OctoPrintからできるので割愛します
Cura プリンタ設定
Machine Settings では Ender-3向けの印刷可能サイズを直しておきます
マシンスペックでは X:220, Y:220, Z:250 ですが ヒートベッドに専用シートを
敷いたためシートのサイズ X:200, Y:180 としています
Cura プリンタ基本設定
OctoPrintとの連携設定では Add で追加して OctoPrintサーバを指定します
また OctoPrintから発行できる API連携キー を登録する必要があります
OctoPrintの設定から API メニューを選べば入手できます
Cura OctoPrint連携設定
APIキーがあっていれば OctoPrintへ連携できるはずです
早速 Curaからプリント指示を試してみましょう
FreeCAD Cura OctPrint連携印刷状況
印刷の状況は OctoPrintの管理画面から確認できます
Webカメラからのライブビューを見ることもできます
これで FreeCAD Cura OctoPrint の連携による 3Dプリンタの印刷環境が整いました
FreeCAD Cura OctPrint連携大きめのプリント
ドローン用の筐体モデルを出力させようとしましたが 失敗しました
参考に印刷状況の写真を載せてます

サイズが大きいため斜めにしたうえで縦にする必要があったのですが
養生テープで固定しても印刷がずれてしまう有様です



PICマイコン

PICマイコン

PICマイコンに関するネタを書いていきます
関連記事: デジタル関連写真 関連記事: Raspberry Pi関連 関連記事: IoT関連

PicKit3

PicKit3 という PICライタ兼デバッガ です
PicKit3 概要
これ 1台でおよその PICに書き込め またデバッグもできます
小型の PICではこれとは別に デバッグヘッダ という基板を接続する必要があります