検索キーワード「Raspberry Pi」に一致する投稿を関連性の高い順に表示しています。 日付順 すべての投稿を表示
検索キーワード「Raspberry Pi」に一致する投稿を関連性の高い順に表示しています。 日付順 すべての投稿を表示

2020年6月28日日曜日

Raspberry Pi 4Bを使ってみる

コロナ禍の影響もあってか、品薄状態かなと感じていたRaspberry Pi 4Bでしたが、緊急事態宣言が解除された頃には少々値段が安くなっていたので思わず衝動買してしまいました。メモリー4GBモデル単体と、別売りの電源、ヒートシンク、ケース(ファン付き)のセットを一緒に購入。合わせて8千円程度の出費で入手できました。

はじめに、ヒートシンクを取り付けて、ケース(アクリル板が層になっているタイプ)の中に組み込むように組み立てていきました。説明書はなかったのでAmazonの商品ページにあった組み立て手順らしき画像を見ながら作業をしました。最後の1枚には、ファンを取り付けてGPIOの4番(5V)と6番(GND)に電源をつないでケース自体のビス止めをしました。

続いて、起動SDカードを準備します。今までは、NOOBSを使って起動SDカードを作っていましたが、今回は、Raspberry Pi Imagerを使って起動SDカードを作ることにしました。Macで作業をしているため、ダウンロードサイトからRaspberry Pi ImagerのMac版をダウンロードして使いました。ダウンロード後、ディスクイメージファイル(Imager.dmg)を開いて、Raspberry Pi Imagerをアプリケーションフォルダにドラッグ&ドロップします。使い方は簡単で、はじめにSDカード(SDFormatterでフォーマット済み)を挿入してRaspberry Pi Imagerをダブルクリックで起動します。Operating Systemの「CHOOSE OS」をクリックして「Raspberry Pi OS(32-bit)」を選び、SD Cardの「CHOOSE SD CARD」をクリックして挿入しておいたSDカードを選択します。最後に、「WRITE」をクリックして待ちます。(少々時間はかかります)出来上がった起動SDカードをRaspberry Pi 4Bに挿して起動します。ここまで、とても順調にできました。

RPi 4Bを起動すると、いつもの通り各種設定の後にアップデート作業を行います。これも時間はかかりますが、最新の状態にしておくことが重要です。一通りの作業が終わってインストールされているものを確認すると、FullバージョンのNOOBSを使ったときより、かなり限定されたものしか入っていないことがわかりました。ソフトウエアのインストールは、Raspberryメニューの「設定」から「Add / Remove Software」か「Recommended Software」を選んで行います。はじめに、「Recommended Software」から定番のものをインストールして、足りないものは「Add / Remove Software」で探してインストールすることにしました。

〈Recommended Softwareで入れたもの〉

〈Add / Remove Softwareで入れたもの〉

はじめの設定の中でロケールを「Japan」としたためか、Fcitx-Mozcは自動的に入っていました。日本語表示や入力に問題はありません。アプリケーションソフトの動作や日本語化もかなり良いと思います。CUPSを入れたので、共有プリンタでの印刷も問題なくできました。

Scratchは、オンライン版(Chromiumを使用)を含めて3バージョンとも快適に動きました。オフライン版の2と3は、日本語入力も問題なし。普通のPCにLinuxを入れて普段使いをしている感覚では、全く問題はありません。

タスクマネージャで確認すると、CPUやメモリの使用率もかなり低く、タスクバー(LXPanel)にCPU温度を表示させて測ると、待機状態で40度を超えない程度。少し動かしても50度を超えない程度くらいまでしか上がりませんでした。快適と言っていい感じです。

2026年5月8日金曜日

Raspberry Piの古いOS(Raspbian)のアップデートを試みる〜Raspbian 9.13(stretch)でのリポジトリ設定変更

このBlogでもたびたび紹介しているRaspberry Piの話です。久しぶりにRaspberry Piを使う用事ができてしまったため、しまい込んであった歴代のRaspberry Piたちを出して、ついでにOSのアップデートをしておこうと思い立ちました。中でも、初代Raspberry PiにインストールしていたRaspbianがアップデートできなかったことを思い出しました。古いRaspbianでも、リポジトリの設定を変更すればアップデートできるのではないかと考えて、やり方を調べてアップデートしてみることにしました。

作業を始めた時点での状況は、初代Raspberry PiにインストールされているRaspbianでは、「sudo apt update」コマンドが通りません。「404 Not Found」のエラーが出て、アップデートができませんでした。Google先生を頼ってネットで情報を探すと、ビューローみかみさんの「古いRaspbian Stretchでパッケージがインストールできない時の対処方法」 というページを見つけました。私がアップデートしようと思っている初代Raspberry Piで「LXTerminal(←GitHubのページ)」を起動して、「lsb_release -a」コマンドを使ってインストールされているOSを確認すると「Raspbian GNU/Linux 9.13 (stretch)」となっていたので、まさにこのページに書かれたとおりにやっていけばよいだろうと考えて、リポジトリの設定変更に取りかかりました。
#歴代のRPiについては、「Raspberry Pi computer hardware」に情報があります。

以下の作業は、「LXTerminal」でのコマンドを打ち込んで行う作業になります。難しくはないですが、コマンドでの作業に慣れていない場合は、手順などをよく確認して、それぞれのコマンドによって何が行われるのかを理解しながら作業を進めていただければと思います。

まず、「/etc/apt/」ディレクトリ内にある「sources.list」を「sudo vi」コマンドを使って開きます。(「sudo vi /etc/apt/sources.list」)viの「i」コマンドで文字入力モードにしてから、「deb http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi」となっている行の先頭に「#」を入れて(「#deb …」のようにする)コメントアウトします。ESCキーを押して文字入力モードからコマンド入力モードに切り替えて、「:wq」コマンドで変更内容を保存すると同時にviを終了させます。

次に「/etc/apt/sources.list.d/」ディレクトリ内に「raspi.list」というファイルがあった(なければ作る)ので、これを「sudo vi」コマンドで開いて、(「sudo vi  /etc/apt/sources.list.d/raspi.list」)同様にviの「i」コマンドで文字入力モードにしてから、「deb http://legacy.raspbian.org/raspbian/ stretch main contrib non-free rpi」と書き加えます。最後に、ESCキーを押してから「:wq」コマンドで保存&終了しました。この状態で「reboot」コマンドで再起動してから、「sudo apt update」コマンドを試してみたところ、無事にアップデートができるようになりました。
#アップデート作業の詳細は、拙Blogの過去記事をご参照ください。

溜まっていたアップデートを一気に行ったので、ただでさえ非力な初代Raspberry PiのCPU使用率が100%にはり付いたままの状態になり、大丈夫か心配になるくらい時間がかかりましたが、どうにかアップデートを終わらせることができました。古いOSのサポートを続けてもらえるのは本当にありがたいと思いましたが、スタッフ側の負担を考えると順次新しいOSへの移行を進めていく必要があるのかもしれないとも思いました。

実は、過去のRaspbianでしか使えないアプリケーションソフトがあって、できれば動作確認なども考えて動態保存しておきたいと思っています。OSをインストールしているSDカード自体も消耗品なので、バックアップを取って複製ができるようにしておくなどの対策もしなければならないと思います。手間がかかる作業なので、なかなか取り組めないのが現状ですが…。orz

「Raspberry Piの古いOS(Raspbian)のアップデートを試みる」

2024年7月13日土曜日

LinuxでRaspberry Pi Picoを使ってみる

これまで、Raspberry Piのことは何回か記事にしてきましたが、以前のRPiのアップデート作業の際に、購入はしたものの放置状態だったRaspberry Pi PicoシリーズのPicoとPico Wがあることを思い出し、何か使えることはないかと思ってちょっといじってみることにしました。

とは言え、買ったときのこともその使い方もあまり覚えていないので、Google先生にお世話になりながらいろいろと調べて、いくつかのプログラミング方法があるというところまではわかってきました。この手のマイコンボードは様々なものを使ってきましたが、これからも使い続けたいと思うものはだいぶ絞られてきて、現状だとArduino系のものかmicro:bitかというくらいで、他のものはほとんど使わなくなっています。絶対にPico/Pico Wを使わなければならないというほどの需要はないのですが、使い勝手くらいは試してみようと思ってチャレンジすることにしたのでした。
#今回は、主にCQ出版社の「ラズベリー・パイPico/Pico W攻略本」を参考にしました。

まずは開発環境を整えるところから。アプローチとしては、大きく2つあって、1つ目が「C/C++やMicroPythonでプログラムを作る」で、もう1つが「ビジュアルプログラミング環境を利用する」です。手始めに、C/C++でのプログラミング環境を構築して、Picoを動かしてみたいと思います。プログラミング環境(SDK)を整えるのは、Linux Mintで動かしているいつもの自作PCです。

〈C/C++でのプログラミング〉
Raspberry Pi Documentation(Raspberry Pi公式)に、「Microcontrollers」として「Raspberry Pi Pico and Pico W」に関する記述があります。「The C/C++ SDK(英語です)」を読むと、今回の作業で必要なC/C++での開発に関するSoftware(SDK)が、GitHubにあることがわかりました。そこでさらに、てつふくブログさんの「Raspberry Pi Picoの開発環境構築 (Ubuntu PC)」を参考にしながら、GitHubで公開されているSDKを使えるようにセットアップしていくことにしました。

その前に、Gitコマンド(GitHubのバージョン管理システムを使うためのコマンド)が使えるように、インストール作業をしておきます。(wgetは、すでにインストールしてありましたが、まだの場合はこちらもインストールしておく必要があるようです)これで準備が整ったので、後はてつふくブログさんの記事に書かれている通りにセットアップします。(作業領域については、ご自分の環境に合わせてフォルダを作るなどしてください)

  • $ git clone -b master https://github.com/raspberrypi/pico-sdk.git
  • $ cd pico-sdk
  • $ git submodule update --init
  • $ cd ..
  • $ git clone -b master https://github.com/raspberrypi/pico-examples.git

その他に必要なツール類をaptコマンドでインストールします。

  • $ sudo apt update
  • $ sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential

手始めにLチカで動作確認するために、さらに作業を進めていきます。Gitで構築した「pico-examples」フォルダ内で作業を行います。

  • $ cd pico-examples
  • $ mkdir build
  • $ cd build

「build」フォルダ内で、パスの設定をします。

$ export PICO_SDK_PATH=../../pico-sdk

この状態で「cmake ..」コマンドを実行すると、C/C++ SDKでの作業環境が整うので、「pico-examples」フォルダの方に移動して、「build」→「blink」フォルダに移動し、「make -j4」コマンドを実行すると、「blink.uf2」という実行ファイルが出来上がります。これを「BOOTSEL」ボタンを押しながらUSBケーブルでPCに接続したPico(USBストレージのように見える)に保存します。中に見える他のファイルについてはいじらずに、.uf2ファイルをコピーするだけです。コピーが終わると自動的に再起動され、無事にLチカができました。
あんパンさんの「Arch LinuxでRaspberry Pi Picoに繋いでLチカするまで」が参考になりました。

作業の手順は難しくはないものの、コマンドでの環境構築はそれなりにハードルが高く万人向けとは言えないかもしれません。今回は長くなってしまいましたが、次回以降、もう少し簡単な方法を取り上げてみたいと思います。

〈参考資料〉

2025年4月26日土曜日

Raspberry Pi Pico 2を使ってみた〜Thonny(MicroPython)プログラミング

以前の続きです。これまでRaspberry Pi Picoでやってきた動作実験を、Raspberry Pi Pico 2でもやってみようと思って復習を兼ねて取り組んでいます。今回は、Thonnyを使ってMicroPythonでのプログラミングについて動作確認をします。

はじめに、Pi Pico 2をMicroPythonでのプログラミングに対応させるために、ファームウェアを変更する作業を行います。各Pi Picoに対応したファームウェアファイル(「.uf2」ファイルなので他の実行ファイルと区別はつきにくい)は、以下のところからダウンロードすることができます。

今回は、Pi Pico 2を使いますので、対応したファームウェアファイル(.uf2)をダウンロードしておきます。これをPi Pico 2にコピーするために、USBケーブルでPi Pico 2とPCを接続します。その際に、(他のPi Picoシリーズと同じく)接続するPi Pico 2が一度も実行ファイル(.uf2)を入れた(コピーした)ことがなければ、PCに挿しただけでUSBストレージデバイスとして認識されます。この「USBストレージデバイス」として認識されているところに、一度でも実行ファイル(.uf2)を入れた(コピーした)ことがある場合は、それがC/C++でのプログラミングであってもMicroPythonでのプログラミングであっても、それ以降は「BOOTSEL」ボタンを押しながら接続しないと、USBストレージデバイスとしては認識してくれなくなるので注意が必要です。
#ちなみに、今回もPCはLinux Mintで動かしている自作PCを使用して動作確認しています。

USBストレージデバイスとして認識されたPi Pico 2に、MicroPythonでのプログラミングに対応させるファームウェアをコピーすると、自動的にPi Pico 2がリセットされてUSB接続された状態になります。これでPi Pico 2側のセットアップは完了です。続けて、Thonnyを起動すると、既にPi Pico用のセットアップを済ませていたため何の問題もなく接続されました。(詳しい設定方法は、拙Blogの過去記事を御覧ください)

あとは、とりあえずLチカプログラム(.py)を開いて「実行」ボタンをクリックするだけです。ということで、あっけないほど無事にLチカ実験が完了して動作確認ができました。試しに、Pi Picoに挿し替えて同じようにLチカできるか確認しましたが、Pi PicoでもPi Pico 2でもThonnyが自動的に認識して同じLチカプログラムが動くことを確認しました。挿し替える際は、一度「停止」ボタンをクリックしてからUSBケーブルを抜き、挿し替えたらもう一度「停止」ボタンをクリックすると自動的に認識してくれます。この方法でうまくいかなかったら、Thonnyを終了させてから挿し替えて、再びThonnyを起動すれば問題ないと思います。

C/C++でやったときは、環境を整えるためにいろいろと試行錯誤しましたが、あまりにも簡単に動作確認することができてしまい、Pi Picoとの共存も簡単にできることがわかりました。初学者用としては、こちらの方がかなり良いと思いました。

〈参考Lチカプログラム(MicroPython)〉

from machine import Pin
import utime
led = Pin(25, Pin.OUT)
while True:
led.toggle()
utime.sleep_ms(400)

「Raspberry Pi Pico 2を使ってみた」

2025年2月8日土曜日

Raspberry Pi 5を使ってみる

世界的なインフレ傾向や円安の影響もあってか、価格が上がって気軽に購入できない感じになっているRaspberry Pi 5でしたが、ほぼ全世代のRaspberry Pi(RPi)を購入している私としては逡巡する気持ちもありつつ、発売開始から供給が安定するまでしばらく待っていました。先日、我慢の限界に足して半分衝動的に購入してしまいました。購入したのは、コスパ重視で4 GBモデルにしましたが、Smrazaのアルミのヒートシンク兼ケースと5.1V-5.0A対応のACアダプターも一緒に購入して1.4万円程度でした。(ケースは割引がありました)
#詳しくは、過去のRaspberry Pi関連記事もご覧ください。

OSを入れるmicroSDカードは、自宅に在庫していたKIOXIAの32 GBのものを使うことにして、MacBook Proにインストールしてある「Raspberry Pi Imager」を使ってOSイメージをこのmicroSDカードに焼きました。今回使用するOSは、64 bitのRaspberry Pi OSにしました。焼き上がったmicroSDカードをRPi 5に挿して、モニタ、マウス、キーボード、LANケーブルをつないで起動しました。体感ではありますが、起動までの動作は速くなっているように感じました。ケース付属のFANも静音性が高く、起動後は最小限の動作になるようでしばらく止まっていました。ケース自体がヒートシンクになっているものなので、ぬるめのカイロくらいには温かくなっていました。

さて、起動まではスムーズだったのですが、デフォルトの設定が英語なため日本語に設定を変更したいと思います。デスクトップの左上のRaspberry Piメニューから、「Settings」→「Raspberry Pi Configuration」を起動して、「Localisation」内の「Locale」を「ja(Japanese)」←つまり日本語に、「Country」を「JP(Japan)」←これも日本に設定しました。すると、それに合わせてTimeゾーンも「Asia」「Tokyo」と自動的に変更されました。「Keyboard」の設定は、日本語キーボードになっているかと思いましたが、実際に接続しているUSキーボードになっていました。これは、USキーボードが認識されているのかと思いましたが、よく考えたらRaspberry Pi Imagerで設定されていました(^^;;;。これらの設定を終えて「OK」ボタンをクリックすると、再起動を求められるので指示に従って再起動します。すると、メニューを含めてほとんどが日本語表示に設定変更されました。

確認のため、「$ lsb_release -a」コマンドでOSのバージョンを表示させると「Debian GNU/Linux 12 (bookworm)」となっていました。再起動をしたタイミングでWindow上部のメニューバーにアップデートがあることを示すアイコンが表示されていることに気づいたので、このアイコンをクリックしてアップデート作業を行います。これはかなり時間がかかりましたが、しばらく放置して終わるのを待ちました。途中から、流石にヒートシンク(ケース)が熱くなってきたので、FANも回り始めました。アップデートが終わったところで、「Recommended Software」から以下のソフトをインストールしました。

これらを選択したら、「Apply」ボタンをクリックします。すると、ダウンロードが始まってインストール作業が進んでいきます。これもやはり時間がかかるので、別のことをしながら気長に待ちました。新しい環境なのでちょっと欲ばってインストールしてしまいましたが、何とかインストール作業を終えることができました。続けて、さらに追加したいソフトについて「add / Remove Software」からインストールします。今回追加でインストールしたのは以下のものです。

こちらもソフトを検索してチェックボックスにチェックを入れて、「Apply」ボタンをクリックするとまとめてインストールが始まります。ちょっと違うのは、このインストール作業にはパスワードが求められることです。パスワードの設定は、「Raspberry Piの設定」から「パスワードを変更」を選択して設定することができます。パスワードを設定してインストール作業を終えました。それぞれ動作確認してみましたが、起動については問題なくできました。ここでもやはり動作が速いと感じました。

今回は、RPi 5を使える状態にまでセットアップしましたが、これまでに購入してきている初代からのRPiたちをどのように活用していくかを考えなければならないと思っています。古いものにはより軽いOSを入れて、使い方を限定したら快適に使えるのではないかとか、そうするためのOSの選び方や特化させる機能や使い方をどうするかとか、あえてGUIの環境を捨ててCUIだけ、あるいは、ネットワークからアクセスして動かすだけにしてしまうとか、アイデアはいろいろと出てくるのですが…。

2025年5月4日日曜日

Raspberry Pi Pico 2を使ってみた〜ビジュアルプログラミング

前回の続きです。Raspberry Pi Pico 2を使ってフィジカル・コンピューティングの動作確認をしていきます。前回は、Thonnyを使ったMicroPythonプログラミングでの動作確認をしました。今回は、ビジュアルプログラミング環境での動作確認をしたいと思います。以前の記事(「Piper Make編」「BIPES編」)で、Piper MakeBIPESでの動作確認をしましたが、今回もこの2つのサイトを利用してビジュアルプログラミングの動作確認をしていきたいと思います。
#今回も動作確認に使うPCは、Linux Mintで動かしている自作PCを使用します。

〈Piper Make編〉
先ほど紹介した拙Blogの記事を参考にしながら、Piper Makeで動作確認をしてみました。まず、ChromeブラウザーでPiper Makeのサイトを開いて「CREATIVE」モードにしておきます。Piper Makeは専用のファームウェアを使用するので、「SETUP MY PICO」ボタンをクリックしてセッティングを開始します。Pi Picoを(ストレージモードで)PCに接続したときは、「RPI-RP2」という名称のUSBストレージデバイスとして認識されたのですが、Pi Pico 2では、「RP2350」という名称になっていました。とりあえず、この中にファームウェアをインストールするように選択をして、セットアップを終えました。

Pi Pico 2(RP2350)の中には、「piper_circuitpython.uf2」というファームウェアが書き込まれたようですが、自動で再起動されることはなく、手動でUSBケーブルを抜いて再度PCへ接続してみました。この状態でPi Pico 2をPCに接続しても、基本的には何も起きません。そこで、Piper Makeの「CREATIVE」モードから、過去に自分が作ったLチカプログラムを開いて動作確認を進めていきます。プログラムを開いたウィンドウの左下に「CONNECT(接続する)」ボタンがあるのでこれをクリックします。すると、シリアルポートが読み取られて接続できるPi Picoが表示されるはずなのですが、「対応デバイスが見つかりませんでした。」と表示されてPi Pico 2は認識されていないようでした。

Piper Makeを詳しく調べていくとPi Pico 2での動作についての記述が見当たらず、今後のことはわかりませんが、現状ではPi Pico 2には対応していないようでした。

〈BIPES編〉
気を取り直して、次にBIPESでの動作確認をしていきたいと思います。こちらも先ほど紹介した拙Blogの記事を参考にしながら作業を進めていきます。BIPESは、内部的にMicroPythonを使うので、動作確認に使用するPi Pico 2にはあらかじめPi Pico 2用のファームウェアを入れてセットアップをしておきます。

BIPESのサイトを開いて、接続するデバイスを選ぶところで嫌な予感がしました。「Raspberry Pi Pico 2」は、選択肢にありません。仕方がないので、ダメ元で「Raspberry Pi Pico」を選択して、デバイスの「Connect(接続)」ボタンをクリックしてみました。すると、シリアルポートに「tty」から始まる接続先が現れたので、これを選択してから「接続」ボタンをクリックしました。
#接続先のポートがわからない場合は、Pi Pico 2をつないでいるUSBケーブルを抜き差しして、消えたり現れたりするポートを確認すると、接続先のポートを見つけることができます。(ターミナルコンソールを開いて確認するより速い)

以前に作っていたLチカプログラムがそのまま残っていたので、少々ドキドキしながら「RUN(右向き三角マーク)」ボタンをクリックしてみたところ、Lチカ動作確認ができてしまいました。期待をしていなかったので、思わず「動いた!」と声を上げてしまいました。
#ここで使ったLチカプログラムも先ほど紹介した拙Blogに記載していたものです。

ということで、Pi Pico 2でビジュアルプログラミングをやりたい場合は、BIPESならできるということがわかりました。日本の小学校でこれを使いたいという場合には、やはり英語表記がネックになると思います。これをよい機会と捉えて、「英語の学習も兼ねて」なんて思ってくれる方がどのくらいいるかわかりませんが、個人ベースでなら小学生でもチャレンジしてくれる子がいてもよい気がしています。こういう攻略を楽しめる子が増えてくれると嬉しいのですが…。

「Raspberry Pi Pico 2を使ってみた」

2025年4月4日金曜日

Raspberry Pi Pico 2を使ってみた〜C/C++ SDKでLチカプログラミング

以前に買ったまま放置状態で、昨年あたりから本格的に使い始めているRaspberry Pi Picoですが、その後継機としてRaspberry Pi Pico 2が開発・販売されています。搭載されているチップが、Pi PicoのRP2040(←DatasheetのPDF)からPi Pico 2のRP2350(←DatasheetのPDF)に変更になっていることが大きな違いのようですが、使用感としてどんな違いがあるのか(それほど違いはないのか)確かめてみたいと思います。
#Pi PicoとPi Pico 2の詳しい違いは、Pico Seriseのページにまとまっています。

これまでPi Picoを使って実験的なことをやってきましたが、Pi PicoでできたことがPi Pico 2でもできるかどうか検証してみたいと思います。(その前に、今回購入したPi Pico 2はピンヘッダなしのものだったので、ピンヘッダのはんだ付けもしました)

無駄なこととは思いながら、以前Pi Pico用にLinux Mintで動かしている自作PCで作った、動作確認(Lチカ)するための「blink.uf2」(プログラムファイル)をPi Pico 2に入れてみたらどうなるだろうかと思って、試しにやってみました。(C/C++でのプログラミング環境の作り方の詳細は、拙Blogの過去記事をご覧ください)当たり前と言えば当たり前のことですが、うんともすんとも言いませんでした。Pi Pico用に構築したC/C++ SDKをPi Pico 2に対応したものにするためにアップデートする必要があります。Pi Picoのときと同じように、Linux Mintの自作PC上でPi Pico 2に対応したC/C++ SDK環境を整えたいと思います。

ちょっと調べてみると、「pico-sdk」の中にRP2350に対応したsrc(source)のセットがないとダメだということがわかりました。ネットの情報を頼りに自分がインストールした「pico」フォルダを開いて「pico-sdk」→「src」とフォルダを開いてみると、確かに「rp2350」フォルダはありませんでした。そこで、「ターミナル(端末)」を起動して、「pico-sdk」フォルダに移動してからC/C++ SDKのアップデートを行いました。手順は以下の通りです。
#今回は、デバイスビジネス開拓団さんの「Pico三昧(22) Raspberry Pico 2、C/C++ SDKで吉例Lチカ」を参考にしました。

$ cd pico/pico-sdk/
$ git pull

しばらく待つとアップデート作業が終わって「src」フォルダ内に「rp2350」というフォルダが出来上がっていました。(他にも増えたところはたくさんありましたが説明は割愛します)これでPi Pico 2に対応したC/C++ SDKが整ったことになります。早速ですが、Lチカの実行ファイル(.uf2)を作ってみたいと思います。「cd」コマンドで元のユーザーディレクトリのトップに移動してから、以下のようにコマンドを打ち込みます。

$ cd pico/pico-examples/build/
$ export PICO_SDK_PATH=../../pico-sdk
$ cmake -DPICO_PLATFORM=rp2350 -DPICO_BOARD=pico2 ..

ここまでできたら、あとは「blink」フォルダ内で「make」するだけのはずです。(上記のコマンドに続いて作業を行います)

$ cd blink/
$ make -j4

Pi Picoのときと同じようにやってみたつもりですが、エラーを吐いてうまくコンパイルできません。「Makefile」に何らかの問題があるようなエラーメッセージが出ていて、「CMakefile」フォルダに「CMakeError.log」というエラーの内容をレポートするファイルが出来上がっているとも書かれていました。これを見ながら、複数のエラーが発生しているような感じだったので、元々のpico-examplesの更新が必要なのではないかと考えて、gitコマンドでのダウンロード作業からやり直してみることにしました。(この作業は、私の作業環境である「pico」フォルダ内に移動したところから行いましたが、このフォルダ名は任意で構いません)

$ git clone -b master https://github.com/raspberrypi/pico-examples.git
$ cd pico-examples/
$ mkdir build
$ cd build/
$ export PICO_SDK_PATH=../../pico-sdk
$ cmake -DPICO_PLATFORM=rp2350 -DPICO_BOARD=pico2 ..

この作業をしているフォルダ内に、既に「pico-examples」フォルダがあると作業はうまくいきません。これまで使っていた「pico-examples」フォルダを残したままだとgit cloneコマンドが通らないためです。(強制的に上書きすることはできるかもしれませんが、ちょっとややこしいみたい…)今後も以前の「pico-examples」を使用する可能性がある場合には、以前のものを別のところに移動させておくと良いと思います。

これで準備が整ったと思いますので、以下のコマンドで再度実行ファイルのコンパイルに挑戦してみます。

$ cd blink/
$ make -j4

これで、無事に実行ファイル「blink.uf2」が出来上がりました。PCにPi Pico 2をつないで(初回はUSBケールでつなぐだけでUSBメモリのように認識しますが、2回目以降は「BOOTSEL」ボタンを押しながらつなぎます)、USBメモリのように開いた窓に「blink.uf2」をコピーすると、自動的にプログラムしたものが動き始めます。少々時間はかかりましたが、無事にLチカ動作実験成功ということになりました。これからは、Pi Pico(無印)の実行ファイルを作る環境との共存が可能なのかを確認したり、Pi Pico 2のThonnyやビジュアルプログラミングへの対応などを一通り確認したりしてみたいと思います。(やることいっぱい思いつくのだけれど、相変わらず時間がない…。orz)

「Raspberry Pi Pico 2を使ってみた」

2013年3月14日木曜日

Raspberry Piを使ってみる

最近、私の周辺でも話題になっているRaspberry Piですが、ARMマイコンを載せた小型のパソコンとして、発売前から注目していました。特に教育用途のための仕様と価格が、とても魅力的だと考えていました。多忙なために購入後かなり経っているのに起動すらしていない状況だったのですが、仕事の合間に起動するところまでやってみることにしました。今回用意したのは、以下のような環境です。

Raspberry Piの電源は、Micro USB B端子で供給するようになっているのですが、単純にどんなACアダプタでもよいというわけではありません。5Vは当たり前として、電流は最低でも700mA必要だということなので、よく見られる500mAのものでは足りないことが予想されます。(自宅にあったのは、ほとんどが500mAでした)以前購入したiPad2用の小さな充電アダプタなら2.1Aまで出せるので、これを使えば大丈夫なのですが、常用するとなるとやはり別の電源を用意すべきだと考えました。そこで、Amazonで手頃な価格で容量を満たしているものを探したところ、上記のものにたどり着きました。

モバイルバッテリーの方は、Raspberry PiでScratchを動かして、なのぼ〜どなどを経由してモータなどを動かせば、自律型のロボットを自作することができるのではないかと考えて、その実験のために購入しました。こちらも問題なく起動させることが出来ました。(Login:pi password:raspberry)もともとRaspberry PiにはScratchがインストールされているのでありがたいです。次の目標は、ワイヤレスキーボードなどを使えるようにすることです。これから、時間を見つけて教材研究をして行きたいと思っています。

2020年7月2日木曜日

Orange Pi OneをRaspberry Pi Imagerで作ったArmbian起動SDカードで動かす

Orange Pi(H3 Cortex-A7 Quad-core 1.2GHz)は、Raspberry Piのようなシングルボードコンピュータを作っているメーカーですが、RPiに比べて様々なバリエーションのシングルボードコンピュータを開発・販売している上に、価格も安く提供されていてちょっと使ってみたいと思っていました。2017年のはじめに、Amazonで取り扱っているのを見つけてケースと電源ケーブルがセットになっているOrange Pi Oneを衝動買い。とは言え、RPiに比べて知名度が低くて必要な情報を見つけるのが難しく、自分がMacユーザーということもあってうまく動かせず難儀をしました。(しばらく放置モード)そんな中、コロナ禍の関係で自宅ですごす時間が多くなり、家の中でやれることは限られているのでいろいろと片付けをしました。すると、購入したまま放置していた、Orange Pi Oneと同ZeroNano Pi NEO2が出てきました。とりあえず手始めに、Orange Pi Oneを動かしてみることにしました。

そもそもの問題は、MacではOSイメージ(imgファイル)をSDカードに入れて起動可能なSDカードを作ることが難しいということ。挫折した時期のOS(Armbianを使いました)は、安定性も悪かったようですが、それ以前に一般的にはRufusというツールを使って起動可能なSDカードを作るらしいのですが、このツールはWindowsにしか対応しておらず、macOSでは動きません。以前にもやったことがある「ddコマンド」を使ってやる方法が思い浮かぶのですが、それでもうまく動かなかったのでチャレンジする気持ちが薄れてしまっていたのでした。

そんな私に「天の声」が聞こえました(嘘)。もしかして、「Raspberry Pi Imager」でOrange Pi Oneの起動SDカードを作ることができるのではないかと。思いついたらやってみるしかありません。ArmbianのダウンロードサイトからOrange Pi One用のArmbian OSイメージファイル(今回は、Busterを選択)をダウンロード(Direct Download)して使うことにしました。圧縮された形でダウンロードされるので、「The Unarchiver」あたりで解凍しておきます。

Raspberry Pi Imagerを起動して、Operating Systemの「CHOOSE OS」をクリックして「Use custom」を選択します。すると、imgファイルなどが選べる窓が開くので、Orange Pi One用のArmbianのimgファイルを選択します。次に、SDカード(16GBのSDカードをSDFormatterでフォーマット済み)を挿してSD Cardの「CHOOSE SD CARD」をクリックして挿したSDカードを選択します。後は、「WRITE」をクリックしてしばらく待つだけです。これをOrange Pi Oneに挿して電源を入れると、無事に起動してくれました。

ワクワク感が抑えられず、何ができるか探ってみることにしました。はじめにroot(初期パスワードは「1234」)でログインすると、すぐにパスワードの変更を求められるので、初期パスワードを入力して、任意の新しいパスワードを入力(2回)します。すると、ユーザーの設定に進むので、自分のユーザー名とパスワードを設定します。(他にも聞かれるけれども[]の付いた項目は入力しないでReturn(Enter)で飛ばすことができるようです)ここまでできたら、自分のユーザー名とパスワードでログインできるかチェックしてみます。無事にログインできたら「reboot」コマンドで再起動して、各種設定をするためにrootでログインし直します。この過程で、不具合があった場合には、SDカードの作り直しが必要な場合もあります。

この後は、お決まりの「apt update」と「apt upgrade」で最新の状態にします。

今回の作業は、「Orange Pi One に Armbian を入れました」、「“Banana Pi”にArmbianを載せました」を参考にしましたが、ここからGUI環境を実現するための試行錯誤が始まりました。残念ながら、まだ良い方法が見つかっていません。書かれているとおりにやっても、最終的に再起動すると何も映らなくなります。動いている形跡があるので、何らかの方法でアクセスすることができれば解決の糸口が見つかるかもしれません。

2026年6月15日月曜日

Raspberry Pi 5でSSDを使えるようにする

これまでにも記事にしている通り、歴代のRaspberry Piを使いながら、様々な活用方法を考えて実際に使ってみているところです。初代のRPiから使いはじめて、段々と高性能になっていくのを実感しながら、Raspberry Pi 5まで買い揃えています。一方、さまざまなスペックが向上し値段も上がっていく中で、SDカードから起動するという簡便さの反面、動作速度の遅さが足を引っ張ってしまうという問題から、高性能になったRPi 5の購入を躊躇する状況も実感しています。そもそも、RPi 5だと冷却や電源にも気(お金)を使わなければなりませんし、いろいろと買い揃えた結果として使えないのでは話になりません。
#まぁ今回の話は、さらに課金をするのですけどね。(^^;;;

初期の頃のRPiでは、そもそもマシンスペックが非力なため、SDカード起動でも速度的に釣り合っている気がしていましたが、RPi 5だとやはりSDカードレベルでは実力が発揮できない感じがするので、もっと速いストレージを使いたくなります。幸い、さまざまなメーカーがRPi 5にSSDを載せる拡張ボードを製造販売していて、値段的にもこなれた状況になってきたので、使用感を確認するためにも実際にやってみることにしました。
#歴代Raspberry piについては、「Raspberry Pi computer hardware」を参照してください。

今回使ったSSDは、Amazonで購入したfanxiangというメーカーのもので、128GB(PCIe Gen3.0×4 M.2 Type2280 NVMe)のSSDです。これを、GeekwormのRPi 5ケース(P579)と、セットで販売されていたSSDを載せる拡張ボード(X1001)に載せることにしました。公式ActiveCoolerも同梱されていたので、お得感があって衝動買いしてしまいました。最近は、PCパーツが高騰していて、特にメモリやSSDは購入するのを躊躇するレベルになっていますが、そんな中でも少々安価なものを選んで購入してみました。SATA接続のSSDならもう少し安いのですが、今回購入した拡張ボードはNVMeにしか対応していないので注意が必要です。
#使い方は、「NVMe SSD boot with the Raspberry Pi 5」で説明されています。この他に「Raspberry Pi 5をNVMe SSD起動でデスクトップPC化」や「Raspberry Pi 5をNVMe SSDで起動する」も参考にしました。

組み立てが完了したらRPi 5を起動して、「LXTerminal」を開きます。コマンドで「$ sudo vi /boot/firmware/config.txt」と入力して「Enter」キーを押すと、ストレージ関連の設定ファイルが開きます。空いているところにカーソルを移動してから、「i」コマンドで編集モードにして以下の設定を書き込みます。

dtparam=pciex1
dtparam=nvme

書き込みが完了したら、「esc」キーで編集モードから出て「:wq」で保存・終了します。この状態で、「reboot」コマンドでRPi 5を再起動します。起動したら、Raspbianメニューから「アクセサリ」→「SD Card Copier」を起動して、SSDにSDカードのbootイメージをコピーします。その際、「SD Card Copier」の「New Partition UUIDs」にチェックを入れておくことを忘れないようにします。

「Copy From Device:」にSDカードを選択し、「Copy To Device:」にSSDを選択して「Start」ボタンをクリックします。しばらく待つとコピーが完了するので、RPiをシャットダウンしてSDカードを抜き取ります。再び電源を入れると、無事にSSDから起動するようになりました。起動があまりにも速いので驚きましたが、その後の操作ももたつきがなく、PCとして申し分がないほどの快速さになりました。これを体験してしまうと、SDカードで起動する他のRPiを使うのが嫌になってしまう可能性も…。(^^;;;
#起動ストレージの優先順位は、変更していません。SSDに支障が出た場合には、SDカードからの起動を優先した方が良いと考えたためです。

調子に乗って、「GIMP」や「Rosegarden」などのアプリも追加でインストールしてしまいました。メインで使用している自作PCLinux Mintで動かしている)に近い快適さになりそうで、しばらくは楽しめそうな予感がしています。
#少なくとも、職場で使っているPCよりは何倍も快…(以下自粛)

2024年10月1日火曜日

Raspberry PiでRaspberry Pi Picoのプログラミングに挑戦〜MicroPython編

以前の続きです。これまで、Linux MintRaspberry Pi Picoを動かしていました。そもそも、Raspberry Piという名前を冠しているということは、本家Raspberry Pi(これも基本はLinuxベースOSで動かします)との親和性が高いはず。ということで、PicoをRaspberry Piで動かしてみたいと思います。今回は、普段はiMacの裏側において時々実験的に使っているRPi 3HPのスリムタワーケースに入っている)とRPi 400を使って、Picoのプログラミングができるか検証してみます。Linux Mintのときと同様にThonnyVisual Studio Codeを使いますが、インストールはRPiメニューの「設定」→「Recommended Software」から簡単にできます。
#手順としては、RPi 400でやってみて、同じことをRPi 3で検証するという方法で行いました。

〈Thonnyの場合〉
まず、RPiメニューから「Thonny」を起動して作業開始。起動したThonnyの画面上部に表示されたメニューアイコンの右端に「Switch to regular mode」という文字だけのメニューがあるのでこれをクリックします。一度Thonnyの画面を閉じて再び起動すると、メニューアイコンの上に文字のメニューが現れます。「Tools」メニューから「Options…」を選択し、「Language」を「日本語」にします。もう一度Thonnyを閉じて再度起動すると、メニューが日本語になります。(一部日本語化できていない部分もあります)

次に、「表示」メニューから「ファイル」にチェックを入れて「ファイル」の窓を表示させます。「実行」メニューから「インタプリタ設定…」を選択し、コードを実行するインタプリタを「MicroPython(Raspberry Pi Pico)」にしておきます。これで準備は完了です。一度Thonnyを終了させて、PicoをUSBで接続してから再びThonnyを起動して作業を続けます。
#Picoを接続してThonnyを起動すると、「インタプリタ設定(Select interpreter)…」で「ポート(Port)」の選択が可能になります。ここで、「<ポートの自動検出を試す>」にしておくと、自動的にPicoが接続されました。RPi 3では、「Board in FS mode - Board CDC (/dev/ttyACM0)」を明示的に選択しましたが、RPi 400でも明示的に選択できます。

あとは、過去の拙Blogの記事を参考にして、PicoのLチカ実験をしてみます。今回は、既にMicroPythonが使えるように設定をしてあるPicoを使いましたが、まだの場合はその設定作業も必要です。(前出の拙Blog記事を参考にしてください)実験したLチカプログラムは、今までと同じものです。

from machine import Pin
import utime
led = Pin(25, Pin.OUT)
while True:
led.toggle()
utime.sleep_ms(400)

あらかじめローカル(「ドキュメント」など)に保存しておいた.pyファイルをファイル窓から開いても、Pico内に保存されているmain.pyを開いても、どちらも実行ボタンをクリックして動作させることができました。

〈Visual Studio Codeの場合〉
Visual Studio Codeでも同じことをやってみます。RPiメニューから「Visual Studio Code」を起動して、窓の左側に縦に並んだアイコンの中から「Manage」をクリックし、一番上の「Command Palette…」をクリックします。ここから、「Configure Display Language」を選択し、「日本語」を選んでインストールします。(インストールが終わると再起動が促されます)

次に、同じく窓の左側に並んだアイコンの中から「EXTENSION」を選択し、検索窓に「Pico」と入れて検索すると「Raspberry Pi Pico」の拡張機能が出てくるので、これをインストールします。続いて、先述したLinux Mintでの経験から、検索窓で検索して「MicroPico」もインストールしました。以前は、この状態からPicoをつなぐとつながった感じになったのですが、今回はなんか手応えがない感じ。「▶✓」ボタンから「専用ターミナルでPythonファイルを実行する」をクリックしても、「ターミナル」の窓でエラーが発生している旨のメッセージが出てプログラムが止まってしまい、「問題」の窓には、「”machine”や”utime”って何?インストールされていませんけど?(意訳)」というようなメッセージが出てしまいます。

そもそも、「Python」や「micropython」が動いていないのかもしれないと考えて、これらも検索してインストールしましたが結果が変わらず。どうやっても「machine」や「utime」がネックになっているようです。そこで、「Raspberry Pi Pico」の拡張機能を入れたときに出てきたPicoのアイコンから、「New MicroPython Project」を選択して作業を進めてみることにしました。作業スペース(フォルダ名)を「LED(←これは任意の名前でよいです)」として「ドキュメント」フォルダ内にMicroPython用の作業スペースを作ると、「LED」フォルダ内に「blink.py」というLチカプログラムが自動的に作られていました。

この「blink.py」を開こうとすると「machine」や「utime」をインストールするかと聞かれるので案内に従って作業を続行します。すると「IntelliCode」という拡張機能のインストールが行われ、窓の下側に「✓Pico Connected」や「Run」「Reset」といった見覚えのあるメニューが並びました。

この状態で「blink.py」を前面にして「Run」ボタンをクリックすると、無事にLチカできました。続いて、もともと自分で作って保存していたLチカプログラムでもやってみましたが、問題なく動かすことができました。ただしRPi 3では、Visual Studio Codeをインストールしようとするとエラーが出てしまい、インストール自体が(理由は未検証ですが…)できませんでした。残念ですが、Visual Studio Codeの方がより大掛かりなシステムなので、RPi 3では非力すぎるのかもしれません。その意味でも、Thonnyの方が初学者にとってハードルが低いのではないかと思いました。

【追記】これまでのPicoでのプログラミング(フィジカル・コンピューティング)に関する拙Blogの記事もご覧ください。(2024.11.4←これからも適宜更新していきます)

2020年6月18日木曜日

Raspberry Pi 2BとScratch 3でデジタルサイネージに挑戦

今の職場にも屋上に太陽光発電システムが導入されていて、その発電状況をモニタリングするための液晶モニタが校内に設置されています。これを使って学校の様々な活動を紹介するスライドショーのようなことができないかということになりました。

この液晶モニタにはDVDプレーヤーがつながっていて、写真をCD-Rに焼いて再生すると液晶モニタに表示されるというシステムになっています。これを使うのが一番手っ取り早いのは間違いないのですが、全く面白くない。今の職場の環境ではデータの持ち出しが厳しく制限されているため、CD-Rに焼くまでの手順が尋常じゃないほど面倒くさいのです。しかも、ミスを修正したり部分的に更新したりすることが容易ではなく、その度に新しいCD-Rに焼く作業をしなければなりません。これでは、効率が悪い上にエコでもない。

幸いなことに、DVDプレーヤーはアナログ3ピン(赤、白、黄)で接続されていて、液晶モニタのHDMI入力が2つもあまっていました。しかも、HDMIケーブルが挿さったまま何にもつながっていません。さらに、液晶モニタの近くには電源も引かれているからまさにおあつらえ向きです。早速、Raspberry PiScratchでデジタルサイネージを作ってみることにしました。

まずは、表示するものを作ります。Scratch 1.4を使ってご当地キャラクターの動きに合わせて背景の写真が切り替わるという簡単なプログラムを作りました。しかし、出来上がったものを作業をしていたPC画面で確認すると、写真の解像度がイマイチで、かなり画像が荒くなってしまうことが判明しました。これでは、大型の液晶モニタには耐えられないだろうと判断。Scratch 3を使う計画に切り替えました。
Raspberry Pi BlogScratch 3 Desktop for Raspbian on Raspberry Piを参考にさせていただきましたが、結論から言うと、最新のRaspbian(Raspberry Pi OS)を使えばScratch 3も一緒にインストールされていることがわかりました。

(1) Raspbian Buster以降のOSを使うことと、(2) 1GB以上のメモリを載せていることが最低条件らしいので、自宅にある各世代のRPiの中からRPi 2Bをチョイスしました。そして、使い慣れたNOOBSをダウンロードして、解凍したファイル&フォルダを在庫していた16GBのSDカードにコピーして起動SDカードを作りました。SDカードは、事前にSDFormatterで初期化しておくことをお勧めします。
#RPi 2Bは、3B以降のようなWireless LANやBluetoothは搭載されておらず、消費電力も抑えられるので割り切った使い方をするのにはちょうどよいと思っています。

NOOBSを入れたSDカードをRPi 2Bに挿して起動すると、Raspbianのデスクトップが表示されて無事に起動することができました。ちなみに、現在推奨されている方法は、Raspberry Pi Imagerを使う方法のようです。最近購入したRPi 4Bのセットアップをするときには、こちらを使おうと思います。

セットアップとアップデート作業(少々時間がかかる)が終わったら、インストールされていたScratch 3 Desktopを使ってデジタルサイネージプログラムの動作確認です。(ついでに、日本語入力環境「fcitx-mozc」もインストール済みでした)実際に動かしてみると、液晶モニタがワイドサイズだったためか、表示画面が小さくて見にくいことがわかりました。せめてタスクバーを隠してその分だけ画面を広くしようと考えて、タスクバー上で右クリックをして、出てきたプルダウンメニューから「パネルの設定」を選んでタスクバーを隠す設定にしました。(「高度な設定」タグの中に「自動的に隠す」という項目があるので、「使わないときはパネルを最小化する」にチェックを入れたら完了です)

なかなかの仕上がりになりました。今後の課題としては、電源を入れるだけでScratch 3まで起動することと、シャットダウンボタンを設置することです。時間を見つけてやってみます。

【追記】シャットダウンスイッチの設定をしました。(2020.6.21)
Raspberry Pi 2BとScratch 3でデジタルサイネージ(シャットダウンスイッチをつける)

2013年5月4日土曜日

Raspberry Piを使ってわかったこと(VGAとBluetooth)

このところ、使用頻度が高くなっているRaspberry Piですが、ここで新たにわかったことを2つ紹介しておきます。既知の現象のようなので、私自身の備忘のためなのですが…。

以前に購入した、HDMIとVGAを変換するケーブルを使って、自宅にあったSHARPの古い液晶モニタにRaspberry Piをつないでみようと考えました。はじめは、そのまま挿せば使えるだろうと思っていたのですが、どうもうまく表示しません(チラッとは映るのですが、すぐに消えてしまってその後は反応なし)でした。しばらく放置の後、先ほど@robo8080さんのつぶやきを拝見し、「これなら行けるか!」と実験再開。ちょっと情報を追加するために、ググって探したら「Raspberry Pi にモニタをVGA接続」というそのものズバリのブログ記事を見つけました。これらを参考にして、RaspbianをインストールしてあるSDカードの中に入っている「config.txt」をテキストエディタ(別のPC(Ubuntu)でやりました)で開いて以下の2つについてコメントアウトを外しました。

  • hdmi_force_hotplug=1
  • hdmi_drive=2

日本語ではありませんが、「HDMI to VGA Converter for Raspberry Pi & New Pi Enclosure Design Idea」という動画も参考になりました。これを観ると他にも設定しているようですが、私の環境では上で紹介した2つを変更しただけで無事に表示してくれるようになりました。

この実験の過程でわかったことがもう一つ。Bluetooth USBドングルを挿しっぱなしで使う場合、しばらくRaspberry Piに電源を入れていないとBluetoothドングルが反応しなくなるという現象が発生することがわかりました。以前にやったように電源をいれる前にBluetoothドングルを抜いておいて、起動してから挿す方法も試してみましたが、うまく認識してくれません。「壊れたのか?」と思ったりもしたのですが、電源を切ってしばらく放置し、再び電源を入れ直してみました。すると、BluetoothドングルのLEDが点滅し、無事にキーボードとマウスを接続することができるようになりました。なんだか天邪鬼な感じが否めませんが、気長に付き合っていこうと思っています。

2014年3月2日日曜日

Minecraft Piのインストール

巷で話題のMinecraftですが、Raspberry Pi用に無料で使える「Minecraft Pi」というのがあると聞いて、時間を見つけてインストール作業をしてみることにしました。
#Minecraftそのものの日本語情報については、Minecraft Japan Wikiをご覧頂くのが良いと思います。

まず用意するのは、Raspberry Pi(以下「RPi」と略す)本体とRaspbian “wheezy”(ダウンロードサイト)を起動できるようにしたSDカードです。多くの人が、RPiをRaspbianで動かしていると思うので、この辺りは、それほど問題ないと思います。わかりやすい資料をお求めの場合は、「Raspberry Piではじめるどきどきプログラミング」を推薦します。Raspbianで起動したら「startx」でGUI環境にしてください。

次に、「ターミナル」を開いて「sudo apt-get update」と「sudo apt-get upgrade」をして、最新の状態にします。少々時間はかかりますが、下準備ということでしばらく我慢してください。

ここまで終わったら、いよいよインストール作業を始めます。まずは、Minecraft Piをダウンロードするところからです。ターミナルで以下を正確に打ちます。

$ wget https://s3.amazonaws.com/assets.minecraft.net/pi/minecraft-pi-0.1.1.tar.gz

すると、ユーザのフォルダに「minecraft-pi-0.1.1.tar.gz」が格納されます。そこで、tarコマンドで解凍します。

$ tar -zxvf minecraft-pi-0.1.1.tar.gz

すると、ユーザのフォルダに「mcpi」というフォルダが出来上がります。これで使える状態になります。ターミナルでmcpiフォルダに移動(cd mcpi)してから「./minecraft-pi」で起動します。LXDEメニューから「実行」を選んで、「./mcpi/minecraft-pi」と入力して起動させることもできました。

うちの環境では、HDMIをVGAに変換するケーブルが悪さをしているのか、メモリ256MBのRPiでは、起動するもののマウスが動かず、512MBのRPiでは、マウスを動かすたびに画面が数秒程度黒くなる(信号が途絶える)という現象が起きています。必要な動作環境として512MBが推奨されているので、256MBの方は諦めるとしても、信号が途絶えて使えないというのは困った状況です。本当に変換ケーブルのせいなのか、RPi自体に問題はないのか今後検証していきたいと思っています。

以下、参考にしたWebサイトのURLを貼っておきます。

2025年2月17日月曜日

Raspberry Pi 5と歴代Raspberry Piの使い道を考える

前回の続きです。約1年前に重い腰を上げて歴代RPiのメンテナンスを行いましたが、Raspberry Pi 5を購入してセットアップしたことをきっかけに、過去のRaspberry Pi(RPi)たちでも快適に使える状態を維持するにはどうしたらよいか考えてみました。Scratch 3などのビジュアルプログラミング環境を活用したい場合には、過去のRPiではかなり重くなりますので新しいRPi 5の出番だと思います。しかし、世代に合わせたOSを入れて、軽い作業のみをするか単一の機能に絞り込むかといった工夫をすれば、まだまだ使い道があるように思います。

以前のメンテナンスの際に歴代RPiで使っているOSを確認しましたが、RPi初代とRPi+はあえて古いOSを残す(ソフトの動作確認や作った環境をキープするため)として、RPi 2以降は新しいOSにしてしまって良いと思っています。中でも、3台もあるRPi 3にはしっかり仕事をしてもらおうかなと。ということで、歴代RPiのメンテナンスをサクッと終わらせて、3台のRPi 3のうち1台を実験台にすることにして、OSのインストールからやってみることにしました。

いつものように、Raspberry Pi Imagerを使って、microSDカードに最新のOSを入れます。Recommendに従って、64 bitのOSを入れることにしました。起動microSDカードをRPi 3に挿して起動すると、思ったよりスムーズに起動してくれて過去のRPiでも快適に動作するような調整がされているのかもしれないと思いました。「$ lsb_release -a」コマンドでOSのバージョンを表示させると「Debian GNU/Linux 12 (bookworm)」となっていました。RPi 5のときと同じように、表示を英語表記から日本語表記に設定して、指示に従って再起動しました。次に、この実験台RPi 3に以下のソフトをインストールしました。

〈「Recommended Software」より〉

〈「Add / Remove Software」より〉

実のところ、RPi 3で最新の64 bitOSがまともに動くとは思っていなかったのですが、しっかり動いてくれたのでちょっと感動してしまいました。職場でデジタルサイネージによる情報発信を考えているのですが、RPiならうってつけだと思っています。(以前の職場でも同じような取り組みをしていたので)私がいる間は、私物のRPi持ち込み(ネット接続は不可)でやってみるという手もあるかなと思っています。その他にも、どんな使い方ができるか考えてみたいと思います。
#5V 3AのUSB電源を使っても、「Low voltage warning」が出てしまうのは、どうしたものかと思っています。

(本当は、Raspberry Pi Zeroの方が、安いし用途を絞って使うには良いと思うのだけど、学校予算で買ってしまったら引き続き使ってもらうのは難しいかもしれないし、後任の負担になるようなことはしたくないし…。一方で、この程度のものを使いこなせないというのも情けないとは思うし、でもそれを強要するのは違うとも思うし…)

2013年4月1日月曜日

Raspberry PiでBluetoothを使う

Raspberry PiWeDoなのぼ〜どAGをつないで、Scratch(改造したものも含めて)から制御することで自律型のロボットが出来ないだろうかと考えて、細々と実験中です。

さしあたって、キーボードの呪縛(と言うほど大げさなものでもないか…)からRaspberry Piを開放するために、Bluetooth USBドングルを挿して無線キーボードを使うことが出来ないかと考えました。同じようなことを考えている方はいないかとググってみたところ、結構たくさんの人がチャレンジしている様子。中でも一番わかり易かったYengawa Systemsさんのブログ記事を参考に、作業を進めていくことにしました。
#今回の作業はインターネット接続必須です。DHCPサーバが動いている環境がお勧めです。

まずは、Raspberry Piにキーボード、マウス、モニタ、LANケーブルをつないで、前回用意した電源をつなぎました。起動&ログイン後、GUIで作業を進めるために「startx」でLXDEを起動しました。次に、デスクトップにあるターミナルを起動し、「sudo apt-get update」と打ち込んでapt-getのリストを更新します。その後「sudo apt-get install bluetooth bluez-utils blueman」でBluetoothを動かすのに必要なものをインストールしました。
#これが結構時間がかかります。

インストールが終了したら、Bluetooth USBドングルを挿します。今回は、プラネックスのBT-MicroEDR1XというBluetooth Ver.2.1とEDRに対応したものを使いました。ターミナルで「lsusb」と打ち込むと、確かに「Cambridge Silicon Radio, Ltd. Bluetooth Dongle (HCI Mode)」が見えました。

次は、GUIツールの出番です。LXDEメニューから「設定」→「Bluetooth マネージャー」を起動し、Bluetoothキーボードの電源を入れて「CONNECT」ボタンを押してから、Bluetooth マネージャーの「検索」を押します。今回は、iPad2のために購入したK1280 BTというキーボードを使いました。(Amazonで購入しましたが現在売り切れ)ペアリングにはランダムなキーを使うことにして、ウィザードに従って設定をすると、無事にBluetoothキーボードが使えるようになりました。

【追記】 起動&ログインからBluetoothを使いたい場合は、Raspberry Piを起動してログイン待ち状態になってからBluetooth USBドングルを挿して、(2013.4.1)
予めBluetoothドングルを挿してRaspberry Piの電源を入れて、LEDの点滅を確認してからキーボードの好きなキーを押したりマウスをクリックしたりしてしばらく待つと、BluetoothキーボードやBluetoothマウスが使えるようになるようです。(2013.5.4)

結構簡単にできるものだなぁと感心しましたが、さらに使いやすい環境にするためにはまだまだ道のりは長いので、時間を見つけて作業を進めたいと思います。

2021年2月21日日曜日

Linux版Scratchの日本語入力の状況を確認する

前回、事情によりScratch 1.4での教材開発を諦めて、今後はScratch 3.0で教材開発を行っていくことにしたのですが、ふとRaspberry PiのScratchでは「日本語入力はどうなっているのかな?」と疑問に思いました。と言うのもLinux版のScratch 1.4では、日本語のインライン入力ができず、テキストエディタ(「メモ帳」的なもの)で日本語テキストを打ち込んで、コピーしてScratchにペーストするというとても面倒なことをしなければならなかったのです。

早速、検証環境として使ってるRaspberry Pi 3Bと常用しているLinux Mintで動かしているPCで「〈こんにちは!〉という」ブロックに日本語入力ができるか、保存の際にファイル名に日本語入力ができるかの2つを確認していきます。日本語変換はFcitx-Mozcを使います。

  1. Raspberry Pi 5.4.83-v7+ ※「uname -a」コマンドで確認した
    • Scratch 1.4(オフライン)…Mozc起動せず
      • ブロックに日本語入力…×
      • 保存時に日本語入力…×
    • Scratch 3.0(オフライン)
      • ブロックに日本語入力…○
      • 保存時に日本語入力…○
    • Scratch 3.0(オンライン)※Chromiumブラウザー
      • ブロックに日本語入力…○
      • 保存時に日本語入力…○
  2. Linux Mint 19.3
    • Scratch 1.4(オフライン)…Mozc起動せず
      • ブロックに日本語入力…×
      • 保存時に日本語入力…×
    • Scratch 3.0(オフライン)…Mozc起動せず
      • ブロックに日本語入力…×
      • 保存時に日本語入力…×
    • Scratch 3.0(オンライン)※FirefoxブラウザーおよびChromiumブラウザー
      • ブロックに日本語入力…○
      • 保存時に日本語入力…○

RPiのScratch 3.0(オフライン)が日本語入力に対応していることに驚きました。つまり、MintのScratch 3.0でも日本語入力ができるようにすることができるかもしれないということ。(若干ややこしい)試しに、Wine上で動かしているScratch 1.4(Windows版)でも試してみましたが、日本語入力が文字化けしてしまいました。こちらは文字コードの問題のように感じたので、設定をいじれば使えるようになるかもしれません。(Scratch 3.0(Windows版)は、エラーを吐いて起動してくれませんでした)

そう思って調べていると、RPiのScratch 1.4で日本語入力ができるようにする設定の仕方を解説したブログのページを見つけました。「#6 スクラッチ1.4の日本語入力設定【Raspberry Pi】」です。これを参考にしてターミナルを開いて以下のようにやってみました。

$ sudo mousepad /usr/bin/scratch
※Raspberry Pi OSのテキストエディタは、Mousepadがインストールされているため。

その後、テキストエディタで以下のように設定を書き換えます。

〈変更前〉
$WRAPPER "$VM" $VMOPTIONS “$IMAGE” …※以下略
〈変更後〉
$WRAPPER "$VM" $VMOPTIONS -vm-display-x11 -compositioninput “$IMAGE” …※以下略

Raspberry Pi OSを再起動して、Scratch 1.4を起動して試してみましたが、日本語入力ができるようになっていました。調子に乗って、MintのScratch 1.4でも同じことを試してみました(Mintのテキストエディタは、「xed」を使っている)が、Mozcは起動するようにはなったものの文字化けしてしまいました。でも、あと少しな感じです。

Scrstch 3.0の方は、公式にLinux版が公開されていないので何か特別なチューンが必要な感じがしていますが、調べてもなかなか良い情報が得られませんでした。また時間を見つけてチャレンジしてみます。

2013年4月11日木曜日

Raspberry Pi用にScratch.imageを改造する

前回の作業で、今まで他のLinuxで使っていた、改造されたScratchがRaspberry Piで動かないことがわかり、twitterでつぶやいたところ、Scratch Day 2013 in Tokyoの準備などでお忙しい@abee2さんから情報を頂きました。結論だけ言うと、Raspberry Piに含まれるScratchは特別なものであるため、他のScratchイメージを持ち込んでもうまく動かない可能性があるということでした。そこで、初体験ではありますが、Scratch.imageの改造をやってみることにしました。

改造と言っても、既に作成して頂いている.csファイルをRaspberry Pi付属のScratch.imageに組み込むだけです。参考にしたのは、「チェンジセット(差分集合)の書き出しと読み込みの方法」です。今回改造したScratchイメージファイルは、ScratchMyu4RPi.imageとScratchMotors4RPi.imageという名前にしましたが、改造の内容をまとめると以下のようになります。

まず、SensorBoardWithMotorからWeDoLight.1.csを書き出します。作業はMacBookでやりましたが、「チェンジセット(差分集合)の書き出し…」を参考にして難なくクリア出来ました。Macの場合は、「マウスの右ボタンをクリック」ではなく、項目を選択するとウィンドウの左側にスクロールバーが表示され、その上にスイッチらしきものが表示されるので、それをクリックします。また、特にSqueakVMとの関係を気にする必要がなく、Raspberry Piから持ってきたScratch.imageファイル(/usr/share/scratch/に入っていた)をダブルクリックするだけで勝手にSqueakVMで開いてくれました。予め「Scratch.image」を「ScratchMyu4RPi.image」などのように、別名で保存しておくとわかりやすいと思います。今回は、2つのイメージファイルを作ったため、別の名前で2つのイメージファイルを作ってから作業をしました。

問題は、チェンジセットを読み込ませたいScratchイメージファイルから起動して、シフトキーを押しながら「ファイル」メニューを開いても、「Exit User Mode」という項目が出てこないことです。そこで、よく知られた裏ワザとして、シフトキーを押しながら「SCRATCH」のロゴの「R」をクリックするという方法を使いました。シフトキーを押しながら「R」をクリックすると小さなメニューが表示されます。その中から「turn fill screen off」を選ぶとScratchの窓が少し小さくなって、右下にSqueakのデスクトップ(ワールド)が表示されます。あとは先述の「チェンジセット(差分集合)の書き出し…」を参考にして作業をすれば問題ありません。作業が終わったら、再びシフトキーを押しながら「R」をクリックし、「turn fill screen on」を選択してユーザモードに戻します。最後に、同じくシフトキーを押しながら「R」をクリックして、出てきたメニューの中から「save image for end-user」を選んで変更した内容を保存すれば、改造したScratchイメージファイルの出来上がりです。

こうして作ったイメージファイルをRaspberry Piに持ち込んだところ、無事に動いてくれました。\(^o^)/
#起動からLXDEメニューへの登録まで出来ましたが、詳細は後日書くことにします。

2024年10月7日月曜日

Raspberry PiでRaspberry Pi Picoのプログラミングに挑戦〜ビジュアルプログラミング編

前回の続きです。これまで、Raspberry PiRPi 3RPi 400)でThonnyVisual Studio Codeを動かして、MicroPythonでのRaspberry Pi Picoのプログラミングに取り組んでみました。一般的にプログラミングをする際の敷居としては、テキストプログラミングよりビジュアルプログラミングの方が敷居が低いと思いますが、小型のPCと考えると非力なRPiの場合は、マシーンスペックとしてビジュアルプログラミングのほうが敷居が高くなるような印象があります。そこで、RPiでWeb上のビジュアルプログラミング環境を使ってフィジカル・コンピューティングのプログラミングができるのか、検証してみることにしました。
#今回使っているブラウザは、デフォルトでインストールされているChromiumです。

以前に、Linux MintGoogle Chromeでビジュアルプログラミング環境(「Piper Make」と「BIPES」)を動かして、ビジュアルプログラミングを行い、Raspberry Pi Picoを動かすことができています。今回は、その時の経験で得た知見をもとに、動作実験をしていきたいと思います。

#手順としては、今回もRPi 400でやってみて、同じことをRPi 3で検証するという方法で行いました。

〈Piper Makeの場合〉
先ほど紹介した拙Blog(Piper Make編)の記事を参考にしながら、作業をしていきます。Piper Makeのサイトを開いて、MODEレバーの「CREATIVE」をクリックして最初からビジュアルプログラミングに取り組みます。今回は、Linux MintのときにPiper Makeで使ったPicoをUSBでつないでみましたが、ドライブ名が「RPi-RP2」になっていてそのままでは使えませんでした。そのため、プログラミングを始める前に、「SETUP MY PICO」をクリックして、ガイドに従ってPicoの設定を行いました。すると、ドライブ名が「CIRCUITPY」という名前になり、Piper Makeと接続可能な状態になりました。

あとは以前にやった通り、「NEW PROJECT」から新しいプロジェクトを作成し、それを開いて「CONNECT」ボタンを押すとPicoが「Pico(ttyACM0)」として認識されていることがわかるので、これをクリックして「接続」ボタンをクリックします。以前のLチカプログラムを作って「START」ボタンをクリックすると、無事にLチカできました。RPi 3でもやってみましたが、動作が若干もっさりした感じになるものの、Lチカ自体は問題なくできました。
#PicoをPiper Makeで使えるようにすると、ドライブモードがデフォルトになる設定が施されるようです。取り外しは、イジェクトボタンから行わないと正常に取り外されたと認識されないようです。

〈BIPESの場合〉
MicroPythonで使えるようにしたPicoを接続して、動作実験を始めます。これも、先ほど紹介した拙Blog(BIPES編)の記事を参考にしながら作業をしていきました。接続するマイコンボードの選択画面から「Raspberry Pi Pico」を選択し、接続マークをクリックすると「Board in FS mode(ttyACM0)」と表示されますので、これをクリックして「接続」ボタンをクリックします。これで、Picoとの接続が完了するので、あとはプログラムを作って動作確認するだけです。

以前にやったものを参考にしてLチカプログラムを作って動かそうとしてみましたが、どうも動作がおかしい感じ。Piper MakeでのLチカ実験のあと、新しいタグを開いてBIPESの実験を続けていたのがいけなかったのではないかと思い、一度ブラウザを閉じてからもう一度立ち上げ直してやってみました。すると、無事に思い通りの動作をしてくれました。横着をしてはいけないことがわかりました。同じようにRPi 3でもやってみましたが、Piper Makeよりスムーズに動いてくれたので、より実用的ではないかと思いました。(個人の感想ですけどね)

というわけで、RPiでPicoを動かすというのもありですね。そろそろPico 2でも試してみないといけないかもしれません。(RPi 5は、ちょっと手が出ていませんが…)

【追記】これまでのPicoでのプログラミング(フィジカル・コンピューティング)に関する拙Blogの記事もご覧ください。(2024.11.4←これからも適宜更新していきます)

2026年5月16日土曜日

Raspberry Piの古いOS(Raspbian)のアップデートを試みる〜Raspbian 10(buster)でのリポジトリ設定など

前回の続きです。初代Raspberry Piのアップデート作業が終わったので、残り12個の歴代Raspberry piのアップデート作業をしていきます。2年前のアップデート作業のときは、10個のRaspberry Piを紹介していましたが、数え忘れていたものと新たに買ったものとを併せて13個のRPiがあります。これを順番にアップデートしていくのですが、ちょっとずつ用途を変えているので微妙に使用環境やOSなどの状態が違うため、アップデート作業にはかなり時間がかかります。心が折れないように、気持ちを奮い立たせて作業を進めていきます。(^^;;;

アップデートを進めていくと、前回の作業でリポジトリの設定を変更した「Raspbian GNU/Linux 9.13 (stretch)」だけでなく、「Raspbian GNU/Linux 10(buster)」をインストールしていたRPiでも、「sources.list」の設定を変更しないとアップデートできないことがわかりました。早速心が折れそうになりましたが、”stretch”のときと同じように、「sources.list」と「raspi.list」内の設定を変更すればよいのではないかと考えて、作業を進めていくことにしました。「LXTerminal(←GitHubのページ)」を起動して、「/etc/apt/sources.list」を「sudo vi 」コマンドを使って開き、(「sudo vi /etc/apt/sources.list」)viの「i」コマンドで文字入力モードにしてから、「deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi」をコメントアウトします。(「#deb …」のようにする)viでの作業が終わったらESCキーを押してから「:wq」コマンドで保存&終了します。

次に「/etc/apt/sources.list.d/」ディレクトリ内の「raspi.list」を「sudo vi 」コマンドで開いて、(「sudo vi  /etc/apt/sources.list.d/raspi.list」)viの「i」コマンドで文字入力モードにしてから、「deb http://legacy.raspbian.org/raspbian/ buster main contrib non-free rpi」と追加します。viでの作業が終わったら、ESCキーを押してから「:wq」コマンドで保存&終了します。

リポジトリの設定変更を終えたところで「reboot」コマンドで再起動して、再び「LXTerminal」で「sudo apt update」コマンドを実行すると、エラーは出なくなりました。アップデートが確実に行われているか確認するために「アップデート」アプリも動かしてみましたが、タイミングの問題かもしれませんがアップデートが残っている感じがしました。少し時間をおいて「sudo apt update」をしてみたところ、アップデートが行われている感じになったので大丈夫ではないかと判断しました。(^^;;;

作業をした時点で、「Raspbian  GNU/Linux 11(bullseye)」や「Debian GNU/Linux 12(bookworm)」で動かしているRPiは、タスクバー内の「アップデート」アイコン(アップデートが可能なときだけ表示される)からのアップデートが可能でした。また、「パッケージアップデーター」からのアップデートも可能です。Raspbianメニューから「設定」→「Main Menu Editor」を開いて、「システムツール」内の「パッケージアップデーター」にチェックを入れておくと、Raspbianメニューからも「パッケージアップデーター」を起動することができます。「LXTerminal」を使って、ターミナル上で「$ sudo apt …」で作業した場合は、コマンドの履歴が残って2回目以降はターミナルでやる方が簡単かつ確実になるので、私はターミナルでやることが多いです。(^^;;;
#OSのバージョンは、ターミナルで「lsb_release -a」コマンドで確認します。RPiのモデル名は、同じく「pinout」コマンドでPRiのGPIOピンアサインとともに確認することができます。「$ cat /proc/cpuinfo(「 | grep Model」をつけるとリビジョンのところだけが表示される)」でもモデル名を確認することができます。

今回の作業をしていく中で、RPi B+に入れていたmicroSDカードが破損してしまったため、「Raspberry Pi Imager」を使って起動microSDカードを作り直しました。破損してしまったmicroSDカードは、フォーマットすらできないくらい壊れていました。非力なB+でも、最新の「Raspbian GNU/Linux 13 (trixie)」の32-bitバージョンが使えることがわかりました。

ついでに、「sudo rpi-update」コマンドですべてのRPiのファームウェアをアップデートしておきました。実用としては、反応速度なども考えるとRPi 3以上は必要かなと思うところですが、コンパクトさを活かした使い方を考えるのも楽しいので、面白い使い方を考えていきたいと思います。

「Raspberry Piの古いOS(Raspbian)のアップデートを試みる」