ミニマイコンカーを C 言語 (HEW) で開発する。

img32 

今年は、マイコンカーを自分ではやらないと決めたので、後輩指導に回っている techno です。

という話はおいておいて、今日はミニマイコンカーのことを。

ミニマイコンカーといえば、うちの部活では1年教育用の、リセット連発イライラメーカー(ry

って感じなのですが、まあ教育用にはスピードも遅くてちょうどいい。

そもそも、普通の一般高校生にマイコンカーと資料渡して、ハイ、これ動かして。といってもできるわけないのは目に見えてるし。

まあ、ここらへんは XYZ とか現 2 年生が実証済みだろうw

実際のところ、ITU とか PWM 周り、初期設定など、speed 関数はなにをやっているのだか、わからないまま組んでる人も多いんじゃ?

少なくとも、個人的には後輩には動けばいい、走ればいいだけのマシンを作るだけじゃなくて、マイコンに関する基礎知識というか、とにかくマイコンカーのプログラムを1から組みなおせるぐらいの知識は付けてほしいから。

ミニマイコンカーは、開発環境として標準では "ブロっくん1号" という、ブロックで組んでいく開発環境が付属しています。

しかし、ロボットの面白みを味わうにはいいのだけど、正直高校生にもなってこれはない。

やっぱり、C で開発しないと、話にならないというかね・・・。

プログラムの自由度も低いし、これじゃ中でなにやっているかわからないからね・・・。

 

いつもどおり、前置きが長くなったが。

ミニマイコンカーを C 言語で動かしてみる方法を紹介する。

High-performance Embedded Workshop (HEW) で開発することを前提に、ワークスペースを作成してみる。

CPU は、もちろん H8/3687 を使います。

それと、今までブロっくんで動いてたプログラムをそのまま移行するので、プログラムを組みなおす必要がありません

 

1. 必要なもの

  • ブロっくん (ミニマイコンカー CD に付属)
  • ルネサス統合開発環境 H8/3687関連プログラム (マイコンカーラリー公式サイトで入手)
  • ルネサス統合開発環境用その他ソフト (同上)
  • High-performance Embedded Workshop (Renesas ホームページで入手)

これぐらい。

特別なこともやらないで、比較的簡単にできる。

 

2. やることの解説

ミニマイコンカーを C 言語で手っ取り早く開発する方法。

一番よいのは、既存のリソースを利用する方法である。

実は、ブロっくんは、C 言語に変換してから、コンパイルして書き込んでいる。

すなわち、ブロっくんで作成した、ブロックのプログラムは、どこかで C 言語に変換されているのである。

それを、HEW に移してくれば一件落着となるわけだ。

マイコンカーラリーのサイトで、3687 用のプログラムも配布されているので、そのまんま移行できる。

 

3. 下準備

まず、3687 用のプログラムをインストールする。

"ルネサス統合開発環境 H8/3687関連プログラム" をダウンロードして、所定の場所に解凍するだけ。

つぎに、3687 用のプロジェクトワークスペースを作成できるようにする。

"ルネサス統合開発環境用その他ソフト" を所定の場所に解凍する。

"C:\mcr\3687" を開いて、"Setup.exe" を実行し、HEW の位置を指定して、インストール。

これで終了。

 

4. プロジェクトワークスペースを作成してみる

img34 

まず、HEW を開いて、"新規プロジェクトワークスペースの作成" を選択。

[OK] を押し、先へ進む。

 

img35

プロジェクトタイプから "3687" をを選択し、"ワークスペース名" には任意の名前を設定する。

今回は、mini というワークスペースを作成した。

 

img36 img37 img38

いろいろ出てくるけど、全部 [OK] でよい。

もしかしたら、古い HEW を使ってると出てこないかも。

 

img39 

3687 用の空のワークスペースが作成された。

最初は、ファイルが空なので、これだけでは何も動かない。

 

img41

C:\Workspace\mini\mini を開く。

ここが、ワークスペースプロジェクトのフォルダだ。

あとは、このフォルダにファイルを追加していく。

フォルダをそのまま開いておこう。

 

5. ブロっくんからのファイルの移行

img32

まず、ブロっくんを開く。

記憶があやふやだが、たぶん一度ソースを出力するために、コンパイルする必要があったと思うので念のためやっておく。

そして、[ひらく] から、"ふるそうこう" を選び、ブロックを開く。

もし、今までにブロっくんで開発したプログラムがあるのなら、それを開いてもよい。

今まで作ったプログラムがあるなら、そのままのプログラムを移行できる。

そして、[てんそう] をクリックする。

ミニマイコンカーに書き込む必要はない。

書き込みソフトが出てきたら、あとはそのまま終了して OK だ。

 

img42

その後、ブロっくんをインストールしたフォルダを開く。

デフォルトでは、"C:\BLOCKUN" になっているはずだ。

まず、ここのディレクトリから

  • mcrstart.src
  • mmcr.c
  • soft.h

をコピーして、HEW のプロジェクトのフォルダに追加する。

そのとき、".hws" のファイルがある場所ではなく、"debug" フォルダのある、その下のディレクトリにコピーすること。

たとえば、ここに書かれているまま進めた場合は、先ほど開いておいた "C:\Workspace\mini\mini" にコピーする。

コピーするファイルの内容を解説しておくと、mmr.c がベースプログラムで、soft.h にスピード設定の内容が書かれている。

 

img43 

コピーするとこんなかんじ。

 

img44 

次に、ブロっくんのフォルダの中の、"Source" フォルダを開く。

ここに、ヘッダやコンパイラなどが入っている。

ここのフォルダから

  • 3687s.h
  • MACHINE.H

を抜き取り、HEW のプロジェクトのフォルダにコピーする。

 

6. プロジェクトへのファイルの追加

img46

HEW の画面に切り替えて、プロジェクト名の部分を右クリックし [ファイルの追加...] を開く。

 

img47

このようなダイアログが出てくるので、先ほどコピーしてきたファイル

  • mcrstart.src
  • mmcr.c
  • soft.h
  • 3687s.h
  • MACHINE.H

を、選択して [追加] する。

複数選択は、"Ctrl" を押しながら書くファイルをクリックすることで可能だ。

 

img50 

追加してみた様子。

あとは、コンパイルして、書き込みをするだけだ。

書き込みには、3687 用の書き込みソフトを使う必要がある。

3048 につかっている、CPUWrite は使えないので注意。

C:\mcr のなかに説明があるので、そちらを参照してほしい。

FDT でも書き込み可能だと思う。

 

7. C 言語での開発

img51

右側のツリーから "mmcr.c" をダブルクリックしてみよう。

左側に、ソースプログラムが表示されると思う。

このファイルがベースとなるプログラムである。

基本的には、これを改造するだけでよい。

まあ、マイコンカーのプログラムが理解できる人であれば、どんなことをやっているかすぐに理解できると思う。

 

とても簡単にプログラムを説明しておくと、当たり前ではあるが void main( void ) の関数内がメインプログラムになっている。

標準では下のほうにあるので、これを上のほうにもってきたほうが、開発しやすいと思う。(init の前)

仕組み的には、マイコンカーのプログラムと一緒で while(1) で無限ループさせて、センサーを読んでいる。

get_sensor() で、センサーの状態を取得する。

speed(FORWARD_L_5, FORWARD_R_5); な漢字で書かれているのでが、スピードの設定。

FORWARD_L_5 というのは、soft.h に #define されている値を呼び出してきている。

C で開発する場合は、直接数字に置き換えてしまっていいだろう。

直進させる場合は speed(100, 100); とすればよい。

 

ブロっくんで作ったプログラムをそのまま移植できると書いたが、C で開発するときは1から組みなおしたほうがいい。

なぜなら、かなり効率が悪いし、見づらくてしょうがない。

せめて、if の大群は、switch...case に置き換えるぐらいしたほうがよい。

あと、インデントもちゃんとして、見やすいプログラムに改変したほうが。

正直言って、複雑なプログラムをブロっくんでやってると、C に直した時、ものすごいスパゲッティになるようなきがする。

 

一応、パソコン慣れしてない人でもわかるように説明してみた。

ミニマイコンカーを、ぜひ C 言語でぐいぐいいじって遊んでみてほしい。

ブロックでは味わえない面白さがあると思う。

 

手抜きが大好きな人へ...

Download

プロジェクトを zip しました。

C:\Workspace\ に解凍して下さい。

 

最後に...

ちなみに、これ は課題研究でマイコンカーやる部員が見つけて、書き込んでみた。

というか、これがあったから、こんな記事書いてみたんだが。

まあ、某所ってまさにこのブログなわけでw

ってか、これ書いたときは記憶があやふやで、かなり適当なこと書いてるw

Program Files でもないし、アドレスの設定も要らなかった。

トラックバック(0)

このブログ記事を参照しているブログ一覧: ミニマイコンカーを C 言語 (HEW) で開発する。

このブログ記事に対するトラックバックURL: http://techno-st.net/mt/mt-tb.cgi/580

コメントする

2008年11月

      1
2345678
9101112131415
16171819202122
23242526272829
30      

Random Entries

日替わりらしい。
仕様上ページ別に変わるらしい。
Random な感じらしい。

アーカイブ

  • 月別アーカイブ:
  • カテゴリーアーカイブ:

Ads

このブログ記事について

このページは、technoが2008年4月30日 04:51に書いたブログ記事です。

ひとつ前のブログ記事は「Visual C# でジョイスティックを使ってみる。」です。

次のブログ記事は「課題研究でつくってみる自作 OS - 1」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

 

- 実験中 -

mgfxjey49@techno-st.net

xq58grpua@techno-st.net

m0ss9eatc(at)techno-st.net

y75vdonfa@techno-st.net

edvvb6cx9@techno-st.net

Mail Address