酒と薔薇の日々(その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