1read 100read
2012年1月2期電気・電子62: Arduino初心者熱烈大歓迎質問スレ part6 (307) TOP カテ一覧 スレ一覧 2ch元 削除依頼
・ 次のスレ
63: 初歩のラジオ・ラジオの製作part7 (843)
64: 高周波電源 (152)
65: 【Cortex-M3】 やっぱARMっしょ4 【高機能】 (711)
66: 【Verilog】 記述言語で論理設計Project11 【VHDL】 (54)

Arduino初心者熱烈大歓迎質問スレ part6


1 :11/11/27 〜 最終レス :12/01/15
http://www.arduino.cc/
【質問者心得】
・スレに一応目を通してから質問しましょう。
・回答者はエスパーではありません。状況が分かるように詳しく書きましょう。
 詳しく書いてくれないと、答える方も困ってしまいます。答えようがないのです。
【回答者心得】
・すぐにググレカスと言う前に「○○でググれカス」って言うような大人の余裕を見せつけてやりましょう。
・節度ある初心者さんには、特に優しくね
前スレ
Arduino初心者熱烈大歓迎質問スレ part5
http://kamome.2ch.net/test/read.cgi/denki/1304842065/
関連スレ
【Arduino】フィジカル・コンピューティング3【OSC】
ttp://kamome.2ch.net/test/read.cgi/denki/1284127732/
学研マイコン Japanino ジャパニーノで遊ぶスレ 3
http://kamome.2ch.net/test/read.cgi/denki/1286354827/

2 :
>時計に使うには精度が悪い
そのまま時計に使うのは水晶を使ってても厳しいだろ
ちゃんと作るならリアルタイムクロック使うとか電波時計みたいにしないと
Arduinoはマイコンとか知らなくてもモジュールを組み合わせれば物ができるのが利点だからね
細かい仕様とかは気にするものじゃないと思うんだわ

3 :
ああ、前スレのコレね
>時計に使うには精度が悪いって記事も見かけたけど、2009年の記事だったw
Duemilanovaの頃からRTCやGPSでやるのが定番みたい

4 :
前スレ終わり方で、レゾネータと水晶で精度に大差がないのではないかというような
雰囲気でしたが、UNOのATmega8U2は水晶なのは何でなのでしょうかね? こっち
もレゾネータで良いような気がするのですが。
私は、自作するときは内部発振8MHzしか使わないので、正直あまり考えたことがな
くて、わかりませんでした。(ログ書きの時刻なんかは、RTC使っちゃいますね)

5 :
USBの仕様に(確実に)合わせるためじゃないかな。何ppm以下が要るのかは知らないが。
あと、水晶はさすがにセラミック振動子よりかはだいぶマシなはず。
ちゃんと使ってれば数十〜200ppm程度かな。(2009も多分この範囲とは思う)
RTCだと数ppmぐらいまでは行けると思う。

6 :
本体の演算より、USB I/Oの方がやっぱりシビアなんでしょうか。両方水晶にしなかった
のは、コストの問題でしょうかね? 
ところで、IDEバンドルのブートローダで、「optiboot_pro_20mhz.hex」使ってみた方いない
でしょうか? proは、TTL-ICが省かれているだけなので、328Pに入れて、外部クロックに
20MHzを水晶かレゾネータ入れればおしまいですかね? 手持ちに20MHzの水晶もレゾ
ネータも無いので、実験できない。。。 今度、秋月で買ってためしてみたいな。今の私に
は、特に20MHzの需要は無いですが。

7 :
セラロックで間に合ってる人は、それでいいじゃん。
その程度の事しかしてないんだから、高価な水晶は不要なわけだし。
お遊びのArduinoは温度依存性が高すぎて周波数がずれまくるセラロックで十分だよ。

8 :
将来Cortex-Mになるんだ?やっぱARMの時代きてるんだな。

9 :
精度・安定度求めるならそれこそTCXOだ

10 :
>>7
その通りだと思うが、お前の口調なんか変だぞ。拗ねた子供みたいっつーか。
割高Arduinoのスレで「高価な水晶」とか言ってるのは妙に貧乏くさいし。

11 :
お遊びは内蔵RCオシレータで十分ですよ。

12 :
レオナルドはたしか今月発売予定なんだっけ?

13 :
SMTだと完成品作りづらくてなあ

14 :
>>11
そう思う。
88Pがやっと動いた。328Pで使ってた組込みに移動した。88だと、標準サポートの
8の方が使いやすいかな。(設定とか)

15 :
328Pと88Pで修整が必要な箇所ってベクタの位置ぐらいじゃない?

16 :
>>15
88Pはブートローダのリビルド、confの追加、boardsの追加くらい。整合で手間取った。
8と328は、全部標準装備で、すぐ動く。この差は大きい。

17 :
arduinoを手にして2日目の初心者です。サーボモータの首振りのテストをしていますが、振り子のようにきれいな首振りをしてくれません。精密に制御するためのアドバイスがもしあれば教えていただけると幸いです.

18 :
振り子の動きをサンプリングしてエクセルで時間と角度でグラフ化してみるとか

19 :
振りが小さければ、三角関数で近似できるはず

20 :
振り子にはネギ付けろと(ry

21 :
>>17
もしかして、等速で端まで行くと、ピタッと止まって等速で戻るを繰り返す?
サーボライブラリ(Servo.h)使ってるなら、入力する値は角度だから、振り子の
角速度計算して、角度を与えてあげないと。単純に角度のインクリメントとディ
クリメントだと、等速運動になっちゃうね。>19さんが書いているように、振り
幅が小さいなら三角関数で近似して、振り子の位置から角度の計算するだぁね。
(ライブラリ使わないで、PWM制御でも考え方の基本は同じ)
「振り子 角度 プログラム」なんかでググると、C言語での解説が見つかる
と思うので、参考になるかも。単振り子でも結面倒だね。

22 :
ぜひ、二重振り子を

23 :
2重振り子の動きをシミュレーション・・・
案外再帰関数で上手く表せたり?

24 :
Arduinoは初期のころからMTMでも人気のジャンルです。
このようなスレでも初心者に向けての紹介の一助になっていることには感謝しな
くてはいけないのかもしれません。
そういえば今週末にこんなイベントがあります。
ttp://jp.makezine.com/blog/2011/12/mtm07.html
>Make: Tokyo Meeting 07は東京工業大学 大岡山キャンパスで開催します。
>開催日: 2011年12月3日(土)、4日(日)
MTMでは、すべて参加者に通底する態度として、「他人の作品へのリスペクト」
が感じられます。初心者でも、すでにArduinoハッカーになっている人でも必ず
得るものがあるはずです。
いわゆる「アキバ系の電子オタク」な人たちには、美大をはじめとするアート系
の雰囲気になじめないのか、この主のイベントに敵意をむき出しの人がいます。
そういう「ヘンクツな技術者」にならないためにも参加してみるのはいいこと
なのではないでしょうか?
今回はArduinoの開発者によるセッションもあります。詳しくは上記リンクを
みてみてください。

25 :
「主」って誰? キリスト?
ってか日本語でプリーズ。
アキバ系=美大をはじめとするアート系、だろ。JK
お前はリアルで(今の)秋葉ったこと無いのかと。

26 :
日本でのarduino記事ってブロガーの箔付け目的や、
ニワカ実績でっち上げが半数ぐらいじゃないのか。
アキバ系の電子オタクっていっても、製作をLiveで行ったりする
パフォーマーが居たりする。
「アキバ系の電子オタク」じゃなくて「萌え豚系の消費マニア」だろう。

27 :
釣られてますよw

28 :
釣られちゃったのかwビクンビクンw

29 :
萌える街、アキバ(笑)
AKB48見てても、美大アート系は居そうでも、電子オタクなんて関係無いだろ。
もしかして昭和の話か?

30 :
boolean val[3];に対して実行時にval=[1,0,1,1];みたいな挿入はできないの?

31 :
>>30
動的拡張はできなかったと思う

32 :
>>31
こういう代入方法を動的拡張というのかどうかはわからないけど、やりたいのは一括挿入。
あらかじめ確保している領域以上に値を入れるつもりはないので、拡張はやらないです。
forループで入れるのは合わないようなことをする場合、これができないと
val[0]=1;
val[1]=0;
val[2]=1;
val[3]=1;
ってやらないといけないのが面倒なので
val = {1,0,1,1};みたいに一気に入れられるといいな、と。

33 :
なら
boolean val[4];
で確保しないといかんくない?
あるいは、
boolean val[] = {1,0,1,1};

34 :
リファレンスからコピペ

配列のインデックスはゼロから始まります。つまり、配列の最初の要素にアクセスするときのインデックスは0です。10個の要素があるとしたら、インデックス9の要素が最後ということになります。
int myArray[10]={9,3,2,4,3,2,7,8,9,11};
// myArray[9] この変数が持っているのは11(最後の要素)
// myArray[10] このindexは無効で、ランダムな値が返ります

35 :
>>33
だからboolean val[3];と書いといた。

36 :
>>34
それは宣言と同時に初期化のときにだけ使える書式ね。

37 :
Arduino IDE 1.0出たね。今のところニーズがないので、まだ上げてないけど。
ネット接続や、SDなんかのライブラリが強化されてるらしい。

38 :
4個の値なんだからboolean val[4]でなくて?
でもそこが問題ではないようだ。先に確保、後から一気に代入、では確かに通らない。すまそ、俺は役に立てないようだ。

39 :
>>38
配列の添え字は0オリジンなんで4つなら添え字は[3]です。
Cだけじゃなくてどんな言語でもさすがにそれは同じです。
うーん。信じがたいがそういう仕様なのか・・・

40 :
>>39
もう一度C言語の配列の添字の説明を熟読した方がいいと思う
C言語はval[3]って宣言するとval[0]からval[2]までしか確保されないよ
VBは変わってて、val(3)って宣言するとval(0)からval(3)まで確保されるけど

41 :
>>40
なるほど

42 :
そこ、間違えやすいよね。

43 :
VBかわってんなぁ
Cは配列宣言時は、確保個数を入れるの今回だと4個だから
boolean val[4];
上記で宣言すると、
val[0]
val[1]
val[2]
val[3]
が使用可能
個数を省略したいなら、宣言時に代入しなきゃならんが、
boolean val[] = {1,0,1,1};
とかける

44 :
VBってそうなの?
キモいなぁ…

45 :
>>43
やっぱりそういうやり方しかないのか
モータードライバを介して2つのDCモーターを制御するために4ビット(val[4]ね)使って動かしてるんだけど、
そういう書き方しかできないとコードが長くなるんでいやだなぁと。
動作の組み合わせをあらかじめ変数化しておいてもいいんだけど、ここから動作を複雑にしていくつもりなんで
できればそういうやり方はしたくなかったのね。

46 :
とりあえず最初の質問についてはC言語に配列リテラルは存在せず初期化構文だけがあるでファイナルアンサー。
初期化された配列の内容を別の配列にコピーするとかならmemcpyでできる。

47 :
組み込み系のCでどこまで使えるかわからないけど、
動的に変数を確保したいなら
mallocやcallocを使う

48 :
すっきりした

49 :
代入するのが定数だと分かり切ってる、そんなあなたにstructハック。
struct fourints_t {
 int z[4];
};
const struct fourints_t Z = { 1, 0, 0, 0 };
int main(){
 struct fourints_t q = { 0,0,0,0 };
 q = Z;
}

50 :
C言語は後から開発された言語のくせにBASICを変わってるとか言うな。
DIM A(3)
A(1) = 10
A(2) = 10
A(3) = 10
のほうが一般人にとっては自然。だから初心者用言語としてはこちらの仕様を採用した。
配列の初期化を横着したがるのは、初心者病。
言語で1行で表現できようが機械語にそんな命令ないんだから、
何でも1行で書きたがる初心者は高級言語でも使っとけ。

51 :
>>50
DIM A(3)
だと
A(0) = 10
A(1) = 10
A(2) = 10
A(3) = 10
の4つ可能なんじゃないの?
3なのに4個確保される仕様は、仮にわかりやすさのための通例
としてサフィックス1から使う前提なら、A(0)は実質無駄に
確保される仕様ということになる
DIM A(3)とすると、A(0)がなく、A(1)〜A(3)だけ確保される仕様
ならまだしもね
とまあ、言語仕様だから、それについてぐだぐだ言っても仕方ないが

52 :
なるほど〜
まあ、でもそれくらいにしておきましょう(^^)

53 :
>50-51
ふたりともFortranをdisってんじゃねぇw

54 :
VBAあたりだとOPTION BASE [0|1]で変わったりする。

55 :
なにをいう。BASIC屋もC屋もFortranをリスペクトしている。
どちらもループ変数には慣用的にiを使うだろ。

56 :
B使う8bitな俺…orz

57 :
siとかdi使うとか、hl使うとか

58 :
>>56
BってもしかしてC以前に存在したという伝説のBですか?

59 :
HをしてもB止まり

60 :
VBの糞仕様の最たるものはこれ

Dim i,j As Integer
これだとiはVariantでjはIntegerになる。
初心者用言語なのにまぎらわしい仕様にすんなw
スレ違いスマソ

61 :
夏頃発表されてたArduino leonardoがまだ出ずに
Arduino UNO R3が発売されてるけど、
両者は別ものという認識でいいんだよね?

62 :
Arduino IDEで作ったHEXファイルはどこに出来るんでしょうか? スケッチの
フォルダーを見ても見つかりません

63 :
arduino hexでググるとすぐに見つかると思うです。

64 :
たまに、転送エラーとかで、メッセージにパスが出る気がする。
ただ、転送終わったら、削除しちゃうと思うけど。

65 :
compile (upload じゃなく)すりゃ build の中に出来るだろ。
ねーよってんならプリファレンスで場所かえてんだろ。

66 :
compile じゃなくて verify だった。
ツールバーの一番左の奴ね。これやると転送しないから削除しちゃわない。

67 :
皆さんレス有難うございました。 verifyだけしたらbuildのなかにHEX見つかりました。
いままでuploadしてから探してました

68 :
俺の立てたスレがpart6にもなるなんて感動だぜ
当初はあれだけバカだチョンだと言われて泣きそうだったぜ

69 :
主様ご降臨

70 :
>>68
このスレは、Arduino始めた時に世話になったよ

71 :
     ____
   /__.))ノヽ
   .|ミ.l _  ._ i.)
  (^'ミ/.´・ .〈・ リ
  .しi   r、_) |  このスレはわしが育てた
    |  `ニニ' /
   ノ `ー―i´

72 :
本スレはまったく不親切だったからな

73 :
この板自体、Arduinoに否定的だよね

74 :
Arduino 使うことまで否定するようなスレはそんなに無いよ。
Arduino しか知らない人が AVR のスレとかで変なこというと冷たい反応が来るけどw

75 :
>>73
そう感じるスレは見た事ないなぁ

76 :
本家にあるTLC6940ライブラリの、解説原文のリンクが切れています。
どっかにミラーしてないですか??

77 :
Arduinoには至らない部分もあるし、ちゃんとよさもある
適材適所
一元的にみれるものではないよね

78 :
●●には至らない部分もあるし、ちゃんとよさもある
適材適所
一元的にみれるものではないよね
って、この板全体で、ほぼ当てはまる気がする。。。

79 :
>>78
そだね。つまり言いたいのは、●●はカスというのは一概に言えないということ

80 :
100%どんな人でも満足するってモノもないと思いしね。

81 :
>>79
それは、勝手な拡大解釈。

82 :
>>81
言いたいことをどうぞ

83 :
突然リセットがかかってsetupが何度も呼ばれてしまう

84 :
MTM07 - Arduino開発チームメンバーが来日「Arduinoのこれまでとこれから」
http://jp.makezine.com/blog/2011/11/mtm07_arduino_now.html
見に行ったやついる?

85 :
腐れた自称関係者が嫌なので行くのやめました

86 :
>>84
電子工作だけじゃなくてメカやら何やら面白そうだったけど
東京は遠いっす

87 :
>>84
名古屋辺りでやってほしい

88 :
まえ岐阜でやってなかった?

89 :
第二アメ横でArduinoのワークショップやるという動きもあるみたい
年明けの休日、子供を対象とかそんな感じらしい
ソースはツイッター

90 :
arduino fioをリチウムイオン電池でなくmini USBに電源をつないで動作させているのですが、
xbeeシリアル通信ができなくなりました。もしかしてUSB優先でシリアル通信になってしまっているのでしょうか。
usbから電源をとってもxbeeシリアル通信できる方法ご存じの方いらっしゃいませんか?

91 :
セルフパワーのUSBハブから電源だけ取ってみてはどうか。
もろちん、ハブからPCはつながないで。

92 :
初心者ですが質問させてください。
現在の接続:arduino uno, スピーカー
arduino ideの examples > digital > tone melodyを使って「シ」の音をスピーカーから出力しています。
この出力した音にリバーブといいますか、残響感を持たせたいのですがどのようなソースコードを入力すればできますか?
もしよろしかったらご教示お願いします。よろしくお願いします。
以下loop内の「シ」を出力するコードです。
delayTime = (1000000 / NOTE_B6 ) / 2;
soundTime = (100000) / (delayTime*2);
for(int i=0; i<soundTime; i++){
digitalWrite(speakerPin, HIGH);
delayMicroseconds(delayTime);
digitalWrite(speakerPin, LOW);
delayMicroseconds(delayTime);

93 :
>>91
USB-AC変換アダプタをコンセントに接続して動作させても同じような状態です。
Fioのどこかをジャンパしたりしないといけないんですかね?

94 :
>>93
公開されている回路図を見る限り、Arduino fioのMini USBコネクタは、電源
ピンとGNDピンしか繋がっていません(USBの信号は接続されていない)から、
単体ではUSBデバイスとしては動きません。
通信できないとは、他は正常に動くということでしょうか?
一応「S2」が電源スイッチですが、これをONにしてありますか?
ブロック図やデータシートの説明をサラっと読む限り、MAX1555には短絡保護
回路が入っていないように思えます。 使っている時に、うっかりショート
させたりしていませんか?
「JP2」または「JP3」にLiPO電池を繋がない場合、いずれかのコネクタの
ピン間を通電中にショートすると、MAX1555の充電出力とGND間が短絡します。
保護ヒューズ(F1)は経由しないので効きません。
また、ブレッドボード等で組んだ時、他のシールド等からVCCピンに5Vが
掛かっていたら、3.3V電源で動くXBeeに5Vが供給されてしまうので、
壊れたかもしれません。
また、直接関係内とは思いますが、MAX1555のデータシートと見比べると、
Arduino fioはMAX1555の使い方を間違っている気がします。
もともとMAX1555は、DCジャックとUSBコネクタの2系統を内部で自動切替
して充電できるようになっています。
MAX1555のUSB端子(1ピン)をUSBバスパワーに、DC端子(4ピン)を外部DC電源に
それぞれ結線することで、優先される外部電源が供給されている時には充電
電流は280mAにセットされ、USB経由のみ供給の場合は充電電流が100mAに
制限されるのが、ICメーカー(MAXIM)が想定している本来の使い方です。
回路図を見ると、外部電源コネクタ「JP6」の2番ピンが、USBのバスパワー
と並列に直結されており、そのままMAX1555のDC端子(4ピン)に接続されて
います。
外部電源とUSBを両方同時に接続すると、外部電源の電圧がバスパワー(≒5V)
より高いと、USBに逆流してUSBハブまたはPCを壊す可能性があります。逆に
外部電源(例えばエネループ電池等)の電圧が、USB電源の電圧より低いと、
USB電源で電流制限なしに外部電池に過充電する状態になってしまい、これ
また非常に危険です。
コネクタ「JP2」または「JP3」にLiPO電池を繋ぎ、コネクタ「JP7」に外部
電源を繋いだ場合、保護ヒューズ「F1」は入っていますが、電源スイッチ
「S2」の状態と関係なくLiPO電池が無条件に充電されてしまい、危険です。

95 :
>>94
他は全て正常に動きます。
電源供給をUSBで行っている場合に、
Xbee通信を行おうとしてif(Serial.available() == true)を書いてもtrueになっていないみたいです。
ちなみにifをとってたとえばLEDを点灯させようとスケッチすると、
正常に点灯することができました。

96 :
arduino のコネクタって、何でユニバーサル基板に入らないうような
設計になってるんだ?
嫌がらせなのか、バカなのかよく分からないな。

97 :
シールドを逆向きに刺せないようにするためです
フールプルーフ設計です

98 :
>>97
すばらしい

99 :
>>95
なんだか、情報が整理されていなくてわけ判らんのですが...
USB給電じゃなく、外部の電源から給電にしたら動くの?
スケッチの書き換えにはXBeeを使っていないの?
『xbeeシリアル通信ができなくなりました。』と書いているけど、
そもそも以前は動いていたプログラムなの?
USB給電だと動かないと判断した根拠は?
ハードの接続かプログラムのコード、何かを変更したのでは?

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
・ 次のスレ
63: 初歩のラジオ・ラジオの製作part7 (843)
64: 高周波電源 (152)
65: 【Cortex-M3】 やっぱARMっしょ4 【高機能】 (711)
66: 【Verilog】 記述言語で論理設計Project11 【VHDL】 (54)