M5Stackを使ってボタン一発でSDカードの内容を消去するプログラム

日曜日 , 25, 7月 2021 Leave a comment

SNS上で「Raspberry PiやM5Stackなどを使ってSDカードを簡単に消去したい」というお題を見つけたので作ってみました。

SDカードメディアを廃棄するため復元不可能なレベルに完全削除するといった本格的なものではなく、いまあるファイルを消去するといったレベルですが、M5Stack本体のTF/SDカードスロットに差し込んでボタン一発でファイルが消去されます。

必要なもの(機材)

スイッチサイエンスさんは、14時までに注文すると当日発送対応、各種支払い対応なのでとても便利でおすすめです。

上記機材のほかにM5Stack本体に給電をするためのUSB-CケーブルやUSBアダプタなどが必要になります。

必要なもの(ソフトウェア)

  • Visual Studio Code
    Microsoftが開発し無償提供しているテキストエディタ ( https://code.visualstudio.com/ )
  • PlatformIO IDE
    Visual Studio Codeなどのプラグインとして提供される組み込み開発用の統合開発環境。
    Arduinoスケッチなども扱えるのでArduino IDEより便利で快適な環境として使用

ほかにVisual Studio Codeを動かすためのWindowsやmacOSなどが必要になります。

ソフトウェアのセットアップ

Visual Studio CodeやPlatformIO IDEのセットアップ手順については、インターネットで検索すると詳しい手順を解説しているサイトがたくさんあるので、お使いのOSにあわせた解説サイトを参照してください。

ダウンロードしたソースコードをVisual Studio Codeで読み込み、PlatformIO IDE上でビルド、M5Stack本体にアップロードしてください。

このプログラムをビルドするためには、SDカード関連の制御で使用しているArduinoライブラリ「greiman/SdFat」の一部を修正する必要があります。

修正を行わずにビルドを行うと以下のようなエラーが発生します。

error: ‘FatFile* FatVolume::vwd()’ is private

FatLib/FatVolume.hで定義されているvwdメソッドがprivateスコープで定義されているためなので、これをpublicスコープなどに修正することでエラー発生を回避することができます。
詳細についてはソースコード中のコメントを参照してください。

プログラムの起動

M5Stack本体にSDカードをセットし、電源ボタンを押します。

初期化処理が終わるとビープ音が鳴り、下図のような消去処理の実行確認画面が表示されます。
ここでAボタン(左側のボタン)を押すとファイルが消去され、Cボタン(右側のボタン)を押すとキャンセルされます。

消去処理実行の確認画面

Aボタンを押すと下図のような画面になり消去処理が始まります。
消去が終わるとビープ音が鳴り処理の実行確認画面に戻ります。

消去処理中の画面

ソースコード

  • 開発環境
    Visual Studio Code Ver. 1.58.2
  • 動作確認した環境
    M5Stack Basic
  • ライセンス
    NYSL ( http://www.kmonos.net/nysl/ )
  • ダウンロード (2021/07/25更新)
    ソース: http://ria-lab.com/omiyage/SD_ERASER_1.0.0.zip
  • Please give us your valuable comment

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です

    このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください