約 5,342,706 件
https://w.atwiki.jp/arduino/pages/34.html
計画 朝になったら自動でカーテンを開ける目覚まし時計を作りたい。 カーテンの端っこにひもを引っかけて朝になったらタイマーが作動してひもを巻き取りカーテンが開くという仕組み。 材料 Arduino2009 モータードライバ BD6211F ←いただきもの 6速ギヤボックスHE リアルタイムクロック ブレッドボード ひも&フック(カーテンを引っ張る) 円柱ゴム(ひもを巻き取る) 木の板&ねじ 抵抗とかコンデンサとか配線材とか 消費電流 RE-260 http //www.mabuchi-motor.co.jp/motorize/branch/b_0100.html 適正電圧適正負荷で700mA 負荷によって変わるだろうから動作させながら実測する! 6速ギヤボックスHE 広いギヤ比に組み替えられるのでとりあえずこれにした。 クラッチギアが付いているので大きい負荷がかかっても少し安心。 完成品は mega88 Arduino内蔵クロックで動かす。 過電流で電源を止めるやつをつける。ポリスイッチ? 電源 開発時はUSB 5V ACアダプタ 5V or 3V http //www.switch-science.com/trac/wiki/BD62xx-Basic モーターの定格電圧が信号系(マイコン)の電源電圧よりも低い場合は困ってしまいます。 モーターによっては、PWMで一定のデューティよりも上げないように注意すれば大丈夫な場合があります。 arduinoは3Vで動くのか? モータとArduinoの電源が同じでOK? リアルタイムクロック 秋月の時計IC バッテリバックアップしたい。 ユーザインターフェイス 正回転/逆回転ボタン タイマー時刻の設定/ロータリエンコーダ? 7セグ時計表示 巻き取り終了の検出 マイクでクラッチの音? 一定の秒数の作動でよい? 製作 (1)ざっと組み立て ギアボックス 巻き取り部取り付け ギアボックス&ブレッドボードを板に固定 Arduinoを固定 モータドライバにピン取り付け (2)モータードライバの実験(2009/4/18) 正転/逆転を実験 スピード&パワーを確認 消費電流を確認 スイッチサイエンスさんのスケッチをちょっと改造で動作OK。 http //www.switch-science.com/trac/wiki/BD62xx-Basic int FIN = 5; int RIN = 6; int LED = 13; int OFFSET = 0.7 * 256 / 5; // analogに255を出したら5V = 0.7V int MAX = 3.0 * 256 / 5 - OFFSET; // RE-260なので3V 3.0V-0.7V = 2.7V int degree10 = 0; int i; void setup() { Serial.begin(300); pinMode(FIN, OUTPUT); pinMode(RIN, OUTPUT); pinMode(LED, OUTPUT); for(i=0; i 5; i++){ digitalWrite(LED, HIGH); delay(200); digitalWrite(LED, LOW); delay(200); } } void loop() { delay(10); degree10 += 3; degree10 %= 3600; long v = int(sin(degree10 * 2 * PI / 360 /10) * MAX); Serial.println(v); if (v 0) { analogWrite(FIN, v + OFFSET); // v(0V..2.7V) OFFSET(=0.7V) なので 0.7V..3.0V analogWrite(RIN, 0); } else if (v 0) { analogWrite(FIN, 0); analogWrite(RIN, OFFSET - v); // v(-0V..-2.7V) OFFSET(=0.7V) なので 0.7V..3.0V } else { analogWrite(FIN, 255); analogWrite(RIN, 255); } } 正回転・逆回転をなめらかに繰り返す。 OFFSETは回転開始の最低電圧。 正 0.7V = 0.8V = ... = 2.9V = 3.0V = 2.9V = ... 0.7V 逆 0.7V = 0.8V = ... = 2.9V = 3.0V = 2.9V = ... 0.7V を繰り返す。 ノイズ? たぶんモーターからのノイズのせいでシリアル通信が途中でとぎれてしまう。 まともにデバッグできないと困るので対策が必要かもしれない。 http //www.picfun.com/motorframe.html モーターの端子と金属ケースの間にコンデンサをいれるといいらしい。 (3)リアルタイムクロック確認(2009/4/19) http //nekosan0.bake-neko.net/connection_rtc.html nekosanのコードでOK。 よく考えたら毎日同じ時間に作動させる必要はなくて、「6時間後に作動」でいいわけだからRTCいらないや。 プログラムも簡単だ。内蔵RCで誤差はどれぐらいか?外部クリスタルつけたら誤差はどれくらい? (4)時計表示(2009/4/19) 7セグ2桁で作動までの残り時間を出せばいい。上の桁が時間、下の桁が10分単位で十分。 いや、もっと簡単にLEDの点滅回数でいい。5回点滅なら5時間。 (5)モーターから音を出す。 普通にモーターを回すときでもPWMの周波数で微妙に音が出てしまう。 てことは、適当にメロディーになるようにモーターに信号を与えたら・・・ 成功! スピーカーなしでBEEP音によるフィードバックが可能になった。 ArduinoのPWM周波数 http //www.musashinodenpa.com/arduino/ref/index.php?f=0 pos=1921 によると PWM信号の周波数は約490Hzです。 http //www.arduino.cc/en/Tutorial/PWM には Arduino s PWM frequency at about 500Hz とある。 しかし、http //www.rohm.co.jp/products/databook/motor/pdf/bd621x_series-j.pdf には 20k〜100kHz を入力しなさいとある。 とりあえず完成 黄色ボタンを押すたびに、「ひも出し」「ひも巻き取り」「停止」 緑ボタンはタイマー時間設定。1時間単位。押すたびにモーターから音を出して操作を確認できる。 タイマー作動後は小鳥のさえずりっぽい音を出してさわやかに目覚める。 /* Curtains Timer */ #include Debounce.h // http //www.arduino.cc/playground/Code/Debounce int FIN = 5; int RIN = 6; int LED = 13; int SW_YELLOW = 3; int SW_GREEN = 2; Debounce sw_yellow = Debounce(20, SW_YELLOW); Debounce sw_green = Debounce(20, SW_GREEN); int motorMode = 0; // 0 STOP,1 right,2 left int timerMode = 0; int timerHour = 0; // 0 0FF, 1 1h ... 12 12h int ledWait = 0; // blink interval. unsigned long lastPushedMs = 0; unsigned long alarmStartMs = 0; unsigned long alarmStopMs = 0; unsigned long motorStopMs = 0; unsigned long MOTOR_RUN_DURATION_MS = 60000; unsigned long SNOOZE_MS = 180000; unsigned long WAIT_MS_PER_PUSH = 3600000; void setup() { int i; Serial.begin(9600); pinMode(FIN, OUTPUT); pinMode(RIN, OUTPUT); pinMode(SW_YELLOW, INPUT); pinMode(SW_GREEN, INPUT); digitalWrite(SW_YELLOW, HIGH); // pull-up digitalWrite(SW_GREEN, HIGH); // pull-up // boot blink sound!! for(i=0; i 3000; i++){ analogWrite(FIN, 255*1/5); analogWrite(RIN, 0); delayMicroseconds(-i/10+350); analogWrite(FIN, 0); analogWrite(RIN, 255*1/5); delayMicroseconds(-i/10+350); #define LED_WAIT 300 if(i%LED_WAIT==0){ if(i/LED_WAIT % 2 == 0){ digitalWrite(LED, HIGH); }else{ digitalWrite(LED, LOW); } } } } void loop(){ motor_loop(); timer_loop(); } void motor_loop() { if(sw_yellow.update() sw_yellow.read()==LOW) { motorMode = (motorMode+1) % 3; motorStopMs = millis() + MOTOR_RUN_DURATION_MS; } switch(motorMode){ case 1 analogWrite(FIN, 255*3/5); analogWrite(RIN, 0); break; case 2 analogWrite(FIN, 0); analogWrite(RIN, 255*3/5); break; default analogWrite(FIN, 0); analogWrite(RIN, 0); break; } if((motorStopMs!=0) (motorStopMs millis())){ motorMode = 0; motorStopMs = 0; } } void timer_loop(){ int i; int pushed = 0; if(sw_green.update() sw_green.read()==LOW){ pushed = 1; lastPushedMs = millis(); } if(timerMode==0){ // nop ledWait = 300; if(pushed){ motorBeep(100, 100); motorBeep(150, 100); motorBeep(200, 100); timerMode = 1; } }else if(timerMode==1){ // setting if(pushed){ timerHour = (timerHour+1)%13; int beepDelay = 600; for(i=0; i timerHour; i++){ beepDelay = beepDelay*20/23; }; motorBeep(beepDelay, 100); if(timerHour==0){ delay(50); motorBeep(beepDelay, 100); } //Serial.println(timerHour); } if((1 =timerHour) (lastPushedMs+10000 millis())){ int beepDelay = 600*20/23; for(i=0; i timerHour; i++){ beepDelay = beepDelay*20/23; motorBeep(beepDelay, 100); delay(100); } alarmStartMs = millis() + timerHour*WAIT_MS_PER_PUSH; //Serial.println(timerHour); timerMode = 2; // goto waiting } ledWait = 0; }else if(timerMode==2){ // waiting ledWait = 2000; if(alarmStartMs millis()){ for(i=0; i 10; i++){ delay(50); motorBeep(100, 100); } alarmStopMs = millis() + MOTOR_RUN_DURATION_MS; motorStopMs = 0; motorMode = 2; timerMode = 3; // goto alarm } //if(millis()%1000==0){ Serial.println(alarmStartMs-millis()); } }else if(timerMode==3){ // alarm!! ledWait = 100; if(alarmStopMs millis()){ for(i=0; i 3; i++){ delay(50); motorBeep(600, 100); } motorMode = 0; timerMode = 4; // goto stop } //if(millis()%1000==0){ Serial.println(alarmStopMs-millis()); } }else if(timerMode==4){ // stop. ledWait = 4000; if(pushed){ motorBeep(700, 500); } if((millis()%SNOOZE_MS)==0){ for(i=10+random(10); 0 =i; i--){ cheep(10+random(50), 100+random(80), 10+random(10), 100+random(300)); } } } // LED 0 OFF, 1+ Nms blink digitalWrite(LED, LOW); if(0 ledWait (millis()/((ledWait+1)/2)%2)==0){ digitalWrite(LED, HIGH); } } // beep from motor void motorBeep(int beepDelay, int lenMs) { digitalWrite(LED, HIGH); unsigned long breakMs = millis()+lenMs; for(;;){ analogWrite(FIN, 255*1/5); analogWrite(RIN, 0); delayMicroseconds(beepDelay); analogWrite(FIN, 0); analogWrite(RIN, 255*1/5); delayMicroseconds(beepDelay); if(breakMs millis()){ break; } } analogWrite(FIN, 0); analogWrite(RIN, 0); digitalWrite(LED, LOW); } // a cheeping little bird void cheep(int start, int end, int sped, int dely) { int i; for(i=start; i end; i+=sped){ motorBeep(i, 10); } delay(dely); } (6)Arduino mega88 (TODO) Arduino2009は他の実験でも使いたいので格安「Arduino mega88 250円」で置き換える。
https://w.atwiki.jp/arduino/pages/33.html
Arduino戦車(未完成) 材料 Arduino2009 モータードライバTA7291P ダブルギヤボックス トラック&ホイールセット ユニバーサルプレート(2枚セット) 消費電流 ダブルギヤボックスに2つ付いているFA130というモーター http //www.1999.co.jp/10009013 ●適正電圧(V)1.5 ●適正負荷(トルク・g-cm)4.0 ●適正電圧・適正負担荷時の回転数(r.p.m.)6,400 ●適正電圧・適正負担荷時の消費電流(mA)500 モーター2個なので1A。流しすぎたら死ぬ。 電源 FON2201の内部から+7.5Vを引き出しVinに入れる 3.3Vを引き出しTrevaの電源につかう→Arduinoも3.3V出せる FONでインターネット戦車 ArduinoとFon 『TwitterBotをつくりました。Twitterで操作するロボット。』っていうネタなんだがいつできることやら。 センサー類 カメラ Treva 距離センサ 未完成メモ Arduino配線 Arduino 接続先 色 Vin FON 7.5V 赤 GND FON 黒 GND ブレッドボードGND 黒 5V ブレッドボード5V 赤 0 RX FON内部 緑 1 TX FON内部 青 5 モーターA 信号1 青 6 モーターA 信号2 緑 7 ボタンスイッチ1 黄 8 ボタンスイッチ2 緑 9 モーターB 信号1 青 10 モーターB 信号2 緑 モータードライバTA7291Pの配線 1 GND 2 モータ 3 NC(接続しない) 4 +5V 5 PWM信号←Arduino 6 PWM信号←Arduino 7 +5V 8 +5V 9 NC(接続しない) 10 モータ
https://w.atwiki.jp/arduino/pages/35.html
color激安Arduinoの作り方2→http //www15.atwiki.jp/arduino/pages/56.html mega88 or mega88Pでarduinoを作ります。 そのうちmega8やmega644もarduino化したい。 材料Arduino Duemilanove AVR mega88 or mega88P 小さいブレッドボード&配線材&LED Arduino 015 mega88を登録する ブートローダの準備ブートローダのソースコード編集 ブートローダをビルドする ブートローダを焼くDuemilanoveとmega88のピンの対応 ブレッドボード&mega88とDuemilanoveの接続の手順 ブートローダを焼くmega88 mega88p スケッチを実行するシリアル通信の方法DuemilanoveをUSBシリアル変換機として使いたい ブートローダ無しでスケッチを直接書き込むmega88チップの初期化 スケッチをビルド Arduino Duemilanoveとの違いプログラムサイズ メモリ クロック 参考サイト TODOmega8 200円 材料 Arduino Duemilanove 母艦として。 AVR mega88 or mega88P mega88P 250円 http //akizukidenshi.com/catalog/g/gI-02268/ mega88 残り物 小さいブレッドボード&配線材&LED EIC-301 150円 http //akizukidenshi.com/catalog/g/gP-00313/ EIC-801 250円 http //akizukidenshi.com/catalog/g/gP-00315/ Arduino 015 mega88を登録する (todo) ブートローダの準備 ブートローダのソースコード編集 (todo) ブートローダをビルドする (todo) ブートローダを焼く Duemilanoveとmega88のピンの対応 http //arduino.cc/en/Main/ArduinoBoardDuemilanove http //arduino.cc/en/uploads/Main/arduino-duemilanove-schematic.pdf Duemilanove mega88 D0(RX) 2 D1(TX) 3 D2 4 D3 PWM 5 D4 6 D5 PWM 11 D6 PWM 12 D7 13 ----------- ----- D8 14 D9 15 D10 16 D11 17(MOSI) D12 18(MISO) D13 LED 19(SCK) GND 8,22 AREF 21 ----------- ----- A0 23 A1 24 A2 25 A3 26 A4 27 A5 28 ----------- ----- RESET 1 3V3 --- 5V 7,20 GND GND GND GND ----------- ----- (XTAL1) 9 (XTAL2) 10 ブレッドボード&mega88とDuemilanoveの接続の手順 ブレッドボードにmega88をさす Vccラインとarduinoの5Vを接続 GNDラインとarduinoのGNDを接続 pin7とVccを接続 pin22とGNDを接続 pin22とpin8を接続(チップを乗り越える) pin20とpin7を接続(チップを乗り越える) pin18とarduinoのX3 1 pin19とarduinoのX3 2 pin17とarduinoのX3 3 pin1とarduinoのX3 4 ブートローダを焼く BitBang Mode AVR-Writer on Macを参照。 mega88 (チップ消去) ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv -B 4800 \ -e (fuse書き込み[L E2,H DD,E 00]) ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv -B 4800 \ -U lfuse w 0xE2 m -U hfuse w 0xDD m -U efuse w 0x00 m (ブートローダ書き込み) ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv \ -U flash w ATmegaBOOT_168_atmega88_8MHz.hex i (ブートローダ領域をロック[L 0F]) ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv \ -U lock w 0x0F m 参考 http //hwhack.blogspot.com/2009/03/arduino-13-atmega88.html mega88p ./mega88pの場合 スケッチを実行する ブートローダが焼けたら立派な激安Arduino。 あとは、RX,TXにTTLレベルでのシリアル通信すればいい。 シリアル通信の方法 USBシリアルケーブル+レベル変換 Duemilanoveのシリアル変換チップ UP-12Cを買う などがある。 DuemilanoveをUSBシリアル変換機として使いたい ここはなんとかDuemilanoveでやりたい。 Arduinoの開発環境でmega88uinoにアップロードしたい。 それがダメならavrdudeからhexをカキコみたい。 mega88uinoのリセットは手動で我慢するとしても、 シリアルポートを開いたときにDuemilanoveが自動的にリセットしてしまうので Duemilanove搭載のブートローダが動作してしまう。 auto resetを無効にするには、 Duemilanove基板のDTRのパターンを切る→あとで面倒 avrdude(かドライバ?)がDTRを使わない/送信しないようにする http //www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1204641836 avrdudeを改造かな。 DTRしないオプションをつける シリアルポートを開いてからDuemilanoveのブートローダの待ち時間分、通信をまったく無視するオプションを付ける とか。 めんどくさい。UP-12C買った方が良さそうだ。 ブートローダ無しでスケッチを直接書き込む ブートローダの分、大きなスケッチを書き込むことができる。 mega88 チップの初期化 (チップ消去) ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv -B 4800 \ -e (fuse書き込み[L E2,H DD,E 01]) ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv -B 4800 \ -U lfuse w 0xE2 m -U hfuse w 0xDD m -U efuse w 0x01 m スケッチをビルド ArduinoエディタのメニューTools- Board- ATMega88(8MHz)を選択して、転送ボタンを押す。 エラーになるがスケッチのフォルダのappletフォルダのなかに*.hexができている。 これを書き込む。 (プログラム書き込み) cd applet ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv \ -U flash w Wiki_Hotal.hex i Arduino Duemilanoveとの違い mega168/mega328/mega88P/mega88/mega8/mega644の違い。 プログラムサイズ メモリ クロック 参考サイト http //www.geocities.jp/arduino_diecimila/obaka/project-2/ http //bird.dip.jp/mt/archives/2008/04/19/1649.html http //hwhack.blogspot.com/2009/01/arduino88.html http //72.14.235.132/search?q=cache imZpo9p6XZIJ isi.kicks-ass.net 8080/isi/bakilog-2.0/isiduino-mini+section-start%3D.text%3D0x1800 cd=9 hl=ja ct=clnk gl=jp TODO mega8 200円 http //akizukidenshi.com/catalog/g/gI-02868/ これも使える?
https://w.atwiki.jp/monosepia/pages/7320.html
音楽 / 音 / 396Hz / 417Hz / 432Hz / 528Hz / 639Hz / 741Hz / 852Hz / 963Hz / 周波数帯別生体反応 ※440Hz ● ソルフェジオ周波数の真実pdf ● ソルフェジオ周波数の絶大な効果に潜む危険とは? 「セレンディピティ」より ● 【まとめ】ソルフェジオ周波数とは?徹底的に調べてみた! 「SOUNDTECH LABO」より ■ ジョン・レノンの曲に DNA を修復するといわれるソルフェジオ周波数 528Hz コード「だけ」で作られていたものがあることに気づいた日の少し前に「宇宙の周波数」と言われる 432Hz を示すクロップサークルが発見されていた 「In Deep(2014.8.26)」より (※ 前後略、詳細はブログ記事で) / 396 Hz・・・トラウマ・恐怖からの解放 417 Hz・・・変容の促進 528 Hz・・・DNA の修復 松果体の石灰化を消失させる力? https //www.youtube.com/watch?v=mD0DmtQAfWo / https //www.youtube.com/watch?v=uHAi-GmOz74 t=92s 741 Hz・・・表現力の向上 852 Hz・・・直感力の覚醒 963 Hz・・・高次元、宇宙意識とつながる しかし、いろいろな記述があります。たとえば、マドモアゼル・愛さんのページには以下のように記されています。 396 Hz・・・罪の意識やトラウマからの解放 恐怖の解消 417 Hz・・・変化に対する恐怖を取り除く 変化の促進 528 Hz・・・奇蹟の周波数。変容と無限の可能性 639 Hz・・・あらゆるものとのつながり 関係性の修復 741 Hz・・・問題を解決する力 表現力 852 Hz・・・直感力 自己の魂を知る / 432 Hz・・・宇宙の周波数であり、振動である https //www.youtube.com/watch?v=IU13sdrLQ-M 宇宙の周波数と異なる現在の「基準周波数」 なんだかここまでで長くなってしまいましたが、冒頭に、古代エジプトのホルス神の目を象徴的に描いた「ホルスの目」のデザインのクロップサークルの写真を載せているのですが、これが今回の話とどう関係あるのかというと、 「 432 Hz」 という周波数との関連で載せたのですが、この 432Hz の周期数では、オカルト的、あるいはスピリチュアル的な解釈では、 宇宙の周波数であり、振動である と言われていたりするらしいものです。 / ところで、シュタイナーもこのことに言及していたようで、Solid Reasons Why You Should Convert Your Music To 432 Hz (音楽を 432Hz に変換すべき確かな理由が存在する)というページの中にシュタイナーの言葉が書かれています。 「C=128hz (基準周波数A=432hz でのCコード)に基づいた音楽は、人々を霊的自由へと解放する支援となるでしょう。人間の内耳は C=128hz に基づき構築されているのです --- ルドルフ・シュタイナー」 とのことです。 .
https://w.atwiki.jp/arduino/pages/28.html
音を出す 圧電スピーカー テルミンみたいな音をだす。 imageプラグインエラー ご指定のURLはサポートしていません。png, jpg, gif などの画像URLを指定してください。 int potPin = 5; int speakerPin = 9; void setup() { pinMode(speakerPin, OUTPUT); } void loop() { int val = analogRead(potPin); int wait = 300+val; digitalWrite(speakerPin, HIGH); delayMicroseconds(wait); digitalWrite(speakerPin, LOW); delayMicroseconds(wait); } 普通のスピーカー (TODO)
https://w.atwiki.jp/arduino/pages/40.html
ArduinoとLa Fonera(FON2201)をつなぐ。 ふたを開ける。 星形ドライバ。macbookのHDD交換の時につかったやつ(T8)でOK。 本体裏側のゴムの後ろに隠れているのを2個外せば簡単に開く。 電源 FON2201に付属のACアダプタは7.5V 1A。ルータ本体の表示も7.5V 1A。 シリアルコンソール (直接digital0,digital1につなぐ方法のほうがよいかもしれない→このページの下の方参照) http //www.churadesign.com/2008/05/19/arduino%E3%81%A7fon%E3%81%A8%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB%E9%80%9A%E4%BF%A1dd-wrt%E5%8C%96/ http //blog.gcd.org/archives/51109295.html FON2201の4ピンはLANコネクタ側から順番に「NC,Tx,Rx,GND」だそうで、 Txとdigital2、Rxとdigital3、GNDとGNDをつなぐ。 availableが使えるSoftwareSerialを使って、 http //arduiniana.org/libraries/NewSoftSerial/ /* FON */ #include NewSoftSerial.h #define rxPin 2 #define txPin 3 #define ledPin 13 NewSoftSerial mySerial(rxPin, txPin); void setup() { pinMode(ledPin, OUTPUT); pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); Serial.begin(9600); mySerial.begin(9600); } void loop() { if(mySerial.available()){ Serial.print((char)mySerial.read()); } if(Serial.available()){ mySerial.print((char)Serial.read()); } } このスケッチを動かして、 screen /dev/tty.usbserial* で、FON2201の電源を入れると、 +Ethernet eth0 MAC address 00 18 84 a4 36 d0 IP 192.168.1.1/255.255.255.0, Gateway 0.0.0.0 Default server 192.168.1.254 RedBoot(tm) bootstrap and debug environment [ROMRAM] OpenWrt certified release, version 1.1 - built 22 32 28, May 7 2007 Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc. Board FON 2201 RAM 0x80000000-0x81000000, [0x80040290-0x80e1000]availble LASH 0xa800000 0xa8f0000,128 bocks o 0x0010000bytes ach. == Eecutig boo scrip in 2000 seonds ente ^C toabot RedBoot fis load -b 0x80100000 loader RedBoot go 0x80100000 Failsafe loader v0.2 Looking for board config data... found at offset 0xa87f0000 Reset button GPIO 6 Reading flash from 0xa8040000 to 0xa825c4e9... done. Verifying CRC... OK - 0x7fd5bb48 Uncompressing Linux... Ok, booting the kernel. [sighandler] No more events to be processed, quitting. [cleanup] Waiting for children. [cleanup] All children terminated. Unlocking rootfs ... Could not open mtd device rootfs switching to jffs2 init started BusyBox v1.4.1 (2007-09-26 18 40 28 CEST) multi-call binary ifconfig SIOCSIFADDR No such device ifconfig SIOCSIFADDR No such device udhcpc (v1.4.1) started route fscanf Sending discover... Sending discover... なんかブートしてる。 OpenWRTかDD-WRTか なにが違うのかよくわからないが、DD-WRTのほうが情報が多そうなのでDD-WRT。 macでFON2201にdd-wrtをインストール FONまとめwikiのDD-WRTのページ( http //fon-wiki.maniado.com/index.php?DD-WRT )を参考に進める。 http //www.dd-wrt.com/ http //www.dd-wrt.com/wiki/index.php/LaFoneraPlus_Software_Flashing 2009/5/3の時点でFON用の最新は「v24 SP1」。 http //www.dd-wrt.com/dd-wrtv2/down.php?path=downloads%2Fstable%2Fdd-wrt.v24+SP1%2FConsumer%2FFon%2FFonera/ インストール作業時は、 FON2201のWANポートとmacをLANケーブルで直接接続し、 macの有線LANを固定で192.168.1.11/255.255.255.0、FON2201を192.168.1.22/255.255.255.0に設定している。 (mac) cd ~/tmp mkdir ddwrt cd ddwrt wget http //www.dd-wrt.com/dd-wrtv2/downloads/stable/dd-wrt.v24%20SP1/Consumer/Fon/Fonera/fonera-firmware.bin wget http //www.dd-wrt.com/dd-wrtv2/downloads/stable/dd-wrt.v24%20SP1/Consumer/Fon/Fonera/fonera_flashing.txt wget http //www.dd-wrt.com/dd-wrtv2/downloads/stable/dd-wrt.v24%20SP1/Consumer/Fon/Fonera/linux.bin sudo /sbin/service tftp start sudo cp linux.bin /private/tftpboot/ (シリアルコンソールでRedBoot起動直後にCtrl-C) ip_address -l 192.168.1.22/24 -h 192.168.1.11 fis init load -r -v -b 0x80041000 linux.bin (mac) sudo /sbin/service tftp stop sudo rm /private/tftpboot/linux.bin (シリアルコンソール) RedBoot fis create linux ←30分かかる RedBoot fconfig Run script at boot true Boot script .. fis load -b 0x80100000 loader .. go 0x80100000 Enter script, terminate with empty line fis load -l linux (←ここ入力) exec (←ここ入力) (←ここ入力) Boot script timeout (1000ms resolution) 2 Use BOOTP for network configuration false Gateway IP address Local IP address 192.168.1.1 Local IP address mask 255.255.255.0 Default server IP address 192.168.1.254 Console baud rate 9600 GDB connection port 9000 Force console for special debug messages false Network debug at boot time false Update RedBoot non-volatile configuration - continue (y/n)? y (←ここ入力) ... Erase from 0xa87e0000-0xa87f0000 . ... Program from 0x80ff0000-0x81000000 at 0xa87e0000 . RedBoot reset FON2201がリブートした後、http //192.168.1.1/を開けば管理画面が出る。 9600bps http //echodittolabs.org/hacking-la-fonera-2 stty -F /dev/tts/0 9600 「管理→コマンド実行」からコマンド入力すればコンソールが9600bpsになってなんとか使えるようになる。 が、ちょっと文字化けする。 DuemilanoveのUSBシリアルで直接通信する DD-WRT本体のコンソールの通信速度が115200なので上のスケッチ経由だと文字化けする。 なにもしないスケッチを動作させておいて、 Txとdigital1、Rxとdigital0、GNDとGNDをつないで screen /dev/tty.usbserial* 115200 とすればOK. FON2201を無線クライアントにする FON2201には普通の無線LANクライアントになってもらいたい。 もともとある家のルータ(親ルータ)を経由して家庭内LAN、インターネットに接続する。 基本→基本 インターネット接続 手動 or DHCP ... LAN側接続→IPアドレス 他とかぶらないように (固定にするなり、親ルータ側で固定なDHCPで振るなり・・・) 無線LAN→基本 Regulatory Domain JAPAN 無線LAN MAC動作モード Client ネットワーク名 (SSID) 親ルータのSSID 無線LAN→無線LANセキュリティ 自分の設定に。 セキュリティ→Firewall保護 SPI Firewall 無効 ArduinoとFON2201でシリアル通信 DDWRTがログインプロンプトを出すし、動作状態のログ的なものが出てくる。 これらをOFFにしてArduinoとのやりとり専用にしたい。 http //www.geocities.jp/arduino_diecimila/wifi/index.html ログインプロンプトからDDWRTにログインし、telnetしている。 管理画面でボタンをおしたりしない限り余計な出力は無いのかも? http //blog.xole.net/article.php?id=689 ruby入れられるかなあ。 http //www.dd-wrt.com/wiki/index.php/Ipkg 以外に簡単に入るかもしれない。 ipkg jffs http //www.dd-wrt.com/wiki/index.php/Jffs flash領域にデータを保存するファイルシステム。 flashなのであまりたくさん書き換えると壊れちゃう? (SDカード増設する方法もあるみたい。 http //www.dd-wrt.com/wiki/index.php/LaFonera_Hardware_SD-Card ) とりあえず、内蔵flashで試す。 管理→管理の「JFFS2 の設定」で、 1. 「JFFS2」を「有効」(「JFFS2の保存領域を初期化」は無効のまま) 2. 設定(保存のみ) を押す。 3. 設定 を押す。 4. 「JFFS2の保存領域を初期化」を「有効」 5. 設定 を押す。領域がフォーマットされる。設定(保存のみ)は押さない! 6. 「JFFS2の保存領域を初期化」を「無効」 7. 設定(保存のみ) を押す。 8. 再起動 を押す。 (前) root@DD-WRT ~# df -h Filesystem Size Used Available Use% Mounted on rootfs 5.4M 5.4M 0 100% / /dev/root 5.4M 5.4M 0 100% / (後) root@DD-WRT ~# df -h Filesystem Size Used Available Use% Mounted on rootfs 5.4M 5.4M 0 100% / /dev/root 5.4M 5.4M 0 100% / /dev/mtdblock/3 1.4M 196.0k 1.2M 13% /jffs これで/jffs以下に書き込み可能になった。 rubyのパッケージ http //downloads.openwrt.org/kamikaze/8.09/atheros/packages/ にあった。 まずは練習でram(/tmp)にインストールしてみる。 cd /tmp wget http //downloads.openwrt.org/kamikaze/8.09/atheros/packages/ruby_1.8.6-p36-1_mips.ipk ipkg -d ram install ruby_1.8.6-p36-1_mips.ipk rm ruby_1.8.6-p36-1_mips.ipk wget http //downloads.openwrt.org/kamikaze/8.09/atheros/packages/ruby-core_1.8.6-p36-1_mips.ipk ipkg -d ram install ruby-core_1.8.6-p36-1_mips.ipk rm ruby-core_1.8.6-p36-1_mips.ipk wget http //downloads.openwrt.org/kamikaze/8.09/atheros/packages/libruby_1.8.6-p36-1_mips.ipk ipkg -d ram install libruby_1.8.6-p36-1_mips.ipk rm libruby_1.8.6-p36-1_mips.ipk LD_LIBRARY_PATH=/tmp/usr/lib /tmp/usr/bin/ruby -v LD_LIBRARY_PATH=/tmp/usr/lib /tmp/usr/bin/ruby -e "p hello from FON2201. " 成功。動きますな。 http //downloads.openwrt.org/kamikaze/8.09/atheros/packages/ruby-cgi_1.8.6-p36-1_mips.ipk http //downloads.openwrt.org/kamikaze/8.09/atheros/packages/ruby-erb_1.8.6-p36-1_mips.ipk http //downloads.openwrt.org/kamikaze/8.09/atheros/packages/ruby-webrick_1.8.6-p36-1_mips.ipk しかし、 (before) root@DD-WRT /tmp# du -h -s 116.0k . (after) root@DD-WRT /tmp# du -h -s 3.4M . root@DD-WRT /tmp# df -h Filesystem Size Used Available Use% Mounted on rootfs 5.4M 5.4M 0 100% / /dev/root 5.4M 5.4M 0 100% / /dev/mtdblock/3 1.4M 196.0k 1.2M 13% /jffs 入らなさそう。 FONにSDカードを増設 結構大変そうなのでやりたくない。特にFON2201の情報がない。GPIOの場所すらわからない。 2100/2200 http //www2omshiva.dyndns.org 8080/openwrt-fonera-sd 画像 http //home.earthlink.net/~fone/f/fourneras.jpg その他 La FoneraのGPIOでAVRに書き込む http //d.hatena.ne.jp/ts1/20090409/1239287090 LaFonera改造大全集 http //www.dd-wrt.com/wiki/index.php/Category LaFonera_Hardware_(en) すげー
https://w.atwiki.jp/arduino/pages/54.html
MIDILibrary http //www.arduino.cc/playground/Main/MIDILibrary http //fromgoldenwells.blog.so-net.ne.jp/2009-03-28 http //nagasm.suac.net/ASL/original/fig01.gif http //www1.plala.or.jp/yuuto/midi/images/midiio.gif http //www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1222425476 http //www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1239194702 http //www.geocities.jp/pcm1723/html/p4pcmidi.htm http //pspunch.com/pd/article/arduino_lib_gmidi.html http //www.geocities.jp/pcm1723/html/fmmelody.htm http //fromgoldenwells.blog.so-net.ne.jp/2009-03-28
https://w.atwiki.jp/arduino/pages/14.html
雑談コーナーです。 arduinoを注文しましたので作ってみました。 -- 管理人 (2009-02-03 13 35 02) Arduino大容量化チップ(ATMega328P) http //www.switch-science.com/products/detail.php?product_id=113 http //www.ladyada.net/library/arduino/bootloader.html -- 名無しさん (2009-02-05 14 27 02) Arduino 0013 が出たんですね。サンプルを試して開発環境がよくできて居るなあと感心してから触れていません・・・ -- 管理人 (2009-02-19 11 37 11) Arduinoの日本語のフォーラムが見つからない -- banana (2009-05-20 21 48 38) http //arduino.ssktkr.com/forum/YaBB.pl -- 管理人 (2009-05-26 03 31 06) こんにちは。Arduino初心者です。Arduinoって、自分で作ったブートローダーを使えますか? -- iruka (2009-06-04 21 42 13) たとえばV-USB(AVR-USB)を使ったbootloadHIDのようなものを使うことは出来るのでしょうか? -- iruka (2009-06-04 21 43 12) もし使えるならばFT232不要の基板が作れると思うのですが、どうでしょう。 -- iruka (2009-06-04 21 43 53) できますよ。たぶんirukaさんの求めているのはこれですね。 http //www.geocities.jp/arduino_diecimila/make/usbasp/index.html -- 管理人 (2009-06-05 13 27 06) どうもありがとうございます。つまり、bootloaderなのにUSBaspライターと同じプロトコールを受け付けるファームを焼いておくのですね。 -- iruka (2009-06-05 18 56 55) たとえば、ここhttp //www.pjrc.com/teensy/ のローダーはオリジナル(teensy_reboot.exe)を用いるようなのですが、これはもしかしてlib/pde.jarにパッチしているから出来ることなのでしょうか・・・ -- iruka (2009-06-05 19 06 07) teensyをインストールすると、src/AvrdudeUploader.javaにその痕跡が見られるようでした。 -- iruka (2009-06-05 19 06 56) わたしも真似をしてavrdudeのラッパーと、自作ブートローダーへの差し替えをもくろんでいます。 -- iruka (2009-06-09 23 14 09) あと、ATtiny2313でArduinoをやってみようという無謀な計画を立ててしまいました。 -- iruka (2009-06-09 23 15 08) あまり特殊なパッチだと他の人に試してもらう可能性が下がっちゃうのが残念ですね。2313は無謀ですね。でも2313で済むなら完成品はそれがうれしいです。 -- 管理人 (2009-06-10 00 43 18) 続きはこちら→ Arduino日本語フォーラム/雑談スレ
https://w.atwiki.jp/arduino/pages/13.html
東京デバイセズ http //tokyodevices.jp/ オリジナルのArduinoシールドいろいろ Arduino電池駆動ベースボード 犬笛シールド 低周波音センサーシールド 赤外線通信シールド 脈拍センサーシールド スイッチサイエンス http //www.switch-science.com/ ●ご注文3,000円以上で送料無料 ●送料がかかる場合でも180円。 ●合計5,000円までの場合、お支払いは商品到着後 -Arduino Duemilanove \2835 (2009/2/12時点での情報) -Arduinoイーサネットシールド \3480 (同上) -XBeeシールド(国内使用可能) \6980 (同上) -XBeeエクスプローラUSB(完成品) \2380 (同上) ストロベリーリナックス http //strawberry-linux.com/ メカロボショップ http //www.mecharoboshop.com/Products/physicalcomputing/arduino/index_html 秋月 http //akizukidenshi.com/catalog/default.aspx 周辺部品をまとめて一気に購入できる。→Arduino実験セット (Arduinoは取り扱っていない)
https://w.atwiki.jp/arduino/pages/15.html
ゼロからArduinoでLEDをチカチカさせるまで。 1. Arduinoを手に入れる(1日) Arduino Duemilanove、2835円。スイッチサイエンスなら翌日に届きます。 http //www.switch-science.com/products/detail.php?product_id=3 →Arduino関連ショップ USBケーブルは付いていないので探しておこう。 2. ソフトをダウンロード(10分) http //arduino.cc/en/Main/Software からダウンロード。 意外にデカイ。 3. インストール(5分) 開発環境とUSBドライバをインストール、PC再起動。 4. 開発環境を起動して、スケッチBlinkを入力(5分) http //arduino.cc/en/Tutorial/Blink 5. ArduinoをPCに接続、スケッチ実行。(1分) ボタンを押せば、転送完了。 13番ピンと接続されている表面実装のLEDがチカチカします! ここまで1日と21分。