fc2ブログ

迷走の果て・Tiny Objects

迷走する日々の覚え書きです。自分で分かってることは省略してますので、念のため。

GPS事始め(4)外部アンテナをつける

オークションでGPSアクティブアンテナとSMA-IPEX変換ケーブルのセットを入手しました。
アンテナのケーブルは3m長でコネクタはSMAです。底面はこうなってます。
外付けアンテナ
aiendoのGPSアンテナ [GPS001-SMA-ML]と同じではないかと思いますが、未確認です。
落札したのはこの外部アンテナとSMA-IPEX変換ケーブルのセットです。

変換ケーブルは今現在(2016/06/23)ヤフオクで出品されてます
またaitendoさんにもあります。

これを今実験に使ってるケースに組み直しました。みっともない穴が開いてるのは見ないでください^^;;;
左側のはアマゾンで入手したUSBシリアル変換モジュールです。
GPS_外付けアンテナ

これでアンテナだけ好きなところ置けるので、使いやすくなりました。
Sky Viewです。室内でも常時十個前後の衛星をキャプチャしてます。ただし私の住居は木造ですので鉄筋などでは違ってくるとは思いますが、確かめようがありません。
GPS_u_center外付けアンテナ

なお写真右上に写ってるのはDTMFデコーダです。これについてはいずれ・・・

GPS事始め(3)u-centerを使う

使っているGPSモジュールはNEO-6Mです。
設定には u-center を使います。私はu-center ver.8.16を使ってます。

GPSモジュールのタイムパルスを利用するのが目的ですので、周波数を変更する必要があります。
u-center のメニューから "View"→" Configuration View"とし、TP5(Timepulse5) をクリックします。
設定画面が出るので、ここで周波数を変更します。
ここまではトランジスタ技術2006年2月号118ページと同じなのですが、二つある周波数設定窓の説明がどうも違ってるようです。

下側の Frequency Locked はGPSにロックした場合の出力周波数で、上側はロックしていない場合の出力周波数です。
実験で確かめました。
u-center 設定ソフトの使用方法 にも同様のことが書いてあります。

下図では実験のためロックが外れたときにわかるようにわざと2Hz に設定してあります。
lock.jpg

GPS事始め(2)TIMEPULSE用バッファを入れる。

GPSに手を出したのは正確なパルス出力を得られるだろうからです。
トランジスタ技術2016年2月号に詳しく載ってます。でもダブルオーブンのオシレータにまでは手が出ません(多分)

秋月から超高精度がうたい文句のVM39S5Gが出てます。
これをPLLのVCOに使った例としてはセッピーナさんの

超高精度・温度補償型水晶発振器VM39S5GをPLLのVCOとして使う
超高精度VCTCXO・VM39S5GをPLLでGPSに同期させてみた

という記事が大変参考になります。

このオシレーターモジュールは出力が12.8MHzです。できれば10MHzでやりたいので別の方法を考え中(ダブルオーブンのオシレータは使わずに・・・)

前置きが長くなりましたが、まずはGPSモジュールからTIMEPULSE出力を取り出します。
そのままではちょっと怖いのでバッファを入れました。手持ちの74HCT04です。
74HC04は閾値が約VCC/2ですが、74HCT04はTTLレベルなので今回の目的にはちょうどいいです。まぁ74HC04でも動くと思いますが。

GPS_case2.jpg

回路図、というほどのものではありませんが^^;;
出力は二つ出してます、そのほうが何かと便利だろうと思ったからです。
GPS_回路図2

GPS事始め(1)

アマゾンでGPSモジュールを入手しました。某ショップの半値。
でも写真がどうも変です。左右逆になってます。


とりあえずポリケースに入れ、手持ちのUSB-シリアル変換基板につないだらあっさり動きました。
アンテナは両面テープで仮止め(これが後でトラブルの原因となりました。)
GPS_case.jpg


木造瓦葺二階建て住宅の二階部分に置いてますが、室内でもこれぐらい衛星を捕獲してます。
GPS.jpg

Google Earth表示が出来るので、やってみました。
googleearth.jpg


と、ここまでは良かったんですが、うっかり落としてしまい、このような事に・・・・(涙)
GPS_トラブル

アンテナをもっとちゃんと固定しておくべきでした。

続きを読む »

ロジックアナライザをバラす。

ラジオペンチさんがロジックアナライザを買ったと書いておられたのですが、私が一年ほど前にヤフオクで買ったのと同じ。
しかも分解し回路図まで調べておられるのでびっくり、中身がPSoCでなじみのサイプレスのCY7C68013Aと知ってさらにびっくり。
私には分解する勇気がなかったのですが、思い切ってばらしました。
基板裏面、サーマルビアの数に違いがあります。
ロジックアナライザ

2N7000を使った増幅回路:シミュレーションだけです

ちょっとしたことから2N7000を使った増幅回路を考えてみました。
念のため、今のところシミュレーションだけです、あしからず。

2N7000のマクロモデルについてはこちらを参考にさせていただきました。

2N7000はエンハウスメントなのでバイアスをどうしようかと思ったんですが、とりあえず自己バイアスにしたのがout1。
入力抵抗を大きくしたかったので帰還抵抗を大きくせざるを得ず、ミラー効果のためかカットオフが5KHz程度。
そこでカスコードにしたのがout2。当初の目的が100KHzぐらいなのでこれならOK.。
2N700アンプ

念のため、あくまでシミュレーションだけです^^;;;

ロータリーエンコーダの覚え書き。

既にChaNさんのサイトに詳しく書かれていることですが、自分なりに理解できたので記しておきます。

ロータリーエンコーダの出力は二つあって二進数で表すと0~3となります。
ここで使ったロータリーエンコーダはデテント有りでデテント位置では両出力ともにオープンなのでプルアップしていれば出力は3になります。
下図のように回す方向によって
3→2→0→1→3
または
3→1→0→2→3
と変化します。
quadrature_encoder_遷移図

How to use a quadrature encoderでは下図のような配列を使って回転方向を検出してます。
quadrature_encoder_array.jpg

Xについては次のようにあります。

X represents a disallowed state and would most likely occur if the encoder outputs are changing too quickly for your code to keep up.
Normally this should not happen.
In my code I put a 2 here.
When I get an output of 2 I know that I got an error, perhaps due to electrical noise or my code being too slow.
If you replace X with 0 then the disallowed state will be ignored.


思いついてGoogle翻訳を使うとこうなりました。

Xは、許可されていない状態を表し、コードが追いつくためにするためのエンコーダ出力があまりにも急速に変化している場合は、最も可能性の高い発生します。
 通常、これは起こるべきではありません。
私のコードで私はここ2を置きます。
私は2の出力を得るとき、私はおそらく、電気的ノイズにまたは私のコードが遅すぎるという、エラーを得たことを知っています。
あなたは0でXを交換する場合は、許可されていない状態は無視されます。


他の翻訳サイトも試してみましたが、この場合はGoogleが一番まとも^^;;まぁ余計なことですが。

前回の記事のスケッチではX=2とした配列をコメントアウトしてX=0とした配列を使ってます。

//const int QEM[] = {0, -1, 1, 2, 1, 0, 2, -1, -1, 2, 0, 1, 2, 1, -1, 0};
const int QEM[] = {0, -1, 1, 0, 1, 0, 0, -1, -1, 0, 0, 1, 0, 1, -1, 0};

Arduinoでロータリーエンコーダを試す(2)

EX-OR無しで動きました。
quadrature_encoder_schematic3.jpg

ArduinoというかATmegaの内部プルアップ抵抗を使ったのでロータリーエンコーダ以外必要ありません。
quadrature_encoder_photo2.jpg

テスト用のスケッチです、intcountはチャタリングの影響を見るために入れてる変数ですので通常は不要です。

Arduinoでロータリーエンコーダを試す(1)

ロータリーエンコーダは以前PSoCで試したことがあります。Arduinoでやってみようと思ったら以前参考にしたサイトがリンク切れ。
検索して見つけました。

How to use a quadrature encoder

このサイトの記事を基にして、とりあえずこのような回路で実験。ロータリーエンコーダは秋月のと同等品です。
EX-ORを使わずに済ませたいのですが、まずは動かしてみてからです。
quadrature_encoder_schematic2.jpg


ロータリーエンコーダは停止位置から次の停止位置まで回すとスイッチの状態が4回変化します。(注クリック感ありの場合)
quadrature_encoder_output.jpg

実験の様子。
上の行左の数値はスイッチの状態が変化した回数、右はそれを4で割ったもの、すなわ回した回数です。
下の行の数字は割り込み回数。スイッチの状態が変化するたびに割り込みが発生するので、チャタリングが無ければ上の数字と一致するはずですが、実際にはチャタリングがあります。でもソフトでうまい具合に除去できます。ソフトで追いつけないような場合は別でしょうけど。
quadrature_encoder_photo.jpg

Arduinoシュミットトリガインバータ

Arduinoで使われてるATmegaの入力回路はシュミットトリガになってます。
ATMega日本語データシート41ページより引用)
ATmegaデジタル入出力回路構成
この閾値を調べてみました。
次のようなスケッチを用意します。

void setup() {
pinMode(4, INPUT);
pinMode(2, OUTPUT);
noInterrupts();
}
void loop() {
digitalWrite(2, 1 - digitalRead(4));
}

D4を入力に、D2を出力にします。
ループ内でD4入力を反転させてD2に出力します。これでインバータになります。
ATmegaの入力はシュミットトリガですから、これでソフトウエア・シュミットトリガインバータになります、74HC14などと比べて遅延時間が桁違いに大きいですが・・・。

次のように回路を組みます。
シュミットトリガインバータを使った発振回路になります。遅延時間を無視できるように大きめのCRを使いました。
Arduinoシュミットインバータ回路
実際にはあちゃんでいいのを使いました。
Arduinoシュミットインバータ実験

オシロでの観測波形。
矩形波がD2、三角波がD4。
発振周期は1.3mS、閾値VT+は2.6V、VT-は2.2Vと読めます。
Arduinoシュミットインバータ

シュミットトリガインバータを使った発振回路の発振周期はこちらの記事の4ページから5ページを参考に計算すると、Vcc=5Vとして1.4mSと計算できますのでほぼ合ってます。

 | HOME | 

文字サイズの変更

プロフィール

edy

最新記事一覧(サムネイル画像付き)

ブッダマシーン基板(1) 2024/03/06
退職前の一泊旅行 2023/10/29
弛張発振回路 2023/05/26
デジットで買ったインダクタの再測定 2023/05/23
PSoC1(CY8C24223)を使ったスポットオシレータに3次LPFをつなぐ。(2) 2023/05/22
PSoC1(CY8C24223)を使ったスポットオシレータに3次LPFをつなぐ。(1) 2023/05/15
Raspberry Pi Pico オシロスコープ 2023/03/13
ダイソーTapeLight 2023/01/30
シリコンハウス共立 フィラメントLED 2023/01/09
DIME 2023年 2・3月合併号 付録のLEDアクリルメモボードを改造してみる。 2022/12/27

全記事表示リンク

全ての記事を表示する

リンク

このブログをリンクに追加する

月別アーカイブ

03  10  05  03  01  12  11  10  09  08  05  04  03  12  10  07  12  11  10  09  07  05  04  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  12  11  10  09  07  05  04  03  04  03  01  12  11  10  08  07  06  05  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  02  01  12  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  10  09  08  07  06  05  04  03 

カテゴリ

プログラミング (0)
freescale (1)
AVR (3)
テルミン (16)
緊急警報放送 (3)
78K (1)
PSoC (297)
地上デジタル放送 (2)
電子工作 (532)
HX711 (2)
ACS712 (6)
DDS (3)
数学 (6)
パソコン (16)
PLC (14)
未分類 (45)
ブログ関係 (16)
スカイプ (36)
ロボット (1)
LTSpice (8)
OCXO (0)
arduino (40)
maxima (1)
フランクリン発振回路 (3)
GPS (3)
DTMF (1)
Linux (1)
KOMAINO (7)
Android (1)
obniz (7)
M5Stack (15)
M5StickC (0)
Analog Discovery (1)
レジン (8)
Wio Terminal (1)
Raspberry Pi Pico (5)

タグリスト

最近のコメント

最近のトラックバック

メールフォーム

名前:
メール:
件名:
本文:

検索フォーム

アクセス

RSSリンクの表示

ブログリンク

Template by たけやん