にゃん太郎とアマチュア無線

メインクーンのにゃん太郎と趣味のアマチュア無線と電子工作の記録です。

DIY Rotating LED Kit POV Soldering Training Kit その2


前のやつに続いて、またBanggoodのこれを作ってみました。いまちょうど12%OFFをやっています。
6ba555d0-4b8d-48cf-b5d9-d1756034469a

しかし今度は結構難易度が高いです。チップ部品の取り付けはなんとかなるけど、写真のように基盤の表と裏にそれぞれLEDチップの+と-を挟んで半田つけなんて経験したことないし、えらく難易度が高い。初試行錯誤でいろいろやってみましが、なんとかLEDを裏返しにしてマスキングテープに貼りつけて上から基盤をを押しあてるようにして半田付けをしました。
ここまでがちょっと大変。

DSC03425

DSC03431

でもって完成したんですが、まだところどころ点灯していない。orz  これから直したいのですが、チップLEDの手持ちがない。実はこのLED長く半田こてを当てると電極部分が取れてしまうんです。このシリーズのキットは中華製にしては珍しく、チップ部品の予備のパーツを入れてくれてます。特に1個しかない部品に関しても2個入れてくれています。LEDにしても10個ぐらい予備があったんですが、どうも最初の試行錯誤で予備を使いきってしまいました。製作上の注意点です、やはり受光LED(紫)の極性が長いほうが-になっていることです。これを間違うと同期が取れません。

完成はしたんですが、今度は入っているプログラムのhexコードを書き込みソフトのSTC-ISP読み取れなくて苦労しました。ファイルはRARで圧縮されていて結構文字化けだらけです。たぶんRARの日本語環境のRAR解凍ソフトの問題だと思うんですがいろいろな解凍ソフトを試しましたが、結局入っているhexコードは全部全く読み込めないこが判明しました。それでしかななく再コンパイルしてhexコードを作り直して読み込めました。

方法ですが、拡張子UV2のファイルがコンパイルのプロジェクトになっているので、そこを変更します。前のと同じように6つの例が入っていますので、そのフォルダの中にDIY视界.Uv2というファイルがあります。これをDIY.TXTとかにRenameしてから編集して中ほどにあるOutName (DIYハモス・というのを(DIY)に変更します。するとダブルクリックで開けるので、それでそのまま再コンパイルしてhexコードを作り直します。するとDIY.hexができますのでこれだとSTC-ISPで読み込めます。
あとは前のと同じようにSTC-ISPで書き込むのですが、CPUはSTC15L2K16S2 クロックは18.432にしてDownload/Programを押した後、VCCを接続すると書き込みが始まります。

DIY Rotating LED Kit POV Soldering Training Kit Upgraded Version


なんだか無性にチップ部品の半田つけがしたくなってbangoodのDIY Rotating LED Kit POV Soldering Training KitUpgraded Versionを購入してしまいました。組立はチップLedがたくさんあるので手間はかかりましたが、比較的簡単にできます。このキットの間違いやすいところは、原点検出用の発光用赤外線ダイオードと受信用のダイオードの極性が逆になっているところです。これを間違うと同期がとれず、文字の表示がでたらめになってしまいます。でたらめになる場合はまずこれを疑ってください。発光用はデジカメで見るとみられるのですが、紫色の受光ダイオードは見られません。リードの長いほうが-側です。

DSC03424

これが回転して、下記の用に表示します。
DSC03414

ただ表示用の設定とか書き込みに結構苦労しましたので参考までに。。。
ソフトはふつうに解凍すると中国語なのでファイル名が文字化けしてしまします。それで中国語に対応した解凍ソフト zipextractorなんかを使います。解凍ソフトはいろいろありますが、これはインストールしなくとも使えるのでお勧めです。

stc-isp-15xx-v6.70  これはCPUへの書き込みソフトです。最新版がstc-isp-15xx-v6.85pになっているのでそちらを使った方がいいです。これはPl2303とかのCOMポート用のUSBコンバータで書き込みむのですが、P30がTXDでP31がRXDになります。使用方法も全部中国語なんで苦労しましたが、下記のように設定します。

P1

MCU Typeは IAP15W4K61S4を選択 ボーレートは14400ぐらいで適当に。ただInput IRC freqencyだけは18.432に設定してください。これに結構はまった。そしてOpen Code Fileで書き込むHexファイルを指定します。
Download/Programで書き込みますが、まず232CコンバータのピンのVCCを外した状態で接続します。そして書き込みのボタンを押してからVCCを接続すると書き込みが始まります。全部接続状態だと書き込みが始まりません。ボーレート2400だと結構時間がかかります。

入っているHexファイルはソースコード同梱で1から7まで7種類ありますが、7が多機能の最終版で、この7のMost functional effect combinerのHexファイルを書き込んで動作確認をします。これはリモコンの番号1から4を押すと、表示するモードをいろいろ変えられます。まずは中国語が表示されますのでそれで動作確認をします。
単に文字を表示するだけだったら 2 character display programでできます。これは文字コードは下記と同じ手順で書き込めますが、241行名に if( j>768 ) の数字を文字数x16の値に変更してください。768だと48文字です。その数を指定しないと原点検出がうまくできず2週目からうまく表示できなくなります。

表示が全部中国語なのでそのソースコードをいじって好きな文字に表示するようにします。
コンパイル用のソフトはKEIL UV3 8.08 を使います。これなんかインストール後ライセンズをクラックするソフトが付属していていいんだろうか。。。
各添付のサンプルのフォルダの中の拡張子がUV2のファイルがプロジェクトファイルなので、それを直接編集します。なんかDIY篇順.Uv2とか変な名前になってますが、、その中の40行目にある OutName (DIYハモス・というのを OutName (DIY)に変更します。

P2

このソースはいろいろ注釈いれてくれているのだけど、残念ながら文字化けして意味不明です。なんとか苦労して読んでみるとPicture.cの中に表示データが入っています。。最初はBMPの表示みたいで、文字データは240行目あたりから入っています。Hexコードの生成はツールバーの一番下の左から2番目のアイコンをクリックするとできます。まずはこの状態でコンパイルして先ほど指定したDIY.HEXができるのを確認します。

文字の生成ですが、ZKのフォルダになかにあるPCtoLCD2002.exeを使います。これも文字化けがひどいのですが、なんとか使えます。初期設定は下記のようにします。特にコードを間違うとうまくコードが生成できません。

3

これで下の窓に文字を入れて生成するとできますが、反転させないと回転部の表示が鏡表示になります。反転は左下の2番目のアイコンでできます。
これで生成したコードコピーして、上記UV2Picture.cの240行目あたりに上書きすると文字が書き込めます。


DSC03416

DSC03417





TH-D72でAPRS KISSモード9600BPS

久しぶりにAprsです。
もうだいぶ前にRaspberry-PiでTNC-PIを使ってXastirを動かす記事を書いたのですが、今はこれにTH-D72をつないで9600運用にしています。ところがTH-D72のTNCは設定のパラメータの保存ができず、電源を切ったりすると、TNCの設定をやり直す必要があります。つまり9600の設定とKISSモードの設定をいちいちやり直さなければいけないのです。
これ結構面倒なので、TNCをUPするときに使用するパラメータを利用して下記の内容のファイルを作成し、Intaerfaceに追加して最初に起動した時にUPするようにししました。
TNCの起動時のパラメータの設定は/usr/share/xastir/configの配下にあります。

##META <no-ctrl-c>
TC 1

##Pause for one second

##META <delay>

##META <delay>

##META <delay>

#Put the TNC in internal mode since this is where we want to end up

# Change the 1 to 0 to go to normal radio mode

#META <no-ctrl-c>
TN 2,0

# Pause for two seconds

##META <delay>

##META <delay>

##META <delay>

##META <delay>

#Turn off Terminal Control

##META <no-ctrl-c>

HID off

#AWlen 8

BBSMsgs ON

B E 0

LOC E 0

Echo off

FLow off

AUTOLF off

MCOM off

MON ON

MRPt on

PACLen 128

PASSALL off

#HBAUD 1200

TXDELAY 25

HEADERLN off

HB 9600

KISS ON

RESTART

このパラメータで問題なく動きました。
下記のようにInterfaceにTNCのパラメータセット用を準備してこれのUPした後に、
普通のKISS-TNCのInterfcaceをUPしします。

aprs


Wemos D1 MINIでKT0915 DSPラジオ

とにかく安いNodemcu D1MiniがWemosから出てきました。ESP8266関連でこれはいいです。
なにしろショップのAliexpressで4$です。この値段でピンヘッタはオスとメスの2種類ついているし、すごいとしか言いようがないです。また対応のシールドも結構出てるようで、今後のの成り行きではこれがNodemcuも主流になるような気がします。
今回私はAliexpressはPaypalが使えないので、敬遠してるのでEbayで購入しました。HKの業者に頼むと1週間ほどで入手できます。
ということで試しにKT0915を使ったDSPラジオを作ってみました。3Vで動作するので電源が楽です。
電源は3Vのコンバータモジュール 5個で2.35$です。
KT0195はAitendoのモジュールに変換基盤をつけてます。水晶はクロックモジュールから流用しました


DSC03403

これは上部に日時を表示させていますが、WifiでNTPに接続して時間を較正してから、表示させています。一応RTCモジュールを載せていますが、これにすると内部の時計だけで、RTCモジュールは必要ないかもしれません。この辺は先人のmacsbugさんのBLOGに感謝です。このBLOGにはD1Miniの情報も大変参考になります。実は私ここに書かれていたのでD1Miniの存在を知りここに買ってしまいました。
またここのコードはものすごくきれいで大変参考になります。私が書いたものとえらい違いです。

動作ですが、ロータリエンコーダで周波数を変更したかったんですが、ESP8266の割り込み処理がいまいちよくわからず、とりあえず、放送局をタクトSWでダイレクトに指定するようにしています。もう一つのタクトSWは音量調整用です。

Si5351Aその2

少し放置していたSi5351Aですが、ネットで使用例が多いライブラリsi5351.hを使ったんですが、ところがこのライブラリを使ってK6BEZのスケッチを動かすと、ArudinoNanoとかUNOだと大きすぎて書き込めません。それでしばらく放置してましたが、最近ESP8266を使うのが多く、8266はIDE1.6ででないと使えません。それで試しにIDE1.6でスケッチをコンパイルすると、Nanoに書き込みできることがわかりました。UNOとかNanoなんかの旧世代のArudinoを使うときは、安定度抜群の1.06がベストと思ってたんですが、いろいろ問題のある1.6を少し見直しました。ライブラリによっては、こんなにスケッチが小さくなるとは驚きです。

それでちょっと試してみました。家のクリエイト730V(50MHZオプション付き)の50MZのSWRを測定してみました。ほんとはちゃんとフィルターを入れないとダメなんだろうけど、とりあえずスケッチをSi5351Aに変更して、回路はそのまま出力も変更しただけです。
スケッチのDDSの部分は例文にある
si5351.set_freq(current_freq_MHz *100000000ULL, SI5351_PLL_FIXED, SI5351_CLK0);
にしました。

DSC03372

6m5351

ちなみに7Mhzです。
7M

うーん それなりにちゃんと表示できているみたいですね。SWRの値はあまり信用できませんが、、、
ちょっと出力のゲインが高いみたいで、もう少し調整が必要なみたいです。145MHZは今ちゃんとしたアンテナがないので、また用意できれば調べてみます。
本当は比較したいちゃんとしたいアナライザがほしくなります。MINI60のSWRもあまりあてにならないし、、
なお出力はK6BEZオリジナルと同じで1μのコンデンサを入れています。

NodeMcu WIFI Development Board


NodeMcu WIFI Development Board買ってみました。別にESP8266のDEV-KITを買ってもよかったんですが、これはESP8266Eに中華お得意のCH340USBがついています。もっとも値段自体はArudinoUNO互換機よりも少し高いですが、1000円以内で買えます。これはもともと最初に入っているファームはNODEMCUが入っていて、LUAで使うようになっていますが、やはり使い慣れたArudino IDEで使いたいということでちょっと使ってみました。
Arudino IDEではNodemcu1.0(ESP-12E)でちゃんとこのボードが選択できるようになっています。そしてこのボードを選択すると、面倒な書き込みモードにする必要がありません。これは便利です。Arudinoと同じ感覚で使えます。
試しに1.8TFT 128X160のモジュールを表示させてみました。
ESP8266用のライブラリは、Adafruit-ST7735-LibraryをESP8200用にForkしていて問題なくすぐに動きました。
スケッチのPINは
RST 05
CS   15
D/C    04
に変更してあります。
DSC03369

ただ最初に少しはまったのが、GPIOのPINの表記が違っています。
NODEMCU_DEVKIT_V1_0_PINMAP


こんなふうになっていて読み替えてつながないとダメです。

電子はんだごて TS-100

電子工作にかかせないものといえばはんだこてですが、いままでずっと定番のHAKKOのFX-600を使っていました。セラミックヒータなのですぐに使えて便利なんですが、なんといっても電源の切り忘れがしよっちゅうあります。まあ温度調節できるんで、火事の心配はないんですが、ちょっと気になります。
それでお得いのBanggoodでTS-100がセールで58.58$になってたんで購入してしまいました。これははっきりって高いだけあってすごいです。最高温度は400度までなんですが、HAKKOと比べると温度の表示がちょっと高いかもしれません。私よくポリウレタン線の被覆はがしに使うんですが、HAKKOの場合ダイヤルを420度に設定しないとうまく被覆が溶けてくれませんが、これは350度設定で十分溶けてくれます。普段のはんだでは270度くらいで十分使えます。
ボタンを2つ長押し もしくは3分間使わないと自動Sleepに入りますし、(これはUSBにつないで時間は設定できます。)
温度調整もボタン長押しで簡単にできるし操作性も抜群です。また写真を見てもわかるようにすごく小型で軽いです。


DSC03366

これちょっと難点は電源が12Vから24VのACアダプタなんです。またDCジャックのコネクタがセンターが2.5mmのジャックになっているので注意が必要です。
ヒートアップ時間は ACアダプタが12Vで17W 40秒 16Vで30W 20秒 19V 40W 15秒 24V 65W 11秒といった仕様なんですが、ほとんど待たずにすぐに使える感覚です。
このACアダプタはちょうどノートPCのACアダプタが使えます。私はハードオフで500円の19V富士通製ACアダプタを買って使っています。最近のノート用ACアダプタは内径が小さくて外径が大きいものが多いので注意が必要です。旧式のノートPC用で標準のジャックだとピッタリです。
また消耗品のこて先が専用なのでちょっと高いです。

DSC03368

なおUSBにつなぐとCONFIG.TXTというファイルが1個あるだけで中身は

T_Standby=200   #(100~400)
T_Work=300      #(100~400)
Wait_Time=180   #(60~9999)
Idle_Time=360   #(300~9999)
T_Step=10       #(5~25)
Turn_Off_v=10   #(9~12)
TempShowFlag=0  #(0,1)
ZeroP_Ad=262    #ReadOnly

になっています。これで最初のデフォルト値を設定するようです。

K6BEZ DG7EAO アンテナアナライザにバンド選択を追加 その4

もうこれで最後にするだったんですが、ようやく格安Banggood液晶 2.4 Inch TFT LCD Shield Touch で動きました。これは前にも紹介したBanggoodで販売されている2.4 Inch TFT LCD Shield Touchです。なんと送料込みで6.49$です。前に作ったAdadruitのものと比較するとなんと1/10です。
これは表示速度もAdafruitとほとんど同じですごく早いです。ただ難点はこのShildはアナログポートのA0からA4までを使っていて、普通のUnoを使うとアナログポートは1個足らなくなることです。ではA0からA7があるNanoを使うと、せっかくのShildの意味がなくなってしまいます。
それで前回紹介した、Uno互換機を使いA6とA7を使うことによって完成させました。
タッチシールドの感度は若干鈍いようですが十分動きます。

R0010310

R0010311

ドライバは
#include <SPI.h>
#include <Wire.h>    
#include <Adafruit_GFX.h>
#include <Adafruit_TFTLCD.h>
#include <TouchScreen.h>

ピンの設定は
#define YP A3 
#define XM A2 
#define YM 9 
#define XP 8 

#define TS_MINX 150
#define TS_MINY 120
#define TS_MAXX 920
#define TS_MAXY 940
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);
#define LCD_CS A3
#define LCD_CD A2
#define LCD_WR A1
#define LCD_RD A0

#define LCD_RESET A4

Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
ad9850のピン設定は
const int RESET=12;
const int SDAT=10;
const int FQ_UD=11;
const int SCLK=7;
にしました。
なおAdafruitのTFTLCDに表示する特殊文字はCP437で表示されるのがわかりました。
tft.println(char(16));のようにすると表示されます。
それとオリジナルのsetup()にあるanalogReference(INTERNAL);をコメントアウトしないとタッチパネルが動作しないようです。これコメントアウトしたらアナログの入力が変化するみたいですが、今のとこ影響ないみたいです。

なおこのアナライザの部品で苦労するのは50Ωと5KΩの抵抗ですが、Bispaというところで買えます。そのほかは649Ωは680Ωでいけます。ゲルマニュームダイオードはAA143ですが、1N60では使えなくはないですが、出力が低いです。ヤクオクで売られている日立の1N34AならばAA143とほとんど変わらないです。オペアンプMCP6002はLM358Nあたりで代用できます。もともとSWRの値自体は市販のアナライザに比較してあまり正確ではないので、最低のSWRを見つける目的で使用するのがいいでしょうね。なんといっても最大の利点は安いことです。

K6BEZアナライザ用のArudinoとTFTシールド

前にBangoodで購入した安い2.4TFTシールドですが、これがかなり難物でした。以前AdafruitのTFTシールドの記事を書いたんですが、6000円近くもしていかんせん高い。しかしこのBangoodのは送料込みでタッチペンまでついて6.49$です。これ安いだけあっていろんなロットのものがあるみたいです。まず最初に購入したものは、IDが0xC505というもので満足に動くライブラリがない。やっとPP_TFTというのを見つけてなんとか動いたのですが、タッチパネルがまったく使い物にならない。最近タッチペンが付属するようになって、AdafruitのTFTLCDで動くとのレポートがありましたので、また購入してみました。これはちゃんとAdafruitのTFTLCDのライブラリで動き、またタッチパネルも正常に動作します。そしていざアナライザ用にと、、、しかし私の考慮不足で、なんとA0からA5までこのシールドは使ってます。ArudinoUNOはAtmega328PUを使っているので、アナログピンはA5までしかありません。K6BEZアナライザでは2つのアナログ入力がいるので足りません。困った。もともと、Nanoなんかに使われてるAtmega328AUではA6,A7が使えるようです。また最近の互換機で電源がMicroUSBを使っているタイプではAtmega328AUを使っているものが多いようです。
それでGoogle先生に尋ねるとSIGH様のBLOGを発見。この互換ArudinoUNOって前にBangoodで買ってなかったけ、。。ありました、A6,A7のランドがちゃんと出ています。さっそくソケットを埋め込んで
ました。使ってみました。上記のBlog通りにAurdinoIDEを設定してやると、問題なく使えました。

DSC03363


これでなんとか安いタッチスクリーンでのアナライザを作ることができそうです。バンド周波数を入れられるようにしてみました。
DSC03360

< を押すと周波数UP > を押すと周波数Downです。、、、▲▼を表示させるコードがわからないので逃げました。(笑)とりあえずスケッチ上での表示はできたんですが、、
とりあえずここまで最近ちょっと忙しくて触る暇が取れません。完成は正月休みかな、、、

DDSジェネレータ Si5351A到着

前に注文していたAdafruitのSI5351が届きました。ここに直接注文するのは初めてなんですが、なにしろ国内ではどこも販売していない。と思ったら11月15日にストロベリーリナックスで発売されていたようですね。1個900円。同じくらいですね。しかしSi5351単体と水晶のみの基板です。
それに引き換え同程度の値段Adafruitの基板では、I2Cのプルアップ抵抗、レベルシフト用のバッファアンプついている。また5Vでも使えるのでまあいいかと思っています。送料と時間は余分にかかりますが、、、
このSi5351Aの仕様は8Khzから最高160MhzまでDDSで発振できることです。Si5351の仕様では220Mhzぐらいまで出せるようです。またインターフェイスがI2Cで制御できますので楽ですね。Adafruitではライブラリも出ていますのでArudinoで制御するのは楽ですね。

注文したのが、12月7日で12月24日に届きました。U.S. Postal Service First Class Mail なんでこんなもんでしょう。一応トラッキングNoはあるんですけど、USA国内向けなのでまったく役に断ちません。送料が$9.75かかるので、ちょっと3個大人買いをしてみました。といっても1個7.95$ですが、、AD9850のモジュールと値段は同じくらいですね。
しかしかなり梱包はいい加減です。A4サイスの薄いナイロン製に封筒で届きました。

DSC03357


ととりあえずピンを植えてコネクタをつけてみました。
DSC03358

K6NEZアナライザのDDS AD9850からら楽に移行できそうです。これでちょっと前に作ったTFTのアナライザの周波数を1Mhzから145Mhz帯まで拡張できるかどうか試してみます。これがうまく動いたらAD9850は卒業です。

ESP8266でセンサをつなぐ

まえにArduinoでセンサをつないで、1602の液晶に時計とか湿度を表示したりしましたが、そういえば前にOLED液晶を買っていたのを思い出しこちらで試してみました。このOLEDは画面が0.96インチで画面はちょっと小さいのですが、1602タイプの液晶と違い、ものすごく画面鮮明です。また省エネです。このOLED液晶はAdadruitのSSD_1306ライブラリで動くのですが、てっきりカラー液晶だと思っていて、ライブラリからテストを書き込むと黄色と青の表示が2分割されていておかしいなと思っていました。今回試してみて初めてわかったのですが、なんとこのOLEDはもともとモノクロタイプで上部に黄色、下部にブルー表示させるようになっているものと分かりました。ライブラリはESP8266で使うにはESP_Adafruit_SSD1306.hを使います。

どうせ省エネをめざすならば、Arduinoでなくいま話題のESP8266をを使ってみました。しかし今回初めて使ってみて、すごいデバイスですね。Wifiで接続できて、しかも安い。同じような目的のXbeeならば10倍ちかくしますもんね。アナログ入力が1つしかないのが残念ですが、まあこれからすこしするともっと多機能なものがでてくるような気がします。

もうすでに国内でも話題になっていて先人たちがいろんな情報を上げてくれています。そんなに苦労せずに、ArudinoのIDEで自分の慣れている環境が作れました。またいろんなスケッチを上げてくれているので、下記の写真のような表示は製作に2日、スケッチの方は、先人たちが上げてくれているスケッチの切り貼りだけで1日足らずでできました。
DHT11モジュールとRTCはDS3231を使っています。このDS3231はAmazonで205円で、中国からなので10日ほどかかかります。

ESP8266は電源の3.3Vがシビアで特にWifi通信をすると、電源が弱いと不安定になります。100円ショップの9Vアルカリ電池から秋月のTA48M033Fで3.3Vを作っています。単3 4本でも十分動くのですが、省スペースなのでこちらにしました。上部のコネクタはUSBシリアル用のコネクタです、ATMEGA328と違いDTRが必要ないので、PL2303の安いコンバータが使えます。ただし、このUSBコンバータの3.3Vは動くことは動くのですがすごく不安定です。最近の安い互換Arduino-UNOでは3.3VのコンバータでもAMS1117を使ったりしてますので、電源だけこれからとれば、十分動作するでしょう。純正UNOでは動かないそうです。

ESP8266はアップロードするのにGPIO0をGNDに落としたりするのが面倒ですが、まあ動けば書き換えることもないわけで、これが正解かもしれません。
なお温度の℃の表示は1602では
  lcd.print((char)223);
  lcd.print("C ");

SSD1306では
  display.print((char)247);
     display.print("C ");

です。SSD1306はちょっと変な感じがしますけど、、。

DSC03356


ESP8266を購入するときこのESP-07とESP-05を買ったんだけど、ESP-05の方の使い道がわかりません。なにしろスケッチをかくのにGPIOの端子が全くないので、書き込めない。もしかしてこれはATコマンドモードのみでいろいろ設定してWifiの通信モジュールとして使うものなんかな? ファームを最新のものにしたいんだけど、できないです。

Arudinoで温度 湿度 大気圧 センサーをつなぐ


結構arduinoではいろんなセンサがあります。今回日時、温度、湿度、大気圧を2004A液晶で表示してみました。
最初1602の液晶でで表示させてみたんですが、温度 湿度 時間だけならいいんですが、大気圧もあるので1604の液晶(2004A)を使いました。

まずセンサですが、温度 湿度は定番のDHT11 大気圧はGY-68を使いました。でいずれも500円ちょいで買えます。時間のRTCはDS3231でなんとリチウム電池付きで150円くらいで買えました。
I2C接続のために、GY-68がGNDとVCCのピンアサインが違っていましたので、接続にちょっと細工をしています。これ3.3Vの3端子レギュレータが搭載されているので便利ですね。

DSC03351

Arudinnoはこれを使いました。これ今回の実験ではのような用途にはめちゃくちゃ便利です。
DSC03352

表示させた場合
DSC03350

ライブラリは
#include <dht.h>
#include <Adafruit_BMP085.h>
#include <LiquidCrystal_I2C.h>
これとtime.hが必要です。
しかしなにも考えずにライブラリだけを入れてあとはスケッチの例で動作するのを確かめてから、その例にならいあとは、呼び出すだけでそのまま使えるというのはすごいですね。
またArudinoのリアルタイム処理のすごいとこには関心します。

あとRTCの時間設定が結構めんどくさかったりします。ESP8266のWifiモジュールも手に入れましたので、Wifi経由でNTP時間をとってきてセットしてみます。しかしこのモジュールは3.3Vなんでどうするか悩み中。UNOでは電流容量が小さすぎて動かないようだし、、、

この最終目的は前にRaspberry-PIでaprsサーバを立ち上げましたので、(今も稼働中です。)それと連携して気象ステーションをあげようかなと思っています。気象ステーションはAmazonあたりで売っているんですが、結構いいい値段がします。Piとの連携はメドがたったのですがArduinoの方がまだだったので実験がてら、、、
まあこれで風力とか雨のセンサを追加すると結構な値段になるような気もします。途中で挫折するかも、、、
まあ いつになるかわかんないですけど、、、、

K6BEZ DG7EAO アンテナアナライザにバンド選択を追加 その3


すっかりArduinoのプログラミングにはまってしまい、今度はロータリエンコーダを使って周波数を設定できるようにしてみました。前にタクトスイッチで周波数を選択できるようにしたのですが、短押しで周波数+ 長押しで桁移動、とさらにスタート周波数とストップ周波数を入力するには使えなくはないんですが、操作性にかなり問題がありました。
それでロータリエンコーダを使い、周波数設定を簡単にできるようにしてみました。できればスイッチ付きのエンコーダを使えば、もっとスムーズになるかも、
エンコーダの制御にはrotary.hの割り込み制御を使わさせていただきました。その関係でロータリエンコーダのピンは2と3の固定になります。
タクトSWはアナログピンのA2に配線しました。


DSC03334

DSC03335

まずエンコーダを回すとStart周波数が設定できます。そしてタクトSWを押すとStop周波数を設定できます。
SW長押しでリセットです。

動作は下記になります。



上記の改良版です。Youtubeのリンク先にスケッチを置いてあります。





しかしDG7EAOのアラライザにこんなにはまると思わなかった。このタイプのアナラザは精度はいまいちなんですけど、とにかくArudinoのプログラミングがとても楽しいです。



K6BEZ DG7EAO TFT アンテナアナライザにバンド選択を追加 その2


前にタッチスクリーンでバンドセレクト機能を追加しましたが、まあコストの点で安い2.2TFTを使ってタクトスィッチでバンドセレクト機能を追加したののですが、これで最終形態です。TFTのライブラリはオリジナルではUcglibを使っていたのですが、AdafluitのILI9341に移植しました。

タクトSWはD2とD3に増設します。回路図はDG7EAOのサイトにあります。TFTは22 inch 2.2" SPI TFT LCD Display module 240x320です。3.3Vの液晶なんでちょっと抵抗等の配線が面倒ですが、ebayで送料込みで600円ちょいで買えるのが魅力です。

なおarudinoはnanoではなくUno互換機で作りました。
移植にあたっては上記回路図ならば、下記のスケッチで動くはずです。

#include "Adafruit_GFX.h"
#include "Adafruit_ILI9341.h"

//ILI9341 2.2 TFT 240x320 SPI Adafault driver
#define TFT_DC 6        //Wiring
#define TFT_RST 4         
#define TFT_CS 5
#define TFT_MOSI 11    //Wiring
#define TFT_MISO 13   
#define TFT_CLK 10     //Wiring

Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST,TFT_MISO);

//Wiringと書いてあるところは実際に配線してください。他はDUMMYです。
  
今回2種類作ってみました。
まずは開始周波数と終了数は数を任意でセットできるようにしてみました。
この応用で簡単に周波数指定のDDSが作れそうです。

SW2 周波数指定 長押しで桁移動
SW3 周波数スキャン 長押しでリセット

DSC03314

そして上記をちょっと使ってみたのですが、任意で周波数のセットができるのはいいのですが、短押しで数字指定 長押しで桁移動と操作がすこし面倒です。やはり周波数指定はロータリーエンコーダを使ったほうがいいですね。あまり部品を増やしたくなかったので今回は見送りました。

それでバンド選択をすこし簡単にしてみました。こちらのほうが操作性がいいですね。
SW2 バンドスキャン 長押し リセット
SW3 バンドセレクト 押すたびに 3.5 7 10 14 21 28が選択できます。

DSC03313

DSC03312

動作は下記のようになります。


これでどうやら最終形態で落ち着きそうです。SWRの絶対値が信用できないとか、連続でScanすると波形が乱れる問題が残っていますがいものところ原因不明です。スケッチですがあまりにも汚いので公開は遠慮しておきます。どうしてもというのでしたらメールをください。

それからおまけで下記のArudinoUNO互換機をBangooで見つけました。なんとUSBがスマホと同じMicro-B端子になっています。いままでどうしてもシールドを重ねたとき、でかいUSB端子が接触して気を使っていたのですが、その心配がないです。値段も送料込み4.52$です。
いままでAitendoのびんぼうでいいのを使っていたのですが、値段もこちらのほうが安いのでこれにします。
MINIUSB端子よりMICROUSB端子のほうが耐久性もいいようなので、、

DSC03315






K6BEZアンテナアナライザにタッチスクリーンその2

いろいろ試行錯誤してタッチパネル使用のスタンドアロン型K6BEZアンテナアナライザの最終形態?を完成しました。なにしろArudinoは全くに素人なんでいろいろライブラリ関係で苦労しましたが、なんとか動きましたので公開します。
うちの3.5 7 14 21 28バンドのバーチカルアンテナ ダイヤモンドKV-5の1から30MHZのスキャン表示

DSC03280

3.5Mhzのスキャン表示
DSC03281

なお最低Swrの値は結構甘いみたいですが、アンテナ調整には十分使えるでしょう。

今回は前回と違いUcglibではなくAdafruit純正?のILI9341とAdafruit_GFX.hに移植しました。フォントはあまりきれいではないんですけど、、
各バンドはALLを選ぶと1から30Mhzまでスキャンして全体のSWRカーブを表示します。Clrはグラフ表示のクリアでScanを押すとSweepします。
残念なことは今回使ったAdafruit 2.8インチ TFTタッチシールド v2の値段が5000円ぐらいで、少し高いことです。Bangooあたりで売っている1000円以下のタッチシールドで動かないか、いま試しています。これがかなりの難物でバージョンによってドライバのICが違うみたいで、苦労しています。またA0からA5までは使っているのでDDSがDDSの制御ができないので無理かもしれませんね。

動画はこんな感じです。中華なんちゃってLCDより相当早いですね。さすがは高いだけあります。



youtubeのリンクに初心者の書いたスケッチで恥かしいのですが公開しています。
今後ですが、タッチシールドを使わずにタクトSWを使って周波数選択するようにするスケッチも書いてみます。

TFTアンテナアナライザにタッチスクリーン


タッチパネルでバンド選択をするようにしてみました。
使ったパネルはAdafruit 2.8インチ TFTタッチシールド です。


DSC03277

DSC03275


動作は下記のようになります。


タッチシールドはいろいろ探してみましたが、できるだけ安いものということで、単に以前にに購入したTFTにタッチシールドがついたものを購入してみましたが、タッチパネル用に5つもピンが必要なようです。
それでやむなく少し高いのですが Adafruit 2.8インチ TFTタッチシールド v2を使いました。これだったら3から9ピンまで自由に使えます。そして、これでしたらUgclibはそのまま使えますので、移植も楽です。
UgclibはadafuiltのAdafruit_ILI9341に比べるとすこし遅いのですが、文字のフォントがきれいです。
これでようやく一段落つきました。タッチシールドのチャタリングにえらく苦労しましたがいろいろArduinoの勉強になってなかなか楽しく遊べました。
まあコストを考えると、前に書いたタッチパネルなしのTFTを使ってSWでバンド選択できるのが一番です。

AD9850とAD9851DDSモジュール

このアナライザの原理は、DDSでアンテナに発振し、その周波数の進行波と反射波をArduinoで計算してシリアルポートに出力するというものです。原理的にはどのアナライザもおなじようなものみたいですが、いままで高い周波数が発振できるDDSが高価だったり、制御が難しくて、アンテナアナライザは結構高価でした。そしてK6BEZがこの安価な中華製DDSモジュールを使って安いアナライザを開発しました。この特徴は、部品点数が少なく、またArduinoで開発されているので、改造や移植も簡単で、特にグラフ化してPCで見られるようになり、アンテナ調整時には、連続Sweepにより、簡単に最低共振点を見つけられるようになりました。今では他にはスタンドアロンで使えるように1602タイプの液晶やDG7GAOの開発したグラフィック液晶をつけられるようにしたものがあります。

AD9850と9851ですが、チップ単体はピン互換です。チップ単体で使うよりフィルター類や水晶が実装されたモジュールで使うほうがはるかに使いやすいです。
そのモジュールですが、下記の写真のように中華製では、2種類のタイプが存在します。ピン互換のため、どちらもモジュールの乗っているチップがどちらかになっているようです。

DSC03272


モジュールの左のタイプの詳細はここにあります。右のタイプの詳細はここにあります。
右のタイプは古いタイプらしく、左のほうがシリアルのピンが一方に集められています。また右のタイプの回路図が間違っていてJ7のGNDと出力のD7に位置が上下逆になっています。
AD9850はクリスタルが125MHZになっていて9851は6逓倍モードがあるため30MHZになっています。
ピンをどちらかのモジュールで統一すると簡単に9850と9851が入れ替えできて便利ですね。

このモジュールは
W_CLK      クロック この立ち上がりのタイミングで下記のデータを更新
FQ_UD      周波数更新
SDAT(D7)    シリアル通信用での周波数データ入力 
RESET      DDSリセット
IOUT        出力ピン
の5つを使います。

AD9850はSine Frequency range: 0-40 MHz AD9851は Sine Frequency range: 0-70 MHz になっていて値段も1000円くらい高くなっています。
AD9851をArduinoで使う場合のスケッチの例はここにあります。
なおK6BEZのスケッチではサブルーチンのSetDDSFreq(double Freq_Hz)でDDSの周波数を制御しているんですが、この部分のint32_t f = Freq_Hz * 4294967295/125000000;をDDSの制御部分を単に周波数をAD9851用に180000000に書き換えただけではうまく動作しませんでした。

それで上記の例を参考にして


#define pulseHigh(pin) {digitalWrite(pin, HIGH); digitalWrite(pin, LOW); }


void tfr_byte(byte data)
{
  for (int i=0; i<8; i++, data>>=1) {
    digitalWrite(SDAT, data & 00000001);
    pulseHigh(SCLK);
  }
}


void SetDDSFreq(double freq_Hz) {
  int32_t freq = freq_Hz * 4294967296.0 / 180.0e6;
  for (int b=0; b<4; b++, freq>>=8) {
    tfr_byte(freq & 0xFF);
  }
  tfr_byte(0x001);
  pulseHigh(FQ_UD);
}

に変更したらうまく動いているようです。

DG7EAOのVNAも50Mhzに対応するようにコンパイルしました。大したことはしていないですが、、、
なおバンド選択でSweepした場合 Zoom inかZoom outを一回しないと表示されないようです。
ここにあります

DG7EAO TFT アンテナアナライザにバンド選択を追加

DG7EAOのアナライザにタクトスッチを増設してバンド選択をできるようにしてみました。この回路図どおりですが、ArduinoのみNanoではなくMicroを使っています。またダイオードを実験的に1N60に変更しています。
私 Arudinoは全くの素人なんですが、なんとかGoogle先生のおかげでできました。
もとこのアナライザはPin2とPin3にタクトSWが2つつけるようになっていて、1つは全体のSWR 1つは全体の最低SWRの周波数±1Mhzの値(詳細)を表示するようになっています。スケッチを描きかえれば任意の周波数を表示できますが、マルチバンドアンテナの調整の場合、それでは少し不便なので、タクトスイッチを1つ追加してました。

SW1 PD2 
アンテナ全体SWR表示

SW2 PD3
そのアンテナの最低SWR±1Mhzを詳細表示 または下記のバンドセレクトで表示したバンドの±1Mhzを詳細表示

SW3 PD4
 バンドセレクト 押すたびにバンドが選択されます。

DSC03273


動画はこちらです。なおこの動画は、試験的にダイオードをAA143から1N60に変更して実験を行っています。少し最低SWRが甘いようですが、手に入りにくいAA143の代わりで安価な1N60でも十分使えます。なおオペアンプはLM358 648Ω抵抗は680Ω 50Ωは100Ωの抵抗を並列に使っています。
これでしたらTFTディスプレイとAD9850以外はすべて秋月でそろうでしょう。




すばらしいスケッチを作ってくれたDG7EAO感謝です。


Very Tnx DG7EAO DK2JK and K6BEZ

DSO138 オシロスコープキット

中華製のオシロスコープキットを作ってみました。オシロは持ってるんですが、うん10年前のもので性能もいまいち、それでUSBオシロを検討してたんですが、結構な値段がします。bangood.comで下記のものを見つけました。
す。ここはなんでも今流行のドローン関係が充実してるらしく人気のようです。まあPAYPALが使えるのでそれが一番ですけど、、、
このサイトはキットが充実していて見ていても結構楽しいです。

http://www.banggood.com/DSO138-DIY-Digital-Oscilloscope-Kit-SMD-Soldered-13803K-Version-p-984002.html
8月10日に注文して19日に届きました。中国としては異例に早いです。スペックは

Maximum real-time sampling rate: 1Msps
Accuracy: 12Bit
Sampling buffer depth: 1024 bytes
Analog bandwidth: 0 - 200KHz
Vertical Sensitivity: 10mV / Div - 5V / Div (1-2-5 progressive manner)
Adjustable vertical displacement, and with instructions
Input impedance: 1MΩ
Maximum input voltage: 50Vpp (1: 1 probe), 400Vpp (10: 1 probe)
Coupling modes: DC / AC / GND
The horizontal time base range: 10μs / Div - 50s / Div (1-2-5 progressive manner)
With automatic, regular and one-shot mode, easy to capture the moment waveform
Available rising or falling edge trigger
Adjustable trigger level position, and with instructions
Observable previous trigger waveform (negative delay)
Can freeze at any time waveform display (HOLD function)
Comes 1Hz /3.3V square wave test signal source

性能もこの値段$23.99(送料込)だと200kまで測定できるので、まあまあではないでしょうか。
このキットはチップ部品をあらかじめ取り付けてあるものと、ないものがあってないものは、$20.99と少しお安くなっています。1608サイズのチップ部品は取り付けられなくはないんですが、なんといっても老眼できつい。さらにピンセットでよく飛ばしてしまいます。飛ばしたらまず見つけるのは絶望的です。でこの手のキットはチップ部品の予備がないと怖くて組立できません。それで4$ぐらいにはかえられないのでチップ部品取り付け済のキットを購入してみました。

もうちょっと高級品ならば
http://www.banggood.com/DSO068-DIY-Oscilloscope-Kit-With-Digital-Storage-Frequency-Meter-ATmega64-AVR-Microcontrol-p-981017.html

があります。これはまあキットといよりほとんど完成品ですね。

このキットはなんと中華製品には珍しくカラー印刷の組立説明書と操作説明書が付属しています。結構詳しくて回路図はもちろん製作後のtruble shootingまでついています。
製作途中の様子です。

s-DSC03242

チップ部品がないおかげで、製作は容易で不器用な私でも4時間ほどで組立完了しました。部品も過不足がなくパ-フェクトでした。

s-DSC03244

でもって完成後

s-DSC03246



s-DSC03249
カラー液晶も結構きれいです。

s-DSC03256
周波数カウンタとか電圧計とか 機能的にも十分ですね。

昔 秋月で発売されていたオシロより数倍いいですね。しかしこれが3000円足らずで買えるのはすばらしいです。しかし日本だとLCDだけで2000円以上するので無理な話かな。
このままでもいい気はするけど、ケースはどうしようかな?


k6bezアナライザににDG7AEOのLCD


ようやく注文していたLCDがEBAYから到着したので取り付けてみました。2.2 inch 2.2" SPI TFT LCD Display module 240x320 ILI9341 650円(送料込み)です。これでスタンドアロンで動作するようになります。
電池で動かせばタワーの上でも使えるようになりました。ただし電圧は少なくとも9V以上でないと安定動作しないようです。スケッチはDG7EAOのものを使いました。このままで動作しますが、SW1とSW2とスイッチを2つを追加 それと液晶用のソケットをつけて配線しました。

とりあえずPC用のVNA.EXEで表示 うーん 14Mhzを調整したいんですが、730-V1なんでどうやって調整したらいいんだろう。まあ地上高6mなんで仕方ないかな。

VNA


まず全体 SW1を押すと表示されます。SW2を押すと最低SWR周波数±1Mhzの周波数を拡大して表示します。今回ブレッドボードに組んでる関係上dk2jkのアナライザ上で設置したんですが、SWRの高いほうがやっぱり少し甘いですね。

s-DSC03258

結構きれいに表示されます。SWを増設して周波数の範囲指定できるように思ってスケッチを見たんですが、SWの判定にattachInterrupt関数を使っているため、このスケッチでは2つしか設定できないようです。(ATMEGA328ではattachInterrupt関数は2つまでしか使えない)
SW2の測定範囲の変更はスケッチのdouble SwrFreq = 14;となっているところを書き換えれば変更できます。でもいちいち書き換えるのは面倒です。そこでSWを押すと、バンド変更になるようスケッチを修正してみようかなと思ってます。
とりあえずわかりやすい7Mhzあたりを表示してみました。

s-DSC03261

しかしこの機能で液晶を入れてもEbayあたりで集めると5000円以内で作れます。一番高いものはDDSモジュールで1000円足らずです。AurdinoNanoならば500円くらい。
まあアンテナアナライザなんてあまり需要はないと思いますけど、液晶がついてこの機能であれば10,000円出しても購入しようとする人はたくさんいると思います。同じような機能のアナライザだったら30,000から50,000円くらしいはしますから。精度のほうもdk2jkタイプは若干SWRの高い時の値が低くでる傾向ではあるようですが、そもそも、SWRを厳密に測定する目的ではなく、最大の共振点を見つけるものですから、あまり関係ないと思います。またオリジナルのk6bezのものならば海外のサイトで市販のアナライザとの比較がでてましたが、ほとんど差がないようです。

さて これからですか、DDSモジュールのAD9850の上位AD9851に変更してSARK100 MINIと同様50Mhzまで拡張したいと考えています。

livedoor プロフィール
記事検索
ギャラリー
  • DIY Rotating LED Kit POV Soldering Training Kit その2
  • DIY Rotating LED Kit POV Soldering Training Kit その2
  • DIY Rotating LED Kit POV Soldering Training Kit その2
  • DIY Rotating LED Kit POV Soldering Training Kit Upgraded Version
  • DIY Rotating LED Kit POV Soldering Training Kit Upgraded Version
  • DIY Rotating LED Kit POV Soldering Training Kit Upgraded Version
最新トラックバック
QRコード
QRコード
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

HamLife.jp
  • ライブドアブログ