ニシの生活

ギター、DIY、読書日記

PICでUSB-MIDI(サンプル動かす編)

概要

Microchip Libraries for Applications にUSB-MIDIのサンプルプログラムがあるので、試しに動かしてみます。
このサンプルプログラムを改変して、自分好みのMIDIコントローラを自作しよう、という目論見です。

使うデバイスは18F14K50です。
使うサンプルは下記です。
C:\microchip\mla\v2018_11_26\apps\usb\device\audio_midi\firmware\low_pin_count_usb_development_kit_pic18f14k50.x

PIC18で始めるUSBデバイス自作 その1:サンプルプロジェクトを動かす
サンプルプログラムの動かし方はこちらのページを参考にすればできます。
とりあえず書き込んで、評価ボードとPCをUSBケーブルで接続してみると、"MIDI Example"というMIDIバイスとして認識されます。
そして、18F14K50のRA3ピンがHighになっている間はド、レ、ミ、ファ…とNoteを送り続ける動作をするようです。

ハードウェアの準備

ここからはマイコンや基板について少し詳しく見ていきます。
詳しく、と言っても下記の秋月の評価ボードを使えばOKです。
PIC18F14K50使用USB対応超小型マイコンボード

しかし2024/04/06現在、この評価ボードは入荷未定で買えないようなので、私は同様の回路のものをユニバーサル基板で作製しました。

ソフトウェア

ソフトウェアに関して素人なので、サンプルプログラムの内容を把握するのは難しかったです。
下記はC言語について参考にしたページです。

ソースコードを見てて一応わかったこととしては、"APP_DeviceAudioMIDITasks()"という関数がMIDI信号を順次送り続ける動作をする肝の部分のようです。
"BUTTON_DEVICE_AUDIO_MIDI"というボタンが押されたらMIDIを送る。"BUTTON_DEVICE_AUDIO_MIDI"の定義は、"io_mapping.h"や"buttons.c"を見るとどうやらRA3ピンのことのようです。
この辺りをいじって改変していけば動作を変えられそうですね。

本当はDescriptorとかのUSBの部分も見ていきたいのですが、それはまたおいおい。

USB PIC電子工作について調べる

調査

基礎知識

  • USBの基礎知識に関しては「PICで楽しむUSB機器自作のすすめ」がわかりやすい。

    • ピンポンバッファとは?

    • SFRとは?

  • USBにはデバイスクラスというものがある。

通常、USBでPCへ接続するためにはデバイスドライバを作成して、利用する各PCへインストールする必要があります。しかし個人が趣味のレベルでデバイスドライバを開発するのはとても大変です。しかしインタラプト転送の一種であるHID (Human Interface Device)という規定に従えばドライバ開発無しにPCへの接続が可能になります。
— 電子工作専科
HID USB
  • Descriptorってなに?

    • 調査中

  • Reportってなに?

ホストとデバイス間でやりとりするデータのことをレポートと呼びます。

開発

試してみること

アイリスオーヤマの食洗機の水がこぼれない給水方法

一人暮らしをしている社会人にとって、できればしたくない家事のNo.1は食器洗いだと思います。私も食器洗いは大の苦手で、「こんなことをしている時間があったらもっと楽しいことをしたい!」と常々考えていました。

そこでついに、我が家も食洗機を導入しました。

購入したのはこちらです。

こちらは一人暮らし向けの製品となっており、サイズは比較的コンパクト、そして水道工事の不要な給水タイプの食洗機です。
また、同等スペックの他社製品よりも比較的に安く、2万円台で買えます!

さすがは現代版三種の神器と呼ばれる家電の1つです。もう皿洗いはしなくていい・・・!
あの苦痛な作業から解放された喜びはひとしおです。

ISHT-5000-Wの問題点は給水時に水がこぼれやすいこと!

ただ、このISHT-5000-Wには大きな欠点がありました。
それは、給水時に水がこぼれやすいということです。

筐体の天面に網のついた給水口があるのですが、ここに水を勢いよく注ぐと水がはねてしまい、筐体の天面がビシャビシャになってしまいます。
水がはねないようにするにはゆっくり注意して注ぐ必要がありますが、一回当たり5Lもの水を気を遣いながら注がなければならないのはなかなかストレスです。
f:id:ife2055:20210725233303j:plain せっかく皿洗いのストレスから解放されたかと思ったら、また新たな問題で面倒くささを感じてしまってはもったいないです。

水が飛び散らないようにするには「筒」を使う!

水が飛び散らないようにするには?
その答えは単純明快ですが、水が飛び散らないような壁を作ることです。
つまり、給水口の径と同じ径の筒を置けば、水はねをガードしてくれます。
こんな感じです。
f:id:ife2055:20210725234908j:plain ここに水を注いでみるとこんな感じです。

youtu.be

私はカインズホームで売っている配管用パーツを買って使っています。

www.cainz.com

もちろん筒はこれでなくても何でもいいのですが、条件として給水口の径とサイズがあっていること、ある程度の高さがあることが大事です。
具体的には、
* 外径が85mm以内
* 内径が70mm程度
* 高さが5cm以上(意外と水はねは高く飛びます)
くらいが良いです。(一度、ご自分でも給水口のサイズを測ってみると安心かと思います。)

なんなら、お試しでやってみるなら紙などで筒を作ってテープで補強したものでも使えます笑
私も最初はいくつか紙で「試作品」を作ったのですが、その中でもいい感じだったのがこれです。
f:id:ife2055:20210725235839j:plain 取り急ぎ効果を実感したい方は、これで試してみてもいいと思います!

まとめ

ISHT-5000-Wは給水タイプなので工事不要、さらに安価で一人暮らしにはおすすめの食洗機です。
ただし、給水時に水が飛び散りやすく、これが新たなストレスとなっていました。
これに対しては、給水口の径と同じ径の筒を置くことで解決することができました。
給水の水はねで困っている方はぜひ試してみてください!


Mesa Boogie Dual Rectifierをコンパクトエフェクター化!Dr. Boogieの基板をElecrowに発注

前回のDr. Boogieに関する投稿から1年近く空いてしまいましたが、なんとかやる気を出して基板設計をして、基板をElecrowに発注しました。今回はその記録です。

前回の記事はこちら。回路図はこちらで紹介しています。
ife.hatenablog.com

設計した基板

以下が設計した基板です。真面目にアナログ回路の基板を設計することってほとんどないので、エイヤでやってしまいました。ちゃんと勉強しないとな~。

ボリュームが一列にズラッと並んでしまうと基板もケースもデカくなってしまうので、メイン部分とトーンコントロール部分を分割基板にしました。
f:id:ife2055:20210418172714p:plain
面付けの方法は下記のページを参考にさせていただきました。
https://spiceman.jp/kicad-panelizing-board/spiceman.jp
blog.ashija.net

今回、メイン部分の基板とトーンコントロール部分の基板を別々に設計していたので、新しくアセンブリ基板(と名付けました)を作成し、そこに2つの基板を読み込んで異種面付け基板としました。
基板を読み込む方法は以下のとおりです。
1. 単体で Pcbnew を起動
2. 「ファイル」をクリック
3. 「基板を追加」 をクリック
4. 設計した基板を選ぶ
新しく Pcbnew を起動するというのがミソです。もしプロジェクト中の PCB レイアウトエディターを使ってしまうと「基板を追加」という操作ができません。

追加した後の基板のレイアウトも修正することができるので、分割基板の Edge.Cuts のラインを削除して図のようなミシン目を書き直しました。
Edge.Cuts のレイヤーを選択して直線・円・円弧を使って描くことができます。
f:id:ife2055:20210418172753p:plain

それから右下の基板は捨て基板です。なんとなく基板が異形になるのが嫌なのでつけてみました。

ガーバファイル出力・基板発注

過去の記事と同じ手順ですので省略します。

ガーバファイル出力はこちらの記事。
ife.hatenablog.com
基板発注はこちらの記事。
ife.hatenablog.com

基板発注の際、念のため異種面付けの数を2としました(値段が7, 8ドル上がってしまいますが…)。今回のようなミシン目で面付けする場合、Elecrow では1種としてみなしてくれるという話もネットで見たのですが、自分の感覚としては明らかに2種に見えるよなあ、、ということでくそ真面目に2種で発注してしまいました。

また、今回クレジットカードで決済しようとしましたがエラーが起きて発注がキャンセルされてしまい、PayPalで再発注をかけました。次回からは最初からPayPalを使うのが無難かもしれません。

今後の作業

まだ、下記の作業が残っています。
・電子部品の発注
・筐体設計(ケースを選んで穴を空ける位置を決める)
・組み立て(せっせとはんだ付け)
色々あります。頑張って作っていきまーす。

防水 Bluetooth スピーカー Anker Soundcore Icon Mini レビュー

防水 Bluetooth スピーカーの Anker Soundcore Icon Mini を買いました
価格は2599円とかなり安いのですが、Ankerはもはや安心感がありますね。
(私はこれとは別にAnkerの Bluetooth イヤホンも持っているのですが特に不具合もなくいい音で鳴っています。)

私の使い方

防水仕様ということでお風呂で使っています。
スマホで Hulu やラジオを再生して音声を Bluetooth スピーカーに飛ばしています。
念のためなるべく水がかからないようなところに置いていますが、濡れた手で触ったりしても全然平気そうです。

音質

この価格、この小さな筐体であまりオーディオ的な音質を求めるものではないと思いますが、スマホのスピーカーと比べたらやはりこちらの方が聞きやすいです。
スマホのスピーカーがスカスカなのに対しAnker Soundcore Icon Miniはそれなりに低音が鳴ってくれます。
音量は仕様では3Wということで、室内でしたら十分すぎるほどです。
ただ、さすがにお風呂でシャワーから水を出している時は聞こえづらいです。トーク番組なんかを再生している時はトークの内容がよく分からなかったりします。

再生時間

仕様では8時間とのことです。
再生音量にもよると思いますが私の使い方では全然問題なさそうです。
10日間ほどお風呂に入ってる時だけ使いましたが、まだ余裕がありそうでした。

その他いいところ

黒一色のデザインでシンプル。いい感じです。
Bluetooth イヤホンともデザインの調和がとれていて兄弟感があります。
f:id:ife2055:20210326214806j:plain:w300

それから、ペアリングが楽です。電源ボタンをポチッと押せば5秒くらいで立ち上がってスマホと繋がってくれます。ボタンを長押ししなくていいというのが地味に嬉しいですね。
ストラップが付いているのでバーなどから吊り下げることもできます。

不満なところ

正直ほぼ不満はないのですが、強いて挙げるならホワイトノイズが大きいことでしょうか。
結構はっきりと「サー」という音が聞こえます。この辺りは値段相応といったところかもしれません。
ただ、数秒間無音が続くとゲートが聞いて静かになりますのであまり気になることはないかもしれません。

まとめ

今回はAnker Soundcore Icon Mini を使ってみた感想を書きました。
この価格帯の Bluetooth スピーカーとしては十分用を足せる製品だと思います。特にお風呂でラジオなどの音声を聞きたいという人にはお勧めです。

Chromecastで好きな写真のスライドショーを表示させる方法

Chromecast のデフォルトの設定では待機中の画面にアートギャラリー(世界の風景などのいい感じの写真)が表示されます。
これはこれでいいのですが中にはどうせなら自分の好きな写真を表示させたいという人もいると思います。
色々調べてChromecast で好きな写真のスライドショーを表示させることができましたので、今回はその方法を解説します。

環境

今回使用したデバイスは下記の通りです。
・Chromecast第2世代
Google Pixel 4 (Android 11)

Google Chromecast チャコール

価格:5,071円
(2021/3/21 16:28時点)
感想(378件)


前準備

Google の「フォト」のアプリを使って表示させたい写真でアルバムを作ってください。
アルバムは複数作っても大丈夫です。後で表示させたいアルバムを複数選ぶことができます。

設定方法

Google の”Home”のアプリを起動してください。
Google Home アプリに連携させているChromecastのデバイスをタップします。
この画像の場合ではChromecast のデバイスリビングルームという名前をつけています。
f:id:ife2055:20210316000628j:plain:w240

この画面で背景をカスタマイズというボタンをタップします。
f:id:ife2055:20210316000700j:plain:w240

するとこちらの画面に切り替わります。
Google フォトを選択してください。
f:id:ife2055:20210316000714j:plain:w240

するとこちらの画面に切り替わります。
スライドショーで表示させたいアルバムをタップしてください。
タップして選択できたら左上の矢印で戻れば設定完了です。
f:id:ife2055:20210316001327j:plain:w240

一部の写真しか表示されない場合は

アルバムの中に似たような写真があると表示されないように自動で整理してしまうようです。 例えば私の場合はタスクを忘れないように白地にタスクを文字で書いた画像をたくさん作ってスライドショーで表示させようとしたのですが、全然表示されませんでした。
そんな時は「背景モード」の設定ページの「個人的な写真の整理の項目」で「リアルタイム共有アルバムのみ」を選んでください。私はこれで自分の作った画像も表示させることができました。
f:id:ife2055:20210316001412j:plain:w240

マッチングアプリ「with」を30代男が2ヶ月使ってみた結果

前回はマッチングアプリ with を1か月使ってみた時点での成果を報告しました。

それからさらに1ヶ月経ちましたので、 改めて2ヶ月の成果報告をしてみたいと思います。

”with”の運用方法

まずは私がどのように”with”を使っているかを話しておきます。

1人にメッセージを送る頻度は基本的に2日に1回です。
女性からメッセージが届いたら(大抵夜ですが)その翌日にはメッセージを返すようにしています。そしたらそのまた翌日に女性から返信が来るというパターンが多かったです。
レスポンス早くマメに返信するというのが好まれるという話も聞きますが、 メッセージを考えるのにもそれなりに時間を使いますので、 無理をせずに夜、手が空いている時間にまとめて返すようにしていました。

やり取りをする相手は常に3人ぐらいをキープしていました。
誰か1人やり取りが途絶えてしまったらまた別の人に新しくいいねを送って1人補充する(?)という感じです。

基本的にマッチングしたらこちらから選り好みはしないで メッセージのやり取りを続けるようにしていました。
が、 こちらからの質問に一問一答形式で答えるだけの女性とはメッセージが続けられませんでした 。(これ、申し訳ないですがかなりメンタルが消耗するので心が折れてしまいました。。)

2ヶ月の成果報告

2ヶ月間 with を使ってどのような成果が得られたか報告していきます。

いいね!を送った人数: 35人ほど
女性からいいね!がきた数: 7人
マッチングした人数: 14人
現在もメッセージが続いている相手の数: 1人
LINE交換を提案した人数: 1人 -> 成功: 0人
デートに誘った人数: 2人 -> 成功: 1人

ここで一番重要なのはデートの約束ができた人数ですね。
2ヶ月 with を使ってデートの約束ができたのは1人だけです。やっと規制が緩和されたので誘うことができました。
4月と5月はコロナ禍の真っ最中でしたので、メッセージのやり取りをしていてもなかなかデートに誘えないという事情がありました。 こんな状況でなければもう少し誘えたし、デートの約束ができたと思います。

まとめ

2ヶ月間 with を使った成果を報告しました。
自分の使用方法としてはあまりヘビーな使い方はしていなかったと思います。
毎日1人か2人からメッセージが来て、 夜に30分ほど時間を使って返信する という感じでした。
今回の結果としてはデートの約束ができたのは1人だけでしたが、コロナ禍の状況でなかったら3, 4人はデートができたんじゃないかと思います。

またデートして進展があったらレポートしてみたいと思います。