はじめに
今回はRaspberry Pi Pico シリーズでMicroPythonを使って、ファイルの読み書きをする方法を解説します。
MicroPythonのファームウェアでは、仮想ファイルシステムと、Pythonの強力な関数が使えるため、普通のパソコン(CPython)と同じようにファイルを読み書きすることができます。
特別な設定や機器も必要ないので、ログ出力や設定ファイルなど、日ごろのプロジェクトにぜひお役立てください。
記事ではRaspberryPi Pico2を使っていますが、Pico、PicoWでも同じ配線・プログラムで動作します。
ぜひお手持ちのPicoシリーズで、試してみてください。
~ この記事の内容 / Contents ~
環境
この記事で使用する環境は以下の通りです。
環境 | バージョンなど | 備考 |
開発用PCのOS | Windows11 | Windows10でもOKです |
言語 | MicroPython Ver.1.24.0 | |
開発環境 | Thonny Ver.4.1.4 | |
ボード | RaspberryPi Pico2 |
Picoシリーズなら、 |
RaspberryPi Picoシリーズとの接続
特別な機器の接続は必要ありません、Picoシリーズ単体でOKです。
使用する部品
RaspberryPi Pico 2
今からPicoを揃えるなら、RaspberryPi Pico2がおすすめです。Picoに比べて1.5倍高速で、値段はほぼ一緒です。
すぐに使えるキットもあります
ピンヘッダが半田付けされて、USBケーブルやピンのレイアウト表までついた、すぐに使えるセットもあります。
プログラム概要
今回のプログラムの概要は以下の通りです。
- ファイルの書き込み・保存
- ファイルの読み込み
実行結果
後述するプログラムの実行結果は以下の通りです。
Pico内部に「pico.txt」という名前のテキストファイルが作成され、Thonnyのシェルに読み込んだ内容が表示されます。
実行してもファイル表示されない場合は、設定から「更新」をクリックしてみてください。
全体コード
全体コードは以下の通りです。詳細な内容は後述する「コードのポイント」で解説します。
import os
# ファイル名を指定します。
fileName = "pico.txt"
# 書き込みモードでファイルを開きます
f = open( fileName, "w")
# 内容を書き込みます
f.write("Raspberry\n")
f.write("Pi\n")
f.write("Pico 2\n")
# 書き込み完了後にファイルをクローズします。
f.close()
# 読み取りモードでファイルを再度開きます
f = open(fileName, "r")
# 一行ずつ読み込んで表示します。
print( f.readline() )
print( f.readline() )
print( f.readline() )
# 書き込み完了後にファイルをクローズします。
f.close()
Picoシリーズ単体(Thonnyなし)の状態でプログラムを実行する場合は、Picoシリーズ本体に「main.py」という名前でプログラムを保存してください。
コードのポイント
ファイルの書き込み・保存
ファイルの書き込み・保存にはopen関数を使用します。
引数に書き込みを表す「w」と、ファイル名を指定することで、テキストファイルが「書き込みモード」で開きます (ファイルが存在しない場合は、新規作成されます)。
開いた後は、書き込みたい文字列をwrite関数で指定します。改行は挿入されないので文末など、改行を入れたい場所に「\n」を入れて文字列を指定してください。
close
関数を呼ぶと書き込みが終了し、ファイルが保存されます。
# 書き込みモードでファイルを開きます
f = open( fileName, "w")
# 内容を書き込みます
f.write("Raspberry\n")
f.write("Pi\n")
f.write("Pico 2\n")
# 書き込み完了後にファイルをクローズします。
f.close()
ファイルの読み込み
ファイルの読み込みにもopen関数を使用します
読み込みを表す「r」と、ファイル名を指定することで、テキストファイルが「読み込みモード」で開きます。
開いた後はreadline関数で、ファイル内のテキストが一行ずつ読み込むことができます。
読み込みの際も、処理が終わったらclose関数でファイルを閉じてください。
# 読み取りモードでファイルを再度開きます
f = open(fileName, "r")
# 一行ずつ読み込んで表示します。
print( f.readline() )
print( f.readline() )
print( f.readline() )
# 書き込み完了後にファイルをクローズします。
f.close()
まとめ
今回はRaspberry Pi PicoシリーズでMicroPythonを使って、ファイルの読み書きをする方法を解説しました。
上での説明の通り、MicroPythonのフォームウェアを使えば、Pico上で通常のパソコンと同じようにファイルを読み書きすることができます。
ファイル操作(ができること)を知ってしまえば、あとは「データのログをとる」「設定ファイルを作る」など、応用範囲は幅広いです。
プロダクトの完成度やデバッグ性を向上させることもできるので、みなさん、ぜひぜひ使ってみてください。
参考になればうれしいです。
お知らせ
MicroPythonのプログラミングガイドブックが遂に発売!
「MicroPython」の本が遂にでました。
この一冊で、MicroPythonの言語仕様から、プログラミングの仕方まで”ガッツリ”学べます!
内容は、普段別言語で開発している人や、これからマイコンを始める(工学系の)学生を対象としているので「初心者向け」ではありません。しかし、「自前のライブラリの作成」が目標なので、これ一冊で「ガッツリ」とMicroPythonを学ぶことができます。
全ての内容はここでは紹介しきれないので、詳細は以下のAmazonページをご覧ください。目次だけでも”ガッツリ”なのが確認できると思います。
Pico/Pico W関連のおすすめ本
RaspberryPi Pico / Pico W関連のおすすめ本を独断と偏見で3つ選んでみました。Picoやるならとりあえずこれ買っとけ的な本や、電子工作全般で使える本などを厳選しています。
質問・要望 大歓迎です
「こんな解説記事作って」「こんなことがしたいけど、〇〇で困ってる」など、コメント欄で教えてください。 質問・要望に、中の人ができる限り対応します。
使えたよ・設定できたよの一言コメントも大歓迎。気軽に足跡を残してみてください。記事を紹介したい方はブログ、SNSにバシバシ貼ってもらってOKです。