Hatena::ブログ(Diary)

PlayLoud!!〜ヘヴィメタル・ハードロックの世界〜ゲームはライフワーク〜 このページをアンテナに追加 RSSフィード Twitter

2005|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|

2012-02-08

エレキットの真空管アンプ TU-870R

|  エレキットの真空管アンプ TU-870Rを含むブックマーク  エレキットの真空管アンプ TU-870Rのブックマークコメント

エレキットの真空管アンプTU-870Rが生産終了ということで確保しておきました。

https://www.elekit.co.jp/topics/detail/00774

f:id:kei-go:20120208083445j:image

少しずつ作り始めているので、また完成したらレポートします。

トラックバック - http://d.hatena.ne.jp/kei-go/20120208

2012-02-07

LCDシールドキット

|  LCDシールドキットを含むブックマーク  LCDシールドキットのブックマークコメント

arduinoのLCDシールドキットが届きました。スイッチサイエンス早いですね。

f:id:kei-go:20120208083401j:image

部品はこんな感じで組み立てというほどのことはありません。

f:id:kei-go:20120208083402j:image

白いソルダーレジストはきれいでいいですよね。半田のヤニで汚れるんですが(笑)

f:id:kei-go:20120208083404j:image

じゃあ、抵抗からつけていきましょう。2種類あるので場所を間違えないように。

f:id:kei-go:20120208083410j:image

これでもかとハンダ盛る必要はないです。

f:id:kei-go:20120208083407j:image

LCD用のピンソケットをつけます。長いのが入っているので折って使います。

f:id:kei-go:20120208083413j:image

傾かないように工夫してつけてください。脚を1本つけたら、半田ごてを当てながら調整すればいいと思います。

f:id:kei-go:20120208083415j:image

こんな感じですかね。

f:id:kei-go:20120208083414j:image

半固定抵抗、タクトスイッチ、LED、arduino用のピンソケットをつけます。半固定抵抗は種類があるので注意。

f:id:kei-go:20120208083422j:image

こっちのピンソケットはより傾かないように工夫してつけないとダメですね。

f:id:kei-go:20120208083425j:image

arduino本体などと合体させて調整すればいいですね。

f:id:kei-go:20120208083427j:image

3階建てー

f:id:kei-go:20120208083429j:image

LCDにピンヘッダを取り付けます。こっちも長いので折って使います。

f:id:kei-go:20120208083430j:image

こんな感じで。

f:id:kei-go:20120208083434j:image

うまく差し込んでください。ここはもう抜かないのでグイッといきましょう。

f:id:kei-go:20120208083435j:image

はい、合体。完成!

f:id:kei-go:20120208083439j:image

USBでarduinoに給電すればすぐに電源が入ります。

f:id:kei-go:20120208083440j:image

arduino IDEのサンプルスケッチにHello, world!があるので表示して調節しましょう。左の半固定抵抗がコントラストですが、これをかなり回してみないと文字が見えるようになりませんでした。

f:id:kei-go:20120208083442j:image

先日作った温度表示をLCD用に作り替えてみました。

f:id:kei-go:20120208083443j:image

これでPCからターミナルで接続しなくてもarduino単体で動作状況が確認できるようなスケッチが書けますね。

2012-02-06

arduinoで気温をツイート

|  arduinoで気温をツイートを含むブックマーク  arduinoで気温をツイートのブックマークコメント

arduinoにイーサネットシールドと温度センサLM35を接続してみました。

f:id:kei-go:20120206025540j:image

こんな感じで室温をツイートします。

https://twitter.com/#!/keigox68000/status/166234898166849537

スケッチプログラム)はいろんなところから借りてきたコードを切り貼りしてます。(この記事の最後に掲載)

Twitter関連は、NeoCatさんのArduinoからTwitterにPOSTするライブラリ OAuth版を参考にしてます。

温度センサ関連は、書籍を参考にしてます。

たのしい電子工作 Arduinoで電子工作をはじめよう!

たのしい電子工作 Arduinoで電子工作をはじめよう!

で、温度を実数でツイートすると桁数が大きくてうるさいので、小数点第一位まで表示するようにしたらsprintfで大ハマりしました。

arduinoのsprintfは固定小数点が「?」に化けるバグ(?)があるらしく、いろいろ検索してそれに気づくまでに何時間もかかってしまいました。くっそー

http://dereenigne.org/electronics/arduino/arduino-float-to-string

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1164927646

f:id:kei-go:20120204110806j:image:w300

国内で同じような情報が見つけられませんでした……やっぱり海外のサイトも積極的に見ないとダメだなぁ。

結局、LM35から取得した数値を温度に変換したもの10倍してから整数部分だけを文字列に格納(小数点第一位まで求めて)、その文字列に小数点を挿入するという回りくどい方法で小数点第一までの温度を表示することにしました。

f:id:kei-go:20120204110807j:image:w300

そんなわけでarduinoと便利なライブラリのおかげで定期的に室温をツイートするところまでは行けたのですが、室温が変わらない場合はTwitterの制限で連続ポストできないため、温度に時刻を付加してポストするようにしてみました。

f:id:kei-go:20120204110802j:image:w300

ntpサーバから時刻を取得するのですが、こちらはarduino IDEのサンプルと、なんでも作っちゃう、かも。さんの「Arduinoで遊ぼう - NTPを使ってインターネット経由で時刻をあわせる」の記事がとても参考になりました。

 

とりあえず、arduinoを使ってデータを取得してツイートするところまではできたので、これから本番に移ります。室温なんかポストしてもTL汚すだけなのでもっと別なことで遊んでみます(笑)

 

気温を計測してポストする(必要ないコードなど残っていますが参考まで)

#include <SPI.h> // needed in Arduino 0019 or later
#include <Ethernet.h>
#include <Twitter.h>
#include <EthernetUdp.h>
#include <Time.h>

// The includion of EthernetDNS is not needed in Arduino IDE 1.0 or later.
// Please uncomment below in Arduino IDE 0022 or earlier.
//#include <EthernetDNS.h>

// Ethernet Shield Settings
byte mac[] = { 0x**, 0x**, 0x**, 0x**, 0x**, 0x** };

// UDPローカルポート番号
unsigned int localPort = 8888;

// NTPタイムサーバIPアドレス(ntp.nict.jp NTP server)
IPAddress timeServer(133, 243, 238, 164);

// NTPパケットバッファサイズ
const int NTP_PACKET_SIZE= 48;

// NTP送受信用パケットバッファ
byte packetBuffer[NTP_PACKET_SIZE];

// Udpクラス
EthernetUDP Udp;

// 最後にパケットを送信した時間(ミリ秒)
unsigned long lastSendPacketTime = 0;

// If you don't specify the IP address, DHCP is used(only in Arduino 1.0 or later).
byte ip[] = { イーサネットシールドのIPアドレスをカンマ区切りで };

// Your Token to Tweet (get it from http://arduino-tweet.appspot.com/)
Twitter twitter("〜あなたの取得したトークン〜");

// Message to post
char msg[256];

#define  LM35_IN  0

void  setup()
{
 delay(1000);
 Ethernet.begin(mac, ip);
 Serial.begin(9600);

 Udp.begin(localPort);

 // 最初の時刻リクエストを送信
 sendNTPpacket(timeServer);
 lastSendPacketTime = millis();
}

void  loop()
{
 if ( millis() - lastSendPacketTime > 13000 ){
   // NTPサーバへ時刻リクエストを送信
   sendNTPpacket(timeServer);
   // 時間を更新
   lastSendPacketTime = millis();
 }  

   // NTPサーバからのパケット受信
 if ( Udp.parsePacket() ) {
   // バッファに受信データを読み込む
   Udp.read(packetBuffer, NTP_PACKET_SIZE);

   // 時刻情報はパケットの40バイト目からはじまる4バイトのデータ
   unsigned long highWord = word(packetBuffer[40], packetBuffer[41]);
   unsigned long lowWord = word(packetBuffer[42], packetBuffer[43]);

   // NTPタイムスタンプは64ビットの符号無し固定小数点数(整数部32ビット、小数部32ビット)
   // 1900年1月1日0時との相対的な差を秒単位で表している
   // 小数部は切り捨てて、秒を求めている
   unsigned long secsSince1900 = highWord << 16 | lowWord;
//    Serial.print("Seconds since Jan 1 1900 = " );
//    Serial.println(secsSince1900);

   // NTPタイムスタンプをUNIXタイムに変換する
   // UNITタイムは1970年1月1日0時からはじまる
   // 1900年から1970年の70年を秒で表すと2208988800秒になる
   const unsigned long seventyYears = 2208988800UL;
   // NTPタイムスタンプから70年分の秒を引くとUNIXタイムが得られる
   unsigned long epoch = secsSince1900 - seventyYears;  
   Serial.print("Unix time = ");
   Serial.println(epoch);

   // Timeライブラリに時間を設定(UNIXタイム)
   // 日本標準時にあわせるために+9時間しておく
   setTime(epoch + (9 * 60 * 60));

 int  temp_in,ht,mt,st,i;
 float  temp;
 char  disp[20]="";
 char  disp1[20]="";
 char  h[20],m[20],s[20];

 ht = ((epoch + 32400) % 86400L) / 3600;
 mt = ((epoch + 32400) % 3600) / 60;
 st = (epoch + 32400) % 60;
 sprintf(h,"%02d:",ht);
 sprintf(m,"%02d:",mt);
 sprintf(s,"%02d",st);

 temp_in = analogRead(LM35_IN);
 temp = (float)(temp_in) * (float)(0.0048) * (float)1000;
 itoa(temp,disp,10);
 strncpy(disp1,disp,strlen(disp)-1);
 strcat(disp1,".\0");
 strcat(disp1,&disp[strlen(disp)-1]);

 strcpy(msg,"現在の室温 ");
 strcat(msg,disp1);
 strcat(msg," ℃ (");
 strcat(msg,h);
 strcat(msg,m);
 strcat(msg,s);
 strcat(msg,") #Arduino");

 Serial.println(msg);

Serial.println("connecting ...");
 if (twitter.post(msg)) {
   int status = twitter.wait(&Serial);
   if (status == 200) {
     Serial.println("OK.");
   } else {
     Serial.print("failed :code ");
     Serial.println(status);
   }
 } else {
   Serial.println("connection failed.");
 }

 Serial.print(temp, 1);
 Serial.print("\n");
 }

 Serial.print("wait...");
 Serial.print("\n");
 // wait
 unsigned long waitTime = 60000UL*58UL;
 delay(waitTime);

}

// send an NTP request to the time server at the given address 
unsigned long sendNTPpacket(IPAddress & address)
{
 // set all bytes in the buffer to 0
 memset(packetBuffer, 0, NTP_PACKET_SIZE); 
 // Initialize values needed to form NTP request
 // (see URL above for details on the packets)
 packetBuffer[0] = 0b11100011;   // LI, Version, Mode
 packetBuffer[1] = 0;     // Stratum, or type of clock
 packetBuffer[2] = 6;     // Polling Interval
 packetBuffer[3] = 0xEC;  // Peer Clock Precision
 // 8 bytes of zero for Root Delay & Root Dispersion
 packetBuffer[12]  = 49; 
 packetBuffer[13]  = 0x4E;
 packetBuffer[14]  = 49;
 packetBuffer[15]  = 52;
 // all NTP fields have been given values, now
 // you can send a packet requesting a timestamp:
 // NTP requests are to port 123
 Udp.beginPacket(address, 123);
 Udp.write(packetBuffer, NTP_PACKET_SIZE);
 Udp.endPacket();
}

名無し名無し 2012/02/06 14:46 内容はともかく、#arduino付けて自動投稿するのはマナー違反です。ハッシュタグの意味を考えてください。

kei-gokei-go 2012/02/06 21:43 消しました!気づかなくてすみません。ありがとうございます orz

トラックバック - http://d.hatena.ne.jp/kei-go/20120206

2012-02-05

小諸なう!

|  小諸なう!を含むブックマーク  小諸なう!のブックマークコメント

小諸の繁華街を撮影してみました。徒歩で行けるので(笑)

f:id:kei-go:20120205230646j:image

こことか写真に撮ればいいのかな……?

f:id:kei-go:20120205230647j:image

駅前の喫茶店とかポスター貼ってありました。

f:id:kei-go:20120205230654j:image

すげーw

f:id:kei-go:20120205230649j:image

へー

f:id:kei-go:20120205230653j:image

珈琲

f:id:kei-go:20120205230652j:image

チーズケーキ

f:id:kei-go:20120205230651j:image

こんなノートあるんだ。

f:id:kei-go:20120206112139j:image

おー

f:id:kei-go:20120206112140j:image

帰ります通勤路なんですよねw

f:id:kei-go:20120205230658j:image

ここの店、結構人いるんですよね……

f:id:kei-go:20120205230659j:image

トラックバック - http://d.hatena.ne.jp/kei-go/20120205

2012-02-04

写真の練習

|  写真の練習を含むブックマーク  写真の練習のブックマークコメント

デジカメの練習をするということで奥さんと出かけていろいろ撮って来ました。

f:id:kei-go:20120205012759j:image

やっぱり近づくのがいいですね。

f:id:kei-go:20120205012800j:image

ちょっといかな。

f:id:kei-go:20120205012801j:image

お皿を入れてみたり。

f:id:kei-go:20120205012802j:image

入れてみなかったり。

f:id:kei-go:20120205012803j:image

麻婆豆腐にトマト……!?

f:id:kei-go:20120205012804j:image

f:id:kei-go:20120205012805j:image

牛!

f:id:kei-go:20120205012806j:image

東亜プラン

|  東亜プランを含むブックマーク  東亜プランのブックマークコメント

東亜プランの特集なので買ってみました。

f:id:kei-go:20120205012808j:image

昔いただいたCD-Rを引っ張り出して聴いていました。

f:id:kei-go:20120205012813j:image

ナビの画面にいろいろ入力するよ!

|  ナビの画面にいろいろ入力するよ!を含むブックマーク  ナビの画面にいろいろ入力するよ!のブックマークコメント

何か届きました。

f:id:kei-go:20120205154115j:image

ナビにビデオ入力を増設するケーブルです。

f:id:kei-go:20120205154116j:image

じゃあ、ナビを外しましょう。

f:id:kei-go:20120205154118j:image

以前も記事書きましたが、写真のとおりツメがついているので折らないように。

f:id:kei-go:20120205154122j:image

ナビは6つのネジで外れるので簡単です。

f:id:kei-go:20120205154119j:image

背面の灰色コネクタにケーブルを接続ます

f:id:kei-go:20120205154125j:image

こうですね。

f:id:kei-go:20120205154126j:image

ナビのすぐ下に隙間があって、助手席の足元にケーブルが出せます。

f:id:kei-go:20120205154128j:image

じゃあ閉じる前に接続チェックを。

f:id:kei-go:20120205154130j:image

オーディオファンクションの項目に「VTR」が追加されます。

f:id:kei-go:20120205154132j:image

映ったー!

f:id:kei-go:20120205154131j:image

まあ、PSPゲームは画面小さくなっちゃうので……

f:id:kei-go:20120205154133j:image

グラII来たー!

f:id:kei-go:20120205154136j:image

ゲームアーカイブスPCエンジン版ですが。

f:id:kei-go:20120205154137j:image

当たり前ですが、Playstation Storeで購入したビデオとか見れます。

f:id:kei-go:20120205154138j:image

おお!

f:id:kei-go:20120205154146j:image

PSP goだから時計も表示できるんだぜ!  orz

f:id:kei-go:20120205154147j:image

konosukekonosuke 2012/02/06 10:23 いまこそTHE功夫を!

kei-gokei-go 2012/02/06 13:06 どうせなら基板稼働させたいですね……あとは車載GIMICとかw

konosukekonosuke 2012/02/06 13:08 車載フレームドイスター!

DoiDoi 2012/02/06 13:18 オーディオの代わりに基板ですね

トラックバック - http://d.hatena.ne.jp/kei-go/20120204