Raspberry Pi PicoでAT-Xを作る⑤ microSDに動画ファイルを保存する

raspberry pi pico

microSDとmicroSDカードリーダーモジュールがちゃんと機能してることが確認できたから
手持ちのアニメ素材を保存してみる。

結論から言うとampyやThonnyでの転送はできなかった。
同じことをしようとしている人がいたら、可能性を潰す方向で役立ててほしい。
知識がついてきて、もし達成できそうなら追記する。

まず色々わかっていない

検索してみたけど、
ラズパイピコにくっつけたmicroSDにPC上のデータを保存する方法を
書いてくれてるページはあんまりなかった。

思いついてる方法としては、
①MicroPythonで”ファイルを転送するコード”を書いてThonnyで実行?
②PCのUSBポートに繋げられるSDカードリーダーで転送

で、これは実際できるのかどうかもわからない。

①の場合、
ファイル転送に使うライブラリがあるのかが不明

でもやってみたいのは①

ライブラリがあるか調べた

見つからなかった。

でもampyってツール?が使えそう

ampyについて

主要な機能を書いてくれてるページがすぐ見つかった。ありがたい。
ampy: MicroPythonマイコンとPCとのファイル転送ツール

ampyはthonnyで実行するよりもコマンドラインで使うのがメインらしい

転送までの手順は
↓この動画を参考にしてみる
Micro PythonでマイコンをPythonプログラミング #2 スクリプト転送とGPIO Lチカ

やってみる

ampyのインストールする

コマンドプロンプトを開いて

pip install adafruit-ampy

を実行

赤いとこはパスが書いてあるとこ

問題なさそう。

コマンドを実行してみる

コマンドの記述方法は
ampy – はだメモ
ここを参照

シリアルポート名の調べ方は
パソコンの COM ポート確認方法
ここを参照

lsコマンドを実行してみた

できた。

実際に動画ファイルを転送してみる

・・・

知識不足で全然できませんでした(泣)

代替策

BUFFALO カードリーダー/ライター microSD対応 超コンパクト ブラック 【PlayStation4,PS4 動作確認済】BSCRMSDCBK

買いました。

保存しました。

1分でできました。

遭遇したエラー

①ラズパイピコにアクセスできない

コマンドラインで

ampy --port=COM3 ls

を実行すると

Traceback (most recent call last):
  ~~~中略~~~
    raise PyboardError('failed to access ' + device)
ampy.pyboard.PyboardError: failed to access COM3

アクセスできないよ~って言われて、すっげえ検索してlinuxコマンド調べたりシリアルポートの番号について調べたりしたんだけど1日かかってやっと解決した。

解決方法

Thonnyを閉じる。

ポートが使用中だったのが原因だったっぽい。
こんなことで1日潰れるのマジで勘弁してくれ。

参考になったページ

ampy.pyboard.PyboardError: failed to access /dev/ttyUSB0 · Issue #9 · scientifichackers/ampy
「シリアル接続は2つ同時にできないよ」って書き込みを見るまで
マジで気付かなかった。

②ファイルが転送できない

コマンドラインで

ampy --port=COM3 put C:\Users\〇〇〇〇\Desktop\ゆゆ式01話.mp4

を実行して・・・・

20分くらいすると

Traceback (most recent call last):
~~~中略~~~
    raise PyboardError('exception', ret, ret_err)
ampy.pyboard.PyboardError: ('exception', b'', b'Traceback (most recent call last):\r\n  File "<stdin>", line 1, in <module>\r\nOSError: 28\r\n')

と返ってきた。

どのくらい転送できてるのかThonnyで確認してみると

0バイト。(◞‸◟)

試してみたこと

  • 動画ファイルをデスクトップに移動させた ⇒ ×
  • ファイル名からスペースを削除した ⇒ ×
  • ファイル名をアルファベットと数字(今回はyuyushiki01)にした ⇒ ×
  • デスクトップじゃないとこにあるtemperature_log_test.pyを転送した ⇒ 〇

で、保存先を指定してないのも問題なのかもしれないと思って
putコマンドで保存先を指定する方法を調べた。

↑のページを参考にして

ampy --port COM3 put ファイルのパス/yuyushiki01.mp4 /sd/yuyushiki01.mp4

Thonnyで作ったフォルダのパスを末尾に追加して
保存先を記述してみた結果・・・

  • 保存先を指定してyuyushiki01.mp4を転送した ⇒ ×
  • 保存先を指定してtemperature_log_test.pyを転送した ⇒ ×

参った。

解決方法

PCに接続して使うmicroSDカードリーダーを買う。

参考になったページ

ampy: MicroPythonマイコンとPCとのファイル転送ツール – Ambient
・ampyのputコマンドで保存先を指定する記述方法

Win10環境下、ESP32に導入したmicroPythonでampyが使えなくなりました。
・uPyCraftが便利って情報

終わりに

苦労した甲斐のない結果になった。

いい方法がある方いましたらツイッターやコメントでご教示いただけると嬉しいです。

次回はもう少し実りのある記事にしたい。

タイトルとURLをコピーしました