こんにちは、じろうです。多くの刺繍ミシンではUSB(USB Type-A)が搭載されており、USBメモリスティックを使ってデータの読み込みを行うことができます。
高い価格帯の刺繍機であれば有線・無線のネットワーク通信機能があるのですが、安い刺繍機には搭載されていません。そこでRaspberry Piを使って後付けで無線データ転送ができないか検証してみたいと思います。
Raspberry Pi とは
Raspberry Pi (ラズベリーパイ)とは、電子工作する場合によく使われる、安価なコンピュータとして広く利用されています。当初は教育用として開発・販売されていましたが、今では多くの開発者に愛用されているハードウェアとなります。
使用するデバイスの詳細
デバイス:Raspberry Pi Zero W
仕様
- Broadcom BCM2710A1、クアッドコア64-bit SoC(Arm Cortex-A53@1 GHz)
- VideoCore IV GPU
- 512 MB LPDDR2 DRAM
- 802.11b/g/n 無線LAN、Bluetooth 4.2 / Bluetooth Low Energy(BLE)、オンボードアンテナ
作り方
※本記事を参考に刺繍機とRaspberry Piの接続する場合は自己責任でお願いします
USB OTG
Raspberry Pi は OSを書き込んだmicro SDカード内のファイルを編集することで、パソコンのUSBポート経由で接続して、USBストレージやイーサネットデバイスと認識させる方法があります。これをUSB On-The-Go(OTG)といいます。
今回はUSB OTGを使って刺繍ミシンとRaspberry Piを接続して、無線通信でPCからファイル転送できるかを確認してみます。
ブート用SDカードの作成
SDカードへの書き込みは簡単です。公式のイメージ書き込みツールがあるのでそちらをインストールして書き込みます。
パーティションの自動拡張を止めるため、SDカード内に書き込まれたconfig.txt
の末尾に以下の文字列を追加します。
dtoverlay=dwc2
cmdline.txt
の以下の文字列を削除します。
init=/usr/lib/raspi-config/init_resize.sh
cmdline.txt
の以下の文字列を追加します。これはイーサネット接続デバイスとして認識させる記述と外部ストレージデバイスとして認識させる記述です。
modules-load=dwc2,g_ether
最後に、ssh接続できようにssh
という空ファイルを配置します。
Raspberry Piに接続後の操作
イーサネットデバイスとして動作しているので、Raspberry PiとPCを接続します。
以下のコマンドでssh接続する
ssh pi@raspberrypi.local
# パスワードはraspberry
アップデートします
sudo apt update
現在のディスク状態を確認します
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 1507280 1288852 123812 92% /
devtmpfs 187228 0 187228 0% /dev
tmpfs 220208 0 220208 0% /dev/shm
tmpfs 220208 5860 214348 3% /run
tmpfs 5120 0 5120 0% /run/lock
tmpfs 220208 0 220208 0% /sys/fs/cgroup
/dev/mmcblk0p1 258095 49703 208393 20% /boot
tmpfs 44040 0 44040 0% /run/user/1000
現状のパーティションを確認
sudo apt install exfat-fuse
sudo parted /dev/mmcblk0
USBメモリ部分の領域を確保します
(parted) p
Model: SD SD32G (sd/mmc)
Disk /dev/mmcblk0: 30.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 4194kB 273MB 268MB primary fat32 lba
2 273MB 1875MB 1602MB primary ext4
(parted) mkpart
Partition type? primary/extended? primary
File system type? [ext2]? ntfs
Start? 1875MB
End? 3000MB
(parted) p
Model: SD SD32G (sd/mmc)
Disk /dev/mmcblk0: 30.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 4194kB 273MB 268MB primary fat32 lba
2 273MB 1875MB 1602MB primary ext4
3 1875MB 3000MB 1125MB primary ntfs lba
(parted) q
Information: You may need to update /etc/fstab.sudo modprobe g_mass_storage file=/dev/mmcblk0p3 removable=y
sudo mkfs.vfat -F 32 /dev/mmcblk0p3
USBメモリのフリをするテストしてみます。
modules-load=dwc2,g_mass_storage
起動時に指定した領域をストレージとするように設定を入れます。
/etc/rc.localに以下の行を追加する。
# for USB MASS Storage
modprobe g_mass_storage file=/dev/mmcblk0p3 removable=y
この状態でWindows端末にRaspberry PiをUSBで接続してみると外部ストレージとして認識されました。
動作確認
Brother parieでの動作確認
Brother ParieにRaspberry PiをUSB接続。ストレージとして認識されて.pesファイルを読み込むことができました。Wi-Fi経由で無線でネットワークともつながっているのでファイルを無線で送ることができます。
TAJIMA 彩での動作確認
彩は電力が足りないのか、ブート中に再起動を繰り返しました。別途USBから電源を確保するとストレージとして認識されて.dstファイルを読み込むことができました。こちらも同じく無線ネットワーク経由でUSBマウントアンマウント、ファイルの転送できました。
まとめ
無線通信機能がないミシンでもUSB(Type-A)の外部ストレージを読み取るデバイスがあれば、後付けでネットワーク経由でファイル転送ができることがわかりました。それでは!