Sipeed MAix MaixPy YOLO-V2 学習モデル作成

Sipeed MAix MaixPy YOLO-V2 学習モデル作成で、
アライグマのObject Detection Model の作成が出ていたので、
試してみました。

https://homemadegarbage.com/ai02
https://www.hackster.io/dmitrywat/object-detection-with-sipeed-maix-boards-kendryte-k210-421d55

何とか、model.tflite から model.kmodel を作成して、マイクロSDカードに入れて、いざ、
Sipeed MAix Bit で、 MaixPy IDE から racoon_detector.py 実行した所、エラーになりました。

ValueError: [MAIXPY]kpu: load error -1

Sipeed MAix Bit Arduino FreeRTOS プログラム

Sipeed MAix Bit Arduino(MAixduino) FreeRTOS プログラムも試してみました。

framework-maixduino の中に、FreeRTOS も入っているようなので、
C:\Users\xxx\.platformio\packages\framework-maixduino\cores\arduinno\kendryte-standalone-sdk\lib\freetos\include\FreeRTOS.h

ESP32 Arduino での FreeRTOS のサンプルを参考に作ってみました。
https://kerikeri.top/posts/2017-06-24-esp32-dual-core/
https://docs.aws.amazon.com/ja_jp/freertos-kernel/latest/dg/task-management.html

1. 開発環境
Board: Sipeed MAix Bit (with mic)
Windows10
Visaul Studio Code / PlatformIO IDE
Arudino(MAixDuino)

2. Platformio IDE の設定
platformio.ini
[env:sipeed-maix-bit-mic]
platform = kendryte210
board = sipeed-maix-bit-mic
framework = arduino

Sipeed MAix Bit Arduino Dual Task program

Sipeed MAix Bit の kendryte-standalone-sdk で Dual core task のサンプルが、
C:\Users\xxx\.platformio\packages\framework-kendryte-standalone-sdk\src\hello_world\main.c にあったので、
MAixDuino(Arduino) でも出来るか確認してみました。

注) framework-maixduino の中にも、 kendryte-standalone-sdk が組み込まれているみたいです。
C:\Users\xxx\.platformio\packages\framework-maixduino\cores\arduino\kendryte-standalone-sdk

1. 開発環境
Board: Sipeed MAix Bit (with mic)
Windows10
Visaul Studio Code / PlatformIO IDE
Arudino(MAixDuino)

2. Platformio IDE の設定
platformio.ini
[env:sipeed-maix-bit-mic]
platform = kendryte210
board = sipeed-maix-bit-mic
framework = arduino

CentOS7.x xfs_repair の実行について

CentOS7.x の xfs_repair の実行に関してですが、
一番簡単なのが、 CentOS7 Live USB か、CentOS7 install USB のレスキューモードから
行うのが一番簡単です。

第3の方法としては、
GRUB のメニュー画面から シングルモードで起動して行う方法と、一度 テキストモード(run level 3) で
ログインてから、 init 1 (run leevel 1) へ移行して行う方法を順に行う方法があります。

1. GRUB から シングルモードで起動して、 ACTIVE な ロジカルボリュームを xfs_repair で修復します。
但しこの方法では、inactive なロジカルボリュームは、 ACTIVE に変更しても、xfs_repairを実行できません。

 

CentOS7.x SWAPパーティションの取外し

CentOS7.x の SWAPパーティション (/dev/cl/swap) のシステムからの取外しをやってみました。

1. SWAP の確認
#swapon -s     ← 現在の swap の確認
Filename          Type        Size            Used   Priority
/dev/dm-1         partition   419430        0         -2

2. SWAP の停止
#swapoff  /dev/dm-1    ←  swap の停止
#swapon -s

3.  /etc/fstab の修正
/etc/fstab
/dev/mapper/cl-swap      swap     swap     defaults     0 0

#/dev/mapper/cl-swap      swap     swap     defaults     0 0

4.  /etc/default/grub の修正
/etc/default/grub
GRUB_CMDLINE_LINUX="rd.lvm=cl/root rd.lvm.lv=cl/swap rd.lvm.lv=cl/usr ......"

GRUB_CMDLINE_LINUX="rd.lvm=cl/root rd.lvm.lv=cl/usr ......"

5.  GRUB2 の更新
#grub2-mkconfig  -o  /boot/grub2/grub.cfg

6.  システムをリブートして、問題ないかチェック
#shutdown -r now

CentOS7.x パーティションの xfs から ext4 へ手動で移行 で、手こずったので、メモしておきます。

おんちゃんが、xfs から ext4 へ移行する理由は、どうやら、
#shutdown -rF now で、 xfs だと、ファイルチェックが為されないためです。
xfs でもファイルチェックが実行されれば、わざわざ ext4 へ移行する必要はないのですが。

以下の作業の前に、移行するシステムのクローンを作って置くことをお勧めします。

先ず、initramfs に ext4 が組み込まれているかチェックします。
#lsinitrd /boot/initramfs-$(uname -r).img | grep ext4

上記結果で、 ext4 関連の表示が出れば、 ext4 が組み込まれています。
表示が無ければ、 initramfs へ ext4 を組み込みます。 
多分、組み込まれていないと思います。

initramfs に関しては、下記ページの
"5.5. 初期 RAM ファイルシステムイメージの確認" が参考になります。
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/kernel_administration_guide/ch-manually_upgrading_the_kernel

また、dracut に関しては、下記ページの see man page dracut.conf(5) のリンク先に、
/etc/dracut.conf へのカスタマイズを参考にします。

http://people.redhat.com/harald/dracut-rhel6.html#add_kernel_modules

Adding Kernel Modules

If you need a special kernel module in the initramfs, which is not automatically picked up by dracut, you have the use the --add-drivers option on the command line or the drivers vaiable in the /etc/dracut.conf or /etc/dracut.conf.d/myconf.conf configuration file (see man page dracut.conf(5)):

 

Pytorch で U-Net(セマンティックセグメンテーション) のサンプルが結構公開されているので、
その中から、
https://github.com/milesial/Pytorch-UNet
を、Windows10 + GPU 環境で試してみました。

OS:Windows10
GPU:GeForce GTX 1050 Ti 4.0GB)
CUDA:10.0
Anaconda3 + Python 3.6
Pytorch 1.0.1

その前に、PyDenseCRF のインストールで躓いたので、メモしておきます。
pip install pydensecrf では、コンパイルエラーになります。
https://github.com/conda-forge/pydensecrf-feedstock

ESP32 esp-idf I2s Master clock out put

ESP32 esp-idf I2s マスターモードで、MCLK(I2S master clock) の出力について、
何とか出来たので書いてみました。

 esp32_datasheet_en.pdf の記述では、マスタークロックを出力できると記載があります。
4.1.12 I²S Interface
 ..
 When one or both of the I²S interfaces are configured in the master mode, the master clock can be output to the external DAC/CODEC.

また、別のページには、
The MCLK (I2S master clock) output can be put out through a CLK_OUT pin only.
とあるので、下記シンボルがそれみたいです。

soc/io_mux_reg.h
CLK_OUT1 - 3

ESP32 esp-idf Serial Over Bluetooth サンプルプログラム #3 です。

前回は、プログラムを一応作って、Windows10 にそれぞれ、ESP32 の UART0 のターミナル、Bluetooth の SPP Serial のターミナル、
UART2 の USB TTL-Serial のターミナルの3個を使って、SPP Serial -> UART2 USB TTL-Seial、
SPP Serial <- UART2 USB TTL-Seial へのテキスト文字の転送迄できました。

今回は、実際の運用を想定して、Window10 で、C,C++ でSerial 通信が出来るプログラムを
作って、そのプログラムで、Bluetooth COMポートへアクセスして、多くのデータの送信、受信が
RS232Cに繋がったデバイス (これも、Window10 で、C,C++ でSerial 通信が出来るプログラム) と
問題なく出来る事を確認できれば、完了ぞね。と行きたい所ですが、

TeraTerm に、ファイルの転送機能があったので、SPP Serial の TeraTerm から、テキストファイルを開いて転送してみました。

ESP32 esp-idf Serial Over Bluetooth サンプルプログラム #2 です。

前回は、bt_spp_acceptor をベースにして、Windows10 Bluetoooth でペアリグして、
Windows10 側の シリアル・ターミナル で、Bluetoooth COMポートをオープンして、
シリアル・ターミナル からのキー入力にたいして Echo Back 出来る迄出来ました。

今回は、ESP32 の UART2 部分になります。
esp-idf のサンプルでは、uart_echo と uart_events がありますが、
今回は、uart_events を使って、ドライバーをUART2対応にします。
プログラムとしては、下記になります。

uart_events_example_main.c

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

アイテム

  • esp32-gysfdmaxb-server_2018.10.6.jpg
  • ESP32_gysfdmaxb_Server_resp-181005-1.jpg
  • esp32_gps-view-181005-1.jpg
  • ESP-WROOM-02-G`PS-2017.10.21-1l.jpg
  • PIC32MX_hid_basic_moouse_bredboard2_2017.10.15.jpg
  • PIC32MX_hid_basic_moouse_bredboard1_2017.10.15.jpg
  • PIC32MX hid_basic_mouse_usart_pps-output-settings_2017_10_14.jpg
  • PIC32MX hid_basic_mouse_usart_pps-input-settings_2017_10_14.jpg
  • PIC32MX hid_basic_mouse_usart_pin-table_2017_10_12.jpg
  • PIC32MX hid_basic_mouse_usart_pin-diagram_2017_10_12.jpg

ウェブページ

サイトナビ