無線通信機能を搭載していない刺繍ミシンでRaspberry Piを使って無線通信してみる

刺繍
この記事は開発者向けの技術的な記事です

こんにちは、じろうです。多くの刺繍ミシンではUSB(USB Type-A)が搭載されており、USBメモリスティックを使ってデータの読み込みを行うことができます。

USBメモリ(イメージ)

高い価格帯の刺繍機であれば有線・無線のネットワーク通信機能があるのですが、安い刺繍機には搭載されていません。そこでRaspberry Piを使って後付けで無線データ転送ができないか検証してみたいと思います。

Raspberry Pi とは

Raspberry Pi (ラズベリーパイ)とは、電子工作する場合によく使われる、安価なコンピュータとして広く利用されています。当初は教育用として開発・販売されていましたが、今では多くの開発者に愛用されているハードウェアとなります。

使用するデバイスの詳細

デバイス:Raspberry Pi Zero W

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カードへの書き込みは簡単です。公式のイメージ書き込みツールがあるのでそちらをインストールして書き込みます。

Raspberry Piに公式のイメージ書き込みツール「Raspberry Pi Imager」がリリースされてセットアップが超便利に #RaspberryPi | DevelopersIO
せーのでございます。 先日Raspberry Piより、ついに公式のイメージ書き込みツール「Raspberry Pi Imager」がリリースされたのでご紹介いたします。 こんなに有名なのに今までなかったの?と言われそう …

パーティションの自動拡張を止めるため、SDカード内に書き込まれたconfig.txtの末尾に以下の文字列を追加します。

dtoverlay=dwc2	

cmdline.txt の以下の文字列を削除します。

init=/usr/lib/raspi-config/init_resize.sh

cmdline.txtの以下の文字列を追加します。これはイーサネット接続デバイスとして認識させる記述と外部ストレージデバイスとして認識させる記述です。

modules-load=dwc2,g_ether

g_ether…イーサネット接続デバイスとしての使用
g_mass_storage…外部記憶デバイスとしての使用

最後に、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)の外部ストレージを読み取るデバイスがあれば、後付けでネットワーク経由でファイル転送ができることがわかりました。それでは!

タイトルとURLをコピーしました