最近流行りのM5StackだかM5Stickだかいうやつを買ってみた。
続きを読む「ガジェット」カテゴリーアーカイブ
自宅のインターネットをIPoEにした
自宅のインターネット回線について、回想も含めていろいろ書く。
続きを読む
MacBook Pro (Late 2013) のSSD換装
現在メインで使っているMacBook Pro (Late 2013)のSSDを換装した。(実際に作業したのは2月上旬)
このMacBook Proについて
私がメインで使っているマシンは、6年前に買ったMacBook Pro (Late 2013) である。
Apple公式オンラインストアでMacを買う際には、スペックをある程度カスタマイズができる。メモリに関しては標準より多い16GBを選択した(これを買う前に使っていたMacBookはメモリを最大6GBしか積めなくて辛かった)。
一方、ストレージに関してはカスタマイズせずに256GBのモデルにした。
前に使っていたMacBookはHDDを換装して1TBにしていたのでそれと比べると256GBは狭いが、SSDの容量を増やすと値段が跳ね上がる。写真などの大容量のデータは面倒でも外付けHDDに入れれば良いということにして、多少我慢してでもお金を節約することにした。
また、メモリは換装できないが内蔵SSDは交換できる、みたいな情報をどこかで見た(伏線)ので、購入時のカスタマイズではSSDよりもメモリの増設を優先した。
それから6年。MacBookも世代交代が進み、このLate 2013モデルも古さを感じるようになった。具体的には
- USB Type-C/Thunderbolt 3に対応していない
- グラフィック性能が低い(4Kディスプレイに60Hzで出力できない)
- macOS CatalinaのSidercarの対象外になった
- 最新のMacBook ProにはTouch IDがあって羨ましい
- 動画編集をするには圧倒的にスペックが足りない
などだ。
そしてそれ以上に困るのが、SSDの容量が少ないことだ。ちょっと重たいアプリケーション(具体的にはWebブラウザ)を使っているとDisk Fullが頻発し、その度に再起動したりアプリケーションを終了させてメモリを空ける必要がある。内蔵ストレージが256GBは人権がなかった。

内蔵SSDを空けるための涙ぐましい努力の一部は過去の記事にも書いた:
まあすでに6年も使ったのだからそろそろ買い換えても良さそうだが、今はタイミングが良くない。次のモデルチェンジで「物理escキーを持つMacBook Pro」が誕生するかもしれない。なので今すぐ買い換えたくはない。でもSSDが狭いのは辛い。そうだ、SSDを換装しよう!
SSDの換装の準備
このモデルのSSD換装については昔調べたことがあるが、秋葉館で売られているサムスン製の換装用SSDはやたら高かった(5万円以上した)。しかし、改めて調べてみると割安な(2〜3万円で買える)換装用SSDが出ている。これは換装してみても良いのではないか?
ググったりしてもう少し詳しく調べてみると、この世代のMacBook Proの内蔵SSDは端子の形状が特殊で、市販されているm2 SSDをそのまま取り付けることができない。しかしアダプターを介せば市販のm2 NVMe SSDを取り付けることができるらしい。

秋葉館で「秋葉館オリジナル」として売られているのはm2 NVMe SSDとアダプターのセットのようだ(アダプター自体はAmazonとかでも買える)。
内蔵SSDの形状が特殊ということは取り外したSSDを外付け用ケースに入れて使うことができないということでもある(単なるストレージとして使う必要性は少ないだろうが、万が一の場合に元の内蔵SSDからブートしたり内容を参照したりできると安心だ)。まあサムスン製のSSDなら対応外付けケースが↓で売られているようだが、個体によってSSDのメーカーが違うのでそういう場合は使えない。
TranscendのJetDriveというのだったらケースとセットでSSDが売られているようなので、どうしても取り外したSSDを外付けで使いたい、というのであればそれが最善手だろう。
今回は取り外したSSDを無理に外付けで使う必要はないと思ったので、「秋葉館オリジナル」のセットを買った。
macOSのバージョンにも注意する必要がある。私のMBPに入っているのはmacOS 10.14 Mojaveだが、まっさらなSSDを取り付けた後だと製造時のOSが古すぎて新しいSSDを認識しないんだったか、インターネットから最新のmacOSを取ってきて10.15 Catalinaが入ってしまうんだったか、なんだかそんな話だった。なので、USBメモリ等で10.14のブートメディアを作っておくと良いらしい。
ただ、そもそもSSDの残量が少ないので、OSのアップグレードをしたりApp StoreからMojaveを改めてダウンロードしたりすることができない。そこで、別の方法を取ることにした。
これから設置するSSDの端子はm2 NVMeなのでその辺で売られている外付けケースを利用できる。そして、古いSSDのままMBPをブートした状態で、外付けケースに入れた新しいSSDにデータをコピーする。コピーが終わったらいよいよSSDを交換し、MBPを起動する(実際に起動する前に外付けの状態から起動できるか確認した方がいいかもしれない)。

というわけで、秋葉館のセットとは別にNVMe SSD用のUSB外付けケースを買った。5000円未満で買えた。(m2 SSD用のケースはNVMe専用のやつとSATA専用のやつがあるので注意しよう。安いやつはSATA用だったりする)
あとはもちろん忘れてはいけないのがドライバーだ。このMacBookの裏蓋を開けるには普通のプラスドライバーやマイナスドライバーではダメで、星型の特殊なドライバーを使う必要がある。また、内蔵SSDのネジは六芒星みたいな形の溝が6つあるタイプ(ヘクスローブ)らしい。というわけで、ドライバーも秋葉館で買った(物自体はAmazonとかでも買えるはず)。
- MacBook Pro Late2013以降専用 SSD 1TB [NVMeSSD-PCIe-1000-TR + NVMeSSD-PCIe-CON+] |秋葉館.com Mac専門店
- 買ったのは上の商品だが、原稿執筆時点では↑は販売終了となっているようだ。後継品(?)はあるので
MacBook Pro Late2013以降専用 SSD 1TB [NVMeSSD-PCIe-1000-XP + NVMeSSD-PCIe-CON+] |秋葉館.com Mac専門店
を買えば良さそう。
- 買ったのは上の商品だが、原稿執筆時点では↑は販売終了となっているようだ。後継品(?)はあるので


換装
手順は
- 買ったSSDを外付けケースに入れる
- データを移行する
- 外付けケースからSSDを出し、MacBook Proの内蔵SSDと交換する
という流れになる。
まずはSSDを外付けケースに入れる(手順1)。何も迷うことはない。「やるだけ」だ。(強いて言えば、この段階でSSDに付属した放熱シートを貼っても良かったかもしれない)

手順2のデータの移行に関しては、ディスクユーティリティでの「復元」がうまくいかなかった(最近のMacでは「復元」はサポートされていないらしい?)ので、Time Machineで行った。SSDの読み書き速度は速くても、Time Machineのバックアップ先はHDDなのでその速度に縛られる。ワクテカしながら正座待機しよう。
手順3のMacBook開腹に関しては、ググったら色々出てくる。筆者は
を参考にした(MacBook開腹以外の、データ移行のやり方などは違う)。
まずは10箇所ぐらいあるネジを回して、裏蓋を開ける。ネジを緩めてもすぐには外れないので、「テレホンカード」あるいはそれに類するものを使うと良い。


MacBookの中は、ファンの周辺に埃が溜まっている可能性があるので、ついでに掃除すると良いだろう。ただし息を吹きかけるのはやめたほうが良いらしい。
SSDを換装する前に、バッテリーのコネクタを外しておこう。筆者はコネクタの部分に紙を挟んで接触しないようにしておいた。

あとはまあSSDを交換すれば良い。詳しくは写真を見てくれ。


新しいSSDをMacに取り付ける際には、かなり奥まで挿し込まないとネジで固定できない。頑張ろう。

SSDの換装を終えて裏蓋を閉じれば、Macが起動できるようになっている(データの移行はすでに済んでいるので)。お疲れ様でした。

SSDを換装すると「新しいマシン」扱いになるようで、おなじみの「Macを設定」みたいなやつが出てきた。Dropboxも新しいマシン扱いになるので、無料プランで3台以上で使っている人は注意しよう。
換装を終えて(感想)
換装後はトラブルもなく起動でき、SSDの空き容量も増えていた。あっけない気もするが、トラブルがないことに越したことはない。

SSDの容量の心配をしなくても良いのはすごい。人権を感じる。でかいGitリポジトリをチェックアウトしたり、Unity等のでかい開発ツールをインストールできる。仮想マシン用の仮想HDDも気兼ねなく作れる。~/.stack/
の掃除とか考えなくて良い。
結論:大容量SSDは正義。
活動報告(2019年1月)
Bamboo Slate を買った
現代の情報化社会に生きる我々にとって、電子的にノートを取りたい、あるいは、手軽にノートを電子化したい、というのは自然な欲求である。
最近だと iPad Pro + Apple Pencil を使っている人をちらほら見かけるが、 iPad Pro は高い。iPad Pro 12.9インチモデル + Apple Pencil を買うと、最低でも10万円は超える。9.7インチモデルはもう少し安いが、A4の半分程度のサイズなので狭そう。
そんな中、筆者のアンテナに留まったのが、最近出た、ワコムの Bamboo Slate という製品である。バインダーみたいな板 (Slate) の上に紙を置いて、専用のボールペンで書くと、紙のノートに加えて電子的なノートも取れる。
Bamboo Slate は、一年くらい前から発売されている Bamboo Spark というやつの姉妹品らしい。Slate には Spark と比べて
- でかい。Spark はA5サイズなのに対し、 Slate はA5サイズとA4サイズの2種類がある。なお、 Spark のような2つ折り形態でA4サイズの製品としては、 Slate と同時に発表された Bamboo Folio がある。
- 軽い。Spark は一番軽いやつでも 535g なのに対し、Slate はA5モデルが 264g で、A4モデルが472g である。
- 薄い。2つ折りとかいいから、とにかく薄いのをくれ。
というメリットがある。以前量販店で見かけた Spark では筆者の食指は動かなかったので、これらの点は大切なのだろう。 続きを読む
Raspberry Pi で赤外線リモコン
Raspberry Pi の GPIO に赤外線 LED をつけてリモコンとして使おう。
使ったハードウエア
- Raspberry Pi Model B
- 手元にあるのは、初代の、プラスじゃないやつ。microじゃない標準サイズのSDカードが刺さる。
- Arch Linux が入っている。Raspbian だと若干手順が変わると思われる。
- 赤外線LED
- 赤外線リモコン受信モジュール
- 3.3V で使えるもの。
- Raspberry Pi を送信側として使うつもりであっても、既存のリモコンの信号を分析するには受信モジュールが必要となる。
- トランジスター、抵抗、配線、ブレッドボードとか
参考にしたページ
- Raspberry Pi で赤外線リモコン – 猫ぱーんち!
- 回路を参考にした。というかほぼ同じ回路になった。
- IR remote with LIRC on Raspberry Pi 2 running RuneAudio (ArchLinux)
ネット上のブログ記事の情報は古い場合があるし、そもそも環境が違って(Raspbian vs Arch Linux)参考にならないかもしれない。ネットの情報は参考程度にして、ソフトウエアのマニュアル等を参照するのが大切である。
作ったもの(ハードウエア)
使う GPIO の番号は選択の余地があるが、適当に GPIO17=出力 (LED), GPIO27=受信 とした。
ソフトウエア的な手順
Linux で赤外線リモコンの信号を送受信するための LIRC というソフトウエアがあるらしいのでそれを使う。
1. LIRC をインストールする
Arch Linux のパッケージになっているのでラクチン。
# pacman -S lirc
2. LIRC をロードする
/boot/config.txt
を編集して、 LIRC をロードする。
/boot/overlays/README
を参照。例として lirc が書いてあった。
# nano /boot/config.txt
dtoverlay=lirc-rpi,gpio_out_pin=17,gpio_in_pin=27
を書き加える。
lirc をロードするのに modprobe
を叩いたり /etc/modules
を編集したりは、しない。
(この辺で再起動をかける?)
systemctl start で lircd を起動する。systemctl enable するとラズパイの起動時に自動で起動してくれるはず。
# systemctl start lircd
3. 受信テスト
mode2 コマンドで、受信したものを吐かせる。
# mode2 -d /dev/lirc0
適当にリモコンを向けて、
space (数字)
pulse (数字)
の羅列が出てきたら多分OK。
4. リモコンを登録
irrecord コマンドを使い、リモコンの信号をファイルに記録する。
# irrecord -n -d /dev/lirc0 lircd.conf
メッセージの指示に従う。
途中で、 Enter name of remote と聞かれたので、 homeceiling と入力した。出力ファイル名は homeceiling.lircd.conf となった。
Enter name of remote (only ascii, no spaces) :homeceiling Using homeceiling.lircd.conf as output filename
個別のボタンを登録する段になって Something went wrong: Cannot decode data
といわれ、最後に Try using the -f option.
と出てきたので、 -f
オプションをつけて再実行した。
# irrecord -n -f -d /dev/lirc0 lircd.conf
homeceiling.lircd.conf
ができた。
# cp homeceiling.lircd.conf /etc/lirc/lircd.conf.d/
5. 信号を送る
irsend SEND_ONCE (リモコン名) (ボタン名)
で信号を送れる。
# irsend SEND_ONCE homeceiling lighter
Canon 製一眼レフの赤外線リモコン
Canon 製の一部の一眼レフカメラ/ミラーレスカメラには赤外線センサーがついていて、純正もしくは互換品の赤外線リモコンを買うとカメラに触れずにシャッターが押せる。(エントリーモデルの安い機種だと赤外線センサーがついていなかったりするので注意)
純正品のリモコンとしては Canon RC-6 が販売されている。Amazonとかを覗くと、 RC-6 互換のリモコンが山ほど売られている。
動作モードとしては、以下の二つがあり、リモコン側で切り替えられる。
- 即時シャッター
- 2秒後シャッター
有線のリモートスイッチと違って、赤外線リモコンを使うには、カメラ側の動作モードをリモコンモードにしなければいけない。
この赤外線リモコンが送る信号は割と単純で、以下のページで解析されている。
www.doc-diy.net :: Canon RC-1 remote control reverse engineered
AVRとかのマイコンと赤外線LEDを組み合わせれば、自作の赤外線リモコンを作ることもできる。上記のWebサイトにも作例がある。
www.doc-diy.net :: DIY Canon RC-1 IR remote control clone
というわけで赤外線リモコンを自作しようかと思ったが、既製品で良さそうなのを見つけたのでそれを買ってしまった。赤外線が結構強力で、2.5mmステレオケーブルを繋げば有線リモコンとしても使える。欠点があるとすれば、電池がやや特殊なことか。
Raspberry Pi と gPhoto2 で一眼レフを叩く
Raspberry Pi (Arch Linux インストール済み)に一眼レフをUSBで繋いで制御してみよう。
gPhoto2のインストール
# pacman -S gphoto2
違うディストリ/パッケージマネージャーでも、何かしら gphoto2 みたいなパッケージはあると思う。
簡単な使い方
接続されたデバイスの一覧を見る:
$ gphoto2 --list-ports Devices found: 3 Path Description -------------------------------------------------------------- ptpip: PTP/IP Connection usb:001,005 Universal Serial Bus usb:001,003 Universal Serial Bus
機種名を表示:
$ gphoto2 --auto-detect Model Port ---------------------------------------------------------- Canon EOS 600D usb:001,005
EOS 600DというのはEOS Kiss X5のことで、同じ製品でも日本と海外で名前が違うとかいうアレだ。
パーミッションの罠
では、 gphoto2 --summary
でもっと詳しい情報を取得してみよう。
$ gphoto2 --summary *** Error *** An error occurred in the io-library ('I/O problem'): No error description available *** Error (-7: 'I/O problem') *** For debugging messages, please use the --debug option. Debugging messages may help finding a solution to your problem. If you intend to send any error or debug messages to the gphoto developer mailing list <gphoto-devel@lists.sourceforge.net>, please run gphoto2 as follows: env LANG=C gphoto2 --debug --debug-logfile=my-logfile.txt --summary Please make sure there is sufficient quoting around the arguments.
なんかエラーが出た。
しかし、このエラーはハードウエアの問題とかgPhoto2の問題ということとも限らない。なぜなら、
$ sudo gphoto2 --summary
としてみたり、
$ lsusb | grep Canon Bus 001 Device 005: ID 04a9:3218 Canon, Inc. EOS 600D / Rebel T3i (ptp) $ ls -l /dev/bus/usb/001/005 crw-rw-r-- 1 root root 189, 4 Feb 14 18:23 /dev/bus/usb/001/005 $ sudo chgrp users /dev/bus/usb/001/005 $ gphoto2 --summary
みたいな感じで /dev/bus/usb/ほにゃらら/ほにゃらら
のグループを変えてやるとうまくいく。つまり、USBデバイスのパーミッション的な問題だということだ。
そこで、 udev の設定をいじる。Arch WikiのDigital Camerasのページを参考にして、
# groupadd camera # /usr/lib/libgphoto2/print-camera-list udev-rules version 175 group camera > /etc/udev/rules.d/40-gphoto.rules # usermod -a -G camera (自分)
みたいなことをやったらうまくいった。(自分の環境だと 40-gphoto.rules
というファイルは /usr/lib/udev/rules.d/40-gphoto.rules
に既に存在したが、/etc/udev/rules.d/
に同名のファイルを置くとそっちの方が優先される。この辺は man udev を参照。)
設定を変えた後は再起動が必要かもしれない。
簡単な使い方その2
gPhoto2 で写真を撮ってみる:
$ gphoto2 --capture-image
写真を撮影&ダウンロード:
$ gphoto2 --capture-image-and-download
頑張れば露出とかシャッター速度とかいろいろ設定できそうだが、そういうのはまた今度。
Raspberry Pi じゃなくても
gPhoto2は別にRaspberry Piじゃなくても普通のLinuxとかあるいはOS Xでも動くのだが、お節介なリッチなデスクトップ環境とかが入っていると、そっちの方にカメラの制御権(?)を奪われてしまう場合があるので注意しよう。

FlashAirで遊ぶ — SPIでIOボードを制御
前回はFlashAirに直接LEDをつないでLEDを制御したが、今度は秋月のFlashAir DIP IOボードキットを介してLEDを制御してみよう。
用意するもの
- FlashAir
- FlashAir DIP IOボードキット(秋月電子)
- ピンヘッダは要半田付け
- ブレッドボードとかLEDとか抵抗とか電源

FlashAirで遊ぶ — Lチカ編
FlashAirでLチカをやってみよう。
用意するもの:
- FlashAir(第3世代)
- 秋月で売ってるSDカードスロットDIP化モジュール
- 今回使うのは FlashAir DIP IOボードキット ではない
- LED, 抵抗, ブレッドボード等