Filed under:
SH-2A
あけましておめでとうございます。SpiralRayです。
前回書いていた日本語フォント表示ですが、東雲フォント以外のフォントにも対応しました。
また、幅が8の倍数であるフォントであるならフォントのサイズが異なっていても表示できるようになりました。
これでデバッグ楽々です♩
Filed under:
SH-2A
SH-2Aで日本語フォントのロード、表示に対応しました。
日本語フォントは255KBもあるので、SDからロードしていますが、いくら1MBの内蔵RAMがあるSH7262でも少しきついのでは…?とおもっていたりします。
プログラムは後日公開します。
Filed under:
SH-2A
こんにちわ。
試験も終わって久々の更新です。
今日は二つのタスクをクリア。
- STBeeで加速度センサーの関数が完成
- T-SRSの外部メモリを使用して動画を再生
この2点です。
加速度センサーの方はI2CのAVR互換ライブラリを作成しておいたので5分ほどで終了。
動画再生には何段階か苦労がありました。
必要であったことは
- 圧縮されている動画から、無圧縮のRGB565形式の320*240画質の連続データに変換
- 外部RAMの32MBに対してできる限り(200コマ)を読み込み
- 順番に再生(タイマで再生スピードを調整)
この3段階です。
1段階目はあらかじめ試験前に作っていました。
aviから変換できるプログラムをC#を使って作成しました。
ビットマップ表示機能を搭載するより以前に、画像データを同じ形式に変換するプログラムを作成していたので、少しいじくるだけで完成しました。
2,3はマイコンいじくるだけなので省略。
SD関係はもちろんFatFs使用。
動画再生の様子を上げておきます
15fpsで作ったので、200コマでも13秒分しかはいらないんですよね…
作ったはいいが、北斗or若松LCD拡張ボードでのサンプルが既にダウンロード可能らしい…
もっと速くやっときゃよかった(笑)
けど、プログラムはバイナリしか公開されていないっぽいですね。
参考にならない…orz
明日からはサッカーとレスキューと平行してやっていこうと思います(両方機体がないw)
Filed under:
SH-2A
こんばんわ。SpiralRayです。
まずはこれをみてください
今日プログラムを変更したカメラによるライントレースロボットです。
一昨日より2~3倍ほど速くなっているのではないでしょうか?
とはいってもコースが簡単であるだけであって、本当は問題は山積みです。
まず、PD制御を取り入れたつもりが、センサー値が負のときに変な動作をする。
原因はおそらく、符号が必要な変数がunsigned型になってしまっているのだとおもいます。
これのせいで、PD制御が、ラインがカメラの左半分にあるときしか働いていません。
次に、直角や急なカーブの部分の処理がかなり雑であると言うこと。
カメラでのライントレースはラインセンサーを使用するよりかなり前方のラインしか読むことができないので、速度を落とさずに旋回するときに(工夫しないと)ラインが見えなくなります。
今回のこのプログラムは、ラインが見えなくなったときには前回のモーターの速度をそのまま維持するだけというかなり雑な作りとなっています。
主な問題としてはこの二点です。
金曜日にPD制御の部分は直したいと思います。
土曜日からは試験準備期間、および試験期間があるので、2週間部活動はできなくなります。
それではまた金曜日に(?)
ちなみに、金曜日にはこれよりさらに速くライントレースができるようになっているはずです。はず…
12/3日追記
現段階のソースコードの一部を公開しておきます。
とはいっても本当にたいした処理をしていないのでがっかりするだけですけどね。
camera_linetrace
PID制御うまくいきました。やはり原因はunsignedでした。
計算式中にunsignedの変数が入っていて、そこでマイナスじゃなくなっていました。
Filed under:
SH-2A
どうも、SpiralRayです。
SH-2AにTOPPERS/ASPというリアルタイムOS(以下RTOS)を搭載しました。
RTOSによってマルチタスクが可能ですよっ!
現在のタスクの状況は
- メインタスク(ボタンの処理、UARTの処理、タイマ処理)←いずれ分離します
- 画像解析タスク(ライントレースの全部分を担っています)
- LCD表示タスク1
- LCD表示タスク2(LED点滅付)
となっています。
動画に映っている画面の左上で点滅しているのが、LCD表示タスクの処理です。1秒周期と3秒周期の点滅があります。
前回のロボカップのサッカーロボットでは、AVRでFreeRTOSというRTOSを使おうとしましたが、AVRの処理速度の問題で使用を断念したのですが、SH-2Aは144MHz、ATMega644Pを使用していましたがその7.2倍もの速度がっ!(単純に比例して速くなるわけではないですけどねー)
RTOSを乗せ、さらに、モーター制御にPWMを使用できるようになりましたっ!
前回乗せた動画では、10msモーターを動かすごとに停止するというガッガッと小刻みに動いていく使用になってしまっていたわけですが、PWMによってなめらかに動くようになりました。
とはいってもライントレースのプログラム自体はほぼ改変していないのでユラユラ揺れながらラインをたどっていくようになってしまっています。
水曜日にPD制御を取り入れる予定です。
それではまた。
Filed under:
SH-2A
SH-2Aマイコンのカメラ入力機能を使ってライントレースをしてみました。
基板はTACさんのものです。
結構いい加減な処理(時間をかけていない)ですが、きちんと動くことは確認できました。
この動画を撮った後、値の調整をしようと思って5分くらい弄っていると、モーターのギアが壊れました
さすがダイ○ンモーター
水曜日に日本橋でタミヤギアード買う予定です…
その後、STM32でRTOSを試していました。
弄っていると、I2C1とI2C2をRTOS上で同時に使うと固まるという謎の現象が発生しました。
原因不明…おそらく実行タスク切り替えによるI2C通信のタイムアウトだと思います。
ロジックアナライザーを買ったので使ってみようと思いましたが、使い方が分からない…
I2Cのプロトコルの選択すらできなかったです。
ネットでSN登録しないと使えないのかな…?
まだまだ先は長そうです…
デバッグのLCD欲しいな…
レスキューのカンの救助方法は立命館守山さんのやり方を採用しようかと考えています。
いいですよね?ね?
そういえば、FlankerがBLモーターの逆回転に成功していました。
これで安心して機体を作ることができる…はずです。
では、この辺で。
Filed under:
SH-2A
SH-2Aの基板を使用してゴールの検出をしてみました。
基板はTACさんのものです。
動作がすごく速いです。
この調子で開発を続けていきたいと思います。
Filed under:
SH-2A
SpiralRayです。
SH-2AでSD動かしました。
…56tomoのSHで…
うちのやつはVSSをVCCと勘違いしていたらしく、配線がおもしろいことになっていました。
絶対ハードがおかしいと思って56tomoのを借りてやったら結構あっさり動きました。
SDのフォーマットがFATになっていてうまく動かなかったりはしましたけど…
やっぱ電子回路勉強しようかな…自分でやらないと他人の間違いとか気付けない。
Filed under:
SH-2A
まぁ円の方程式を単調に解かずに、第1象限~第4象限がすべて点対称になっていることを利用しましょうって話。
(誰でもこれくらいはやるだろ。何で記事に載せる、とか言わないっ!)
単純計算で4倍弱の高速化です。
ほんとに高速化するなら、まず2乗して計算していくのをやめるべきですが…
int x,int y,int r,int c,int rr; //rは半径、cは色
rr=r*r; //予め二乗
for(int j=y-r;j< =y;j++){
for(int i=x-r;i<=x;i++){
if( (i-x)*(i-x) + (j-y)*(j-y) < rr ){
for(k=i;k
明日はDMA転送でも使ってみようかな…
画像全体を何ピクセルずらす、とかの処理に使えそうですし。
(↑文字列のスクロール処理とかに必要なので)
Filed under:
SH-2A
立て続けに更新すいません。
(8月4日まで活動日がなかったと思われるので、ずっと俺のターンになってしまうのでは…?)
せっかくPSP液晶が動いたので、文字表示に対応してみた。
ココに書いているように、すでにAVR用にフォント表示ライブラリを作成していたので、移植は15分位で終了。
サンプル画像
内容はwikipediaから引用。なんでウィンドウズなんかにしたんだろう?(笑)
ちゃんとレイヤー分けしていますよ。
あとはUARTを動かすだけで、お手軽デバッガの完成っ!
BluetoothとかXBeeとかで無線でデバッグできたらロボットの開発にかなり役立つ…はず。
サッカーロボットって高速で動きながらだからLCDなんで見てる余裕ないし…
古い記事 »