2019-08-26

グリーンロードから當麻寺

涼しくなってきました。酷暑は去ってバイク乗りの季節でしょうか。久しぶりに行った石川CRはすれ違いが難しいほど草ぼうぼうです。
グリーンロードを走って道の駅で小休止。
竹内街道を登って奈良に入ります。 
いつもの當麻寺。中は行った事ないけど。

昼を過ぎるとまだまだ暑いです。昼までに引き上げて本日は終了。

19.08.26の走行コース
行距離:61.45km

2019-08-20

GPSでなんかする その3

GPSモニターの忘備録です。

BOM list


スケッチ(if文の羅列で恥ずかしい)
includeの<>を半角に書き換える事

#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <Wire.h>
//#include <LiquidCrystal_I2C.h>
//LiquidCrystal_I2C lcd(0x3F, 16, 2);
#include <LiquidCrystal_PCF8574.h>
LiquidCrystal_PCF8574 lcd(0x27); // set the LCD address to 0x27 for a 16 chars and 2 line display

TinyGPSPlus gps;
SoftwareSerial gpsSerial(4, 3);
const int serialTime = 200;

void setup() {

  Wire.begin();
  Wire.beginTransmission(0x27);
  gpsSerial.begin(9600);
  lcd.init();
  lcd.begin(16, 4);
  lcd.home();
  lcd.clear();
  lcd.setBacklight(255);

  Serial.begin(9600);

}

void loop() {
  int start = millis();
  int now = millis();
  do {
    while (gpsSerial.available() > 0) {
      gps.encode(gpsSerial.read());
    }
    now = millis();
  } while ((now - start) < serialTime);


  //--- time ---
  if (gps.time.isUpdated())
  {
    int h = (gps.time.hour()) + 9;
    if ( 24 <= h ) {
      h = h - 24;
    }
    lcd.setCursor(0, 0);
    if (h < 10) {
      lcd.print(" ");
      lcd.setCursor(1, 0);
    }
    lcd.print(h);
    lcd.print(":");
    int m = gps.time.minute();
    if (m < 10) {
      lcd.print("0");
    }
    lcd.print(m);
  }

  //--- satellites value ---
  if (gps.satellites.isUpdated())
  {
    int sat = int(gps.satellites.value());
    lcd.setCursor(6, 0);
    if (sat < 10) {
      lcd.print(" ");
    }
    lcd.print(sat);
    lcd.setCursor(8, 0);
    lcd.print("sat");
  }


  //--- speed ---
  if (gps.speed.isUpdated())
  {
    int spd = int(gps.speed.kmph());
    lcd.setCursor(0, 1);
    lcd.print("spd  ");
    lcd.setCursor(5, 1);
    if (spd < 10) {
      lcd.print("  ");
      //lcd.print(spd);
      //lcd.print("Km/h");
    } else if (spd < 100) {
      lcd.print(" ");
      //lcd.print(spd);
      //lcd.print("Km/h");
    } else {
      //lcd.print(spd);
      //lcd.print("Km/h");
    }
    lcd.print(spd);
    lcd.print("km/h");
  }

  //--- altitude ---
  if (gps.altitude.isUpdated())
  {
    int alt = int(gps.altitude.meters());
    Serial.println(alt);
    lcd.setCursor(0, 2);
    lcd.print("alt ");
    lcd.setCursor(4, 2);
    if (alt <= 0) {
      lcd.print("----");
      //lcd.print("m");
    } else if (alt < 10) {
      lcd.print("   ");
      lcd.print(alt);
      lcd.print("m");
    } else if (alt < 100) {
      lcd.print("  ");
      lcd.print(alt);
      lcd.print("m");
    } else if (alt < 1000) {
      lcd.print(" ");
      lcd.print(alt);
      lcd.print("m");
    } else {
      lcd.print(alt);
      lcd.print("m");
    }
  }

  //--- course ---
  if (gps.course.isUpdated())
  {
    int dir = gps.course.deg();
    lcd.setCursor(17, 3);
    if (dir < 10 ) {
      lcd.print("  ");
    }
    else if (dir < 100 ) {
      lcd.print(" ");
    }
    lcd.print(dir);

    if ((gps.course.deg()) == 0) {
      lcd.setCursor(17, 0);
      lcd.print("   ");
      lcd.setCursor(17, 1);
      lcd.print(" + ");
      lcd.setCursor(17, 2);
      lcd.print("   ");
    }
    else if ((gps.course.deg()) < 22.5) {
      lcd.setCursor(17, 0);
      lcd.print(" * ");
      lcd.setCursor(17, 1);
      lcd.print(" + ");
      lcd.setCursor(17, 2);
      lcd.print("   ");
    }
    else if ((gps.course.deg()) < 67.5) {
      lcd.setCursor(17, 0);
      lcd.print("  *");
      lcd.setCursor(17, 1);
      lcd.print(" + ");
      lcd.setCursor(17, 2);
      lcd.print("   ");
    }
    else if ((gps.course.deg()) < 112.5) {
      lcd.setCursor(17, 0);
      lcd.print("   ");
      lcd.setCursor(17, 1);
      lcd.print(" +*");
      lcd.setCursor(17, 2);
      lcd.print("   ");
    }
    else if ((gps.course.deg()) < 151.5) {
      lcd.setCursor(17, 0);
      lcd.print("   ");
      lcd.setCursor(17, 1);
      lcd.print(" + ");
      lcd.setCursor(17, 2);
      lcd.print("  *");
    }
    else if ((gps.course.deg()) < 202.5) {
      lcd.setCursor(17, 0);
      lcd.print("   ");
      lcd.setCursor(17, 1);
      lcd.print(" + ");
      lcd.setCursor(17, 2);
      lcd.print(" * ");
    }
    else if ((gps.course.deg()) < 247.5) {
      lcd.setCursor(17, 0);
      lcd.print("   ");
      lcd.setCursor(17, 1);
      lcd.print(" + ");
      lcd.setCursor(17, 2);
      lcd.print("*  ");
    }
    else if ((gps.course.deg()) < 292.5) {
      lcd.setCursor(17, 0);
      lcd.print("   ");
      lcd.setCursor(17, 1);
      lcd.print("*+ ");
      lcd.setCursor(17, 2);
      lcd.print("   ");
    }
    else if ((gps.course.deg()) < 337.5) {
      lcd.setCursor(17, 0);
      lcd.print("*  ");
      lcd.setCursor(17, 1);
      lcd.print(" + ");
      lcd.setCursor(17, 2);
      lcd.print("   ");
    }
    else {
      lcd.setCursor(17, 0);
      lcd.print(" * ");
      lcd.setCursor(17, 1);
      lcd.print(" + ");
      lcd.setCursor(17, 2);
      lcd.print("   ");
    }
  }

}

GPSでなんかする その2(完成?)

以前GPSでなんかすると言ってましたが、できました。
時刻、受信衛星数、移動速度、高度を表示しています。右側には+を中心に移動方位を*印で表しました。速度と方位は動いていないと正しく表示できません。
おまけで湿度と温度を表示しました。最初はセンサーをケース内に入れてたのですが、自分の熱で温度が上がってしまうので右上の外(青いやつ)に出しました。
600mAhのLipoバッテリーで約4時間動作します。車に積んで周辺を一周してみました。信号待ちなどでスピードは出ていませんが、方位を示す*印が一周しているのが解ると思います。
特に何に使うという事もないのですが、作っている間が楽しいんですよね。さて、次は何を作ろうか?

2019-08-17

十三峠

台風一過で朝活行ってきました。今日はお連れさんと一緒です。前半はギア三枚残して調子良かったのですが、後半に入って苦しくなり徒歩並みにペースダウン。あとギア二枚残っていると思ってたら使い切ってて更に苦しくなって徒歩以下のペース。なんとか登り切ってダウンです。次から次へと登ってらっしゃいますが皆さんタフですね。
下りは汗が引いて寒いくらい。下界に降りてくると日が上がって暑くなってきました。帰宅する頃に体がいい具合に暖まってこれからというところですが、猛暑を避けて今日もここまで。

19.08.17の走行コース
行距離:28.86km

2019-08-12

台風が来る前に

台風が近付いて明日から何やら空模様が怪しくなりそうなので今朝も一本いっときました。心なしかじっとりして、風も少々あります。頭上には少々気になる雲がありますが、西の方はすっきりと神戸まで見渡せます。
プロテインで朝食 


19.08.12の走行コース
行距離:28.03km

2019-08-10

日の出と共に

2回目の朝活に行ってきました。猛暑日が続くうちはこの時間帯のライドが続きそうです。頂上は涼しい風が吹いて気持ちよかった。


さて、頂上でゆっくりしていると一人のライダーさんが『暗峠ってここから遠いですか?』と話しかけてきました。出張中でバイク持ってきたので酷評の暗峠を一度攻めてみようと思ったらしいです。『ここから近いですよ』と教えてあげて、ついでに酷道の酷道たる所以を教えてあげました。さて、彼は無事に登頂できたのでしょうか。私も一度トライしたことはありますが、入り口ですでに参りました。いつかリベンジするぞ。

19.08.10の走行コース
行距離:28.89km

2019-08-09

バイクを車に積んで見た

2ヶ月近く待った車が昨日納車されました。近所のホームセンターやショッピングモールに行くくらいでほとんど乗らないのですが、やっぱり車は無いよりあったほうが便利。
最近の車は超ハイテクです。キー回さないでボタン一つでエンジン始動できるんですね。これで早速トラブル。ちょっと出かけた先でACCからパワーオフできない、そこからエンジンかからなくなりました。色々やってみたけど全然ダメ。ディーラーに焦って電話してヘルプしてもらいました。結果は『パーキングに入ってますか?』一言で解決、はいドライブに入ってました。
ナビは高額なのでApple Car Play対応のAVセンターにしました。マップ、Google Map、Yahooカーナビが使えます。Siriで操作できるので超便利。
バイクを積んで見ました。後部座席を一つ倒すだけで簡単に搭載できます。後は動かない様に古チューブで引っ張ってやればいいか。
助手席下にハイブリッド用のリチウムイオンバッテリー(120Wh)を積んでいます。これモバイルバッテリーに使える様に改造しよっかなぁ。
今回の車はどれだけの距離を走るのでしょうか。SYNAPSEに乗り換えて450kmほど走りましたが、これを追い抜くことはないでしょうね。

2019-08-05

朝活

日中のバイクは危険なので早朝に走ってみました。日の出前の5時にスタートして十三峠へ。大竹7到着時に日の出時刻を過ぎていますが、生駒山の麓なのでまだまだ太陽は顔を出していません。それでも気温は28℃あります。風を切って走っているとひんやりしますが、止まると汗が出てきます。もがきながら登っていると、降ってくる人がチラホラ居て『おはようございます』と声をかけてくれます。皆さん会社行く前の練習でしょうか。
汗だくのまま下ると寒いくらいですが、それも麓まで。地上に降りると日差しが強くなってきました。この時期は車も少ないし、陽が出る前の時間帯が良いのかもしれません。

19.08.05の走行コース
行距離:30.41km

2019-08-02

GPSでなんかする

例によって中華GPS受信機(¥879)を入手したのでなんか作ってみます。最初どうやっても動かなかったのですが、突然動き出しました。どうやら最初の受信から現在地特定まで15分くらいかかる様です。一度受信できなら後は早い様です。またサンプルスケッチでは動かず、スケッチの必要なところ(理解できるところ)だけ抜き出して書いてみると動きました。どういうこっちゃ?
一行目:時刻、受信衛星数
二行目:移動スピード
三行目:高度
四行目:湿度、温度(DHT11使用)
四行目右の数字は移動方角です。その上は+を中心に移動方角に*印を表示しました。下の動画は温度湿度表示実装前です。移動する前の速度、方角表示は信用できません。
ケースに入れて車に積んで・・・と思ってますが、いつになることやら。