Tamesuke-Goto Maker的Blog -8ページ目

Tamesuke-Goto Maker的Blog

地域ISP管理者だけれど、ここ3年ほどMakerなJobが増えたのでまとめてみたいと思います 旧ハンドル Ringoro

 
何気なく google でレコードと検索かけたら、なんとクレオスクエアに中古レコード屋さんが
出て来た。
えーいつのまにそんなお店が。。というわけでさっそく行ってしまいました。
 
 
中古レコード、中古CD、中古DVD、古本など、いろいろありました。棚の上のスペースの他、床にはダンボールに入ったままのレコードも棚と同じくらいの量おいてあります。
 
 
{70A3DD2C-07A5-424E-8895-2283D2370AB0}
 
Jazz専門ってわけではないのでJazzコーナーはそれほど広く無いですが、結構珍しい盤(マイナーな?)があります。
なんど、IKE QUEBECのブルーノート盤が。。。これは掘り出しモノ。
これ、穴あきなので廃盤扱いだったのでしょうが、針を落としてない新品の様です。
IKEは復刻盤CDで持ってはいます。録音はすでに聴いたものばかりの様ですがレコードはなかなか手に入らないので良い買い物ができました。
 
 
 
{36FA144C-CF23-4BD0-9203-F3174337979F}

あまり時間が無かったのでよく見られてないですが、また時間みてゆっくり買い物に行きたいです。
 
 
NanoPi Neo 用のヒートシンクを入手したのでまたNanoPiの実験を続けます。
 
今回はttyによるシリアル通信をしてみます。
PCとの通信をしますのでPCへは端子側バラのUSBシリアルケーブルを使って接続をすることにします。
 
使用したのはこちら
 

https://www.amazon.co.jp/gp/product/B00K7YYFNM/ref=oh_aui_detailpage_o05_s00?ie=UTF8&psc=1

 

どうもAdafruitのUSB to TTL Serial Cable と同等品の様です。

 

{019CE08A-7D36-46C9-B18C-BC26AF2D9E45}
先ず、NanoPi側でシリアルポートが使えるように設定をします。
 
npi-config を起動して、 6. Advance Options  -> A3 Serial を選びます。
NanoPi Neoのピン配置図では UARTは起動コンソール用の tty0 の他2つが使えるようになっています。
Serial1またはSerial2をイネーブルにしてください。
 
 
 
設定が済むと一回リブートがかかり/dev/ttyS1, /dev/ttyS2 が使えるようになります。
 
テスト用にscreenコマンドを使いますのでインストールしてください。
 
apt install screen
 
NanoPi側のピン接続は UART1 の場合以下になります。
 
pin6  : GND -> 黒
pin8  : TX -> 白
pin10 : RX -> 緑
 
NanoPi側からは screenコマンドを9600ボーで開始
 
screen /dev/ttyS1 9600
 
PC側は TeraTermでUSBシリアルデバイスを選択して起動します。
 
 
 
 
ローカルエコーをしていないので分かりづらいですが、NanoPi側から入力した文字がTeraTrem側に、TeraTerm側から入力した文字がNanoPi側に表示されます。
これでttyシリアル通信が確認出来ました。
 
 
 
 
 
ハロウィン🎃も終わったので、次はクリスマス🎄の準備にかかります
 
3年くらい前に秋月電子のLEDストリングとNE555を使った電飾を作ったのですが、今年はATTiny13を使ってグレードアップしたものを作りたい。
秋月LEDとハロウィンで使った基板から何か作っていきましょう。
 
 
{812D6A64-0154-4118-BFFB-D3EB3496296A}
 
 
秋月電子のLEDストリング/ジェリーライトは LED20個、スイッチ付電池ボックス、抵抗内蔵、と使いやすい電飾キットです。これだけでは単にLEDが点灯するだけなので面白みがありません。
 
先ずは分解します。LEDの半田付けを取り外して抵抗もバラバラにしておきます。
 
 
 
{616E8C3F-8494-4C0E-AC3E-0FDF06C50BF4}
 
電池ボックスも使うのでSWとケーブルは別途半田付け
 
 
 
 
 
{56D9AFB5-D761-4F6F-BFD0-49CFAC973B6F}
 
 
LEDストリングはLED20個、定格では120mA程度を流しています。ATTiny一個ではドライブできないので
PNPトランジスタ一個を介してドライブさせます。
 
 
{028894E6-D2A0-42FA-AEDA-4D41F86C5B9F}
 
スケッチはハロウィンLチカを元にしました。単に点滅させるだけでは面白みがないので、ここでは4種類の点滅パターンを10secおきに切替える様に書いてみました。
 
複数の点滅パターンのために、複数のLED構造体に数値を入れて初期しておいてパターンを選ばせるように考えたのですが、ATTiny13はRAMが64バイトしかありません。パターンの数だけ構造体変数を増やすとメモリ不足になってしまいます。今回はプログラム中でタイミングを直接代入する様にしました。
 
スケッチ:
=======
/*
  illumination ATTiny13 No.2

   Multi Blink Pattern

     ATTiny13
 
   PCINT5/A0/D5/RST |1---O---8| VCC
       PCINT3/A3/D3 |2       7| D2/A1/INT0/PCINT2
       PCINT4/A2/D4 |3       6| D1/PWM/PCINT1
                GND |4-------5| D0/PWM/A0/PCINT0

   RST = ADC0/PCINT5
 
 */


#define LED1 3
#define LED2 4
#define LED3 1
#define LED4 2

struct led {
  char pin;   //  PIN No.
  bool on;   // ON/OFF status
  int cont;  // time count
  int ontime; // ON time (msec)
  int intval; // interval time (msec)
};

struct led led1;
//struct led led2;

//struct led led1={LED1,0,900, 600,2000};
//struct led led2={LED4,0,900, 250,500};

/*
 * LED Blink func.
 *
 */

void blinkled(struct led *myled)
{
  int pin=myled->pin;
  if(myled->cont++ == myled->ontime){
    digitalWrite(pin,false);
    myled->on=false;
    } else if(myled->cont >= myled->intval){
      digitalWrite(pin,true);
      myled->cont=0;
      myled->on=true;
    }
//  return myled->on;
}


void setup() {
  pinMode(LED1, OUTPUT);
//  pinMode(LED4, OUTPUT);
  led1.pin=LED1;
  led1.on=0;
  led1.cont=0;
  led1.ontime=400;
  led1.intval=1000;
//  led2.pin=LED4;
//  led2.on=0;
//  led2.cont=0;
//  led2.ontime=500;
//  led2.intval=1500;
}
unsigned int t;
unsigned char m;

void loop() {
   delay(1);
   blinkled(&led1);
//   blinkled(&led2);

  if(t++ < 10000){
    return;
  }
  t = 0;
  m= (m+1 & 0x03);
  switch(m){
    case 0:led1.ontime=600;
           led1.intval=1000;
           break;
    case 1:led1.ontime=300;
           led1.intval=600;
           break;
    case 2:led1.ontime=1000;
           led1.intval=1500;
           break;    
    case 3:led1.ontime=50;
           led1.intval=300;
           break;  
  }
}

=======
 
 
{8A948534-14E4-41CD-A791-FF780AD08026}
 
半田付けしてみて思った。。。これだけならスクラッチで基板半田付けした方がコンパクトになりますね。
 
試しにもう一枚ユニバーサル基板へ半田付け。まだ余裕がありますね。LEDはもう一本つなげられそう。
 
{7AF0F236-9F57-4D07-9009-350ED59FECD3}
 
 

コンパイル結果は以下。プログラム容量ではまだ余裕があります。もう少し複雑な事はできそう。

最大1024バイトのフラッシュメモリのうち、スケッチが526バイト(51%)を使っています。
最大64バイトのRAMのうち、グローバル変数が15バイト(23%)を使っていて、ローカル変数で49バイト使うことができます。
C:\Users\goto\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/bin/avrdude -CC:\Users .....
 
 


 
 
LEDを2系列にしてバラバラに点滅させるようにしてもよいかもしれません。