2012年11月21日

Arduino WOL マジックパケット リピータ「新開発環境に対応したスケッチを公開」

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

震災後、引っ越しやらなんやらで、行方不明になっていたArduinoを先日ダンボールから無事に保護。

メインマシンをWindowsのデスクトップマシンから、2年前に購入したMACBOOKホワイトをSSD化+メモリ8GBにしたことから、思い切って変更しました。

ArduinoをMACBOOKに接続しWOL リピーターのスケッチを当サイトからコピペ。

コンパイルできん。

最新の開発環境は、仕様が変更されていてUDPモジュールを内包していることがわかりました。
取り急ぎ、情報収集の後に最新の開発環境に合わせて、スケッチを修正変更しました。

※パケットアナライザでの動作は確認していますが、外部からマジックパケットを投げてターゲットマシンの電源が入ることまでは確認していません。
動いたら、コメントで報告いただけるとありがたいです。
※このスケッチの動作確認は、MACBOOKのMAC OS Xで動いているVMware Fusion上のWindows8Proでローカルテストのみを行っています。



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

#include <SPI.h>

#include <Ethernet.h>
#include <EthernetUdp.h>


// イーサネットの設定
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // Arduino のMAC address
IPAddress ip(192, 168, 0, 200); // Arduino のIP address
unsigned int localPort = 9; // Arduino の受信ポート

IPAddress targetIp(192, 168, 0, 255); // ターゲットのブロードキャストアドレスを設定
unsigned int targetPort = 8000; // ターゲットのポート番号を設定

// パケットサイズの最大値を設定
#define MAX_SIZE 192

byte packetBuffer[MAX_SIZE]; // マジックパケット用のパケットバッファ

// An EthernetUDP instance to let us send and receive packets over UDP
EthernetUDP Udp;

void setup() {
// start the Ethernet and UDP:
Ethernet.begin(mac,ip);
Udp.begin(localPort);

Serial.begin(115200);
Serial.print("Start ");
}

void loop() {
// if there's data available, read a packet
int packetSize = Udp.parsePacket();
if(packetSize)
{
Serial.print("Received packet of size ");
Serial.println(packetSize);
Serial.print("From ");
IPAddress remote = Udp.remoteIP();
for (int i =0; i < 4; i++)
{
Serial.print(remote[i], DEC);
if (i < 3)
{
Serial.print(".");
}
}
Serial.print(", port ");
Serial.println(Udp.remotePort());

// read the packet into packetBufffer
Udp.read(packetBuffer,MAX_SIZE);
Serial.println("Contents:");
for(int j=0; j<min(MAX_SIZE,abs(packetSize)); j++) {
Serial.print(packetBuffer[j],HEX);
Serial.print(" ");
}
Serial.println("");

// 受信したマジックパケットをリピート送信する
Udp.beginPacket(targetIp, targetPort);
Udp.write(packetBuffer,min(MAX_SIZE,abs(packetSize)));
Udp.endPacket();
}
delay(10);
}



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

2012年11月20日

Arduino を Windows8 に 接続

震災後の引っ越し以来、行方不明になっていたArduinoがイーサネットシールドと合体した状態で出てきました。

さっそく、MACBOOKに接続を試みました。MACへの接続については、公式ページに書いている通りで問題なし。
http://www.arduino.cc/en/Guide/MacOSX

そこでWindows8について見てみると・・・まだ説明がなかった。やってみたことを書いておきます。
Windows8のデスクトップマシンもMACBOOK のVMware FUSION 上のWindows8 も同じ方法で行いました。どちらも問題なく動いています。


NewIDE02.png

ArduinoをWindows8のマシンにつなぐと「FT 232R USB UART」と表示されます。


NewIDE03.png

ダブルクリックして、プロパティが開いたら、「ドライバーの更新」をクリック


NewIDE04.png

自動検索のほうをクリック。


NewIDE05.png

これ、結構待ちます。3分くらい???
とにかく待ちます。


NewIDE06.png

バックグラウンドでちょっと変化が・・・
でも、まだ待ちます。


NewIDE07.png

「USB Serial Converter をインストールできませんでした」
というたくさん待たされた時にありがちな表示になりますが無視します。


NewIDE08.png

USB Serial Port をダブルクリックしてプロパティを開く


NewIDE09.png

ドライバーの更新をクリック


NewIDE10.png

自動更新を選択


NewIDE11.png

正常に終了


NewIDE12.png


これで、使えるようになりました。
Arduino IDE の COMポート設定と機種を正しく設定してスケッチの書き込みができることを確認しました。

最新のArduino IDE・・・ UDPが同梱されたようですね。
Arduino WOL マジックパケット リピータのスケッチがコンパイルできませんでした。

近々、最新の開発環境「Arduino 1.0.2」に合わせたスケッチを公開します。

P.S.
Windows8の新しいスクリーンショット機能。これも地味に便利。
「Windows」キー + 「Print Screen」キー で、ピクチャフォルダの中に
新しくスクリーンショットというフォルダが作られて、そこに時系列で
自動的にファイル名が付加されPNGで保存されました。

Win8のエクスプローラーは、かなり気に入りました。
ラベル:Windows8 Arduino
posted by love4nature at 21:41| Comment(0) | TrackBack(0) | 趣味の部屋 | このブログの読者になる | 更新情報をチェックする

2012年11月11日

MACで動くWindows8は超便利その1

前の記事<Windows8に変えたら管理共有(デフォルト共有)で各ドライブを覗けなくなった。解決編>

2010年LateのMACBOOKホワイトにSSDとメモリ増設するとVMware FusionでWindows8が実用的に使えました。この動画は、その仮想Windows8上で作ってみました。


特にSSDは費用対効果抜群。体感速度は軽く5倍越え






追記
Arduinoは震災の頃から触っていないのですが、引っ越しもあってどこにしまったか・・・
探してMACにつなぎたい。そしたら再開したいな。
ラベル:Windows8 MacBook
posted by love4nature at 00:01| Comment(0) | TrackBack(0) | 趣味の部屋 | このブログの読者になる | 更新情報をチェックする

2012年11月03日

Windows8に変えたら管理共有(デフォルト共有)で各ドライブを覗けなくなった。解決編

MACBOOK(白)にWindows8Proを入れました。

MACBOOK(白)のVMWARE FUSION仮想マシンに
Windows8Proを入れて、SSDを載せてメモリを2GBから8GBに増やしました。256GBのSSDと8GBのメモリを搭載するMACBOOK(白)になりました。

   


メチャ快適です。

で、Windows8から導入されたマイクロソフトアカウントを使用したWindowsへのログインも各マシンでデスクトップの壁紙などが同期されていたことにちょっとした感動を覚えました。

何かと酷評されている8ですが、そんなに悪くないです。慣れればマウスでの操作も意外と楽。マウスの移動距離やクリック数が増える操作もありますが、フリーソフトでスタートボタンを復活で切るから問題なし。


とりあえず2種類ありますね。
http://itpro.nikkeibp.co.jp/article/NEWS/20120904/420441/
http://www.stardock.com/products/start8/

私は、Classic shellを入れて、スタートボタンとスタート画面の両方を使用しています。
正直、
スタートボタンは7の物に戻してほしいね。



愛用していた仮想CD/DVDドライブソフトAlchol52%が対応していないので動かないが、Windows8のエクスプローラーは大幅にパワーアップしていて、ISOファイルをクリックすると自動的にDVDドライブにマウントされる。地味にめちゃ便利です。

さて、本題の管理共有(デフォルト共有)ですが、今までMACからデスクトップの各ドライブに管理共有でアクセスしていたのが気が付くとユーザー名とパスワードを求めてきている。

どうやら、ログインにマイクロソフトアカウントを使用していたためか、素直にユーザー名とパスワードを入れてもつながってくれない。

結局、以下の方法でMACからWindows8マシンへの管理共有(デフォルト共有)での接続が可能になりました。

(1) 接続先、Windows8のAdministratorを有効にする。
 左下の角でマウスの右クリック。コマンドプロンプト(管理者)を開く
 次のコマンドを実行。
 net user administrator /active:yes

(2) するとAdministratorでログインできるようになるので、ログインする。コントロールパネルのユーザーアカウント設定で必ずAdministratorのパスワードを作成する

(3) Administratorをログイン画面で見えなくする。
 ファイル名を指定して実行から、「regedit」を実行し、キーを2つ作成して、その中にDWORD値を作成する。
 HKEY_LOCAL_MACHINE → SOFTWARE → Microsoft → Windows NT → CurrentVersion → Winlogon

Winlogonの下に「SpecialAccounts」という名前のキーを作る

さらにSpecialAccountsの下に「UserList」という名前のキーを作り、その中に「Administrator」という名前でDWORD値を作成すると作業完了です。

これでMACBOOKのOSXでFinderの「移動」→「サーバーへ接続」で「smb://(Win8のコンピュータ名またはIPアドレス)/c$」とすると、無事に作業をしたwindows8マシンのcドライブをフルコントロールで触れます。

別にAdministratorsに属する別のローカルアカウントを作ってそれでもかまいません。

Windows8。思っているより使えば快適。今ならアップグレードも安いし、DVDが再生できない問題も、無料キャンペーン中の「MEDIA CENTER PACK」を入れれば解決する。企業での導入は時期尚早だと思うが、個人ユーザーなら入れたほうがいいと思う。

http://www.forest.impress.co.jp/docs/news/20121026_568818.html

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

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