本の145ページからの、GPSモジュールを使った製作をやってみる。
なんかいろいろ書いてあるけど、9600bpsのUARTつまりRS232Cで通信できればなんとかなる?かも?な趣旨みたい。147ページには太陽誘電製の秋月モジュールが書いてあるけど、秋月でももう扱ってないので少し前に別のを買った。アマゾンの中国製激安GPSだ。これ。
7月初旬に買ったのにもう今は買えなくなっているという。まあ深く考えずにやってみるということでw(^^♪
例によって、まずはピンヘッダだなwww(^^♪これ。
いつも拡大して写真を撮るのが難しいのだが、まあなんとかなるだろう。今回は普通サイズのピンヘッダが素直に入ったので一安心。
ブレッドボードにつけたら裏が見えなくなるので、ピン配置を写真に撮ってここに上げておく。
で、149ページの回路図になるように配線する。なーんて言ってるうちに、ハードウエア配線終了。これだ。
せっかくなので、即、151ページからのソフトのほうに入る。これも本の通りのピン配置。
.h, .cのファイルをリンクしてからコンパイルすると通ったが・・・書き込むとこんなエラーで止まった。
前にあったみたいに、SNAPのコネクタの接触不良を疑って、抜き差ししたりしてもう一回やってみたが今回はダメ。なので真面目にエラーを調べる。こんなふう。
こういうサイト様を発見。なので、projectのpropertyからこういうところを探して、ここがNormalになっているので、まずはこれをLowにしてみる。
結局、Low / High / Normal全部ダメだった。ここが原因ではない感じ。
[ Pgm ] at 0x0, expected 0x00002801, got 0x00000000.
というのが原因?な雰囲気なので調べるとこういうサイトが。うーん・・・読んでもわからん(^^♪
しかし、さっきの周波数カウンタと根幹部分は同一なのに、なぜこういうエラーになるのか?というところが不明。プログラム書き込みのところの状態はGPSモジュールに関係なく前のと同一なのだが・・。
あと、よくわからないけど、memcmp とか memcpy とかの文をこういうふうにポンポン使ってもいいものなのか??メモリアクセス関数なんて、こんなのハードウェアを直にいじるようなものだと思うが、何の説明もなくそんなものをただ使ってそれで動く??ようなものなのだろうか?
そういう説明は、一切ない。
ただ「コードを短くするため、memcmpやmemcpyなどのメモリアクセス関数を使っています」という記述があるだけ。なんか引っかかるな。理由もわからず詳細もわからずこんなことをやってもいいものなのか??これの前の周波数カウンタのところでも、本に書いてある間違いの箇所を発見したりしたから、なおさらそういう疑義が高まる。
というわけで、そんなのを追求しても不毛なので、たぶんこれで失敗で終了になる可能性が大。
2024.9.9追記※
しばらく間が空いたが、場所を変えて、全く同じことをやってみた。
まず、コンパイルは通る。そして、書き込みも・・・通るではないの!
なので、そのままSNAPを取ってリセットボタンを押すと、こんなふうに動く。
このように、PIC側のLEDは1秒点滅するが、GPS側のLEDは点灯したまま。そしてLCDにはこのように良くわからない表示が。
本にしたがって、窓側に移動し5分くらい待ってみたが、変化なし。こんなふう。
なのでどうやら、書き込みは完全に成功なのだが、前に書き込めなかった理由はおそらく、なんかの理由でそれ以前のデータ?がPICに残っていて、その影響で新しく書き込みができなかったのに、今回十分に時間をおいて放電?したので、PICがまっさらに戻って書き込みができるようになったのか?
あと、5分待っても表示が変わらないのは、
・そもそもうまく動いていない?
・動いているがGPSの電波をキャッチできていない?
のどちらか、または両方。だろう。
なので、書き込みは成功したが動作は失敗or受信が不可能ということになりそう。
コメント
GPSモジュールって、電源が入っていさえすれば、GPSを掴んでLEDが点滅するものだと思ってましたが・・・違うんですかね?>中華製。
ちなみに既に販売が終わった秋月のモジュールは勝手にLEDが点滅してくれた記憶が・・・。
https://ameblo.jp/chacha-oyaji2/entry-12778158415.html
もしかして、その中華製、秋月のと同じように、電源と信号線のスイング電圧とが違ってるとか・・・。^^;
まあわかんないですね~。まあ、どうでもww(^^♪
中華思想はアレなので、中国製と言ってますがw