電子趣味の部屋

電子系のガジェットやアプリ開発等の趣味の話題を書いてます

G-SHOCK追加しました DW-5600RL-1JFとGA-2100RL-1AJF

4月に自宅サーバを変えたのですが、前に使用していたAOOSTAR G5がPC関連が高騰しているせいか購入時と同じくらいの金額で売却でき、これに使用していたDDR4の64GBメモリも良い金額で売却できたので、ついG-SHOCKを追加してしまいました。

今回購入したのは、DW-5600RL-1JFとGA-2100RL-1AJFです。


DW-5600RL-1JF


DW-5600RL-1JFは初代G-SHOCKから続くデザインの系統の現在の型の機種です。
G-SHOCKをコレクションするからには1台は持っておきたいと思い購入しました。
学生の頃に使用していた初めてのG-SHOCKもこのデザインの物でした。
G-SHOCKの中でも低価格な方の機種で。ソーラーも電波受信もありません。
ソーラーも電波受信もあるGW-M5610U-1JFとも悩んだのですが、コレクションのために所有したいだけで使用頻度は低いと思い、低価格な方にしました。

GA-2100RL-1AJF


GA-2100RL-1AJFは初代G-SHOCKから続くデザインの系統のカラーリングの機種です。
先日購入したGBM-2100A-1A2JFと同じANALOG-DIGITAL2100シリーズです。
ANALOG-DIGITAL2100シリーズはG-SHOCKの中でも一番好きなデザインのシリーズで、オリジナルモデルのカラーを見つけた瞬間カートに入れてしまいました。
これはソーラーもBluetooth接続もない安価なモデルですが、一つ面白い点があります。
左側にある小さい針が曜日を指してます。

GBM-2100A-1A2JFはこの部分がモードと電池残量になっており、曜日はデジタルで表示されます。
この曜日がアナログで表示される点が一番のお気に入り機能となりました。

KZ ZST PRO X 私的レビュー

久しぶりに低価格のイヤホンを何気なく見てたら、前回のKZ ZSTXに続き中華イヤホンを買い漁る切っ掛けとなったKZ ZSTの系統の最新のKZ ZST PRO Xを見つけて購入してみました。

AliexpressとAmazonではあまり価格は変わらなかったので、Amazonで約3,600円で購入しました。

KZのイヤホンを購入するのは1年以上ぶりになります。

KZ ZST PRO Xはまだ発売したばかりで他にレビューもないようです。

今回は箱出し一発目から落ち着いてる印象でした。
いつも通り一晩エージングをしてもあまり変わらず今までのKZの物より差は感じませんでした。

ドライバは1BA+1DDで、低音寄りのドンシャリ型ですね。
落ち着いた感じのドンシャリ型で、KZ ZSTXと比較してもフラットに近い印象でした。
低音寄りですが、あえて重低音を強調してるような強さはありません。
高音の方は高音が得意な別のイヤホンを比較するとやや籠った感じがしますが、比較しない限りわからない範囲だと思います。
KZに多かった低音寄りのドンシャリより控えめのドンシャリ型になって個人的には好きな傾向になりました。

今回は3,000円以上なので、格安イヤホンとは言えないと思いますが、ダイソーや量販店に吊り下げて販売されてるような所謂ごく普通のイヤホンと比較すると、全体的にクリアで解像度も高く細かい音もよく聴こえるので、まだコストパフォーマンスは良いと思います。

最近はTWSを使用することが多いので、メインにはなりませんが、いつも通りKZのイヤホンは低価格帯のイヤホンを探す場合はお勧めできるものだと思います。


低価格で高音質な小型スピーカー FUNLOGY Speaker

10年以上PC(PCモニター)に接続するスピーカーとして YAMAHA NX-50 を使用してたのですが、ついに3か月ほど前に片方から音が出なくなってしまい故障してしまいました。
その後、もっと省スペース化したくて小型スピーカを色々試してたのですが、この手のものは低音が弱かったり高音がカサカサしたりとなかなか良いものが無く、BenQ EW2880U内蔵のものの方が良かったりしました。
それなりに音量を上げれば良いのですが、PCから直接聞くときは近いので音量を下げることが多く、どうしても低音と高音が弱くなってしまいます。

そこで行き着いたのが FUNLOGY Speaker でした。

サイズ:幅69 mm × 奥行132 mm × 高さ108 mm
重量:260 g (片方のみ)
出力:総合 14W (7W x 2 )
入力インピーダンス:3.2 Ω ×2
パッシブラジエーター型
音量調整ダイヤル

音量が小さくてもしっかり低音から高音まで無理無くならしてくれます。
音質としても合格点と言ったところで、高音質というわけではありませんが、BenQ EW2880Uと同じく満足できるレベルの音質です。
全体的な音量は少ないので、大音量で聞くときには向いてません。
給電はUSB(5V)です。他のUSB給電にありがちな電源タップに直接つないだ場合はノイズが乗ったりすることは、ありませんでした。

近くでボリュームを絞ってい聞いていたので YAMAHA NX-50 の時も本来の能力を発揮していませんでした。
この音量で聴く限りでは YAMAHA NX-50 と同等の音質だと思います。

サブ機としてのG-SHOCKを購入しました GD-010GB-1A9JF

前回G-SHOCKのGBM-2100A-1A2JFを購入したことを書いたのですが、この時もう1つ購入してました。
blog-e.uosoft.net

この時購入したのは Black and Gold Series GD-010GB-1A9JF です。

公式サイトより

タフネスを追求し進化を続けるG-SHOCKから、武骨なオールブラックのボディに、エネルギッシュに輝くゴールドをカラーリングしたBlack and Gold Seriesです。
文字板部分にゴールド蒸着を施し、ビッグフェイスデザインを一層際立たせています。
ボディ全体をブラックで締めた中に随所に施したミラー加工の質感が乗じて、煌びやかでクールなデザインに仕上げました。

実際に某家電量販店で実物を見てGBM-2100A-1A2JFを購入したのですが、事前にカシオのサイト等で見たときは特に興味が無かった GD-010GB-1A9JFも実際に見るとゴールドでありながら派手ではなく落ち着いてる雰囲気の配色や質感が良く気になってしまいました。
GD-010GB-1A9JFの会計後にポイントを確認したところ、GD-010GB-1A9JFも購入できるくらいに溜まっていたので、その場でポイントを使って購入してしまいました。

液晶の反射板か変更フィルタに薄く黄色が入ってるようで、液晶の背景色も薄くゴールドに見えて全体の色に合ってます。
コントラストも高く文字もくっきり見え視認性も良いです。

電波受信もソーラー充電もありませんが、電池は10年持つようです。
G-SHOCKブランドの中でも低価格の方で、機能も基本的なものしかありませんが時間も見やすく実用性は抜群です。

久しぶりのG-SHOCK CASIO G-SHOCK GBM-2100A-1A2JF

腕時計と言えば普段はAppleWatchを使ってます。
初めて使ってたのが2世代目だったので、もう10年間使ってることになります。
最近飽きてきてたまにチープカシオに手を出したりしてました。

他に何か面白いものはないかと思い、カシオコレクション等のページを見ているうちに、ついG-SHOCKに手を出してしまいました。

今回購入したのは、ANALOG-DIGITAL 2100 SeriesのGBM-2100のアイスブルー(GBM-2100A-1A2JF)です。

公式サイトより

1983年の発売以来、飽くなき強さを求めて進化を続けるタフネスウオッチG-SHOCKから、2100シリーズの特徴であるスリムなサイズ感をキープしながら、スマートフォンリンクとタフソーラーを搭載したモデルです。
GM-2100の八角形フォルムはそのままに、スマートフォンリンクとタフソーラーを搭載したメタルベゼルのモデルです。バンドにはバイオマスブラスチックを採用し、環境にも配慮しました。
カジュアルシーンからビジネスシーンまで幅広く活用できる、タフネスとデザイン性を両立したモデルです。

G-SHOCKは学生の頃からAppleWatch以前の間に何回か愛用したことはありますが、少し高級なメタルベゼルのモデルは初めてです。

写真で伝えるのは難しいですが、実際の質感はこんな感じです。

このモデルはスマートフォンリンクとタフソーラーを搭載しています。タフソーラーは光があれば充電できるので、定期的な電池交換の手間が不要です。
さらにモバイルリンク機能があり、対応携帯電話とのBluetooth通信による機能連動が可能で、「CASIO WATCHES」アプリに対応しています。アプリを使えば自動時刻修正、ワールドタイム約300都市の設定、リマインダー、携帯電話探索など、さまざまな便利な機能が使えます。
電波受信機能は無いので、時計単体では自動時刻修正できませんが、アプリで色々設定できるのは便利です。
従来通り時計本体のみでも手動での時刻設定はできます。

ダイアルは透過印刷による縦長のグリッドパターンと円周のヘアラインの組み合わせで、液晶やインダイアル部の立体感を強調。モダンな表情を醸し出しています。このモデルはアイスブルーで、蒸着処理でメタリックな質感に仕上げられており、立体形状のインデックスに蒸着処理と蓄光処理を施して、暗所での視認性を向上しています。
液晶もコントラストが高く、視認性が良いです。

AppleWatchはメールの通知機能等は便利なので、仕事ではAppleWatchを使い続けますが、たまに気分を変えたいときや休日はG-SHOCKやたまにチープカシオを使うことにします。

Raspberry Pi Pico用のBASICインタプリタ PicoMite で遊ぶ (RP2040-GEEK使用)

RP2040-GEEKを面白そうと思って購入したものの、特に使い道がなく眠っていたので、BASIC環境にしてみました。

今回使用したのは、PicoMite です。
BASIC for the Raspberry Pi Pico & Pico 2

uConsole PicoCalcでも使用しているBASIC環境です。
blog-e.uosoft.net

PicoMiteは Raspberry Pi Pico 用のBASICインタプリタでFull BASICに準拠してます。若干の差異はあるものの、VIsual Basic とほぼ同じ文法で書くことができます。

ファームウェアのダウンロード
https://geoffg.net/Downloads/picomite/PicoMite_Firmware.zip
Zipファイル内のフォルダ"firmware"の中にある "PicoMiteRP2040V6.02.01.uf2" を書き込みます。(V以下のバージョン番号はダウンロードした時期で変わると思います。)

Raspberry Pi Picoへのファームウェアの書き込み方法は、bootボタンを押しながらUSBをPCへ指すとUSBドライブと認識されるので、そこへ "PicoMiteRP2040V6.02.01.uf2" をコピーしてください。

PicoMiteのマニュアル
https://geoffg.net/Downloads/picomite/PicoMite_User_Manual.pdf

BASICインタプリタはシリアル通信で行います。
PCと接続するとUSB仮想シリアルポートが認識されるので、以下の設定で接続してください。

ポート 接続する環境によって変わります。
通信速度 38400 bps
データビット 8bit
パリティビット none
ストップビット 1bit
フロー制御 none

TeraTermでの設定例

BASICのプログラム作成はターミナル内でスクリーンエディタが表示されるようになってます。
エスケープシーケンスを使用して再現されてるため、端末のエミュレーションを"VT100"に設定してください。
TeraTermでの設定例

BASICインタプリタにアクセス出来たら、以下のコマンドを入力して設定してください。

OPTION SYSTEM SPI GP10,GP11,GP28
OPTION HEARTBEAT OFF
OPTION PICO OFF
OPTION LCDPANEL ST7789_135, LANDSCAPE,GP8,GP12,GP9,GP25
OPTION SDCARD GP23, GP18, GP19, GP20
OPTION AUDIO GP2,GP3', ON PWM CHANNEL 1

"option list" でオプションの確認ができます。

プログラムは専用のスクリーンエディタで書いていきます。
"edit"で起動できます。

プログラムの実行は "run" でできます。

プログラムリストを表示したい場合はスクリーンエディタを開くのでもよいですが、"list"でも表示されます。

プログラムの保存は"save (ファイル名)"、ロードは"load (ファイル名)"です。
テキストファイルで保存されるので、PC上でテキストエディタ等で書いてSDカードに保存してロードでも大丈夫です。

グラフィック命令はRP2040-GEEKの場合は本体の画面に表示されます。

CLS 0
Box 40,10,160,120,,RGB(white),RGB(white)
Circle 120,70,40,,,RGB(red),RGB(red)

SDカードは32GBまで、FAT16かFAT32でフォーマットしたものが使用できます。
ドライブは"A:"が内蔵FLASHで、"B;"がSDカードになります。
試しに以下のようなプログラムでSDカードにテキストファイルを作成してみました。

Open "B:test.txt" For output As #1
Print #1, "test text file."
Close #1

テキストファイルが書き込まれました。

PicoMiteは直接I/Oピンにアクセスできる機能も用意されてます。
デジタル入出力、アナログ入力、PWM出力がサポートされてます。
また、他にも赤外線通信やフルカラーLED制御等直接制御できる機能もサポートされてます。

上記のソースコードを見ればわかる通り、Pythonよりも少ない行数で色々試せるので、便利だと思いました。

実行速度は遅いですが、速度を要求しないようなものはmicropythonより手軽なので、これからは積極的に使ってみようと思います。

Raspberry Pi Pico 2 W

Raspberry Pi Pico 2 W

  • 共立電子産業株式会社 KYOHRITSU ELECTRONIC INDUSTRY CO.,LTD.
Amazon

Raspberry PiでUSB接続のMIDI音源デバイスを作る方法

サウンドフォントを使用できるMIDI音源デバイスが欲しいと思い、Raspberry Piを使用して作ってみました。
PCからはUSB-MIDIデバイスとして認識されます。
今回はRaspberry Pi Zero 2Wを使用しましたが、他の機種でも同じ方法でできると思います。

DAC

音声はI2S,I2C接続のDACから出力するようにしました。
今回使用したのは、Waveshare PCM5122-Audio-Board-Aです。

I2S,I2C接続のDACであれば同様の方法で使用できると思います。

OS

OSはTrixieやBookwormは動作が重く、もうすぐサポートが切れてしまいますが、bullseyeのLiteを使用しました。
downloads.raspberrypi.org

手順

I2C有効化

raspi-configでInterface OptionsよりI2Cを有効化してください。

sudo raspi-config

設定後、再起動します。

sudo reboot
パッケージ更新

とりあえず、最新化します。

sudo apt update && sudo apt upgrade -y
I2Cツールのインストール
sudo apt install -y i2c-tools
Waveshare PCM5122-Audio-Board-Aのセットアップ

PCM5122が検出されることを確認(通常は0x4C, 0x4D, 0x4E, 0x4F のいずれか)

sudo i2cdetect -y 1

PCM5122デバイスが card 1 として「IQaudIODAC」で表示されることを確認:

card 1: IQaudIODAC [IQaudIODAC], device 0: IQaudIO DAC HiFi pcm512x-hifi-0
ALSA 設定

/etc/asound.conf を編集して以下を記述してください。(管理者権限 sudo でエディタ実行)

pcm.!default {
    type hw
    card 1
}
ctl.!default {
    type hw
    card 1
}
FluidSynth インストールと設定

インストール

sudo apt install -y fluidsynth fluid-soundfont-gm alsa-utils

FluidSynth スクリプト作成

mkdir -p ~/midi-synthesizer

~/midi-synthesizer/midi_synth.sh を編集(新規作成)して以下を記述してください。

#!/bin/bash
exec /usr/bin/fluidsynth -s -a alsa -m alsa_seq \
  -o audio.alsa.device=hw:1,0 \
  -o synth.polyphony=128 \
  -o synth.gain=0.8 \
  /usr/share/sounds/sf2/FluidR3_GM.sf2

スクリプトを実行可能にする

chmod +x ~/midi-synthesizer/midi_synth.sh

テスト実行

~/midi-synthesizer/midi_synth.sh

プロンプト > が表示されたら成功(Ctrl+C で終了)

USB-MIDI設定

/boot/config.txt を編集して以下を記述してください。(管理者権限 sudo でエディタ実行)
末尾に追加

# USB OTG for MIDI
dtoverlay=dwc2

/boot/cmdline.txt を編集して以下を記述してください。(管理者権限 sudo でエディタ実行)
rootwait の後に追加

modules-load=dwc2,g_midi

編集する行の全文です。
編集前:

console=serial0,115200 console=tty1 root=PARTUUID=xxx rootfstype=ext4 fsck.repair=yes rootwait

編集後:

console=serial0,115200 console=tty1 root=PARTUUID=xxx rootfstype=ext4 fsck.repair=yes rootwait modules-load=dwc2,g_midi
再起動
sudo reboot
USB-MIDIデバイス確認
sleep 5 && aconnect -l

出力例:

client 24: 'f_midi' [type=kernel,card=2]
    0 'f_midi          '

f_midi が表示されたら成功です

FluidSynth起動
~/midi-synthesizer/midi_synth.sh
別のターミナルで MIDI ポートを接続
aconnect 24 128

確認:

aconnect -l

出力例:

client 24: 'f_midi' [type=kernel,card=2]
    0 'f_midi          '
        Connecting To: 128:0
client 128: 'FLUID Synth (736)' [type=user,pid=736]
    0 'Synth input port (736:0)'
        Connected From: 24:0

上手く接続できない場合は、aconnect -lでクライアント番号を確認して、aconnect [f_midiのクライアント番号] [FLUID Synthクライアント番号]を実行してください。

PC側で USB-MIDI デバイスが認識されることを確認

Windowsの場合、デバイスマネージャーを起動し、「サウンド、ビデオ、およびゲームコントローラー」にMIDIデバイスが存在することを確認する。
デバイス名は環境によって違うようですが、手元のWindows11のPCでは「MIDI function」として認識されました。

自動起動 (サービス化)

自動起動サービス作成
/etc/systemd/system/midi-synth.service を編集(新規作成)して以下を記述してください。(管理者権限 sudo でエディタ実行)
以下を記述(実行ユーザ は自分のユーザー名に置き換え):

[Unit]
Description=Raspberry Pi MIDI Synthesizer
After=network.target sound.target
Wants=network-online.target

[Service]
Type=simple
User=実行ユーザ
ExecStart=/home/atsuhisa/midi-synthesizer/midi_synth.sh
Restart=on-failure
RestartSec=5s
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

自動接続スクリプト作成

~/midi-synthesizer/auto-connect.sh を編集(新規作成)して以下を記述してください。

#!/bin/bash
sleep 6
aconnect 24 128 2>/dev/null

実行権限追加

chmod +x ~/midi-synthesizer/auto-connect.sh

自動接続サービス作成

/etc/systemd/system/midi-auto-connect.service を編集(新規作成)して以下を記述してください。(管理者権限 sudo でエディタ実行)
以下を記述(実行ユーザ は自分のユーザー名に置き換え):

[Unit]
Description=Auto-connect MIDI ports
After=midi-synth.service
Wants=midi-synth.service

[Service]
Type=oneshot
User=実行ユーザ
ExecStart=/bin/bash -c 'sleep 6 && /home/atsuhisa/midi-synthesizer/auto-connect.sh'
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

サービス有効化

sudo systemctl daemon-reload
sudo systemctl enable midi-synth.service
sudo systemctl enable midi-auto-connect.service
sudo systemctl start midi-synth.service
sudo systemctl start midi-auto-connect.service

確認

sleep 10 && aconnect -l

出力例:

client 24: 'f_midi'
    Connecting To: 128:0
client 128: 'FLUID Synth (853)'
    Connected From: 24:0

f_midiFLUID Synth に自動接続されていることを確認

再起動確認
sudo reboot

再起動後:

sleep 10 && aconnect -l

f_midi が自動接続されていることを確認

サウンドフォントファイルの変更

サウンドフォントファイルを変更したい場合は、~/midi-synthesizer/midi_synth.sh のsf2ファイルのパスを変更してください。
今回の設定例で/usr/share/sounds/sf2/FluidR3_GM.sf2の部分を変更してください。

#!/bin/bash
exec /usr/bin/fluidsynth -s -a alsa -m alsa_seq \
  -o audio.alsa.device=hw:1,0 \
  -o synth.polyphony=128 \
  -o synth.gain=0.8 \
  /usr/share/sounds/sf2/FluidR3_GM.sf2