RoboCup Junior Japan Rescue Kanto OB
2005~2013
2005~2013
明日は工場見学。
学校8時集合だそうです。
遅刻した子は置いてけぼり・・・
置いてけぼり食らうと、恐怖の課題地獄なんだとか。コワイコワイ。
明日は何人地獄を見ることになるでしょうかね(笑)
今日の記事は、またまたNBCについてです。
とりあえず一番基礎的なライントレースができるようになった。という話を以前しました。
まぁこのライントレースプログラムについてちょっと書いていこうと思います。
今回、作製したプログラムは、ほんっとにライントレースの基本だけを行ったプログラムです。
センサーの数は3つ。ギャップや直角などの対応プログラムは一切入っていません。
っていうかそんなもの入れる気力がありません。
というのも・・・プログラムがこんなに長くなってしまうんです(笑)
これは、只普通に右のセンサーが黒くなったら右回転、
左のセンサーが黒くなったら左回転というプログラムしか入っていません。
なので実質使っているセンサーは2つですね(笑)
ちゃんと楽してNXCと同じ関数を使用したのにこの長さって・・・(笑)
やっぱりNXCと比べると格段に難しくなっているのがわかります。
でも、関数はNXCと同じですし、そもそもどういった動きをするかはわかっている訳なので、
見れば、大体何がどうなっているのかはわかりますよね。NXCの経験者なら・・・。
まぁこの辺は簡単だからいいのですけど、例えば配列だったり、関数に引数を使ってみたり、戻り値・・・なんてことになると
途端に意味不明になります。(それがASMです(笑))
これで本当にレスキューのプログラムが書けるのか・・・とてつもなく不安です。
あ。このプログラムのファイル挙げときますね。
それではー。
(^・ω・)ノRadiumProduction in RoboCupJunior
学校8時集合だそうです。
遅刻した子は置いてけぼり・・・
置いてけぼり食らうと、恐怖の課題地獄なんだとか。コワイコワイ。
明日は何人地獄を見ることになるでしょうかね(笑)
今日の記事は、またまたNBCについてです。
とりあえず一番基礎的なライントレースができるようになった。という話を以前しました。
まぁこのライントレースプログラムについてちょっと書いていこうと思います。
今回、作製したプログラムは、ほんっとにライントレースの基本だけを行ったプログラムです。
センサーの数は3つ。ギャップや直角などの対応プログラムは一切入っていません。
っていうかそんなもの入れる気力がありません。
というのも・・・プログラムがこんなに長くなってしまうんです(笑)
#include "NXTDefs.h"
//sensor set
#define kurosiro1 450
#define kurosiro2 450
#define kurosiro3 380
#define sirogin1 630
#define sirogin2 670
#define sirogin3 630
//vl set
dseg segment
motorA byte 100
motorC byte 100
curveA byte 100
curveC byte 100
sensor_1vl sword
sensor_2vl sword
sensor_3vl sword
dseg ends
//fnc set
subroutine FRONT
OnFwd(OUT_A,motorA)
OnFwd(OUT_C,motorC)
return
ends
subroutine BACK
OnRev(OUT_A,motorA)
OnRev(OUT_C,motorC)
return
ends
subroutine RIGHT
OnFwd(OUT_A,curveA)
OnRev(OUT_C,curveC)
return
ends
subroutine LEFT
OnRev(OUT_A,curveA)
OnFwd(OUT_C,curveC)
return
ends
//main
thread main
dseg segment
dseg ends
SetSensorType(IN_1,IN_TYPE_REFLECTION)
SetSensorType(IN_2,IN_TYPE_REFLECTION)
SetSensorType(IN_3,IN_TYPE_REFLECTION)
Loop:
ReadSensor(IN_1,sensor_1vl)
sub sensor_1vl, kurosiro1,sensor_1vl
ReadSensor(IN_2,sensor_2vl)
sub sensor_2vl, kurosiro2,sensor_2vl
ReadSensor(IN_3,sensor_3vl)
sub sensor_3vl, kurosiro3,sensor_3vl
NumOut(1,LCD_LINE1,sensor_1vl)
NumOut(1,LCD_LINE2,sensor_2vl)
NumOut(1,LCD_LINE3,sensor_3vl)
call FRONT
brtst GT,Loop,sensor_2vl
brtst GT,curvel,sensor_1vl
brtst GT,curver,sensor_3vl
jmp Loop
curvel:
call LEFT
jmp Loop
curver:
call RIGHT
jmp Loop
endt
これは、只普通に右のセンサーが黒くなったら右回転、
左のセンサーが黒くなったら左回転というプログラムしか入っていません。
なので実質使っているセンサーは2つですね(笑)
ちゃんと楽してNXCと同じ関数を使用したのにこの長さって・・・(笑)
やっぱりNXCと比べると格段に難しくなっているのがわかります。
でも、関数はNXCと同じですし、そもそもどういった動きをするかはわかっている訳なので、
見れば、大体何がどうなっているのかはわかりますよね。NXCの経験者なら・・・。
まぁこの辺は簡単だからいいのですけど、例えば配列だったり、関数に引数を使ってみたり、戻り値・・・なんてことになると
途端に意味不明になります。(それがASMです(笑))
これで本当にレスキューのプログラムが書けるのか・・・とてつもなく不安です。
あ。このプログラムのファイル挙げときますね。
それではー。
(^・ω・)ノRadiumProduction in RoboCupJunior
Comments
※コメントは内容確認後に手動で公開するようにしております。反映までしばらくお待ちください。
※コメントは内容確認後に手動で公開するようにしております。反映までしばらくお待ちください。
カレンダー
最新CM
カテゴリー
らじぷろ目次
らじぷろ検索機
最新記事
(01/01)
(08/27)
(04/29)
(01/01)
(11/20)
(09/06)
(09/04)
(08/09)
(08/06)
(07/27)
(05/29)
(03/15)
(01/01)
(05/07)
(01/11)
プロフィール
HN:
Luz
性別:
男性
アーカイブ