鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

SD1306でグラフを描写する機能を実装しました

こちらのライブラリを改造して
github.com

無理やり感がありますがなんとかできました。

github.com
これはさすがにpullreq通る代物ではありません。

本当は、ライブラリを利用するライブラリを作りたかったけれど
元のライブラリはそもそもプログラム領域(ROM)に定義したパターンを表示というコンセプト
で作られているので、無理でした。
変数領域(RAM)を表示するようにしてなんとか表示するようにしています。
Arduinoでは貴重なRAMを消費してしまう)

f:id:kechiya:20170503101552j:plain
f:id:kechiya:20170503101539j:plain

まぁ、そんな感じですが。とりあえず完成。

使い方

domainは値の範囲を設定。
BYTE_SIZEでグラフの高さを設定します。1,2,3,4バイト。
データの長さは8の倍数で64まで設定できます。

domainという考え方はD3.jsにありましたね。
パクっております、はい。

BYTE_SIZEが4でデータが100だとつまり
32個の液晶が縦に光る感じです。

    int data[] = {
    10, 10,  20, 30, 30, 50, 60, 70,
    90, 100, 80, 95, 70, 60, 50, 40,
    10, 10,  20, 30, 30, 10, 10, 10,
    10, 10,  20, 30, 30, 10, 10, 10,
    10, 10,  20, 30, 30, 10, 10, 10,
    10, 10,  20, 30, 30, 10, 10, 10,
    10, 10,  20, 30, 30, 10, 10, 10,
    10, 10,  20, 30, 30, 10, 10, 10,
    };

    lcd.clear();
    lcd.setByteSize(BYTE_SIZE_4);
    lcd.setDomain(0,100);
    lcd.setCursor(10, 1);
    lcd.drawGraph(data, DATA_LENGTH_64);
    delay(1000);

日経平均予想Botが休日もつぶやいてしまっていました

開場日の朝だけ株価予想してつぶやいてほしいのですが
祝日にもつぶやいていました。
原因はexitではなくてsys.exit()を使うと良い感じです。

import datetime
import jholiday

today = datetime.date.today()
holiday = jholiday.holiday_name(date=today)
if holiday or today.weekday() ==6 or today.weekday() == 0:
    exit
if today.month == 1 and (today.day==1 or today.day==2):
    exit
if today.month == 12 and today.day==31:
    exit
import sys
import datetime
import jholiday

today = datetime.date.today()
holiday = jholiday.holiday_name(date=today)
if holiday or today.weekday() ==6 or today.weekday() == 0:
    sys.exit()
if today.month == 1 and (today.day==1 or today.day==2):
    sys.exit()
if today.month == 12 and today.day==31:
    sys.exit()

Arduinoもくもく会に参加しました

Arduinoファンもくもく会#006へ参加してきました。

arduinofun.connpass.com

ちょうど、LCDのグラフ化ライブラリを書こうと思っていたので
よかったです。なんといっても21cafeさんはwifiが使えるし!
おしゃれだし。飲食できるし。
前行った時と違う場所なのかな、移転したのかな。
すごくわかりやすい場所になっていました?!方向音痴の私も迷いません。

geechs-magazine.com

そんな感じで、もくもくしていました。Arduinoのライブラリ開発は
初物ですし、頭悪い私には敷居が高いC++ですし。でも
他のライブラリのソースを見ながらなんとか進めていきました。
なんとか、コンパイルエラーが出ないところまでいきました。
結局液晶表示確認まではいきませんが、めどはついてきたと思う。

後半は、ワイワイ披露会になりました。やはりハードは目に見えるので
見ていて楽しいですね。会話も弾みます。
ラジコンは、UI部品が揃っているというのがすごいですね。便利ですね。
筋肉モデルには興味を覚えました。(安価という点が二重丸。)
ソラコムさんも、こうまじかで見るとなるほどと思うし。
牛のいじめを検知する話とか聞けたり。
そんな感じで楽しいひと時でした。またお願いします。

液晶(SSD1306)が届いたので試してみた

ライブラリ

I2Cの液晶SSD1306が届きました。
使用したライブラリは、以下です。
このライブラリのMicroLCDを使いました。
何もトラブルなく、簡単に、表示までできました。
github.com

グラフ化したい

せっかくなのでグラフ化もしてみたいと思って、
ごにょごにょ調べてみたけれど。

以下のようなライブラリみたいなものを発見。
LiquidCrystal.hというヘッダを参照しているようで何か違うようだ。
LiquidCrystalという別の液晶用のライブラリもあるようだ。
いや、こちらの方がむしろスタンダードなライブラリみたいな感じです。
Arduino Playground - LCDBitmap Library

MultiLCDベースでグラフ化できないか?

LCDBitmapのグラフ機能をMultiLCDで動くようにしたいなぁ。

ASUS タブレット充電できなくなる

1年少し使った。ASUSAndroidタブレットのUSBタイプCのコネクタ部分が劣化して
充電できなくなる事象が発生。前回もNexus7で同じ症状になってしまったので
ノジマの5年保証に入っていたおかげで、無料で直してもらえました。

丁寧に使っているつもりですが、充電した状態で
ケーブルに足をかけたりして本体に負荷をかけてしまったりするので。

AliExpressでUSBタイ プCをマグネット接続に変える端子が売っていたので
買ってみた。届いたら試してみよう。

USB-TypeCをマグネット化するケーブルが届いたが・・・

ja.aliexpress.com

本体に端子を刺したが、はまり具合がゆるく。マグネットを外す時に
端子が抜けてしまうし、うまく充電がスタートしなかった。
ASUS(Zenpad)とは相性が悪かったようです。
f:id:kechiya:20170417232005j:plain