STM32F429IデバッグボードとGPSモジュール。 詳細な衛星情報を取得する

画像

habrasocietyへのご挨拶!


少し前まで、 STM32F429ZIコントローラーに基づいSTM32F429I-DISCOデバッグボードが手に入りました

おそらく、その主な特徴的な機能は、かなり効率的なCortex M4プロセッサ(多くの実験に十分な統合された2.4インチスクリーン)に追加されていることです。

最初に私が最初にドキュメントとサンプルを探し始めました。 優れたドキュメントと例はst.comで直接見つかりましたが、当然、もっと多くのチュートリアルやその他のものが必要でした。 それは初心者のARMプログラマーに欠けているものです。 しかし、詳細な検索では素晴らしい結果は得られませんでした。 そのため、パン粉に関する情報を収集し、分析、レビュー、テストする必要がありました。



そして、この便利なプラットフォームの普及に何とか貢献しようと決心しました。

しかし、この投稿は、ある種の包括的な問題を解決することを意図したものではなく、初心者や試してみたい人を対象としていますが、難しすぎると考えています。



これが面白いと思う人のために、猫へようこそ。





一言で言えば、私は自分自身について言います


私自身はフリーランスのプログラマーですが、サイトやその他のプログラミングを少し食べて、鉄のレベルに近づきました。 しかし、残念なことに、CはCとほとんど関係がないため、その周辺機器だけでなく、言語とプログラミング環境についてもデバッグする必要がありました。



ビジネスへ


プロジェクトの本質について、そしてなぜ私が興味を持ったかの歴史について簡単に説明します。

少し前に、私は自分のGPSトラッカーを作成したかったのですが、作成中にいくつかの問題に遭遇しました。 そのうちの1つはアンテナの問題であり、適切なアンテナを選択し、正しく接続する必要がありました。 最初から生じた別の問題は、GPSモジュールによって提供される情報に基づくGPSアンテナの分析でした。 そして、このデバッグの出現により、このタスクは私にとって簡単に実現可能になりました。



基礎として、私はEB-500モジュールを取りました。このモジュールは簡単に入手でき、その価格は非常に人道的であり、最も重要なことはインターネット上に多くの情報があります。 例えばここに 。 この投稿では、GPSモジュールの作成方法については説明しません。 既製で購入することもできますし、上記のリンクから簡単にはんだ付けすることもできます。

また、このコードを適応なしで使用すると、NMEA-0183プロトコルをサポートするさまざまなモジュールで動作する可能性があると思いますが、これを確認することはできません。個人的には確認しませんでした。



開発環境


すぐに、KEIL開発環境を選択しました。 私の意見では、これはSTM32の下に存在する最も便利な開発環境の1つです。



プログラミング中


当然、私はよりシンプルなものから始め、ディスプレイに慣れて周辺に慣れ、プロジェクトに直接対処し始めました。



最初のタスクは、GPSモジュールと通信するためにUSARTと連携する適切なライブラリを作成することでした。

2番目のタスクは、GPSモジュールからのデータを分析するためのライブラリを作成することでした。私の場合は、NMEAコマンドの分析です。

最後のタスクは、デバッグ画面に情報を表示し、認識と分析に多少なりとも便利な形式で表示することでした。



また、コードのデバッグの利便性のために、SWO(Serial Wire Viewer)でそれを見つけました。このポートを介して、デバッグボードのUSB接続を介してデバッグ情報を直接転送することは非常に便利です。



コードでは、すべてが退屈にならないように、ボードの電源を入れたときに表示されるスクリーンセーバーとして衛星画像を追加しました。



実際に何が起こったのかはここで見ることができます:


ビデオは3つのステップを示しています。 最初-アクティブなアンテナが接続されており、窓に掛かっています。 第二-アンテナは窓からアパートの内部に削除されます。 第三-アクティブアンテナがモジュールから切断されます。







コード


ここにすべてのコードをダンプしないことにしましたが、GitHubに置いて、動作し、テスト済みで、非常にシンプルです。すぐに予約を行いますが、問題は誰もないと思います。 C「プログラマー、これを考慮してください。



ある瞬間は私にしか説明できない。 コードでUSART1と速度9600を使用して作業を構成しましたが、これらすべての設定はヘッダーファイル/mylibs/usartlib.hで簡単に切り替えることができます



Githubコード



さらなるプロジェクト開発計画


次に、GPRSモジュールをデバッグにも接続して、エフェメリスをEB-500モジュールにロードする機能を実装します。



それだけです。私の成果が誰かに役立つことを願っています。 頑張って



All Articles