JavaでWebアプリ制作を学習してみよう。- ブレイクタイム –

JavaでWebアプリ制作を学習してみよう。- Docker MySQL を H2データベースに変更してみる –

JavaでWebアプリ制作を学習してみよう。- Dockerで動作するSpring Boot アプリの開発 –

JavaでWebアプリ制作を学習してみよう。- MySQL CentOS7 on VirtualBox データベースに接続 –

JavaでWebアプリ制作を学習してみよう。- データベースの利用 –

JavaでWebアプリ制作を学習してみよう。- Spring MVC –

JavaでWebアプリ制作を学習してみよう。- Maven or Gradle –

JavaでWebアプリ制作を学習してみよう。-その後-

開発用PC(HP Desktop 400)の HDD を SSD への交換とディスプレイ接続をDisplayport-HDMIに変更した。

JavaでWebアプリ制作を学習してみよう。-開発環境構築編-

ドローン制御の勉強をしてみようーその後

Laravel6でWebアプリ制作を学習してみた。

Webブラウザでマルチタッチ操作できるコントローラーを作成してみています。

WebブラウザからRaspberry Piに接続されたWebカメラで見ながらモーターとLEDを動かしてみた

秋月電子で購入した「0.96インチ128×64ドット有機ELディスプレイ(OLED)」をGR-KURUMIに繋げて動かしてみた。

初めてハッカソンに参加して来ました。

Ubuntu 18.04 on Windows10(VirtualBox)で Laravel フレームワークを学習してみよう その2

Ubuntu 18.04 on Windows10(VirtualBox)で Laravel フレームワークを学習してみよう その1

mariaDB(MySQL)にLibreOfficeのBASEで繋げてデータベース操作の効率化を図ってみた

windows10にVurtualBox6でUbuntu18.04をインストールしてLAMP環境が使えるようにする

windows10にVurtualBox6でCentOS7をインストールしてほどほど使える環境まで整えてみた

raspberryPiでcakePHPフレームワークを使ってみる

raspberryPiにckaePHPフレームワークを導入してみた。~メモ~

raspberryPiにapache+PHP+mySqlを導入してみた。

秋月電子で購入のSHARP LCD(400×240モノクロ)を ME-ESP32で動かしてみた Adafruitライブラリにフォントを追加

Monacaを使って作成したandroidアプリを Android Studio と Cordova 開発環境で同じものを作成してみた。

今あるものだけで作ったGPSリアルタイムマップをandroidアプリにしてみた

今あるものだけで作ったGPSリアルタイムマップを車に積んで試してみた

今あるものだけでGPSリアルタイムマップを作ってみた

GR-KURUMI+WIZ550ioシールドを使ってXPORTみたいなものを作ってみた

昔作ったAndroidアプリプログラムを最新の開発環境 Android Studio でビルド&実行を出来るようにしてみた

最新のAndroidアプリ開発環境 Android Studio を入れてみた

自由研究:DisplayTech社製モノクロLCD(128 x 64)を u8g2ライブラリで ME-ESP32に繋げて動かしてみた

自由研究:XY座標モニターを Webアプリ形式(ESP32)で作成してみた

自由研究:XY座標モニターを Webアプリ形式(node.js)で作成してみた

自由研究:秋月電子で購入のSHARP_LCD(400×240モノクロ)を ME-ESP32で動かしてみた 自作ライブラリ使用

自由研究:XY座標動作モニターを Raspberry Pi Zero の電源Onで起動しプログラム終了で電源Offを試してみた

自由研究:Python(Anaconda)を使ってプログラムを作ってみる その11 XY座標動作モニター on Raspberry Pi Zero

自由研究:秋月電子で購入のSHARP LCD(400×240モノクロ)を ME-ESP32で動かしてみた Adafruitライブラリ使用

XY座標モニタープログラムの開発

自由研究:Raspberry Pi Zero に nodejs 環境を最新にしたメモ

ドローン制御の勉強をしてみようー4回目

自由研究:Raspberry Pi Zero インストールメモ

Python(Anaconda)を使ってプログラムを作ってみる その10 XY座標動作モニター

No Image

Python(Anaconda)を使ってプログラムを作ってみる その9 XY座標動作モニター

JavaでWebアプリ制作を学習してみよう。- ブレイクタイム –

JavaでWebアプリ制作を学習してみよう。- Docker MySQL を H2データベースに変更してみる –

JavaでWebアプリ制作を学習してみよう。- Dockerで動作するSpring Boot アプリの開発 –

JavaでWebアプリ制作を学習してみよう。- MySQL CentOS7 on VirtualBox データベースに接続 –

JavaでWebアプリ制作を学習してみよう。- データベースの利用 –

JavaでWebアプリ制作を学習してみよう。- Spring MVC –

JavaでWebアプリ制作を学習してみよう。- Maven or Gradle –

JavaでWebアプリ制作を学習してみよう。-その後-

開発用PC(HP Desktop 400)の HDD を SSD への交換とディスプレイ接続をDisplayport-HDMIに変更した。

JavaでWebアプリ制作を学習してみよう。-開発環境構築編-

ドローン制御の勉強をしてみようーその後

Laravel6でWebアプリ制作を学習してみた。

Webブラウザでマルチタッチ操作できるコントローラーを作成してみています。

WebブラウザからRaspberry Piに接続されたWebカメラで見ながらモーターとLEDを動かしてみた

秋月電子で購入した「0.96インチ128×64ドット有機ELディスプレイ(OLED)」をGR-KURUMIに繋げて動かしてみた。

初めてハッカソンに参加して来ました。

Ubuntu 18.04 on Windows10(VirtualBox)で Laravel フレームワークを学習してみよう その2

Ubuntu 18.04 on Windows10(VirtualBox)で Laravel フレームワークを学習してみよう その1

mariaDB(MySQL)にLibreOfficeのBASEで繋げてデータベース操作の効率化を図ってみた

windows10にVurtualBox6でUbuntu18.04をインストールしてLAMP環境が使えるようにする

windows10にVurtualBox6でCentOS7をインストールしてほどほど使える環境まで整えてみた

raspberryPiでcakePHPフレームワークを使ってみる

raspberryPiにckaePHPフレームワークを導入してみた。~メモ~

raspberryPiにapache+PHP+mySqlを導入してみた。

秋月電子で購入のSHARP LCD(400×240モノクロ)を ME-ESP32で動かしてみた Adafruitライブラリにフォントを追加

Monacaを使って作成したandroidアプリを Android Studio と Cordova 開発環境で同じものを作成してみた。

今あるものだけで作ったGPSリアルタイムマップをandroidアプリにしてみた

今あるものだけで作ったGPSリアルタイムマップを車に積んで試してみた

今あるものだけでGPSリアルタイムマップを作ってみた

GR-KURUMI+WIZ550ioシールドを使ってXPORTみたいなものを作ってみた

昔作ったAndroidアプリプログラムを最新の開発環境 Android Studio でビルド&実行を出来るようにしてみた

最新のAndroidアプリ開発環境 Android Studio を入れてみた

自由研究:DisplayTech社製モノクロLCD(128 x 64)を u8g2ライブラリで ME-ESP32に繋げて動かしてみた

自由研究:XY座標モニターを Webアプリ形式(ESP32)で作成してみた

自由研究:XY座標モニターを Webアプリ形式(node.js)で作成してみた

自由研究:秋月電子で購入のSHARP_LCD(400×240モノクロ)を ME-ESP32で動かしてみた 自作ライブラリ使用

自由研究:XY座標動作モニターを Raspberry Pi Zero の電源Onで起動しプログラム終了で電源Offを試してみた

自由研究:Python(Anaconda)を使ってプログラムを作ってみる その11 XY座標動作モニター on Raspberry Pi Zero

自由研究:秋月電子で購入のSHARP LCD(400×240モノクロ)を ME-ESP32で動かしてみた Adafruitライブラリ使用

XY座標モニタープログラムの開発

自由研究:Raspberry Pi Zero に nodejs 環境を最新にしたメモ

ドローン制御の勉強をしてみようー4回目

自由研究:Raspberry Pi Zero インストールメモ

Python(Anaconda)を使ってプログラムを作ってみる その10 XY座標動作モニター

No Image

Python(Anaconda)を使ってプログラムを作ってみる その9 XY座標動作モニター

JavaでWebアプリ制作を学習してみよう。- ブレイクタイム –

JavaでWebアプリ制作を学習してみよう。- Docker MySQL を H2データベースに変更してみる –

JavaでWebアプリ制作を学習してみよう。- Dockerで動作するSpring Boot アプリの開発 –

JavaでWebアプリ制作を学習してみよう。- MySQL CentOS7 on VirtualBox データベースに接続 –

JavaでWebアプリ制作を学習してみよう。- データベースの利用 –

JavaでWebアプリ制作を学習してみよう。- Spring MVC –

JavaでWebアプリ制作を学習してみよう。- Maven or Gradle –

JavaでWebアプリ制作を学習してみよう。-その後-

開発用PC(HP Desktop 400)の HDD を SSD への交換とディスプレイ接続をDisplayport-HDMIに変更した。

JavaでWebアプリ制作を学習してみよう。-開発環境構築編-

ドローン制御の勉強をしてみようーその後

Laravel6でWebアプリ制作を学習してみた。

Webブラウザでマルチタッチ操作できるコントローラーを作成してみています。

WebブラウザからRaspberry Piに接続されたWebカメラで見ながらモーターとLEDを動かしてみた

秋月電子で購入した「0.96インチ128×64ドット有機ELディスプレイ(OLED)」をGR-KURUMIに繋げて動かしてみた。

初めてハッカソンに参加して来ました。

Ubuntu 18.04 on Windows10(VirtualBox)で Laravel フレームワークを学習してみよう その2

Ubuntu 18.04 on Windows10(VirtualBox)で Laravel フレームワークを学習してみよう その1

mariaDB(MySQL)にLibreOfficeのBASEで繋げてデータベース操作の効率化を図ってみた

windows10にVurtualBox6でUbuntu18.04をインストールしてLAMP環境が使えるようにする

windows10にVurtualBox6でCentOS7をインストールしてほどほど使える環境まで整えてみた

raspberryPiでcakePHPフレームワークを使ってみる

raspberryPiにckaePHPフレームワークを導入してみた。~メモ~

raspberryPiにapache+PHP+mySqlを導入してみた。

秋月電子で購入のSHARP LCD(400×240モノクロ)を ME-ESP32で動かしてみた Adafruitライブラリにフォントを追加

Monacaを使って作成したandroidアプリを Android Studio と Cordova 開発環境で同じものを作成してみた。

今あるものだけで作ったGPSリアルタイムマップをandroidアプリにしてみた

今あるものだけで作ったGPSリアルタイムマップを車に積んで試してみた

今あるものだけでGPSリアルタイムマップを作ってみた

GR-KURUMI+WIZ550ioシールドを使ってXPORTみたいなものを作ってみた

昔作ったAndroidアプリプログラムを最新の開発環境 Android Studio でビルド&実行を出来るようにしてみた

最新のAndroidアプリ開発環境 Android Studio を入れてみた

自由研究:DisplayTech社製モノクロLCD(128 x 64)を u8g2ライブラリで ME-ESP32に繋げて動かしてみた

自由研究:XY座標モニターを Webアプリ形式(ESP32)で作成してみた

自由研究:XY座標モニターを Webアプリ形式(node.js)で作成してみた

自由研究:秋月電子で購入のSHARP_LCD(400×240モノクロ)を ME-ESP32で動かしてみた 自作ライブラリ使用

自由研究:XY座標動作モニターを Raspberry Pi Zero の電源Onで起動しプログラム終了で電源Offを試してみた

自由研究:Python(Anaconda)を使ってプログラムを作ってみる その11 XY座標動作モニター on Raspberry Pi Zero

自由研究:秋月電子で購入のSHARP LCD(400×240モノクロ)を ME-ESP32で動かしてみた Adafruitライブラリ使用

XY座標モニタープログラムの開発

自由研究:Raspberry Pi Zero に nodejs 環境を最新にしたメモ

ドローン制御の勉強をしてみようー4回目

自由研究:Raspberry Pi Zero インストールメモ

Python(Anaconda)を使ってプログラムを作ってみる その10 XY座標動作モニター

No Image

Python(Anaconda)を使ってプログラムを作ってみる その9 XY座標動作モニター

ドローン制御の勉強をしてみようー3回目

前回の2回目

 

から5か月以上ほったらかし状態でしたが今回はその続きです。

 

3回目は「プロポ受信機からデータを読み取り」の話です。

 

今回使用したプロポと受信機はこれ。

【プロポ】FUATBA 10J
【受信機】FUTABA R3008RB

プロポと受信機間の無線通信方式については今回は触れません。なんの疑問もなくプロポで操作したことが受信機に伝達されるものだとします。

ここでは受信機からプロポから送られてきた操作データを Arduino で読み取るのが今回の目的です。

ネットで調べると

 

あたりの情報によると PWM / PCM / PPM / SBUS 等の複数の読取方式はあるようです。

最新の読取方式としては SBUS を試してみたいところなのですが、SBUS方式で読み取るには電気信号を反転させる回路を作る必要があるので今回はあきらめました。

SBUSでの読み取り関する有益な情報はこちらあたりのサイトは参考になりそうです。

 

今回は PPM 方式で読み取ることとした。

PPM方式では各チャンネル毎に信号線が必要となり Arduino の入力ピンの数もチャンネル数分だけ必要となります。

今回はプロポの操作モード1で受信機の1~4までの4つのチャンネルを読み取ることにした。

受信機チャンネル1

プロポの右の左右レバー

エルロン(左右)

受信機チャンネル2

プロポの左の上下レバー

エレベーター(前後)

受信機チャンネル3

プロポの右の上下レバー

スロットル(上下)

受信機チャンネル4

プロポの左の左右レバー

ラダー(回転)

各チャンネルの信号はプロポのレバーの操作量に応じてパルス信号としてハイの長さが 約1000us ~ 約2000us の間で変化する信号として Arduino で読み取ることとなります。


Arduinoの標準ライブラリの pulseIn 関数を使えば簡単にPPM信号のパルス幅のマイクロ秒を取得することができます。

ただし、各チャンネルの信号を順番に読み取っていては時間がかかりすぎるため他のリアルタイム性が求められる処理(姿勢センサやモータの制御等)に影響を及ぼしてしまう恐れがあります。

私がこのことに気づいたのは姿勢センサやモータの制御等の機能をプログラムに組み込んで動かしたときに動作が不安定となり、いろいろ調べたり、考えたりして上記のような影響を受けていたことが解り、後に信号読み取り方法の改善を施すこととなってしまいました。

その方法は、各チャンネルの信号の立ち上がりのタイミングは同時で立下りのタイミングは各チャンネルで異なる(レバーの操作量に応じて変わる)というの信号として扱えるようなのでどれか一つのチャンネルの立ち上がりで割込処理を行いその割込処理内で全チャンネル分を読み取るようにすることにしたのです。最大で2000us(2ms)で全チャンネル分の読み取りができることになります。メインループ内で2msのディレイが発生するのは避けられないようです。SBUS受信の方がCPU処理的には効率的なのかもしれません。(試してないので正確なことは言えませんが…)

こちらのサイトが参考になりました。

 

具体的なプログラムコードはネットでググればすぐに見つかると思います。