マイコンによる無人車両情報収集回路の設計

1. 概要

科学技術の継続的な発展に伴い、無人車両技術は徐々に現代の交通分野における研究のホットスポットになってきました。本稿では主にワンチップマイコンによる無人車両情報収集回路の設計について紹介します。回路には主にセンサーモジュール、マイクロコントローラー制御モジュール、通信モジュールが含まれます。各モジュールの設計・実装により、無人車両の走行過程における様々な情報のリアルタイム収集・処理を実現し、無人車両の自動運転に向けた信頼性の高いデータサポートを実現します。

2. はじめに

自動運転車とは、人間の介入なしに自動的に運転タスクを完了できる自律ナビゲーション機能を備えた車両です。無人車両の自動運転を実現するには、車両の走行環境をリアルタイムにセンシングし、処理する必要があります。したがって、情報収集回路は無人車両システムの非常に重要なコンポーネントです。この記事では、車両の速度、加速度、操舵角などの重要な情報をリアルタイムに収集し、この情報を車両に送信できる、ワンチップマイコンをベースとした無人車両情報収集回路の設計を主に紹介します。通信モジュールを介して処理するホストコンピュータ。

3. システム設計

1. センサーモジュール

センサーモジュールには主に速度センサー、加速度センサー、操舵角センサーが含まれます。速度センサは無人車両の速度を測定するために使用され、加速度センサは無人車両の加速度を測定するために使用され、操舵角センサは無人車両の操舵角を測定するために使用される。これらのセンサーは収集した情報を電気信号に変換し、アナログ信号処理回路で処理して、最終的にマイクロコントローラーに出力します。

2.マイコン制御モジュール

マイクロコントローラー制御モジュールは、主にセンサー モジュールによって収集された情報の処理と制御を担当します。この設計では、制御コアとして STC89C52 マイクロコントローラーを使用し、マイクロコントローラーをプログラミングすることでセンサー モジュールのデータ収集、処理、制御を実現します。同時に、マイクロコントローラーは、通信モジュールとのデータ対話、および処理された情報のホストコンピューターへの送信も担当します。

3. 通信モジュール

通信モジュールは主に、マイクロコントローラーによって処理された情報をホストコンピューターに送信する役割を果たします。この設計では、シリアル通信を使用して、シリアル ポート経由でホスト コンピュータにデータを送信します。シリアル通信は、簡単、確実、低コストという利点があり、無人車両の情報収集システムに非常に適しています。

4. システム導入

1. センサーモジュールの実装

この設計では、速度、加速度、ステアリング角度の検出コンポーネントとしてホール効果速度センサー、容量性加速度センサー、ロータリーエンコーダーを使用しています。これらのコンポーネントの選択とパラメータ設定により、走行中の無人車両の速度、加速度、ステアリング角度のリアルタイム監視を実現できます。

2. マイコン制御モジュールの実装

この設計では、制御コアとして STC89C52 マイクロコントローラーを使用し、マイクロコントローラーをプログラミングすることでセンサー モジュールのデータ収集、処理、制御を実現します。同時に、マイクロコントローラーは、通信モジュールとのデータ対話、および処理された情報のホストコンピューターへの送信も担当します。

3. 通信モジュールの実装

この設計はRS-232シリアル通信方式を採用し、MAX232レベル変換チップを介してマイクロコントローラとホストコンピュータ間の通信を実現します。シリアル通信プロトコルの設計と実装により、無人車両の走行中にさまざまな情報をリアルタイムに送信できます。

コードの一部は次のとおりです

#include <reg52.h>

// 定义速度传感器引脚
sbit speed_sensor = P1^0;

// 定义单片机控制模块函数
void delay(unsigned int time)
{
    unsigned int i, j;
    for (i = 0; i < time; i++)
        for (j = 0; j < 120; j++);
}

int main()
{
    unsigned char speed = 0;

    while (1)
    {
        // 读取速度传感器数据
        if (!speed_sensor)
            delay(10); // 延时消抖
        else
        {
            speed++;
            delay(100); // 延时等待下一次采样
        }

        // 将速度值发送给上位机(此处省略)

        // 延时一段时间,以便观察结果
        delay(1000);
    }

    return 0;
}

おすすめ

転載: blog.csdn.net/qq_58404700/article/details/135442912
おすすめ