前回は、NanoPiNEOからLinuxコマンドによりGNSS受信機からの測位データを取得できる仕組みを作れるようになった。
この仕組みを使って、スタンドアロンで測位できるような制御プログラムの作成に挑戦する。
ハードウェア構成
・スライドスイッチ
NanoPiNEOへの電源供給用
・フルカラーLED
装置の状態を発光色で伝える
・プッシュボタン
測位データ取得開始と終了
制御プログラム(案)
フロー
1. 電源ON
2. Linux起動及び制御プログラム起動:LED緑点灯
3. プッシュボタン押下
4. str2str常駐開始:LED青点灯
5. プッシュボタン押下
6. str2str常駐終了:LED緑点灯
言語
python
使ったことが無いがライブラリが豊富で情報も多いため勉強も兼ねて
アプリの導入
Python準備
armbianには最初からPythonがインストールされている
バージョン確認
% python3 -V
Python 3.10.6
pipインストール
% sudo apt install python3-pip python3-libgpiod
※libgpiodも必要らしい(インターネット情報)
WiringNP導入
WiringNPとは : NanoPI用のGPIOアクセスライブラリ
シェルからgpioコマンドを使ってGPIOを制御することもできる
インストール方法
git clone https://github.com/friendlyarm/WiringNP
cd WiringNP/
chmod 755 build
sudo ./build
RPi.GPIO_NP導入
RPi.GPIO_NPとは : NanoPi NEO/NEO2上の GPIO を制御するための Python モジュール
インストール方法
sudo apt-get install python3-dev
git clone https://github.com/friendlyarm/RPi.GPIO_NP
cd RPi.GPIO_NP
sudo python3 setup.py install
エラー発生
setup.py installの所で以下のエラーで失敗する
collect2: error: ld returned 1 exit status
error: command ‘/usr/bin/arm-linux-gnueabihf-gcc’ failed with exit code 1
エラー検討
pythonバージョンを変えて再セットアップ -> 変わらずエラー
gpioコマンドでエラー確認
% gpio readall
piBoardRev: Unable to determine board revision from /proc/cpuinfo
-> Is not NanoPi based board.
-> You may want to check:
-> http://www.lemaker.org/
open /sys/class/sunxi_info/sys_info failed.%
WiringNPソース取得元を下記に変更
% git clone https://github.com/wertyzp/WiringNP.git
gpio readallコマンドは正常表示を確認
(NanoPI M1と認識されるが)
しかしsetup.py installでエラーは変わらず
インターネット情報を色々調べてみたが、armbianではボード自動判別機能が原因でRPi.GPIO_NPを使うのが難しい模様
後戻りになるが、OSをFriendlycoreに変えて、環境の再構築を試す予定