Anxinke の新しいレーダー モジュール Rd-04 用の STM32 ドライバー チュートリアル


序文

       Anxinke の最新レーダー モジュールRd-04が登場しましたが、誰もがまだ混乱しています。Rd-04 の使用方法は何ですか?
       おそらく誰もがこの問題をより懸念していると思われますが、このチュートリアルでは Rd-04 の使用法を詳しく説明します。


1. Rd-04 ピンの説明

Rd-04 は合計 6 ピンの 2.0 mm ピン ヘッダーにつながります。ピンは次のとおりです。

シリアルナンバー ピン名 説明する
1 SDA IICデータケーブル
2 SCL IICクロックライン
3 検出結果出力、感知時ハイレベル出力、非感知時ローレベル出力
4 グランド 接地
5 VIN N 3.3V入力電源
6 IIC_EN IIC イネーブル。外部 MCU を使用して Rd-04 モードを設定する場合、低消費電力を実現するために、このピンを外部 MCU の IO ポートに接続する必要があります。

注:
この記事では I2C ピンを使用する必要があるため、正式な配線の前に Rd-04 のオンボード MCU を取り外す必要があります。MCU の位置は次のとおりです。
ここに画像の説明を挿入

2. Rd-04とSTM32間の配線

この STM32 プロジェクトでは、Rd-04 との配線は次のようになります。
ここに画像の説明を挿入


3. STM32ドライバーの移植

誰でも簡単にこの機能をより早く実現できるように、ドライバー ライブラリを開発しました。I2C ドライバーを記述するだけで済みます。

  • Rd-04 I2C は IO 機能を有効にします。Rd-04 の I2C 機能は、IIC_EN ピンを High にした後に使用する必要があります。STM32 を例に挙げると、HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3,GPIO_PIN_SET) を有効にし、オフにします: HAL_GPIO_WritePin(GPIOA) 、GPIO_PIN_3、GPIO_PIN_RESET)
  • I2C送信開始信号機能
  • I2C送信停止信号機能
  • I2CマスターはACK応答待ち機能
  • I2C送信バイト機能
  • I2C バイト読み取り関数。この関数はスレーブに ACK を送信するかどうか独自のパラメーターを必要とします。
  • 微妙な遅延機能

ドライバーの開発が完了したら、次のように元のドライバーを置き換えます。

#define AXK_RD04_I2C_ENABLE HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3,GPIO_PIN_SET)
#define AXK_RD04_I2C_DISABLE HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3,GPIO_PIN_RESET)

#define AXK_RD04_I2C_START I2C_start()
#define AXK_RD04_I2C_STOP I2C_stop()
#define AXK_RD04_I2C_WAITACK I2C_wait_ack()
#define AXK_RD04_I2C_SEND(byte) I2C_send_byte(byte)
#define AXK_RD04_I2C_READ(ack) I2C_read_byte(ack)
#define AXK_RD04_DELAY_us(us) delay_us(us)

OUTRd-04 は検出データをリアルタイムに出力することができず、IO の High レベルと Low レベルのみを出力するため、 Rd-04 の端子出力を検出することしかできません。
操作結果:
ここに画像の説明を挿入

その他の API の説明とソース アドレス

void axk_rd04_default_config(void)

Rd-04 工場出荷時のデフォルト設定です。内部の設定パラメータを変更することはお勧めできません。他の機能を使用して設定を変更することをお勧めします。

void axk_rd04_display_config(void)

印刷設定結果を出力します。pinrtf印刷出力をサポートする必要があります

void AxkRd04SetIoValOutput(uint8_t OutputStatus)

IO VALの出力レベル、つまりターゲットが検出されたときに出力されるレベルを設定します。デフォルトの出力はHighです。

void AxkRd04SetWayOfWorking(rd04_psm_t PSM)

電源モードを設定します。デフォルトは断続電源、つまり低消費電力モードです。

void AxkRd04SetADCSamplingFrequency(rd04_adc_sf_t ADC_SF)

ADC サンプリング周波数を設定します。デフォルトは 1KHz ですが、オプションで 1KHz、2KHz、4KHz、16KHz があります。

void AxkRD04SetTransmittingPower(rd04_tpower_t Tpower)

送信電力を設定します。デフォルトは RD04_TPOWER_5 (0x45) で、オプションは RD04_TPOWER_0 ~ RD04_TPOWER_7 の 8 つあります。

void AxkRD04SetInductionThreshold(uint16_t IndTs)

検知しきい値を構成します。デフォルト: 0x15a

void AxkRD04SetNoiseUpdate(uint16_t ノイズ更新)

更新ノイズしきい値を構成します。デフォルト: 0x0155

void AxkRD04SetInductionDelayTime(uint32_t _lay_ms)

遅延時間を設定します (単位: ms)。デフォルトは100ミリ秒

void AxkRD04SetBlockadeTime(uint32_t _delay_ms)

ロック時間を設定します (単位: ミリ秒)。デフォルトは1000ミリ秒

ソースアドレス: https://github.com/Ai-Thinker-Open/STM32F102_Rd-04

要約する

公式 Web サイト: https://www.ai-thinker.com
DOCS の開発: https://docs.ai-thinker.com
公式フォーラム: http://bbs.ai-thinker.com
技術サポート: support@aithinker。コム

おすすめ

転載: blog.csdn.net/Boantong_/article/details/130990269