Python-ControlをGoogle Colabで使うには,毎回

!pip install slycot control

を実行しなければならない。そこで,これらのモジュールをGoogle Driveへインストールし,少し快適に使うようにしてみた。

まず,適当なノートブックを開いた状態で,Google Driveがマウントされているかどうかを確認する。具体的には,左側のファイルアイコンをクリックして,ファイル一覧に「drive」(下図の緑枠)がなければ,「ドライブをマウント」ボタン(下図の赤枠)を押してマウントする。

ドライブがマウントしていない状態でモジュールをインストールしてしまうと,ランタイムが更新されたあとに消えてしまうので要注意。私の場合は「Colab Notebooks」の下に「my_modules」というフォルダを作って,その中にモジュールをインストールすることにした。この場合,次のコードを実行する。

!pip install slycot control --target /content/drive/MyDrive/Colab\ Notebooks/my_modules --no-deps

ここで,「–no-deps」オプションは重要で,これが無いと,my_modulesの下に,slycot及びcontrolと関係のあるモジュールがたくさんインストールされてしまう。また,Colabの後のバックラッシュは,Colab Notebooksの間のスペースをエスケープするために必要。以上で準備は終わりだ。

一度上記を済ませてしまえば,Google Driveがマウントされていることを確認した上で

import sys
sys.path.append('/content/drive/MyDrive/Colab Notebooks/my_modules')
!pip uninstall mkl -y
from control.matlab import *

のようにすればよい。なお,mklをアンインストールしているのは,この記事を書いている時点で,mklをupgradeまたは削除しないとstep関数でクラッシュしてしまうからである。以上,お試しあれ。

【参考】
Google Driveのマウントは

from google.colab import drive
drive.mount('/content/drive')

としてもできるが,アカウント認証を行う必要があるので,ファイルブラウザのボタンから行うのが個人的にはおすすめ。

AKAIのカセットデッキGX-73が動かなくなってしまったので,ウォークマンで再生しようと思ったら,こちらも動かず。発売が1993年なので,27年前ということで仕方ない。この当時のヒット曲はZARDの「負けないで」とのこと。

とりあえず,裏蓋を開けてみると,ベルトがベトベトになって切れてました。AKAIのカセットデッキで使われているゴムベルトは若干伸びているものの,原型をとどめていますが,ウオークマンのベルトは,かなりひどい状況でした。材質が異なるのでしょう。

さて,ベトベトになったベルトの残骸を丁寧に取り除き,アルコールでクリーニングしたあと,適合するベルトを調べると,純正部品は直径61mmで0.6mm径らしき書き込みを2chで発見。実測とも整合するので,多分これで正しいのでしょう。当然,純正部品は入手できないので,近いものをAmazonで探すと,直径63mmで0.5mm径のものが見つかったので,早速注文。

ゴムベルトと言えば,千石電商が定番ですが,1mm径のものが多い印象です。太いとキャプスタンプーリーの溝に入らず,回転半径が変わってしまうため,回転数が安定しません。長さだけでなく,太さも近いものを選ぶ必要があります。この細いゴムベルトはなかなか見つからないので助かりました。

予定より早く本日届いたので早速作業開始。このようなビニールの袋に入って届きました。

早速交換しますが,いくつか注意点があります。まずは,ゴムを金具の下に通さなければならないこと。若干,金具を持ち上げてその下を通すのですが,あまり,持ち上げすぎると基板の半田を剥離してしまう可能性があります。無事,ベルトを通し終えたのが下記の写真。

蓋を閉じる前に,外付けの電池ボックスを接続して動作確認しました。蓋を閉じる際は,いくつかのスライドスイッチのかみ合わせに注意する必要があります。また,ネジの長さも2種類あるので,気をつけましょう。

さっそく,適当にカセットテープを選んで聞いてみました。昭和58年って書いてあったので,自分が中学生の時に作ったテープなのでしょう。H2Oの「思い出がいっぱい」,STYXの「MR. ROBOTO」,山下達郎の「高気圧ガール」とか,なつかし過ぎる。しかし,このポリシーの無い選曲はなんとも。

なお,本記事を参考に,ご自身でウオークマンの修理を行った結果,損害等を被っても,筆者はいかなる補償もできませんので,自己責任でお願いします。

古いカセットテープに録音した音源をパソコンに取り込もうと久しぶりにAKAIのカセットデッキGX-73を立ち上げたら,テープがロードされない。これまで,ベルトのクリーニング程度のメンテナンスでなんとかここまで来たが,ついに,ダメになってしまったようだ。さすがに,1987年に購入して30年以上経っているのだから仕方ないか。仕方ないと,比較的新しいCD+MD付ラジカセで再生しようと思ったら,なんと,こちらも壊れている。そうなると,修理欲がわいてくる。

AKAIやA&Dのテープデッキは,今でも根強い人気があって,修理の情報はネットを調べると結構出てくる。故障原因の主なものはゴム部品の劣化と,古いグリスの固着である。修理業者に頼むのが手っ取り早いが,もと電気少年ということで,徹底的にオーバーホールしてみることにした。

まず,メカ部分の取り出し。メカは以下の写真の4箇所(上2箇所と下2箇所)のビスで本体に固定されている。

ケーブルは,幸いすべてコネクターになっているので,慎重に引き抜く。ツメで引っかかっているので,精密ドライバーをすき間に入れて,ツメの引っかかりをはずしてあげると,比較的簡単に抜ける。まず,モータ駆動系の基板にあるコネクタを外す。以下の写真の赤丸部分がそうだ。次に,緑で示したフラットケーブルを外し(プラスチック部分を上に持ち上げると簡単に抜ける),基板上のビス2箇所を外すと,下の基板にアクセスできる。

下の基板はアナログ回路のようだ。磁気ヘッドからのケーブルが接続されている。以下の写真の赤丸部分を外す。

ケーブルを束ねている結束バンドを外すと,メカ部分が手前に引き抜けるはずだ。そうして出てきたのが以下の写真。後ろ部分を撮影している。

キャプスタンベルトとメカ駆動ベルトが見える。ネットで調べたところ,いろいろな情報があったが,どうも,キャプスタンベルトは5mm幅で,直径73mm,メカ駆動ベルトは,太さが1.6mmで直径が42mmとのこと。実測しても妥当なところだった。キャプスタンベルトはまだ使えそうだ。一方,メカ駆動ベルトは空転する。Amazonでサイズが近いものを探し,1.5mm,直径40mmのベルトを注文してみた。

次に,メカのフロント側。赤で囲ったアイドラーのゴムも劣化している。これが劣化していると,早送り,巻き戻し,再生時の巻き取りがうまくいかない。また,左側のピンチローラの軸が,グリスの固着でほとんど動かなくなっていたので,分解清掃した。ヘッドマウンタについても,分解して古いグリスを落とした。なお,上下にスムーズに動作するように,ベアリングのボールが使われているので,無くさないように注意が必要だ。

アイドラーの復活方法の定番は表面をヤスリで擦ることなのだが,せっかくなので新しいものに交換することにした。ノギスで実測すると,外径が16.5mm,内径が11.5mm,幅が2.44mmだった。これに近いものを探して,以下を発注した。幅が若干太いのが気になるが,ゴムなのでなんとかなることを願いたい。(後日談:現物を合わせたら若干厚くてはまらなかったため,yahooショップのTECHSPACEより,内径12mm,厚さ2mm,幅2mmのアイドラー用ゴムリングを買い直すはめに・・・)

この際だから,ピンチローラも交換することにした。サイズを測ると,左側のピンチローラは,直径が11mm,幅7.9mm,軸径2mmだった。そこで,これに近い以下のものを発注した。

右側のピンチローラは少し大きく,直径が13mmだった。幅は同じく7.9mm,軸径2mmだった。そこで,以下のものを発注した。

さて,この続きは部品が届いてから。部品代で2000円ちょっとだった。無事,部品が合うかどうかは現物合わせしてみないとわからない。仮に,正常動作しなくても,元が取れるほど楽しんだが,でもせっかくなら,復活して欲しい。

なお,本記事を参考に,ご自身でカセットデッキの修理を行った結果,損害等を被っても,筆者はいかなる補償もできませんので,自己責任でお願いします。

私が担当している「新入生セミナー」という1年生向けの授業では,毎年,自己紹介タイムを設けている。しかしながら,今年は対面での自己紹介ができないので,Zoomによる自己紹介タイムを設けることにした。そこで使用したのが,Zoomの「ブレークアウトセッション」の機能。これについて簡単に紹介したい。

まず,設定でブレークアウトセッションをONにしておく必要がある。そうすると,メインウインドウの下に「ブレークアウトセッション」というボタンが現れる。

このボタンをクリックすると,セッションの割り当て画面が表示される。

ここで,セッション数を選んで「セッションの作成」をクリックする。なお,セッション数を変えると,セッションあたりの参加者数も変化するので,こらを見ながらセッション数を決めると良い。また,Tipsとして,学生が遅れて参加したことを考えて,セッション数は少し多めに作っておくと良い。ブレークアウトセッションを開始してしまうと,後からセッションの追加はできないようだ(2020-05-10現在)。セッションを作成すると,次の画面が表示される。

参加者は,ランダムに割り当てられるようだ。事前に割り当てておくこともできるが,事前割当については,あとで説明する。セッションルームの名称を変えたり削除する場合は,ルーム名の上にマウスポインタを合わせると良い。

また,メンバーの移動や交換(赤枠参照),セッションルームの追加(下のボタン)もこの画面からできる。

「すべてのセッションの開始」をクリックする前に,まだやることがある。それは,オプションの確認だ。時間を決めてブレークアウトセッションを実施する場合は,時間設定をすると良い。私は以下のように全てのオプションにチェックを入れている。

あとは,「すべてのセッションを開始」をクリックするとブレークアウトセッションが始まる。ブレークアウトセッションが始まると,ホスト役は一人だけ取り残される。これが結構さみしい。ブレークアウトセション中は,「全員宛のメッセージを送信」ボタンからメッセージが送れる。

時間が来ると,先ほど設定した「カウントダウンタイマー」の秒数の猶予が与えられた上で,ブレークアウトセッションが終了する。

授業などでは,ブレークアウトルームの割り当てをあらかじめ決めておきたい時がある。そのような場合は,ミーティングをスケジューリングする際に,事前割当が可能である。ミーティングをスケジューリングする画面で,「ブレークアウトルーム事前割り当て」をチェックする。そうすると,CSVファイルからのインポートなどが可能になる。ただし,事前割当を行う場合は,参加者のZoomのアカウントが必要になるので注意が必要。

なお,このオプションが現れない場合は,Zoomの設定で「スケジューリング時にホストが参加者をブレークアウトルームに割り当てる事を許可する」がチェックされていない可能性がある。

ブレークアウトルームはZoomの無料アカウントでも利用できる。実際にこの機能を使って学生に自己紹介をやってもらったが,評判は良いようだ。是非,お試し頂きたい。

ArduinoとMATLAB/Simulinkを接続して,実験をしながら制御系設計を勉強することを目指して本書を書いたのだが,早いもので8年が経過した。当時のMATLAB/SimulinkのバージョンであるR2012aからArduinoなどのボードを標準でサポートするようになったというのが執筆のきっかけであった。

現在,MATLAB/SimulinkのバージョンはR2020aなので,この本に基づいて実験を進める場合注意が必要。Amazonのレビューを見ると,新しいMATLABのバージョンでは動かない,との指摘が見られるが,私のサポートページに書いてある方法でArduinoIOをインストールすれば,最新のR2020aでも動作するはず。実際,2020年4月に研究室に配属された4年生(6名)に,この本をStay Homeで実験してもらっているが,全員問題無く動いているとのこと。さらに,その中の1名はMacを使っているが,Macでも問題無く動作しているようだ。

ただし,Macの場合は,シリアルポートの名称が,WindowsのようにCOM1などではなく「/dev/tty.usbmodem1234」のようになるので注意。Arduinoと接続されているシリアルポートの名称はArduinoIDEで調べられるはず。

さて,新しいMALTAB/Simulinkの場合のインストールの詳細は

「ArduinoとMATLABで制御系設計をはじめよう!」について

の中の「ArduinoIOのインストール方法(2019-01-13)」を参照して欲しい。こからリンクされているPDFファイルに詳細をまとめてある。ここにも置いておこう。

また,モータ制御マン(@motorcontrolman)さんの以下の記事もお勧め。

Matlab/SimulinkとArduino連携の隠しメニュー「Arduino IO」

なお,ArduinoIOのインストールしてもエラーが出て動かない場合の典型的な原因は,MALTAB/Simulinkに最初からインストールされているarduino.mとのバッティング。これを避けるためにArduinoIOのパスを先頭に持ってくることがポイント。なお,第8章はArduinoIOを使っていないため,MALTAB/Simulinkのバージョンに大きく依存することから,最近のバージョンでは本書の内容と大きく異なるのでご容赦願いたい。

ついでながら,書籍のファイルは出版社のページ

https://books.techshare.co.jp/index.php?msg=8

からダウンロードできるのだが,ここにも落とし穴が。本書籍の「ArduinoとMATLABで制御系設計モデルファイル」をクリックしてもユーザ登録をしていないと何も表示されない。まず,ユーザ登録し,ログインした状態でこのリンクをクリックする必要がある。注意する点としては,最近のMATLAB/Simulinkのバージョンでは,以前とScopeの仕様が変わってしまったので,多少の修正が必要だろう。早く改訂版をださねば,と思う今日この頃である。

自宅の光回線のIPv6化

| 日常 |

自宅では,NTT東日本のフレッツ光をPPPoEを使ってIPv4で接続するという典型的な接続方法によって利用していた。PPPoE方式では,パケットがプロバイダに設置されたネットワーク終端装置(NTE)を通るため,アクセスが集中するとどうしても回線速度が落ちてしまう。当初,so-netを利用していたが,夜間だと1Mbpsを切るような状況に陥っていた。

フレッツでは,光回線とプロバイダは別契約なので,プロバイダだけ乗り換えることができる。Interlinkでは,PPPoE接続に必要なIDとパスワードをWebから即時発行してくれて,2ヶ月の無料期間もあったので,試して見ることにした。当時は,まだInternlinkがそんなに知られていなかったせいか,それなりの速度が出ることがわかったので,乗り換えることにした。これが,2018年の6月のことである。

ところが,最近,Interlinkの回線も遅くなってしまった。さすがに1Mbpsを切ることは無いが,数Mbpsになることが増えてしまった。そこで,IPv6への乗り換えを検討したのである。IPv6の場合はIPoEという方式でフレッツ網(NGN)からVNE(Virtual Network Enabler)事業者を通して直接インターネットと通信することができるので,速度低下が起こらない。しかし,接続先がIPv6対応していないと通信ができないので,IPv4も利用できるようにしなければならない。IPv6上でIPv4を利用するには,IPv4 over IPv6という方式を利用することになる。これは「トンネリング」という技術によって,IPv6上にIPv4のパケットを流す方式である。

ちょうど,InterlinkがIPv6接続サービス(ZOOT NATIVE)を2ヶ月の無料期間付で始めていたので,これに申し込むことにした。ZOOT NATIVEでは,IPv4 over IPv6については,DS-Liteという方式になる。DS-Liteでは,1つのグローバルIPv4アドレスを複数でシェアするシステムであり,ポートの開放ができないので,サーバを公開したり,外部から自宅のPCへ直接アクセスするような用途には向かない。ZOOT NATIVEに切り替えたら,コンスタントに80Mbpsほどの速度が出るようになった。自宅はマンションであり,光回線から各戸への配線が100Mbpsなので,十分な速度である。

しばらく使用してみた結果,基本的に問題はなかったが,唯一,接続できなかったのがYAMAHAが提供しているNETDUETTOというサービス。NETDUETTOはネット上で音楽セッションをするサービスなのだが,どうも,クライアント間を直接接続するようで,DS-Liteではそれができないようだ。

うーこれは困った。現在は,従来のPPPoEによる接続サービスと,IPoEのネイティブ方式の両方を契約している。無料期間が終わるまでにどうするか考える必要がある。

ドリップスケール

| 日常 |

在宅で仕事をしていて,唯一の息抜きと言えるのがハンドドリップのコーヒー。せっかくなので,バルミューダの電気ケトルを購入したのは良いけれど,ちょうど1杯分をドリップするためのお湯の量が毎回ばらつく問題は解決できませんでした。

なので,一旦お湯をハリオの計量カップで適量計って,それでドリップするという,せっかくかった電気ケトルが有効活用できていませんでした。

ところが,Youtubeにキッチンスケールを使ってコーヒを入れると良いとの動画を発見。目から鱗でした!これで,正確にお湯の分量が量れます。

しかも,この動画を見るとわかりますが,抽出時間も重要とのこと(当然ですね)。調べてみると,スケールとキッチンタイマーが一緒になった,ドリップ用のスケールがあるではないですか!

もう,コーヒを入れる際に,キッチンスケールが手放せなくなりました。お勧めですよ!

ROKUMEI COFFEE

| 日常 |

2019年度の研究室の修了生からいただいたROKUMEI COFFEEですが,感動的においしくて驚きました!これは是非とも皆さんにお勧めしなければ,と思いこの記事を書いています。

シーン別にロクメイブレンド(いつでも),ミカサブレンド(朝に),カスガブレンド(気分転換に),サルサワブレンド(夜に)の4種類が入っていて,どれも甲乙付けられないくらいおいしい。今回はどれを飲もうかな,と選ぶのも楽しい。

いままで,ブレンドが異なっても,その違いを強く感じることは無かったのですが,このコヒーは明らかに違います。新たな発見でした。

決して安くないのですが,価値ある逸品と思います。プレゼントにも是非。

システム制御理論入門

| 研究 |

この本は,美多先生が担当されていた講義「線形システム論(だったかな)」の教科書。美多先生曰く,かなり気合いを入れて書かれたとのこと。4年生になって美多研に配属され,輪講でかなりじっくり読んだ。内容は,現代制御。美多先生の教科書は,どれも独自の切り口があり,簡潔でわかりやすい。

この教科書は,特に第2章の「行列論」がお勧めである。制御で必要な行列論がコンパクトにまとめられている。この章の内容を理解していれば,そう困ることは無いだろう。

システム制御理論入門 (実教理工学全書)
小郷 寛(著), 美多 勉(著)
5つ星のうち4.0
¥2,750

前回紹介したコンデンサマイクは,出力端子がXLRタイプ(通称,キャノンタイプ)になっているので,AG03などのオーディオインタフェースが無いと使えない。マイクとオーディオインタフェースを合わせるとそれなりの値段になってしまう。また,オーディオインタフェースの分だけ場所もとる。

そこで,手軽さを優先するのであればUSB出力のマイクを選ぶのがよいだろう。このタイプはマイクの中にオーディオインタフェースが内蔵されているので,PCに直接接続して使える。このタイプの製品では,マランツのMPM-1000Uが定番だ。以前は6000円台で入手できたが,現在は,1万円くらいになっている。

MPM-1000Uに1万円払うのであれば,上位機種のMPM-2000Uが良いように思う。こちらは,AD変換器の性能が向上しており,周波数特性やSN比が向上している。

ただし,USBタイプでは,使用ソフトとの相性問題でノイズがのるといった報告もある。よく調べてから購入した方が良いかもしれない。

広告