ブログだいちゃん

ブログだいちゃん

趣味のブログ

ブログだいちゃん

マキタ用 バッテリーフォルダーを作成してバッテリーを整理する

電動工具などを揃えてきた結果置き場所などが手狭になってきて、とくに取り扱いに注意したいバッテリーの置き場所がなくなってきました。

3Dプリンターでバッテリーフォルダーやツールフォルダーを作成した方が、データーを公開しておりましたので使用させて頂きました。


www.thingiverse.com


ガレージの軽量鉄骨に型枠用塗装ベニアを取付、バッテリーフォルダ4個によく使うインパクトドライバー用フォルダと充電器を取り付けました。

また、充電器の下にトレイを作成し充電器のUSB端子を使用して、以前に作成したドットマトリックス時計を設置しました。


スイッチボットのようなものを作ってみた

台風14号が通過した後めっきり涼しくなってきました、今後も何個かの台風が来るのでしょうね被害が無いよう願いたい物です。

さて、スイッチボット という製品がAmazonなどでベストセラーになっていますね、スマフォなどで電化製品の電源の入り切りや照明のスイッチを操作出来る以下のような物です。


活用範囲が広くいろいろな所に使えそうだし、機能を限定すれば自作も可能なようなので作ってみることにしました。
今回は ESP8266 に MicroPython のファームウエアをインストールして作成します。


MicroPython ファームウエアを ESP8266 にインストールし、WebServerを構築する。

uPyCraft IDE のインストール

micropythonをESP8266にインストールするにはuPyCraft IDEを使用すると簡単にできますのでインストールしておきます、この記事にインストール方法が書かれています、ファームウエアをインストールした後は 使い慣れた Thorry などでプログラミング出来ます。

randomnerdtutorials.com

ESP8266 に MicroPython ファームウエアのインストール とウエブサーバー化

ファームウエアのインストール方法と、MicroPythonを使用し ESP8266 をウエブサーバー化する方法が書かれています、これを利用して自作スイッチボットを動かします。

randomnerdtutorials.com

自作スイッチボットのプログラムコードと回路図


上記の参考サイトにプログラムコードが書かれていますので、このコードにサーボの動作部分を追加してスイッチ操作を行います。

何に使うか

このスイッチボットを使う機器を考えた結果、ファンヒーターの電源と3時間延長ボタンの操作に決めました。
寒い時期に、手の届かない場所にあるファンヒーターの操作をコタツから出て行うのは億劫ですよね、コタツの脚はしっかり掴んでいたいものです。

プログラムコード

素人が作ったプログラムですので間違いがあるかも知れません自己責任でよろしく。

boot.py
# Complete project details at https://RandomNerdTutorials.com
try:
  import usocket as socket
except:
  import socket
from machine import Pin,PWM
from utime import sleep
import network
import esp
esp.osdebug(None)
import gc
gc.collect()
ssid = 'My_SSID'
password = 'My_Password'
station = network.WLAN(network.STA_IF)
station.active(True)
station.connect(ssid, password)
while station.isconnected() == False:
  pass
print('Connection successful')
print(station.ifconfig())
led = Pin(2, Pin.OUT)
sg90 = PWM(Pin(0))
sg90.freq(50)
# サーボの角度は適宜調整する 
kakudo_0 = 65  # kakudo_0:サーボ水平位置
on_off = 90 
extension = 40
sg90.duty(kakudo_0)
main.py
# Complete project details at https://RandomNerdTutorials.com
def web_page():
  if led.value() == 1:
    gpio_state="ON_OFF"
  else:
    gpio_state="+3H"
  html = """<html><head> <title>ESP Web Server</title> <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" href="data:,"> <style>html{font-family: Helvetica; display:inline-block; margin: 0px auto; text-align: center;}
  h1{color: #0F3376; padding: 2vh;}p{font-size: 1.5rem;}.button{display: inline-block; background-color: #e7bd3b; border: none; 
  border-radius: 4px; color: white; padding: 16px 40px; text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}
  .button2{background-color: #4286f4;}</style></head><body> <h1>ESP Web Server</h1> 
  <p>GPIO state: <strong>""" + gpio_state + """</strong></p><p><a href="/?led=on"><button class="button">ON_Off</button></a></p>
  <p><a href="/?led=off"><button class="button button2">3H_Extension</button></a></p></body></html>"""
  return html
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('', 80))
s.listen(5)
while True:  
  conn, addr = s.accept()
  print('Got a connection from %s' % str(addr))
  request = conn.recv(1024)
  request = str(request)
  print('Content = %s' % request)
  led_on = request.find('/?led=on')
  led_off = request.find('/?led=off')
  if led_on == 6:
    print('LED ON')
    led.value(0)   # WemosD1 Mini はLowで点灯 
    sg90.duty(on_off)
    sleep(.7)
    sg90.duty(kakudo_0)
  if led_off == 6:
    print('LED OFF')
    led.value(1)
    sg90.duty(extension)
    sleep(.7)
    sg90.duty(kakudo_0)
  response = web_page()
  conn.send('HTTP/1.1 200 OK\n')
  conn.send('Content-Type: text/html\n')
  conn.send('Connection: close\n\n')
  conn.sendall(response)
  conn.close()



回路図

回路図の電池は18650の直列ですが 18350の並列接続です、電源表示用LEDは直径3mmを使用しています。


作成


ケースは3Dプリンターで作成しました、大きさは 70×60×40 mm 電池の大きさがネックですね、リチウムポリマー電池を使用すると小型化できそうです。

出来上がったスイッチボットのようなものです、ファンヒーターにはベルクロで貼り付けました。


動作動画


動作確認しました、サーボの動作量の微調整はまだ必要ですが一応操作は出来ています。

ファンヒーターを使用するには時期尚早ですが自作スイッチボットが活躍しそうです。v(*^_^*)v



www.youtube.com

丸形1.28インチLCDを使用してスマートウォッチもどきを作ってみた

YouTubeに丸形LCDを使用した動画が幾つかある中に、スマートウォッチを表示させている物があり面白そうなので作ってみることにします。

LCDモジュールは以下のようなIPSカラーディスプレーです、1.28インチ240 x 240の解像度、RGB 65Kカラー、GC9A01ドライバーチップを使用し、SPIインターフェースです。


 

参考動画


この動画を参考にスマートウォッチを作成します、またこれを参考に作成された方のブログもありましたので載せておきます。


www.youtube.com


www.whatimade.today


仮組み及び設定


配線し表示するか試します、うまく表示できたらケースを作成し腕時計では無く置き時計にしたいと思います。

RTCに時刻設定

RTClibライブラリの中のスケッチ例 [ds3231] を起動して現在時刻を設定します。
Arduino UNO で行いました。

 

ESP32に各パーツを配線

各パーツをジャンパー線で借り配線しました、参考動画及びブログを参照。

 

TFT_eSPIライブラリーの設定変更

User_Setup_Select.h ファイルの設定、画像のように2箇所コメントアウトとコメント削除します。


Setup200_GC9A01.h ファイルの設定、ESP32のPin配置により変更します BLK(バックライト)はMISOになります。


動画


www.youtube.com


動作が確認出来たのでケースの作成に掛かります、ケースはWatch Stand 風にして腕時計が掛けてあるような感じにしたいと思います。


GitHub へのリンク

GitHub - VolosR-watchESP

github.com

RTClib

github.com


ケースに組み込み完成



パーツテスターを作成してみました

あると何かと便利なパーツテスターは購入しても高価な物ではありませんが 、YouTubeに作成された方の動画がアップされていましたので参考にして作成してみたいと思います。
 

 

参考動画


この動画を参考にしました、プログラム・回路図などへのリンクがあります。


www.youtube.com


ケースの作成


手頃なケースが無かったので3Dプリンターで作成しました。

※ケースのSTLファイルが必要な方はコメントでお知らせ下さい。


パーツを仮置きしてみました、ケースの大きさは 100×60×50mm 位です。



配線・組立


各モジュールはユニバーサル基板に両面テープで貼り付けました、680Ω・470KΩ の抵抗は誤差の少ない物を使用します。
充電用 Micro USB はブレイクアウト用メスを使用しケースに取り付けました。
充電表示用LEDは充電モジュールのLED箇所から取り出しました。
※回路図にはありませんが、NANOのピン A3と5Vの間に10KΩの抵抗を入れないとA3が(High)にならないので動作が不安定になります。


ピンヘッダーは2種類使用しています、ユニバーサル基板は裏蓋に両面テープで貼り付けます。
3.7Vのリポバッテリーは空きスペースに両面テープで貼り付けます。
昇圧モジュールで出力電圧を9Vに設定します。
裏蓋取付用にインサートナットを埋め込みました。


充電中は赤色LEDが点灯し、満充電で消灯します。




動作確認


電源を入れた初期画面です。


抵抗器を測定しました 264.1Ωと表示されました、正確なのか手持ちのテスターで確認しました .264KΩ です、問題ないレベルですね。


電解コンデンサー(100μF)を測定しました、これも問題ないレベルです。


LEDとトランジスターの極性を調べました。


問題なく使用できそうなので活用していきます。


追記 Ver.1.13 にヴァージョンアップしました


Arduino PROJECT HUB に新しいヴァージョンがありましたので導入しました。
配線などの変更はありません、プログラムの一部変更だけでOKです。


Arduino PROJECT HUB

create.arduino.cc


プログラムをダウンロードし以下を設定して書き込みます。

変更するのは Makefile.h のみです。


Arduino NANO を使用していますので、以下のように変更します。


I2C モジュールを使用しますので、以下のように変更します。


以上で機能アップされたパーツテスターを使用できます。

テトリス時計を作成してみました

YouTube動画にフルカラードットマトリックスを使用したテトリス時計がアップされていて面白そうなので作ってみることにしました。

テトリス時計の動画


www.youtube.com
 

 

回路図


Githubに記載されている回路図の中の「汎用ESP32」を使用します。

https://camo.githubusercontent.com/32ce8e61794f87bdf4ba957db44451c83d5f5fd317cc22ffbce42c21a5097ac0/68747470733a2f2f692e696d6775722e636f6d2f30464231316d652e706e67


P4フルカラードットマトリックスは、コネクターの右側上から4番目のピンは回路図上は[E]ですが[GND]です。
従ってESP32_GPIO15からの配線は必要ありません。


基板作成、取付


フルカラードットマトリックスのDataINコネクターに直接取り付けるようにし、DataOUT側への配線は付属のリボンケーブルを使用します。


・ユニバーサル基板にピンヘッダーを取付配線します。


・ESP32を取り付けた基板をドットマトリックスのコネクターに差し、フラットケーブルでDataOUTと繋ぎます。



プログラムの書き込み


・プログラムへのリンク

github.com


・ライブラリーへのリンク

github.com


必要なライブラリーを入れIDEでESP32に書き込みますがその前にプログラムの変更箇所を設定します。

自宅のWiFiに接続するためID・Passを設定します。


タイムゾーンの変更


プログラムは TinyPICO 用に書かれていますので ESP32 用に変更する部分があります。


・Wiring 箇所で80・81行をコメントアウト、83行を生かす コメント削除


・91行を生かす コメント削除、92行をコメントアウト


218行をコメントアウトし、219行を生かす コメント削除



動作確認


ケースに組み込む前に動作確認しました。

電流値は 0.3A 位ですので電源は1Aもあれば大丈夫そうです。


www.youtube.com


ケースを作成、組込


・ケース作成

ちょっと大袈裟に作りすぎたかも(^_^;、印刷に時間が掛かりました。

※ ケースのSTLファイルが必要な方はメールかコメントでお知らせ下さい。


フォトフレームなどが利用できそうです。


・ケースに組み込み
ポリカのハーフミラーを266×138mmに切断しフロントパネルにはめ込みます。

ケースにDCジャックと電源スイッチを取付配線します。

フルカラードットマトリックスをケース裏側から3mmのネジで固定しますがネジが無くてもガタがないので必要ないかも。

フロントパネルとケースを3×10mmのネジで固定して完成です。
※フロントパネルには3mmのインサートナットを6箇所埋め込みました。


ドットマトリックスLEDを使用したアラームクロックの作成 Ver2

8×32ドットマトリックスLEDを使用したアラームクロックが作成してから2年近く経過し、本家でアップグレードしていたので再度作成してみました。

以前作成したアラームクロック

blogdaichan.hatenablog.com
 

 

使用パーツ


ドットマトリックスLED 今回は手持ちの青色LEDを使用しました。


Wemos D1 Mini 、D1 Mini ESP32を使用予定ですが手元に届かないのでとりあえずこれを使用します。


モーションセンサー 


フォトレジスター(CDS


ロータリーエンコーダー


DCジャック


ブザー


抵抗器 1KΩ


アラームクロックの仕様


アップグレードされいろんな機能が追加されていますが、今回はガレージに置くのでフォトレジスターとモーションセンサーを取付、LEDの明るさのコントロールと、人がいないときはスリープモードに入りLEDを消灯するようにします。


ケースの作成

前に作成したケースは使えないので新しく設計し、全面にセンサー類を配置上面にロータリーエンコーダーを配置しました。
ブザーが手元に無かったので圧電スピーカーを取り付けました、バックプレートの大きな穴が取り付け箇所です。

f:id:blogdaichan:20220405090935j:plainf:id:blogdaichan:20220405090932j:plain

ケースSTLファイル


配線組込


 回路図、プログラムなどは以下をご覧下さい。

www.hackster.io

プログラムの変更箇所は、タイムゾーンの設定くらいです。

f:id:blogdaichan:20220406171717j:plain


ケース内部の様子

圧電スピーカーの右側のもジュールは3Wステレオアンプです、ブザー音が小さかったので付けてみました。


完成した外観

f:id:blogdaichan:20220406172121j:plainf:id:blogdaichan:20220406172119j:plain


動作確認


バージョンアップしても基本的な操作は変わらないようです。

・スマフォなどで192.168.4.1に接続して自宅のWiFiのID/Passを設定します。

・Webインターフェイスからタイムゾーンを9にし、日本は夏時間がないのでDSTmodeをoffに設定します。

・日本国内のNTPサーバーアドレスに変更する場合は ntp.nict.jp を入れておきます。

f:id:blogdaichan:20220408070828j:plain


表示させてみました

f:id:blogdaichan:20220406172127j:plainf:id:blogdaichan:20220406172124j:plain

ダイソーの密封容器でフィラメントドライボックスを作成

密封容器を使用したドライボックスはYouTubeなどで多く見かけますね、ダイソウの密封容器は安価でたとえ失敗しても諦めがつきますので丁度良い大きさのこの密封容器を使用してドライボックスを作成し、フィラメントの防湿を図りたいと思います。
エクストルーダーのステッピングモーターは小型で非力なので、なるべく負荷が掛からないようベアリングを使用して作成します。
  

  

材料


密封容器

www.daisonet.com


ベアリング 内径8mm×外径22mm×幅7mm


リニアシャフト 8mm×250mm 2本(ケースを4個作成する)


デジタル温度湿度計


テフロンチューブ 外径4mm×内径3mm


プッシュフィッティングコネクタ 4mmチューブ用 PC4-M10


M3 ネジ ナット など


ワッシャ (外径14mm、内径8mm)

 

3Dプリンターで作成するもの


以前YouTube動画を参考に作成したドライボックスがあり、密封容器に取付用穴が開けてありますのでこの穴に合うように作成します。

必要なパーツはシャフト固定用のプレート2枚とローラー部分の合計3個と、前に作成した温度湿度計フォルダー及び脚。

f:id:blogdaichan:20220403180031j:plainf:id:blogdaichan:20220404095103j:plainf:id:blogdaichan:20220404095115j:plain

STLファイルDownload
 

リニアシャフトの加工


8mm×250mmのリニアシャフトを102mmの長さにカットします、このシャフトは2本入りのセットなので4本分とれます。

f:id:blogdaichan:20220404115438j:plainf:id:blogdaichan:20220404115441j:plainf:id:blogdaichan:20220404115424j:plain

 

組み立て


密封容器の底と蓋側にシャフト差し込み用のパーツを3mm×8mmのネジで取り付けます。

f:id:blogdaichan:20220404115433j:plain


適当な位置に湿度計とプッシュフィッティングコネクタ 用の穴を開け取り付けます。

f:id:blogdaichan:20220404121257j:plainf:id:blogdaichan:20220404115426j:plain

 

完成


ベアリング仕様にしたので動きがスムーズになりエクストルーダーモーターの空回りなどの印刷トラブルが無くなりました。

f:id:blogdaichan:20220404115433j:plainf:id:blogdaichan:20220404115436j:plain