カメラで遊んでみる

投稿日:

 秋月電子のサイトを見ていると、小さなカメラがあり、Arduinoに付きそうな感じだ。

 3850円。Arduino自体が2800円かそこらなので、それに比べるとちょっと高いが、早速行って購入。

 だが、あまり情報は多くない。まず、メーカーのサイトを見ていくと、チュートリアルがあり、「とりあえずテストするには、電源をくれてやって、一番端のピンをテレビにつなぎゃあ絵が出る」みたいなザックリ感満載の解説が。それで、テレビにつなぐためのRCAジャックなども買う。

 チュートリアルはこれを読んでおけばだいたいいいようだ。

 ほどいてみるとこんな感じで、かなり小さい。

IMG_3112

 ピンのピッチが2mmで、ブレッドボードで扱いにくい。それで、普通の2.54mmのピンヘッダを出して、その根元をこんなふうにムリヤリ(笑)2mmピッチにせばめる。

IMG_3116

 こいつをカメラの基盤にえいやっ、とねじ込み、半田付けする。

IMG_3118

 なかなか小さいので、ルーペと老眼鏡を併用しつつ、ICなんか壊しちゃってもナンだから、20Wのぬるくて細い半田鏝でさっさとつける。

IMG_3117

 我ながらなかなかスピーディな仕事だなあ(笑)。

 で、メーカーのサイトには「5V」と書いてあるが、これは互換品の別の製品のためのチュートリアルのようで、買ってきたものの基盤をよく見ると「3.3V」と印刷されている。壊してはもったいないから、3.3Vで試す。3.3Vの電源代わりにArduinoの3.3Vピンを使う。

 基盤の印刷通り、3.3V、GND、それから右端のピンをRCAジャックのセンターに、RCAジャックのアースを同じくGNDに入れて、テレビの前に持っていく。

IMG_3119

 テレビにつなぐと、おお、確かに、値段なりのフザけた画質(笑)で、自分の顔が映る。

IMG_3121

 上下が逆だが、まあ、いいや。

 で、今度はArduinoで画像を撮影してみよう。

 チュートリアルにしたがってArduino用のライブラリをダウンロードし、これをArduinoのインストールフォルダの「libraries」に配置する。

 そうしておいてArduinoのIDEを起動すると、「ファイル」→「スケッチの例」の中に「Adafruit VC0706 Serial Camera Library」が現れるから、この中から「Snapshot」を選ぶ。これは静止画をjpegで撮影するスケッチのサンプルだ。

// This is a basic snapshot sketch using the VC0706 library.
// On start, the Arduino will find the camera and SD card and
// then snap a photo, saving it to the SD card.
// Public domain.

// If using an Arduino Mega (1280, 2560 or ADK) in conjunction
// with an SD card shield designed for conventional Arduinos
// (Uno, etc.), it's necessary to edit the library file:
//   libraries/SD/utility/Sd2Card.h
// Look for this line:
//   #define MEGA_SOFT_SPI 0
// change to:
//   #define MEGA_SOFT_SPI 1
// This is NOT required if using an SD card breakout interfaced
// directly to the SPI bus of the Mega (pins 50-53), or if using
// a non-Mega, Uno-style board.

#include <Adafruit_VC0706.h>
#include <SPI.h>
#include <SD.h>

// comment out this line if using Arduino V23 or earlier
#include <SoftwareSerial.h>         

// uncomment this line if using Arduino V23 or earlier
// #include <NewSoftSerial.h>       

// SD card chip select line varies among boards/shields:
// Adafruit SD shields and modules: pin 10
// Arduino Ethernet shield: pin 4
// Sparkfun SD shield: pin 8
// Arduino Mega w/hardware SPI: pin 53
// Teensy 2.0: pin 0
// Teensy++ 2.0: pin 20
#define chipSelect 10

// Pins for camera connection are configurable.
// With the Arduino Uno, etc., most pins can be used, except for
// those already in use for the SD card (10 through 13 plus
// chipSelect, if other than pin 10).
// With the Arduino Mega, the choices are a bit more involved:
// 1) You can still use SoftwareSerial and connect the camera to
//    a variety of pins...BUT the selection is limited.  The TX
//    pin from the camera (RX on the Arduino, and the first
//    argument to SoftwareSerial()) MUST be one of: 62, 63, 64,
//    65, 66, 67, 68, or 69.  If MEGA_SOFT_SPI is set (and using
//    a conventional Arduino SD shield), pins 50, 51, 52 and 53
//    are also available.  The RX pin from the camera (TX on
//    Arduino, second argument to SoftwareSerial()) can be any
//    pin, again excepting those used by the SD card.
// 2) You can use any of the additional three hardware UARTs on
//    the Mega board (labeled as RX1/TX1, RX2/TX2, RX3,TX3),
//    but must specifically use the two pins defined by that
//    UART; they are not configurable.  In this case, pass the
//    desired Serial object (rather than a SoftwareSerial
//    object) to the VC0706 constructor.

// Using SoftwareSerial (Arduino 1.0+) or NewSoftSerial (Arduino 0023 & prior):
#if ARDUINO >= 100
// On Uno: camera TX connected to pin 2, camera RX to pin 3:
SoftwareSerial cameraconnection = SoftwareSerial(2, 3);
// On Mega: camera TX connected to pin 69 (A15), camera RX to pin 3:
//SoftwareSerial cameraconnection = SoftwareSerial(69, 3);
#else
NewSoftSerial cameraconnection = NewSoftSerial(2, 3);
#endif

Adafruit_VC0706 cam = Adafruit_VC0706(&cameraconnection);

// Using hardware serial on Mega: camera TX conn. to RX1,
// camera RX to TX1, no SoftwareSerial object is required:
//Adafruit_VC0706 cam = Adafruit_VC0706(&Serial1);

void setup() {

  // When using hardware SPI, the SS pin MUST be set to an
  // output (even if not connected or used).  If left as a
  // floating input w/SPI on, this can cause lockuppage.
#if !defined(SOFTWARE_SPI)
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
  if(chipSelect != 53) pinMode(53, OUTPUT); // SS on Mega
#else
  if(chipSelect != 10) pinMode(10, OUTPUT); // SS on Uno, etc.
#endif
#endif

  Serial.begin(9600);
  Serial.println("VC0706 Camera snapshot test");
  
  // see if the card is present and can be initialized:
  if (!SD.begin(chipSelect)) {
    Serial.println("Card failed, or not present");
    // don't do anything more:
    return;
  }  
  
  // Try to locate the camera
  if (cam.begin()) {
    Serial.println("Camera Found:");
  } else {
    Serial.println("No camera found?");
    return;
  }
  // Print out the camera version information (optional)
  char *reply = cam.getVersion();
  if (reply == 0) {
    Serial.print("Failed to get version");
  } else {
    Serial.println("-----------------");
    Serial.print(reply);
    Serial.println("-----------------");
  }

  // Set the picture size - you can choose one of 640x480, 320x240 or 160x120 
  // Remember that bigger pictures take longer to transmit!
  
  cam.setImageSize(VC0706_640x480);        // biggest
  //cam.setImageSize(VC0706_320x240);        // medium
  //cam.setImageSize(VC0706_160x120);          // small

  // You can read the size back from the camera (optional, but maybe useful?)
  uint8_t imgsize = cam.getImageSize();
  Serial.print("Image size: ");
  if (imgsize == VC0706_640x480) Serial.println("640x480");
  if (imgsize == VC0706_320x240) Serial.println("320x240");
  if (imgsize == VC0706_160x120) Serial.println("160x120");

  Serial.println("Snap in 3 secs...");
  delay(3000);

  if (! cam.takePicture()) 
    Serial.println("Failed to snap!");
  else 
    Serial.println("Picture taken!");
  
  // Create an image with the name IMAGExx.JPG
  char filename[13];
  strcpy(filename, "IMAGE00.JPG");
  for (int i = 0; i < 100; i++) {
    filename[5] = '0' + i/10;
    filename[6] = '0' + i%10;
    // create if does not exist, do not open existing, write, sync after write
    if (! SD.exists(filename)) {
      break;
    }
  }
  
  // Open the file for writing
  File imgFile = SD.open(filename, FILE_WRITE);

  // Get the size of the image (frame) taken  
  uint16_t jpglen = cam.frameLength();
  Serial.print("Storing ");
  Serial.print(jpglen, DEC);
  Serial.print(" byte image.");

  int32_t time = millis();
  pinMode(8, OUTPUT);
  // Read all the data up to # bytes!
  byte wCount = 0; // For counting # of writes
  while (jpglen > 0) {
    // read 32 bytes at a time;
    uint8_t *buffer;
    uint8_t bytesToRead = min(32, jpglen); // change 32 to 64 for a speedup but may not work with all setups!
    buffer = cam.readPicture(bytesToRead);
    imgFile.write(buffer, bytesToRead);
    if(++wCount >= 64) { // Every 2K, give a little feedback so it doesn't appear locked up
      Serial.print('.');
      wCount = 0;
    }
    //Serial.print("Read ");  Serial.print(bytesToRead, DEC); Serial.println(" bytes");
    jpglen -= bytesToRead;
  }
  imgFile.close();

  time = millis() - time;
  Serial.println("done!");
  Serial.print(time); Serial.println(" ms elapsed");
}

void loop() {
}

 で、これはSDカードに書き込むようになっている。

 私の手持ちの、ArduinoにSDカードをつなぐ手段は、先日から愛用中の「ETHERNET SHIELD 2」に搭載されているSDカードスロットだけだから、とりあえずこれを使う。

 手持ちのSDカードをETHERNET SHIELD 2に挿し、Adafruitのサイトのチュートリアルを参考に回路をブレッドボードに組む。

IMG_3122

 注意する点は2つだ。

  1.  サンプルスケッチをよく読むと、普通のSDカードは10番ピンを使うが、ETHERNET SHIELD 2を使う場合は4番ピンにつながる。なので、サンプルスケッチの中の「#define chipSelect 10」というところを「#define chipSelect 4」に書き換えなければならない。
  2.  メーカーサイトのチュートリアルでは、カメラに添付の10kΩの抵抗をTXの次に直列に二つ入れて、1本目と2本目の間からTXをとり、それをアースしているが、どうもこれだとうまく行かなかった。多分、このチュートリアルは給電が5Vだからだと思う。そこで、アースはそのままに、1本目の手前でTXをとるとうまくいった。
    IMG_3127

 そうやってArduinoをスタートさせると、写真が1枚だけ撮れる。

 下は、そうやって撮った私の顔である。

IMAGE02

 ……むっちゃむさくるしいなあw。

WIZnetでまた紹介され、嬉しい

投稿日:

 このところ凝っているArduinoでの遊び、そんなにお金もかからないし、何より楽しい。

 先日、私が作ったデジタルカメラのシャッターをネット経由で切る工夫が韓国「WIZnet」のサイトで紹介され、とても嬉しかった

 この「WIZnet」というところは私が買った「ETHERNET SHIELD 2」に搭載されているW5500というコントローラのメーカーなのだ。それで、私のブログにコメントをつけてくれ、サイトで紹介してくれたのであった。

 先日、安物の扇風機にWebインターフェイスを実装し、温度で制御する、という試みをやり、楽しかったので、「こんどはこんなのが出来ました~」とWIZnetのサイトに報告したら、それも紹介してあげましょう、と返事があって、このとおり紹介された。

 私の元の記事では「ウェブ扇風機」というダサい名前だったが、こういうふうに「Web controller for smart Fan」と書いてもらうと、なんだかカッコイイじゃないの(笑)。

 いやあ、Arduinoって、楽しいなあw。

短夜(みじかよ)

投稿日:

 日が長い。今19時前、まだ明るい。今日は梅雨明け前だが、もうまる一日の烈日で、この(ゆうべ)はどこかから遠花火が聞こえる。

 えーっと、「暮れ泥む」は、夏の季語だっけどうだっけ、と歳時記を繰り直して、角川の歳時記には載っていないと確かめる。

 「くれドロむ」ではない。これで「くれなずむ」と()む。

 武田鉄矢が名曲「贈る言葉」で「♪暮れなずむ街の……」と良い言葉を選んだが、どうも話し言葉にはなじまない単語なので、「暮れなずむ」という言葉を「夕暮れてゆく……」という程度の意味に捉えている向きも多い。

 だが、「なずむ」は「泥む」と書き、これは、「歩き泥む」と書けば即座にその意味に合点がいくとおり、遅々として進みにくい様子のことである。足に泥がまつわりついて進みにくいわけだ。

 さすがは武田鉄矢、アーティストである。言葉をおろそかにしない。「遅日」とか「暮れかぬる」といえば春の季語であるから、当然、日がなかなか落ちにくくなったことが実感される春の日々、卒業シーズンともなれば「暮れ泥む」のである。その光と影の中、言葉をあなたに贈った、そういう詩である。すばらしい。「卒業」という言葉をただのひとつも使わずに卒業の春を表現したのである。

 私などのあまり知性のない季節感で言うと、実際に「なかなか日が暮れないなァ……」と思うのは、今日、今のような、夏至前後、夏のことだ。

 夏の日の落ちにくさは、そこをそのままに言い当てても当たり前すぎて詩にはならない。だから、そのままの季語としては歳時記には載らない。

 さはさりながら、日が長く、暑いことは確かだ。これがどう扱われているかというと、「夜が短い」として季語になっているわけである。つまり、日が落ちにくいことの「ウラ」が詩になる、というわけだ。「短夜」の傍題には「明け易し」「明け早し」「明け急ぐ」などがあり、語感として熱帯夜などとも隣り合い、かつ、もっと間接的に奥ゆかしく表している。

 竹下しづの(じょ)

短夜や乳ぜり泣く児を須可捨焉乎(すてっちまおか)

……という一句がある。この「須可捨焉乎」というところ、漢文で訓み下せば「焉」は強意の終止形で訓まず、「()()くあらく()」「(すべくあら)()()けん()」、「(すべか)らく捨つ()()」とでもなるところだが、しづの女はこれを「すてっちまおか」と()ませている。

 デリカシーと言語感覚のない向きはこれを読んでムキになって、「児童虐待だ」なぞと叫びだしそうだが、勿論そんな児童虐待の句ではない。簡単な句ではないのだ。手っ取り早く言えば反語で、「ああもう、こんな子、捨てちゃおうか、……違う、違う違う、そんなはずないじゃない、ああ私の赤ちゃん……!」といった読解がわかりやすいところだが、実はそれも人生を一面でしか見ていない、通り一辺の読解に過ぎないことは、何度もこの句を味わうと腑に沁みるようになる。

 なんにせよ、夏の日がながいことは、悩ましく愛憎、メランコリーと繋がるものだと思う。

過ぎ行きや短夜()さば風の()む   佐藤俊夫

#kigo #jhaiku #haiku #saezuriha 

今日の飲み料

投稿日:

 日曜が静かに暮れていく。近くのスーパーへ行って、この前初めて飲んでみて旨かったブラックニッカ・ディープブレンドを買う。

 日向水程度にぬるい残り湯で行水。夏はこれでいい。

 それから一杯。

image

夏人事

投稿日:

 「夏人事」と書くと、普通は夏の人事異動を思い浮かべることと思う。私の職場なども、夏は一斉の人事異動があり、春と同じく送別会や歓迎会が多い季節である。

 だが、この「人事」という言葉、ビジネスや職務アサインの意味ではなく、もう少しゆかしい意味合いがあることをご存知の向きはあまり多くない。

 辞書を紐解いてみよう。手元の「広辞林」によると、こうした会社や職場に起こることの意味合いとしては「一身上に関した事項。個人の身分能力に関した事項。」と書かれている。だが、これはいくつかある「人事」という言葉の意味の、2番目として書かれており、この広辞林に限ってではあるが、人事という言葉がビジネス用語としての意味合いを第一義とはしていないことがうかがえる。

 では1番目にはどう書かれているのかというと、

「人間社会にあらわれる事件。人世の事実。」

……とある。

 なんだかピンと来ないが、実際のところ、少し古い言葉の使い方では、こちらの意味合いのほうが「人事」という言葉には濃かった。かつてはそういう使い方をしたのである。

 私が俳句を詠むときに愛用している角川の歳時記では、項目の配列が「時候・天文・地理・生活・行事・動物・植物」となっているが、昔のスタンダードであった古いもの、例えば手元の平凡社のものなどでは、この中の「生活・行事」の項目は「人事」となっていたものであった。これは、他の歳時記でも同じで、私が子供の頃、俳人だった母が所属していた同人「京鹿子(きょうかのこ)」編集の歳時記でも「人事」としてあった記憶がある。

 試みに書店へ行き、何種類かある歳時記を繰っていただくと、「生活」となっているものと「人事」となっているものの2種類があり、古い編集のものほど「人事」とする傾向があることをご確認いただけるだろう。

 さて、この生活や行事と言った意味合いでの「人事」、歳時記でこの項目を見ていて最も楽しいと思えるのは、どの歳時記の人事の項目の中にも、ひとかたまりにまとめられている「食べ物」に関する部分だ。

 季節が夏だと、秋などにくらべて食べ物の記載はあまりないのではないか、と思われるかもしれないが、なかなかどうして、暑くて食欲が減退しそうな季節であるにもかかわらず、結構、夏の食べ物の季語は多い。

 試みに、角川の歳時記から抜き書きしてみると……。

  •  粽(ちまき) 茅巻(ちまき)、笹粽、粽結ふ
  •  柏餅(かしわもち)
  •  夏料理
  •  筍飯
  •  豆飯 豆御飯
  •  麦飯
  •  鮓(すし) 鮨(すし)、馴鮓(なれずし)、押鮓(おしずし)、早鮓(はやずし)、一夜鮓(いちやずし)、鮒鮓(ふなずし)、鯖鮓(さばずし)、鯛鮓(たいずし)、鮎鮓(あゆずし)、笹鮓(ささずし)、柿の葉鮓、朴葉鮓
  •  水飯(すいはん) 水飯(みずめし)、洗ひ飯、水漬(みずづけ)、飯饐ゆ(めしすゆ)、汗の飯
  •  冷麦(ひやむぎ)
  •  冷索麺(ひやそうめん) 冷素麺、索麺冷やす、流し索麺
  •  冷し中華
  •  冷奴
  •  胡瓜揉(きゅうりもみ)
  •  冷し瓜 瓜冷す(うりひやす)
  •  茄子漬 なすび漬
  •  鴫焼 焼茄子
  •  梅干 梅干す、梅漬、夜干しの梅、干梅、梅筵(うめむしろ)、梅酢
  •  麦酒(ビール) ビール、黒ビール、生ビール、地ビール、ビヤホール、ビヤガーデン、缶ビール
  •  梅酒
  •  焼酎 麦焼酎、甘藷焼酎(いもしょうちゅう)、蕎麦焼酎、泡盛
  •  冷酒(ひやざけ)、冷酒(れいしゅ)、冷し酒(ひやしざけ)
  •  甘酒 一夜酒
  •  新茶 走り茶、古茶
  •  麦茶 麦湯
  •  ソーダ水
  •  サイダー
  •  ラムネ
  •  氷水 かき氷、夏氷、氷小豆(こおりあずき)、氷苺(こおりいちご)、氷店(こおりみせ)、削氷(けずりひ)
  •  氷菓 氷菓子、アイスキャンデー、アイスクリーム、ソフトクリーム、シャーベット
  •  葛餅(くずもち)
  •  葛切(くずきり)
  •  葛桜(くずざくら) 葛饅頭(くずまんじゅう)、水饅頭
  •  心太(ところてん) こころぶと
  •  水羊羹
  •  ゼリー
  •  白玉
  •  蜜豆 餡蜜
  •  麨(はったい) 麨粉(はったいこ)、麦こがし、麦香煎(むぎこうせん)
  •  洗膾(あらい) 洗鯉(あらいごい)、洗鯛(あらいだい)
  •  泥鰌鍋(どじょうなべ) 泥鰌汁、柳川鍋
  •  土用鰻(どよううなぎ)
  •  沖膾(おきなます)
  •  水貝(みずがい)

……等々。

 読んでいてお腹が空いてくるような、つばきがわくような感じがしないだろうか。

 中には、例えば「筍飯」や「鮨」、あるいは「ゼリー」などのように、「へえ、これ、夏の季語なんだ?」と、思えるものもあるし、あるいはここにないもの、「新しい蕎麦は夏の盛りにでるけど?」というようなものもある。これは、「夏」というのが立夏から立秋直前までを言うから、というところにも理由がある。つまり、初夏はまだ筍の季節だし、新蕎麦の出る8月はもう秋に入っている、というわけだ。

 なんにせよ、今日も暑いが、なにかおいしいものでも食べて、元気を出したい。

投稿日:

 蝉が鳴き始めた。今朝土から出て、脱皮したものらしい。耳鳴りかな、とでも思うような微かな鳴き方から、少しづつ少しつづはっきりと大きな声で鳴き始めた。

 いつもの年は、蝉などいつの間にか鳴き始めているに過ぎなかったので、鳴き始める瞬間を聞くというのは初めてだ。

 まもなく梅雨も明ける。

リモコンでLEDコントロール

投稿日:

 秋月電子で買ったリモコン、せっかくだから、これでLEDを点けたり消したりしてみよう。ただ単に点滅ではいまいち芸がないから、3色LEDの照度を多段階に変えたり、色をいろいろに変えたりしてみようではないか。

 買ってきたリモコン

 IR受信ライブラリを使ってみたが、どうも安定しない。リモコンからはコードが連続送出されるようなのだが、受信ごとに違う値が返ってきて困る。

 調べてみると、0xffffff、すなわち24ビットを超える値が返ってくるときはどうやら受信がうまく行っていないことがわかったので、これを排除してみたところ、うまくいくようだ。

 そこを通り抜けると、今度はどうも、使用するピンの組み合わせに約束があるようだ。はっきりとはわからないのだが、PWMを9・10・11、IRリモコン受信モジュールを12で使うと、さっぱりうまく行かない。

 いろいろと変えて、LEDのためのPWMをR・G・Bそれぞれ9・5・6に割り付けるとうまくいくことがわかった。……理由がなんだかよくわからないのだが(笑)。

 スケッチは結局こうなった。

//
//  IR2LED.ino
//    赤外線リモコン「DFR0107」(DFROBOT社)でLEDをコントロールする。
//    https://satotoshio.net/blog/?p=1490
//    27.7.11(土) 1755~
//    佐藤俊夫
//    
#include <IRremote.h>

const int LEDR = 9, LEDG = 5, LEDB = 6, IRR = 12;
IRrecv irrecv(IRR);
decode_results results;

void setup()
{
  irrecv.enableIRIn(); // Start the receiver
  pinMode(LEDR, OUTPUT);
  pinMode(LEDG, OUTPUT);
  pinMode(LEDB, OUTPUT);
  pinMode(IRR, INPUT);  
}

void loop() {
  if (irrecv.decode(&results)) {
    if(results.value <= 0xffffff && results.value > 0xfd0000){
      processValue(results.value);
    }      
    irrecv.resume(); // Receive the next value
  }
}

void processValue(long int value){
  static boolean ledOn = true;
  static unsigned int r = 255, g = 255, b = 255, combi = 0x07;
  switch(value){
    case 0xfd00ff:  //  vol+
      if(ledOn == true){
        ledOn = false;
      }else{
        ledOn = true;
      }
      break;
    case 0xfd807f:  //  vol-
      if(r < 255 - 10) r += 10;
      if(g < 255 - 10) g += 10;
      if(b < 255 - 10) b += 10;
      break;
    case 0xfd906f:
      if(r > 0 + 10) r -= 10;
      if(g > 0 + 10) g -= 10;
      if(b > 0 + 10) b -= 10;
      break;
    case 0xfd609f:  // >>|
      if(combi < 0x07){
        combi++;
      }else{
        combi = 0x01;
      }
      break;
    case 0xfd20df:  // |<<
      if(combi > 0x01){
        combi --;
      }else{
        combi = 0x07;
      }
      break;
    default:
      break;
  }
  controlLED(ledOn, r, g, b, combi);

}

void controlLED(const boolean on, const int r, const int g, const int b, const int combi){
  unsigned int ron = 0, gon = 0, bon = 0;
  
  ron = (0x04 & combi) > 0;
  gon = (0x02 & combi) > 0;
  bon = (0x01 & combi) > 0;
  delay(20);
  if(on){
    analogWrite(LEDR, (255 - r * ron));
    analogWrite(LEDG, (255 - g * gon));
    analogWrite(LEDB, (255 - b * bon));
  }else{
    analogWrite(LEDR, 255);
    analogWrite(LEDG, 255);
    analogWrite(LEDB, 255);
  }
}

今日の一杯

投稿日:

 暑中である。もう梅雨も明けようかと言う頃おいだ。今日のように天気が良いと、まさしく「風薫る……」のみぎり、という気がする。

 自動車の定期点検の案内が来たので、新越谷駅近くのトヨタへ持っていく。

 2時間ばかりかかるとのことで、無聊なので車を預けて駅前をうろつくうち、そうだ、と思いついて行きつけの床屋「E.T.」へ行く。

 いつも1ミリのバリカンで極端に刈り上げてもらい、ふた月ぐらい保たせてから床屋へいくのだが、たまたま今日で4回続けて同じ理容師のお姉さんが担当になった。満6ヶ月、同じお姉さんだ。

 客あしらいの良い、若い明るいお姉さんで、「いつもの『1ミリ』ですね」と、ふた月に一遍しか来ない私のことをよく覚えてくれている。キリッとした美人さんで、少し雑談もする。こういう床屋さんは屈託が紛れて気分が良い。

 ダイエー・サンシティへ回ってみる。5階の「ヤマダ電機」、どうなったかなと見に行ってみると、経済ニュースで報じられていた本社経営方針の通り、ついこの前オープンしたばかりだというのに、「完全閉店のお知らせ」の貼り紙が出ている。目の回るような無常のさま、驚くばかりだ。企業はどこも経営スピードを追求していて、店を出すのも仕舞うのも、めまぐるしく忙しいことである。「兵は拙速を尊ぶべし」と孫子の兵法にあるが、雇用の観点からは、地域から応募したパートさんたちなど、あいた口がふさがるまい。

 ダイエーの6階は、以前はたしか空きフロアだったように思うが、越谷市南部図書館がどうやらこちらに移ったようだ。フロアも広くなり、カフェ風の造作になっている。無料で冷房もよくきいているせいか、多くの老若男女が静かにのんびりと過ごしていた。

 新越谷VARIEに行ってみる。こちらはさすが日に50万人が利用する駅のことだから、ダイエーと違って活気がある。

 無印良品へ行く。こちらもスピード経営で、棚の順番、品揃えなど、毎回すばやく変わっている。客としては「この前買ったアレ」がすぐになくなり、かつ、行く度に置いてある棚が変わるので商品が探しにくく、私のような融通のきかないオッサンにとってはまことに買い物がしにくい。だが、まあ、企業が生き残るには仕方のないことなのだろう。

 旭屋書店をうろついていると、池波正太郎の文庫本、「江戸の味を食べたくなって」が目に入ったので買う。野坂昭如の「火垂るの墓」の、昔の編集のほうの文庫本がある。「ラ・クンパルシータ」「プアボーイ」などの入った新潮社のもので、思わず買いそうになったが、まあ、無駄遣いだからと思ってやめておく。

 1階の「カルディ・コーヒーファーム」へ寄り、ワインを買う。シュロデール・エ・シレーの「ボルドー・ブラン シグナチュール」の白。

 帰ってさっそくコイツをよく冷やし、至福至福。安い酒ほど安心できて、飲んでて却って幸せだ。

image


祇園囃子

投稿日:
老母さぞ舞ひけむ祇園囃子過ぐ   佐藤俊夫

#kigo #jhaiku #haiku #saezuriha (季語は『祇園囃子』、夏。)