2018年11月11日日曜日

M5Stackを使ってみる

M5Stack」は、ESP32を搭載し、Wi-FiやBluetoothも利用可能な小さな(5cm角)マイコンボードです。ColorLCD(TFT 320*240)を搭載し、SDカードスロットもついています。拡張モジュールによって機能を追加することができるため、やりたいことをスマートに実現させるガジェットとしては申し分なく、コンパクトなAll in Oneマイコンボードと言えると思います。Arduino IDEでの開発が可能なため、手軽に始められると思って購入してみました。
スイッチサイエンスマガジンでも紹介されています。「M5Stackであそぼう

今回参考にしたのは、公式サイトにあるMacOS向けのページです。もともと、Arduino IDEを使っていたので、今回は、インストール作業をしませんでしたが、まだインストールしていない場合は、先述のサイトからお使いの環境に合ったものをダウンロードしてインストールしてください。

次に、USBドライバのインストールなのですが、Silicon LabsCP2104を使っているようなので、それに合わせてSiLabs CP2104 Driverをインストールします。今回は、こちらもインストール済みだったので、インストール作業はしませんでした。

続いて、ターミナルを起動し、以下のコマンドを丸ごとコピーして貼り付けてから、最後にEnterキーを押します。ちょっと長くて意味がわからない感じがすると思いますが、パソコンとESP32とのやりとりができるようにするために、インターネットを介して必要なファイルをダウンロードして、あるべき場所に配置する作業をしているようです。
mkdir -p ~/Documents/Arduino/hardware/espressif && \
cd ~/Documents/Arduino/hardware/espressif && \
git clone https://github.com/espressif/arduino-esp32.git esp32 && \
cd esp32 && \
git submodule update --init --recursive && \
cd tools && \
python get.py
すべて一度にコピー&ペーストした方が、手間がかからなくて済みます。一つ一つ確かめながらやりたい場合には、1行ずつやって頂いても結構ですが、その場合は「&& \」は、必要ありません。

続けて、Arduino IDEを使って、M5Stackのライブラリーをインストールします。Arduino IDEを起動して、「スケッチ」メニューから、「ライブラリをインクルード」→「ライブラリを管理…」と選択していきます。出てきた画面上の検索窓に「m5stack」と入力します。すると、「Library for M5Stack Core development kit」という項目が現れるので、これを選択してインストール作業を行います。アップデートがある場合には、アップデートもお忘れなく。

Arduino IDEを一度閉じてから再び起動し、M5Satckの本体(Core)をUSB Type-Cに対応したケーブルでパソコンに接続します。今回は、自宅のMacを使っていますので、以下はMacでの動作確認となります。ここからは、「小型万能マイコン「M5Stack」で自分だけのクソダサいスマートウォッチを作る」を参考に、M5Stackの画面に時刻を表示することにしました。
#実は、M5Stackをスマートウォッチ風にする「M5WATCH」を購入していて、何かできないかなと思っていたのでした。

Arduino IDEの「ツール」メニューから「ボード」→「M5Stack-Core-ESP32」と選択します。同じく、「ツール」メニューから「シリアルポート」→「/dev/cu.SLAB_USBtoUART」と選択し、準備は完了です。「スケッチ」メニューから「スケッチ例」→「M5Stack」→「Advanced」→「Display」→「TFT_CLOCK_DIGITAL」とたどって選択し、コンパイルしてM5Stackに流し込んだら、画面に時間が表示されました。まだまだおもしろいことができそうです。これから、スケッチ例も参考にしながらなにができるかやってみたいと思います。
#ちなみに、今回のデジタル時計は、電源を切ってしまうと時間がリセットされてしまうので、注意が必要です。

2018年10月27日土曜日

USBシリアルモジュールでIchigoJamとその仲間たちのファームウェアを更新する

自宅には、教材研究のために購入し組み立てたIchigoJamが、新旧合わせて5個あります。忙しさにかまけて3年ばかり放置しておりましたが、そろそろ先生方にも紹介してみようかなと思いたち、最新のファームウェアに更新することにしました。

前回の更新では、FTDIのチップを載せたUSBシリアルモジュールを使って、Maclpc21ispからhexファイルを流し込む方法で更新を行いましたが、今回は買ったまま放置していたJamToastを使ってやってみることにしました。ところが、Webサイトを眺めていたら「SDカード非対応」らしき記述を発見。MMCカード及び互換カードって何?という状態で調べてみましたが、SDカードでうまくいくかもしれないとか何とか。試しに自宅に在庫しているSDカードを使ってやってみましたが、いくらやっても使えるSDカードに巡りあうことができませんでした。仕方がないのでやっぱり今までの方法で、IchigoJam、IchigoLatte、PanCakeのファームウェアを更新することにしました。
#前回参考にしたものと合わせて「ファームウェアの更新」も参考にしました。

IchigoJamのWebサイトでファームウェアのhexファイル等が公開されているので、ここからダウンロード(現時点での最新版は、1.2.3でした)して、適当なところに展開しておきます。今回は、私が使っているキーボードがUS配列のため、「ichigojam-ntsc-uskbd.hex」を使います。USBシリアルモジュールは、他のものでも構わないようです。
#5Vモードで動かした状態でないとダメみたいですが、はっきりとした検証ができていません。

IchigoJamとUSBシリアルモジュールの接続が終わったら、IchigoJamの電源を入れます。LEDがうっすら光っている状態がISPモードで、ファームウェアの更新を受け入れられる状態です。次に、Maclpc21ispを起動して、更新するhexファイルを選択します。続いて、シリアルポートの選択画面が表示されるので、「/dev/tty.usbserial-(※チップによって違う文字列)」を選択します。後は、書き込みを開始してしばらく待ちます。すると、無事に書き込みが終了して確認を求める画面が表示されます。これでファームウェアの更新は終了です。
#一番新しいIchigoJam Tは、表面実装のチップを含めて手ハンダで作ったためか、うまくファームウェアの更新ができませんでした。

同じことを、IchigoLatteでもやってみました。使ったのは、IchigoLatteファームウェア(ダウンロードファイルへの直リンク)で、現時点での最新版は1.1.7です。こちらは、IchigoJamと同様の操作でファームウェアの更新が完了しました。

次に、PanCakeのファームウェア更新を試みました。使ったのは、PanCakeファームウェア(ダウンロードファイルへの直リンク)で、現時点での最新版は1.2です。いろいろなWebサイトの情報から、PanCakeのファームウェア更新が面倒であることはわかりました。結局一番わかり易い方法として、IchigoJamのLPC1114FN28を外してPanCakeのLPC1114FN28を載せ替えてから、同じ手順でファームウェアの更新を行いました。これ以外の方法も試してみましたが、うまくいきませんでした。
#足が折れてしまうと使えなくなってしまうので、かなり慎重に作業をしなければなりません。

ここまでやって、かなり遅くなってしまったので作業を終了することにしました。残りは、MixJuiceのファームウェア更新です。次の作業ができるのは、いつになることやら。

2018年10月18日木曜日

micro:bitのKL26Zのファームウェアを更新してWeb USBを試す

フィジカル・コンピューティングを学校に持ち込むキラーディバイスとして注目しているmicro:bitですが、「ファームウェアを更新した」という話が聞こえてきて、自分でもどうすれば良いのかやってみなければと思いたち、調べてやってみました。

ファームウェア更新の対象になっているのは、インターフェイスプロセッサKL26Zというチップです。参考にしたのは、「ファームウェア(DAPLink)の更新」というページです。基本的には、このページにある通り更新作業を進めていけばよいのですが、リンク先のARMmbed/DAPLinkには、現時点での最新バージョンとして「REL v0250」がトップに来ています。これを更に調べてmicro:bitのSupportページで見ると、「Beta testing - Web USB」となっています。どうやら、βテスト中ではあるものの、Web開発環境から直接プログラムを書き込めるようになっている(ただし現時点ではChromeのみ対応)らしいのです。これは試してみるしかないと思い、4つ持っているmicro:bitのうちの1つでやってみることにしました。
#Supportページの一番下にあるリンクからmicro:bit用のファームウェアをダウンロードした方が早いです

まず、リセットボタンを押しながらUSBケーブルでパソコン(うちではMac)に接続します。すると、「MAINTENANCE」という名前のドライブアイコンがデスクトップに現れます。この中に、あらかじめダウンロードしておいた「0250_kl26z_microbit_0x8000.hex」ファイルをドラッグ&ドロップします。すると、勝手にドライブがアンマウント(再起動)されます。再びマウントされると「MICROBIT」という名前になりました。中身を開いて「DETAILS.TXT」を開くと、確かに「0250」になっていました。これで、ファームウェアのアップデートは完了です。

続けて、「WebUSBを使ったプログラムの書き込み」を参考にしながら、Chromeからの直接書き込みをやってみます。Chromeは、既にインストールしてあるので、指定されたURLをコピペしてmicro:bitのブロックエディタを開きます。歯車の設定マークから「Pair Device」を選択し、つながっているmicro:bitを選択します。これで、ブロックでプログラミングしたら、「ダウンロード」ボタンを押して直接書き込むことができました。これは便利です。

スイッチサイエンスさんのchibi:bitでもできるかもしれないと思って試してみましたが、ちょっと勝手が違うようでうまくいきませんでした。でも、残りのmicro:bitは、すべてファームウェアの更新ができました。10月26日には、ブロックエディタ(MakeCode)自体がアップデートするみたいなので、楽しみにしています。

2018年10月14日日曜日

カブトムシの世話(2018秋その2)

前回の世話から1ヶ月と少し経ちました。昨年からカブトムシ飼育に腐葉土を取り入れて経費削減を狙っていますが、消費量が多いためか目に見えてかさが減ってしまいます。その上、だいぶ表面近くまでフンで覆われるようになってきたので、急遽マットの状態を確認しつつ腐葉土&クヌギマットを追加することにしました。
#実を言うと、来月職場でパンジーを植えるため、その肥料としてカブトムシのフンを使うことになっているのでした。

カブトムシたちにとっては、腐葉土よりもクヌギの方が人気があるらしく、クヌギの多いところに密集していました。一つ意外だったことは、腐葉土でも水分の多いところにはカブトムシが集まっていたことでした。度重なる台風襲来のためか、コンテナの蓋の下側から水が上がって入ってしまったものと思われます。あまりベチャベチャなところには寄り付かないと思っていたので、これは意外でした。

ふるいにかけながらフン(一緒に腐葉土の大きな葉も入ってしまいますが)を取り除き、数を数えていくと全部で67頭いました。大きさはまちまちでしたが、水を吸わせて入れておいたクヌギの朽木に群がっている感じでした。(やはり水分は大事なのね)

ふるいにかけたマットを5cmくらい敷いて、その上に新しい腐葉土を40L入れて、カブトムシたちと残りのマットを入れて、最後に加水した新しいクヌギマットを10L入れて終了しました。ふるいにかける作業は、汗だくになるくらい運動になりました。蚊にもたくさん刺されたので、虫刺されの薬を塗りました。

これで、しばらく様子を見ようと思いますが、追加用の腐葉土は 80L、クヌギマットは20Lあるので来年の春まではこれでなんとなると思います。ちなみに、カブトムシのフンは、30〜40Lくらいありました。

2018年10月9日火曜日

古いacerのサブノートにLinux Mint 19をインストールする

先日、Linux Mint 18を18.3にアップグレードした際に、古いacerのサブノート1台で、画面表示に不具合が生じてしまいました。画面の3/5程度がうまく表示されず、実用に耐えない状態になったのでした。そこで、これを解消しようとLinux Mint 18.3のインストールイメージを探しましたが、ふと「だったら19にしても良くない?」と思いつき、Linux Mint 19で実用レベルになるかどうかやってみることにしました。

Linux MintのWebサイトからインストールイメージをダウンロード(今回は、軽さに期待してXfceをチョイスしました)して、Mintで動かしている別のacerのサブノートに保存。「USBメモリフォーマッタ」を使って一度USBメモリ(8GB)自体をフォーマットして、「USBイメージライタ」でISOイメージを焼きました。程なくして出来上がったブータブルUSBメモリを不具合のあったサブノートに挿して起動すると、あっけなく正常に起動してくれました。

続けて、デスクトップに表示されているInstallerを起動して、HDDへのインストール作業開始。途中、日本語を選択、日本語キーボードを選択、タイムゾーンを選択、オープンソースではないソフト(Flashとか)のインストールを選択して、インストール作業が始まりました。これも万事スムーズに進み、再起動を促されたのでそのまま再起動。起動メディア(この場合はUSBメモリ)を抜くように促されて、USBメモリを抜いてEnterを押すと、再起動が始まって、程なくしてLinux Mint 19のデスクトップが表示されました。その後、アップデート作業に少々時間を使いましたが、通過儀礼と思って対応しました。

日本語入力については、Mozcがインストールされていて、特に追加でインストールする必要がありませんでした。このあたりはとても便利になりました。LibreOfficeなど使い慣れたものもインストールされていて、すぐに使えました。さらに、「Synapticパッケージマネージャ」で以下のものをインストールしました。
Scratchは、1.4がインストールされますので、日本語で使用する場合は、既知のバグがあるため対応が必要です。それ以外は、スムーズに動いてくれました。PicoBoardWeDoとの接続については、まだ試していません。

eToysは、日本語を表示するフォントが設定されていないために、日本語が使えない状態でした。これはちょっと時間がかかりそうなので後回しにすることにしました。(シンボリックリンクの設定をしてやればいけるんじゃなかったかなぁ…自信なし)

Arduino(IDE)は、1.0.5がインストールされました。起動こそスムーズにできたものの、肝心なArduino本体との接続がうまくいきませんでした。FTDI関連のドライバをインストールすれば良いかもしれないと思って「Synapticパッケージマネージャ」を使ってインストールしてみたものの、全く変化なしでした。

最後に、Dolittleのインストールを試みました。ダウンロードのページから、Raspberry Pi用のdebパッケージファイルをダウンロードしてインストールしてみました。無事に動いてホッとしました。サブノートの画面では、ちょうどいい感じでした。

オンライン版のScratchやDolittleについては、両方とも問題なく動きました。プログラミング学習環境としては、特に問題ないレベルだと思います。後は、フィジカル・コンピューティングまでできるかどうかというところがネックになるかも。

全体の動きとしては、少し反応が遅い感じがして多少の違和感はありますが、十分実用レベルの状態ではないかと思います。何より、これだけ古い機材を活かし続けられるのも、Linux Mintの開発に関わる方々の努力の賜物と頭の下がる思いです。

2018年10月8日月曜日

自宅ファイルサーバのLubuntuを18.04 LTSにアップグレードする

以前からLubuntuで運用してきた自宅ファイルサーバ(もう5年も前の話!)ですが、メンテナンスを兼ねてアップグレード作業をすることにしました。目指すのは、Lubuntu 18.04 LTSへのアップグレードです。
#Lubuntuの日本語情報サイトがなくなって(どこかへ移動したかな?)いて困りました。

Linux Mintアップグレードが比較的に簡単だったため、同じように簡単にできるものと思って、「ソフトウエアの更新」から作業を開始しました。アップグレードのパッケージをダウンロードし、インストール作業が進み、不要なパッケージの削除と進んでいきました。ところがここで、「systemd-shim」がうまく削除できないとのことで、処理が途中で止まってしまったのです。ここから、情報探しに奔走します。(ネットで探しただけですが…)

とりあえず「Synaptic パッケージマネージャ」を使ってパッケージリストの更新とアップグレード作業をやってみましたが、やはり途中で止まってしまいました。ならばと思って「LXTerminal」から「sudo apt-get update && sudo apt-get upgrade」でもやってみましたが、結果は同じでした。「sudo apt-get autoremove」も効果なし。

途方に暮れていたところ、「dpkgやapt-get関連でエラーが出た時の対処法」というページを見つけました。これに従って、「LXTerminal」から「/var/lib/dpkg/info」までたどって、その下の「systemd-shim」に関係するパッケージを削除しました。
  $sudo rm systemd-shim.postinst
  $sudo rm systemd-shim.postrm
  $sudo rm systemd-shim.prerm
これで再び「LXTerminal」から「sudo apt-get update && sudo apt-get upgrade」でアップグレードすると、つっかえていた「systemd-shim」パッケージが削除され、無事にアップグレード作業が終わりました。動作確認も問題なく、しばらくはこの環境で運用することにします。
#こんな記事も見つけました。「Lubuntu 18.10 その5 - Lubuntuはどこに向かうのか・Lubuntuが目指す先

2018年10月6日土曜日

Linux Mint 18を18.3にアップグレードする

今年7月のことです。以前から、Linux Mint 18で運用してきたacerのサブノートですが、事情により、しばらく放置しておりました。既に19がリリースされているところではありますが、18で動かしている別の自作マシーンも含めて特に問題がないので、18系での運用を続けることにして、現在18系の最新バージョンである18.3にアップグレードすることにしました。

参考にした「Linux Mint その70 - Linux Mint 18.3にアップグレードするには」にあった通り、スクリーンセーバーがアップグレードの邪魔をすることがあるようなので、先にスクリーンセーバーが動作しないように設定しておきます。手始めに、acerのサブノートの前に、常用している自作マシーンでやってみることにしました。

はじめに、アップデートマネージャを起動して、アップデートの確認とインストールを済ませます。次に、「編集」メニューから「”Linux Mint 18.3 Sylvia”へのアップグレード」を選択します。すると、いくつかのチェックを受けてダウンロードが始まります。これが長いので、結構待たされます。別のことをしながら気長に待っていると、いくつかのパッケージリストを更新するかと聞いてくるので、私は更新する方を選んでインストール作業を終了しました。

ここですかさず再起動すると、無事に18.3で起動してくれました。しかし、これで終わりではありません。さらにアップデートマネージャでアップデート作業を続けます。これも結構な時間をかけて、ようやく終了しました。見た目は大きく変わりませんが、

続けてacerのサブノートでもやってみました。手順はほぼ同じですが、しばらく放置していたためか、はじめのアップデートでかなり時間を使いました。それから、途中でパッケージの処理がうまく行かなかったようで、コンソールから「sudo dpkg —configure -a」とコマンドを打つように促されました。とりあえず言う通りにしてインストール作業を進めました。これもしばらく待ってから、おもむろに「”Linux Mint 18.3 Sylvia”へのアップグレード」を選択しました。しかし、既にアップグレードするものはないというような英語のメッセージが出てしまいました。何と、はじめのアップデートの段階で、何かの拍子に18.3へのアップグレードが選択されてしまっていたみたいです。(汗)ちょっと拍子抜けした感じで再起動してみると、無事に18.3で起動してくれました。続けて、またまたお決まりのアップデート作業をしました。

順調に作業を続けていたはずのところ、5台のサブノートのうち1台に再起動後の不具合が発生。画面の3/5程度がうまく表示されず作業ができない状態になってしまいました。これを解決するのは、次回ということにします。