2021年ももうすぐ終わりですな。
マイコンをおもちゃに組み込んで魔改造した時の記録。
また、やりたくなったときのための指南書の意味も込めて。
マイコンは、ATtiny13を使用する。
小さいし、安いし、3Vぐらいで動作するから。
とりま、ピンアサイン。
書き込み編
ArduinoUNOとATTiny ISPシールドきっとを用意。
www.aitendo.com
シールドキットが無くても書き込めはする。
ArduinoUNOには、ArduinoISPを書き込んでおく。
ATtiny13をボードマネージャーに追加する。
ボードマネージャーに”ATtiny13”と入力すると出てくるので、インストールしておく。
ボード:ATtiny13が出ればおk
github.com
ArduinoUNO(ArduinoISP)でシールドキットを使用して、ボード:ATtiny13 で書き込めばおk
ブートローダの書き込みは必要なし。
公衆電話
公衆電話のガチャガチャを改造してみた。
受話器を上げると光って音が出る仕様。
とりま、回路図
実装したボード
起動している動画
youtu.be
プログラム
int led = 0; int cds ; int FLG_ON = 0; int FLG_ON_a = 0; //以前のフラグ int FLG_ON_e = 0; //終了のフラグ int i = 0; #define BUZZER 3 void setup() { pinMode(led, OUTPUT); pinMode(1, INPUT); pinMode(BUZZER,OUTPUT); } void loop() { cds = digitalRead(1); if (cds == LOW && FLG_ON_e == 0){ FLG_ON = 1; digitalWrite(led, HIGH); beep(400); } if (cds == HIGH && FLG_ON_e == 0){ digitalWrite(led, LOW); if (FLG_ON == 1){ FLG_ON_a = 1; FLG_ON = 0; }else{ FLG_ON = 0; } } if(FLG_ON_a == 1 && FLG_ON_e == 0){ digitalWrite(led, HIGH); while(i<3){ beep(200); delay(100); beep(200); delay(100); i = i +1 ; } i = 0; digitalWrite(led, LOW); FLG_ON_a = 0; } if (cds == HIGH && FLG_ON_e == 1){ FLG_ON_e = 0; FLG_ON_a = 0; } } void beep(int wait) { for ( int i = 0; i < 100; i++ ) { digitalWrite(BUZZER, HIGH); delayMicroseconds(wait); digitalWrite(BUZZER, LOW); delayMicroseconds(wait); } }
Tradis
ターディスは、ドラマのドクター・フーに登場するタイムマシン
ターディスのフィギュアを買ったのでいい感じに点灯するように改造してみた。
とりま、回路図。
プログラム
void setup() { pinMode( 1,OUTPUT ); TCCR0A = 0x23;// 0011 0011 高速PWMモード (cpmB=OC0B) TCCR0B = 0x0A;// 0000 1010 1/8 ,Top=OC0A TCNT0 = 0;//タイマ0の初期値 OCR0A = 122;//周期 OCR0B = 96;//duty } void loop() { int i; i = 150; while (i >= 1){ OCR0B = i;//duty delay(10); i = i - 1; } while (i <= 150){ OCR0B = i;//duty delay(10); i = i + 1; } }
ドラマのTardisは、頭上のランプふわっと点灯して別の時空に飛び立つ。 ふわっと点灯するのは、PWM(Pulse Width Modulation)で表現してみた。
youtu.be
おまけ
ATtiny13用のCPUボードも作ってみた。
LED,マイクロスイッチ、外部電源から使用するための3端子レギュレーター搭載。
裏側は、スパゲッティー