/*
todoリスト
・機速計のプログラムをピトー管用に更新する(Airspeed.cpp, Airspeed.hを変更、main.cppでピンも変更あれば変更)
・出力計のためのtweliteを追加する(現在は回転数計と超音波計の2つ)(Twelite_sensors.h, Twelite_sensors.hに追加)
・尾翼に三軸センサー用のプログラム追加
・Bluetoothの調整
・回転数計のピンを新しいやつに合わせる

あとは去年の消化されていないtodoも消化したい

↑ここから17代
------------------------------------------------------------------------------------------------------------------------------------
↓ここまで16代



2015.9.4
Airspeed    去年の問題点を発見
機速計の構造上、パルスのonとoffが一回転の内で非対称。
一方、RotaryEncoderのクラスはパルスの立ち上がり立ち下がりをそれぞれ1つのパルスとして、円盤に均等に配分されているとして計算。
よって、1回転中のrpmの計算にズレが出ていたはず。


2015.9.2
Todo 
全体  rtosの実装、initializeの改良、センサー値取得時の時刻記録、外部から正確な現在時刻の取得





↑ここから16代
-------------------------------------------------------------------------------------------------------------------------------------
↓ここまで15代




ただのメモ欄、覚書
れどめというのはうそです、そんなもんです。


更新履歴
2015.5.13
Scheduler   escapetimeの更新に現在時刻を関与するように変更
2015.4.29
Global      トリムの整数表示のgetとsetを追加．

main        Altitudeの値を0でset(Altitudeセンサーができ次第，外して構いません．値を入れないと，読み込み時にプログラムが停止します．)

ScheduleManager     XBeeの読み出しインターバル2，SDManagerを10，その他を1に設定．escapetimeを0.05に設定．

Display&XBee        クランプ設定を変更．最大値，最小値超えたら，最大値，最小値を出力．

Trim        離陸定常モードにおける急激変化を緩和するプログラムを追加（低周期割り込みを利用）
            離陸定常モードは，離陸時にマイナス，定常時に０となるよう設定



2015.4.14
Global      トリムのgetとsetを追加
    
Trim      割り込みスイッチによってトリム値を上下させる
    離陸定常切り替えスイッチから読んだものとトリム値を合わせてGlobalに投げる
    initializeではトリムの幅と離陸定常の差を設定する予定
    割り込みスイッチにチャタリング防止機能が必要か実験する必要あり．必要ならば，ハード面で追加する（コンデンサ追加）    


2015.3.22
XBee    実機で動作確認済
    値の変化がガクガクしている．重み付き平均等を用いて滑らかにするといいかもしれない

Display     実機で動作確認済
    予期せぬ値が発生した時の表示をわかりやすくしたい．Initialize時の表示を作る必要あり
    
SDManager   プログラム停止問題解決されず
    2ndTFはとりあえずLocalFileSystemで内部メモリに保存するかも（512KBは足りないから，Initialize時にSDカードに保存するとかいいかも）
    または，SDがスロットに入っていることを検知し，書込前に確認するプログラムを作る（SDカード自体の問題に対処できない）
    表示器側でSDを扱うのが一番無難


2015.3.19
Scheduler   時間管理。宿題とか集合時間とか守れない人がこんなの作ってもうまく働かなそうイメージ的に
    Controlが止まらないように0.2sを超えたら処理を切り上げるスタイル
    つまり常に遅刻体質のダメ野郎
    時間に余裕のあるときにセンサとかの仕事(subtask)のupdateを行う仕組み。
    同じでないと困る定数とかがそのままになってるから非常に危険
    だが今は直さない、なぜなら疲れたから
    
突貫でscheduler作成。4時間は本気で遊びもせずに作業したった
引数で各入出力デバイスを渡そうと思ってたけどなかなかうまくいかなかったから全部スケジューラに移設した。
おかげでスケジューラが異常に膨張してるからどうにかしてMainに戻したい・・・

2015.3.10-13
第１回試験飛行が強風により中止になったため、スケジュールにゆとりができたため、晴れて電装はお休みに
空き時間を利用してAirspeed2でひとつのパルス信号をロータリエンコダとして読む関数を作る代わりに
あまり目的に合ってなかったQEIを拡張したRotaryEncoderを作る。
ちなみに動作確認はまだ
だが相変わらずｒｐｍ化は各センサのクラスで行うことにした
理由は値のブレをなめす必要がありそうだから
そこらへんは各センサの性質に合わせたほうがいい気がするし、
わかりやすくオブジェクト化するにはここが切りどころにいいと判断したため



後やっときたいのはピンの一括管理法、スケジュール管理部分の作成ぐらいかなあ 仕様は、
    pinの管理
        現状mainで管理、各コンストラクタに引数として渡す、が妥当な気がする。
    スケジュール管理
        要はmain関数の無限ループ内での動きと所要時間をまとめたもの。
        例えばサーボに信号を送るときはある程度時間を空けて、ただし離れすぎると拘束してくれなくなるからは開けすぎないようにする、
        ロータリエンコーダ系でｒｐｍ出すときは値のリアルタイム性と

2015.3.9
Airspeed   フォトロータリエンコーダが回んないので以前の羽根のロータリエンコーダを改修、使用することに
    そのための新クラス
    AirspeedとQEIの中身から単pulseで読み取れるように改造しないと
    つかクラス名が意味不明何とかしないと
    さらに命名規則まであやふや、コード作成を完全に分担してなかったら何度も問題起きてるレベル
    一人で作って一人で使うなら問題ないんだが・・・
    つかフォトロータリエンコーダの使い道がない・・・高速回転体なんてとりには存在しないもんなあ
ServoM      ニュートラル設計部分の設置、これで一応完成
    ただまだ動きが不安定なんで、どうにかしないといけないけど原因不明。
    胃が痛いなあ。

Cadence 1.6倍らしい

2015.3.7まで分
Cadence     psocの移植そのまんまcadenceはコピー
    多分後で片付ける

Cadence    ロータリエンコーダ用に新規作成
    回転数表示になってる、時間を取ってきて（１ｍｓ？）その度に初期化？してｒｐｍにしないといけない
    さらに取れるのはシャフトの回転数だからクランクの回転数にしないと・・・たしか１．５倍だっけ今年の後で確認いるなあ

Airspeed    Cadenceをコピーしててちょうせいしただけ
    上の問題に加えてフォトロータ（ｒｙが回るか疑問
    回らなかったら去年のアレを再利用だな、クラスはろー（ｒｙと同じ方法で行けるだろ仕組みおんなじだし
    ただ信頼性がなあ
    まともに取れないのはありうるよなあ




しばらくmbed動かした時に止まる問題が未だ解決されてない
少なくともこれ解決しないと・・・
Timerとかのスケジュール一箇所で管理したいなあどうやったらいいんだろうわかりやすくできないかねい
センサで割り込み使いすぎるとスケジュールがわかんなくなりそうで怖いなあ
まあロータリは仕方ないとして
そういや高度計何がいるんだろ
風速計って何で売ってないんだろうなあ
あとpinの宣言一箇所にまとめたいよなあ
デジタルpinとかpullupモードにしないと・・・
何が何の役割のpinとかどうするのか大事なの忘れてる気しかしない
トリムつけるには明らかpin数足りないよなあどうしよう





*/