2021年12月30日木曜日

Raspberry Piで使えるUSB電源とUSB-C・micro-USB Bケーブルを探す

最近のRaspberry Pi3,3+,4,400)は、電源アダプタ(USB電源&USBケーブルの組み合わせも可)を選ばないとうまく動かないことが多いと思います。1人で1台のRPiしか持っていない状況であれば、持っているものに合ったアダプタを購入すればよいだけのことですが、様々なバージョンのRPiを複数台所有しているような場合は、電源を複数台分用意するのは効率的ではありません。

そこで、できるだけ使い回しができるようにしたいのですが、これが中々厄介なのです。私がよく使っているのは、USB電源とUSBケーブルを組み合わせるパターンです。うまく選べば安価に入手できるのですが、個体差による不安定さやUSBケーブルの質に寄ってRPiに必要な電流を流せないなどの問題が発生することがあり、初めての人にはおすすめできないところがあります。(実験的にいろいろ買って試しているから、無駄に金がかかっている…)

USB電源の選び方としては、5V3A以上の電気が供給できるものを選びます。初期のバージョンのRPiでは、3Aまで必要ありませんが、電流の容量が大きいものを使うことは問題ありません。逆に、USBが2口以上ついているUSB電源では、合わせて3Aになっていることがあって、1つずつは1〜2.4A程度しか流せないという仕様のものもあります。購入の際によく調べてから買わないと、使えないことがあるので要注意です。

そして、USBケーブルも結構曲者です。そもそも、USBケーブルの役割は電源の供給だけに限らず、データのやり取りに使われることがメインです。USB電源と同じように5V3A以上を流せるUSBケーブルを選びたいところですが、見た目だけでは判断できません。特に、USB-C規格では、3.0A対応を謳っているものを選んで購入することができますが、micro-USB Bケーブルだと一般的には2.4A対応を謳ったものが多く、それ以上の電流を流せるかどうかは、実際にやってみないとわかりません。

そこで、実際にRPiで使おうと思っているUSB電源とUSBケーブルを1つ1つつないでみて、「電圧が足りない(実際は英語)」という表示が出ないか、うまく動いた場合にはどのくらいの電圧・電流になるのかということについて調べようと思いました。そのために、AmazonでUSB電圧・電流計(KEWEISI(MakerHawk)のKWS-MX18L)を購入して計測してみることにしました。
#使い方は、coronのまちぽたさんの「USBテスターKEWEISI KWS-MX18Lを買ってみた」に詳しく書かれていたので参考にしました。

私が普段RPiで主に使っているのは、Physical Computing Labの(1)4口USB電源(5V5A)とGigastoneの(2)Quick Charge 3.0(QC3.0)対応 ACアダプタ(Amazonで5V3Aとなっていたので購入しましたが公式サイトでは5V2.4Aになっています)、NorthPadaと書かれた(3)micro-USB B出力の電源(5V3A)です。中でもQC3.0対応のACアダプタが不安定で困っていたので、これを実際につないで測定してみて、安定して使えている4口USB電源との違いを見ていこうと思います。(micro-USB電源は今回購入したUSB電圧・電流計では測定できなかったので除外)

(1)4口USB電源では、5.4…V程度の電圧で、0.1〜0.2…A程度の電流が流れていました。(2)QC3.0電源は、2つある内の1つが5.06…V程度で、もう1つが5.04…V程度でした。個体差があるとは言え、5.04…V程度の方をRPiで使用すると、例の「電圧が足りない」表示が出ます。電流も不安定で、直ぐに使用を中止しました。この状況は、ケーブルを変えてもあまり変化がなく、そもそもこの電源をRPiで使うのはあまり得策でないことがわかりました。やはり、RPi対応を謳ったもの((1)と(3))が安心して使えるという当たり前と言えば当たり前の結果になってしまいました。

その後、何気なく寄ったダイソーでUSB-C電源(5V3A)と2口USB電源(1口最大3A合計3.4A)が500円で売っていた(ラティーノという会社のエコラ事業部が作ったものらしい)ので衝動買いしてしまいました。両方ともRPiで問題なく使えました。(USB電圧・電流計で測ると5.1V以上出てました)USBケーブルもダイソーにあったもので3A対応のものを選びました。という訳で、いろいろやってきましたが、先日購入したRPi 400は、しばらくこれで動かすことにしました。(不具合があったらまたレポートします)

2021年12月26日日曜日

Raspberry Pi 400を使ってみる

なかなか手に入れることができなかったRaspberry Pi 400(キーボード一体型RPi)がSwitch Sienceで少々値引きされているというのを知って衝動買してしまいました。購入したのは、もちろんUS配列。技適もクリアしてるやつです。

電源もSDカードも自宅に在庫があるので、付属品なしの単品を購入。いつものRaspberry Pi ImagerでRaspberry Pi OSの起動SDカードを作って、RPi 400のカードスロットに挿して起動します。電源は、USB-C形状のコネクターで3.0A流せるアダプター(もしくはUSB電源とUSB-Cケーブル)が良いようです。HDMI出力は、microが2つなのでどちらに挿しても大丈夫。SDカードの相性問題に遭遇してちょっと手間取ってしまいましたが、無事に起動することができました。(中身は、Raspberry Pi 4の4GBと同等な基板が組み込まれていることがわかりました)

初回起動時には、通過儀礼となる初期設定などを行い、ソフトウエアのアップデートが行われました。再起動後に「Recommended Software」からScratchVisual Studio Codeなどのプログラミングに関するソフトウエアをインストールしました。ついでに、Libre Officeも一応インストールしておきました。その他に、「Add/Remove Software」からArduinoInkscapeなどのLinux環境でよく使っているソフトウエアをインストールしました。(初期設定の際、日本語を選択したのでFcitx-Mozcが自動的にインストールされていました)

RPi 400の本体重量は400g弱程度で、AppleBluetoothキーボード(自宅では、これよりも古いUSモデルを使用)よりは若干重く、メカニカルキーボードよりは軽いという感じ。打鍵感の良し悪しを言うのは野暮ですね。そこを目指した製品じゃない。キーボードのような見た目のこの機械を持ってモニタのあるところへ行って、そこで作業をするというような使い方が想定されているように思います。LANは無線も使えるため、モニタがタッチパネルだった場合には、有線で接続が必要なのは電源とHDMIだけということになります。そう考えると、欲を言えばラップトップPCのようなタッチパッド付きの物があると良いように思いました。(私自身はタッチパッドよりマウス派です)

プリンターについては、LANで共有しているのですぐに使うことができました。これはとても便利です。(最近、家族がネットワーク上のプリンタの使い方を覚えて何でもプリントアウトするようになってしまっていますが…)これから、いろいろといじってみたいと思っています。

今回の作業では、Switch Sienceのサイト内でビギナーズガイドが提供されているので参考にしました。GIGAスクール構想Chromebookの方が注目度が高くなっていますが、縛りのきついChromebookに比べてLinuxの自由度が高いRPiの方が自分にとってはしっくり来る感じがしています。(Google Workspaceは便利ですけどね)

2021年12月23日木曜日

古い内蔵用HDDをHDDケースに入れて外付けHDDにする

以前Time Machine用に2台の内蔵用HDD(SEAGATEBARRACUDA 2TB)をロジテックの外付けHDDケース(LHR-2BRHU3)に入れてRAID1(ミラーリング)で使っていたのですが、容量不足を感じて8TBのものに換装したため、この2TB HDDの使い道を考えていました。3年間は電源を入れたまま使い続けていたのでそれなりにヘタっているだろうから、あまり重要な用途には向いていないものと判断し、データの一時保管用に使うことにしました。購入した外付けHDDケースは、ロジテックのLHR-EKWU3BKで、テレビなどでも使えるUSB3.1 Gen1(USB 3.0)で接続するタイプのものです。

組み込み方はとても簡単で、ケースからHDDに接続する基板(電源やUSBコネクタがついた裏ぶたと一体になっている)を外し(2本のネジで止められている)、基板のSATAコネクタにHDDを差し込んでHDD自体を固定金具に4本のネジで固定してもとに戻すだけです。あとは、電源とUSBケーブルを差して準備完了です。

動作確認のために自宅のPlayStation® 4CUH-2200AB02)のUSBポートに接続してみました。当然のことながらそのままでは使用することができないので、「設定」→「周辺機器」→「USBストレージ機器」を選択して、接続したHDDを拡張ストレージとしてフォーマットします。数秒でフォーマットが終了しPS4のアプリケーションの保存先として使えるようになりました。 

もう一つは、長年使い込まれた三菱電機液晶テレビ(Blu-rayとHDD内蔵の録画テレビ)に接続してみようと思っていろいろ調べたところ、外付けHDDには対応していないことが判明して断念。近々新しいものに買い換える予定なので、その時に再挑戦してみようかなと思っています。 

使用感としては、接続した機器の電源ON/OFFに連動して自動的に電源がON/OFFされるのが便利でよいです。動作音も静かだし、お手頃な価格だったので満足度は高いです。

2021年11月28日日曜日

XAMPP for macOSのインストールと使用感

以前の続きです。メインで使っていた自作PC新しい自作PCに交換したため、以前に構築していたLAN専用Webサーバ(Apache2phpMySQL)が使えなくなってしまいました。そこで、より簡単にこれらの環境を構築するためにXAMPPを利用することにしました。

XAMPPは、Apache Friendsによって開発・メンテナンスされているツールで、Apache2とMariaDB、PHP、Perlを一括して導入・管理することができるスグレモノです。WindowsmacOSLinuxに対応しており、Webサイトの動作確認程度なら必要十分といった感じで申し分ありません。特に、過去にこれらのシステムを別々に導入し、連携させることに苦労させられた人ならこの価値を理解できることと思います。

というわけで、XAMPPの使用感をテストするべくサブマシーンとして使っているiMac(21.5-inch,2017)へのインストール作業をはじめました。XAMPPのトップページにダウンロードのリンクがあるので、そこからmacOS用「xampp-osx-8.x.x-x-vm.dmg(現時点での最新版は8.0.13-0でした)」をダウンロードします。このdmgディスクイメージファイルをダブルクリックでマウントすると、XAMPPのアプリアイコンが現れてアプリケーションフォルダへドラッグ&ドロップするよう促されるので指示に従います。インストール作業はこれで終了です。

アプリケーションフォルダ内のXAMPPアプリケーションをダブルクリックで起動します。macOS(Monterey)の場合は初回の起動時にインターネットからダウンロードしたプログラムだけど開いてよいかと聞かれるので、「開く」を選択します。すると、画面中央にXAMPPの操作画面が表示されるので、「Start」ボタンをクリックします。

暫く待つとStatus:が緑色になり、IP Address:にアドレスが表示されます。「Go to Application」ボタンを押すと、デフォルトで設定されているブラウザーが開いて無事にWebサーバが立ち上がったことが確認できました。次に「Network」タグを開いて「localhost:8080」と「localhost:8443」を「Enable」ボタンを押して有効にします。これで、Webブラウザーから「localhost:8080」「localhost:8443」にアクセスすると、それぞれ「http://localhost:8080/dashboard/」と「https://localhost:8443/dashboard/」でWebサーバのトップページが表示されるようになります。
#2つの違いはhttpとhttpsの違いです。

続いて「Volumes」タグを開いて見るとhtmlファイルなどの保存場所は「/opt/lampp」以下になっているようで、「Mount」ボタンを押すとデスクトップに「lampp」としてマウントされます。中を見てみると、「htdocs/dashboard」フォルダ内にあるものがデフォルトで表示されるページのようです。(Webブラウザーがはじめに参照している場所も「〈IP Address〉/dashboard」になっています)これについては、「etc」フォルダ内のいずれかのconfファイルを変更すれば、任意の場所に設定することができそうです。confファイルをいじっていない状態で見られることが確認できたページは以下の通りです。

  • http://〈IP Address〉/dashboard/jp/ … トップページが部分的に日本語になる。
  • http://〈IP Address〉/dashboard/phpinfo.php … phpinfoのページが表示される。
    ※上の2つは「http://〈IP Address〉」を「http://localhost:8080/」や「https://localhost8443/」にしても表示されます。
  • http://localhost:8080/phpmyadmin/ … phpの設定画面が表示される。
  • https://localhost8443/phpmyadmin/ … 同上

設定の仕方などについては、「FAQs」のページにありそうなので英語と格闘しながら使い方を学んでいきたいと思います。使用感としては、万人向けとは言えないものの、同様の環境を自力で構築してきた経験があれば、簡単に移行できるのではないかと感じました。
#今回は、XAMPPの公式サイト以外にFree StyleというWebサイトの「Mac用のXAMPPをインストール。ローカル開発環境の準備と簡単な使い方」も参考にしました。

2021年11月25日木曜日

Bitnamiで作られた蔵書管理システムに挑む

5年ほど前のこと。勤務していた学校で、学校図書館の蔵書管理システムを、当時から数年前に保護者だった方が無償で作ってくださったものを使っていました。このシステムについては、メンテナンスができる人が他におらず、その保護者だったの方にお願いをする以外にないのこと。システムの作成からかなりの年数が経っており、保護者だった方との連絡もしばらくしていないということでした。

ざっくりと状況を確認してみると、パソコン(スタンドアローン)で蔵書や利用者、貸出・返却の管理をするためのシステムで、ベースになっているものがありそうでした。このシステムに利用者番号をバーコードに書き出す機能があって、それをプリントアウトして切り貼りしてクラスに分けて利用しているとか。これはあまりにも非効率的です。利用者情報をCSVで書き出せる機能もあるというから、それを使ってExcelでクラス分けをして、Wordでバーコード化して差し込み印刷したら良いのではと提案してみました。これは、結局私がやることになりましたが、この程度なら難しいことはありません。
#時間はかかるけど。

問題は、利用者番号のバーコード化がどのコードで行われているかを解析しないといけなかったこと。これは、USB接続のバーコードリーダーを使って蔵書管理システムから出てきたバーコードを別のパソコンで読み取って解析しました。すると、利用者番号は「コード39」でバーコード化されていることがわかりました。そこで、CSVで書き出したデータをExcelで開き、利用者番号をアスタリスク「*」で囲むようにした列「="*"&(利用者番号のセル)&"*"」を追加して、Excelの書類として保存しました。これを、Wordの差し込み印刷設定の中にある「バーコード挿入」機能を使ってバーコードに変換します。これはとても便利な機能だし、使い方も簡単です。

これでバーコードのクラス分けが簡単にできるようなりました。喜びも束の間で問題が発生。この蔵書管理システム自体が突然動かなくなってしまったのです。

この蔵書管理システムは、Windows上でWebアプリケーションのような形で動いているらしいことはわかっていましたが、詳しいことは全くわかりませんでした。とにかく、このシステムの正体を探るべくパソコン内を調査開始。すると、「Ruby on Rails」と「MySQL」を使っていることがわかってきました。この組み合わせで簡単に動かすことができるものを調べていくと「Bitnami」のサービスを使っているのだということがわかりました。

ここまでわかったところで、つてを辿ってこのシステムを作成した卒業生の保護者と連絡を取り、いろいろとヒントを貰いました。最終的には、再インストールしか復旧の方法はないかもしれないというところまで話が進みましたが、諦めるのはまだ早いと思いさらに調査を続けました。

挑むこと数日間。問題は、「rubystackMySQL」が動いていないことだったというところまで突き止めることができました。Windowsのサービスのリストを見ると「rubystackMySQL」が「自動」的に起動することになっているのに、起動即終了という状態になってしまっていました。さて、これを動かすにはどうしたら良いか。さらに調べていくとイベントビューアーのWindowsログに以下のようなエラーが残されていました。
#「日付」と「時刻」は伏せました。

エラー     (日付) (時刻)     MySQL   100     なし
        Binlog has bad magic number;  It's not a binary log file that can be used by this version of MySQL
エラー     (日付) (時刻)     MySQL   100     なし
        Can't init tc log
エラー     (日付) (時刻)     MySQL   100     なし
        Aborting
情報      (日付) (時刻)     MySQL   100     なし
        C:\Program Files (x86)\BitNami RubyStack\mysql\bin\mysqld.exe: Shutdown complete

このパターンは、「【MySQL】Binlog has bad magic number のエラーで起動しない」と同じではないかと思い、上記Webサイトを参考にして、以下のファイルを削除しました。

  • C:\Program Files(x86)\BitNami RubyStack\mysql\data\mysql-bin.000547(止まった時の最後のログファイル)
  • C:\Program Files(x86)\BitNami RubyStack\mysql\data\mysql-bin.index(止まった時と同時に更新が止まっていた)

これで再起動すると、蔵書管理システムが正常な時と同じように表示するようになりました。いくつか動作確認をして、学校図書館の司書さんにもいじってもらいましたが全く問題なし。無事に復旧させることができたという話でした。学校図書館に限らずこういうシステムを組むときにはメンテナンス性を考えるのはとても重要なことだと思います。今はGIGAの関係でGoogleが提供するシステムを利用することが推奨されていますが、自由度という面では課題が残ります。今後のスタンダードが何になるかわからないところですが、個人的にはXAMPPのようなものが普及していくことを期待しています。
PukiWikiとか、NetCommonsXOOPS…)とか、いろいろあるけどね。

2021年10月31日日曜日

Chromebookでデジタル・シティズンシップの授業

新型コロナウィルス感染症拡大防止に係る緊急事態宣言が解除されて、学校でも様々な行事が少しずつ行われるようになってきました。そんな中、年度当初から予定されていた学校公開日も、感染拡大防止対策を採りながら児童の家族限定、1人1時間(単位時間は45分)参観で行うことになりました。

3日間で2時間ずつ、1学級につきトータルで6時間の公開を予定しましたが、担任の負担を少しでも減らすために、担任外の教員が積極的に授業を担当することになったため私にも出番がやってまいりました。

依頼されたのは、3年生に情報関係の授業をしてほしいとのこと。そこで、Chromebookを自宅に持ち帰って学習に使う際にどんなことに気をつけたらよいか考えるという学級活動の授業を行うことにしました。タイトル(題)は、「想像力をはたらかせて考えよう」です。

勤務校の3年生は3学級あるのですが、1学級は普段から週1回書写を教えている学級で、残りの2学級は1度も授業をしたことがない学級です。授業の前に各自のChromebookを用意しておいてもらいました。授業のはじめに本時の授業の趣旨を簡単に説明したら、Chromebookを起動して指定したクラスルーム(classroom)に入るところからスタート。リテラシーは様々。キーボードからアルファベットを探すだけで一苦労という状態の子どもたちが多数いる中で、「自分が考えたことを入力して送信する」という課題はかなりハードルが高かったようでした。

それでも、「キーボードの打ち方を練習する」という方向に行きたくないのが私のこだわりでもあります。「自分の考えたことをみんなで共有する」ということをモチベーションとして、一生懸命目指す文字のキーを探し、たどたどしくても簡易でも良いから文章を完成させて送信し、自分が書いたことがみんなに共有されていくことを楽しんだり達成感を味わったりする中でスキルは自然に身についていくものと思うからです。

1つ目の質問「Chromebookでどんなことをしたいですか?」をワークシートに記入した後、予め作っておいたフォーム(forms)に入力・送信する場面ではかなり苦労していましたが、2つ目の「どんなことに気をつけなければならないと思いますか」をフォームに入力・送信する頃には、既にスキルが上がっていました。これには、授業をしているこちらが驚くほど。ネット環境やら各種設定やらに問題があって、いろいろ(詳述できない)つまずきがあったのですが、そのうち、「日本語にならない」(日本語変換モードになっていない)「キーがない」(みつからないだけ」とか「”ん”はどうやって出すんですか」とか「小さい”っ”はどうやるんですか」と少しずつ質問のレベルもアップしてきて自分の考えを打ち込む作業が進んでいることがわかりました。

子どもたちのフォームへの回答を大型モニタに映し出して確認しながらまとめていくと、3学級それぞれ少しずつ表現は違いますが、Chromebookをていねいに扱うことや人を傷つけるような使い方をしないこと、決まりごとを守ることなどの内容に集約されました。

最後は、1時間の感想をクラスルームで共有しようと思っていたのですが、残念ながらワークシートに書き込むのが精一杯の時間しか残っておらず、担任の先生方へ「別日にもう1時間ください」とお願いをして終えました。かれこれ25年くらい前に情報モラル(倫理)の授業を行ったとき、デスクトップに表示される様々なアラートなどをよく見もしないで「OK」を押す子が多かったという結果になりましたが、今回の子どもたちは、手を挙げて「どうすればいいですか?」と聞く子たちでした。それでも、アラートなどの内容をよく読まない(読めないということもある)のは同じです。将来的には、パソコンやスマホなどのメッセージやインターフェイスから状況を読み取って、どうすればよいかを自分で判断できるようになると良いと思っています。
#「今回はOKを押して良いけれど、自分で読む習慣を身に付けようね」と話しました。

2021年10月30日土曜日

iMacに接続した外付けHDDを共有フォルダとして設定してMacBook ProのTime Machineドライブとしても使う

自分の備忘のために記録しておきます。

macOSで使われているファイルシステム(フォーマット形式)は、主にAPFSとHFS+(Mac OS拡張(ジャーナリング))で、特にAPFSはmacOS 10.13以降で使用されるようになったファイルシステムです。自宅には、常用している外付けHDDが2台あり、この外付けHDDをそれぞれデータ保存用とTime Machine用として使っています。データ保存用として使っている1台は、HFS+(大文字/小文字を区別)でフォーマットされていて、私が使ってきた歴代のMacで作ったファイル等が保存されているのですが、今回はもう1台のTime Machine用として使っている外付けHDDの話です。

Time Machine用として使っている外付けHDDは、ロジテックのHDDケース(LHR-2BRHU3)にSEAGATEの内蔵用2TB HDD(BARRACUDA)を2台入れてRAID 1(ミラーリング)で使っていました。これをiMac (21.5-inch,2017)に接続して共有設定をして、MacBook Pro (13-inch, 2019, Two Thunderbolt 3 ports)でも使えるようにしていました。導入したのは2018年の3月で、当時も苦労しながら設定をした記憶があります。(しかし、その内容が記録されていなかった…)

導入から3年半が経過し、2TBの容量をほぼ使い切った状態になっていて、容量を増やす必要に迫られました。いつものAmazonで少し安くなっていた同じSEAGATE BARRACUDAの8TBを2台(ロジテックのHDDケース(LHR-2BRHU3)で扱える最大容量)を購入して入れ替え作業&再設定をすることにしました。

Macの電源を落として外付けHDDたちを外し、HDDケースの方を開けて中のHDDを8TBのものに換装し、元通り組み上げてiMacに接続しました。これで、8TB(RAID 1)外付けHDDができました。(これを「8TB HDD」と呼ぶことにします)さて、ここから試行錯誤の始まりでした。

8TB HDDのフォーマットをAPFSにすると、ユーザーの設定(所有者=私、以外に読み書きできないようにしたい)がうまくできません。共有設定でファイル共有の設定をいじってもうまく反映されません。MacBook ProでTime Machineドライブとして設定しても、書き込む権限がないと言われてしまいます。仕方がないのでHFS+にしようと思ったら、ディスクユーティリティでは一度APFSでフォーマットしたものをHFS+などにはできないことが判明。仕方がないので、常用しているLinux MintのPCにつないで別のフォーマットにしてから再びiMacのディスクユーティリティでHFS+でフォーマットしました。

すると、ユーザー設定がうまくできたので、共有設定をしてからMacBook ProでTime Machineドライブとして設定をしました。これでうまく行ったと思ったら、同じ8TB HDDをiMacでもTime Machineドライブとして使用しようと設定したところ、強制的にAPFSとして認識されるようになり、MacBook Proからは使えなくなってしまいました。

再びLinux Mintの力を借りてから再度iMacでフォーマットのやり直し。HFS+でフォーマットして共有設定を済ませたら、MacBook ProからだけTime Machineドライブとして使えるようにしました。ここでiMacのTime Machineドライブとして設定してしまうと元の木阿弥なので、8TB HDDを2つのパーティションに分けることにしました。ディスクユーティリティでHFS+のパーティションを2つに分ける設定をしたところ、MacBook ProのTime Machineのバックアップはそのままで2つ目のパーティションが出来上がりました。

これをiMacのTime Machineドライブとして設定すると、勝手にAPFS(大文字/小文字を区別)に変更されましたが、MacBook Proが使っている領域に影響はありませんでした。これで、ようやく作業が終了しました。過去には、Time Machineドライブを2台(以上?)のMacで共有することが可能だったけれど、macOSのバージョンアップとともにそれができなくなったものと理解しました。(現在使っているのはMontereyです)Time Machineの設定が安定したためか、他に共有フォルダで運用しているものの挙動が安定するようになりました。