自分が使用していたR8C/M12A「R5F2M122ANDD」はRAMが512バイトROMが8kバイトとなっていた、そんでもって作っているプログラムをコンパイルするプログラムが3kバイトちょっとだった。
一方、ある人が使っているR8C/M12A「R5F2M120ANDD」はRAMが256バイトROMが2kバイトとなっていた、なのに、プログラムちゃんと入って動く。
どゆこと? とおもって調べるとなんやかんやするとROMは32kバイトまで増やせるし(増やしてない)RAMは1kバイト、がんばれば1.25kバイトまで増やせるって、どゆこと?
とりあえずプログラム動くからいいとして、なぞの問題が発覚。変数をテラタームで覗くと見事にぶっ壊れているのだ。変数のアドレスをすべて出して確認してみるとある配列のアドレスと変数のアドレスが被っている どゆこと?
しかも、マニュアルには「RAMは00400番地から」と書いてあるのに、とある配列の先頭アドレスは003df番地(うろ覚え)から始まっている。...
結局、すべての変数の頭にstaticをつけて静的にRAM領域を確保することでその場しのぎではあるが解決。
2018年2月19日月曜日
2018年2月15日木曜日
2018年2月5日月曜日
こんなことがあった3
自分のシステムを他のマシンに移植したときに色々なことがわかった。車体側のプログラムは最初から作ったので"たまたま"自分が回避していた問題に直面しまくった。
1、マイコン同士の通信ができない。
2、トレースがすごいガチャガチャして変、それっぽく動くけどすぐ外れる。
3、届いたカメラの基盤が違う
4、上に付随して?しきい値が大きく変わる
5、なんか中央の値が大きくてラインがいつも見えちゃう
ということがおきた。
1は、車体側がだす同期クロックは意外とゆっくり出さなきゃいけないということがわかった。
2は、今までで言うアナログセンサーの値を格納する変数をグローバルに置いていて、ソノ流れで通信中グローバルに格納しながら変数を完成させていくというカタチになっていた。
すると、タイマー割り込みでアナログ値を読みに行くプログラムが書き換え中のデータにアクセスしてわけのわからんデータを持って返ってくるという状態。
なのでデータ読み込み関数のなかで一旦、ローカル変数に格納してデータを完成させてからグローバルに格納する。といった動作が必要みたい。
3、カメラの基盤がぜんぜん違う。後ろにボリュームが付いていたりなどで出てくる値の大きさが違う?よう
4、上の影響でしきい値を変えていく必要があった。ただしきい値を決めるルーティーンはある程度あったのですぐに解決できた。
5、照明の設計は明るけりゃ良い。という物ではないみたいでカメラからみた景色を均一に照らせるということが重要みたい。もしくは各ドットに固有のしきい値を持たせるか...
そういった意味ではカメラ側のアルゴリズムは全く変えていないので、そう思えばアルゴリズムは間違ってないと確認することができてよかった。
1、マイコン同士の通信ができない。
2、トレースがすごいガチャガチャして変、それっぽく動くけどすぐ外れる。
3、届いたカメラの基盤が違う
4、上に付随して?しきい値が大きく変わる
5、なんか中央の値が大きくてラインがいつも見えちゃう
ということがおきた。
1は、車体側がだす同期クロックは意外とゆっくり出さなきゃいけないということがわかった。
2は、今までで言うアナログセンサーの値を格納する変数をグローバルに置いていて、ソノ流れで通信中グローバルに格納しながら変数を完成させていくというカタチになっていた。
すると、タイマー割り込みでアナログ値を読みに行くプログラムが書き換え中のデータにアクセスしてわけのわからんデータを持って返ってくるという状態。
なのでデータ読み込み関数のなかで一旦、ローカル変数に格納してデータを完成させてからグローバルに格納する。といった動作が必要みたい。
3、カメラの基盤がぜんぜん違う。後ろにボリュームが付いていたりなどで出てくる値の大きさが違う?よう
4、上の影響でしきい値を変えていく必要があった。ただしきい値を決めるルーティーンはある程度あったのですぐに解決できた。
5、照明の設計は明るけりゃ良い。という物ではないみたいでカメラからみた景色を均一に照らせるということが重要みたい。もしくは各ドットに固有のしきい値を持たせるか...
文字ばっかで地味なので意味も無く写真を挿入
そういった意味ではカメラ側のアルゴリズムは全く変えていないので、そう思えばアルゴリズムは間違ってないと確認することができてよかった。
2018年2月4日日曜日
会場の変化と問題の出現
大会に出た、結果としては未完走(思い返せば初めて)。やはり、会場の変化がカメラに与える影響はあるみたい。
会場の照明の明るさと路面の違い。感じたのはこの二つで、特に今回は路面の違いが大きかった。路面は黒が少し光る(古い公式コースに近い?)感じで白線は公式コースに比べて明度が低かったがマーカーはハッキリとした白。
カメラの仮想デジタルセンサーなどのしきい値は自動で可変させているが、「真っ白(クロスライン)」や「真っ黒(レーンチェンジ内)」などの判断をさせるしきい値は固定されていたので、そのしきい値を変える必要があった。もしそれが動かなくなるとレーンチェンジの線が途切れてもレーンチェンジを開始しなかったりクロスラインが読めないなどの誤動作が起きる。
その問題は解決できたが次は操舵ギアの最終段がカタイのはダメという問題に気づいた。前日に最終段(80T)を壊して作り直していた。ちゃんとスルスルにしないとテールスライドのカウンターステアが間に合わなくなるらしい。トレースのゲインをかち上げて解決。
前者はカメラの問題で後者はバーレスゆえの問題。
カメラマシンを作るに当たっては「カメラから来る問題」と「バーレス車であるゆえの問題」を判断、区別しなくてはいけないと感じた。
次やることまとめ
・全部のしきい値を自動可変にする。
・ステアリングはスルスルで作る。
バー有りの車と違ってステアリングが多少ガタついていてもトレースが発振することはないので余裕を持った設計にするべきかな。
ある意味、問題が出ることは悪いことではないので良かった。
会場の照明の明るさと路面の違い。感じたのはこの二つで、特に今回は路面の違いが大きかった。路面は黒が少し光る(古い公式コースに近い?)感じで白線は公式コースに比べて明度が低かったがマーカーはハッキリとした白。
カメラの仮想デジタルセンサーなどのしきい値は自動で可変させているが、「真っ白(クロスライン)」や「真っ黒(レーンチェンジ内)」などの判断をさせるしきい値は固定されていたので、そのしきい値を変える必要があった。もしそれが動かなくなるとレーンチェンジの線が途切れてもレーンチェンジを開始しなかったりクロスラインが読めないなどの誤動作が起きる。
その問題は解決できたが次は操舵ギアの最終段がカタイのはダメという問題に気づいた。前日に最終段(80T)を壊して作り直していた。ちゃんとスルスルにしないとテールスライドのカウンターステアが間に合わなくなるらしい。トレースのゲインをかち上げて解決。
前者はカメラの問題で後者はバーレスゆえの問題。
カメラマシンを作るに当たっては「カメラから来る問題」と「バーレス車であるゆえの問題」を判断、区別しなくてはいけないと感じた。
次やることまとめ
・全部のしきい値を自動可変にする。
・ステアリングはスルスルで作る。
バー有りの車と違ってステアリングが多少ガタついていてもトレースが発振することはないので余裕を持った設計にするべきかな。
ある意味、問題が出ることは悪いことではないので良かった。
2018年2月2日金曜日
こんなことがあった2
おそくなったけれど、前回の「こんなことがあった」では
1、コースの継ぎ目を読めてしまった。
2、デジタルセンサの間隔が動作に影響し誤動作していた。
3、遠くをみるようになって外線が見やすくなった。
ということがあった。
1についてはピントをずらせば解決することが分かった。
2については単純にデジタルセンサを中心から遠ざけることで解決した(自分の勘違いも原因であった。)
3については、真ん中64ドット分の32ドットを見るだけでなく、ラインの移動に対してAD変換する位置をずらしていくことでカメラが多少、外を向いても返ってくるデータはコース中央を維持するような処理を組み込むことで解決した、TSL1401カメラモジュールについたレンズユニットの広い画角を有効に使えるので良い感じ。
1、コースの継ぎ目を読めてしまった。
2、デジタルセンサの間隔が動作に影響し誤動作していた。
3、遠くをみるようになって外線が見やすくなった。
ということがあった。
1についてはピントをずらせば解決することが分かった。
2については単純にデジタルセンサを中心から遠ざけることで解決した(自分の勘違いも原因であった。)
3については、真ん中64ドット分の32ドットを見るだけでなく、ラインの移動に対してAD変換する位置をずらしていくことでカメラが多少、外を向いても返ってくるデータはコース中央を維持するような処理を組み込むことで解決した、TSL1401カメラモジュールについたレンズユニットの広い画角を有効に使えるので良い感じ。
初の大会
土曜日に大会に出る機会をいただいた、カメラ化してから初の大会なので心配事も多いが、やっとこさ安心して動かせるくらいに精度は上がった。会場の変化がどう出るか...
よしよし、楽しみだ。
さらに先週からとある人のマイコンカーに同じシステムを用いたカメラユニットを乗せてもらうことができた。思ったよりもポン乗せとはいかず、かなりの調整(主にしきい値やその他の係数など)と車体側のプログラム変更を要することになった。
良くも悪くも自分が経験していない問題が多数あったので、可能であれば後日その問題をココにつらつらと記して(メモって)おきたい。
よしよし、楽しみだ。
さらに先週からとある人のマイコンカーに同じシステムを用いたカメラユニットを乗せてもらうことができた。思ったよりもポン乗せとはいかず、かなりの調整(主にしきい値やその他の係数など)と車体側のプログラム変更を要することになった。
良くも悪くも自分が経験していない問題が多数あったので、可能であれば後日その問題をココにつらつらと記して(メモって)おきたい。
登録:
コメント (Atom)

