2009年11月27日

avrdude: stk500_getsync(): not in sync: resp=0x00

最近、ハマっている8bitワンボードマイコン「arduino Duemilanoveですが、プログラム書き込みの際にタイトルのようなエラーが出新規書き込みができなくなってしまった。正確には下記のエラー

avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

既に書き込んでいるプログラムは動いているので、壊れたわけではなさそう。あくまで新規書き込みができない。

日本語、英語ともにいろいろとググッては見た。同じ問題で困っている人がたくさんいるようだが、決定的な解決方法が見当たらない。

しかし、イーサネットシールドを取り付けると直ってしまった。

ネット上で見つかった解決方法はこんな感じ・・・ATMEGA328のチップを外すと直るとか、しばらく使わずにおいておくと直っていたとか、IDEの再起動で直ったとか、シリアルポートのドライバを再インストールで直ったとかありました。

ちなみにどれを試しても直らなかった。試してないけど
ATMEGA328のブートローダー再書き込みで直ったという報告もありました。

今回のケースで、もちろんマイコンボードの選択ミスはあり得ない。何だったのだろうと思っていたら、状況再発。

イーサネットシールドを取り外した後、また同様のエラーが止まらない。いろいろやってみたが、十分に調べる前にまた直ってしまった。今度は、イーサネットシールドなしでも復旧。何をやったか一応メモしておく。

「arduino Duemilanove」のリセットボタンを押しながら、USBケーブルを抜いて、さらに押しながら再度挿入。

リセットボタンは、かなり長く押すのがコツ。10秒とか

とりあえず今回はこれで直った。う〜ん・・・結局わからん。

これだけは言える。とにかく直った。
今はそれだけでいいのだ。

追記、上記のとおり一度直った後、かなり時間を空けて、別の基板で再発、やはり
リセットボタンを押しながら、USBケーブルを抜いて、さらに押しながら再度挿入で普及しました。

2010年2月現在。私の場合。やはり、この方法で直っています。

電気的な問題っぽいですね。ところで、皆さんこの方法で直ってますか?
ラベル:Arduino
posted by love4nature at 23:00| Comment(13) | TrackBack(0) | 趣味の部屋 | このブログの読者になる | 更新情報をチェックする

arduino Wake On LAN リピーターの作成

2012年11月22日更新:
 arduino WOL リピータのスケッチを最新の開発環境用に修正・更新


※なんだかよく分からないけど、arduino WOLリピーターを作りたい方は、こちらの初心者用の説明をどうぞ

職場のネットワークに勝手にルーターを追加することはできませんが、既存のルーターのポートを開けるくらいはできる。

Wake On LAN リピータ」を日本で買って送ってもらうよりは、こちらでも購入可能な「arduino+ethernet shield」を選択したわけです。

リピータ機能のみのものとそれに加え、可変抵抗器で登録した端末からターゲットを選択して押しボタン押下でマジックパケットを送信する機能を持たせたものを作りました。

この「arduino WOL リピーター」のIPは、192.168.1.200となっていますが、任意で変更してください。受信ポートは、7番になっていますが、マジックパケット送信アプリに応じて任意で変更してください。

私は、sndmagic (For Windows NT) Latest version 0.2 を使わせてもらっています。下記サイトから入手可能
http://www.st.rim.or.jp/~yumo/pub/sndmagic_chglog.html

このソフトを使う場合は、sndmagic.exeとmagic.exeをパスがとおっている場所(C:\Windows\system32)などにコピーして使うと、バッチファイルのクリックのみで、対象PCの遠隔電源オンが可能で便利です。

使い方は、対象パソコンがWOLに対応している場合、たとえば自宅のPCから、職場のグローバルIPのポート7番(前述の
sndmagicはポート7番に飛ばします)にマジックパケットを飛ばします。問題なく対象PCの電源が入ります。

当然ですが、
職場のルーターには、UDPの7番ポートをarduino WOL リピーター(192.168.1.200)に転送する設定が必要です。

対象パソコンがWOLに対応していない場合は、
arduino WOL リピーター & スイッチャー」をご覧ください。

以下にスケッチです。「arduino WOL リピーター」は、bjoern / arduino_oscというライブラリを利用してUDPを取り扱っています。リンクページからarduino_osc-tip.zipというファイルをダウンロードして、中にあるEthernet及び
Stringフォルダのファイルを、arduino IDEのフォルダ「\hardware\libraries\Ethernet」及び「\hardware\libraries\String」にコピーしてください。

あとは「arduino」と「ethernet shield」を合体させて、このスケッチを転送するだけで動作します。


// Wake On Lan リピーター
// http://yutakalife.net/article/133960795.html
// 販売などの商用利用はご遠慮ください
// Copyright love4nature All Rights Reserved.

#include <WString.h>
#include <Ethernet.h>
#include <UdpRaw.h>

// イーサネットの設定
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC address
byte ip[] = { 192, 168, 1, 200 }; // Arduino のIP address
byte gw[] = { 192, 168, 1, 1 }; // Gateway IP address
int localPort = 7; //local port to listen on

// ターゲットのブロードキャストアドレスを指定
byte targetIp[] = { 192, 168, 1, 255};
int targetPort = 8000;

#define MAX_SIZE 192
// パケットサイズの最大値を設定
byte packetBuffer[MAX_SIZE]; // 受信パケット用バッファ
int packetSize; // 受信パケットのサイズが格納される
byte remoteIp[4]; // 送信元のIPアドレスを格納
unsigned int remotePort; // 送信元のポート番号を格納

int i;

void setup() {

Ethernet.begin(mac,ip,gw);
UdpRaw.begin(localPort);
Serial.begin(38400);

}

void loop() {

// if there's data available, read a packet
if(UdpRaw.available()) {
packetSize = UdpRaw.readPacket(packetBuffer,MAX_SIZE,remoteIp,(uint16_t *)&remotePort);

Serial.print("Received packet of size ");
Serial.println(abs(packetSize));

Serial.print("From IP ");
for(i=0; i<3; i++) {
Serial.print(remoteIp[i],DEC);
Serial.print(".");
}
Serial.print(remoteIp[3],DEC);

Serial.print(" Port ");
Serial.println(remotePort);

if(packetSize < 0) {
// if return value <0 the packet was truncated to fit into our buffer
Serial.print("ERROR: Packet was truncated from ");
Serial.print(packetSize*-1);
Serial.print(" to ");
Serial.print(MAX_SIZE);
Serial.println(" bytes.");
}

Serial.println("Contents:");
for(i=0; i<min(MAX_SIZE,abs(packetSize)); i++) {
Serial.print(packetBuffer[i],HEX);
Serial.print(" ");
}
Serial.println("");

// マジックパケットを送信
UdpRaw.sendPacket(packetBuffer,packetSize,targetIp,targetPort);
Serial.println("Start port forwarding to broadcast address:");
for(i=0; i<3; i++) {
Serial.print(targetIp[i],DEC);
Serial.print(".");
}
Serial.print(targetIp[3],DEC);
Serial.println("");
Serial.println("Done!");
}
// 0.01秒待つ
delay(10);

}
posted by love4nature at 01:00| Comment(3) | TrackBack(0) | 趣味の部屋 | このブログの読者になる | 更新情報をチェックする

2009年11月26日

WOLマジックパケットのルーター越え

※なんだかよく分からないけど、arduino WOLリピーターを作りたい方は、こちらの初心者用の説明をどうぞ

WOLマジックパケットのルータ越えに立ちはだかる壁とは、まさにルーターです。

最近のルーターは、ブロードキャストアドレスへのポート転送を許可しないのが普通のようですね。

WOLマジックパケットのルータ越えを可能にする方法は、3つしかありません。
1)WOLに対応していると謳っているルーターを手に入れる。

業界初11n/gハイパワーで450Mbps(規格値)を実現。さらに高速・広範囲でつながる無線LAN,ゲスト...業界初11n/gハイパワーで450Mbps(規格値)を実現。さらに高速・広範囲でつながるバッファロー無線LANルーター


2)公式にWOLに対応していなくても設定で対応させられる機種を使う。たとえば・・・
I・O DATA/アイ・オー・データ WN-G54/R4 IEEE802.11g/b 無線LANルーター
 この場合の設定とは、「PCデータベース」にブロードキャストアドレスを登録することです。しかし、IPアドレス固定設定のところにxxx.xxx.xxx.255のような
ブロードキャストアドレスを入力した時点でJavaScriptによりエラーが表示されます。

そう、最後の255を入力する前にブラウザの
JavaScript設定を無効にすれば入力が可能です。そしてJavaScript設定を有効に戻した後「PCデータの追加」ボタンを押してみてください。問題なくブロードキャストアドレスを登録することができます。

JavaScript設定のオン/オフによってブロードキャストアドレスを登録できる機種は他にもあると思います。

3)WOLで電源を入れたいPCのネットワーク内にマジックパケットを送信または転送できる装置を接続する。
例えばこんな商品「Wake On LAN リピータ

おまけで、もうひとつ紹介
4)ルーターのARPテーブルが、PCの電源が切れていても変更または消去されないような設定を行う。
これはあまりお勧めの方法ではありません。続きはこちら


「Wake On LAN リピータ」を買うと解決しますが、同じ程度の出費なら、もったいない。

だって、「Wake On LAN リピータ」には、ただそれだけの機能しかないのですよ。「arduino+ethernet shield」なら、他にもいろいろできちゃいます。同じ金額ならこっちのほうがお得???


今回、arduino+ethernet shieldで作ったのは、上記(3)に該当するものです。
「arduino+ethernet shield」ならWOL未対応のパソコンでもマジックパケットで外部ネットワークから電源を入れることが簡単できてしまうのです。このarduino Wake On LAN リピーター & スイッチャー」を使えば。

WOLに対応しているパソコンでも前回異常終了時などにはマジックパケットで電源が入らないことがあります。逆に再起動もできないくらいおかしくなってしまっても、電源ボタン長押しの強制切断に対応しているので、電源のオフ/オンが可能です。

そのため「
arduino Wake On LAN リピーター & スイッチャー」は、WOLに対応しているパソコンでも有効に使えます。長期で家を留守にするときなどは重宝すると思いますよ。

出費するなら安いほうがいいときは、(2)で紹介したルーターを買ってルーター2段重ねで対応したほうが安上がりです。紹介した「I・O DATA WN-G54/R4」は3千円程度で新品を購入できます。

また、私はWN-G54/R3を持っているのですが、同じことができます。これを中古で手に入れればさらに安上がり。

しかし、あえて「arduino+ethernet shield」で作ってみました。実は、私の職場で必要になったので作ってみたのです。

続きは明日

posted by love4nature at 00:00| Comment(0) | TrackBack(0) | 趣味の部屋 | このブログの読者になる | 更新情報をチェックする

2009年11月25日

WOLリピーター(インターネット経由でパソコンの電源をオン)

※なんだかよく分からないけど、arduino WOLリピーターを作りたい方は、こちらの初心者用の説明をどうぞ
マイコンボード「arduino」

マイコンボード「arduino」が届いて3週間。やっと慣れてきました。

「ethernet shield」も届き何か実用的なものを作ってみようと思い立ち・・・第一作目が「Wake On Lan リピーター」

インターネット経由で自宅のパソコンの電源を職場から、逆に職場のパソコンを自宅から・・・電源を入れるだけの単純なことですが、実は奥が深かったりする。

有線接続でLANにつながっていることが前提ですが、電源が切れているパソコンは、ネットワークから「MagicPacket」という特殊なパケットを受信することで自身の電源を入れられます。

ところが・・・たいていの場合、立ちはだかる壁があります。

続きは明日

posted by love4nature at 02:00| Comment(0) | TrackBack(0) | 趣味の部屋 | このブログの読者になる | 更新情報をチェックする

大人の趣味と子育ての両立

2歳10ヶ月の息子は私の古い趣味である「電子工作」に強い興味があるようです。マイコンボード(arduino)にサーボモーターやセンサーなどをつなげて作った実験機に大変興味を持って遊んでいます。

そして彼を観察していると、それで遊ぶことはもちろんですが、私がそれを作っている過程をとても楽しそうに見ながら邪魔をするわけです。(笑)

そう、彼は参加したいのです。ここで親は「邪魔するな」などと怒ってはいけません。怒ると彼の自立の邪魔をしてしまう。怒らずに説明します。

聞いているかどうかはお構いなしにひたすら説明しちゃいます。この場合は「もう少し待ってくれれば面白いことができると・・・」

息子とarduino

そして、最近息子に言った言葉はこれです。

「うちはもうおもちゃを買いません。その代わりに自分たちでおもちゃを作るために必要な材料や工具、測定機材は高くても買います。」


マイコンボードを使って作るおもちゃ教育作戦・・・

うまく導ければ子供に電気回路、電子回路、プログラミング、パソコン、そして数学の自立学習に導けるかもしれません。

もちろん親によるサポートは必須ですが・・
posted by love4nature at 01:00| Comment(0) | TrackBack(0) | 子育て日記 | このブログの読者になる | 更新情報をチェックする

2009年11月24日

第一子誕生3

ニュージーランドでの出産は経済的にとても楽な感じがします。
日本の場合は、出産一時金がありますが、国民健康保険に加入していないと支給対象にならないようなので厳密には、無料ではありませんね。

地方自治体が細かいサービスを提供している場合があるようなので日本の出産は、どこに住んでいるか、その親の職業環境や出産事情、その他によって大きく出産にかかる費用(実質負担)が変わってくるようです。

地域格差ってやつですね。
余談ですが地域格差というと、よく槍玉にあがる最低賃金。
ニュージーランドでは、最低賃金も全国共通で「12.5ドル/時」です。

日本の妊娠・出産に関する支払いは、終わってみないと総額でいくらかかるか分からない不安要素がつきまとう気がします。

また、日本の福祉は何かに加入していないと受けられないとか、生活保護については受ける時に「親戚に援助を当たってみましたか?」などと役人が聞いたりする陰湿なケースもあるようです。

役人に陰湿さは、どの国にもそんな人がいると思いますが・・・

日本はまだ福祉先進国とはいえないですね。決して先進国とは思えないニュージーランドのほうが、このあたりは進んでいると感じます。
posted by love4nature at 01:00| Comment(0) | TrackBack(0) | 子育て日記 | このブログの読者になる | 更新情報をチェックする

2009年11月23日

第一子誕生2

この国での出産は基本的に無料で、一部の検査には費用がかかりますが、この費用も確か90%くらいは国の補助金でカバーされました。

ただし、日本とは違いエコーテストは妊娠期間中に2回しかありません。1回あたり40〜50ドルを支払います。私たちは自宅出産を選択したのでなぜか1回でした。

本人の希望による3回以上のテストは、全額を負担しなければなりません。福祉でカバーされる為か、各種検査は必要最低限になっているようです。

検査の回数や種類は、日本の足元にも及びません。このあたりは、少し不安がありました。

しかし、自宅出産専門の助産婦さんが妊娠初期は月一回、中期は2週に一回、後期には週に一回のペースで自宅に来てくれるのでこれには安心しました。

また、産後も週に一回のペースで6週間来てくれます。この助産婦さんは、メインの方とサブの2人体制で面倒を見てくれますが、最後まで助産婦さんに料金を支払うことはありません。

妊娠、出産に関する経済的なことは、ずいぶんと楽でシンプルでした。
posted by love4nature at 02:00| Comment(0) | TrackBack(0) | 子育て日記 | このブログの読者になる | 更新情報をチェックする

2009年11月22日

第一子誕生

2007年1月に無事に新しい家族を迎えることが出来ました。
第一子誕生です。予定日は1月15日だったのですが、少し早く生まれました。

妻の希望もあり、自宅での出産を選択しました。

私たちが住むニュージーランドでも病院での出産が一般的です。

自然派志向の妻は、病院での病院の都合による出産を嫌い、自宅で助産婦さんに手伝ってもらうというスタイルを強く希望していました。

同時にそれは、私の立会いが必要になるものなので、私も出産から約4週間の有給休暇をとって妻とともに出産に挑みました。

同じニュージーランドの出産でも病院での場合と自宅での場合は、ずいぶん違いがあるようでしたが、基本的に妊娠から出産までにかかる費用はすべて無料です。

お金をほとんど支払うことなく子供を産むことが出来ました。
posted by love4nature at 01:00| Comment(0) | TrackBack(0) | 子育て日記 | このブログの読者になる | 更新情報をチェックする

2009年11月20日

はじめに

子育てからは、本当に得るものが多い。

たとえば大人の世界のヒューマンマネジメントを学べちゃったりします。

子育て中の人、子供が欲しい人、できちゃった人、出産予定の人、
子供は欲しくないし、子育てとは無縁だと思っている人・・・

本当に子育てから得るものは大きい。

何が得られるかってぇ?

自分の成長ですよ。

我が家では、第一子が誕生してまもなく3年を迎えようとしています。
まずは、しばらく妊娠から振り返ってみたいと思います。
posted by love4nature at 01:03| Comment(0) | TrackBack(0) | 子育て日記 | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。