esp32 arduinoの最近のブログ記事

ESP-EYE CameraWebServer with QR Code Detection.

ESP-EYE CameraWebServer with QR Code Detection.

ESP-EYE QR Code Scanner with qrdec. の続きです。

前回の、ESP-EYE を使った、QR Code Scanner で、実際 に、カメラで、QR Code がどのように写っているのか知りたくて作ってみました。

CameraWebServer に、 Face Detect の代わりに、qrdec を使って、QR Detect にしてみました。
グレースケールで、320x240 の画像で、ピンとはどうなのかが確認できました。

ESP-EYE QR Code Scanner with qrdec.

ESP-EYE QR Code Scanner with qrdec.

QR Code Decode C++ with qrdec. の続きです。

QR Code Decode C++ with qrdec. を、ESP-EYE (Esp32 Arduino) でも試してみました。

今回は、ESP32QRCodeReader をベースにして、
の中の、quirc の使用に替えて、qrdec をつかてみました。

開発環境
Ubuntu Mate 22.04 PC
Platform I/O IDE
ボード: ESP EYE
Platform: Arduino

Workspace: ~/Documents/PlatformIO/Projects
フォルダー: qrdec_esp32_eye

1. Platform I/O IDE の PIO-Home で、New Project を作成。
Name: qrdec_esp32_eye
Board: Espressif ESP-WORKER-KIT
Framework: Arduino
で作成します。
1.1 qrdec_esp32_eye/lib ディレクトリーに、上記 ESP32QRCodeReader を、 git clone します。
1.2 qrdec_esp32_eye/lib/ESP32QRCodeReader/examples/basic/basic.ino を、qrdec_esp32_eye/src/qrdec_esp32_eye.ino としてコピーします。
main.cpp は、削除します。
qrdec_esp32_eye.ino を修正します。

この時点で、一度ビルドして、ESP-EYE にアップデートして、動かすと、
quirc 版で、動作すると思います。

1.3 その後、
qrdec_esp32_eye/lib/ESP32QRCodeReader/src/ ディレクトリーに、qrdec をコピーします。

1.4 qrdec_esp32_eye/lib/ESP32QRCodeReader/src/ESP32QRCodeReader.cpp の
void qrCodeDetectTask(void *taskData) を、現状 quircを使っている部分を、qrdec を使うようにします。
概要は、以上です。

ROS IMU による移動距離(距離測定) と向き測定

ROS IMU による移動距離(距離測定) と 向き測定。

IMU 6軸フュージョンを使って、距離と向きを測定します。

このページは、自作 Turtlebot3 自立走行に向けたプログラム。#7 の、16. 再挑戦。 以降を、実際のやり方に向けて、改めて記述したものです。
今回のプログラムの考え方を書いているの、一度ご覧ください。

IMU(ICM-20948) 6軸センサー(加速度、ジャイロ)値を、ESP32で取り込んで、6軸フュージョン(MadgwickAHRS) で、
クオータニオンを算出して、それを元に、加速度センサーの読み取り値から、1G の影響をキャンセルした正味のAccを算出した、加速度と時間から速度、移動距離を出して、
ロボットの座標系から、ROS の基準座標系に変換した位置と姿勢データを、ESP32 Wi-Fi で、リモートPC 上のROS サーバーへ送って、
リモートPC上の Rviz を用いて、3D での姿勢と移動距離を見える化します。

良くYouTube で見かける、IMU を手に持って、空中で動かして、それに連れて、PCのモニターの中の物が3Dで動く、やつです。
注) 但し、あまり完成度は、高くありません。ぜひ、ご自分で完成度を上げっていてください。by nishi 2022.5.13
注2) 基準座標系: ロボットの開始時点の座標。ROS の TF で言えば、odom になります。

開発環境
1. 開発 PC
 Ubuntu Mate 18.04
 Visual Studio Code + Platform I/O IDE
   ESP32 Arduino Framework
 Arduino IDE ( こちらは、Tools -> Serial Plottter を使う為 )

2.実行環境
1) PC / ROS Server
 Ubuntu Mate 18.04
 WiFi 環境が必要です。
2) SOC
  ESP32
  Wi-Fi Ros Serial通信
  TTL-Serial : デバッグ用に使います。テストが終われば、不要です。
3) IMU
 Spark Fun ICM-20948
 SPI 接続

3. ハード構成
ESP32端子 SPI & TTL-Serial
IO1(TxD0) ---- Rx
IO3(RxD0) ---- Tx
IO23(MOSI) ---- MOSI(DA/SDA) and with 1K Pull Up
IO19(MISO) ---- MISO(ADO) and with 1K Pull Up
IO18(SCLK) ---- SCLK(CL/SCL) and with 1K Pull Up
IO5(CS) ---- CS(SS) and with 1K Pull Up
IO17 ---- LED

Turtlebot3 の自作 #6

Turtlebot3 の自作 #6
-- プリント基板 の製作 --

プリント基板と言っても、ユニバーサル基盤を使って、手造り基板の作成です。
但し、パーツの配置、配線は、全て手作業だと大変なので、ここは、Eagle を使ってみます。
Eagle を使うのも、何年ぶりか?すっかり忘れちょります。
この前使ったのは、PIC32MX で、USBマウス to PS/2 変換ボードを作った時以来です。

すっかり忘れているので、一から勉強しながらの製作です。
ここは、以前にもお世話になった、EAGLEプリント基板製作入門 を利用させて頂きます。

Eagle もバージョンが上がっているので、Eagle のバージョンアップから始めないといけないです。

ESP32 は、秋月電子の Wi-Fiモジュール ESP-WROOM-32 DIP化キット です。

今回の、foxbot_core3 の回路図です。

foxbot3_core-eagle-schema.jpg

注1) PIN2(3V3) - VCC 間のパスコンは、ESP-WROOM-32 DIP化キット に最初から付いているので、不要です。

Turtlebot3 の自作 #5

Turtlebot3 の自作 #5
-- IMU の追加 --

今回は、IMU を追加してみます。

Turtlebot3 の IMU (OpenCRのボード組み込み) は、MPU-9250、ICM20648 のSPI 接続の様です。
MPU-9250 は、製造中止で、Amazonで、中国産の類似品を売っていますが、
中身が、MPU-6500 で、6軸のまがい物だったりするので、つかえません。
おんちゃんは、今回これで、2週間程、無駄にしました。

開発環境
Ubuntu Mate 18.04
Visual Studio Code/ Platformio IDE
Framework: arduino
ROS: Melodic
ROS library: rosserial_arduino with Wi-Fi
Board: ESP32 DIP化キット

ICM20648は、チップのみの販売で、ボード品は入手出来ません。
なので、おんちゃんは、ICM20948 を使ってみる事にしました。
9軸センサーで、MPU-9250 の後継機と言うことなので、これに決めました。
入手も、Amazonの中国製のまがい物で無くて、日本のショップで入手できるので、安心です。

Switch Science で、SparkFun のこちら を購入しました。
上記ページに、必要な情報のリンクがあるので、それを活用します。

Turtlebot3 の自作 #4

Turtlebot3 の自作 #4
-- ESP32 Wi-Fi で、Phase1 完成 --

前回の Turtlebot3 の自作 #3 の途中から、ボードを、 ESP32 Wi-Fi に変えた記事の続きです。

注文した、STM32F103, 411 Black Pill が、なかなか届かないので、結局 ESP32 で作成を継続しました。
開発途中の問題点や対応方法は、前回の記事の 5. ESP32 Wi-FI に切り替えに記載してあるので、そちらを参考にしてください。

一連の記事は、こちら

今回は、補足的に回路図、開発環境の記述になります。

開発環境
Ubuntu Mate 18.04
Visual Studio Code/ Platformio IDE
Framework: arduino
ROS: Melodic
ROS library: rosserial_arduino with Wi-Fi
Board: ESP32 DIP化キット
注) DIP化キットよりも、他の 開発ボードの方が、簡単で割り安かも!!

1. 写真。

robocar-DSC03418.jpg

ESP32 gysfdmaxb Server Viwer CGI

ESP32 gysfdmaxb Server (GPS / Wi-Fi Http Server) から受信できる、GPSデータをCGIで受け取って、
Yahoo Map API を使って、ブラウザー上で、MAP 表示できるようにしてみました。

esp32_gps-view-181005-1.jpg

Yahoo MAP APIの使い方に関しては、
http://www.hanemaru.com/itemcolumn/11yolp001.html
を参考にさせて貰いました。ありがとうございました。

Perl Http Client のプログラムは、
http://www.geekpage.jp/programming/perl-network/simple-http-client.php
を参考にさせて貰いました。ありがとうございました。

使い方は、ESP32 gysfdmaxb Server と同じローカルネットワークに繋がった、PC(おんちゃんは、Windows10) に Apache を動作させて、
Apache の /cgi-bin/ ディレクトリー下に、今回の esp32_gps.cgi を設置します。

その後、同じ PC のブラウザーから、今度は、esp32_gps.cgi を実行すれば、OK です。
例 : http://localhost/cgi-bin/esp32_gps.cgi

そうすると、esp32_gps.cgi から、ESP32 gysfdmaxb Server の IP:192.168.1.91 へHTTP Client としてアクセスして、GPSデータを取り込んで、その位置情報を使って、Yahoo Map API を使って、現在位置の地図を、PCのブラウザーに表示します。

ESP32 gysfdmaxb Server (GPS / Wi-Fi Http Server)

ESP32 に、みちびきGPS gysfdmaxb を繋げて、GPS / Wi-FI http サーバーを作ってみました。

仕組みは、http://www.netosa.com/blog/2017/10/esp-wroom-02-wi-fi-lan.html と同じで、
但し、今回は、ESP32 を使っています。

使い方は、ローカルネットワーク上のPCのブラウザーから、ESP32 gysfdmaxb Server の IP:192.168.1.91
をブラウザーから、 http://192.168.1.91 と叩けば表示されます。

ESP32_gysfdmaxb_Server_resp-181005-1.jpg

回路図は、こちらです。

esp32-gysfdmaxb-server_2018.10.6.jpg

このアーカイブについて

このページには、過去に書かれたブログ記事のうちesp32 arduinoカテゴリに属しているものが含まれています。

前のカテゴリはVisual Studio Codeです。

次のカテゴリはesp8266 arduino ideです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

カテゴリ

ウェブページ

サイトナビ