ライントレースカー:とりあえず完成!

ついにプログラムも積み終わりライントレースカーがちゃんとラインをトレースするようになりました!ただ遅いのでもっと早く動くことが出来るように改良していきたい。

ライントレースカー:本体部分の完成

ついにライントレースカーの基盤部分が完成しました。あとはプログラムを書けばとりあえずは完成。
全体:センサとか基板の位置はまだ固定しておらずてきとう。コードが少し邪魔になってしまった。

基板その1:センサから情報をもらい、モータへ出力するための基板。真ん中にATMEGA168Pがあり、右下に2つついているのが左右それぞれのモータドライバ。

赤外線センサ:黒いLEDみたいなのがセンサ。隣のLEDから赤外線が出てそれの反射の状態をキャッチする。青いのが半固定抵抗でこれで感度を調整する(らしい)。

モータ回り:青いのがコンデンサでモータなどで発生するノイズを除去するらしい。

本体の基盤にはセンサの状態がわかるようにLEDをつけた。そこで動作確認もかねて試しにLEDを点滅させるプログラムを書いてみた。




―コードー
#include <avr/io.h>
#include <util/delay.h>
int main (void)
{
// PORTx(x = B, C, D)をすべて出力に
DDRB = 0b11111111;
DDRC = 0b11111111;
DDRD = 0b11111111;

PORTD = 0b00000111; // PORTDの0,1,2PIN(LEDがつながっている)をHighにし他をLowに

while(1){
_delay_ms(500); // 500ms待つ
PORTD = 0x01; // PORTDの0PINをHighにし他をLowに
_delay_ms(500);
PORTD = 0x02;
_delay_ms(500);
PORTD = 0x04;
}

}
―コードは以上―

初めてのマイコンでうまくいくのか心配だったが、ちゃんとLEDが順番に光っているので良かった。基板をはんだ付けしているときは全くテストできていなかったので、LEDが光ったときは少し感動!LCD(液晶ディスプレイ)をつけて遊びたくなってしまった。

また、モータドライバのテストがまだうまくいっていない。試しに電池をつなげてモータも動かそうとしてみたところ、電圧が足りないのかタイヤが回らなかった。ちゃんとした電源でやるとうまく回ったので電源周りが課題に。

ライントレースカーの進捗

前回の更新から随分間があいてしまいました。

まず大きく仕様を変更することになったということと、ライントレースカーも基板の工作を始めたのでその報告。

仕様の変更

Arduinoを使って作る予定だったのが、AVRのマイコンを使うことになりました。
次のページを大きく参考にさせていただく予定です。回路はほぼそのままです。

うしこさんの「うしこlog」ライントレーサーを作るぞ
http://usicolog.nomaki.jp/engineering/avr_lineTracer/lineTracer.html


最近の進捗

数日前に、センサーの部分ができました。実物は後日公開できたらいいです。
センサーは三角に3つ配置しました(前一つに左右1つづつ)。

また、AVRのマイコンを使うに当たってマイコンにプログラムを書き込むものが必要になるので、それも部品を調達して自作してみました。できたものを買うとなると2,3千円かかるものが、千円ぐらいで済みました。また、AVRのマイコンにもPICにも使うことが出来るのでよりお得な気がします。
PICerFT http://einstlab.web.fc2.com/PICerFT/PICerFT.html

詳しい説明は後日かけるといいかも。。。

今後について

ライントレースカーでは、あとはマイコンやモータドライバを積む基盤を製作して、プログラムを書く。
上のうしこlogさんでは、マイコンの5v電源を百均の携帯の充電器を改造しているが自分で探してみたところ見当たらなかったのでどうするか悩み中です。有力なのは3端子レギュレータというものを使って変圧して電池から5v電圧をとりだすことかな。

ArchLinuxのインストール 続き

以前ArchLinaxをインストールしたときうまくいかない部分があったが今回少し変えてインストールしてみたら無事起動できた。このことを忘れないように記録に残しておこうと思う。

状況のまとめ
  • 2002年くらいのVAIOのPCV jx11のマシンにインストールしてみたが起動しない。
  • ↑思い返してみればブートローダ(grub)が起動していなかった。
  • 仮想マシン(VirtualBox)ではインストールできた。
今回変えてみたこと
  • ブートローダをgrubからsyslinuxに変更
他はArchLinux公式ページのビギナーズガイドの通り。

おそらくグラフィックで問題があった。2年くらい前にUbuntu12でgrubをインストールしたときはうまくいっていたような気がする。SiS関連が面倒であった。これからArchlinuxにX Window Systemを入れる際にも面倒になると思われる。

ちなみに今回ArchLinuxを導入したPCのスペック(VAIOのホームページより)
モデルPCV-JX11GBP7・JX11GBP5・JX11BP7・JX11BP5・JX11L5・JX11BPV7
プロセッサーAMD Athlon XPプロセッサー 1500+(1.3GHz)*1
キャッシュメモリー1次キャッシュ128KB/2次キャッシュ256KB (CPU内蔵)
システムバス200MHz
チップセットSiS740 チップセット
メインメモリー(標準/最大)256MB/1GB*2(DDR SDRAM DDR266対応)
拡張メモリー
スロット(空きスロット数)*3
DIMM スロット×2(1)
グラフィック
アクセラレーター
SiS740チップセットに内蔵
ビデオメモリー32MB(メインメモリー共有)
表示モード(RGB接続時)*4約1677万色 (1280×1024、1024×768、800×600、 640×480)
表示モード(DVI接続時)*4約1677万色 (1280×1024*5、1024×768、800×600、640×480)
ハードディスクドライブ約80GB (Ultra ATA/100)(Cドライブ約15GB, Dドライブ約65GB)*6
CD/DVDドライブCD-RW/DVD-ROM一体型ドライブ
●書き込み:最大8倍速(CD-R・CD-RW)*8
●読み出し:最大32倍速(CD-R・CD-ROM)、最大20倍速(CD-RW)、最大8倍速(DVD-ROM)
オーディオ機能AC97準拠オーディオ、3Dオーディオ(Direct Sound 3D)対応
電源AC100V ±10% / 50~60Hz