Arduino

2020年5月31日 (日)

Wio TerminalでSpriteのお勉強

つづきです。

やっぱりBMPファイルだけではなく、小さいキャラクタを自由に動かしたいわけで、

Sprite機能を勉強中です。。

とりあえず手っ取り早くサンプルプログラムを動かしてみます。

Img_7214_20200531215301

で、まずはこの画像解析のために作ったのがこれ。

Img_7246

種類は2種類に減らしましたが自分の作った絵が動くのは楽しいものです。。

一応駿遠線バージョンです (^^;

 

 

| | コメント (0)

2020年5月30日 (土)

Wio TerminalでBMPファイル表示

挫折していたBMPファイルの表示ですが、

dwarfさんに教えてもらいました。

大感謝です。


私が1週間悩んでいたのがあっという間に解決 (^^;

#include <Seeed_FS.h>
#include <SD/Seeed_SD.h>
#include <LovyanGFX.hpp>

static LGFX lcd;
static SDFileSystemClass sdfs;

void setup(void)
{

  SD.begin(SDCARD_SS_PIN, SDCARD_SPI);

  lcd.init();
  lcd.setRotation(1);
  lcd.setBrightness(255);
  lcd.setColorDepth(24);
  lcd.clear(0xFFFF);          //背景白

  lcd.drawBmpFile(sdfs, "test1.bmp", 0, 0); //ファイル名はSD内の物
}

void loop(void)
{
  //とりあえず2枚の画像をぐるぐる
  lcd.drawBmpFile(sdfs, "test1.bmp", 0, 0);
  delay(1000);
  lcd.drawBmpFile(sdfs, "test2.bmp", 0, 0);
  delay(1000);
}

たったこれだけで出せるとは。。

 

画像ファイルはSDの中に320X240サイズで保管しておきます。

Windows10のペイントでリサイズしてBMP形式で保存するだけ。

LovyanGFXはすごいですね!

 

次は文字とspriteのお勉強です。。。


ついしん

アルファベットと数字は簡単でした (^^;

 

 

| | コメント (0)

2020年5月24日 (日)

Wio Terminalに逃避

ArduinoはI2Cまではうまくいきましたが、

画像表示と組み合わせると・・・

Img_7209

いまいち画像が出ません。。

で、行き詰まったので気分転換に。。。

Wio Terminalに手を出しました (^^;

Arudinoみたいに開発できるのと、

画面一体なら少しは楽だろうと・・・

Img_7211

購入状態では変なサンプルゲームが入っていました。


で、グラフィックを色々テストしてみて、

Img_7212

おお!ちゃんと出る。これならなんとかなるか?

この勢いでimageも!

と思ったらそう簡単にはいきませんでした。。

Pythonはでてくるわ、ヘッダファイルが良くわからないわで。。


と、ちょっと閉塞中・・・

また手作業に戻りそうな予感です (^^;

 

追伸

別のライブラリで少し前進。

Img_7214

なかなか表示速度が速いです!

https://github.com/lovyan03/LovyanGFX/tree/master/examples より。

メーター表示のデモとかも早いです。

Img_7216

時計のデモも解像度こそ仕方ないにしても秒針の動きは滑らか。。

Img_7217

ベンチマークとかも。

Img_7215

使いこなせたら面白いんでしょうね。。

 

| | コメント (4)

2020年5月22日 (金)

I2Cのお勉強 その2

I2C実験が出来たので、本番環境に組み込んでみました。

Img_7196ぐちゃぐちゃですが (^^;

まずは、スレーブのArduino側を少し変えて、

マスターのPIC側からのセンサデータを受信してシリアルモニタに表示するプログラムに変更。

次にPIC側にセンサポートを読んでスレーブに送信するプログラムを追加。

動かすと、

2

おお!

センサポートの数字で出てきた!

127=01111111ですね。

センサを変化せると数字も変わります。

これで、Arduino側のプログラム作成に行けそうです。

まだ単にループにに入れただけなのでもうちょっと直さないとですが。。。


いやぁ~大したことじゃないのですが面白いです。

| | コメント (0)

2020年4月20日 (月)

Arduino UNOのケース

前述した水栓用スピンドルだけじゃ送料がかかるので、どさくさ紛れてケースを購入。


まずは安物のほう。

Img_7029

アクリル板タイプのもので325円 (^^;

予備ですね。


一方こっちはちゃんとしています。(箱入り)

Img_7028

ちゃんとしているので正規品を収納。

Img_7032

ぴったし!

Img_7033

本当は透明のほうがLEDとか見えるのですが、黒がかっこいいなぁということで。

裏は、

Img_7034

ゴム足は付属の物を貼り付けます。

599円でした。

多少高くてもこっちのほうがいいですね。

| | コメント (0)

2020年3月27日 (金)

LCDのテスト その2

LCD表示の備忘録です。

サンプルプログラムで動くのは動いたのですが、

ビットマップファイルの画像が左右反転していました。

(サンプル画像でも反転していた)

Img_6891

きっとサンプルプログラムのデータを書く順番が間違っているはずで、悩むことまる1日 (^^;

Img_6896

なんとかなりました。

上の写真の場合右側から書いていたものを、下の写真では左側から書くようにしただけですけど (^^;


直し方が良いのかわかりませんが・・・

NG:for (int i=0; i< __Gnbmp_height; i++) {
OK:for (int i=__Gnbmp_height; i+1>0 ; i--) {

 

それにしても、これだけのプログラムでフラッシュメモリ32KBの70%も使っちゃうということは。。

| | コメント (0)

2020年3月25日 (水)

LCDのテスト

先日届いたLCDの確認をしたくサンプルプログラムを動かしてみました。

まずは3.5インチ(320X480)をArduino MEGA2560互換に装着して、

Img_6878

タッチパネルも付属のプラのペンで意外と書けますね。

こんなサンプルもありました。

Img_6875

もう一つの2.8インチ(240X320)はUNO互換に刺して確認。

Img_6880

個体差か画像サイズの違いによる処理能力差かわかりませんが、こっちのほうがタッチ反応が良かったです。

良いといっても今時のタッチパネルと比較しちゃいけませんけどね。

BMPファイルも意外といけますね。

追伸

この画像ですが、左右反転していました。

Img_6882 

ただ、このBMPファイルの作り方がわからない。。

私が作るとどうもエラーになります (^^;

 →追伸:プログラム内にファイル名が指定されている模様でした

     でもそれだけじゃないのでbmpファイルの内部の違いかな?

(写真はサンプルに付いていたもの)

画像はLCD裏のマイクロSDスロットに入れています。

あ、保護フィルム貼ったままです。



小さいほうが1200円、大きいほうが2000円。

(DC分配ケーブルも活躍中)

Img_6881

一長一短ありますね。

でもこの値段でTFTのタッチ付きLCDが買えるなんて。。。

追加で買っちゃいそうです (^^;

| | コメント (0)

2020年3月23日 (月)

お買い物

お買い物、Arduinoシリーズ第3弾 (^^;


今回はMEGA2560のケースとタッチパネルLCD2種を購入。。

Img_6866

Amazonは趣味じゃないけど仕方なく購入。

Img_6867


まずは簡単なところからケースを開封。

Img_6868

なんじゃ?この焦げは?と思ったら保護フィルムでした (^^;

だがしかし・・・

Img_6869

互換基板は微妙に合わず。

Img_6870

仕方ないので後で削ります(涙)


MEGA2560が1,200円でケースが900円って。。
絶対ケース屋さんのほうが儲かりそう。。


追伸

頑張ってケースを削りました。

Img_6871

どうやらこの互換基板のコネクタ位置が正規品に比べてずれているようでした。

無事蓋をしてねじ止め完了。

Img_6872

何がしたいかというとこれです。

Img_6873

所詮Arduinoなので描画速度はかなり遅いようですが。。。

| | コメント (2)

2020年3月19日 (木)

お買い物

先日に続いてさらにArduino遊びです。


またしても買ってしまいました (^^;

今回はラジオデパート3Fにて。

Img_6829

UNO互換品がなんと450円 (^^;

ブートローダー書き込み済みのようです。

更に調子に乗って・・・

Img_6826

MEGA2560互換品も1200円!

ただし、どちらもUSBコントローラーが正規品とは違うとのことで、

CH340 USBドライバーのインストールが必要です。

インストールは、ボードをつないだ状態で管理者としてインストーラーを実行するのがコツのようです。

不安になったので2個ともLチカ(LEDチカチカ)テストを実施。

Img_6825

どちらもちゃんと光りました。

UNOのケースのほうが高いという不思議な状況です (^^;


ついでにケーブルも

Img_6827

DCプラグの分配ケーブルだそうで200円

40cmくらいのUSBケーブルは50円 (^^;

こうなると下手に作るより安いです。。


さらにこれはマルツで購入したセンサー。

Img_6828

これでプランターの水分検出できないかな。。。

みずやり忘れ防止に (^^;


ここのところArduinoにはまっています。。



そういえば改装していました。

Img_6824

4月からの規制のせいでどんな店舗形態になるのでしょうか?

| | コメント (6)

2020年3月11日 (水)

ArduinoでグラフィックLCDの実験 その3

今回は画像のアニメーション化のための点滅を実験した備忘録。

列車がホームに到達してセンサーを切った時を想定します。

まずは点滅する画像の作成。

ベースとなるのはこの画像。

Photo_20200311200701

これに列車のイメージを作成。

列車なし

Mono

列車あり

Mono_20200311200901

これを指定座標にdelayをかまして交互に表示。


う~ん。。実にめんどくさい (^^;

ポイントも試しに作りましたが。。。割愛。


ここでふとArduinoのピンアサインを見直すとPICと直結するだけのピン数が無いことに気が付きました (^^;

 列車の到達センサは5個

 ポイントは8個

となると、いよいよ避けていたシリアル通信しか手がないわけで。。

仕方ないのでまずはピンのお引越し。

10ピンと11ピンを2ピンと3ピンへ移動します。

static const TLcdPinAssignTable PinAssignTable={
A0_DI : A3, // A0 for SG12232, D/I for SG12864
CS1_E1 : A0, // CS1
CS2_E2 : A1, // CS2
E : A4,
RW : A2,
DB0 : 8 ,
DB1 : 9 ,
DB2 : 2 , //10ピンから変更
DB3 : 3 , //11ピンから変更
DB4 : 4 ,
DB5 : 5 ,
DB6 : 6 ,
DB7 : 7
}; // PinAssignTable;

なんと、これだけで済むとは (^^;

SPI(Serial Peripheral Interface)を勉強しなくては。。。

追伸

考えてみれば、本線側はまだ使う予定が無かった!

というこは、大手線側だけにするという手抜きも出来そう ^^;

| | コメント (0)