酒と薔薇の日々(その2)

好きなことだけ求めて生きるアスペ気味のINTJ人

バラを見に

2024年05月16日 23時22分05秒 | 日記


天候も回復したし、バラを見に植物公園へ


天気最高


まだまだ満開ですね。
十分堪能
赤外線&モーター駆動には嫌気がさしていたので、しばし癒やされました。



ついでにボラで始めるSNS広報活動に併せて、本借りました。
ROMなので発信関係は全然全然わからない。
読むかなぁw


「TinyIRReceiver」ライブラリの「TinyIRReceiverData.justWritten」の位置が重要

2024年05月16日 11時49分20秒 | マイコン(ESP32・Arduino等)
「TinyIRReceiver」ライブラリ使用でなぜか信号を取りこぼす件(こちら
(←これはダメな例)
原因は「TinyIRReceiverData.justWritten = false;」の位置でした。

これは「次の信号の受取OK」という動作指定に使う命令だった。
標準「IRremote.h」の「receiver.resume(); 」相当(同じ命令にしろよ)

LEDの制御コードの終わった後でこの記述を書かないと、リモコン連打された場合、次の信号処理に入りたいが入れない状態になり結果信号を取り逃す。

あほですね。
ATtiny85はメモリが小さいからこのライブラリでないと動かんのよ。
これでダイソー電車制御も何とかなりそう。

調子こいて以前モーター暴走してた回路を組み直した。
まずはArduinoで。これはちゃんと動いってるぽかった。
続いてATTiny85に置き換え。
初めはちゃんと信号を受けてたが、しばらくあれこれやってるとまた暴走を始めた。
は???
M基盤の暴走か????
信号システムもイマイチ妙な反応をする。
ちっくしょう

もうやめた。
=======================
/*
  2024/4/16 
ATtiny85 にIRセンサーを付けて、Tiny:bitリモコンの
  IRはPB2に接続
*/

#include "TinyIRReceiver.hpp" // include the code
//#define IR_RECEIVE_PIN PB2
#define RED PB0
#define YELLOW PB3
#define GREEN PB4
//#define ENABLE_LED_FEEDBACK false tinyでは無効でした


void setup() {
pinMode(RED, OUTPUT);
pinMode(YELLOW, OUTPUT);
pinMode(GREEN, OUTPUT);
//pinMode(IR_RECEIVE_PIN, INPUT); // 記述不要

for (int i=0; i<4; i++){
digitalWrite(RED, HIGH); digitalWrite(YELLOW, HIGH); digitalWrite(GREEN, HIGH);
delay(300);
digitalWrite(RED, LOW); digitalWrite(YELLOW, LOW); digitalWrite(GREEN, LOW);
delay(300);
}
delay(3000);
if (!initPCIInterruptForTinyReceiver()) {
digitalWrite(RED, HIGH); digitalWrite(YELLOW, LOW); digitalWrite(GREEN, LOW);
if(true){
// 無限ループ
}
}
}

int cmd = 0xFF;

void loop() {
if (TinyIRReceiverData.justWritten) {
cmd = TinyIRReceiverData.Command;
if (cmd == 0x00){
digitalWrite( RED, HIGH );
digitalWrite( YELLOW, HIGH);
digitalWrite( GREEN, HIGH);
} else
if (cmd == 0x02){
digitalWrite( RED, LOW );
digitalWrite( YELLOW, LOW);
digitalWrite( GREEN, LOW);
} else
if (cmd == 0x10){
digitalWrite( RED, HIGH );
digitalWrite( YELLOW, LOW);
digitalWrite( GREEN, LOW);
} else
if (cmd == 0x11){
digitalWrite( RED, LOW );
digitalWrite( YELLOW, HIGH);
digitalWrite( GREEN, LOW);
} else
if (cmd == 0x12){
digitalWrite( RED, LOW );
digitalWrite( YELLOW, LOW);
digitalWrite( GREEN, HIGH);
} else{
digitalWrite(RED, LOW); digitalWrite(YELLOW, LOW); digitalWrite(GREEN, LOW);
}
TinyIRReceiverData.justWritten = false;  // ここな!
}
}

ATtiny85&開発ボード[ HW-260 ]まとめ

2024年05月16日 09時37分40秒 | マイコン(ESP32・Arduino等)


今までの経過をまとめてみた。

 IDEで使う関係ライブラリと、 
 HW-260基盤のUSB端子からプログラムコードを書込むためのデバイスドライバが必要(V-USBを使うため)

② ATtiny85にブートローダを書き込む
 DIPタイプで入手したチップにはV-USBで待ち受けるブートローダが必要になります。
 ArduinoUNOを書き込み器(ISP)にプログラムを入れ、それを使ってATtiny85へブートローダプログラムを書き込みます。
https://blog.goo.ne.jp/villanova555/e/df692b7e403e4b77db1e1ec4cf0c39e6

Attiny85を開発ボード[ HW-260 ]で使うメモ
 いよいよプログラミング開始
 その前に書くPINの機能、名称を整理しメモにしました。
 参考となるサイトのURLも掲載
https://blog.goo.ne.jp/villanova555/e/cb59c0c77d90d2b89190042a0f0fd432

ArduinoUnoで赤外線送受信のテスト(TinyReceiver使用)
 ATtiny85はメモリにあんまり余裕がないので、小型のIRライブラリを使ってArduino上で簡単なプログラムを作って動作検証してみました。
https://blog.goo.ne.jp/villanova555/e/dc9eb64513ea59508f40c39558008b54

各種赤外リモコンのボタン:値
 Arduino上のプログラムで、手持ちの赤外線リモコンの各ボタンがどういう数字を送っているのか確認しました。
https://blog.goo.ne.jp/villanova555/e/880402a26012c8719220060e7849c804

ATtiny85で赤外線リモコン信号を受けてLチカ
 Tiny:bitのリモコン信号でATtiny85に接続したLEDのON/OFFをやってみた。
https://blog.goo.ne.jp/villanova555/e/e5126228f3170bf0ff24b8d56362eb5f


⑦nanoを使った書き込みボード(なぜかエラーが出だした)
https://www.youtube.com/watch?v=NiMZWhrTfSA

⑧ArduinoISP書き込み自作シールド
https://www.youtube.com/watch?v=ajv5Q68vPY4

=========================
【番外編】
Arduinoから[ HW-260 ]基盤へICSPで書き込むPIN
https://blog.goo.ne.jp/villanova555/e/ec8fb3bb9bb0b61e1f61edc0bfb49dc6
インドのYoutuberさんのAttiny動画
https://www.youtube.com/playlist?list=PLss_FGfTlLAp_VmqrkfCl7b4BGmJXbFnJ

Copilotのやつは!

2024年05月15日 23時16分14秒 | マイコン(ESP32・Arduino等)
先日から赤外線リモコンで小型マイコンATtiny85を動かしてるが、うまく理解できない関数があって
それをどう使うのか色々Copilotに聞いたら・・・

論点をずらしたテキトーな答えが返ってきた挙げ句、要求もしていないのに示されたプログラムサンプルは・・・
私が書いているブログ内のソースとその解説だった。
(使ってる変数の命名規則で自身の物と判明 「m_speed」)
参照しているサイトは、トップに私のブログ記事、とGitとArduinoフォーラムの3個所だけ

(゚Д゚)ハァ?
テキトーなヤツだわ。やっぱり
でも世界中でこのライブラリを使ってる人が少ないことだけはわかったよ
もう昨日からの訳わからんバグ&トラブルで死ぬ
===========================


母艦PCでプログラム作成 -> ArduinoUnoで書き込み -> ATtiny85マイコン -> ATtiny85IC外して -> 動作用基盤へ差し替え -> 動作確認 -> NGでやり直し

PC上での開発と違ってデバッガが無いから、現時点ではLED点滅程度で動作を推定するしか無い。
更に効率アップのため作ったはずの書き込み基盤が、途中から意味不明のエラーを出しだして、これにも手を取られた。
Arduino基盤の数が限られてるのでここ数日、何回配線を組み直したのか(panic face)
赤外線通信の沼から抜け出せん。

ATtiny85で標準IRライブラリはでかすぎる orz

2024年05月15日 00時54分58秒 | マイコン(ESP32・Arduino等)
("TinyIRReceiver.hpp"ライブラリなら 20%使用でした。)

赤外線リモコンで連続コマンド送信するとメチャクチャ取りこぼす症状
なおらん・・・わからん

そもそも「tinyIRReceiver.hpp」では0xFFまでの「command」とか「value」が簡単に取得できてるんだが、標準ライブラリと互換性がない。
調べまくったらサンプル「」の中にやっと発見
int32_t cmd = IrReceiver.decodedIRData.command;
これな。

====================
こんどは取りこぼしの件
次の動作に入れないから取りこぼしてるんじゃないか?と疑っている。
なんとかネットで発見した「IrReceiver.resume();」を入れてみようと思った。
が、「tinyIRReceiver.hpp」にはresume()命令が無い。
しょうがないので標準ライブラリを使って見た。
そもそも「IRremote.h」ライブラリのサンプルはマクロオンパレード・ぐじゃグチャで、素人が読むような代物じゃない。
やっとこさ動いたのだが、ATTiny85ではメモリ不足で動かない。
寝るわ。
もう夕方から混乱しまくってウニになってます。
Pin番号がサンプル事に違ってたり、ISP設定を誤ったり、書き込み機が不調になったり、古いライブラリに嵌められたり・・・死ぬ

参考 さいと・・・ここ分かりやすいね。寝る前に気づいた。
  IRdata構造体はこちら
  IrReceiver.begin(11,true);  と書くと11pinで基盤LEDで受信が目で見えます。
     IrReceiver.begin(receiverPin,ENABLE_LED_FEEDBACK);
  受信データがFFFFFになる件 こちら  こちら
  古いライブラリを掴んでるのかも こちらでは4.2だと
  GitにTiny版のソース こちら

===================
/*
IRremoteを使いTinyIR と同等にキーだけ取り出すソース
   2024/5/14 やれやれ苦労したわ!「IrReceiver.decodedIRData.command」がわからんばかりに
*/
#include "IRremote.h"
const int IR_RECEIVE_PIN = 2; // 赤外線受信モジュール接続ピンをD2に
IRrecv irrecv(IR_RECEIVE_PIN);
decode_results results; // 赤外線受信結果を格納する

void setup() {
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(115200); // Status message will be sent to PC at 9600 baud

IrReceiver.enableIRIn(); // Start the receiver
// IrReceiver.blink13(true); // Enable feedback LED

Serial.print(F("--------------Ready to receive IR signals at pin "));
Serial.print(IR_RECEIVE_PIN);
Serial.print(F("--------------"));
}

uint32_t cmd = 0xFF;
void loop() {
//if (IrReceiver.decodedIRData.decodedRawData == 0x00000000) {
if (IrReceiver.decode()) { // Grab an IR code
cmd = IrReceiver.decodedIRData.command;
Serial.println(cmd);

IrReceiver.resume(); // 次の受信に備える
}
delay(200);
}


OLED(有機EL)関連記事まとめ

2024年05月14日 20時28分01秒 | マイコン(ESP32・Arduino等)
OLEDに関する過去実験記事を集めてみた。
ATTiny85で使うための復習用

1315チップ搭載OLED(U8g2ライブラリ)編
OLED 1513でバッファを使った文字&画像の表示まとめ(U8x8lib.h ライブラリ)

■腕時計型OLED



==================
クソGooBlog
・記事のバックアップがありますだと?バカ抜かすな
・連続してURLリンクを貼ると所々ですっ飛ばしやがる
相変わらずのクソ仕様
何年同じバグを抱えたままで運営しやがるんだ?

ATtiny85の書き込み基盤(ISP)を作った

2024年05月14日 13時57分03秒 | マイコン(ESP32・Arduino等)


昨晩ATtiny85でちょっとしたプログラムを作った。
せっかくなので、たちが悪い使っていなかったArduinoNanoをISPにしてブレッドボードへ組んで。



じゃがこのままにしておいても、脱線などろくな事にはならなので真面目に基盤へ作ってみることに。
18年前にPICをやってた頃買っていたZIFソケット+丸穴Pinソケットで下駄を履かせた豪華仕様なお作りで。(貧乏性でまだ使いまわしを考えてる)
どうせ机の中の肥やしを18年間努めてたのだから。
使わないほうがムダ
ヲヲヲ、現在は1000円ぐらいするんだな。

ArduinoUnoでは気づかなかったが、NANOのせいかコンデンサ無しでは妙な書き込み時のエラーが出るようになった。
ブレッドボードに戻しても、コンデンサなしではエラーになる事が判明
この基盤の配線問題ではない。


今回はきれいに作りたかったが・・・配線跨ぎが汚いね。
出来上がって気がついたが、思っていたのと配置が違う。
PCは左側にあるので、ICの1番ピンが逆の手前になってしまった。
今更直せん。ちっ
あれこれやったら3時間程度かかったようです。

======使い方=======

書き込み手順は
ターゲットMPUとCOMポートを選択し
ソースを書く


「Arduino as ISP」を選択し、



クロックを16NHzに設定し
Shift+CTRL+U (「書き込み装置を使って書き込む」)
で書き込む。



こんなエラーが出るのは、ICチップがちゃんと刺さっていないことが要因の一つ(そもそも老眼が元凶)

Arduino nano 書き込みできなかったが・・・

2024年05月13日 21時15分51秒 | 日記
以前からNanoへの書き込みはハングアップすることがあった。
(数週間前も同じ症状ちゃんと指定しているはずだったが)
なんなんや!



「Atmel atmega328p Xplained mini」を選択して解決したようだ。(前回もやったはず)
シリアルドライバはCH340です。我が家のNANOは。

今回も同じ、ネットで調べると困ったという記事がでてきた。こちら
ここに書かれてるがNANOはクセが悪い。
こういうやつはATtiny85用のISP専用機に追いやるのが良いのかも。


ロボカフェもそろそろ5回目ぐらいかな

2024年05月13日 00時43分27秒 | ボランティア
13時ころからボツボツ集まって・・・だったが言ったら既に4名が待機
14時から本番予定なので、それまでSNS活用やメールの仕組み動画撮影などの検討会



いやいや白熱した討論会になりました。



ズラッと並べてヘッドライトピカピカを動画撮影
監督のカメラワーク指導も熱が入ります。



背景に上着を被せて色彩効果を狙います。

初参加の1名が熱心で全てのテキストを印刷し事前演習済み。
講習中に撮影した写真と動画を使って終了時には1本の作品完成
いやはや恐れ入りました。
それにしても視点が違うと作る内容も変わるなぁと強く思いました。

あっという間の3時間半
やりがいがあるなぁ

TamTam良いかも(amazon死んだ)

2024年05月10日 20時47分43秒 | 日記

昨日からあれこれメカ機構を自作検証してハマっているのだが



私みたいな素人にはTAMIYAの「楽しい工作」シリーズがピッタリ
試行錯誤しても低コスト!
ハンダ付けからブレッドボードへ世の中が移行したようなもん。


amazonでタミヤの楽しい工作シリーズを購入しようと思ったがっ
なんと製品に寄っては1個ではなく「同じものを3個一緒に買わないと売ってやらん!」と。
結局5000=>9000円に上げて押し売りする手法
2024年問題が進行なのはわかるが余りにも非常識設定過ぎるわ。
配送費用削減努力が涙ぐましい中国を見習えってんだ。

探したらDMM.comなどは相変わらず合計2000円で無償送料をやってるし。
(ま、メーカー提供価格そのままで値引きが無いけど)
Amazonは商品自体には割引があって安いが、3500円一括+複数強制増加購入を強いる!
要りもしないムダを買って行けとも言う。
信じられないamazonの暴走ぶり wwwww
あほか

散歩ついでに最近できたTamTamへ行くと、タミヤ製品メーカー定価で陳列
速攻で買って帰った。
ラック&ピニオンを店頭注文できるかな??
期待するぞ!