2022年10月8日土曜日

こいのぼり全曲、5v-3v機器間でuart成功、attiny13a で鯉のぼりを演奏

define PIN 4 // 3700バイトを消化するので、attiny85 8k,attiny44a 4kであり後者はギリ
// attiny85なら、もう一曲くらいおけそう

void setup(){
  tone(PIN, 330, 300);
  delay(300);
  tone(PIN, 294, 300);
  delay(300);
  tone(PIN, 262, 600);
  delay(600);
  tone(PIN, 294, 600);
  delay(600);
  tone(PIN, 330, 600);
  delay(600);
  tone(PIN, 440, 600);
  delay(600);
  tone(PIN, 392, 300);
  delay(600);
  tone(PIN, 330, 300);
  delay(300);
  tone(PIN, 330, 300);
  delay(300);
  tone(PIN, 330, 600);
  delay(600);
  tone(PIN, 294, 300);
  delay(300);
  tone(PIN, 262, 300);
  delay(300);
  tone(PIN, 294, 600);
  delay(1800); // ミレドレ ミラソ ミミミレド レ
 
  tone(PIN, 262, 300);
  delay(300);
  tone(PIN, 294, 300);
  delay(300);
  tone(PIN, 330, 600);
  delay(600);
  tone(PIN, 392, 600);
  delay(600);
  tone(PIN,440, 300);
  delay(300);
  tone(PIN, 440, 300);
  delay(300);
  tone(PIN, 392, 600);
  delay(600);
  tone(PIN, 330, 600);
  delay(600);
  tone(PIN,392, 300);
  delay(300);
  tone(PIN, 392, 300);
  delay(300);
  tone(PIN, 330, 600);
  delay(600);
  tone(PIN, 294, 600);
  delay(600);
  tone(PIN, 262, 600);
  delay(1800); // ドレミソ ララソミ ソソミレ ド

  tone(PIN,523,300);
  delay(300);
  tone(PIN,523,300);
  delay(300);
  tone(PIN,523,600);
  delay(600);
  tone(PIN,440,600);
  delay(600);
  tone(PIN,392,300);
  delay(300);
  tone(PIN,392,300);
  delay(300);
  tone(PIN,392,600);
  delay(600);
  tone(PIN,330,600);
  delay(600);
  tone(PIN,294,300);
  tone(PIN,294,300);
  delay(300);

  delay(300);  tone(PIN,294,600);
delay(1800);
//ドドドラ ソソソミ レレレドミ ソ

  delay(600);
  tone(PIN,262,600);
  delay(600);
  tone(PIN,330,600);
  delay(600);
  tone(392,600);
  tone(PIN,262,300);
  delay(300);
  tone(PIN,294,300);
  delay(300);
  tone(PIN,330,600);
  delay(600);
  tone(PIN,392,600);
  delay(600);
  tone(PIN,523,600);
  delay(600);
  tone(PIN,440,600);
  delay(600);
  tone(PIN,392,600);
  delay(600);
  tone(PIN,330,300);
  delay(300);
  tone(PIN,330,300);
  delay(300);
  tone(PIN,293,600);
  delay(300);
  tone(PIN,330,600);
  delay(300);
  tone(PIN,262,600);
delay(600); // ソレミソ ドラソ ミミレミ ド 
}

102による電圧レベル変換 [Arduino] (petitmonte.com)はI2Cに接続していたが

UARTにも利用できるのではと以下のコードをやって成功 FXMAの3V供給はラズピコ

より

void loop(){}

音階周波数(Hz)

ド130.815レ146.835ミ164.82ファ174.62ソ196.00ラ220.00シ246.94

ド261.63レ293.67ミ329.63ファ349.23ソ392.00ラ440.00シ493.88 標準

ド523.23レ587.34ミ659.25ファ698.45ソ783.98ラ879.99シ987.75

ド1046.5レ1174.7ミ1318.6ファ1397.1ソ1567.96ラ1759.98シ1975.5

ド2093.0レ2349.4ミ2637.2ファ2794.2ソ3135.92ラ3519.96シ3951.0ド4186.0

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

FXMA2でシリアルしてみて成功、5VとGND供給はアルディーノからおこなった 

またアルディーノとラズピコの間のGNDも共通化した

pico :: 

from machine import UART,Pin

import time

u=UART(1,9600,tx=Pin(4),rx=Pin(5))

while True:

   ret = u.readline();

   if ret is not None:

      prin(ret)

   time.sleep(1)

arduino::

    void setup() {

       Serial.begin(9600);

    }

    void loop() {

       Serial.write("from Arduino\n");

       delay(20000);

   }


^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

https://mag.switch-science.com/2015/04/29/gwprojact_koinobori/

 arduino as ispのとき、resetピンに10kの抵抗は不要だった!(attiny85 also)

下記のコードでresetピンか10k抵抗を介してタクトスイッチに接続してgndピンに

接続すると何回でもリセットかけれる

#define PIN 4

void setup(){
    tone(PIN, 330, 300);
  delay(300);
  tone(PIN, 294, 300);
  delay(300);
  tone(PIN, 262, 600);
  delay(600);
  tone(PIN, 294, 600);
  delay(600);
  tone(PIN, 330, 600);
  delay(600);
  tone(PIN, 440, 600);
  delay(600);
  tone(PIN, 392, 300);
  delay(600);
  tone(PIN, 330, 300);
  delay(300);
  tone(PIN, 330, 300);
  delay(300);
tone(PIN, 330, 600); delay(600); tone(PIN, 294, 300); delay(300); tone(PIN, 262, 300); delay(300); tone(PIN, 294, 600); } void loop(){ } //ミレドレミラソ ミミミレドレ

0 件のコメント:

コメントを投稿