ブログだいちゃん

ブログだいちゃん

趣味のブログ

ブログだいちゃん

MiniWebRadioV2 を作成してケースに組み込む

前の記事で MiniWebRadioV2 をブレッドボード上に組込み問題なく動いたので、基板上に作成してケースに組み込みたいと思います。

前の記事

blogdaichan.hatenablog.com
 


 

使用パーツ

 
前の記事で紹介したパーツ以外の物を上げておきます

インサートナット挿入用小手先

ハンダごての小手先で挿入ーしてましたがこれがあれば間単に挿入できそうです、使用しているハンダごてが白光のFX600なので合います。

 

ユニバーサル基板 72×95mm 秋月電子

akizukidenshi.com

その他 3mmLED LED用2kΩ抵抗 配線用ワイヤー 両面テープ など

ほかにプラスチックネジがあればニッパで切って長さ調整が間単に出来るので便利です。
 

ケース作成

 
ケースの大きさは 横230×縦100×奥行き80mm PLA使用 インフル20% で作成しました。
奥行きがありますが、いずれバッテリーを搭載してポータブルタイプにするためです。

STLファイルが必要な方はDownloadして下さい。
 

基板に作成・組込

 
ユニバーサル基板にパーツを配置し配線しました、ケース内からのケーブルは作業性を考慮してピンヘッダーを使用しました。

基板右下の小さなモジュールは降圧モジュールです、使用してませんがいずれ3S_11.1V のバッテリーを降圧して5V にします。
 

完成しました

ケースの色についてはセンスの無さを感じますが勘弁して下さい。
タッチパネルやリモコンで音量調整は出来ますが、ボリューム摘まみの方が操作しやすいですね、右が電源表示用LED 左がリモコン用赤外線受信モジュールです。

※ 操作方法やタブレットなどでの設定は前とほとんど変わりません、過去記事をご覧下さい。
 

MiniWebRadio V2 をブレッドボード上に作成してみました

かれこれ5年ほど前になりますが MiniWebRadio を作成しました。

blogdaichan.hatenablog.com

現在も使用していますが、ブラウザでの設定がもたつくので直接SDカードに書き込みして局の編集などをしていました。
久しぶりに作者のGitHubにお邪魔したところバージョンアップしてV2になっていたので、ブレッドボード上に作成し動作確認をしてみます。

書き込みには VS Code を使用するようです、 VS Code は使ったことがありませんが手順通り行えばなんとかなるでしょう。

 

 

使用パーツ

 

ESP32-WROVER または ESP32 S3

PSRAMが使えるものでないと動作保証されていないようですが、とりあえず手持ちのESP-WROOM32 Sで試してみます

 

2.8"インチ TFT液晶ディスプレイ タッチパネル、3.5インチも使えるようです

 

SDカードアダプター

8GBのmicroSDと変換アダプターは手持ちの物を使用しました

 

IR受信モジュール

リモコンを使用しないなら必要ありません、これも手持ちにありましたので付けてみました

 

リモコン 赤外線受信モジュール付きです

以前リモコンカーに使用した似たようなリモコンがありますので使用しました。

 

その他 ブレッドボード 配線用ワイヤー 10KΩ 抵抗 など

 

参考記事

 

MiniWebRadioのGitHub

github.com
 

ESP32 Internet Radio, MP3 Player, and Alarm Clock

www.hackster.io
 

プログラムの書込準備

 

VS Code と Git のインストール

Microsoft の以下からダウンロード出来ます。

code.visualstudio.com

Git をダウンロードしてインストールします。

gitforwindows.org

最初この Git をインストールしなかったので Clone Git Project の所でロードできなくて躓きました。

他はダウンロードしたファイルの中の additional_info フォルダーにある How to install.pdf の通りに設定しました。
 

プログラムの設定と書込

 
自分使用の場合、タイムゾーン WiFiのID/Pass などを設定しておくと良いです。

rtime.cpp の設定

258行目を日本のNTPに変更しました char sbuf[20]="ntp.nict.jp";

rtime.h の設定

27行目を日本のタイムゾーンに変更 boolean begin(String TimeZone="Asia/Tokyo");

main.cpp の設定

130行目を日本のタイムゾーンに変更 String _TZName = "Asia/Tokyo";
131行目を変更           String _TZString = "JST-9";   

common.h の設定

7行目で自宅WiFiSSIDを設定
8行目で自宅WiFiのPassWordを設定します。
その他 使用するモジュールの設定をコメントを参考に設定します。

私の場合 9~14行目までは以下の通り設定しました。
#define DECODER       0     // (0)VS1053 , (1)MAX98357A PCM5102A CS4344... (2)AC101, (3)ES8388, (4)WM8978
#define TFT_CONTROLLER   0    // (0)ILI9341, (1)HX8347D, (2)ILI9486a, (3)ILI9486b, (4)ILI9488, (5)ST7796, (6)ST7796RPI
#define DISPLAY_INVERSION  0   // (0) off (1) on
#define TFT_ROTATION    3     // 1 or 3 (landscape)
#define TFT_FREQUENCY 40000000   // 80000000, 40000000, 27000000, 20000000, 10000000
#define TP_VERSION     0     // (0)ILI9341, (1)ILI9341RPI, (2)HX8347D, (3)ILI9486, (4)ILI9488, (5)ST7796, (3)ST7796RPI

以上を設定して ESP-WROOM32-S に書き込みました。
 

回路図

 
回路図は additional_info フォルダーにあります、分かりやすい回路図は ESP32 Internet Radio, MP3 Player, and Alarm Clock の記事内にあります。

回路図と液晶ディスプレイの画像です。※ additional_info フォルダーからの転載

 
こちらは分かりやすい回路図です。※ ESP32 Internet Radio, MP3 Player, and Alarm Clock からの転載

※ 最初の回路図には10KΩ の抵抗がありません、分かりやすい回路図では赤外線受信モジュールがありません。
※ 分かりやすい回路図ではSDカード変換アダプターの電源3.3Vが5Vに接続されていますので間違です3.3Vに接続します。
※ 液晶ディスプレイに付いているDSカードアダプターや、SDカードアダプターモジュールを使用すると動作しません。
※ SDカードに直接ハンダ付けすることも出来ますが、カードアダプターを使用する事をお勧めします。
 

動作確認

 
ESP-WROOM32-S でも動作はします、しかし画像の表示にもたつきがあり、下部に表示される操作アイコンが表示されないときがあります。
PSRAM搭載のESP32 は持っていないので試しておりませんが ESP32-WROVER-E を手に入れたらこの辺が改善されるのか試してみたいと思います。

ブレッドボード上の配線画像

 

11月27日 追記

 

ESP32-WROVER-E(FLASHメモリ8M PSRAM8M)を使用してみました

akizukidenshi.com

ESP32-WROVER-E を手に入れたので早速組み直してみました、画像表示のもたつきも無くなりブラウザでの設定も問題なく出来ます。

前よりちょっと大きめ50mmのスピーカー用ケースを作成して再度 WebRadio を作ってみます。
 

 

サイクロン集塵機の別バージョン作成

もうかれこれ9年くらい前になりますが、サイクロン集塵機を小型のパイロンを使用して作成しました。

blogdaichan.hatenablog.com

切削時に活躍していましたが、年数の経過とともにパイロンの表面がベトベトして劣化が始まりました。
最近は、サイクロン集塵機用のパーツが安価に入手出来ますので作り直すことにします。
 

使用パーツ

 

小型のサイクロン

直径80mmくらいで、以前使用した瓶に入りコンパクトになります。

ホース継手と瓶の蓋

サイクロン側とホースの径が違うので3Dプリンターで作成、継ぎ手はPLA樹脂、瓶の蓋はTPU樹脂で作成しました。
小型掃除機の吸い込み口が丸形ではなく特殊な形状なのでこの継ぎ手も作成。

 

瓶の蓋

前の集塵機に使用した瓶の蓋は穴の径が違い使用出来ないので作成し直します。
使用している瓶は梅酒などを入れるための物で蓋の内側に注ぎ口の着いたビニール製の蓋が付いています、この蓋を参考にTPUフィラメントを使用して作成しました。
サイクロン取付用の穴はサイクロンの直径より1mm短くしました、ネジなどで固定しなくても空気漏れは無いようです。


 

完成した外観

 
Shapeoko2 に取り付けて使用するので、切削クズを吸い込むには適した大きさです。
ホースと継ぎ手の接続部には空気漏れ防止のためホットボンドを使用しました。

MAX30102を使用した 簡易的なパルスオキシメーターの作成

新型コロナウイルスもようやく5類になり制限が緩和されましたが、ワクチンの効果が100%ではないため、感染や重症化のリスクが残ることも考慮しなければなりません。
変異株の中には、より感染力が高いものや免疫回避性を持つものが存在し、これらの変異株が蔓延することで感染拡大が加速する可能性もあります。

個々で予防対策を行い感染予防に努めたいですね、そこで予防対策の一つとして簡易パルスオキシメーターを作ってみたいとおもいます。

 

参考記事(Github

 
github.com


ケース作成

 
3Dプリンターで作成しました、STLファイルが必要な方はダウンロード]して下さい。

 

回路図

 
Github にある回路図に充電モジュールを追加したものです、リポ電池は600mAを使用しました。

 

パーツ組込作成

 

プログラムコードなどはGithubにあります。

有機EL・心拍センサー・スイッチ類・LEDなどはホットボンドでパネルに固定しました。
リポ電池はユニバーサル基板の下に入れました。

 

リポ電池の充電

1セルリポ電池は充電モジュールから充電出来るようにしてあります、充電表示用LEDの電源は充電モジュールから取りました。


 

測定中の画像です

 

Raspberry Pi Pico W を使用してウエザーステーションを作ってみた

以前Blynkを使用した外気温測定装置を作成しましたが、2023年1月からBlynkの無料バージョンが使えなくなりました。

過去記事
blogdaichan.hatenablog.com


最近購入した Raspberry Pi Pico W でウエザーステーションを作成しWiFiでPCに表示しようと参考になる記事を探していたところ、最適な記事を見つけましたので丸パクリで作成してみます。

 

 

使用材料

 

その他 ユニバーサル基板・ピンヘッダー・配線用ワイヤーなど

 

参考記事

 
プログラム内容が順を追って詳しく書かれた記事で、ソースコードもあり作成する上で参考になりました。

回路図も記載されています。

www.donskytech.com

 

ウエザーステーションの作成

 

配 線

ユニバーサル基板にパーツを配置し4本の線で配線するだけで簡単です、電源はマイクロUSBからではなく直接ハンダ付けしました。


 

ケース作成・組込

雨で基板が濡れないよう傘のようなケースを3Dプリンターで作成しました。


動作確認

  
凍結防止ヒーター用の屋外コンセントから電源を取り、軒下に設置して、PCのブラウザで表示しました。

 
表示される高度(標高)は気圧によって変化するのであてになりませんが、自分の居住地の標高が分かっていれば高度がその値になったとき海抜0mが丁度1気圧(1013.25hPa)になります。

・気圧:標高500mまでは100mにつき平均11.6hPa下がるそうです。
・気温:海抜0mの気温=現在地の気温+0.0065×現在地の標高

※測定したデーターから計算すると

海抜0mの気圧:955hPa+(500m×11.6hPa)/100m=1013hPa  (約1気圧)
海抜0mの気温:19.5℃+0.0065×500m=22.75℃

WemosD1R32+CNCshieldを使用し自作レーザーカッターをWiFiで接続する

Arduino UNO+CNCシールドでレーザーカッターを作成しましたが、やはりWiFi接続してLightburnで操作したい思いがあります。

Wemos D1 R32 はArduino UNO と形状が同じでESP Wroom32 を載せたボードです、したがってCNCシールドがそのまま載せられます。

また、ESP32は32BitでArduinoUNOの8Bitに比べ処理速度が早くなるなどメリットもありそうです。

ほとんど加工せずに使用できますのでこれを使用してレーザーカッターがうまく動作するのか検証します。
 

 

使用パーツ

Wemos D1 R32

パチ物です 安価ですが使えます

[asin:B09CNVK1WT:detail]
 

ロジックレベル変換モジュール

PWM出力をレーザーモジュールに合わせるのに必要。

 

 

使用するソフトウエア

 

ESP32用 CNC farmware FluidNC

github.com

FluidNC ウィキ

wiki.fluidnc.com

Tibbo 仮想シリアルポート

WiFiでLightburnを使うために必要

tibbo.com

設定記事

LightburnとWiFi で接続する手順が書かれています。

lasercutting.avataar120.com

 

参考記事

Wemos D1 R32+CNCshield 使用の参考になります。

onstep.groups.io


CNC shield の加工

 

10KΩの抵抗を切除する

Wemos D1 R32 を使用するので画像のようにCNC shield の10KΩ抵抗を切除します。


 


ロジックレベル変換モジュールを使用した回路図


Wemos D1 R32からのPWM出力が3.3VでレーザーモジュールのPWM入力が5Vなので電圧レベルを合わせるために使用します。
3.3Vのままで使用するとレーザーパワーが100%まで上がりません。

PWM入力が3.3Vのレーザーモジュールであれば不要です。


モジュールの組込

 

ロジックレベル変換モジュールの取付

ロジックレベル変換モジュールは使用していないドライバーのピンヘッダーに両面テープで固定し配線しました。
3.3V・5V・GNDはCNCshieldの対応したピンから配線します、CNCshieldのPWMはAbortピンから取ります。

 

エアーアシストの信号ピンはGPIO15から取ります。

エアーアシストの信号は、Wemos D1 R32 ではGPIO15からとります。


ソフトウエアのインストール

 

FluidNCのインストール

FluidNCのGithubに行き右側の丸で囲った箇所をクリックしてダウンロード画面に行き矢印のファイルをダウンロードします。

 
ダウンロードしたfluidnc-v3.6.8-win64.zipを解凍し、出来たファイルの中のバッチファイルを起動しインストールします。

 ・Wemos D1 R32 をPCにUSBケーブルで接続する。

 ・erase.bat をダブルクリックする。

 ・install-wifi.bat をダブルクリックする。

 ・install-fs.bat をダブルクリックする。

以上でインストールが完了する、詳しくは HOWTO-INSTALL.txt に記載されているので自分の環境に合わせてインストールする。
 

FluidNCの設定

 

自宅のネットワークに接続する

無線LANが使用出来るPCまたはスマフォでネットワークを検索すると Fluidnc が見つかるのでPass:12345678 で接続すると画像のような画面が表示される。


上部のFluidNCタブをクリックし、赤枠部分に自宅WiFiの ID Pass を入力しSetボタンを押す。

以上で自宅ネットワークに接続できる、再起動して http://fluidnc.local/ にアクセスすると初期画面が表示される。

yaml ファイルのアップロード

Yaml 形式のコンフィグファイルをアップロードして自作レーザーカッターが正常に動作するよう設定する。

FluidNCタブにある赤枠で囲った緑のボタンをクリックするとアップロード画面になる。
ブルーの Upload files ボタンを押しYamlファイルを指定してアップロードする。

R32_CNC_shield.yaml がアップロードされたファイル。
 

 
Yamlファイルの概要及びサンプルは以下にあります、ちなみに私のレーザーカッター(CoreXY)の設定ファイルです。

wiki.fluidnc.com


Lightburn でLaser cutter にWiFiで接続する

 

仮想シリアルポートの設定

Tibboホームページから Device Server Toolkit (TDST)をダウンロードしインストールする。

Tibbo VSPマネージャを起動し右下のElevateボタンをクリック、表示された画面の右上のAddボタンをクリックし設定します。

COMポートは使われていないポートを指定し他は画像のように設定する。


 
次に右端のタブをクリックしボーレートを115200に設定しOKをクリックして終了。


 

LightburnとWiFiで接続

Lightburnを立ち上げ、ディバイス設定画面で「DTR信号を有効にする」がONになっているか確認する。


 
仮想COMポートこの場合COM2 を設定するとLightburnでWiFi接続できる。


 
以上でレーザーカッターの32Bit化と、LightburnからWiFi接続出来るようになりました。


Lightburn のカット/レイヤにあるエアーアシストボタンの活用について

自作のレーザーカッターを作成してすぐに Lightburn の試用版を使っていましたが、LaserGRBLに比べて断然使いやすいので 即購入しました。

Lightburn のカット/レイヤ ウインドウにあるエアーアシストのボタンはディフォルトでON(グリーン)になっています、これをOFFにしてもONにしても何の変化もありません。

エアーアシスト装置を自作して使用してみて、効果が出ているので活用していこうと思っているところ、このエアーアシストボタンがどんな働きをするのか気になり調べてみました。


 
 

 

エアーアシストボタンのON・OFFでGcode に変化があるのか


エアーアシストボタンONが左側 OFFが右側です。

左の8行目 M8 がエアーアシストのトリガーONで M9 がOFFのようです、左側のGcodeの最後にも M9 が入っています。

つまり、M8 でポンプを ON にし、M9 で OFF にする設定がコードに入っていました。


 
Lightburn のディバイス設定の基本設定タブに、 M7 にするか M8 にするかの設定項目があります。


使用している GRBL でどの様に設定するのか


自作したレーザーカッターは GRBL で動作させています、M8 M9 信号をどう設定してやれば良いのでしょうか。
答えは Lightburn のフォーラムにありました。

forum.lightburnsoftware.com


フォーラムによれば、すでに GRBL の cpu_map.h にディフォルトで設定されています、104行目を見ると Auduino UNO の A3 に出力されているようです。


Lightburnでエアーアシスト装置を制御する


ここまで分かれば後はエアーポンプを ON・OFF させる装置を作るだけです、ポンプは100Vで動いているのでリレーで制御します、コンプレッサーの場合はソレノイド(電磁弁)を使用できますね。
 

制御装置のパーツ

リレーモジュール 5V仕様1チャンネル、このリレーいろいろ使えて便利です。

 

その他

3ピンコネクター・サーボケーブル・AC電源プラグ オス・メス・電源コードなど
 

回路図

Arduino UNO に CNCシールド を使用していますので、CNCシールドの該当するピンに直接ハンダ付けしました。
赤:5V 黒:GND 黄:A3 に配線します。


 

リレーモジュールのケースを作成

リレーモジュールにはAC100Vが来ていて触ると危ないのでケースに入れます。


配線・組込

 

ポンプ制御装置 (大袈裟)

リレー端子にはAC100Vの片側を切断し配線します。

 

CNCシールド側の配線

白丸で囲った所に配線します


 

設 置

設置して動作させてみました、左側がポンプ右側はDC12V5Aのレーザーカッター用電源です、DC電源に載せてあるリレーモジュールが動作すると赤いLEDが点灯します。

 

動作動画です


www.youtube.com