ホーム » 2011 » 11月 » 09

日別アーカイブ: 2011年11月9日

2011年11月
« 10月   12月 »
 12345
6789101112
13141516171819
20212223242526
27282930  

最近の投稿(電子情報)

アーカイブ

カテゴリー

LEGOエネルギーセットで太陽光追尾

機械工業会さんとの連携事業の講習会用に、 LEGOのエネルギーセットで作った、ソーラートラッカーのプログラムを書いてみた。

3番ポートにつないだEnergy Meter から、電圧Vinを読み込む。 太陽電池に明るいライトをあてると、2[V]〜5[V]ぐらいの電圧が観測できる。 しかしデータは0.5秒ぐらい毎に、±1[V]ぐらいは簡単に変動するため、 この電圧だけで太陽光追尾をさせると、方向が安定しないことが予想される。 このため、平滑化が重要となる。 LEGO MindStormsのデータハブを使って、平滑化の処理を記述したのが、下図。 単純移動平均では、過去の測定値を保存する必要があるので、 指数移動平均を用いる。

移動平均によりある程度安定した電圧を元に、 太陽光の方向に動かすために、現在方向、+10度、-10度の3方向で電圧を測定し、 最も電圧の高い方向に向くようにしたプログラムを以下に示す。


このプログラムでは、横方向の追尾だけなので、同様の処理を縦方向にも 記述すればいい。 ただ、LEGOエネルギーセットの太陽電池の発生電圧は、予想外に不安定であり、 追尾には難しい。

ある程度ずれた方向から、ライトの方向を追尾させる実験をしてみたが、 時間と共に あさっての方向に動いてしまう場合があった。 原因は、ライト方向からずれて発電量が足りない状態で、 蓄電池への充電が不十分だと、エネルギーメーターが一時的にリセットされる場合がある。 さらにリセット復帰後の一瞬は測定電圧が高めに観測されるようである。 このため、発電量が少ない状態で、さらに発電量が減る方向を向いた時に、 リセット&復帰で一時的に高い電圧で測定されると、その発電量の少ない方向に 向いてしまう。

太陽電池の電圧は、負荷の影響で変動もするため、太陽電池の電圧情報を元に 太陽光追尾を行うのは困難と思われる。 よってLEGOのこの実験環境でも、LEGOの光センサーの光量に応じて方向を変えるように すべきであろう。

専攻科・生産システム実験で…

専攻科の後期実験で、昨日から4週実験の担当。 例年、組み込み系の制御実験として、 H8/Arduinoで歯みがきロボコンネタをやっていた。 でも、最近は Arduino を使うと、ライントレースなんか簡単すぎなので、 通信やら加速度センサーを使ってもらうネタとした。

車体は、オムニホイールの既存車体を使ってもらい、 1台のArduinoで制御。 一方、リモコン側ということで加速度センサーをハンドルにみたてて 操作してもらう。 車体側Arduinoと、リモコン側Arduinoは、 有線のシリアルケーブルで接続する。 加速度センサーに応じた速度情報を一方的に車体側に送るだけだと、 通信プログラムが単純すぎるので、 車体側のセンサー(ライントレース用のセンサーとか、自分でつける距離センサーとか…) の情報をリモコン側に送り返し、 車体を見なくてもある程度、操作できるようにすること。

ということで、昨日の1日目は、Arduinoと基本的な入出力の説明。 第1週2日目の今日は、 加速度センサーと信号の平滑化の説明と、 シリアル信号の説明などを行う。 今回の実験ではあまり関係ないかもしれないけど、 パリティチェック・CRCチェック・チェックサムなどの説明も行う。 また簡単な通信プロトコルを決める必要もあることから、 途中のデータが欠落した場合のデッドロック状態や、 スタートヘッダの必要性も説明する。