Quantcast
Channel: JH7UBCブログ
Viewing all 440 articles
Browse latest View live

春の雑草その3

$
0
0
 連日、春とは思えない暑い日が続いています。

 こちらは、田植えがほぼ終わり、初夏を迎えます。

 家の周りを見渡し、何枚か雑草と林の樹木の花を撮影しました。

ハルジョオンです。

イメージ 1

ヒメジョオンとたいへん似ていますが、ヒメジョオンより1か月ほど早く開花し、つぼみがたれさがっています。

カラスノエンドウ

イメージ 2

イメージ 3

似ている植物にスズメノエンドウとカスマグサがありますが、小葉の幅や托葉などで区別がつきます。

私の住んでいる場所の字名は、大森といい、まだあちこちに森があります。

その森に目を移すと白い花をたくさんつけた樹木があります。

イメージ 4

カメラをズームアップして撮影すると

イメージ 5

花の形、葉の形からミズキの木と思われます。

更に森を見ると大きな花をつけた木があります。

ホオノキの花です。

イメージ 6

大きな花です。

季節はもう春と言いうより初夏ですね。



I2CバスリピータPCA9515

$
0
0
 昨日から久しぶりの雨です。畑には恵みの雨になりました。

 というわけで、家庭菜園の作業は休み、ラズパイを久しぶりにいじっています。

 ラズパイの参考書として使っている「Raspberry Piで学ぶ電子工作」の中で使われている小型LCDの表示実験をしました。
 使う小型LCDは、秋月電子のAQM0802Aモジュールです。以前に実験した時には、うまく表示できませんでした。
 原因は、秋月電子のAQM0802Aの商品表示のページに説明がありました。説明と対策はこちら

 対策は、I2CバスリータPCA9515を使うことです。

 まず、PCA9515をDIP化する作業から始めます。使う部品は、PCA9515とDIP化基板と基板用リードフレームです。

イメージ 1

 PCA9515は、SOPパッケージですので、基板へのはんだ付けは、そう難しくはありません。でも、ハズキルーペのお世話になりました。Hi

DIP化ができました。(2個作りました)
イメージ 2

これを下のように接続します。
イメージ 3

まず、AQM0802AのI2Cアドレスを表示させてみます。
イメージ 5

I2Cデバイスを認識し、I2Cアドレスが表示されました。(3eです)

ダウンロードした小型LCDの表示テススクリプトを実行してみました。

イメージ 4



5月26日の畑

$
0
0
 一昨日、昨日と雨がしっかり降り、畑に十分水分が補給されました。Very Goodです。

 というわけで、今日はハツカダイコンの2回目の種まきをしました。(手前から3列目のネットです)

イメージ 1

 最初に蒔いたハツカダイコンは、本葉が開きましたので、追肥(化成肥料30g/㎡)をし、土寄せを行いました。

 後、10日ほどで収穫できるでしょう。

イメージ 2

  トウモロコシとつるなしインゲンは、完全に発芽しましたので、不織布をはずしました。手前がインゲン、奥2列がトウモロコシです。

イメージ 3

 ホウレンソウ、コマツナも発芽し、トマトとピーマンの苗は順調に成長しています。

 しかし、ナスは、先週の高温で2本元気がありません。なんとか持ち直してくれると良いのですが・・・

 これからは、朝夕畑を見て、管理していくことになります。

初夏の雑草

$
0
0
 雨が降ったせいか、家の周りの雑草が一気に伸びたような気がします。

 今日もカメラを持って、雑草をパチリ。

 まずは、カタバミ

イメージ 1

 実が熟すとはじけて、種を飛ばします。

 家のそばに咲くコウリンタンポポ(紅輪蒲公英)
イメージ 2

イメージ 3

 帰化植物で、繁殖力が強くアッという間に広がります。

同じように最近はびこっている帰化植物がフランスギク
イメージ 4

イメージ 5

 森では、ニセアカシアが満開です。
イメージ 6

イメージ 7


ヘビがいた!

$
0
0
 雑草の写真を撮っていると、お隣さんの「ヘビがいるー!」の声。

 行ってみると体長60cmほどの比較的小さい蛇がじっと動かない状態でいました。

 このヘビの種類は?

 今まで見たことがないので、カメラで撮影しました。

イメージ 1

 頭は黒く、斑模様のヘビです。

 ネットで調べると、「シロマダラ」というヘビのようです。

 アオダイショウやシマヘビと比べれば、見る機会の少ないヘビです。私は初めて見ました。

 威嚇するときは鎌首をもたげます。いかにも毒蛇のようですが、毒はないそうです。

 また、死んだふりをするようで、じっとしていたのはそのせいですね。

 手で摑まえる勇気はなく、トングで挟んで、近くの森に運んで逃がしてやりました。

Raspberry Pi Python AQM0802A

$
0
0
 先日、ラズパイで、小型のI2C LCD AQM0802Aの表示テストをしました。

 ポイントを備忘録として、まとめておきます。(高齢者の仲間入りをして、かなり忘れっぽくなっています(笑))

 まず、Raspberry PiでI2C通信を行うためには、メニュー→設定→Raspberry Piの設定→インターフェースと進み、
I2Cを有効にします。

 Pythonのスクリプトでは、

 smbusライブラリをインポートします。 import smbus
 smbus.SMBus(bus_number)でコネクションオブジェクトを取得 例 bus = smbus.SMBus(1)
 I2Cで、デバイスの書き込む方法は、2通り
 複数のバイトを連続して書き込むには、 bus.write_i2c_block_data(addr,cmd,vals) #valsは、複数のバイト
 1バイトを書き込むには、bus.write_i2c_byte_data(addr,cmd,val) #valは、1バイトデータ
 addrrは、デバイスのI2Cアドレス、今回のAQM0802Aは、0x3e
 cmdは、0x00の時、続くデータバイトは、コマンド
      0x04の時は、データ

 なお、AQM0802Aのコマンドと詳細な説明は、秋月電子のAQM0802Aのページにあるpdfデータを参照します。
 
 AQM0802Aを初期化する方法もこのデータシートに書いてありますが、例えば、次のように行います。(拡張コマンドの次にfollower Control 0x6cが抜けています。失礼)

イメージ 1


 AQM0802Aのコントラスト調節は、ソフトで行います。上の図の拡張コマンドの部分で行っています。

 具体的にはPowe/Icon/Contrastの下位2ビット+Contrast set の下位4ビットの6ビットでコントラストの数値を指定します。この値は、30~40で、電圧3Vの場合、32程度です。この例では、32=0x100000としいます。

 他のコマンドは、LCD 1602とほぼ同じです。

 初期化のスクリプトは、例えば、次のようになります。
addr = 0x3e
register_set = 0x00
register_disp = 0x40
として

def setup_AQM0802A():
    bus.write_i2c_block_data(addr,register_set,[0x38,0x39,0x14,0x70,0x56,0x6c])
    sleep(0.2)
    bus.write_i2c_block_data(addr,register_set,[0x38,0x0c,0x01])
    sleep(0.001)

他のコマンドについては、こちらからダウンロードしたスクリプトを参照します。
 

カブラハバチ

$
0
0
 久しぶりに良い天気になりました。暑くなりそうです。

 午前中、ちょっとだけ農作業をしました。今日は、ルッコラの間引きです。3~4cmに間引きしました。この後、追肥も必要なく、収穫時期になったら収穫します。

イメージ 1

 昨日、間引きした小松菜にカブラハバチが、たくさん来ています。卵を産んでいるんでしょうね。

 このカブラハバチの幼虫が、いわゆるナノクロムシ(菜の黒虫)です。無農薬農業には、やっかいな害虫です。

イメージ 2

 小松菜のそばには、ホウレンソウが芽を出しているのですが、そちらには、行きません。

 名前の通り、アブラナ系の植物が好きなんですね。

 カブラハバチの被害を防ぐには、ネットをかけるのが一番です。
イメージ 3


初夏の雑草その2

$
0
0
 今日も良く晴れました。

 田植えが終わった田んぼに、初夏の風が吹いています。

 郵便局に行った帰りに車を止めて、風景と野の花を撮影しました。

イメージ 1

 畦(あぜ)に白く見えるのは、フランスギクです。こんなところにも、入り込んでいるんですね。

 休耕田には、黄色い花が一面に咲いています。

イメージ 2

 タンポポに似ていますが、ニガナの仲間で、「ジシバリ」です。湿地を好みます。

イメージ 3

更にあたりを見ると「ノニガナ」が咲いています。

イメージ 4

イメージ 5

アカツメクサも咲いています。

イメージ 6

イメージ 7

 夢の森の近くの東山では、「タニウツギ」が満開です。

イメージ 8

イメージ 9

その足元を見るとキンポウゲ科の「キツネノボタン」が咲いています。

イメージ 10

イメージ 11

野草には黄色い花が多いような気がします。(目立つからそう感じるのかな・・)




Raspberry Pi3 Python実行速度

$
0
0
 私が使っているRaspberry Pi3のクロックは、1.2GHzです。

 そのラズパイ上で動くPythonインタプリタは、どの程度の速度で動いているのかな?という疑問が湧きました。

 簡単なスクリプトで、速度を計ってみました。

 いわゆるLチカ(LEDの点滅)のプログラムで、sleep時間を除いて

while True:
    GPIO.output(25,GPIO.HIGH)
    GPIO.output(25,GPIO.LOW)

だけで、whileループを回して、GPIO25の出力をpico scopeで観察してみました。

イメージ 1

 画面からすると、1つの関数を実行するのに要する時間が、約1.5usです。

 画面を見ていると、その実行速度は若干変わります。

 Linux上で、マルチタスクで動いているのですから、仕方がないですね。

 この後、LCD1602の表示実験をしようと思っています。

Raspberry Pi Python LCD1602

$
0
0
 マイコンでは、定番のLCD表示器LCD1602をラズパイで表示する実験をしました。(言語はPython)

 Web上には、I2CのLCD1602の表示例は、見られますが、従来のLCD1602の表示例は、あまり見られません。

 海外のサイトには、いくつか例が見られ、MBTECHWORKSというサイトのスクリプトを試しました。

 使用したLCD1602は、aitendoの1602A-VA-Bです。

イメージ 1

 接続の回路図は

イメージ 2

 LCD1602には、VDDとVssが反対の物もありますので、要注意。

また、バックライトのA(アノード)への電源への接続も、直接接続するものと、上の図のように電流制限抵抗を入れるものとがありますので、これも要注意。

更に、LCDのR/Wは、必ずGNDに接続します。これは、5V用のLCD1602を使用する場合、LCDからの情報(BUSYチェックなど)を受け取る場合は、5Vの信号が来てしまうため、LCD1602をWriteモードだけで使用するためです。

次は、LCD1602にI2C用のアダプタを装着したものの表示テストをします。

今年の初収穫

$
0
0
 5月15日に種まきをした、ハツカダイコンとルッコラを初収穫しました。

 6月に入ってからぐずついた天気が続き、生育が遅れましたが、種を蒔いてから23日目で、初収穫できました。

イメージ 1

 まだ、1回食べれば終わり程度の量ですが、明日からは、もっとたくさん採れそうです。

自家製野菜の季節の到来です。

6m JT65

$
0
0
 家庭菜園の作業と除草作業の間、50MHz(6m)のJT65をパソコンにワッチさせてみました。

 今日の昼頃は、沖縄のビーコンも宮崎のビーコンも聞こえていません。

 でも、けっこうDXが入感しているんですね。

イメージ 1

Rasperry Pi I2C

$
0
0
 I2CアダプタをつけたLCD102をRaspberry Piで表示する勉強をしています。

 Raspberry PiのPythonで、I2C通信をbyte単位で行う関数は、

 write_byte_data(アドレス,コマンド,1バイトの値) です。

 実際にどのような信号がラズパイから出ているのか観察してみました。 

 測定用に次のような簡単なスクリプトを書き、I2Cの出力をpico scopeで記録しました。

from time import sleep
import smbus
bus = smbus.SMBus(1)
LCD_address = 0x27
try:
    while True:
        bus.write_byte_data(LCD_address,0x00,0x12)
        sleep(0.0001)
except KeyboardInterrupt:
    pass

ラズパイのSCLとSDA信号です。
イメージ 1

SCLの周波数は、約62.5KHzで、パルス幅は、約8usです。

1byteを送るのに要する時間は、約140usです。

I2Cデバイスを接続しないとIOエラーが出ます。

これを参考にして、I2Cアダプタ付きのLCD1602の表示テストのスクリプトを書いてみます。 

Raspberry Pi I2C LCD1602

$
0
0
 Raspberry Pi3 Model BでI2Cシリアルインターフェース付きのLCD1602の表示実験をしました。

 LCD1602は、アマゾンから購入したSODIAL LCD1602で、I2Cシリアルインターフェースモジュールは、同じくアマゾンから購入したEasy Word Mallのもので、LCD1602の裏側にはんだ付けしてあります。

イメージ 1

 このモジュールには、PHILIPS社のPCF8574というI2Cバス・8ビットパラレルバスインターフェースICが使われています。つまり、I2Cシリアルバスのデータ受信し、ACK信号で8ビットパラレスバスに出力する、シリアル・パラレルインターフェースです。

 まず、このモジュールのI2Cスレーブ・アドレスを調べました。0x27です。

イメージ 2

 PCF8574モジュールとRaspberry Piの接続は、LCD側が5V、ラズパイ側が3.3Vなので、I2Cレベル変換モジュールを間に入れました。

 下の図の回路図ように接続しました。

イメージ 3

 表示テストのスクリプトは、前の記事LCD1602表示テストの記事Circuit Basicsというサイトなどを参考にして、自分なりに書いてみました。

 テストに使ったスクリプトです。
--------------------------------
"""
I2C LCD1602 test
use PCF8574 I2C pararel interface
2017.6.12
JH7UBC Keiji Hata
"""
# -*- coding:utf-8 -*-
from time import sleep
import smbus
#PCF8574 LCD1602 connection
#P0 = LCD RS
#P1 = LCD R/W
#P2 = LCD E
#P3 = LCD BackLight
#P4 = LCD DB4
#P5 = LCD DB5
#P6 = LCD DB6
#P7 = LCD DB7
bus = smbus.SMBus(1)
LCD_addr = 0x27
LCD_EN = 0b0000100#LCD Enable
LCD_BL = 0b0001000#LCD BackLight
LCD_CMD = 0x00#command mode
LCD_CHR = 0x01#character mode
LCD_CHARS = 16
LCD_LINE1 = 0x80#Line1 top address
LCD_LINE2 = 0xC0#Line2 top address

def LCD_write(bits,mode):
    #High 4bits
    data = (bits & 0xF0) | mode
    bus.write_byte_data(LCD_addr,(data | LCD_EN | LCD_BL),(data | LCD_BL))
    sleep(0.0001)#wait 100us
    #Low 4bits
    data = ((bits << 4) & 0xF0) | mode
    bus.write_byte_data(LCD_addr,(data | LCD_EN | LCD_BL),(data | LCD_BL))
    sleep(0.0001)#wait 100us

def LCD_init():
    LCD_write(0x33,LCD_CMD)
    LCD_write(0x32,LCD_CMD)
    LCD_write(0x06,LCD_CMD)
    LCD_write(0x0C,LCD_CMD)
    LCD_write(0x28,LCD_CMD)
    LCD_write(0x01,LCD_CMD)
    sleep(0.001)

def LCD_text(message,line):
    message = message.ljust(LCD_CHARS," ")
    LCD_write(line,LCD_CMD)
    for i in range(LCD_CHARS):
        LCD_write(ord(message[i]),LCD_CHR)

def main():
    while True:
        LCD_text("Hello World!",LCD_LINE1)
        LCD_text("JH7UBC",LCD_LINE2)
        sleep(3)
        LCD_text("ABCDEFGHIJKLMNOP",LCD_LINE1)
        LCD_text("1234567890123456",LCD_LINE2)
        sleep(3)
try:
    LCD_init()
    main()
   
except KeyboardInterrupt:
    pass
------------------------------------------
テストの様子です。
イメージ 4

 とりあえず、初期化と表示だけの実験です。

他の関数、機能も加えて、近いうちに詳細をJH7UBCホームページに掲載したいと思います。


6月の野草

$
0
0
 畑や家の周りで咲いている花を撮影してみました。

 「オオキンケイギク」です。特定外来生物に指定されていて、繁殖力旺盛性です。近年群生が見られます。

イメージ 1

花には蝶がやってきます。

イメージ 2

イメージ 3

庭の片隅に「ナツシロギク」が咲きました。植えたわけでもないのですが、どこからか種が飛んできたのでしょうか。薬用ハーブとしてヨーロッパでは古くから栽培されているようです。

イメージ 4

イメージ 5

畑に生えてきた「ムシトリナデシコ」です。
イメージ 6

花の下の茎がねばねばして、虫がくっつくことがあるので、この名前がついたようです。

イメージ 7



Arduino I2C LCD1602

$
0
0
 先日、Raspberry Piで、I2Cシリアルパラレル変換モジュール付のLCD1602の表示テストをして、うまくいきました。

 そこで、今回は、そのプログラムをArduino用に移植してみました。

 Arduinoでは、LCDの表示は、ライブラリーを使いますが、今回のテストでは、ライブラリーを使わないで、I2C LCD1602に文字を表示することができました。

イメージ 1

 ArdinoとI2C LCDとの接続は
 Arduino  LCD
 GND     GND
 5V        Vcc
 A4        SDA
 A5        SCL
です。

 テストしたスケッチは、次の通りです。

--------------------------------------------------------
/*
 * I2C LCD1602 Display test
 * 2017/6/20
 * JH7UBC Keiji Hata
 */
 #include <Wire.h>
 #define  addr  0x27
 #define  LCD_EN    0b00000100//Enable
 #define  LCD_BL    0b00001000//Back Light
 #define  LCD_CMD 0x00
 #define  LCD_CHR 0x01
 #define  LCD_LINE1 0x80
 #define  LCD_LINE2 0xC0
 
void setup() {
  Wire.begin();
  LCD_init();
  LCD_display();
}
void LCD_write(byte bits,byte mode){
  //High 4bits
  Write_data((bits & 0xF0) | mode);
  //Low 4bits
  Write_data(((bits << 4) & 0xF0) | mode);
}
void Write_data(byte data){
  Wire.beginTransmission(addr);
  Wire.write(data | LCD_EN | LCD_BL);
  Wire.write(data | LCD_BL);
  Wire.endTransmission();
  delayMicroseconds(100); 
}
void LCD_init(){
  LCD_write(0x33,LCD_CMD);
  LCD_write(0x32,LCD_CMD);
  LCD_write(0x06,LCD_CMD);
  LCD_write(0x0C,LCD_CMD);
  LCD_write(0x28,LCD_CMD);
  LCD_write(0x01,LCD_CMD);
  delay(1);
}
void LCD_clear(){
  LCD_write(0x01,LCD_CMD);
  delay(1);
}
void LCD_home(){
  LCD_write(0x02,LCD_CMD);
  delay(1);
}
void LCD_cursor(byte x,byte y){
  if (y == 0){
    LCD_write(LCD_LINE1+x,LCD_CMD);
  }
  if (y == 1){
    LCD_write(LCD_LINE2+x,LCD_CMD);
  }
}
void LCD_text(String s){
  for (int i=0; i< s.length(); i++){
    LCD_write(s.charAt(i),LCD_CHR);
  }
}
void LCD_display(){
  LCD_text("Hello World!");
  LCD_cursor(8,1);
  LCD_text("JH7UBC");
}

void loop() {
}
--------------------------------------------------------
以外に簡単なスケッチで、表示させることができます。

ハツカダイコンとピーマン

$
0
0
 2回目の種まきをしたハツカダイコンを収穫しました。65本あります。今年は良い出来です。

 ちなみに、1畝あたりの収量は、畝の長さが4.5mで、2列の種を蒔き、間引きをして、3~4cm間隔にしますので、約250本です。

イメージ 1

 我が家では、ハツカダイコンは、漬物にして食べます。

 酢漬け、辛子漬け、味噌醤油漬けなどをしますが、辛子漬けがおいしいです。

 ピーマンは、今日初収穫しました。最初の収穫は、苗に負担をかけないいように、小さいうちに採ります。

イメージ 2

 この後、ナス、インゲン、トマトができます。間もなく夏野菜の季節です。

クサフジ

$
0
0
 昨日の雨は、畑には恵みの雨でした。

 今日は、不安定ながら、晴れたので、猪苗代町方面に県道7号線を通ってドライブに行きました。

 途中、磐梯町を通ると、田んぼの畔に紫色の花がたくさん咲いています。

イメージ 1

 はて、なんという植物だろう? 側道に車を止め、近寄って、撮影すると

イメージ 2

 家に帰って調べると、「クサフジ」でした。

 カラスノエンドウ、スズメノエンドウにも似ていますが、咲く時期が少し遅く、花の形も違います。

 茎は、角ばっていて、葉の先端が巻きひげになっていて、からみつきながら成長します。

LM380非革命アンプの製作

$
0
0
 以前から作りたいと思っていた、LM380非革命アンプを製作しました。

イメージ 1

回路図です。

イメージ 2

 製作は、ランド法で行いました。

 LM380は、4.5cm×10cmの銅板に直接はんだ付けしました。(この写真では、7番ピンがまだはんだ付けしていません)

イメージ 3

 銅は、熱伝導率が良いため、ワット数の大きいはんだこてを使いましたが、銅板が十分に熱くならないとはんだ付けできません。

 0.1uFと2200pFは、フィルムコンデンサを使いました。手持ちの部品を使った関係で入力のボリュームは、10kΩのデテントボリュームを使っています。

 入力端子にいたっては、40年以上前にアンプの製作に使ったものです。スピーカ端子は、ジョンソンターミナルです。

 そういえば、オーディオアンプの製作は、40年以上ぶりです。

 回路チェックの後、シャックで、試聴を行いました。

イメージ 4

SONYのミニコンポのCDプレーヤーの出力を自作のプリアンプを経由して、LM380非革命アンプに入力しました。

(写真の左側、上からLM380非革命アンプ、SONYのカセットでんすけ、自作プリアンプ、自作メインアンプ)

ジャズのCDを何枚かかけてみました。

歪の少ない素直な音質です。低域は、良く伸びています。音量は普通に聞くには十分です。

比較のために、自作のSA627 2SD188 出力トランス付き40Wアンプ(安井章氏設計)と聞き比べてみました。

自作アンプの方が力強い音です。比較するとLM380アンプは、音がうすっぺらい感じがします。

スイッチを入れた時のポップノイズは、予想より小さかったです。ハム音などもなく、これはこれで十分使えるアンプであると思います。

ハハコグサ

$
0
0
 昨日から雨がシトシト降り続いています。梅雨ですね。

 畑では、つるなしインゲン(サツキミドリ)の花が咲き始めました。

イメージ 1

イメージ 2

  真っ白な、きれいな花です。

 この雨で、雑草も勢いが増しています。

 「ハハコグサ」が畑のあちこちに咲いています。

イメージ 3

イメージ 4

 ハハコグサの特徴は、茎や葉が白い毛で覆われていることです。名前の由来もここからくるようです。

 別名、ホウコグサ、御形(ゴギョウまたはオギョウ)で、春の七草のひとつです。

 似ているものチチコグサがあります。
Viewing all 440 articles
Browse latest View live