2020年10月4日日曜日

祝 ブレイクアウトボード動作🎉

出ているこのピンがポイント😝

ちゃんと動いてます!

苦節1年の試行錯誤でここまで来ました😓

このThermal Camのプロジェクトを始めてWROOM02(WiFi基板)を試行錯誤しましたが、基板自体の知識や電子機器の仕様書の読み方で2年掛かりました。

半田付けしたのは9個ですが、基板自体は15個程設計製作しましたが当初は誤配線や設計ミスの連続です。当時全くの素人なので許して下さい。

最終的にはこの形に行き着きました。切り欠き部分がポイント。


基板設計は当初は初心者用のAutoCADの123D Circutsを使って(お絵かきソフトの基板版 → 何と! 中学生のものづくりを支援する為のプロジェクト)なんとか完成。その後プロ向けのEagleという無料ソフトを使っています。


どの基板ソフトでも部品ライブラリーが標準の部品しかありません。

例えば下記の様な特殊な部品はライブラリーにありません。
モレックスというメーカーの特殊ソケットです。
これでないとFLIR LEPTONが取り付けられません。

基板を作る前に素材のデータをライブラリーに登録する訳ですが、これが素人では無理なレベルです。部品の配線番号と回路図を一致させる(規格にしたがって)。これを一から設計する必要がありますが、部品メーカーレベルの知識が必要。

下記は基板自体の半田パターン

下はそのベースになる部品配線図です。

なのでネットで作っている人を探してその部品を共有したところ、これを”野良データ”と言いますが、最初にコピーした人の仕様は間違っていたので完成部品の基準位置が90度ずれていました。自分で作れない人はその部品のデータをチェックできるはずもなく初回は敢え無く失敗。基準位置から1番ピンを数えるので基板メーカーも確認してくれれば良かったのですが、厳密にはこちらの設計ミスです。
ご覧の通りソケットが横向いてます(・・?)
試作代が4万円です。これは結構ショック😣で次を探して内容を良く確認してから再度手配。
次はショットキーバリアダイオード(電源の逆配線保護用部品)の向きを間違えました。
短絡してテスト。でも動かず。(・・?)

FLIR LEPTONはセンサー動作の為にクロック(25Mhz)を送る必要があります。次に発振器発振子の違いがありその違いがわからず発振子を手配していました。この時点でその違いがわからずサンプルの回路がおかしいのでオリジナルの部品の発振器の回路を参考に再度部品を手配。

ここからが苦難の連続です。ネットで日本の設計業者を探して依頼するもその程度の仕事では大した金額にならないとの事で2019年末に断られました。
なので再々修正して再手配も動かず。ENピンに入力電圧にする為、プルアップ抵抗も追加(後に内部でプルアップしているから不要とわかりましたが、当時はわからず)。電源ノイズの仕様やその他の部品の仕様自体は専門家でないと分からないレベルです。プロなら別ですが。
ここまでで3回基板を制作したので10万円は超えています。

なのでここから安い中華実装業者(4割安)をネットで探して再手配。
(これがそもそもの間違えの始まりですが、
当時は安い業者を信用していました。)
またその間、自分で設計した配線の太さがおかしい事(細すぎる)に気が付いて設計変更は既に10回を超えていました。他のパターンに干渉しない様に電源線は最大限の太さに変更。
表面実装は手配してから配達まで1ヶ月。既に設計を開始してから半年が過ぎていました。

では日本の業者に依頼すれば、設計別で製作だけで60万円です。半田ペーストをするマスクも作るので日本ではそれくらいが相場ですが、中国は5分の1の価格です。送料コミでも。
ちなみにコーンズテクノロジーに相談したところ設計で100万円でした。
なので失敗してもまだそれよりも安いと自分に言い聞かせて、自分で背中を押すしかありません。

安い業者はレベルが低い! 発振器の180度配置間違え😢
再度制作も有料との事でしたが、他に受けて貰える所も無い(倍以上の費用)為、言い値の値引きで妥協。(と言っても200ドル=25000円)

念の為上記手配前に、表面実装に手半田で挑戦。と言っても25Mhzを確認するにはオシロスコープが必須です。さらに追い銭ですが、今後も必要になるのでこの際手配しました。(実際最終的に役に立つことになります。)


買いました。最安で5万円その上50Mhzのモデルをゴニョゴニョソフトウエアを書き換えて
100Mhzに改造。信号が鈍っていますが、測定方法とプローブの問題です。とりあえずクロックを測れたら良いので。。。

でこの表面実装の部品を取り出してテスト。この大きさ2ミリ角。半田面も裏側にある始末。

左上の2ミリ角の部品見えますが?👀
一応配線を引き出しましたが、後配線の確認のしようがありません。実際は裏面ですし。
必死に半田するも動かず。動いてる?
発振はしているのですが、どこに接触してこの波形になるか不明。

もうこの時点で2020年4月です。コンテストに入賞するもこの部品を完成しないと
アメリカから部品を輸入しないとThermal Camを継続する事が難しくなりました。
元々のFLIRのブレイクアウトボードが生産中止でアメリカのGroupGets(関連会社)の
ブレイクアウトボードのみでコーンズテクノロジーも取り扱いがないとのこと。

送料を入れると1万円位でThermal Camのトータルコストを悪化させています。

さて正確に発振している確認は出来なかったですが、どうやら発振はしているのはわかったので、また例の業者で制作を再開。

(苦難はまだまだ続く。。。)
やったー!25Mhzで発振してます。

でも、LEPTONセンサーはうんともすんとも反応せず。。。
1つ1つ配線を確認して規定の電圧を確認。問題なし。

では電流値は規定通りかと確認すると、、、

ここまで小さい部品の電流はシャント抵抗1Ωでないと測定は無理!その為にまた専用機を買う訳にもいかないという事で、一個10円の抵抗を日本橋で入手後、電流測定。
ん?27.1mA?足らない... 
I_DDC端子は110mA最低でもないとLEPTONは動作しません。

オリジナルは短絡電流576mAとはいえ十分出力できています。

業者に基板裏面の部品のプリント番号が仕様書を違うのでどの部品を使ったか確認したら、
部品間違ってました〜ってもうどうしようもない安物業者です。😱
なんか刻印が変。

おまけに再製作に最低200ドルはコストがかかるので部品だけ無料で送るので自分で半田して欲しいとの事。時間も無いし200ドルを払ってこの安物業者に手配。まだお金を取るところが厚かましいところですが、結局最後はこの業者は逃げ出す事になります。
それらしい部品番号ですが、電流は足らず、というより中身は同じ部品の様です。
どの部品業者(デジキーかマウサー?)から仕入れたかを確認したら音信不通になりました。要は逃げた様です。
というのも元々の部品(レギュレータ)はFusionPCBで手配するとこの春に生産中止になったとのこと。

もう誰が悪いかどうかは別にして動作するかの確認に1年以上掛かって、根気も自信も無くなってきました。

気を取り直して、深呼吸して、最初のロットの頃は幸いこのオリジナルレギュレーターが実装されていたので、その頃の失敗作から取り外して再度手半田。かなり集中しないと出来ないので2つの部品を取り外しと取り付けだけで結局丸一日掛かりました。

でも動きません!!
全ての条件が揃ったはずですが、動作せず。この時点で99%諦めました。

9月末の夜中にふっと、冷静に考えると今回オリジナルから変更している点があました。
リセットピンをMISOピンと入れ替えています。
なのでもしかしてリセットが掛かっているかもと出社してからオシロスコープで確認。


リセット信号出てるじゃん😂wow。

という事でそのピンを外して

冒頭の動画の通り
動作したというお話。。。

面白かったですか?
本人はこの間1年以上真剣に取り組んでいました。


という訳で設計を一部変更して関西電機の部品として販売予定です。今度はFusion PCBという有名な業者に手配します。元々ここで製作していましたがコストが中国業者の中で一番高い。でも安物の業者にはもう懲り懲りです。

生産中止のレギュレーターは2つ候補を見つけてこれから再度テストしてからです。
ふ〜🙄

2020年9月20日日曜日

インターンの活用について。(詳細はこれから)


大阪商工会議所の縁で大学のプロジェクトの商談中、インターンのお話がありました。昨今政権も変わってデジタル庁(命名のセンスは? 今の大臣で方向性は正しく出せるか?)


台湾のIT担当大臣オードリータン氏
(中卒で独学でプログラムを勉強してアップルのソフトウェア顧問にもなったと逸話になった人です。その他名だたる会社の責任者を歴任しています。また現在の台湾総統がトランスジェンダーでもある人をIT担当大臣に任命して、台湾のコロナ渦を乗り切った事も話題になりました。)の様な事になならなさそう(東大出た大臣がサラリーマン的に忖度してできる物はGotoキャンペーン位?)ですが、目指す方向は産業総合研究所と一緒でDX(デジタルトランスメーション=デジタル化)です。

何、それ?

書類の処理から押印を無くして生活を変革していく。1つの例で理解されている様で理解されていない。タイムカードを押してその日のスケジュールを処理する事ではありません。

固定観念を打ち破る必要があります。

こちらとしては費用と期間。学生側の条件を確認中。

仮に無償の場合は何かを支給する事で、より良い条件にしないと良い学生は来ないと思うので整理中。

仮に有償でも何かを支給する事も考えます。つまり時給+支給品。

それより重要な事は会社が何を目指して、学生が何が得られるかを明確化する事。

今会社にある機材リストも重量かもしれません。VIVE PRO, STEREAO LAB, 各種Jetson,

Intel RealSense Depth Camera, RTX2080, GTX1080等々で出来そうな物を想像できる学生に来て欲しいところです。

支給品はJetson NanoかNX、今回のお願いする作業でLinuxのコマンドラインが重要になるのでいつでもどこでもレベルアップ出来、社内の作業の効率化も出来る。コードや開発環境もオープンソースで対応ができる。 


アカデミック価格がある場合は金額の立替等で検討する。その場合は前払いが前提なので学生を注意深く選ぶ必要があります。

要件は、Linuxマシン(Ubuntu)操作、C及Pythonの基礎知識(JAVAスクリプトでも良い)、アマゾンウェッブサービス(AWS)知識、MATLAB、


フュージョン360の操作、できればUNITYも出来る事。数学で偏微分位は理解して欲しいです。統計学やGitHub,OpenCV...まあ色々あります。






これらが出来れば弊社に来ずに高給が取れるのでこれらを一緒にレベルアップする事にする。学生なので初級でもやる気があれば化ける可能性が大きい。

ここまでの事を要求するからには作るものもそれなりのレベルにする必要がある。

面接はソラコムIoTでテスト。


①現在会社ではサーモグラフィーでAI(深層学習)だけ。一応会社の方向性と実業に関連している。

②次に目指すのはVR(バーチャルリアリティ)やAR(拡張現実)=三次元データと実際のデータを合成した世界を扱う。社内のVive Proの活用。

③ROS(ロボティックス)ここも外せませんが実業に役立てるにはかなりのレバルが必要ですが、今から進めるべき課題です。


これだけに優秀な学生がくるか?

夢のある開発目標も必要です。

例えば、社内の目標も”キュービクル現地調査をVRで実現する。”ある程度はこれで時間を掛ければ簡単なものは出来そうです。無難な感じですが、恐らく驚く様なものにはなりません。



社内の目標はそのままで、学生への目標は”オープンソースを使ってレーシングシュミレータを作る”とします。

仕事でゲームを作るの?と社内ではなるでしょうね。

現在の最新技術の根底はゲームといって過言ではありません。学生に実益を考えて目標を掲げてそれを実現する為に弊社に来てくれるはずもありません。


その為、学生への目標は壮大で夢のある事にしないと優秀な人は集まりません。

上手くいけば大阪商工会議所のAIコンテスト入賞に負けない位の結果がでると思います。

協力して良い作品が出来ればそれらの学生をクレジットしてあげれば成果物により関心を持って取り組んでもらえると思います。また弊社では無いところにいく場合は結果を役立つ様にも配慮するつもりです。



2020年9月12日土曜日

Thermal Cam3X to Jetsonシリーズへ(1)

 サーマルカムはiPhoneアプリを含むシステムなので機能追加が難しくよってカスタム仕様も煩雑になります。

JetsonシリーズはLinuxシステムで実行までにステップを踏む必要がありますがカスタマイズが容易です。

iPhoneの処理能力はデスクトップパソコン並なのでいろいろな機能を追加して動作する様にしました。

JetsonシリーズはXavier以外は処理能力に限りがある為、機能を絞る必要があります。

Jetsonでも録画機能が必要ですが、Jetson自体の処理をを増やさない様にラズベリーパイに

画面を入力してそちら側で録画の方法を検討中。HMDIをUSB WEBカメラのタイプかHMDIを

カメラシリアルインターフェース(CSI-2)にするか?



前者は比較的簡単に作業が出来ましたが、画質と処理スピードがいまいち。CSI-2は入力の設定をマニュアルでする必要がある。

画質や処理スピードはUSB CAMERAより早い!

冬虫電子ってなんなんでしょう?

設定はまたまた煩雑。。。

RASPIVIDコマンドにGSTREAMERも使ってとって一般的にはつかえません。

緊急追伸:こんなのありました。世界中でユーチューバーが活躍しているからか、あれば助かるものは何でもある。

HMDIから入力、パススルー出力+ハードディスク録画、ついでにWEB配信。。。。


全て揃ってます。

ファイルあたりのMAXの録画時間の制限あると思いますが1TB1080p60fps最高画質で62時間、高画質で78時間、1080p30fps標準画質で136時間、720p60fps記憶容量優先で180時間480p60fps最低画質で530時間程度になるようです。

128GBのメモリーでいいかも?

思いつくものは何でも安くある。こうなるとRaspberry Pi4は要らないな〜

全く違う製品でした。

監視カメラ用の録画機でした。

因みに近赤外線カメラの返品受け入れて貰いました。Windows7でないと動かないとか

分かりにくい仕様とか安い中華通販は結構大変です。

カメラドライバーのダウンロードセンターは既にサービスを停止しているようです。
指示通りのビデオを撮って必要な情報を説明してと大変ですが、一応理解した様で返金処理ができる様になりましたがそもそもWindows7がなければ泣き寝入りです。


このリスクはどの様に管理しようか悩むところです。今回の一件でこのセンサーは今でも需要があり少なからず実験等がされているので、ドライバーをWindows10で使える仕様で作り替える業者がいるのですが、今回の用途用に作っているので操作等いろいろ調べないと大変です。要は自己責任。
この点、開発は手間仕事でもある。

2020年8月30日日曜日

方向性は間違っていない。

基準温度を元に測定する方法は徐々に浸透しているようです。
Thermal Cam3Xのアプリを使った方法だと初期設定に手間が若干掛かる事と当然電話の際にシステムが停止する問題があるので、Jetsonを使って専用アプリにするのも 今だから出来る事なのかもしれない。 黒体炉を使って基準温度から入室する顔の温度を計測してる感じ。Thermal Camは距離によっても温度差がでるので距離と温度の相関関係をどう処理するか? もう一つの問題はブレイクアウトボードこれがなかなか手強くて(といっても自分の設計能力の問題。。。)1Ωのシャント抵抗でそれぞれのレギュレータの短絡電圧を測って見ました。 オリジナル
今回製作の基盤

要求されている出力が出ていない。 なぜ?
Hello Dear, We confirm it is real issue of wrong part we made. So sorry. But it happened, let's deal with it together. There are 20pcs of this part, if avaible we will resend the parts to repair? or if you can purchase in your local market we will cover 10$ for you. or balance to next order? How do you think? if you have better comment please let us know. Thanks.
基板実装メーカーの部品間違え😅 前も間違うし。。。 やり直しです。この基板は何とか完成させたい長年の課題。 またAIメンテくんもいよいよ日の目を見そうなので構成を考えてリリースします。 Thermal Cam3Xで機能をてんこ盛りにしたので、Jetsonでシンプルな機能にしようと思います。 ジンバルはほぼ完成ですが、距離を伸ばす改造も途中で終わってます。orz
やり残しが多いですね。すみません。

2020年8月19日水曜日

Jetson Nano/NXの設定(追記9月1日)

とりあえず作業やテストに必要な設定を一通りインストール。

NXも同じJetpack4.4のopencv4.1.1だとYOLOv3が遅いのでスクリプトのgstreamerをオフにしする。

cmakeflugsは-D WITH_GSTREAMER=ONをOFFにするコメントアウトしても

gstreamerはインストールされる。システムにエラーが出てきたので一度クリーンインストール。


https://github.com/mdegans/nano_build_opencv

7.5FPSから9.1FPSに改善。


Jeston nano・NX setting

ファイル名を英語に変更

LANG=C xdg-user-dirs-gtk-update

sudo apt-get update

sudo apt-get upgrade

エディター、画像処理ソフト、ドライブ用ソフトをインストール

sudo apt-get install nano

sudo apt-get install ffmpeg

sudo apt-get install gparted

参考用ページ

https://www.nakasha.co.jp/future/ai/vol2_yolov3nvidia_jetson_nano.html

Full Power化

sudo nvpmodel -m 0

sudo jetson_clocks


git clone https://github.com/AlexeyAB/darknet


モデルのダウンロード

Pre-Trained Modelを~/darknetにダウンロードしておきます。


YOLOv3

YOLOv3 SPP

YOLOv3 Tiny


恐らく、Jetson Nanoでカメラと共に使うならTinyモデルの方です。ダメ元でやってみる用にYOLOv3、YOLOv3-SPPも念のため落としておきましょう。


nano .bashrc


export PATH=/usr/local/cuda/bin:${PATH}

export LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH}


***********************************************************


GPU=1

CUDNN=1

CUDNN_HALF=1

OPENCV=1

AVX=0

OPENMP=1

LIBSO=1

ZED_CAMERA=0

# set GPU=1 and CUDNN=1 to speedup on GPU

# set CUDNN_HALF=1 to further speedup 3 x times (Mixed-precision on Tensor Cores) GPU: Volta, Xavier, Turing and higher

# set AVX=1 and OPENMP=1 to speedup on CPU (if error occurs then set AVX=0)

DEBUG=0

ARCH= -gencode arch=compute_30,code=sm_30 \

      -gencode arch=compute_35,code=sm_35 \

      -gencode arch=compute_50,code=[sm_50,compute_50] \

      -gencode arch=compute_52,code=[sm_52,compute_52] \

#   -gencode arch=compute_61,code=[sm_61,compute_61]

OS := $(shell uname)

# Tesla V100

# ARCH= -gencode arch=compute_70,code=[sm_70,compute_70]

# GeForce RTX 2080 Ti, RTX 2080, RTX 2070, Quadro RTX 8000, Quadro RTX 6000, Quadro RTX 5000, Tesla T4, XNOR Tensor Cores

# ARCH= -gencode arch=compute_75,code=[sm_75,compute_75]

# Jetson XAVIER

# ARCH= -gencode arch=compute_72,code=[sm_72,compute_72]

# GTX 1080, GTX 1070, GTX 1060, GTX 1050, GTX 1030, Titan Xp, Tesla P40, Tesla P4

# ARCH= -gencode arch=compute_61,code=sm_61 -gencode arch=compute_61,code=compute_61

# GP100/Tesla P100 - DGX-1

# ARCH= -gencode arch=compute_60,code=sm_60

# For Jetson TX1, Tegra X1, DRIVE CX, DRIVE PX - uncomment:

 ARCH= -gencode arch=compute_53,code=[sm_53,compute_53]

# For Jetson Tx2 or Drive-PX2 uncomment:

# ARCH= -gencode arch=compute_62,code=[sm_62,compute_62]


 *********************************************************


YOLOv3モデルを使って、WEBカメラで認識させてみます。

./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights

./darknet detector demo cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights -c 0


ラベリングする(アノテーション)

 Yoloは上記で作ったイメージファイルの他に、これらに対応したTXTファイルが必要です。(イメージファイルのどの部分に対応するクラス画像があるかを示すテキストファイルで、イメージファイルの枚数分必要です)ここら辺が一番単調で、手作業では時間のかかる部分となります。今回ラベリングソフトはlabelimgを使いました。以下インストール方法ですが、すでにpython3をインストールしている場合は3,4行目は必要ありません。


git clone https://github.com/tzutalin/labelImg.git

sudo apt install pyqt5-dev-tools

sudo apt install python3-pip

sudo pip3 install lxml

cd labelImg

make qt5py3

python3 labelImg.py


そしてJetson NanoでexFATフォーマットのUSBメモリーが使えるように、以下コマンドで「exfat-fuse」と「exfat-utils」をインストールします。

$ sudo apt-get update

$ sudo apt-get install exfat-fuse expat-utils

続いてJetson Nanoにカードリーダーを接続し、そこにSDカードAを接続します。

さらに別のポートにUSBメモリーを接続します。


clone micro SD card

sudo dd bs=4M if=/dev/sde of=jetcard_image.img status=progress count=6250


*6250 x 4MB=25000MB

マイクロSDカードに書込み

sudo dd bs=4M if=jetcard_image.img of=/dev/sde status=progress



CUDAのサンプルコード

https://gihyo.jp/admin/serial/01/ubuntu-recipe/0563?page=4

CUDAのサンプルコードは「/usr/local/cuda-10.2/samples/」にインストールされています。そこでサンプルコードをあらかじめユーザーが読み書き可能な領域にコピーしておきます。


$ cp -a /usr/local/cuda-10.2/samples/ ~/

サンプルコードのトップディレクトリでmakeを実行すればひととおりビルドしてくれます。時間がかかるのが嫌なら,次の例のように個別にビルドしましょう。


$ cd ~/samples/1_Utilities/deviceQuery

$ make

$ ./deviceQuery


$ cd ~/samples/5_Simulations/oceanFFT/

$ make

$ ./oceanFFT


$ cd ~/samples/5_Simulations/smokeParticles/

$ make

$ ./smokeParticles


Swapの設定

https://www.jetsonhacks.com/2019/04/14/jetson-nano-use-more-memory/

git clone https://github.com/JetsonHacksNano/installSwapfile

cd installSwapfile

./installSwapfile.sh


wiwao@wiwao-desktop:~$ free -h

              total        used        free      shared  buff/cache   available

Mem:           3.9G        2.1G        523M        345M        1.3G        1.3G

Swap:          1.9G         24K        1.9G


wiwao@wiwao-desktop:~/installSwapfile$ ./installSwapfile.sh

Creating Swapfile at:  /mnt

Swapfile Size:  6G

Automount:  Y

-rw-r--r-- 1 root root 6.0G  8月 19 10:03 swapfile

-rw------- 1 root root 6.0G  8月 19 10:03 swapfile

Setting up swapspace version 1, size = 6 GiB (6442446848 bytes)

no label, UUID=d46292ab-c15d-4c3f-937e-870c5a1f6200

Filename Type Size Used Priority

/dev/zram0                              partition 506392 132 5

/dev/zram1                              partition 506392 132 5

/dev/zram2                              partition 506392 132 5

/dev/zram3                              partition 506392 132 5

/mnt/swapfile                          file    6291452 0 -1

Modifying /etc/fstab to enable on boot

/mnt/swapfile

Swap file has been created

Reboot to make sure changes are in effect


wiwao@wiwao-desktop:~/installSwapfile$ free -h

              total        used        free      shared  buff/cache   available

Mem:           3.9G        2.1G        568M        352M        1.2G        1.3G

Swap:          7.9G        528K        7.9G


************************************************************************************

# /etc/fstab: static file system information.

#

# These are the filesystems that are always mounted on boot, you can

# override any of these by copying the appropriate line from this file into

# /etc/fstab and tweaking it as you see fit.  See fstab(5).

#

# <file system> <mount point>             <type>          <options>                               <dump> <pass>

/dev/root            /                     ext4           defaults                                     0 1

/mnt/swapfile swap swap defaults 0 0

************************************************************************************

*********

スワップファイルのONとOFFはコメントアウトをmnt/swapfile swap swap defaults 0 0に追加もしくは削除

*********

# /etc/fstab: static file system information.

#

# These are the filesystems that are always mounted on boot, you can

# override any of these by copying the appropriate line from this file into

# /etc/fstab and tweaking it as you see fit.  See fstab(5).

#

# <file system> <mount point>             <type>          <options>                               <dump> <pass>

/dev/root            /                     ext4           defaults                                     0 1

# /mnt/swapfile swap swap defaults 0 0


gpuGraphを使う方法

 以下ソフトを使用します。

gpuGraph

For Python 3, Matplotlib may be installed as follows:


$ sudo apt-get install python3-matplotlib

$ git clone https://github.com/JetsonHacksNano/gpuGraph

$ cd gpuGraph

$ python3 gpuGraph.py


オープンフレームワークスのインストール方法

wget https://openframeworks.cc/ci_server/versions/nightly/of_v20200818_linuxarmv7l_nightly.tar.gz

tar -zxvf of_v20200818_linuxarmv7l_nightly.tar.gz

mv of_v20200818_linuxarmv7l_release openFrameworks

mv openFrameworks of_10.1


sudo apt install cmake

cd of_10.1/scripts/linux/ubuntu

sudo ./install_dependencies.sh


1.

nano of_10.1/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk


else ifeq ($(PLATFORM_ARCH),armv7l)

else ifeq ($(PLATFORM_ARCH),aarch64)


2.

nano of_10.1/libs/openFrameworksCompiled/project/linuxarmv7l/config.linuxarmv7l.default.mk

を開き41〜48行目付近


#PLATFORM_CFLAGS += -march=armv7

#PLATFORM_CFLAGS += -mtune=cortex-a8

#PLATFORM_CFLAGS += -mfpu=neon

#PLATFORM_CFLAGS += -mfloat-abi=hard

PLATFORM_CFLAGS += -fPIC

PLATFORM_CFLAGS += -ftree-vectorize

PLATFORM_CFLAGS += -Wno-psabi

PLATFORM_CFLAGS += -pipe


4行にコメント記号を入れ(上記#)、

さらに69〜71行目付近


#PLATFORM_PKG_CONFIG_LIBRARIES += glesv1_cm

#PLATFORM_PKG_CONFIG_LIBRARIES += glesv2

#PLATFORM_PKG_CONFIG_LIBRARIES += egl


3行にコメント記号を入れて保存。


3.追加のファイルをダウンロードしてビルドした後

Download apothecary to recompile kiss and tess2:

git clone https://github.com/openframeworks/apothecary.git

cd apothecary/apothecary/

./apothecary -t linux download kiss

./apothecary -t linux prepare kiss

./apothecary -t linux build kiss

./apothecary -t linux download tess2

./apothecary -t linux prepare tess2

./apothecary -t linux build tess2


アーカイブをコピーしてオープンフレームワークスの中と入替える


apothecary/apothecary/build/kiss/lib/linux/libkiss.a

to 

openFrameworks/libs/kiss/lib/linuxarmv7l/libkiss.a


Copy

apothecary/apothecary/build/tess2_patched/build/libtess2.a

to

openFrameworks/libs/tess2/lib/linuxarmv7l/libtess2.a


最終スクリプトの実行


cd of_10.1/scripts/linux


へ行きコンパイルを実行

./compileOF.sh -j4

その後は各サンプルのフォルダーに入ってmake -j4でmake RunReleaseで実行