So-net無料ブログ作成

K3NG キーヤー ARM 系 Arduino を試してみた [Arduino]

 K3NG キーヤーのスケッチで ARM 系 Arduino を試してみました。

K3NG キーヤーのシールド基板も届いたので、それと組み合わせる ARM 系 Arduino を試してみました。
前回は、Aarduino Due、 Seeeduino Cortex-M0+、Seeeduino XIAO の3つを試しましたが、今回はシールドを直接 載せられる Aarduino Due、 Seeeduino Cortex-M0+ でスケッチのコンパイルに問題が無いかを見ていきます。

〔Seeed Studio Seeeduino Cortex-M0+ Board〕
i2c scanner
警告:ライブラリWireはアーキテクチャsamdに対応したものであり、アーキテクチャSeeeduino_SAMD_zeroで動作するこのボードとは互換性がないかもしれません。
最大262144バイトのフラッシュメモリのうち、スケッチが12008バイト(4%)を使っています。
----
コンパイルは通りますが、標準ライブラリの Wire で警告が出ます。

K3NG Keyer
Arduino:1.8.12 (Windows 10), ボード:"Seeeduino Cortex M0+"
k3ng_keyer:1239:23: fatal error: avr/wdt.h: No such file or directory
#include <avr/wdt.h>
^
compilation terminated.
exit status 1
avr/wdt.h: No such file or directory
----
コンパイル・エラーで落ちます。

〔Arduino Due〕
i2c scanner
最大524288バイトのフラッシュメモリのうち、スケッチが24944バイト(4%)を使っています。
Atmel SMART device 0x285e0a60 found
Erase flash
done in 0.031 seconds
Write 27212 bytes to flash (107 pages)
[ ] 0% (0/107 pages)
[== ] 9% (10/107 pages)
[===== ] 18% (20/107 pages)
[======== ] 28% (30/107 pages)
[=========== ] 37% (40/107 pages)
[============== ] 46% (50/107 pages)
[================ ] 56% (60/107 pages)
[=================== ] 65% (70/107 pages)
[====================== ] 74% (80/107 pages)
[========================= ] 84% (90/107 pages)
[============================ ] 93% (100/107 pages)
[==============================] 100% (107/107 pages)
done in 5.241 seconds
Verify 27212 bytes of flash
[ ] 0% (0/107 pages)
[== ] 9% (10/107 pages)
[===== ] 18% (20/107 pages)
[======== ] 28% (30/107 pages)
[=========== ] 37% (40/107 pages)
[============== ] 46% (50/107 pages)
[================ ] 56% (60/107 pages)
[=================== ] 65% (70/107 pages)
[====================== ] 74% (80/107 pages)
[========================= ] 84% (90/107 pages)
[============================ ] 93% (100/107 pages)
[==============================] 100% (107/107 pages)
Verify successful
done in 4.833 seconds
Set boot flash true
CPU reset.
----
コンパイルは通りましたので、ダウンロードしてみます。
問題なく、動きました。
1-i2c_scanner.jpg

K3NG Keyer
Arduino:1.8.12 (Windows 10), ボード:"Arduino Due (Programming Port)"
D:\From WWW\Arduino\K3NG\k3ng_cw_keyer-master\k3ng_keyer\k3ng_keyer.ino: In function 'void service_async_eeprom_write()':
k3ng_keyer:5917:7: error: 'EEPROM' was not declared in this scope
EEPROM.update(ee++, *p++);
^
exit status 1
'EEPROM' was not declared in this scope
これは Due には EEPROM が無いので、K3NG キーヤーのサイトで対応方法を調べるしかないですね。
まぁ、どちらも素直には行きません。どちらかというと Due の方がハードルが低そうではあります。

K3NG キーヤーの Github Wiki に書かれていました。
Arduino Due Hardware

To compile the code for the Arduino Due, uncomment HARDWARE_ARDUINO_DUE in keyer_hardware.h.

The Due does not have EEPROM memory like the other Arduino boards. So either you must run the code without EEPROM functionality, or install an external EEPROM. Support for the E24C1024 EEPROM is available; compile in FEATURE_EEPROM_E24C1024. If you do not install external EEPROM hardware, you cannot compile in FEATURE_MEMORIES and all settings will be volatile (they will not survive a reboot). You will also notice that the keyer does the beep-boop-beep-boop-beep-boop at power up to indicate that it is initializing with “factory” settings. This is because there is no EEPROM to pull settings from and the code thinks it is being booted up for the first time.

やはり I2C 接続の EEPROM を載せないと駄目なようです。
同じ基板で AVR マイコンと ARM の両方を使えるようにしようと思いましたが、基板を分けないと駄目ですね。Due では EEPROM が必要ですが、I2C のレベル変換が無くなります。ボードの価格も Mega と Due ではさほど変わりません。中華互換ボードならかなり安くなります。
なので、K3NG キーヤーのシールドは2種類作ってみようかと思います。

しかし、HARDWARE_ARDUINO_DUE を探してみたら
k3ng_keyer.ino(550): It is no longer necessary to specify HARDWARE_ARDUINO_DUE in keyer_hardware.h. It is automatically detected now.
とあります。
この辺り、今の K3NG キーヤーは複雑になりすぎているので、もうちょっと調べないといけないですね。
それに STM32F103C もサポートしているようなので、こちらも確認してみます。
う~ん、複雑になりすぎだ。

次に Due とメモリ関係の設定を見直して、コンパイルが通るように試してみようと思います。
明日には Mega の方のシールドで使うジャンパーピンが届くので、まず、Mega の I2C が通信できるかどうかのところから調べてみるつもりです。
シールド基板が分かれるのと、スケッチもそれに合わせて分けないといけないので混乱しそう。
nice!(3)  コメント(0) 
共通テーマ:趣味・カルチャー

Aarduino Due、 Seeeduino Cortex-M0+、Seeeduino XIAO を試してみた [Arduino]

 K3NG キーヤー V3 に使う Arduino として Arduino Mega 2560 を考えてきましたが、ARM 系 CPU も対象に入れてみました。

そこで ARM 系 CPU の Arduino を幾つか試してみました。
試したのは、Aarduino Due、 Seeeduino Cortex-M0+、Seeeduino XIAO の3つです。
Aarduino Due は Arduino Mega 2560 と同じような外形です。
Seeeduino Cortex-M0+ は Arduino Uno と同じような外形です。
Seeeduino XIAO は ESP-WROOM-02 に似た外形です。
この中で、本命は Seeeduino XIAO です。

それぞれの仕様は次のようになっています。
Seeeduino Cortex-M0+
hardware.png
・ ARM Cortex-M0+ CPU running at up to 48MHz
・ 256KB in-system self-programmable Flash
・ 32KB SRAM Memory
・ Compatible with Arduino Zero
・ 10-bit, 350ksps Digital-to-Analog Converter (DAC)
・ One 12-bit, 350ksps Analog-to-Digital Converter (ADC) with up to 20 channels
・ USB type C for power and data
Seeeduino XIAO
Seeeduino-XIAO-pinout.jpg
・ Powerful CPU: ARM[レジスタードトレードマーク] Cortex[レジスタードトレードマーク]-M0+ 32bit 48MHz microcontroller(SAMD21G18) with 256KB Flash, 32KB SRAM
・ Flexible compatibility: Compatible with Arduino IDE
・ Easy project operation: Breadboard-friendly
・ Small size: As small as a thumb(20x17.5mm) for wearable devices and small projects.
・ Multiple development interfaces: 11 digital/analog pins, 10 PWM Pins, 1 DAC output, 1 SWD Bonding pad interface, 1 I2C interface, 1 UART interface, 1 SPI interface.

動作確認の内容は図が多いので、分けます。
 

続きを読む


nice!(1)  コメント(0) 
共通テーマ:趣味・カルチャー

Arduino で SSB 受信機が作れる [Arduino]

 Groups.io のあるグループで流れていた情報です。

Silicon Labs の SI4735-D60 に CW / SSB patch があるというのです。
SI4735 の機能は、データシートによれば次のようなものです。
Feature.jpg
CW / SSB の機能はありません。
ブロックダイアグラムを見ると
blockdaigram.jpg
ダイレクトコンバージョンの ZIF(Zero IF)のラジオです。
データシートによる回路例は
circuit.jpg
LW / MW / HF の入力段のコイルを除けば、シンプルです。
これに CW / SSB の受信機能を足すのに、チップ内の DSP プログラムにパッチを当てて対応しています。
その情報はこちらにあります。
Si4735 SSB Receiver Controlled by Arduino
SI4735 Library for Arduino
SI4735 Patch Support for Single Side Band
si4735_SSB_NBFM_programming_guide_20120831
う~ん、Arudino ならシールドを作ってみたくなります。

補足:
ZIF のラジオに関してはこちらにちょっと詳しい説明があります。
もう、スーパーヘテロダインのメリットは IC 化しにくい事で薄れているんですね。
nice!(3)  コメント(0) 
共通テーマ:趣味・カルチャー

Sony Spresense で音声リモコンを作る Kindle 本を買ってしまった [Arduino]

 Sony Spresense で音声リモコンを作る Kindle 本を買ってしまいました。

投稿したブログに写真を入れようとして、新規の投稿をしてしまいました。
申し訳ありません。m(_ _)m

Raspberry Pi での音声リモコンも途中なのに、性懲りも無く今度は Spresense の本を買ってしまいました。
これです。
41B6yG6Rs5L.jpg
Voice Assistant Using SONY Spresense
まだ見始めたばかりなのですが、何とか頑張ってみようと思います。
そのうち Spresense を手に入れなければ。
nice!(2)  コメント(0) 
共通テーマ:趣味・カルチャー

SONY Spresense の Kindle 本を買ってしまいました [Arduino]

 つい、SONY Spresense の Kindle 本を買ってしまいました。

買ったのはこれです。
Voice Assistant Using SONY Spresense Kindle Edition
英語版ですが、ちょっと読んで Spresense を試してみたくなり、買ってしまいました。
nice!(1)  コメント(0) 
共通テーマ:趣味・カルチャー

K3NG キーヤー・シールドに送信練習と受信練習のモードを追加しました [Arduino]

 K3NG OM のサイトを見ていたら送信練習と受信・送信練習のモードが追加されていました。

そこで、それらのコマンドが有効になるようにコンフィギュレーションを変えてコンパイルし、動作確認をしてみました。
変えるところは
keyer_features_and_options.h ファイルの次の箇所です。
#define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
#define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
#define FEATURE_PADDLE_ECHO
これでコマンド・モードに入れるとSコマンドとUコマンドが有効になります。
Sコマンドはアルファベットを正しく遅れるかを判定してくれます。Uコマンドは実行するとECHOと帰ってきて、そのあと1文字音が鳴るので、聞いた音を返します。合っていると今度は1文字足されて2文字音が聞こえます。これを5文字まで繰り返してくれます。5文字まで終わると次の組み合わせに移ります。

nice!(1)  コメント(0) 
共通テーマ:趣味・カルチャー

ハムフェア AKC で頒布する Arduino シールド・キットのスケッチを確認しました [Arduino]

 今週末のハムフェア AKCブースで頒布する Arduino シールド・キットに使うスケッチの動作確認をしました。

〔ディジタル電界強度計〕
キャリブレーション機能を付けたスケッチが見つからないので、その一歩手前のバージョンを動かしています。
無信号時です。
DSC07451.JPG
ハンディ機用ホイップ・アンテナを付けて、ハンディ機からの 430MHz 帯の信号を受けています。
DSC07452.JPG
〔K3NG キーヤー〕
Radio Artisan のサイトから最新のスケッチをダウンロードし、必要な修正を加えて書き込んでみました。
秋月の Arduino 互換基板で動かしています。
DSC07453.JPG
nice!(2)  コメント(0) 
共通テーマ:趣味・カルチャー

ハムフェアで頒布するディジタル電界強度計のOPアンプを実装しました [Arduino]

 今週末のハムフェアのAKCブースで頒布するディジタル電界強度計の基板に表面実装タイプのOPアンプを取り付けました。

取り付けたのは半分のキットで、残り半分は半田付けを楽しみたい方の為に未実装にしています。
〔取り付けの様子〕
クランプを使っています。
DSC07450.JPG
〔基板の様子〕
DSC07449.JPG
nice!(3)  コメント(0) 
共通テーマ:趣味・カルチャー

Arduino MKR Vidor 4000 (Microchip ATSAMD21 - Arm Cortex-M0+ processor + Intel Cyclone 10CL016) [Arduino]

 5月の Maker Faire Bay Area で発表されていた Arduino MKR Vidor 4000 が $60 で出ています。

Arduino MKR Vidor 4000 は、Microchip ATSAMD21 - Arm Cortex-M0+ processor と Intel Cyclone 10CL016 FPGA チップが載っているボードです。
Getting Started には Tutorials もあり、FPGA HDL Basics という FPGA の説明も用意されています。
ただ、標準のインターフェースが MIPI と HDMI という映像、音声に特化してはいます。
いろいろと活用するにはそれなりの知識が必要ですね。
abx00022_featured_1.jpg
abx00022_iso_1.jpg
nice!(1)  コメント(0) 
共通テーマ:趣味・カルチャー

SPRESENSE を使って低歪率ツートーン・ジェネレータを考える(その2) [Arduino]

 SPRESENSE を使って低歪率ツートーン・ジェネレータを考える、その2です。

前回、MP3 か WAV でサイン波のデータを用意する必要があると書きました。
それで PC で作る方法を調べてみました。
簡単には WaveGen を使って作れました。
まず、L+R でツートーン信号を出した場合
WG-mix.jpg
L、R それぞれでサイン波を出した場合
WG-single.jpg
シングルトーンで出すか、ツートーンで出すかを選べるようにするにはL、Rそれぞれの信号を外部でミックスする必要がありそうです。
でも、WG のファイル出力機能で WAV ファイルを作る事は出来ました。
nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

SPRESENSE を使って低歪率ツートーン・ジェネレータを考える [Arduino]

 ソニーから IoT 用として SPRESENSE が出ました。

その特徴に
 〇 ハイスペックのハイレゾリューションオーディオ機能
  ・192 kHz/24bit ハイレゾリューションオーディオコーデック
  ・192 kHz A/D コンバータを搭載
  ・8チャンネルマイク入力(デジタルマイクの場合)
  ・フルデジタルアンプによるBTLステレオ出力
があります。
まえに Arduino でサイン波の発生を試した事がありますが、データが 8bit のため歪率が 0.13% とそれほど良くありません。これを改善するには量子化ビット数とサンプリング数を増やせば良いのですが、Arduino Uno ではメモリーの制約もあり、厳しいものがあります。
しかし、SPRESENSE では 192 kHz/24bit ハイレゾリューションオーディオコーデックがありますから、かなり低歪率のサイン波を発生できそうです。
Arduino 用のライブラリを見てみると、
 〇 Audio ライブラリの主な特徴
  ・Sound recorder
  ・Audio player
  ・Volume control
  ・Balance (L/R Gain)
  ・Beep generation
 〇 Audio Output Channel
  ・Analog headphone
  ・I2S
 〇 DSP codec は以下のフォーマットを扱うことができます。
  ・MP3
  ・WAV (PCM)
とあります。
なので、MP3 か WAV でサイン波のデータを用意し、連続して再生動作をさせられれば低歪率のサイン波出力を得られるはずです。出力はステレオですので片チャンネルに 1000Hz、もう片チャンネルに 1700Hz を割り振り、内蔵のライブラリで Vol、Bal を制御するようにすればこれだけで低歪率のツートーン・ジェネレータが完成するはずです。

まずは SPRESENSE を買って試してみるところからですね。
まずは構想まで。
SSB 送信機の調整にはツートーン・ジェネレータが使われます。最近はスプリアス規定も厳しくなり、シングルトーンでスプリアスを確認するにしても低歪率のサイン波でないと正確に評価ができません。CW モードで搬送波の評価はできても、純度の高いサイン波がないと SSB 変調回路の評価はできません。
nice!(3)  コメント(0) 
共通テーマ:趣味・カルチャー

Arduino で Softeare DDS を動かす (その5) [Arduino]

 Arduino で Softeare DDS を動かす、その5です。

DDS の発生周波数と LPF を通った後のスプリアスを比較してみました。
比較したのは LPF のカットオフ周波数が 2kHz で発生周波数が 1kHz と 2kHz の場合のスプリアスです。
〔発生周波数 1kHz〕
2.jpg
〔発生周波数 2kHz〕
3.jpg
比較するとカットオフ周波数と発生周波数が同じ場合の方がスプリアスのレベルは下がります。
ただし、PWM 後の波形に DC 成分が残ってしまい、結合を AC カップリングにしないといけませんでした。
それと両方のグラフで 8.7kHz くらいにピークがあります。これの原因が良く分かりません。
それでも3次のスプリアスがかなり抑えられているので、高いところの不要な信号をどう抑えるかを考えたいと思います。この辺りが 8bit PWM の限界かもしれません。
〔APB-3 での測定結果〕
参考までに APB-3 で 1kHz の信号とスプリアスを測った結果も載せておきます。
1.jpg
同時に表示できてよいのですが、入力のアッテネータと結合の切り替えがないのが痛いところです。
nice!(1)  コメント(0) 
共通テーマ:趣味・カルチャー

Arduino で Softeare DDS を動かす (その4、LPF による全高調波歪の違い) [Arduino]

 Arduino で Softeare DDS を動かす、その4です。

LPF による全高調波歪の違いに関して考えてみました。
LTspice でのシミュレーション結果を見てみると
4.jpg
LC 1段ではカットオフ周波数が 1kHz よりも低くなっています。この違いが全高調波歪の違いになっているのかもしれません。
そこでバターワース・フィルターのカットオフ周波数を 1kHz に近づけたものを作って再度確認してみたいと思います。
でも、0.16% とか、0.13% をデシベル表示すると、-55.9dB や -57.7dB とかの値になります。
全スプリアスがこの値なら、取り敢えず SSB のリニアリティ確認には問題ないと思います。
次は、実際に「あちゃんでいいの」を2個使って、Two Tone Generator を組んでみようと思います。
nice!(1)  コメント(0) 
共通テーマ:趣味・カルチャー

Arduino で Softeare DDS を動かす (その3) [Arduino]

 Arduino で Softeare DDS を動かす、その3です。

インダクタとコンデンサを買ってきてブレッドボードにフィルターを作って波形を見てみました。
〔オリジナルのフィルター〕
オリジナルはチェビシェフ・フィルターですが、使っているインダクタの 4.7mH が手に入らず 4.0mH に変更しています。
これが組んだところ
DSC06735.JPG
これが波形
1.jpg
全高調波歪(THD)が約 0.5% に収まっています。
〔カットオフ周波数を下げたフィルター〕
今度はカットオフ周波数を約 2kHz にしたバターワース・フィルターの場合です。
これが組んだところ
DSC06736.JPG
これが波形
2.jpg
全高調波歪(THD)が約 0.16% に収まっています。
でも、前回の 0.13% より若干悪くなっています。LC 1段から2段になっているのにと、ちょっとがっかりでした。
ついでに入力の PWM 波形とフィルター出力の波形です。
3.jpg
フィルターでの信号遅延が結構あるのが分かります。

全高調波歪(THD)をもっと下げるにはサイン・テーブルの解像度を 8bit から 10~12bit に上げる必要があると思います。
それか出力に入れるフィルターのカットオフ周波数を下げるのと、段数を増やして減衰域の減衰量を増やすしかないですね。
nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

Arduino で Softeare DDS を動かす (その2) (市販部品に変更) [Arduino]

 Arduino で Softeare DDS を動かす、その2です。

※ サトー電気で買える市販部品に変更したものを追加

Arduino の PWM 出力に付ける LPF を考えてみました。
元記事では 12kHz でカットオフするチェビシェフ・フィルターを標準的な値の LC パーツで実現しています。LTspice でシミュレーションするとなかなかの特性が出ています。
dds_lowpass1251.jpg
しかし、実際に作ろうとしている出力は Two Tone Generator なので、1000Hz と 1700Hz の2信号が候補です。これには少しカットオフ周波数が高いように思います。
それでカットオフ周波数がもう少し低い LC フィルターを考えてみようと思います。
参考にした本はこれ、CQ 出版社から出ている「LC フィルタの設計&製作」森 栄二 著 です。
これを参考にバターワース型の5次 LPF を考えてみます。
カットオフ周波数を 2000Hz、インピーダンスを 300Ω で各素子の値を計算すると
周波数比 M が 2000x2π
インピーダンス比 K が 300 なので
L1, L2 = 38.63mH
C1 = C3 = 0.164μF
C2 = 0.531μF
となり、LTspice でシミュレーションすると
5th_butter.jpg
2kHz 前後を拡大すると
5th_butter-2.jpg
設計カットオフ周波数の 2kHz で -9dB(信号源の 300Ω で半分になるので -6dB-3dB = -9dB)とおよそ一致しています。
しかし、これでは市販のパーツを使えないので市販のパーツで適当なものを当てはめてみます。
サトー電気に 30mH のインダクタがあるのでそれを使い、コンデンサを適当に合成してみると
5th_butter-mod.jpg
こんな感じです。
で、2kHz 前後を見ると、若干減衰量が減っていますが、そこそこです。
5th_butter-mod-2.jpg
この辺りでフィルターを試作してみます。
最終的に部品選定はこうなりました。
5th_butter-mod-36mH.jpg



nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

Arduino で Softeare DDS を動かしてみました [Arduino]

 SSB の測定の為に、低歪率の Two Tone Generator を用意しようと考えています。

まず、FCZ の1石 CR 発振回路のものは歪率が酷く、PC ソフトの WaveGene はそれなりに良いのですが、PC が必須となってしまいます。RF の回り込みとかで誤動作が心配です。
で、Arduino で DDS を実現しようかと思い、ググったらそのものずばりの物がこちらにありました。
これを動かしてみたところ、PWM 出力が出ているので、出力に簡単な LC Low Pass Filter を付けて波形を見てみました。なかなか良い結果です。
〔実験風景〕
DSC06734.JPG

〔LC Low Pass Filter〕
3.jpg
手持ちの部品で有り合わせで作ったものです。

〔測定結果〕
2.jpg
1.jpg
1000Hz でプログラムしているのでちゃんと1サイクル1mSec で出ています。
歪率もいきなり 0.13% が出ています。
元記事では -50dB と出ていました。換算するとだいたい同じような値です。
ちゃんとした Low Pass Filter を付けて、ケースに組み込んでみようと思います。
「あちゃんでいいの」を2個用意し、それぞれ 1000Hz、1700Hz でプログラムしてケースに入れてみるつもりです。

スケッチの動作はかなり ATmega328 のタイマー機能を理解していないとその動作が分かりにくいです。理解できたらメモ書きを残してみようと思います。
概要は Timer2 を使い、サイン波の値でオン・タイムを変える PWM 出力を作っており、出力する周波数で Software DDS のモジュローを計算して出力しています。Timer2 で割り込みもかけているのですが、割り込みと PWM 出力設定の辺りが今一つ、理解できていません。(´;ω;`)
nice!(2)  コメント(0) 
共通テーマ:趣味・カルチャー

ゲルマダイオード SD34 が届く [Arduino]

 SNS の売ります・買いますグループで NEC のゲルマニウム・ダイオード SD34 が出ていたので買ってみました。

何に使うかというと、W8TEE OM のアンテナ・アナライザー基板でも使えますし、ゲルマ・ラジオにも使えるので買ってしまいました。
届いたのがこれです。
SD34.jpg
昭和のダイオードですが、パッケージが綺麗です。(フェイク品?)
そのうちに使ってみましょう。
nice!(2)  コメント(0) 
共通テーマ:趣味・カルチャー

RigExpert AA-30.ZERO を Arduino Mega 2560 で動かす (その4) [Arduino]

 RigExpert AA-30.ZERO を Arduino Mega 2560 で動かす、その4です。

前回は Arduino Mega 2560 からコマンドを送って、受信した結果をシリアル通信で PC へ書き出していましたが、今回は Arduino Mega 2560 に取り付けたグラフィック・ディスプレイに表示しています。
最初はシリアル・モニターからコマンドを入力した場合です。
DSC06611.JPG
次は自動実行した場合です。
DSC06613.JPG
レスポンスの関係で表示の順番が入れ替わっているところがあります。
最後に接続した状態です。
DSC06614.JPG
ここまで来たので、次は SWR のグラフ表示と動作コマンド入力のタッチパネル機能の追加を進めたいと思います。
nice!(2)  コメント(0) 
共通テーマ:趣味・カルチャー

RigExpert AA-30.ZERO を Arduino Mega 2560 で動かす (その3) [Arduino]

 RigExpert AA-30.ZERO を Arduino Mega 2560 で動かす、その3です。

前回は Arduino Mega 2560 からコマンドを送って、受信した結果をシリアル通信で PC へ書き出していましたが、通信で取りこぼしがありました。
そこでスケッチを全面的に書き直して、シーケンシャルな処理からイベント・ドリブンな形に書き換えました。
今回の実行結果です。
1.jpg
取りこぼしが無くなっています。
これで基本的な AA-30.ZERO との通信部分はできたので、
これからグラフィック・ディスプレイに通信結果を表示できるように機能を追加していきます。
nice!(1)  コメント(0) 
共通テーマ:趣味・カルチャー

RigExpert AA-30.ZERO を Arduino Mega 2560 で動かす (その2) [Arduino]

 RigExpert AA-30.ZERO を Arduino Mega 2560 で動かす、その2です。

前回は単純に PC と AA-30.ZERO とのシリアル通信ブリッジでしたが、今回は Arduino Mega 2560 からコマンドを送って、受信した結果をシリアル通信で PC へ書き出しています。
Arduino.jpg
ただ、今回は通信のデータがそろうまでの時間を delay で作っているので、タイミングを合わせる部分をちゃんと作らないとダメなようです。
そのため、タイミングが合わずに一部のデータで欠落が発生しています。
その辺りを Arduino のサンプル・スケッチなどで調べてみようと思います。
まだ先は長いなぁ。
nice!(1)  コメント(0) 
共通テーマ:趣味・カルチャー