「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



徐々に回復中。大体健康体になった感。

付け加えると、鼻のむずむずやクシャミ、鼻の
ズルズル、微妙な頭痛、熱っぽさ、首関節の
痛さ、重さと言ったところをのぞけば、もはや
ほぼ健康体といって差し支えない。



火星がお月様に大接近してるなぁ。そういえば、
火星の最接近って、今日辺りじゃなかったかな?
と思って調べなおす。

http://homepage2.nifty.com/turupura/new/2014/new1404_04.html

うん。正解。今日なのか。さすがに望遠鏡とか
いう元気は無い。ちなみに、お月様も今日辺りが
満月じゃなかったかな?

http://koyomi.vis.ne.jp/moonage.htm

うん。正解。風邪はともかく、花粉の時期に望遠鏡
持ち出すのは…無いよなぁ…



https://twitter.com/Sim0000/status/455561948038320128
simさんのツイッターから、
http://news.mynavi.jp/news/2014/04/11/041/
PythonをLLVM上で動かす試みだって。へぇ。

PyPyみたいなネィテブコードじゃなく、VM用の
コードで動かすみたい。


http://nlab.itmedia.co.jp/nl/articles/1404/07/news118.html
この、7本の赤い線の話。面白かった。日本語訳
の表示ができなかったから、原文を訳しながら
見てたんだけど、面白いやら悲しくなるやら…。


http://camera.itmedia.co.jp/dc/articles/1404/07/news039.html
スペックはともかく、なんだろこの残念デザイン。


http://togetter.com/li/573251
「三丁目の夕日は幸せだった脳内変換」が一生
治らない、は、いくつかの実体サンプルを思い
浮かべると、きっと間違えない事実だろうな。

一種の宗教だから、「信じない」って選択肢は
存在しないんだろう。宗教を信じている人自体
をどうこう言うつもりはないんだけど、宗教に
すがってる人だけは相手するのに困るな。



http://biz.searchina.net/id/1529685
スゴイねぇ。さすが四大文明の発祥の国。これで
世界のエネルギー問題は、すべて解決だな。




少しだけ、PythonとGTKでGUIプログラムの続きを
ゴニョゴニョと動かしてみる。

UbuntuにGladeをインストールして、適当にGUIの
画面のサンプルを作り、XMLを吐き出す。

んで、ここを参考に、
http://symfoware.blog68.fc2.com/blog-entry-894.html
Pythonのコードを動かしてみる。

なんか不発。

カーソルがチビッと変化したりするんだけど、GUI
の画面が出てこない。
うーーーん、なんだろう?



コメント ( 0 )




風邪の具合が、いまひとつ。お出かけもできず。

顔がぬれたアンパンマン状態なので、ウクレレ用
のクロマチックチューナーも、GPSも、手を動かす
キモチに至らない。

なんとなく、人様のツイッターやブログを読み漁る。



https://twitter.com/fadis_/status/454127143270633472

おぉ。ARMはclang+LLVMに移行するのか。今後は、
もしかしたらx86にこだわる必要はなくなっちゃう
のかもしれないな。

http://sourceforge.jp/magazine/14/01/22/155000
FreeBSDは、この間もうclangとLLVMに移りつつ
あるんだけど、Linuxがどれだけ変わっていくか
が楽しみなところかな。

MSも、小さい端末用のWindowsは無料になった
みたいだけど、clang+LLVM+Linuxで、一気に
OSの世界が変わっていくと面白いんだけどな。

というか、LinuxのGPL関係の呪縛を嫌うMSあたり
が、FreeBSDにMS-Officeでも出せば、一気に流れ
が変わりそうな気がしないでもないんだけど。
http://www.huffingtonpost.jp/jouta-nakatsuma/windows_b_5140620.html?utm_hp_ref=japan



https://twitter.com/_ChuKiN_/status/426578414208679937
おぉ。これがリアルの車掌DJだな。



http://shimadah.blogspot.jp/2014/01/libretto-5060-opencocon-rdp-windows8.html

スゴイ。17年前のLibretto50で、Windows8が!
Raspberry Piと比べても、クロック数が一桁、
RAM容量で1/32のマシンで…
(種明かしはリンク先参照)


http://opencocon.org/about-cocon
opencoconっていうのがあるのか。

Raspberry Piでopencoconを動かしたら、アレコレ
できそうだな。




GPS+Arduinoを、遠地駆動で動かして、アッチコッチ
移動させたいとか思ってるんだけど、主にスマホ用に
作られてるモバブーは、省電力時に自動で電源カット
されちゃって困るので、どうしたものかと思っている
ところなんだけど、

http://akizukidenshi.com/catalog/g/gP-02681/

秋月のこのUSBコネクタ+電源スイッチ付きの電池
ケースを改造して、単三2本程度で5Vを搾り出す
マイコン用電源にしたりしたいとこなんだよな。

どうせ、100~200mAも取れれば充分だから、
NJM2360でも、HT7750Aでも、どっちでもいいんだ
けどな。回路サイズ的には、単三2本分のスペース
に収めればいいから、
http://www.aitendo.com/product/5894

aitendoの電池ボックス基板とか使ったりして、
スペースの許すかぎりデカいインダクタや
コンデンサを詰めれば、イイカンジのが作れそう
な気がするんだよな。


でも、ダイソーで100円で売ってる単四4本のケース
は、スイッチが無いってことを除けば、100円で
買えるメリットもあるんだよな。

スイッチを自分でなんとか取り付けると考えれば、
そっちも悪くないんだけどな。スペース的には、
ちょっと厳しいものがあるかもしれないけど。



https://twitter.com/reptone/status/407031402639552512
あっちの地方の軽トラック。





コメント ( 0 )




風邪っぽい感じが抜けないので、お出かけせずに、
引き続きGPSをArduinoに繋いで、LCD表示する
ことにしてみる。


GPSからのシリアル入力を受けて、文字処理して、
LCDに表示するという流れで行う作戦。

文字処理が色々厄介なので、サンプルを探すと、
http://baticadila.dip.jp/arduino_105.html
このページの下のほうにあるスケッチがイイカンジ
なので、これを参考にして、LCD表示するような
スケッチに作り変えてみる。

それにしても、普段C言語で文字処理とか
やらないので、文字列←→数値、の変換処理で
思わぬ苦戦。スマートな方法が思いつかなかった
ので、とりあえず力技でねじ伏せた。

表示してみた結果がこれ。



GPSモジュールのLVTTL出力は3.3Vなんだけど、
Arduinoのシュミットトリが入力の弁別は
2.5V付近にあるはずなので、一応HIGH/LOW
の判別は可能だった。

デジタル11番でソフトウェアシリアルで受けて、
LCDとハードウェアシリアルに出力。


左上は、UTCに9時間を足した時刻(日本標準時)
で表示してみた。その下に「(UTC)」って書いて
あるのは、9時間足さずに表示してたときの名残。
(バグとも言う)
閏秒に関わる誤差の補正は組み込んでないし、
60進数を加味して補正するのは面倒なので、
これであきらめる。

右側上は緯度で、下は経度。「N」は北緯で
「E」は東経。
ちなみに、シリアル出力には「$GPGGA」の
センテンスから拾ってて、この$GPGGAは行の
内容丸ごとシリアルに出力。そこから眺めると、
どうやら補足している衛星数は、7~8個みたい。

ちなみに、$GPGGAのセンテンスは、1秒置きに
出力されてくるみたい。


緯度、経度の数値を眺めてみると、どうやら、
数m程度の誤差内に収まっている感じなんだけど、
なんか引っかかることが数点。



電源を入れなおすたびに数メートルほど飛ぶ
のは、優先している衛星がコロコロ変わる
からなのかなぁ?まぁ、せいぜい数m以内
なんだけど。特に北緯の散らばりが大きそう。

それと、一旦位置を補足すると、そこから
1~2m程度動かしてみても、数値が変化しない
みたい。なんでだろう?


表示されている数値は、「分」の1/10000まで
なので、計算では18cmくらいの単位で表示
出来るはずなんだけど、この微妙な移動を
検知できてないみたい。

数値がコロコロ変化してもイイから、もう少し
細かい移動を拾ってくれることを期待して
いたんだけどな。



とりあえず、今時点で動かしている、Arduino用
のスケッチを晒しちゃう。

#include <SoftwareSerial.h>
#include <string.h>
#include <stdlib.h>
#include <string.h>


#include <LiquidCrystal.h>

/* I/O pins for aitendo lcd shield */
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

SoftwareSerial sw_serial(11, 13); // GPS on D11


/* print out on lcd */
void print_lcd(char *buf1) {
  char *str1;
  char tmp0[100];
  unsigned long time;
  int i,j;
  unsigned long k,t;

  /* utc time */
  str1 = strtok(buf1,","); /* skip reading */
  str1 = strtok(NULL,","); /* utc time */
  strncpy(tmp0, str1, 6);
  tmp0[6] = '\0';
  
  time = atol(tmp0);
  if ((time + 90000L) > 235959) {
    time += (- 240000L + 90000L);
  } else {
    time += 90000L;
  }
  t = time;
  for (i = 0; i < 6; i++) {
    k = 1L;
    for (j = 0; j < (5-i); j++) {
      k *= 10L;
    }
    tmp0[i] = (char) (time / k);
    time -= ((long)tmp0[i]) * k;
    tmp0[i] += '0';
  }
  
  if (str1 != NULL) {
    lcd.setCursor(0,1);
    lcd.print("(UTC)");
    lcd.setCursor(0,0);
    lcd.print(tmp0);
  }
  
  /* latitude */
  str1 = strtok(NULL,",");
  if (str1 != NULL) {
    lcd.setCursor(7,0);
    lcd.print(str1);
  }
  
  /* hemisphere */
  str1 = strtok(NULL,",");
  if (str1 != NULL) {
    lcd.setCursor(6,0);
    lcd.print(str1);
  }
  
  /* longitude */
  str1 = strtok(NULL,",");
  if (str1 != NULL) {
    lcd.setCursor(6,1);
    lcd.print(str1);
  }
  
  /* east/west */
  str1 = strtok(NULL,",");
  if (str1 != NULL) {
    lcd.setCursor(5,1);
    lcd.print(str1);
  }
}



void setup() {
  /* setup LCD */
  //  analogWrite(10,127);  // back light brightness
  lcd.begin(16, 2);
  lcd.clear();
  lcd.cursor();  // display cursor on

  Serial.begin(19200);
  Serial.println("start gps display");
  sw_serial.begin(4800);
}


void loop() {
  char buf1[256];
  int cnt1 = 0;

  char c;
  char *str1;
  
  
  do {
    while ( sw_serial.available() == 0 ) {
    }
    
    c = sw_serial.read();
    buf1[cnt1] = c;
    cnt1 ++;
    
    if (cnt1 > 253) {
      c = 0x0a; //'\n'
      buf1[cnt1] = c;
      cnt1 ++;
    }
  } while ( c != 0x0a ); //'\n'

  buf1[cnt1] = 0;
  //Serial.println(buf1);
  
  if (strncmp("$GPGGA",buf1,6) == 0) {
    /* if '$GPGGA' is inputted */
    Serial.println(buf1);
    print_lcd(buf1);
  }
}


(後日修正:
  include文とfor文の不等号記号が、うまく変換
  されずに、行の後部が削除されてしまっていた
  ので、全角文字に変換しました。計6行分)


モバブーのUSB電源使ってあちこち移動しながら、
数値の変化を見ようと思ったんだけど、スマホ
とかの充電に使うモバブーって、Arduino程度の
消費電力だと、「充電終了」って判断されるのか、
10秒くらいで電源切れちゃってイマイチなので、
USB出力できる5V電源を考え直す。

http://d.hatena.ne.jp/OkibiWorksLabo/20100620/USB_BattBox

どうやら、100円ショップの5V昇圧タイプ電源が、
安くてお手軽かもしれないな。




コメント ( 0 )




今朝から、「花粉がメチャメチャ濃くなったの?」
とか思ってたら、どうやら鼻かぜっぽいなぁ。

鼻がムズムズ、んで、体が重い…
しまったな。ここ数日、確かに予兆があったんだよな。



http://www.kandashokai.co.jp/flos/traveler_guitar/ukuleles/ultra-light_ukulele.html
この、小型のエレウケ。なかなかイイカンジの
パッケージだな。今持ってるソプラノサイズの
ケースでも入る大きさ。まぁ、お値段がなぁ。
「ちょい」と買える金額じゃぁないな。



http://car.watch.impress.co.jp/docs/news/20140411_643910.html
トヨタがいうアトキンソンサイクルって、ホンダ
が発電用に作ってる
http://www.honda.co.jp/tech/power/exlink/
こういう、ストロークがちゃんと変化するような、
ホンモノのアトキンソンサイクルじゃないんだ
よな。たしか。



http://strawberry-linux.com/catalog/items?code=12015
この、ストリナの昇圧/降圧タイプのDC/DC
コンバータって、以前もあった気がするけど、
値段が安くなったのかな?

昇圧/降圧自動切換えだから、便利そうなん
だよな。リプルの大きさは少し注意が要りそう
だけど。



http://www.huffingtonpost.jp/2014/04/11/-article-9-of-the-constitution_n_5130275.html?utm_hp_ref=japan
お。もしかして、オイラもノーベル平和賞が
受賞できちゃうってことか?



http://dailynewsagency.com/2014/04/11/riftcycles-project-zy8/
Oculus Riftで、TRONかぁ。それを自作レベルで…

技術の進歩は日進月歩だな。個人が自分の手で
TRONを体感できるマシンを作れちゃうとは。


その昔、TRONって言ったら、当時の技術で個人だと、



ここまでだったな。





コメント ( 0 )




計算が間違えていた。GPSから出力されるNMEAから
読み出せる緯度・経度の情報は、「度」の1/60の
「分」の、さらに1/1000だと思ってたんだけど、
良く見てみたら、1/10000だった。

ってことは、最小桁で弁別できるのは、1.8mじゃ
なくて、18cmってことになるな。

(111km÷60÷10000≒18cm)


ってことは、絶対誤差はともかく、相対誤差と
して、移動量が正確に把握できれば、色々と
オイラの妄想しているナニがアレ出来るという
ことになりそう。


で、GPSモジュールが、ブレッドボードで簡単に
使える様になったので、ノートPCのUbuntuで
シリアルターミナルを起こして、GPSからの信号
を垂れ流ししつつ、アッチコッチに移動してみる。
といっても、数mの範囲だけど。


で、いざ動かしてみると…


思い通りには動かないなぁ。数m動かしてみた
範囲では、落ち着いて位置情報が移動してくれる
どころか、経度・緯度とも変化しない。
かといって、移動に伴って電源線とかにちょこっと
触れた瞬間(多分ノイズが走った瞬間)に、数値
がコロコロ変わって、さいころの様に別の値に
変化して、また落ち着いちゃう、の繰り返し。


うーーーーん。

http://akizukidenshi.com/download/ds/canmore/GMS6-CR6_v1.1.pdf
データシートを見ると、どうやら、誤差は2.5m
(CEP:平均誤差半径)ってことになっているん
だけど、実際の数値のばらつきはもっと大きくて、
100mくらいの範囲でコロコロ変わってる感じ。

ナニが悪さしてるんだろうねぇ…



ちなみに、
http://arduiniana.org/libraries/tinygps/
http://arduiniana.org/libraries/tinygpsplus/
Arduino用のGPSライブラリが公開されていたり、

http://baticadila.dip.jp/arduino_105.html
素のSerial入出力を使ったサンプルコードなど
もあるので、Arduino使ってゴニョゴニョして
みるかな。またこんど。




また別の課題に目を向ける。ECMで音声入力して、
ウクレレ用のクロマチックチューナーとして
機能させてみようというお話し。

ECMの微小な出力を増幅するどこかの段階で、
ノイズが入り込んじゃって、振幅が小さいときに
信号とノイズの分離ができない、というか、
かなり大きなノイズが載っちゃって、実用レベル
にならないので、そのあたりを。

http://eetimes.jp/ee/articles/1010/29/news118.html

こことか読んで、アンプ直列で増幅するときの、
ノイズの入り込みとその対策あたりをモヤモヤと
考え直してみる。

後段は、正直言ってあまり原因になっているとは
思えないので、このページの様に初段のアンプが
原因になっているか、もしくはECMの出力時点で
既にノイズが載っていると考えるのが妥当なの
かな。

原因の切り分けていく必要があるな。

もしECMの出力にノイズが載っているとしたら、
多分原因は、ECMに供給しているスイッチング電源
からのノイズと考えるのが妥当じゃないかな。
一応フィルタ的なものはナニをナニしてみた
んだけど、適当に場当たり的なことをしてるから、
うまくいって無いみたい。

一度、1.5V×2本で電池の3Vを供給して、ノイズ
をクリアにする方法を試してみるかな。これで
消えるなら、ECMへの電源供給について対策を
行えばいいはず。




https://twitter.com/Sim0000/status/454180523544305664
simさんのツイッターから、
http://nlab.itmedia.co.jp/nl/articles/1404/10/news098.html
モーニングの新連載「ハルロック」の話題に。
へぇ。モーニングか。

http://www.moae.jp/comic/harurock/0
スゴイ偏った登場人物ばかりだな。なんか
おもしろそう。



http://nlab.itmedia.co.jp/nl/articles/1404/10/news090.html
カエルのリュック。質感がすごいな。
どこからこういうアイデアが沸いて来るんだろう?




http://www.switch-science.com/catalog/1686/
スイッチサイエンスで、4×4のキーパッドを
ADC1チャンネルで読み出すキット。ナカナカ
ヨサゲ。




http://keeelectronics.com/mkii.htm
知らぬ間に、オイラの持ってるJTAGICEmkIIの
パチモノが、Atmel Studio6にも対応してたみたい。
へぇ。

最近、ArduinoとRaspberry PiとmbedとPSoC
ばかり弄ってたから、AVRの環境自体あまり弄って
なかったな。


http://www.keeelectronics.com/catalog/product_info.php?cPath=24&products_id=52&osCsid=4aeee98344d36c3a90d64a7b64f8f22c
PICkit2互換機は、ZIFソケット付いて38ドルなのか。

PICkit3じゃないと駄目ってチップじゃなければ、
これでも良かった気がするなぁ。




コメント ( 0 )



« 前ページ 次ページ »