先週の事故で少し過去動画を見る機会ができました。
単純に、聞こえにくい!
画像が汚いだけなら、何とかなるかも知れないですが、
綺麗に越したことはないですが。。。
聞き取りにくいと、やる気が削がれるのです。(私の場合)
で、今週から少し配信方法を変更し、クリアな音声でお届けできそうです。
何かに躓いたら少し調べる切っ掛けになるものですね。
これからも、できる限り反省を積み重ねて、より良い番組をお届けしたいと思っています。
これからもよろしくお願いいたします。
半田コテの使用方法に関する内容での訂正です。
1.半田こての使い方
メーカーに確認を取ったところ、鉛フリーハンダを使用する場合、コテ先の酸化防止のために常にハンダがコテ先に付いている状態にしなければなりませんので、コテ先は綺麗に拭き取らないで、ハンダをコテ先に盛ってコテ台に戻してください。
また、コテ先が黒く変色して半田が乗らない状態になった場合は、good チップリフレッサー(bs-2)また、HAKKO ケミカルペースト(FS-100)を使用してください。
チップリフレッサーの使用方法は、コテの温度を300~360℃に設定し、コテ先をリフレッサーに擦り付けるようです。ふき取り後、半田を小手先に付けてリフレッシュ完了です。
また、ケミカルペーストは、こすりつけるというよりは、なでるような感じでペーストが溶け始めるので、コテ先にまんべんなくつけてると半田のようにとけてコーティングしてくれます。これでリフレッシュ完了です。
銀色のコーティングされたコテ先が復活です!
私は、FS-100を購入しましたが、今までコテ先では450℃でも解けにくかった半田が、350℃でも解けてコテ先に半田が乗るようになりました。
ちなみに、BS-2はリン酸アンモニウムを含むようで、しっかりふき取らないと、基盤が腐食するようです。
2.ペースト(HAKKO FS110/FS120)の使い方
電子基盤には使用しません。
3.フラックス(HAKKO FS-200)の使い方
フラックスは半田付けを手助けする促進剤のようなものらしいので、コテではなく電線等、これから半田付けを行う箇所につけます。するとスムースに半田付けできるようです。
訂正して、御詫びいたします。申し訳ありませんでした。
番組で猛烈PUSH中の全日本モトクロス 国際B級 ライダー 道脇 右京 選手が、
先日(2011/09/11)行われた 名阪スポーツランド 第六戦
なんと、IB2クラス(250CC) IBOpenクラス(250,450混走)で
両方とも、優勝!!!
おめでとうございます。
今週の放送に関係する資料をアップしておきます。
訂正記事がありますので、必ず!訂正記事を参照してください。
http://p.tl/nOPE
毎週土曜21:00~24:00位まで?週刊Android
Android、Arduino ソフト~ハードまで、IT関連情報、スポーツ(モトクロス等)、海外ドラマ(洋限定)など、
すき放題、やっちゃいますw
twitter:@weeklyandroidjp
USTREAM:http://p.tl/zY22
ニュース(9月):http://p.tl/v76B
月刊Android SNS: http://p.tl/4HTR
エクスレリアレイ評価:http://p.tl/C-WF
今週は、「夜はハードに」Vol6です。
GPSの位置情報取得と表示までやります!
今週もやれるとこまでやりますよ。
1.先週の最後に上げておいたGPSの回路図
2.ソースコード
#include <LiquidCrystal.h>
//LCDのライブラリ初期化
//RS, E, DB4, DB5, DB6, DB7に接続したピン番号
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int DATA_MAX = 20;
int BUFF_MAX = 100;
const int TRUE = 0;
const int FALSE = -1;
const int SPEEDUP_OFFSET = 10;
char gpggaNC[] = "$GPGGA,120042.000,0000.0000,N,0000.0000,E,0,00,0.0,0.0,M,0.0,M,,0000*68\n";
char gpgga[] = "$GPGGA,093227.976,3500.1335,N,13701.2415,E,2,08,1.1,4.7,M,39.4,M,,0000*5B\n";
//初期化
void setup(){
//LCDの桁数、行数指定
lcd.begin(16, 2);
lcd.clear();
//シリアル通信の初期化(9600bpm)
Serial.begin(9600);
char cmd[100] = {"$PMTK314,GLL,RMC,VTG,GGA,GSA,GSV,0,0,0,0,0,0,0,0,0,0,0,ZDA,MCHN,"};
char cmd2[100];
long chksum = calcCheckSum(cmd);
char cchksum[10];
sprintf(cmd2, "%s%2x", cmd, chksum);
Serial.println(cmd2);
//シリアル通信(GPGSV開始)
//Serial.println("$PSRF103,3,0,1,1*26");
//シリアル通信(GPGSV停止)
//Serial.println("$PSRF103,3,0,0,1*27");
//シリアル通信(GPZDA開始)
//Serial.println("$PSRF103,8,0,1,1*2D");
//シリアル通信(GPZDA停止)
//Serial.println("$PSRF103,8,0,0,1*2C");
}
void loop()
{
char str[BUFF_MAX];
char *data[DATA_MAX];
char *pChar = NULL;
int ii = 0;
//データ受信
recvStr(str);
//チェックサム取得
long gotValue = getCheckSum(str);
//チェックサム計算
long calcValue = calcCheckSum(str);
//チェックサム一致?
if(gotValue != calcValue){
return;
}
//データ分解
for(ii=0; ii<DATA_MAX; ii++){
if(0 == ii){
pChar = (char*)strtok(str, ",");
// if(0 == strcmp(pChar, "$GPGGA")){
// lcd.clear();
// lcd.setCursor(0,0);
// lcd.print(pChar);
// delay(700);
// } else if(0 == strcmp(pChar, "$GPGSA")){
// lcd.clear();
// lcd.setCursor(0,0);
// lcd.print(pChar);
// delay(700);
// } else if(0 == strcmp(pChar, "$GPRMC")){
// lcd.clear();
// lcd.setCursor(0,0);
// lcd.print(pChar);
// delay(700);
// } else if(0 == strcmp(pChar, "$GPGSV")){
// lcd.clear();
// lcd.setCursor(0,0);
// lcd.print(pChar);
// delay(700);
// } else if(0 == strcmp(pChar, "$GPGLL")){
// lcd.clear();
// lcd.setCursor(0,0);
// lcd.print(pChar);
// delay(700);
// } else if(0 == strcmp(pChar, "$GPVTG")){
// lcd.clear();
// lcd.setCursor(0,0);
// lcd.print(pChar);
// delay(700);
// } else if(0 == strcmp(pChar, "$GPZDA")){
// lcd.clear();
// lcd.setCursor(0,0);
// lcd.print(pChar);
// delay(700);
// }
if(0 == strcmp(pChar, "$GPGGA")){
data[ii] = pChar;
} else {
//不要
return;
}
} else {
data[ii] = strtok(NULL, ",");
if(NULL == data[ii]){
break;
}
}
}
if(calcValue != gotValue){
//チェックサムNG
lcd.clear();
lcd.setCursor(0,0);
lcd.print("got:");
lcd.print(gotValue);
lcd.setCursor(0,1);
lcd.print("calc:");
lcd.print(calcValue);
} else {
//チェックサムOK
lcd.clear();
lcd.setCursor(0,0);
lcd.print((char*)data[2]);
lcd.print( ":");
// lcd.print(millis());
lcd.print(gotValue);
lcd.setCursor(0,1);
lcd.print((char*)data[4]);
lcd.print( ":");
lcd.print(calcValue);
}
delay(500);
}
/*
* GPSデータ受信用
*/
void recvStr(char *buf)
{
int ii = 0;
char cc;
while (1) {
if (Serial.available()) {
cc = Serial.read();
if (cc == '\n'){
break;
} else if (cc == '\r'){
//何故かこのロジック削ると表示される
break;
} else {
buf[ii] = cc;
}
ii ++;
}
}
//nullをセット
buf[ii] = '\0';
// strcpy(buf, gpgga);
}
/*
* 受信データからチェックサムを取得(正)
* @param 受信バッファ
*/
long getCheckSum(char *buf)
{
char strTmp[3];
long checkSum = 0;
long len = strlen(buf);
char *astPos = NULL;
if(len > SPEEDUP_OFFSET){
astPos = strchr(&buf[len - SPEEDUP_OFFSET], '*');
if(NULL != astPos){
memset(strTmp, 0x00, sizeof(strTmp));
//アスタの次からコピー
strncpy(strTmp, &astPos[1], 2);
checkSum = strtol(strTmp, NULL, 16);
}
}
return(checkSum);
}
/*
* チェックサムを計算
* @return チェックサムの下位1Byte
* @param 受信バッファ
*/
long calcCheckSum(char *buf)
{
int ii = 0;
long lTotal = 0;
long lMasc = 0xFF; //マスク用
long len = strlen(buf);
for(ii=0; ii<len; ii++){
if('$' == buf[ii]){
continue;
} else if('!' == buf[ii]){
continue;
} else if('*' == buf[ii]){
break;
}
//xor
lTotal = lTotal ^ (unsigned char)buf[ii];
}
//念のため1Byteのみ抽出
lTotal = lTotal & lMasc;
return(lTotal);
}
3.注意
参考:トラ技 2011/11 P154~P158
GPSモジュール:GT-723F
記事内容の誤り&ちょっとした情報
今回参考にさせていただいた、トラ技ですが、ちょっとだけ訂正&お得情報がありますので、
報告いたします。
1.TTLレベル出力の話
GT-720Fは、Pin5,6がN.Cになって慰安すが、実はTTLレベルでシリアル通信ができます(仕様では認められていません)ので、ADM3202は必要ないかもです。
2.チェックサムの話
チェックサムの説明(P158)で、「データ先頭からチェックサム直前までの値をすべて加算し、下位2バイトの
データを通信により得た・・・」のくだりですが、性格には次のようになります。
データ先頭から'$','!'を省いた文字コードをxorをとります。チェックサムに使用するバイト数は1バイトです。
4.エクスペリアレイ資料
チェルノブイリでの原発事故以来、何度も現地を訪れ、調査、復旧、復興活動を行われてきた
原発に一番近い男、「チェルノブイリ救援・中部」 原様より、公開の許可をいただきました。
チェルノブイリでの調査、復旧、復興の講義を拝聴させていただきました。
放射能との付き合い方や農法、バイオエタノールにいたるまで、事細かに
記されています。
是非、政府関係者は、見て検討してください。
同心円では管理できない被災範囲も必見!
資料の無許可での転載などは、お控えください。閲覧のみでお願いいたします。
資料は、ココ↓
今週の放送に関係する資料をアップしておきます。
毎週土曜21:00~24:00位まで?週刊Android
Android、Arduino
ソフト~ハードまで、IT関連情報、スポーツ(モトクロス等)、海外ドラマ(洋限定)など、
すき放題、やっちゃいますw
twitter:@weeklyandroidjp
USTREAM:http://p.tl/zY22
ニュース(8月):http://p.tl/poHN
ニュース(9月):http://p.tl/j3xl
月刊Android SNS: http://p.tl/4HTR
今週は、「夜はハードに」Vol5です。
Arduinoで距離測定&表示!
GPSの位置情報取得と表示ができるかな?
今週もやれるとこまでやりますよ。
只今、OpenGLで遊んでます。その内何か話せたら話しまーす。
ソースコードは、また後で上げでおきます。
1.前回の訂正!とちょっと見やすく!
2.電圧を距離に変換する!
1.まず、データシートから目でみて、グラフを作成すると、こんなグラフになります。
ダウンロードしてね!思ったとおりのグラフがGoogleDocsだと見れなかったです。
URL:http://p.tl/iByE
2.回路図
3.ソース
3.Arduino+LCD+GPS(GT-723F)
今回は簡単につなげちゃいます!