とりとめもないBLOG

ただの日記です

MAX7219 8x8ドットマトリックスLEDモジュールで時計とカレンダー

2023-05-06 00:52:22 | 工作

何気なしに購入した4連の8x8ドットマトリックスLEDモジュールなのだが、これといって使い道が思い浮かばなかったので、例によって時計にしてしまう事にした。
発想が貧困なので、他に実用性のある物が思い浮かばない。
今回も使用するマイコンはEPS8266だ。 D1 miniシリーズは小さい割にはDIPサイズでIOポートが並んでいて、電源がUSBから取れるし、プログラムの書き換えも同じUSBの口からできるので、手軽すぎてなかなか手放せない。
I2C一発だけで制御できるような工作物なら、もっと小さい基板やモジュールでもいけると思うのだけれど、結局電源周りの回路なんかを用意する必要が出てくるので、大きさ的には大差無いかなと。
なんといってもD1 miniシリーズは200円前半で購入できてしまうので、最悪壊れても財布へのダメージが小さいのが良い。

さて、昔からそうなのだが、私は日付に執着心が無いのか、今日が何月何日何曜日なのかをよく忘れてしまう。
いや、普通のサラリーマンなので曜日は雰囲気で分かるのだが、長期休みに突入したら曜日の感覚もかなり怪しくなる。
そこで日付と曜日を表示するだけのカレンダー専用機と、時計+カレンダーのごく標準的な表示の物を作る事にした。
手元にあるドットマトリックスLEDが8x8 4連の物で赤LEDが1つ、緑LEDが2つあったので、前者をカレンダー専用、後者を時計+カレンダーにする。

前回作ったLCD1602やLCD2004と違って、表示するフォントは全て自作する必要がある。というか、自作しないと自分の欲しいデザインのフォントが表示できない。
LEDのドット数の制限があるとはいえ、デザインセンス皆無な私にはフォントデザインはそれなりにハードルが高い為、いつも通りインターネット上に公開されているフォントをパクったり加工したりして利用する事にする。
フォントエディターに関しては、MD_MAX72XX Font Editorという、そのままな名前の素晴らしいサイトが存在するので、そちらを使わせて頂いた。
フォントやプログラムの参考にさせて頂いたのは、こちらのページ。 あとは日付用の小さいフォントや曜日のフォントは自作した。曜日の表記は日本人らしく漢字。1文字で済む上に、一目で何曜日か理解できるのが良い。
マトリックスLEDのキャラクター表示やスクロールに関しては、MD_MAX72xx.hや、MD_Parola.hといった、素晴らしいライブラリが存在してるので、ありがたく使わせて頂く。

まず作成したのは「時計+カレンダー」。時計をメインとしたかったので、カレンダー部分のフォントは小さめに。

折角のマトリックスLEDなのに文字が流れないのも寂しいと思ったので、30秒に1回程度の割合で、日付をスクロールさせて西暦年を表示させるようにした。ソースやフォントデータ、LEDユニットを収めるケースの3Dデータについては此方

次に作成したのは「カレンダー」。

フォントに関しては、先に作った時計部分で使用したフォントを使って大きく表示するようにした。これも日付表示だけだと寂しい気がしたので、1分毎に数秒だけ現在時刻を表示するようにしてみた。
カレンダーのソース、フォントデータ、ケースの3Dデータは此方

8x8マトリックスLEDが思っていたよりも小さかったので、作りながら視認性はどうかと心配していたが、LEDの明るさもあって想像以上に視認性は高い。

今は見慣れたという事もあって、大きすぎず小さすぎず丁度よい大きさかなぁと思っている。

参考にしたホームページ
がとらぼ
MD_MAX72XX Font Editor

 

 

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

LCD 1602あるいは2004で大きいフォントの時計を作ってみる

2023-03-31 21:00:00 | 工作

買ったまま放置状態の電子工作用の部品を活用するべく、ここ最近は時計ばかり作っているのだが、また懲りずに時計を作成した。
今回使用したのは1602とか2004と呼ばれるキャラクター液晶ディスプレイで、それぞれ横16桁×縦2桁、横20桁×縦4桁の文字が表示可能なディスプレイとなっている。
これらの液晶ディスプレイには予め文字や記号等がプリセットされているのだが、大きいフォントなどというものは存在しないので、自ら適当なキャラクターブロックを作成して、それらを組み合わせて文字を表現するしかない。 作業的にはドットマトリックスLEDで文字を書く作業に似ているかもしれない。

さて、外字登録部分にキャラクターブロックをぶち込んで、それらを組み合わせればそこそこ綺麗なフォントが表示できるんじゃないかと思って、とりあえず1602用に0~9までの数字のフォントのブロックを作りプログラムを書いたのだが、何をどうやっても最後の8ブロック分?しか文字が表示されない。
で、調べてみると1602や2004で外字を登録できるエリアは8ブロック分しか無いらしい。
だから世に出回ってる1602や2004の大きいフォントの時計はあんなにカクカクしたフォントなのかと理解できた次第。
そんなわけで、先人に倣って何とか8キャラクター追加するだけで大きいフォントを作ってみる。 といっても、インターネット上に出回っている作例のフォントデータを再利用させてもらうだけで、オリジナルの要素はほぼ無い。
各フォントブロックの作成は「LCD Custom Character Generator」というサイトで作成した。又、絵柄の確認は「ミニドット絵メーカー3」というサイトを利用させて頂いた。

最初に作ったのはLCD2004でeps8266とのデータのやり取りはI2Cで行っている。

ESP8266とLCDの間のケーブルが4本だけで済むので非常に楽だからだ。 この作品に関しては、インターネットに公開されていたプログラムをほぼそのまま使わせてもらった。 温度や湿度の表示は必要なかったので、その部分のキャラクタースクロール処理等は停止させている。 日付や曜日に関しては日本人に馴染みのある表記に変更した。
ソースはこちらに置いておく。必要ないコードも混ざっているが、とりあえず動けば良いという事で…

次にLCD1602とesp8266で作成。

こちらも2004と同様にI2Cでの接続となっている。 フォントブロックのパターンはインターネット上にあったものを参考にさせてもらった。組み合わせに関しては自分が見やすいように適当に改変している。 曜日は表示させるだけの余裕がなかった。
 
この時計のソースはこちらに置いておく。

いずれもNTPから時刻を取得して時刻補正しているだけで、7セグLED時計の時と同じくRTCは利用していないので無線LANが通じない場所では利用できない。 まぁ、月差が分単位で発生するぐらい無線LANが止まるような環境で使う事は無いので気にしない事にする。
あと、今回は複数のSSIDを設定し電波の強い方を使うようにしてみた。

 

 

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ATOMSTACK P9 M50で透明のアクリル板の加工 その2

2023-03-30 00:42:33 | 工作

前回に引き続き、スモークの透明アクリル(3mm)の切断加工を試みてみた。
擦りガラス並みに曇らせた2mmのスモークの透明アクリルは切断した実績があるのだけれど、透明の物は今回が初めてだ。
結論から書くと、普通の透明アクリルよりはマシといった程度で、カットには至らなかった。
中古の傷付アクリル板なので、保護シートが無かった為、直接レーザーを当ててカットを試みたのだが、表面側の深さ0.5mmぐらいが溶けた程度。 パラメーターは出力100%、速度は180mm/min、1パス。

そんなわけで、表面に水溶性塗料を塗布して、速度を150mm/min、2パスでカットしてみたが、多少深く掘れるものの、焦げ付きが酷くなり、カット幅も広がって、出来栄えが悪くなっただけだった。

もっと適切な方法があるのかもしれないが、今のところ厚みのある透明系アクリル板に関しては、どうやっても切れない気がする。

とりあえず、今作ってる工作物でスモークの板が必要だったので、厚み1mmのスモーク(透明)塩ビ板をカットしてみたが、これについては、いつも通り出力100%、200mm/min、1パスで切断できるので、もうコレでいいかなぁ…
ただ、塩ビ板は使ってみて思ったのだけれど、かなり傷が付きやすい。透明度を維持する必要があるような用途には使いにくいかもしれない。

 

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Cygnus-X オイル交換 ODO 36822km

2023-03-12 20:00:00 | CYGNUS-X SR

今日は春先の格好をしていると、少し汗ばむぐらいの気温で天気も良かった為、シグナスのオイル交換と洗車を行った。

オイルは前回に引き続きホンダのG2。

今回は前回よりも少し新しくなって、2015年10月31日製造の物だ。

未開封新品なので、まぁ問題にはならないだろう。
前回のオイル交換で僅かに残ったオイルと混ぜて800cc程度を注入し、オイルレベルゲージを確認するとレベルゲージにオイルがぎりぎり付着する程度だったので、とりあえず1分程アイドリングさせてから100cc程追加して、再度レベルゲージを確認すると、丁度良い感じだったので、これでオイル交換完了。

冬の間は全く洗車していなかったので、車体がいい加減汚れ放題だったから、オフロードバイクを洗うのと同じような感覚で、ブラシでガシガシ洗う。 すでに傷だらけの車体なので、今更ブラシで洗った程度で付くような微細な傷なんて気にならない。

というわけで、ある程度見れる状態になったところで作業終了。

ODO 36822km

 

 




コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ATOMSTACK P9 M50で透明のアクリル板の加工

2023-03-05 16:16:05 | 工作

ATOMSTACK P9 M50を購入した事を以前ブログに書いたところ、透明のアクリル板が切れるかという質問を頂いた。 透明のアクリル板の加工に関しては興味があったので、時間のある時にでも試してみようと思っていたのだけれど、忙しかったり天気が悪かったりでなかなかテストできず、結局質問を頂いてから20日ぐらい経過してしまった。
で、時間ができたので早速試してみたのだけれど、結論から書くと、2mmのアクリル板ですらカットできず。 パラメーター弄ったり切り方を変えれば切れるのかもしれないけれど、切れても切り口や寸法精度が微妙な感じになりそうだったので、早々に諦めてしまった。

まず、参考の為、黒のアクリル板(2mm)をカットしてみる。
アクリルのカット時は保護シートを付けたままで行うと焦げが素材に付着しにくくなるそうなので、今回は保護シートをつけたままでカット。
使用ソフト LaserGRBL
Border Speed 200mm/min
Laser Mode M3-Constant Power
S-MIN 0%
S-MAX 100%
といった感じのパラメーター設定で1パスでカットする。
レーザーが当たる表面は

こんな感じで焦げも見えず、綺麗なもの。
裏面は

焼き切った後の煤が裏面に排出されるのか、裏面の保護シートにレーザーが反射してるのか分からないけれど、表面に比べてカット痕が太いし、焦げている。
で、カット自体は特に問題なくできていて、

このような感じ。切断面はツルツルという感じではないけれど、エッジは出ているので私の用途的には問題ないと思う。
さて、透明アクリル板の加工だが、パラメーターは上と同じ。
まずは保護シート無の部分でカットを試みてみる。

まぁ、当然の結果だが、レーザーが透過してしまうので、まともにカットできない。
おそらくこの感じだと彫刻すら難しいと思われる。 中途半端に傷が入っただけな感じ。
次に保護シートがついた状態でカットを試みる。これでカットできればよかったのだが、よくわからない状態になった。
レーザーが直接当たる表面は綺麗に模様が入っているのだが、深さ的には爪が引っかかるかどうかといった程度。

これは1パスでも2パスでも同様。
裏面の様子も基本的には黒アクリルと同じだが、黒アクリルの時と違って、かなり太く彫られている。
カットした直後の裏面の様子は下の写真の右側のような感じで、

保護シートだかアクリルだかの焦げた物が溝の中に詰まっている。
で、その煤を取り除くとV溝のような形でアクリルが削れているのだが、表面までは溝が到達していない。
1パスでも2パスでも切断には至らず、2パスでカットすると溝の幅が広がるだけで、深さは1パスの時と殆ど変わらないようだ。

1パスの裏面が

2パスだと

こんな雰囲気。
なので、もしかすると敢えてレーザーのピント位置を微妙にずらして、太目のレーザーで速度を落としてやればカットできるかもしれない。
或いは表面だけ保護シートを残しておいて、裏面の保護シートを剥がして、レーザーをしっかりと透過させてやれば、綺麗にカットできるかも…今度時間があるときに試してみよう。

アクリルばっかり切っていても楽しくないので、木片に写真を印刷してみた。
何パターンか試してみたが、木目に対して斜め方向に走査させるのが一番綺麗に見える気がする。
パラメーターは
Border Speed 3000mm/min
Laser Mode M3-Constant Power
S-MIN 0%
S-MAX 30%

 

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする