Arduino初心者熱烈大歓迎質問スレ part27
レス数が1000を超えています。これ以上書き込みはできません。
https://rio2016.5ch.net/test/read.cgi/denki/1579146318/999
>割込処理内ではフラグだけ立ててメインループでポーリングしてフラグ監視するのは基本じゃね
実にユニークなタイマー割込みの使い方ですねw >>3
同意
だったら初めからメインでポーリングでmillis監視しとけって話
そもそもモーター止めるだけなんだから割込みルーチン内でやっちまえばいい
いずれにしても2重に監視する意味が不明 >>1
スレ立て乙!
>>2
ホントだ!
UNOとブレボがあって、Lチカしてる? >>3
激しく同意w
二つの問題がある。
1. 「割込み処理内でフラグをセットして、
バックグランドでそれをポーリングして検出したら処理を始める」
というのは、割込みルーチンの中で処理すれば不用なことなのに、
プログラムをムダに複雑にするだけです。
2. ポーリングループのフラグ検出タイミングによっては、処理が始まる時間にバラツキが生まれる。
これは重大な問題を生じる可能性がある。
以前にある会社から
「パルスモータで位置制御をやっているのだが、停止位置が微妙にズレる時がある」
と相談された。
調べたら、
原点センサを検出したら位置情報をクリアしているのだが、
割込みでフラグをセットして、メインでポーリングでフラグをチェックしている。
ポーリングループの命令実行タイミングによっては、
1パルス分だけモータが進んで検出する場合があり、
結果として停止位置のバラつきとなって表面化している。
プログラムが大きくて複雑になると、ポーリングの時間間隔が長くなり、
この割込みフラグの検出タイミングのバラツキも大きくなる。
常に同じ遅れ時間なら(遅くてもバラツキが無いなら)、このズレの影響はまだ少ないのだが・・・
標語にもあるでしょ? 「今日できることを明日に延ばすな」ってw (1/3)
前スレでAT-09のペアリングがうまく行かないって言っていた者だけど
結論から言うと、ペアリングはできた(android、PC(BTドングル)、新Fireタブ7)
開発環境はlinux(ubuntu系)
AT-09はパチもんらしいのでそのままだと使えるATコマンドが限られていて
ペアリングできないっぽい?
なのでAT-09のfirmwareをhm10のやつに書き換えて
AT-TYPEを3へ変更すればペアリング可能になる
HM-10より100円くらい安く買えてHM-10として使えるのでお得?なのかもしれない
つづく (2/3)
具体的には
https://blog.raquenaengineering.com/arduino-and-the-myo-armband/
ここの[2]: Flashing the Modules.からそのままやったらファームウェアの更新ができた
(このサイトを【サイトA】とする)
いるもの(実際に使ったもの)
AT-09
https://s.click.aliexpress.com/e/_dSMl8cq
Arduino UNO
https://s.click.aliexpress.com/e/_dV2crlc
CCLoader.ino
https://github.com/RedBearLab/CCLoader/blob/master/Arduino/CCLoader/CCLoader.ino
CCLoader
https://github.com/RedBearLab/CCLoader
ざっくり流れ
(1)CCLoader.inoをUNOに書き込む
(2)UNOとAT-09(CC2541チップ)を各ハンダ付けして配線する
(リセットのとこに10μFのコンデンサ云々は無視、
AT-09のdip端子のVCCから供給すると3.3vにしてくれるっぽいので?
UNOからは5vで出力のみで一番シンプルな配線でやった)
https://i.imgur.com/AEyPmKw.jpg
(この辺はもっとちゃんとやった方が良いかもしれない)
(3)/CCLoader-master/SourceCode/Linux/main.c をコンパイル
$ gcc main.c -o ccloader
(main.cと同ディレクトリにccloaderファイルが作られる)
(4)(2)の状態でUNO電源ON
(5)(3)のccloaderファイルを実行
$ ./ccloader 【USBのポート】 【binのパス】0
つづく (3/3)
ハマったところ
(2)←ハンダ付けするところが小さすぎてハンダ付け初心者には酷。
これ参考にした https://youtu.be/ez3491-v8Og?t=191
(5)←最初、Baud:115200 data:8うんたらかんたらでてきて進まなかった
原因は、binファイルの指定ミス
/CCLoader-master/のbinディレクトリにCC2541hm10v540.binみたいなのが入ってるので
確実にそのパスを指定する
(5)←Baud:115200云々以降に進めたが、今度は
Request sent already! Waiting for respond...
で止まってしまう。 ← 【サイトA】の通りで解決
Ctrl+Cで停止→<DEVICE_NUMBER>を1にして実行→Ctrl+Cで停止→0で再実行
(なぜこれで解決できるのかはわからないが)数字の羅列が出てきて
CC2541への書き込みに進めた
(注)更新後、AT-09からIDEのシリアルモニターでのATコマンドの扱いは
[CRおよびLF] → [改行なし]へ。 ATコマンドも"AT+NAME?"みたいに"?"をつけないとスルーされる
binファイルは最新のもあるみたいだが、複数試したがv540でのみ成功した
あとv540は、AT-09に給電してもLEDが常に消えた状態っぽい あと言い忘れてた
※AT-09は非技適なので適所での使用で。 すまん訂正
>>11
>AT-TYPEを3へ変更
これは間違いか合っているか定かではない
ファームウェアのアップデート後はおそらくTYPE0なので
そのままでいけるかもしれない
さっきAT+TYPE3でやったらペアリング無理で、
AT+TYPE0でやったらいけた あとCC2541hm10v540.binの初期パスワード(AT+PASS)は000000
更新後すぐに適当なBL接続できる.inoにスケッチして
BL端末でそのパス通せばペアリングできた
以上、連投すまん >>8
通常そういう装置ってロータリーエンコーダーがモーター軸か機械軸に取り付けてあるんじゃないの?
原点復帰する時に原点センサー検出した後の
ロータリーエンコーダーのZ相検出を原点にするから
毎回位置ずれなんておきないように装置設計するはずだし
そもそもモーションコントローラーにコマンド投げるだけで勝手に動作するから
メインのCPUに割込使うこともないはずだが そもそも990はモーターからの続きなの?
全般の話じゃないの? >>953
メイン
・lcdtime>30 で表示処理
・表示終わったらlcdtime=0
通信など
ループ
割り込み 0.1秒
・lcdtime++
・モーター作動ならmotertime++
・motertime>300 ならモーター停止
・モーター作動処理
俺様が答え書いてんのに
肝心のモーター作動処理をメインに持ってくとは何て頭が悪いんだ
メインループが止まったりもたつくから問題なんであって
そこに処理させたら遅延して当たり前 横からですみません
割り込みではフラグ立てるだけのほうが良い場合ってある? 良い場合も何もそこから派生する処理があるならそれ以外有り得ないだろ >>21
排他処理が必要な場合、メインで一括して書くほうがデバッグが楽だったりする。
リエントラントでない処理とか、メモリ割り当てが制限されるとか、割込み内でできない
ことはいろいろある。 方針として、出来るだけメインで処理を記述するが、
どうしてもだめなものだけ割り込み内でやる、もしくはタスクを分ける。 なんでそう頭固いんだお前ら?
FM音源チップを使ってゲームのBGM流すのは、全部割り込み処理内でやってんだぞ
フラグ立て限定でもなんでもない
要はメインの邪魔せず、かつ割り込みの時間内できっちり仕事こなす前提で作ればなんだってやれる それは常駐ドライバの形でメインのプログラムとは完全に別個の物だった奴の話じゃないの >>ID:5elxxVd9
ブログにでも書いてリンク張れよ、自分の非常識にすら気づけないのか >>8
>>4が3行でまとめてることを20行以上に膨らませて書き
うちほとんどが昔話で占められるバカ >>21
不定期に発生するような外部割込みで
割込み発生後にする処理よりメインでの処理の方が優先される場合があるとき
今回の話の発端のように30秒後にモーターを止めるとか瞬時に済む処理なら
フラグ立ててる間にモーター止められるのでフラグなんて無意味
まあ、それでもケースバイケースだけど、質問主は最後までフロー示さなかったから何とも言えない >>20
あんたのは割込みを使う意味があまり無い
それならmillisの値を取っといて比較するだけでいい >>9
明石家さんまが「話にはオチが必要やろ」と言ってたのでw
というのは冗談だけど、単に電電板の殺伐とした雰囲気を和ませたいだけですよ。
>>18
パルスモータは原点検出後に移動距離分のパルス数を送れば位置決めできます。
脱調しないように、送り出すパルスレートの制御(加速、定速、減速)は必要ですが、
移動距離情報のロータリエンコーダからのフィードバックは不用です。
>>28
バカですみません。
あなたのようなバカでも分るように書いたら長くなりました。
私は御指摘の通り確かにバカです、カミサンからもよく「バカ」って言われます。
彼女を作って「イヤン、バカン」とか言われてみたいなw >>30
> 割込み発生後にする処理よりメインでの処理の方が優先される場合があるとき
状況を想像してみた。
たとえばメインでワードデータを命令2個で加算し、割込み処理でも同じワードデータを命令2個で加算する時、
メインで加算している時は割込み処理での加算は出来ない。
んー、これはメインの加算の前後で、単に割り込み禁止・許可すれば済む話か。
もっと複雑な処理かな? >>33
なんだステッピングモーターを使ったおもちゃレベルの話か
俺は産業用のサーボでのことを考えてたわ Arduinoのスレしかも初心者スレで産業用サーボの話するバカ >>36
ずぶですが
非常に勉強になるので邪魔しないで下さい >>30
本人が割り込み中ループ止まる事を気にしてたから何かあるんだろ >>35
パルスモータをおもちゃと言い切ってしまう産業用機械の事を知らないズブの素人w
素人で何も知らないら口出ししない方が話が進む。 >>23
>>30
一概には言えないってことか
丁寧に教えてくれてありがとう >>8
>原点センサを検出したら位置情報をクリアしているのだが、
>割込みでフラグをセットして、メインでポーリングでフラグをチェックしている。
フラグ要らねえ
位置情報クリアくらい割込みルーチンで即座にやればいいこと
いちいちポーリングして他を回してるからそうなる
プログラマが頭悪いとそうなる >>41
何でもかんでもメインに詰め込んでポーリングでまわしてやらせるのが趣味で
時々気が向いてタイマー割込み使ったとしてもそのメリットを全く活かせてない
こういう人が若干1名マイコン系スレを徘徊してるよな
少しは学習すればいいのに >>42
その人もともとポーリングしかできなかったんだけど
自慢げにそれをマルチ何だかだとか言って吹聴して歩いて散々笑われ
そのときに割込み使えよバカって言われて初めて割込みってものを知ったんだぜ
でも学習能力無いから割込みルーチンでフラグ立てて結局ポーリングで使ってんの
笑っちゃうね >>32
お前も相当バカだな
millis比較するタイミングが適切に来なかったらどうなる?
30秒で止めなきゃいけないのに30.5秒だったら、オーバーだ
運転士だったら日勤教育で自殺案件だ >.45
は?
millsでは見落とすけどポーリングでフラグをチェックするときには見落とさないのかよ
論点ずれてるぞ、馬鹿すぎw >>46
何言ってんだ間抜け
割り込み内で完了してるものを何故わざわざポーリングでフラグチェックする必要あるんだね?
割り込みの原理もなにも理解してねーようだな >>48
は、何で俺?
>>8や>>20に言ってね。 arduinoってSD.h使ってのSDカードへデータ書き込みする場合、512Bbyteごとにキャッシュを更新してるらしいが
このバッファサイズを変更したいと思っています。
SD.hの中身から辿って行って、512Byteを指定している箇所を見つけたんだけど、その数値を変える以外に方法ありませんか。 >>ID:N7wzj8zK
お前も相当バカだな
何言ってんだ間抜け
基地外でした
毎度のことながら、いろんなヤツがいるわw >>50
それセクター書き込みのバッファじゃね
大きくするならいいけど小さくすると不幸になるよ >>55
キャッシュじゃないんですか。その辺はよくわかっていない・・・
取得したデータをSDに書き込んでるんだけど、その周期を一定にしたいのに512Byteごとにタイミングがずれるのをなんとかしたいのです。
大きくしても結局はタイミングずれるしバッファ大きくなるずれが大きくなるので、いっそのこと毎回データを取るたびに書き込めばいいかと思った次第です。
flushは時間かかりすぎるので使いたくないです。 デュアルコアのarduinoじゃないなら2台使えばいいんじゃね >>56
詳しくないけど、フラッシュメモリの書き込みはセクター単位で、バッファ無しで1バイト
ずつ512byte書き込もうとすると、同じセクターを512回書き替える事になるんじゃないかな ファイルサイズは大きくなるけれど、毎回のデータに512バイトになるように
ダミーデータを付加するのはどうでしょ。 >>58
実際には1バイトずつじゃなくてデータ長ごとに書き込みたいんだけど
それができるメソッドは公式にあるのだろうかという疑問でした。
データ取得の度にflushを使うとその都度10msかかるのでそれは避けたいけど、似たようなことをしたいのです。 よくわからないのだけど、たとえば50m秒ごとに128バイトのデータを受けるとして、
あるときは直後にSDへの書き込みがあり、あるときは、150m秒後のデータ受け取りまで
書き込みが待たされることが問題なのでしょうか。
記録を終了する時点で、フラッシュするなら問題はなさそうだけど。
それとも、いきなり電源を落としたような場合に、どこまでが保全できているかが問題? >>62
簡単に説明すると、
数msごとに数十バイトのデータ取得を行っています。取得データにはデータ取得の時間(起動からの時間)も含まれます。
取得データをSDカードに書き込んでいるのですが、書き込まれたデータを見ると、
基本は一定時間ごとにデータが取得できていますが、10数回に一回程度その時間が約3倍程度に伸びています。
その原因がセクタ書き込み?によるものと推測しています。
この3倍程度になる時間をなくしたい or 極力短くしたいというのが狙いです。
>いきなり電源を落としたような場合に、どこまでが保全できているかが問題?
flushは一通りデータ取得した後に行うので問題ありません。途中で電源落ちた場合にデータが保存されない点は今回は不問です。 >>63
データの取得はタイマー割り込みでやってて、取得したデータは取得時間と一緒に
FIFOに入れてるのでしょうか。
ファイルシステムがビジーの間に、データを取りこぼしているような気がします。 >>63
自分も興味あったんで検索してみたけどもうここは見た?
https://arduino.stackexchange.com/questions/28540/how-to-increase-sd-card-write-speed-in-arduino
ざっくりとSDFat library使えって話と自前のバッファ用意しろって話の2つのようだが
まあほんとに速度が必要なら自分ならFATシステム使わずに直で書くかな
そもそもArduinohaは使わないかも ありがとうございます。参考にさせてもらいます。
自分も腰据えてやるなら、別のマイコン基板使う方がいいなと思ってます。 Arduinoを使うのを前提にするとしても
速度求めるならFATなんて使わない方が良さそうだけど
そういうライブラリは無いのかねえ SdFat使ってみましたが、多少改善されましたが劇的な変化はなかったです。
Write関数でバッファとサイズ指定した場合でも 途中で書き込んでしまった、、、
Write関数でバッファとサイズ指定した場合でも、結局セクタ毎に遅延は発生しますかね。
一応試してみますがあまり期待はできないかな。 >>70
FATでファイルを開いたままにしといてどんどん書き込んでるんでしょ?
バッファが小さけりゃ小さいほど遅延も少ないのでは?
バッファサイズを色々変えて試してみましたか?
どういうスケッチになってますか? >>71
もちろんバッファを小さくして、都度データをSDカードに転送できれば良いのですが、その方法を探していました。
で、色々調べてたんですが、そもそもやろうとしていることがSDカードのHardwareとしての仕様から無理っぽいとわかりました。
512Byteごとにデータを送るのは必須なので、データ取得タイミングを一定にする目的を達成するには、
1. データ取得の都度、データ量が512Byteになるようダミーデータを追加する
2. SDカードへのデータ転送速度を一度のデータ取得時間に比べて無視できるほど十分に小さくする
という方法しかなさそうです。
1は、一回あたりのデータ取得時間が現状よりも長くなる、2は現状の基板を変更する必要がある
ということで、今後どうするか考えます。
長々とお付き合い頂きありがとうございました。 >>72
ちょっと何言ってるのか分からないな
>512Byteごとにデータを送るのは必須
は?それ誰の都合? データ取得と書き込み処理を分けて暇なときに書き込むようにすれば? >>73
え、違うのか?と思ったけど、確かにflush使えばバイト数関係なかった。
>>74
基本、暇なときがないわけですが、それでも現状なるべくそうなるようにしています。
データ取得するにあたってセンサにコマンド送ってセンサがデータ取得するのを待つ必要があるんですが、その間に書き込みを行ってます。
その時間が極めて短いので、512Byteごとにデータ転送による待ち時間が出現してしまうんですが。
512Byteのデータをまとめて送る必要がないならそれも可能ですが、その方法がわかんねーっす(flush除く)。 そんなクリティカルな問題なら、Pro miniか何かもう一つ繋げてシリアルで
データ送ってそっちで書き込めば 割り込みを使ってない、ということは
・時間待ち
・データ取り
・ファイル書き込み
のループなのですよね。
ということは、
[期待するループ時間]<[ファイル書き込み遅延時間]
が発生したら、問題のような現象は必ずおきるし。
SDへの書き込みがセクタ単位ってことは、書き込みのタイミングによっては、
ファイルアロケーションテーブル(FAT)への書き込みも連鎖的に発生するし、キャッシュが
小さければ、いったんFATのセクタ読み出しも行ってから書き込みを行うことになるはず。
おまけに、次のクラスタに移るときは、空きクラスタを検索する場合もあるかもしれない。
マイコンのスピードを上げても、ファイル書き込みは時間がかかることはある。
データ取りは割り込みで処理して、FIFOに入れていかないと。 >>80
>データ取りは割り込みで処理して、FIFOに入れていかないと。
で、それいつ処理すんのさw
書き込み時間>データ取得間隔
である以上、どんな方法でも絶対に実現できないよね
割込みとかFIFOとか何の話やら >>81
>書き込み時間>データ取得間隔
>である以上、どんな方法でも絶対に実現できないよね
(データ取得がSDと共通のSPIを使ってると話が違ってくるだろうけど)
>>63を見てもわかると思いますが、
書き込み時間が常にデータ取得間隔より長いわけじゃありません。
たとえば、
・データは5m秒に1回取り込む必要がある。
・ほとんどの書き込み処理時間は1m秒で完了する(実際のSDへの書き込みは実施されない)
・9回に1回、書き込み処理時間が20m秒程度かかる(実際のSDへの書き込みが実施される)
ということなら、
・10回にデータ取り込みで経過する時間が50m秒
・10回のデータ書き込みに29m秒
なので、処理時間の計算は成立するよね。
必要なのは書き込み時間が長いときでも、
・こぼさずにデータを取得すること
・そのデータを一時的にバッファリングするFIFOを設けること >>81が正しいと思います。
誤解を招いたかもしれませんが、センサーのデータ取得には、センサーへのデータ取得命令とセンサーからマイコンへのデータ転送命令を行う必要があります。
一連のループは、
@N+1回目のデータ取得命令(センサにデータ保存)
ASDカードへN回目のデータをSDへ記録
BN+1回目のデータ転送命令(マイコンにデータ保存)
の繰り返しです。@でセンサ側で数msかかるのでその間にAとBを行ってます。Aが長くなるとBが遅れます。
データの取りこぼしうんぬんは割り込み使う場合の話ですかね。上記を順次おこなっているので、データの取りこぼしはありません。
FIFOは関係ありますか。現状もデータはバッファに書き込んでます。バッファが512バイトになるとSD書き込みで時間がかかるという認識です。
上にあるように、マルチコアでSDへのデータ転送を別のコアが担当する以外の方法だと、多かれ少なかれ時間がかかってしまうと思います。 >>82
すみません、言いたいことが理解出来ました。
SDカードへのデータ転送中でもデータ取得のタイミングで割り込み入れて、バッファにデータを溜めこむという事ですね。
それが出来るか謎なのと、大幅なコード変更が必要で時間かかりそうですが、試してみます。 もしかして簡易的な人工呼吸器ってarduinoで作れたりしますか? 医学は実験だし、余裕で作れるよ。
しかし結局はそれを自分に使ってほしいと人々が思うかどうかですね。
医学に対する人々の信頼があまりに崩れると文明そのものが崩壊しかねないので無茶は出来ない。お前もイヤだろ?
しかし医療崩壊が起きてギリギリの線でお前が死にかけている所で、Arduinoが最後の望みだ!という場合ならお前も喜んで使ってほしいと思うかもしれない。
状況によりますな。 ぐぐったらすでにオープンソースであるみたいですね。。
https://github.com/jcl5m1/ventilator
>Arduino Compatible Nano/Clone
Nanoのクローンでもいけるっぽい マイコンなんかより人工呼吸器の他のパーツを準備する方が遥かに面倒だと思うんだけど、なぜArduinoで作れるのかという発想になるのかが不思議 それは「俺の方が考えが上を行っている」という単なるマウント取りでしょ。 >>82
ライブラリをちゃんと見てないんだけど、SDに書き込み中に割込み処理は可能なの?
SPIのクロックにタイマー使ってたりしてない? あ、ごめん、>>84が試すだろうからそっちを待ってるわ。 割り込み試しました。
結論としては、割り込みで一定時間ごとにデータ取得することに成功しました。SDカードにもバイト数関係なくデータが言って時間ごとに書き込まれていました。
ただSDカードのの記録データを見ると、ところどころ取得データが間違っているような現象が見られました。
まだ精査が必要そうです。
具体的には、
- 割り込み時にデータをインクリメントする
- 割り込み後は一回だけファイル書き込み(バッファへの書き込み)を許可する
- ファイル書き込み
- 割り込み待ち
の繰り返しなのですが、たまにインクリメントされないデータが見受けられました。 >>93
乙です。
私もタイマー2でやってる例を見つけました。
一緒に勉強させていただきました。 >>88
人工呼吸器ってこんなブロワーファンで大丈夫なんかね
ダイヤフラムポンプとかでしっかり吐出&吸引しないと肺に出入りしない様な あとちょっとが足りなくて酸素飽和度が下がって体力が失われる
みたいなぎりぎりの所をなんとかするレベルのものでしょう。
その後さらに悪化したらこれではアウト。 >>88
MITでも始まってるようだけど、これは(救命救急用?)手動式を電動機構で駆動するみたい
ペースは手動より正確だし、無いよりは遥かにいいかと > その後さらに悪化したらこれではアウト。
その後は血液に直接酸素を取りこませるエクモになるのだが、
志村に使ってくれたのかなぁ。 17日 発症(倦怠感)
19日 呼吸困難
20日 重度肺炎と診断され入院
23日 陽性反応
25日 転院してICUで人工心肺(エクモ)による治療開始
29日 死亡 医療向けは難しいからどちらかというと在宅リモートオフィス勤務支援機材、例えば
カメラスピーカーがネット繋がる機械などが可能性があると思う。
遠隔医療のための機材作成などもありうる。多くの人が病院に行かずに診療可能だから
可能性あると思う。体温や血圧計測など宅配便で送ってコロナ感染者の在宅診療に使う
などの機材。その後に薬を宅配便で送付するなどできる。
将来的には隔離空間で人が直接接しなくとも良い医療用ロボットなども視野に入る
だろうと思う。もっともそちらは産業用ロボットや車作ってる企業が手を出すかも
しれないが。
人工呼吸器だと動物用のものを転用するときに細かい制御が必要になるらしい。
Arduinoで制御できると良いけど。 ど初心者です。教えて下さい。
沢山のADCを使いたいのでSTM32F303シリーズに目をつけているのですが、
ArduinoIDEからSTM32シリーズを利用するにあたって、ボード情報を追加してSTM32を選択するのと、STM32duinoを利用するのって全く別物なのでしょうか。 stm32duinoってArduino環境でボード情報を追加して開発するためのものだと思うんだけど >>105
沢山といってもピンキリだから、おおよその数は分からんのかな >>106
STM32duinoの情報を見ていると”F1シリーズ以外動作は未確認”のような記述があるのですが、
ボード情報を追加してSTM32を探すとF3,F4シリーズが普通に出てくるのでその点を
疑問に思ったことと、STM32duinoにはbootloaderを書き込むとか記述があって
「もしかして別物」と思った次第です。 >>110
ありがとうございます。
自分が勘違いしていた部分が解ってきました。
私はSTM32duinoとbootloaderが一体のものかと思っていたのですが、そうではないのですね。
bootloaderはF103シリーズをmaple(←使ったこと無いですが)と同じように動作させる為のもので、
これを導入すればSTLinkを使わなくてもプログラムを書き込める。STLinkを使うならArduinoIDEの
Bord情報から該当する物を選べばArduinoMiniのようにプログラムの書き込みができ、
命令については下のリンクの物が使えるようになる。と
https://scrapbox.io/ArduinoSTM32/Arduino_STM32_リファレンス_日本語版
“STM32duino”と”Arduino core for STM32”はほぼ同義語ですね。
私の理解が間違っていたらご指摘お願いします。 ちょっとググったら出てきたがSTM32でのArduinoはいくつか種類があるみたいだよ
STM32F103の開発環境
https://qiita.com/nanbuwks/items/594568db3f5dc1d6c5fd そもそも最初にどうやってボード情報を追加したんだろうか。
STM32スレで聞いた方が詳しい人が居るんじゃないかね。 連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
学術の巨大掲示板群 - アルファ・ラボ
ttp://x0000.net ADCを27個使いたいからSTM32F3って発想が良く分からないなあ
最大でも4chしか載ってないようだけど
せめてこんなの使うんじゃない?
http://akizukidenshi.com/catalog/g/gI-00238/
それでも4個必要 >>115
ボード情報はstm32duinoだね。だから、105の質問は同じものについて違うのか聞いてたということだ。
開発環境のまとめ記事を読む限り、stm32duinoで良い気がするけど。 あごめん、最大38チャンネルとかあるんだな
>>116は忘れてくれ 105です。
STM32duinoと呼ばれる開発環境が二つある件、
両環境ともサポートフォーラムが共通のようですね。
https://www.stm32duino.com/index.php
片方は開発・メンテナンスが終わっているようです。
先にリンクで示した命令セットは開発・メンテナンスが終わった側の物を示していた
ようですが、フォーラムをざっと見た範囲では命令セットの違いに言及がないので、
同じ物と考え今ある知識で環境を整え試してみます。
ありがとうございました。 プログラム全然わからない初心者だけど
初心者がやろうと思いつくことなんてもうすでに誰かがやってるな
自分で書いたプログラムが思い通りに動くと楽しいだろうなとarduino買ったけど
書くより誰か似たようなことやってないか検索する作業になってる
みんなそんなもんだよな? >>120
それがarduinoのコンセプトではないか?
サクッとプロトタイプ作れて動作確認もできる
実際に基板起こす為の前準備には最高だと思う >>120
そうでもないなあ、そのままズバリってなかなか無いわ
2つ3つ組み合わせたりアレンジしたりが普通
そのためには何やってるか理解しなくちゃならないから結構楽しい >>120
俺は日常の不便を解消する手段になってるな
簡単な例だと、
電源落とすと設定忘れるアホな装置があって、それにTiny付けて
電源が入ったら、設定ボタンを長押し2回、短押し1回させるようにして便利になった
あとPCでTV見るのにリモコン作ったり
ステレオの音が消えるとイルミもOFFするような音声連動装置とか
エアコンの自分好みな全自動操作とか >>120
それを言い出したら、多くの人が楽しんでやってることはたいてい人がやったことばかり。
たとえば、野球でもホームランもバントも併殺プレーも他の人が既にやってる。
そこから何かの価値を見出せるかどうかは、取り組みの違い。 新しいモジュール買った時の動作テスト以外で他人のソースをそのままって一度も無いな
ドライバも極力自分で必要最小限の物書く >>120
その発想がお前の思考限界そのものだな
しかもプログラムだけじゃなく電子回路のデの字も知らないんだろう?
話が10年早いわ >>120
人それぞれ
他人が作ったのは理解する必要がある
それよりも作ったほうが早いとかあるよ
細かいところ気に入らないとか ちょっと動作を試して見るのと 目的の物を完成させるのとは 天と地ほど違いが有るんじゃないかな。 ちょっと動作を試して見るのと 目的の物を完成させるのとは 天と地ほど違いが有るんじゃないかな。 >>120 >自分で書いたプログラムが思い通りに動くと楽しいだろうなと
プログラミングを楽しみたいなら、他人が既にやってるかどうかなんて気にする必要無い。
気の向くままにやりたいことをやればいいと思う。 ちょっとおせーて
ペルチェ素子でペット用エアコン作ろうとしてて、以下のような動きを制御でやりたいんだけど、
何を使ったらいいのかな esp32とかaruduino ? もっと簡単で安いやつとか?
それともブレッドボードに抵抗とLED刺すレベルでできるもの?
ちなみにスキルレベルはesp32でiotとかいう本で、載っているiotデバイスを組んだレベル
スイッチを入れたらペルチェ素子に電流が流れ、同時にファン1、ファン2を駆動
冷却側、発熱側の温度を見ながら、冷却効率がよいペルチェへの電圧、
ファンの回転数を得るため、3要素を随時変更しながらデータをとりたい
入力: ペルチェ素子 ・最大電圧(Umax):16V ・最大電流(Imax):26A
ファン1 (ペルチェ素子冷却側への送風用) ・電源電圧:DC20V ・消費電流:0.08A
ファン2 (ペルチェ素子発熱側の冷却用) 同上
出力: LED ペルチェ素子通電確認用
LED ファン1 作動確認用
LED ファン2 作動確認用
電源: アンカーのモバイルバッテリー リチウムイオン 5V 2.4 A >>131
制御だけならマイコン系ならなんでもできるだろうけど、ペルチェの電源部はどうすんの?
冷やす対象と温度によっては部屋ごとエアコンかけた方が省エネになるかも。 無線で各データのモニタが必要ならESP32になるが、遠隔監視が不要ならuSDスロット付きのボードを使う手もある。
ペルチェもファンも電圧高いけど、5Vで動くならいいが、そうでないなら昇圧電源回路が必要になる。
ペルチェは効率悪いと聞くが、連続動作時間に適したバッテリー容量は確保できてるか。
モバイルバッテリーじゃなくてコンセントからUSBアダプタで電源供給した方が良いのでは。 レスありがとうございます。
ペルチェの電源は、ペットの移動用ケージ用なのでモバイルじゃなきゃなんですよ。
どの程度の電力でどの程度の冷え、時間もつのか含めて実験しようと思ってます。
uSDは初めて聞いたので調べてみます uSDスロットってマイクロSDカードスロットのことだよ
ギリシャ文字を入力出来ないのが昔は普通だったのでμをuと表現する習慣があって今でも残ってる ポータブル冷温庫がカーバッテリーで数時間とかだから、モバイルバッテリーだと使い物にならんだろう。 uSDスロット付きでarduino IDEで開発できるボード
https://www.switch-science.com/catalog/2751/
制御信号系はこれ一つで出来るはず。FANの回転検出は恐らくプルアップ抵抗を外付けする必要があるけど。
温度測定するならセンサが必要だけど、アナログ信号出力のセンサでも問題ない。ソフト開発としてはその方が楽。
ただ、ペルチェは冷える以上に(1-効率)の分だけ放熱部が熱を帯びる。
それを排熱する余裕があるのなら、ペットの床をアルミ板にしてアルミ板にFANで送風する方が良さそうな気がする。 なんかEEPROMって書き込み回数が決まってて、頻繁に使うと打ち止めになりそうで怖いな
どういうときに使うの? >>140
設定の保存とかによく使うけど
データシートには最低保証の値が書いてあるので・・・参考までに
http://madlabo.oops.jp/MAD/0026/0026.htm
こういう実験して同じアドレスをずっと書き換え続けてそのアドレスが死ぬまで2300万回かかったとある
ウェアレベリングしで書き込み番地を分散させれば更なる寿命が期待できる
ちなみにウェアレベリングせず同じ番地に書いたとして2300万回保存するには
10秒に1回保存したとするとおよそ7.3年の間書き込み続ける必要がある >>135
そのペルチェ素子は秋月で売ってる260W版みたいだけど、いくら実験するにしても、12Wのモバイルバッテリじゃ、冷やすのは殆ど無理じゃないの? ペルチェ+モバイル事態がやはり無謀なのでは?
それが冷却に効率的なら、そういう製品が出てるだろうし。
全く電子工作にならないけど、CB缶で動作する冷蔵庫が省エネだよ。 >>141
書き込み制限よく気にして不安になるけど、そう言う計算するとまあいっかつてなるよな。 ペルチェ素子が出始めた頃、みんなが冷蔵庫やクーラーを作ろうとしたが、
あまりのパワーの無さと電力消費の酷さにしょんぼりしてブームは去った。 ペルチェ素子の使い所は局所冷却やね。
ペルチェ素子が出てから星座の写真はグッと質が上がった。 >>146
>ペルチェ素子が出てから星座の写真はグッと質が上がった。
ペルチェ素子を重ねて使ってCCDを冷却し量子雑音を抑制、
CCDの蓄積時間(カメラの回路をHack)を延ばして感度を上げるってことかな。
透過型電子顕微鏡でも冷却CCD使っている機種もある。 ペルチェってパナソニックとかが
ゼーベック効果で発電させるのやってるよね
ゴミ焼却場で実験が始まってるって聞いた覚えが >>149
ペルチェ素子を使ってゼーベック効果で発電させてるって聞いたんだけど?
ゼーベック素子って有るの? ペルチェ効果とゼーベック効果が真逆ということであって、
ペルチェ素子に電流を流したらペルチェ効果がおきて、
ペルチェ素子に温度差を与えたらゼーベック効果がおきる、
ということですよ。 >>151に追記
どちらの用途に使うかで最適な設計は違ってくるかもしれないですが。 >>148
でペルチェでゼーベック効果使って発電ってかいて
>>149
でペルチェはゼーベックの真逆って言うから
ゼーベック素子ってのが世の中に有るのかが
質問なんだけど
>>151
知ってますよ
パナソニックの冷却ローラーで発電出来ないか
検討したことあるし >>151
その通りや。行間読み足りんかったわ。すまんな。 >>141
10秒に1回で7年も持つんですか!
EEPROMに対するイメージが変わりました! delayってあまり多用しないほうがいいんですかね?
同時に何かするわけでもない場合でも5秒動いて5秒停止みたいな
動作は良くないんでしょうか? 普通は処理をがつがつ詰め込むから多用しないものだけど、その必要がないなら別に問題ないね >>158
ありがとうございます 安心しました
もっと無駄なく動かせるように考えなきゃ… >>157
基本的に待ち時間5秒は5秒間連続してフルスピードで何もしませんって命令を出すだけで、CPUが止まったりする様なエコロジーな動きだったりはしない。
後、命令に関しても5秒で終わってない場合も5秒ぐらい待つのは変わらないのでROSみたいな都合のいい事にはならない。
delayだから悪いとは言わないけど、良いともいえないんじゃないのかな。 EEPROMの寿命はものによるので、実力値がどうなのかは
楽観しすぎない方がいいと思う。
↓これはどれぐらいの頻度で書き換えをしていたんだろう。
https://www.eizo.co.jp/support/important/notice/index.html >>160
なんかスリープするディレイ的なの使えるライブラリあるよね。
あれ便利。精度は出ないけど。 >>161
EEPROMの寿命、気になっていたんですが、書き込み回数が十分に少ない場合、どれくらいなんでしょう? >>164
おっ、こんなチビロボでもオムニ・ホイールが有るんだね? >>161
EEPROMはだいたい10万回保証してるよね
10万回/15年/365日=18.3回
でもそれだと1日18回以上解像度の変更
例:1台のモニタに複数のPCを接続して切り替えながら使う等
ああ、一旦書き込んだものは10年か20年で消えるから
解像度保持してるデータテーブルが飛んだとかそっちのほうかもしれないね >>166
>>161のリンク先の「不具合に至る使用条件」を見ると映像信号がないときには
映像信号の検出のトライをして、検出してもしなくても状態をEEPROMに書き込んでいたんだと思う。
電源の入ったモニターに映像信号を入れてから認識するまでに、俺なら10秒以上もかかれば
何か問題でもあるのではと不安になると思う。
数秒に1回は書き込んでいたんじゃなかろうか。 >>167
下まで読んでなかったわ
>入力信号を定期的に検出する仕様となっており、都度、モニター内のメモリーに書き込みを行なっています。
ほんまや5秒とか10秒で書きこみしてたらそら逝くなあ
10秒としたら1ヶ月で26万回やもん
出荷して1年くらいで大量の異常発生
→無償修理対象にする
→15年経過したので打ち切ります
こんな感じだろうな
本当に2300万回持つとしたら7年だからそこまで問題にならなかったろう arduinoだとEEPROMの現在値と書こうとする値を比較して、
同じ値なら上書きを行わないって命令があったと思う ビット演算子とかサラっと使えるとカッコいいですね…
初心者だけど頑張るぞぉおおお >>171
後でいじるときに読みづらいからなるべく使わないでくれ。 ついさっきマルツからSeeeduinoのXIAOが届いた
これマジ小さいからいろんなポータブル機器が作れそう
とりあえず比較としてNANOやUNOやタバコ箱と並べてみたがNANOの半分サイズだ
https://i.imgur.com/eIQgeHt.jpg
手始めに電子タバコの電源機器作りを目指してみようと思う >>175
SDカードより小さいかな…
もはやセンサーサイズだね そんなことより未だに電子タバコとか言ってるキチガイがいることに驚くわ >>177
そんなことで驚いていたら、驚きっぱなしですね。 >>179
いや、そうでもない、今月初かな
タバコでさえ製造禁止しろって流れなのに
底抜けのキチガイはいるもんだ
まあ早死にしてくれそうだからかまわないけど 電子タバコと言ってる人を今月初めて見て驚いたのか。見聞の狭い人だ。
直接見聞きしなくても、電子タバコと言ってる人、書いてる人がいくらでも
いることぐらい想像できそうなもの。 >>176
とりあえずSDカードとの比較を撮ってみたよ
https://i.imgur.com/wSfMdNM.jpg
確かにSDカードよりも小さい
このサイズなら難なくミニ四駆にも載せられそうだ
レッツ&ゴー世代としては夢が現実化できそうでワクワクする Arduinoどころか電子工作自体まだ初心者で、動作確認すらまともに出来ないがひとまずゴールデンウィークと
コロナの影響で4月末から19連休になるから、その期間を活用していろいろ弄り始めてみるよ パンドラの箱を開けちゃいましたが・・・
何かあったときは相談することもあると思うんで宜しくお願いしやすm(_ _)m >>175
これ、使ってみたい!
でも、3.3Vってハードル高い。
OLEDモジュールって3.3Vのはありましたっけ? OLEDってたしかラズパイでも使えたしいけるんじゃね? >>189
自分はまだよく解ってないんですが、とりあえずOLEDは秋月で以下のモジュールを買いました
http://akizukidenshi.com/catalog/g/gP-12031/
※先に上げた画像左上端に写ってるやつがこれです
この製品説明にある電源電圧:3〜5.5Vというのは、質問にある内容に対応してることにはなるんじゃないでしょうか? >>164
これって左右にはどうやって動くんだ?
オムニホイールって十字に配置して、前後の移動の時は左右のタイヤ、左右に動く時は
上下のタイヤが回転する物だと思ってたけど、それとはまた別の駆動方法なん? >>192
このタイプのホイール自体は以前から目にしてたけど、メカナムホイールって名称で
オムニホイールとは別の物だとは知らんかったthx
グリップ力がもの凄い重要で実用性低い様に見える >>194
もっと大型のメカナムを屋外で使ったけど、オムニに比べて、低駆動(摩擦)力、高価、低耐久性、(小石や砂利が詰まったり)路面組成対応性が低かった
でもホビーには面白いと思う >>192
あっ両者の違いについては >>193 さんの通りね 先日ペルチェで質問した >>131 です。いろいろレスありがとうございました。
実験用テストベッドになるハードデバイスは組み終わりましたが、回路設計などはこれからって感じです。
で、今日は別のものを考えていて聞きたいなと思います。
こっちは結構緊急です。
コロナで在宅ワークになったので、自室で会社パソコンで作業するのですが、
パソコン触っていない時間が少しあると、スカイプやらteamsやらで上司同僚に
わかってしまうので、定期的 3とか5分に一回何かしらキーボードのボタンを押す
ようなデバイスを作りたいと思っていて、最初はアマゾンでスイッチボットも考えたけど
バッテリーや時間設定のカスタマイズ性も考えると自作がいいかと思ってます。
で、サーボモーターをマイコンで動かすようにすればいいかなと思って、
例えば門型構造材をキーボードのキー上空数センチを横断するように配置固定し、
横断部の任意位置にサーボを配置固定できるようにし、スイッチを入れると
設定した時間ごとにサーボのアームが例えば0度から45度など任意設定した
角度に動きまた0度に戻る。それをサイクルで繰り返すというもの。
ネット接続とかはなくてそれだけのシンプルなものです。
電源は携帯充電用のUSB5vでokです。 サーボモーターとマイコンはなににすればいいですかねってことです。
選ぶ基準は、安さと扱いやすさ、入手性かな。
スイッチサイエンスと秋月は買い物経験あります。
今後の他用途への汎用性も考えると
M5STACKの高機能タイプも考えたけど、今回は専用にしちゃおうと思って。
M5STACKやESP32のシンプルなやつとかがいいですかね。
よくわからないんで、おすすめおしえてください。 >>191
有難うです!
しばらくAtduinoから離れていましたが、書き込みのおかげでまた戻ってきそうです。
ちなみにEEPROMは内蔵されてませんよね? あと、できればサンプルスケッチも教えてもらえると助かります。 角度と時間サイクルだけいじればいいようなやつなら最高です。よろしくおねがいします。 Arduinoで何かしたいという目的もあるならアレだけど、そうじゃなくて結果だけで良いなら>>197なんかはマウス操作自動化ツールを入れるのが手っ取り早い気がする >>201
そんなのがあるんですか! それで済めばOKです w 同じ作業繰り返すのでいいなら、メモ帳でも開いてどこかのキーに重りでも置いとけばいいのでは。 >>197
メカ的なものにこだわらなければ32u4 なnano(micro?)、leonardで何かキーコード入れとけば簡単。 >>197
そのやる気があるなら、普通に仕事しろよ!
お前一人意外、全員に迷惑なんだわ。分かる? >>205
いかに労働せず賃金を得るかって考えるのはあたり前でしょ。
迷惑だなんだ言ってるやつは一生奴隷だよw >>207
それね でもね、この価値観と思考の人が多数派になったらそれはそれで困りますしね 複雑なものがありますね >>202
自分はRocket Mouseていう有料ツール持ってるけど、無料でも十分だと思う
とりあえず適当にググッてみた
https://freesoft-100.com/pasokon/mouse-macro.html
最初の奴でも十分かと
>>207
それだと語弊があるな
得られる対価分の成果を出してるなら文句言われる筋合いもないし問題ないけど、その書き方だと成果関係なしに如何に対価を多く得るか、とも読める >>207
そのうち会社がそんなメンツばかりになると外部請負に仕事出したり、最後儲からない部署閉鎖。最後は倒産して結果あなた生涯賃金だだ下がり >>202
マウスに猫じゃらし付けて、猫に遊ばせる エジソンが鉄道会社で働いていたとき、安全確認の定時連絡をモールスで送る機械を
作って仕事をさぼっていたのがばれてクビになった話がある。
>>197 は将来偉大な発明家になるかも知れないぞ。 そりゃ居眠りしてても信号送り続けてたらマジ大惨事になるしクビ当然だろうとしか まあ、雇う側が労働生産性の低さとテレワークの有用性に気づくきっかけにはなる
結果、雇われる側の有利には決してならないのは覚悟した方がいい、今のうちに楽しんでおいて 仕事さぼっててもそれをジャッジするのは経営側のやる事だろ?
何の関係もない他人が人のことどうこう言ってるのって本当に気持ち悪い
それとDS2781使いたいんだけどArduinoでできるのでしょうか
お願いします。 ニューコメンの蒸気機関の例を引き合いに出せば同じサボりでも叩きにくそうだが
それでもここの住人なら造作も無いのかなw >>216
お前の問題点は偉そうな割に何ひとつ自分じゃ調べられないってとこだろうな
あげくに「気持ち悪い」程度のチンケな表現力しか持ち合わせていない
よく雇ってもらってる、さしずめ公務員か? 一生奴隷か、社畜さん悩ましいなw
こいつのようにチンケなちょろまかしレベルで
自分は奴隷でないと思い込める猿が一番幸せかも>>ID:RDO2V+ce >>213
まだこの世に無くて作りたいものがいっぱい頭の中にはあるんだけど、機械や自動車のハード業界だったから電気電子はからっきしなんよね で、今勉強中なんだけど、自分はアイデアに集中して難しいことはわかる人にやってもらったほうが良いのかななんて思ったり
ちなさっきM5stackキットをスイッチサイエンスで発注したところ
ゴールデンウィークはヒキってこれで開発と遊びするしか無いかな で、良く開発ボードとかデベロップキットとか言うけど、あれどう言う意味? 試作で完成したら同じもの量産すれば良いだけちゃうん?
流石にブレッドボード使わないくらいは想像つくけど
量産はもっと安い別の物で作るとか? 開発ボードが五千円で量産ボードが千円として、何万個作るなら良いけど三十台しか作らないならあんま意味ない? >>223
開発ボードは量産品への組み込みが禁止されてる場合がある
ついさっきまでSTM32スレでその話がされてたw 最近世界中でコロナで引きこもってるせいか
ライブラリーのアップデートが多いなw 気のせいかw >>223
Arduino開発者の意向としては、第一に“ライセンスを非商用と商用で分けるべき”という意味合いが含まれてるらしいね
そして商用なら無断でやらず、まず自分達に相談してほしいという意向らしい
つまり暗に勝手に商用として利用してほしくないという意味合いがあるよ
そもそもArduinoはあくまで教材・趣味としての開発が製品コンセプトであり、企業や個人的商売の開発を手助けするために作られたわけじゃない
要は商用として使われることを製品コンセプトとしてるわけじゃない
だから量産するとなれば勝手にやるのは問題だよ >>223
一応ちょっと調べた感じだと以下のような説明ブログがある
http://easylabo.com/2015/04/arduino/9065/
これ見る限りだと量産となれば相応のライセンス取得が発生してくると思うよ >>222
話の流れ的に要約すると、自動でパソコン操作してくれる装置を作りたいってこと?
それなら“ゼロからよくわかる!Aruduinoで電子工作入門ガイド”という教本にある
“Chapter7 インターネットと連携しよう”の項を応用してみたらいいんじゃないかな
これ内容としてはESPr DeveloperというモジュールとIFTTTというWebサービスを
使ってツイッターに自動投稿するシステムを紹介してる
これを上手く応用すればいけるんじゃないかい? 一応補足として・・・
具体的な内容説明は技術に関することだから、著書の著作権に抵触する恐れがあるのでここに書くことはできない
もし興味があれば教本を自分で購入することを勧める
てか時間が差し迫ってるならそういう教本を買うことが一番手っ取り早いよ >>222
世の中にないものと思ってて、色々調べていくと、同じことを既にやっている人がいることに気づく。 >>231
「車輪の再発明」的な? ʕ´•ᴥ•`ʔ >>131
物理的にキーボードを押すより偽キーボードを作ったほうが楽じゃない?
Arduino leonardo等のHIDクラスを使ってデータを送り続ければPC側はキーボード入力と認識するはず
入力は一つのキーに限られないから偽装レベルも上がるよ >>204
Mouse.move()で何分かに1度マウスカーソルを1ドット動かせば良いのでは。
既に誰か作ってそうだけどね。 >一生奴隷か、社畜さん悩ましいなw
その状態から脱するために、内職をしようとしてるんでは。
実家内制手工業の時代は遥か昔に終わったのに仕事してるか見張ってる会社が異常だと思う。
接客業なんかはしゃーないが、裁量労働なのに毎日の出社が義務とか有給休暇とか労働時間を管理するなどの日本企業の考えがそもそもズレとる。
Arduino含めて技術は人手を減らす目的もある。この話は正に、仕事にかける無駄な時間と労力を減らす目的に適しているのでは。
でも雇用主との契約がある以上はリスクを考えながら行動してね。 >実家内制手工業
"実際、家内制手工業"と書くつもりだったのに、
実家で内職するみたいな言葉になってしまった・・・ >>230
もっと単純な理由かと思ってたけど、意外と深いと言うか面倒そうですね ラズベリーパイとか他のマイコンボードでも同じような理由なんでしょうね 生産性上げるのにこれまではweb系の技術が世界を引っ張ってきたけど、端末モニターでほとんど完結するもので、
それは来るところまでは来たので一息ついていて、
これからは身の回りの物理の現実世界や身体に技術が直接干渉し生産性を上げるフェーズに入ってきているのが
今じゃないかと思っていて。
IoT、AIとかロボットとかが一つだけど、そうすると急激に需要が増すのが組み込み、マイコン系、ハード(機械要素含む)
の製品と技術、それらを統合して製品化する構想力、スキル、それを持つ人材じゃないかと思っていて、
マイコン系の技術者と機械系の技術者ははっきりわかれていて
両方の技術を持つ人はあんまりいないんじゃないかと。つまり片側を持つ人がもう一つ手に入れる、または
橋渡しをするコーディネート的なポジションが得られればこれから先の労働人生(または資本家サイドもよし)は
やりがいあって楽しくなるような気がする。 生産性向上と同時に現状労働者階級の自分が資本家階級との利害対立の中で有利に振る舞うための技術開発の一環としてマウスのソリューションがあったりって感じでw これからはものづくりの時代が数十年続くから方向性は間違ってないと思うよ >>234
何か考えてること実現するならusbにモーターつなげてダンボールでカム作ってキーボードにガムテで固定しときゃいい気がしてきた。音うるさいけど。 パソコンを操作してる状態にするだけならWindowsアプリ作って
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 60000, 8000, 0, 0);
みたいにタイマーイベントでマウスを定期的に動かせばいけるよ。
::PostMessage();
でボタンをクリックすることもできるし、外付けのハードは必要ない。 >>245
アプリはハードル高い。VBSとかでもできそう。でもスリープ入らない? 皆さん多くのアイデアありがとうございます。
今一番自分的に刺さってるのが >>203 の
やり方で、その次がモーターとカムかな
こんな簡単なので良いんだって
難しく考えすぎちゃうね
関係ないけど、自動ドアとかで挟み込み防止機能ってあるでしょ? あれってどう言う理屈? 手挟むとモーターの電流上がってそれを検出とか? その手のはオンラインゲーム初期にいろいろあったな
その辺に利用されたマウスマクロユーティリティもあるし そのうち本当に仕事してるのか判断するアルゴリズムが導入されそう
というかすでに導入されてる? >>251
アルゴリズムは今後あるかもだけど、リアルタイム監視はされてる気がする 社内ネットワーク接続の時は
上司との会話で、もしかして俺の画面見てる?と受け取れる下りがあったり
今は自宅ネットだから安心してはいるが、、、 もしかして もうだいぶ昔にIT系ニュースの記事で見た気がする
在宅でなく社内端末だけどアクセスやら頻度で判定するの >>253
コロナ在宅の影響で一気に導入が進みそうで怖いなぁ
会社でも働いてないけど、今はなおさら働いてない アホか、同一労働同一賃金なのだから座ってる時間は関係ねえ >>247
専門じゃないけど、挟んだことを検知するドアとは独立した可動板とドアが締まりきった位置にあることを検知するセンサーは最低あると思う。 >>238
趣味の範囲じゃなく何か商用的な部分が絡むと一気に面倒になるのが世の仕組みだよ
商用が絡むと結局財産的な問題が発生して大人の事情が絡んでくるんだからね
あとここは電子工作に関する場で、機械工作に関することはスレチになるのであまり掘り下げないが、今まで機械工作の方を
専攻してたなら例えば以下のようなオモチャ加工機を改造して、物理的な自動操作装置を作ってみるのも面白いと思うよ
https://www.aliexpress.com/i/32840507056.html
このシリーズはそれこそCNC仕様の機種もあるから、それを真似てArduino活用でCNC化して自動操作システムを作るとかね
ちなみにオレも専攻は機械工作の方で最近このシリーズの機種を買って遊んでるが結構面白いよ
そしてデフォじゃ全然使い物にならないけど、相応の調整や改造を施せばアルミ程度ならそこそこ加工できてそれなりに使い物になる サボりたいという気持ちは誰でもあると思うが
それを恥じる事も無くこんな所に書いちゃうとは 真面目・不真面目関係無しに、お金が発生してる以上サボろうとするのは社会人として成ってないな
強いてかろうじてサボりが許されるのは道楽会社ぐらいだろ まぁあと明らかに対価に見合わない賃金となるブラック会社か 会社も会社法の上で成り立ってる。社員も何らかの雇用契約が結ばれてる。
サボりと言えば聞こえは良いが、債務不履行や詐欺罪になる可能性もある。
大人から見たら、今回の件もバイトテロと同じ。
意図的に雇用主を騙すと、損害賠償もありえる。
仕事が嫌なら辞めろ。 スレに関係のない話題を延々と、即ちこれも一種の「サボり」だ
自覚がないだけで人間は常にサボろうとする生き物だ 開き直るか改めようと努力するか
ここに人としての差が出るのよね そもそも本当に仕事が出来る人はサボろうという発想自体出ない
何故なら呼吸をするようなレベルで仕事が板についてるから
呼吸に煩わしさを感じないのと一緒
そもそも基本的に煩わしさの度合いってスキルに比例するもの ちなみにサボりの話でエジソンの話があるが、確かエジソンって交流に理解を示せなかった二流エンジニアじゃなかったっけ?
そこは結局テスラに及ばなかったんじゃなかったっけ? てかそれこそテスラなんて3・6・9の法則を重んじて守るくらいキッチリしてたらしいね
一流ってやっぱそういうところに表れるんだと思うよ
ちなみにオレは何か設定を試験的に施すとき、テスラに倣い3・6・9の法則を取り入れたりすることはある
例えばPID制御においてゲイン値の分配を3・6・9を基軸に倍数で組み合わせたりね
これがまたオカルト的だが案外上手くいったりする 働く奴が2割いれば集団は機能すると言われているけれど
それは経営側や外部から見た話で、一緒に働く仲間から見れば
「俺はお前の為に働いてるんじゃねえ」と顔に水でもぶっ掛けたくなるだろうな
そんな嫌悪感を抱かれる態度で、初心者だから教えてとか虫が良すぎる
隅っこでコソコソやってろよ コロナ収束までずっとこんななんだろうな…(´・ω・`) 質問スレで本題でもない脱線話に説教始めちゃうのって真面目なの?
有能とは思えないんだけど これが無能な働き者と言う奴です。空気が読めないから組織でも空回りしてるんだろうなと思う。 以前イーサネットシールド2が接続出来ないと質問したんですが、
クロスケーブルとストレート両方試してもだめでした…
環境はwi-fiでネット接続してるubuntu-PCにLANケーブルでUNOと
繋いでいます。ライブラリはethernet2のwebserverを利用して、
MACアドレスとIPアドレスを追記しました。
ifconfig(ipconfig)でIPアドレスを確認すると、wi-fi接続PCなので
イーサネット接続の箇所にはIPアドレスは無く、ワイヤレスの箇所には
192.168.○.○が表示されているので、それに近いアドレスを色々試しています。
ひょっとしてネットワーク接続の設定から「このIPアドレスを使う」等の
設定が必要なんでしょうか? 同じような環境で接続されている方いますか? >>276
ハイ… 「新しい接続」を追加してあれこれやってみてます…
でも選択項目がたくさんありすぎる…
もうちょっと頑張って調べてみます。 ブリッジ接続みたいな感じになるとは思うんだよなぁ…たぶん… >>275
今の構成だとPCの有線LANインターフェースのアドレス設定が必要
そういうことがわからなければ無線LANルーターに有線LANポートがあると思うから、arduinoはそこに繋いでしまってDHCPでアドレス貰う方が簡単 >>279
そうですよね…
ルーターが遠くにあるので10mのLANケーブル買ってきた
ほうが早そうです… みなさんありがとう 補足
webserverにするのならPCのwifi側IPアドレスの下3桁だけを変更したアドレスをarduinoに設定して無線LANルータの有線LANポートに繋ぐと多分上手くいく
Arduinoというよりネットワークの知識がないのが問題なのでマイコンは知らなくてもTCP/IPの知識がある身近な人に聞けば解決する >>281
そう、通信の部分で手こずります…いつも…
ありがとうございました。 >>275
Ubuntu-PCのLANポートに固定IPの設定が必要
Ubuntuは通常はCLIではnetplanで固定IPの設定をするが
デスクトップ環境を使っててnetwork managerを使ってるならGUIで設定できるはず
わからないなら方法はググるかLinux板で質問するといい
Arduino UnoでUbuntu-PCをルータ代わりにしてUbuntu-PC以外のPCと通信したければ
UbuntuPCにIPv4のフォワーディングする設定も必要
/etc/sysctl.conf
で
net.ipv4.ip_forward=1
となってればOK
#net.ipv4.ip_forward=1
コメントアウトされてればコメントアウトをはずす
IPv6もルーティングさせたければ
#net.ipv6.conf.all.forwarding=1
これもコメントアウトをはずす
わからなければLinux板で質問するといい あと、注意点としては
Ubuntu-PCでインターネットの接続がWiFiの方なら
LANポートの方ではデフォルトゲートウェイは設定しないこと Arduino Uno側も固定でIPアドレスの設定が必要
Arduino UnoのIPアドレスの設定で
デフォルトゲートウェイはUbuntu-PCのLANポートのIPアドレスにする >>283
あああ詳しくありがとう…
まだ上手く行ってないですが、もう少し頑張って調べてみます。
ちなみに「LANポート」ってのはイーサネット接続のみを
指していますか?WiFi接続側は「自動(DHCP)」のままにしています。
触っているのはPC側のイーサネット接続を「手動」にして、WiFiとは別の
アドレスとネットマスクを入れてゲートウェイとDNSサーバーは空欄にしています。
Uno側のスケッチにはイーサと同じアドレスを振っています。
どこかおかしいところはありますか? >>286
UNOとPCが同じアドレスじゃあダメ
同じネットワークの範囲で違うアドレスでないと
wifiの自動設定で貰ってるアドレス具体的に書いた方が良いよ
IPアドレスとネットマスク
wifi側とイーサーネット側が同じネットワークだと上手く動作しないし >>287
えっとWifiから振られてるのが192.168.2.3で
ネットマスク255.255.255.0です。
なので最初は192.168.2.5等のアドレスと同ネットマスクを
入力したり、デフォルトゲートウェイ192.168.2.1等を追加してみたり
外してみたり試してました。UNO側も2.4から2.10くらいまで変えてみたり
合わせてみたりしてみたんですが…。 PCのイーサーネットを
アドレス 192.168.3.1、ネットマスク255.255.255.0
UNOを192.168.3.2、ネットマスク255.255.255.0
デフォルトゲートウェイ192.169.3.1
PCから192.168.3.2をアクセスするとUNOには繋がる
PCは192.168.2.1-192.168.2.255の範囲はwifi側にあると思ってるから、イーサーネットをその範囲に設定してもUNOは見えない >>288
Ubuntu-PCのWiFiとEthernetポートを同じネットワークアドレスにしちゃ駄目だよ
WiFiが192.168.2.3/24なら192.168.3.1/24とか192.168.4.1/24とかにしないと駄目
/24というのはサブネットマスク255.255.255.0の意味 あれ… 繋がった!出来たよ!
ちょっとよくわからないんですが出来ました… 192.168.xxx.xxxはクラスCのIPアドレス
クラスCはデフォルトのサブネットマスクが255.255.255.0
IPアドレスは8bitごとに4つに区切って32bit
192.168.aaa.bbb
としてデフォルトの255.255.255.0の場合
192.168.aaaの部分がネットワークアドレス
bbbの部分がホストアドレス
WiFiとEthernetはネットワークセグメントが違うので分けないといけない
aaaの部分を変更するといいよ 助言くれた皆さんありがとうございます!
アドレスがダブってたのが原因っぽかったのかな…
違うの入れたり合わせてみたり色々試したつもりなんですが… ネットワークの勉強した方がいいぞ
本ならマスタリングTCP/IPの入門編をオススメする みんな優しいよなw 割と普及に貢献してるだろここも
初心者さんも挫折しないで頑張って イーサネットにつなげてLEDの点滅速度とかスマホから変更できるの?
パラメーター変更とかできるようなら俺もシールド買うかな。 ttps://deviceplus.jp/hobby/entry_006/ WiFiに直接つなげられるESP8266やESP32なんかもあるよ ttps://qiita.com/wak_tech/items/60d993bb85e519a047b0 >>301
こっちの方が参考になるかも
Webクライアントから送信されたテキストをLCDに表示する
ttp://www.nina.jp/server/arduino/webserver_and_lcd/webserver_and_lcd.html >>302
サンクス、やっぱネット接続できるとグッと世界が広がるね。 いまさらイーサネット・シールド薦めるのはどうなんだろ
ESP8266使う方が安い 正規品と互換のでarduino2台あるから、
ESPとイーサ両方ポチってみるよ。
ワイファイじゃなしに単独で3G回線使えるのも欲しいけど、
ちと高すぎだな。 >>309
ハンダめんどいから、一個300円でやってくれる人いないかな? Arduinoでサーバー建てればウイルス気にしなくても大丈夫だよな? >>310
300円じゃおとなは動かせないな
ESP01が小さかったからそれの感動のほうが大きかった NeoPixelって割り込み禁止なの?IRremote使えないのかな >>304
net接続したいなら(高いnetシールドをわざわざ買って)Arduinoボードを使うことにこだわらないで
ESP-32とかを買ってやった方が良いと思うからな。
ESP-32だと2コアで高性能なうえにArduino開発環境あるということで
俺自身いずれ使いたいと思っている。 何よりESP8266/ESP32は使えるメモリ空間がリッチ まあ、使い慣れたボード使いたい場合も多いからな
他のArduinoのボードからシリアルでつないでATコマンドで操作したい場合は、
Arduinoのライブラリがあって安いESP8266だな
ESP8266は電源周りが結構シビアみたいなので
ピッチを変更済みのモジュールより、開発ボードの方が扱い楽そう
ただ、開発ボードだと価格が高くなるね ESP8266やESP32で直接ArduinoをやるとFlashとRAMが多いのでLCDで漢字が扱えたりする
ttp://nopnop2002.webcrow.jp/HSES-LCD24/HSES-LCD24-3.html 同じく、Flash、RAMの多いMaixduinoでも少し改変してLCDに漢字表示できた
注:MaixduinoはオンボードでESP32を搭載してるがMaixPy用でArduinoからは使えなさそう ESP32互換で遊んでたらパソコンのUSBポートが過電流で壊れた >>323
それが怖くて、USBハブを外部電源に改造したものを経由してる
細いケーブルだけでも駄目だったりする Wire.hって割り込み使ってるんだね…
タクトスイッチで割り込みしようとするとフリーズするし、
割り込みのフラグだけ立ててメインループの最後で関数
呼び出してるけど今度はバウンシングでイライラ…
プルアップもディレイでワンクッションも入れてるけど不安定
豆みたいなタクトじゃなくてデカいのなら「びよよん」防げるのかな…
押し回数で動作分けずにボタン2個にするかぁ… >>323
知人が同じくノーパソ壊したのを知って、絶縁USBボード買った
www.amazon.co.jp/dp/B07L8629DH/ >>325
余ってるタイマーでも使ってチェックすればよろし
012全部使っててもWDTがあるし >>327
ありがと試してみる…
もう謎解きだよぉ
>>326
ESP欲しいけど結構地雷だねw それほどでもないと思うけど。 ちゃんと普通に作れば普通に動くわ >>325
3つのタイマーの役割というか何に使われてるかを確認
割込みピンとの関連もチェックした方がいいよ
チャタリングに関しては何とも >>328
AliとかのESP32互換品だからPCのUSBポート壊れたんじゃないの?
純正のESP32-DevkitCなら問題ないんじゃ?
うちはデスクトップPCだけど全然問題なかった
心配なら電源付のUSBHubでも使えばいいんじゃない? i2cでArduino同士をマルチマスター的に使いたいのですが、スレーブからのI/Oピンによるハードウェア割込みによってマスターの通信を開始させようという作戦なんですが、そんな事して何か不都合とかないですか? >>330
UNOだから割り込みピンはD2,D3だけっぽい…
LCDとセンサー2つの計3つのI2Cで割り込みしながら
値取得しつつ3秒毎にLCDに表示させてるから各々の
「割り込み禁止!」が飛び交う中を割り込もうとしてる感じ…
D3だと信頼度75%くらいで割り込めるけどD2 は10連打しないと
入らせてもらえませんw これチャタリングじゃないっぽいね…
>>331
うん ぼくも互換品に難アリなのかなと思いました
どちらにせよ電源は用意しよ… >>333
10連打じゃなくてD2の割り込みint0になってなかっただけだった… Seeeduino XIAO ってなんて読むの?
シードウイノ シャオ? >>335
Arduinoはイタリア語で、最後から1つ前の音節にアクセントが有るのが基本だから、敢えて片仮名で書くなら「シードゥイーノ・シャオ」だと思う >>331
純正でも起動時に1Aを超える電流流れるからPCのポートはやばいぞ USB3.0 900mA
USB2.0 500mA
ESP32を挿すのはUSB3.0だと思っていたけど
2.0に挿してPC壊した人がいるっていうこと? >AliとかのESP32互換品だから
>純正のESP32-DevkitCなら
>うちはデスクトップPCだけど
とても頭が悪そうで笑ってしまう >電源投入時の突入電流は、場合によっては 2A を超える時があります。
マジかよ!そりゃぶっ壊れるわ やみくもに怖がる前にUSBの規格をちゃんと確認したほうがいいぞ
規格を守ってるまともなマザーボードならその程度じゃ壊れない
壊したやつは自分のミスをESPのせいにしてるだけ いいえできません
せいぜいブルースクリーンが出てシャットダウンさせられる程度 ESPはUSB-HDDとか接続できる電源付のUSB-HUBを介してつないだ方がいいのかな? >>342
たまたまUSB3.0のポートにつないでたが
デスクトップPCにESP32-DevkitCつないで使ってるが何の問題も無いけど
Aliで売ってるESP32の電源は3.3Vなので電源回路がしょぼいとやばいのかもね
互換の開発ボードだと電源周りの回路がしょぼくて
USBポートにダイレクトに負担がくるのがあるのでは? なんか変な文章になっちゃった
こう書きたかった
ESP32の電源は3.3Vなので電源周りの回路がしょぼいとやばいのかもね
Aliで売ってる互換の開発ボードだと電源周りの回路がしょぼくて
USBポートにダイレクトに負担がくるのがあるのでは? 純正のESP32-DevkitCが高いのはそれなりの理由があるのでは?
SP32活用@ ESP32とブラウザでお話しする(1)ESP32開発用のESP32-DevkitC開発ボード
https://www.denshi.club/cookbook/arduino/esp32/esp32-esp321esp32esp32-devkitc.html
>この開発ボードには、USB-シリアルの変換チップ、リセット・スイッチ、ブートモード・スイッチ、
>USBからの5V電源から3.3Vの電源を得るための安定化電源回路なども用意されています。
> そのため、この開発ボードを購入してきてPCとUSBケーブルで接続するだけで開発ができます。
>2019年4月現在秋月電子通商でEPS32-WROOM-32Dは640円と安価に入手できますが、
>ESP32-DevkitCの価格は1480円と倍以上の価格差がありますが、
>そのままPCにUSBケーブルで接続するだけで開発が可能です。
>単体のEPS32-WROOM-32Dで開発のためのテスト回路を組むには、
>シリアル変換モジュールやスイッチ、ピッチ変換キットなどを用意し
>組み立てる手間がかかります。 横着しないでさ、普通に別電源から5Vなり、3.3Vなり供給して、普通に電圧をオシロで見て、
0.1オームかまして電流の波形も見て、普通に動くかどうか確かめればよろし。 足りなきゃ外部電源加えりゃいいとか簡単に言ってるけど
電位差のある電源繋ぐと大惨事になる場合もある
rohm Application Note:レギュレーターの逆電流保護
http://rohmfs.rohm.com/jp/products/databook/applinote/ic/power/linear_regulator/linearreg_reverse_voltage_appli-j.pdf
実例で解りやすく解説してあるのですごく参考になる
設計するわけでは無いのですべて理解する必要は無いが
サラッと基板見て「LDOの近くにダイオードあるから逆流保護はありそうだ」と
言えるようになりたいね、電気板住民なら >>353
微妙に論点ずれてるの気づかない?
なるほど、>>342の言う
>とても頭が悪そうで笑ってしまう
だけは証明された。 安物パチモノESP32開発ボードが安い劣悪レギュレータ使ってても不思議じゃない レギュレーターの性能が良いに越したことは無いが
それとは関係なくESP32の起動時の突入電流がヤバイのは変わらんと思うが・・・ >>ID:V9o8ESdw
言っても分からんのだろうが、論点が微妙にずれてんのよ、あんた specsheetに700mAって書いてあるんだからその通りのもの付ければOK
2A? あほ草。 Minimum current delivered by power supply 500 mA
とあるね
だれか意味というか運用上の実際を解説して >>363
ありがとう
せっかくですが、500mAはUSBの話じゃなくてESP32の仕様のことなんです >>364
いやその話のことが書いてあるんだが・・・
定常状態で500mA以上の電源を必要とするって話(リンク先での実測は600mA)
んでさらに起動直後の突入電流で数Aが流れる瞬間があってポートの負担がデカいって話 >>363
読めとドヤ顔で薦めるほどの内容じゃないよ
そもそもUSBから電源取るとかいう前提が話を煩雑にしてるよねこの人の記事
あちゃこっちゃ話が飛ぶしおよそ論理的な思考になってない
USBから電源取るというバカげた前提である以上あまり参考にしない方がいい 多くの人が書き込む時USBだけで刺すだろ普通に
しかも開発中だから抜き差ししまくる可能性もある USBから電源取るなというが純正含めて5VからVBUSにはなんの保護もなしで直結してるから
細工したUSBケーブル使わないとそれはそれでポート刺すにはちょっと… その記事、クリティカルな話を装ってるわりにUSBから電源を取る前提とかお笑い種なんだよね。 Arduino IDE、コンパイル糞遅いな。なんだこれ 何とも言えんなあ、あなたのPCの性能が分からんので 初心者スレなんだからUSBに直接指す人だって居るだろうし別に笑い飛ばす記事ではないのでは。
電源回りも全部自分で設計できる人はこんなスレでマウント取ってると低く見られますよ。 >>372
初心者がクリティカル装うなよって話だ
初心者なのか突き詰めたいのかどっちだ?
二兎は追えない
あと、すぐマウントとか言い出すその卑屈な精神を先に直せw >>371
>何とも言えんなあ
本人が遅いと感じれば遅いとなるからな
人によっては
1msでコンパイル完了=>糞おそいな
10分でコンパイル完了=>早いな
と感じ方をするからな 初回はすべてのモジュールのビルドが行われるから遅いだけでは? >>370
あなたがパソコンに使われてるからですよ
遅いなら遅いなりにその間他のことでもやってりゃいい
何もモニターの前に正座して待ってる必要は無いの
私なん録り貯めたドラマとか別のPCで再生させながら
隣のモニターで進捗横目で見てるだけだから全然気にならんですわ 外部エディタつかってたけどarduinoの
コーディングだけはIDEに戻したw
背景黒くして少し設定弄ったらまあまあかな… >>378
視認性なら、目の問題だけじゃ無く、アプリの機能、パソコン本体のグラフィックとモニターの性能も関係あるだろ? いちいち食ってかかるようなのが涌いてるけど、春だからなのか。 何か指摘される度に春だからだで済ますようなのが湧いてるけど、馬鹿だからなのか。 定型句のコピペしかできないようなのが湧いてるけど、馬鹿確定だな。 ループの中でタクトボタンを一回押すごとに1カウントしたいなと思いました
当然
int cnt=0;
While(1){
if( digitalRead(SW) ){ cnt++; }
/* その他処理 */
}
こんなことをやればボタン押してる間cnt++されてしまうので
こうしてみしました
int a=0;
int b=0;
while(1){
if( digitalRead(SW) ){
while( digitalRead(SW) ){
if(a-b==0){
a++;
Serial.println(a);
}
}
b++;
}
/* その他処理 */
}
これでいいのでしょうか?
もっと良い方法があったらおしえてください。 変数一つだけででいけました
while( digitalRead(SW_PIN) ){
if(cnt>=0){
cnt=-(cnt+1);
}
}
cnt=-cnt; これだとチャタリング回避になりませんかね・・?
/* その他処理 */が通ってループすればいいのですが。
あと見返したら
if( digitalRead(SW) ){
while( digitalRead(SW) ){
は
if( !digitalRead(SW) ){
while( !digitalRead(SW) ){
でした インクジェットプリンタがイカれたんでカラーグラフィック液晶や
ボタン類やBlueTooth部などを取り外してarduinoと接続してみたい
難しいかなあ… そういう事するのは初めて >>391
誰かがライブラリ作ってれば楽勝、無いならライブラリから自作。
まず解体してその辺の部品が制御可能か見る所からになるのかな? >>392
ウン… これから分解してパーツの型番調べてみる プリンタバラしてLCDとWifiモジュールとデカめのDCモーター
やらCPUが外せたけどドキュメントが見つからないから
有効利用できなそうだ… DCモーターじゃなくて1500円くらいする割と強力なステッピングモーターが2個取れると思ったけど
100円くらいのドライバで制御できる
https://www.aliexpress.com/item/32963690420.html
DCモーターならならこんなので正転逆転できる(小型の130まで)
https://www.aliexpress.com/item/4000498771337.html >>395
ありがと!これはステッピングモーターなんだね
デカいのと一回り小さいのが取れたよ
あ スキャナ部のライト可動部にミニ四駆のモーターくらいの
ちっさいのも付いてたな… 大きなモーターは15Vで動作してると思うから
電源基板が別になってるならそれも取っておくといいよ
5V,12V,15Vの3種類くらい出てる特殊なのがついてるはず
買うと1000円くらいはするから
あとはステッピングで左右にヘッド動かす用のスパイラルな棒軸とギアのメカ部品
液晶は資料ないからまず無理だと思う >>397
取れそうなモノはほとんど取ったよ
スキャナ部のガラスも剥がしたw
モーターの電源は直にメイン基板に入ってる…
それにしても各々のパーツは良い物使ってるなぁ スパイラルは無かったねDVDと間違えた、ベルトだよね
スキャナがあるなら光学センサが使えるかも知れない 安いプリンタってステッピングモータじゃなくて普通のDCモータにフィルムの円盤つけてエンコーダになってるよね 今時のプリンタはほとんど普通のDCモータだよね。ステップモータ欲しいときはなるべく古めのプリンタを狙おう。 そうなのか
ぬか喜びさせてしまったかも知れぬ、ごめんね ステッピングモーター搭載するより、DC モーター乗せてフィードバックを受けて制御する方が手間はかかるけどコスト的にマシってことなのかね あー 四角い形じゃなかったし信号線が無い2線だったから
DCモーターかな… ベルトドライブで別の歯車にフィルムの
円盤が付いてたなあ… てか簡単に使えそうなものはあまり無いかな…
Wifiモジュールはイケそうだけど労力考えたらESPとか買ったほうが安いや…
いま倉庫に眠ってたニンテンドーDSi持ってきたよ
このタッチスクリーンはスケッチが落ちてた LCD本体は無いなぁ >>403
・保持電流不要でローパワー
・脱調回避が不要なので加速性が良い
・ネオジム磁石で減速器無し或いは低減速比でも高トルク(=高速度)
・運動が直線的なためリミットスイッチが有ればエンコーダ無しでも絶対位置制御可能
こんな感じ? >>406
どうもありがとう
ステッピングモーターは高機能なイメージがあったけど一概には言えないね
だいぶ前に秋月でステッピングモータ買ったけど何も遊んでないなあ ステッピングモーターは馬力、速度が出ない 出すにはでかくなる、結局値段が安くなりにくい
一定レベルの性能をフィードバック制御無しで手軽に出せるのは利点だが。 https://i.imgur.com/ls4NAPu.jpg
これを↓こういう感じでブレッドボードの真ん中に挿したいのですが
https://i.imgur.com/pzXbNWN.png
USBコネクタがついてないタイプなのでその部分にピンをハンダ付けしてしまうと
ブレッドボードの真ん中と干渉してしまうと思うのですがどう対応すればいいのでしょうか >>409
別に干渉しないが。ただピンヘッダによっては太すぎてブレッドボードに刺さらん場合がある。 >>410
なるほど、あらためて考えると基盤の厚さを考慮するのを忘れていました
たしかに干渉しなさそうです
ありがとうございました そうです>>412
”基盤の厚さ”を考えていなかったので
短い方のピンがブレボにギリギリ当たってしまうと勘違いしていたのです 基板の厚みというよりも ピンヘッダの黒い部分に考えが及んでいないんじゃないの いえそういうことではなくて、どちらかというとピンの長さの規格の方の疑問に近いです
(基盤の厚さが頭から抜けていた頃は)はんだ後に切る取るにしても、なんでこの長さなんだろう?という う〜ん… 分かったような分らんような… まーいっか
それはそうと いつの間にか秋月にNano Everyが入荷してたわ あっ 書くの忘れてた ↑は半完成品セミキットのほうのことね このタイプのスルーホールはいいね
別基板と接続するときにピンヘッダがいらない 可変抵抗の値をアナログ入力で読み取ろうとしてるんですが、
そもそも可変抵抗をどれ使ったら良いか分からないです。
1kΩか10kΩかみたいですが、どれを使ったらこうなるとか、
こっちが良いとか、そういうのってあるんですか? 分圧した値を読み取るなら、抵抗値が高いほど(抵抗での)消費電力が減る。かわりにノイズに弱くなる。低いのはその逆。
まぁ10kとかで良いんじゃないの >>420
ありがとうございます。
10kΩ買います。 プログラム超初心者で申し訳ないのですが教えてください
センサーからデータを取得して比較をしたいのですが
1回目のデータをdata1、2回目のデータをdata2、3回目のデータを・・・というように維持したい場合
どういったプログラムになるのでしょうか?
よろしくお願いします 維持するってことは無限にデータが増えていくわけだけどそのデータをどこに保存するの?マイコンだけではとても持ちきれないよね
その場合はSDカードとかPCに転送するとか何かしらの手段が必要だからをそこを決めないとどうしようもない
そうではなく、過去50回の採取分とかそういう風に期限が決まっているなら「リングバッファ」と言う考え方があるからこのキーワードで検索すればサンプルがあると思う ありがとうございます!
保持する数は有言でいいのでいろいろやってみます! >>424
配列だね。
移動平均じゃなく単に複数回測って平均値出すだけならいらないけど。 Arduino LeonardoのD2とSDA、D3とSCLって排他なんですか?
I2C使うとD2,3使えないとか
どうせ使えないとしたなら何故にピン追加したのかなあと unoとleonardoでピン互換になるようにR3で追加されたんだと思うけど。。。 unoR3もPC4/PC5,ADC4/ADC5と共通だしな。理解して使うものとしか言えんかな。 >>426
決まってることに疑問を抱いても何の解決にもならない
SoftWire使ってI2Cピンを変えるとか、IOを別のピンに割り当てるとか、頭使ってね このスレってタイトルで初心者つっといて
質問に対して罵倒で返すよね。 >>431
耐性が無いのは甘やかされて育った自分のせい
とかは思わないんだよな?
全部他人のせいだから。 電電板って大体どこもそんなもんだよ。
気にしない方がいい。 >>431がどれを「罵倒」と思ったのか全く見当たらない
せめてアンカー打ってくれないとただの荒らしにしかならない 学術巨大掲示板群: アルファ・ラボ
ttp://x0000.net
物理学 化学 数学 生物学 天文学 地理地学
IT 電子 工学 国語 方言 言語学 など
PS 連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0 >>434
お前が地べたに這いつくばってるからマウントされるんだがな
いずれにしても学ぶ努力もせず無能な上に卑屈な奴は邪魔くさいよ >>435
> >>431がどれを「罵倒」と思ったのか全く見当たらない
俺もそう思う。
きっと自分が少しでも気に入らないレスは罵倒になるんだろうな 最近始めたのですが下記のプログラムでLEDを3秒毎に点滅ループ
させるのはわかるのですがこのプログラムでのスイッチをつけて
スイッチをオンにした時だけLEDが付いbト
スイッャ`をオフにしたb迴チえるとするbノはどうすればャ求[プが止まるbフでしょうか
ご教授お願いします。
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(3000);
digitalWrite(LED_BUILTIN, LOW);
delay(3000);
} >>440-441
ありがとうございます
ここ見て勉強してみます! どちらも良サイトだと思われるが、プログラム経験なし、電気の知識も
小学校の理科レベルだと、Arduino 買っても難しいのでは?
setup、loop の固定観念なら尚更、一般の使用者は意識しないように
ArduinoIDE が作られてる。
厳しいかもしれないけど、今が勉強する気になってる時なので、
しっかりとサイトを見るのも大事だけど、自分で検索する能力も必要。
どういう形の Arduino 買ったのか分からないが、入門キットもあるよ。
私は持ってないけど、Elegoo のサイトでは日本語ドキュメントだけの
ダウンロードもできる。
https://www.elegoo.com/download/
別にキットを買えとは思わないけど、手元に LED、抵抗、タクトスイッチ、
持ってないよね?あれば Arduino 関係なくテストできるよね? >>443
>プログラム経験なし
プログラム経験なしってC/C++がほとんど理解できないってことだよな
そんな言語レベルの人がArduinoを始めようとは思わないんじゃないのか
>>439の"最近始めたのです"かは、PCでC/C++プログラミング経験はある奴が、
マイコン(Arduino)を最近やり始めたということだろ。
>>439
>どうすればループが止まるのでしょうか
これ、どう思って・考えて書いたんだ?
PCでのプログラミング経験からPCでの入力関数には入力あるまで待ち続けるのあるから
Arduinoに同様な入力関数がありませんか?(あったら教えて)な感じなのかな >>439
ループ止めなくてもif文で条件によって処理を変えるだけでいいのでは? コマンド型のコンパイルしてるだけだと
実行終えたらOSに戻るのが普通だからそんなのしかやった事ないのかも
windowsもメインループ自分で書かないものだと
イベント発生-完了までだし スイッチを押すとHIGHになるとしてこんなのはどう?
6秒間のうち1回でもスイッチを押すとLEDが点灯する
スイッチを押さなければLEDは点灯しない
試してないので動くかどうかしらんけど
const int SW = スイッチのピン番号;
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
pinMode(SW, INPUT);
}
void loop() {
static int count = 0;
static int val = LOW;
if (digitalRead(SW) == HIGH) {
val = HIGH;
}
if (count == 0) {
if (val == HIGH) digitalWrite(LED_BUILTIN, HIGH);
val = LOW;
}
if (count == 300) {
digitalWrite(LED_BUILTIN, LOW);
}
delay(10);
++count;
if (count >= 600) count = 0;
} スイッチじゃなくてSerialバージョン
void setup() {
pinMode(13, OUTPUT);
Serial.begin(115200);
}
void loop() {
static int count = 0;
static int val = LOW;
if (Serial.available() > 0){
while (Serial.available() > 0) {
int c;
c = Serial.read();
Serial.write(c);
}
val = HIGH;
}
if (count == 0) {
if (val == HIGH) digitalWrite(LED_BUILTIN, HIGH);
val = LOW;
}
if (count == 300) {
digitalWrite(LED_BUILTIN, LOW);
}
delay(10);
++count;
if (count >= 600) count = 0;
} それだとcountが301の時スイッチ入れると3秒間無反応だよね
スッチ入れると点滅を開始のほうがいいんじゃね pinMode(13, OUTPUT);
じゃなくて
pinMode(LED_BUILTIN, OUTPUT); ESP32camでサンプルを使って、Wifiよるストリーミングはできたのですが、外出先からアクセスする場合が分かりません。
ストリーミング用のサーバーを建てて、そこへuploadするイメージでしょうか?
サンプルコードがあれご教示ください。よろしくお願いします。 >>447
Arduino:1.8.12 (Windows 10), ボード:"Arduino Uno"
sketch_apr30a:2:1: error: expected ',' or ';' before 'void'
void setup() {
^~~~
exit status 1
expected ',' or ';' before 'void' シリアルでeを入力すると消灯
それ以外の文字を入力すると点滅
スイッチの場合は2つスイッチがあると楽なんだけどね
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(115200);
}
void loop() {
static int count = 0;
static int val = LOW;
if (Serial.available() > 0){
int c;
while (Serial.available() > 0) {
c = Serial.read();
Serial.write(c);
}
switch (c) {
case 'e':
val = LOW;
break;
default:
val = HIGH;
break;
}
}
if (count == 0) {
if (val == HIGH) digitalWrite(LED_BUILTIN, HIGH);
}
if (count == 300) {
digitalWrite(LED_BUILTIN, LOW);
}
delay(10);
++count;
if (count >= 600) count = 0;
} >>449
valの前の値を別の変数に格納しておいて
その前の値がLOWでvalがHIGHの時(つまりvalがLOWからHIGHになった時)
にcountを0にすればいいのかもね こんな感じだと
eを入力すると点滅停止
他の文字を入力すると即点滅開始
シリアルの文字入力の部分をスイッチに置き換えればスイッチでも可能
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(115200);
}
void loop() {
static int count = 0;
static int val = LOW;
static int pre_val = LOW;
if (Serial.available() > 0){
int c;
while (Serial.available() > 0) {
c = Serial.read();
Serial.write(c);
}
switch (c) {
case 'e':
val = LOW;
break;
default:
val = HIGH;
break;
}
}
if ((val == HIGH) && (pre_val == LOW)) count = 0;
if (count == 0) {
if (val == HIGH) digitalWrite(LED_BUILTIN, HIGH);
}
if (count == 300) {
digitalWrite(LED_BUILTIN, LOW);
}
delay(10);
pre_val = val;
++count;
if (count >= 600) count = 0;
} >>452
スイッチのピン番号のところにセミコロン「;」入れた?
セミコロンが抜けてるとそういうエラーが出るよ >>427,428,429,430
ああ、なるほど、ピン互換か
I2C用ピン使ってたら、共通の入出力ピンは使えないというのはあってるんですよね? >>451
ルータにポートフォワード設定なんだけど、その調子なら踏み台にされそう。色々調べてセキュリティ対策してね。 >>457
要するに一つのピンを2つの端子に分岐してるだけ >>457
>I2C用ピン使ってたら、共通の入出力ピンは使えない
なんか微妙に表現に違和感があるんだけど
「排他利用」とかで検索してみて
1つのピンをいろんな用途に使えるようになってるけど
設定してある機能を選んだら別の機能は使えない
機能を変えるには再設定が必要 シリアル入力の話題が出てるんで私も聞きたいんだけど
数字の1を入力するとタイマーが止まって0で復帰というのを
考えています。
@の場所すると問題なく動くけどAにすると1を押して一旦停止後
勝手にまたタイマー割込みが復帰してしまいます。
ハードウェア的には何も刺していないUnoをUSBでPCとつないでいます。
プログラム上では@で毎回必ず宣言してもAで必要な時に毎回宣言しても
同じ気がするんですがなぜ挙動が変わるのでしょうか?
#include <MsTimer2.h>
bool LED=false;
void setup() {
pinMode(13,OUTPUT);
Serial.begin(9600);
MsTimer2::set(500, toggleLED);
MsTimer2::start();
}
void loop() {
@ int InWord = Serial.parseInt();
if(Serial.available()){
A int InWord = Serial.parseInt();
switch(InWord){
case 0:
MsTimer2::start();
break;
case 1:
MsTimer2::stop();
break;
}
}
}
void toggleLED(){
LED = !LED;
digitalWrite(13,LED);
} 次のスレこれ追加して
プログラムは、レス内に直接書き込まず以下を利用しましょう。
ttp://codepad.org/
ttps://pastebin.com/
悪いけど個人的にベタで貼られたスケッチを見る気がしないわ >>462
おまえあれやろ、普段から改行の位置自分好みじゃないとわからんとか コメントの書き方がなっとらんとか 本筋と関係ないところでグダグダ言って話折るというか話逃げるタイプやろ?
いるわ。周りにもそういうの。 別にいいじゃん。
見る気しないから回答しない。
俺の勝手。
で、お前はなぜ答えてやらないの? >>463
人の批判する暇あったらお前が回答してやれ
文句垂れてるだけなのはお前も一緒だろ、バカなのか? >>464
ブーメラン1
>>465
ブーメラン2
今日もよく飛ぶなーw >>461
>@の場所すると問題なく動くけどAにすると
言ってることが分からない
何と何を比較して言ってるのかあいまい
少なくとも以下のコードはあなたの意図の通りに動く
https://pastebin.com/VFiQATmH
Arduino Nano
Arduino IDE 1.8.12 もしかしてこれがうまく動かないということなら
https://pastebin.com/r7VLcWTL
if(Serial.available()){
の前にバッファがクリアされてるのでif内が実行されないのでは? >>467
こちらで表現していただいたものが先の当方の説明でいうところのAに相当する
うまく動かないほうで
>>468
こちらで表現していただいたものが@に相当するうまく動くほうです。
当方も条件合わせるためにUNOからNANOに置き換えて実行してみましたが
やはりif(Serial.available()){よりも前にint宣言をした@(>>468のもの)ですと
うまく動きます。
で、観察していたのですがどうやらA(>>467)のうまく動かないほうだと
挙動として・・・
”1”を入力するとInWord = 1と表示され一瞬止まっているようで
そのあと勝手にInWord = 0が表示されて再開しているようです。
もちろんシリアルモニタからは何も操作していません。
ということはSwitch自体はうまく動いているけど勝手にどこからか”0”が
入力された扱いになっていると・・・
今の状態だと@の場所で動かせばよいという結論なのですがなぜAだと
勝手にシリアルに0が入力された扱いになるのか謎すぎて…・ >>462
こんななのがあるんだ。
綺禮にコード段下げしてるの どうやってるのかと思ってた。
サンクス >>471
ごめん 機能が良くわかってなかった。
修行します。 >>470
>>467と全く同じコード使ってる?そうでないなら自分のコード貼って。 >>470
ええと、動く動かないが私の環境での挙動と逆ってことですか?
それだとちょっと私にはわかりませんね。
int InWord = Serial.parseInt();
if(Serial.available()){
となってたらif文の前でバッファがクリアされてSerial.available()はゼロになるので
if文の中に入らないはずだというのが私の解釈です。
もう一度確認ですが
https://pastebin.com/r7VLcWTL
0や1を送っても無反応
https://pastebin.com/VFiQATmH
0を送るとInWord = 0と表示されて点滅
1を送るとInWord = 1と表示され、タイミングによって点灯か消灯 >>473
あなたの環境ではどうです?
ちょっとやってみてくれると助かるんですが。
真逆なので、なんか自分がポカやってないか逆に不安だわw
>>471
ここでは段下げが無視されちゃうけど
ttp://codepad.org/
ttps://pastebin.com/
ではちゃんと反映されるってだけですよ
もともと段下げのあるコードをただコピペしてるだけ >>473
Nanoでの確認は>>467 と>>468のコピペでやってます。(自分のコード使わずに)
>>474
https://pastebin.com/r7VLcWTL
こっちのコードだと1を入力するとInWord = 1
が表示され止まり
0を入力するとInWord = 0が表示され再開されます。
当方の狙っている動作となります。(当方の@と同じ)
https://pastebin.com/VFiQATmH
こっちのコードだと
1を入力するとInWord = 1
が表示されたあとInWord = 0が表示されて結果止まらない
0を入力するとInWord = 0
が2回表示される。
つまり入力し動作後 どっちの動作にしろ0がもう一度入力されたことになっている
(当方のAと同じですが当方のはSerialPrint入れてなかったので見た目上は一瞬止まるだけで再開)
という感じです。逆ですね。
なんで0が入力された扱いになるのかという謎のほかに ほかのところだと逆の挙動になってるという
さらなる謎が(;^_^A 改行文字に反応してタイムアウトで0をかえしてるっぽい。 >>477
それっぽい。
自分は「改行なし」でやってたけど「CRおよびLF」にすると確かに変になる。 >>477
>>478
シリアルモニタはデフォルトのLFのみでやっており、
当方でも改行なしにすると@でもうまく動かないことが確認できました。
@だとたまたまif(Serial.available()){のタイミングで改行コードがあったから
うまく動いてる風だったわけですか・・・
Aのif(Serial.available()){より後にint入れたほうのコード(https://pastebin.com/VFiQATmH)
に不要な受信バッファ捨てるようなものを追加したところ、LFのみだろうと改行なしだろうと
動くようになりました。
改行コードという存在を認識する良い勉強になりました。
ありがとうございました!! 0が意味をもつコードだとparseint使わずにreadで読んでから判別したほうが良いと個人的には思うが。 >>479
Serial.parseInt()は数字だけを返す
デフォルトの設定では数字以外(ここではLF)が来るとゼロを返す
ということなので、これにはまったんだすね
私も勉強になりました
というわけでこのコードで何が起きてるか確認するとスッキリします
「CRおよびLR」とかにもしてやってみてください
https://pastebin.com/U0tGHs2E >>481
まとめていただきありがとうございます。
答え合わせコードでLFやCRなどの改行コードが飛び込んできているのが
可視化できて今回の状況がはっきりいたしました。
まさにこれだったわけですね。
初回レス時に直にコード書いてしまい申し訳ありませんでした。 >>482
もう、終わった後だけど、
>>461のコードで
Serial.parseInt()をする意味あるのか?
素直にSerial.read()してASCIIデータの'0', '1', default(その他のキャラクター:何もしない)で
switchで良いような気がするが >>483
もう、終わった後なのに何故に食い下がる?
Serial.read()の件も>>480と>>481のコードで既出 そういえば多少聞こえもいいが、ようするに>>483はただのオナニーw AliExpressで買った生AVRなんですけど、ブートローダーが書き込めないことってよくあることですか? >>487
書き込みの出来ないマイコンは控えめにいってゴミなのでは。 >>487
そんなことがよくあるなら巷のArduinoボードに載ってる膨大な数のAVRはどうしてるんだよって話だ >>487
テープリールをカットしたような新品だとそんな事は一度も無いけど
ビニール袋に雑に入ってるのは、高電圧リセットしないと使えなかったり
その高電圧リセットが効かなかったり、なんか挙動がおかしかったり色々だよ
Tiny11の表面を削ってTiny85だと偽って売ってるのもあるから
購入者のコメントを見てそういうのは避ける事 UNOでI2CってA4A5も使用不能になるなら実質4つのピン専有してることになるよね
やりたいこと全部載せするとピンが足らんわ そろそろ上位機種購入時期かな… >>491
その全部載せしたいやりたいことってのを全部書いてみて >>491
そう、自分は直ぐにI/O足りなくなってMega買った >>492
D0, D1:シリアル通信TX,RX (無線利用時占有)
D2:ボタン@
D3~:ボタンA
D4:3G通信用(ソフトシリアルRX)
D5~:3G通信用(ソフトシリアルTX)
D6~:PWMアナログセンサ@
D7:3G通信用(電源ON/OFF制御)
D8:UARTセンサ(ソフトシリアルRX)
D9~:UARTセンサ(ソフトシリアルTX)
D10~:PWMアナログセンサA
D11~:PWMアナログセンサB
D12:ボタンB
D13:ボタンC
SCL, SDA:{ I2C-LCD, I2Cセンサ×2 }
A0:ポテンショメーター@
A1:ポテンショメーターA
A2:(D16として) リレー@
A3:(D17として) リレーA
A4(SDA)
A5(SCL)
こんな感じ… あとリレー1つとアナログピンを1つ空けたい
ポテンショメーターは1つで兼用できる あとは操作性を犠牲にして
ボタン操作のアクションを変えて兼用にするかってところかな… 全部載せする意味がちょっとわからんなあ
自分なら同じArduinoを増やす方向で行くと思う
仮にUnoからMegaにするとしてUnoはどうする?
スケッチは書き直し?
Unoを2台にすれ1台目はそのまま活かせてスケッチも流用できる。 >>495
あーそうだね… UNO2台にしよっかな…
リレーで動作させる機器も離れた位置にあるし
そこまで電線引くのもアレだから無線でやるか… >>494
というよりI/Oエキスパンダー案件だなw >>497
あっ それいいね…
候補に入れとこう さんくす >>496
離れてんならESP系のボードを増設だよね
無線ならその線が濃厚では?
まあ、いろいろな方法を調べて比較して考えを巡らせるのは楽しいよね。 >>499
いまXBee使ってるんだけどそっちにもI/Oあること
すっかり忘れてたw テヘ
リレーは全部任せちゃえばいいや…
ごごごめん… >>458
アドバイスありがとうございます。
別な方法でやりたいことが実現できました。 ポテンショメーターを1つにまとめA7に
分圧抵抗のアナログボタンをA6にすれば
D2,D3,D12,D13,A0,A1の6つのピンが開放され他の用途に使える
更にあと6個程度のボタンを追加する事もできる >>502
くわしく
>>503
求められる精度も分からないのにポテンショメーターを勝手にまとめるw >>502
内部クロック知らなかったので調べてみた…
3.3Vになって省エネ運用もできるのか
ナイス情報ですね 電池運用のヤツに使えるな…
>>503
抵抗分圧も調べてみた… なるほどね〜
ありがとコレやってみる!
ボタンだけでピン沢山使うのもったいないよね… >>504
当人が言ってる
>ポテンショメーターは1つで兼用できる
何らアイデアは出さず文句だけは一人前、さすがだな >>505
内部クロックは精度悪いのでシリアル通信で文字化けすることがある
その場合は通信速度を落とすか発振補正レジスタを調整する
OSCCAL=52 などと1行書くだけだけどね >>506
>何らアイデアは出さず文句だけは一人前
5ch民の鑑じゃないかwww >くわしく
教えてもらう立場なのになぜか尊大
役満だなwww >>508-509
そんな奴が多数なのが5chだからな 多少精度は犠牲にしても何か変わったことをやった方が偉いのだ、えっへん、どやどや
という雰囲気の中で
そうまでして1つに詰め込むメリットはあるのかなあ
という素朴なアイデアは書きにくい雰囲気w 素朴な疑問だろ
教えてやるよ
1MHzや4MHzにした時極端に消費電力が減る
以前実測したもの
Mega328P AU 3.3V 8MHz 4.8mA (BuitinLED 1.5mAを含む)
Mega328P MU 3.3V 8MHz 4.8mA (BuitinLED 1.5mAを含む)
Mega328P U-TH 3.3V 8MHz 4.3mA (BuitinLED 1.5mAを含む)
Mega328P U-KR 3.3V 8MHz 4.3mA (BuitinLED 1.5mAを含む)
Mega328P MU 3.3V 1MHz 2.0mA (BuitinLED 1.5mAを含む)
Mega328P MU 3.3V 16MHz 7.5mA (BuitinLED 1.5mAを含む)
Tiny44A 3.3V 8MHz 2.0mA
Tiny13A 3.3V 9.6MHz 1.0mA
>502はネタで言ってるんだと思う 誰に言ってるのか知らんが
教えてやるよ
とイキるほどの内容でもないだろ恥ずかしいw >>512
UnoをArduinoのまま内蔵クロックで動作させる方法を教えるならともかく
その程度のことは誰でも想像がつくよ増えると思ってる奴はおらんやろし 実は4MHzで出来ることを16MHzでやって3/4の時間スリープさせられるならばそっちの方が消費電力は低かったりする 素朴な疑問だけどUnoってクロック数変更できるの?
スケッチかブートローダでできて
ボードに変更加える必要が無いなら知りたい くわしく
なんてただの5chのノリなのに「尊大だ」とか言われてもねえ
教えてやるよ
の方がよほど尊大じゃんw 悲しい事にその誰でも思いつく事が>511はわかってないんだろ
しかもアイデアってw
ついでに割り算もしたるわ
2600mAHのバッテリーの場合
7.5mA駆動の場合、2600/7.5=346時間=14日
0.5mA駆動の場合、2600/0.5=5200時間=217日 >>515
俺のやった実験だともう少しコスト掛かった >>518
何が何でも「わかってない」ことにしたいんでしょ、わかりますw >>ID:XfA/3/cv
小坊並みの算数自慢はいいからクロック下げる方法はよ教えれ >>521
おまえがやれ
役に立って見せろよw
じゃあな 発振子外してまでピンを空けるメリットを聞いてんのに
その方法や手間には触れずに省電力話にすり替えた挙句
算数を披露して去って行った面白い人>>ID:XfA/3/cv >>502
内部クロックを使えばあと2つ空く
>>504
くわしく
内部クロック使って水晶外してピンをあける手間を考えれば
この流れは普通にわく疑問なので普通だと思う
そこへなぜか噛みつく>>509
しかも、クロックだけなら回路いじらなくても設定で落とせるのになぜかドヤ顔で>>512
わり算力もご披露>>518 ESP32-DevkitC互換をAmaでかって、FPM10A(Ali)で指紋認証できるようにしました。
FPM10AのVccを ESP32の5Vか3.3Vにつなぐと普通に動いているのですが、バックライトつきっぱなしで
気に入らず IO4あたりから digitalWrite(4,HIGH)で必要なときのみ使用するようにしたいのですが、
電流が足らないのかうまく動きません。
危険覚悟で動作中に3V3端子につなぎ直すと、そのまま動作するのですが、そんなものなのでしょうか?
IO4自体の電圧は3.3V出ているのですが、ライトが安定しません(涙)
ライトのON,OFFのコマンドがあれば一番いいのですが、何かいい方法はないでしょうか? >>530
IOピンからの出力では電流が足りないと思われる
MOSFETとかを間に入れて駆動させれば?
調べてみてね。 >>531
ありがとうございます
やはりそうなるのですね、以前に多様なものを UNOで作ったときは問題なく動いたESP32は、3.3V駆動だと理解してなかったorz
それ以前にFPM10A互換も、以前作成したものは、センサ読み取り以外ではバックライトオフだったので泣きっ面に蜂状態です。
暫定運用して、素直にMOSFET探してみます >>532
ショックで誤記や文字抜けが。。。
以前に多様なもの → 以前似たようなもの
暫定運用して → バックライトつけたまま暫定運用して >>525
PowerDownからの復帰が高速になる 感情抜きでテクニカルな話ができればいいのにね。
内蔵クロックだって今使わない人でも感情抜きにテクニカルな話を深めておいたら
使える場面もあるだろうに。
テクニカルな話に好悪の感情や、レスバトルの勝ち負けみたいな印象を残すと、
マジそれが有益なときに採用にあたって心理的障害になることがあるよ。 ここはオスゴリラばっかだからまともな意見交換は無理
プログラミングだとteratailとかstackoverflowあたりだけど
ハードウェアはどこらへんで話せばいいんだろうな >>451
サーバー立てられる環境なら、ストリーミングじゃなくて定期的にjpg保存したファイルを外に公開するのはどう?dropboxとかtonidoとか使えばポート開ける必要なくて、セキュリティ的にも堅牢。 >>538
eevblogでないですかね。あそこは門戸広い。 >>538
低脳、ゆとり、基地外がいっぱいのところでまともな意見交換は無理
が正しい。
あと、こんな奴の相手は普通の掲示板では無理だろ
(学校で例えるなら普通学級では扱えない連中を扱う特殊支援学級でないと駄目な感じ) >>539
ありがとうございます。アドバイスどおりに、一定の間隔で外部サーバーに.jpgをアップロードすることにしました。
あとは、一定の時間でファイルを削除するスクリプトを実装したいと思います。
本当にありがとうございました! >>530
言うてそんなに電気食うわけじゃ無いだろうから、
なんかのジャンクからひっぺがした1815とかのトランジスタいれれば動くっしょたふまん マウスのタクトボタンのdown-upを
arduino側のタクトボタン押してdigitalWriteでできると思うのですが
チャタリング対策はマウス側でやってると思うのでわざわざarduino側でしなくても大丈夫ですよね? 多機能で高価なゲーミングマウスでもチャタリング対策してるなんて聞いたことないなぁ そうなのですか
arduinoでタクトボタンやると100%チャタリングするので
調べてみたらdelayとか対策あるので
てっきりマウスもやってるのかと思ってました 私使い方が悪いのか高いマウスでも3か月程度でチャタり始めるので・・・
指定時間以下を破棄する対策ソフトもいまいちなのでマイクロスイッチ交換してますよ 渾身の1000行スケッチの動作OKのUNOに
ネット接続やIOTプラットフォームのライブラリやら入れたら
スケッチがデカくなりすぎてああああああ
便利なライブラリは容量が大きいスねぇ…
UNOは小さすぎるお…
スケッチを小さくするテク駆使してもダメそう
とりあえず手元のUNO2号に半分任せるか…
ネット接続前提なら最初からESPでやるんだった IOTデバイス作るのにwifiじゃなくて3Gや4Gの携帯電波使えるのって
3GIMくらいしか無いの? 高すぎやろあれは…
ラズパイならまだ安いのあるっぽいけど 使ったことないけど Wio は思ってるものではないの? >>550
1バイトを削るのに燃えてているとある日ライブラリなしのフルアセンブラが
最適解だと方向性を見失うパターンかなw >>552
LTEオンリーはどうなんだろね…
郊外でWi-MAXのエリア内だったけどガンガン圏外で
返品した思い出が… ドコモのならイケるのかな…
4G使えるなら間違いないと思うんだけどね…
>>553
脱初心者レベルなので色々ハードル高いっスね…
メモリの使い方や 出来るだけ関数化してみたり文字数少なくできるように
足掻いてみてます…
ピンも無理やり確保気味だしMega買っちゃおっかな… >>553
アセンブラに行き着く前に digitalWrite の無駄に気が付いたり。。。
もちろんアセンブラまで行き着けば、段違いのスキルアップになる!
反面、その大作のメンテ性は、ほぼゼロになるw
>>554
自分で回答を出されているようですけど、ESP が現在の理想回答でしょうね。
でも、足掻いている間、スキルアップできるのは、確実。
結果に関係なく、努力は身につく。
値段も安いので、STM32、ESP32 全部注文しておくのが、個人的にお勧め! 5vピンとGNDに間違って3.6vを繋いでしまったら
めちゃくちゃ熱くなったのですがなぜですか?
ちなスケッチは
#define VOUT_PIN 12
const float V_OUT = 2;
void setup() {
pinMode(VOUT_PIN, OUTPUT);
int i = (int) V_OUT * 51;
analogWrite(VOUT_PIN, i);
}
だけです 3.6Vというのが何処の電源かわからんけど、スケッチ関係なく、抵抗無しで電源とGNDとショートしたから過電流が流れたんじゃないの >>557
原因がたぶんわかりました
単三電池ケース(3本)直列電源だったのですが
プラスとマイナスを逆に繋いだっぽいです >>555
わかります…
そう、ESPで万事OKになるんだけどもう意地ですねw
かつてのファミコンやスーファミの開発者達も限られた容量の中で
削りまくって名作を作っていたんだからとか…
買ったら負けみたいな感じになってます…
今夜から手持ちのUNO2台で片方はセンシング担当、片方はネット通信担当みたいな
感じで頑張ってみます 一般的にはマイコンのI/Oは関数でなくマクロで書かれてることが多いんだよね、マクロのほうが高速だから
ただマクロはピン番号に変数が使えなくて定数で書かないといけないとか制限があって初心者が引っかかる可能性があるんだよね
普通はADCとかPWMとかいうところをAnalogReadとかAnalogWriteとかなるべく内部を意識させないようにっていうのがArduinoのやりかただから
まあArduinoにもDigitalReadやDigitalWriteじゃなくてfastGPIOやfastioっていうマクロを作ってる人がいるから速度が必要ならそういうのを入れてみるといいかも analogWriteでD3ピンから1.3v出力しました
マウスの電池が入る針金バネのとこにarduinoのGND、
もう片方の針金にこの1.3vを繋いだのですが
マウスに電流が流れていない?ようです
代わりに電池一本を繋いだら当たり前ですがマウスに通電してました
(マウスのボタン部分の+と-の電圧を測った)
(そもそもanalogwriteがうまくいってないのか?と思いLEDを繋いだら光りました)
単三電池が1.3vくらいだったので
arduino側から同じように1.3vの電圧かけたら
マウスに電流が供給されると思ってたのですが違うのでしょうか? arduinoから伸ばした導線とマウスの電池挿入の針金のとこを繋いだわけですが
針金部分の電圧を測ってみたら0でした・・
ワニクリップのとこはちゃんと1.3vあるのになぜだろう・・ >>561
色々意味不明だが少なくともLED点灯とマウス駆動とで必要な電流が異なるはず
D3からの電流が十分でなければマウスは動かないしArduinoも壊れる >>561
analogWriteはPWM出力。任意の電圧を出力じゃない。
しかもポートからはマウスを動作させるだけの電流は取り出せないよ。
マウスの電源をMOSFETなんかでスイッチさせるのが一般的 1pin40mAで
マウスはざっくり100mAらしいから
電流足りない >>563-565
なるほど・・マウスなんて10数アンペアだろうと勝手におもってました・・
> 40mA
結果的に流れなくてよかった・・
>MOSFETで
スイッチングやってみます >>566
俺のワイヤレスマウスの裏側にも1.5V === 100mAって書いてあったなあ
壊れなくて良かったね arduino2台で有線で連携する場合はナニがいいかな…
SPIとかシリアルとかI2Cもあるけど適してるのが知りたいです
環境はI2Cのセンサーやソフトウェアシリアル3つくらい使ってる一台と
イーサネットシールドとjpgカメラ載せたもう一台 こちらはネット接続や
SDカードへのアクセスにSPI使ってるみたい…
用途は一方から集めたセンサー値やらをもう一方に送って
ネットにupしてもらうとか 写真撮影してSDに保存しといてーとか
そっちのリレーを動かしてーとか命令する感じです…
知りたいのはI2Cいっぱい使ってるからアレだよとか SPIのほうがノイズに
強いぜ?とかシリアルだとアレなんだよなぁとか そんな助言です… >>567
でも、電池のワイアレスマウスは電池一本で何ヶ月も動くじゃん?、 ずーっとマウスのLEDが明るく点灯してるわけではないよね?。
時々、スリープしたりするよね。 電池で動くワイヤレスマウスは赤く光らないと思うが・・・
少しでも電力節約のために赤外線LEDを使ってるはず 赤外線って電池一本でも光ると言う事を電子工作始めてから知ったな ビックカメラで266円で売ってた無線マウスは赤く光るぞ 俺のは青く光ってる。特に電池の持ちが良いのが赤外LEDなのかな。 スターターキット日本語版を買って、Arduinoデビューしました!
楽しい!
でも、スターターキットに入っているプロジェクトブック(教則本)の
陽気なイタリア人ノリがイマイチ気に入らないw >>577
これ良さそう…
外付け拡張メモリ的にも使えるってこと? なんでArduinoって、PoEに対応してないの?
PoE対応のイーサネットシールドは廃番になってるし。 無線の時代だけどイーサネットシールド2買っといて良かったような感… >>581
いや、それでもいいのだが、
PoEモジュールそのものが手に入らない。 PoE の受電側なんて単純だから自作したらいいと思うが
48Vからの降圧DCDCが探しにくいだけで、給電側とのネゴシエートは抵抗2本だし >>585
その回路ってツェナーで12vに下げてそれを5vで安定化させているだけじゃね? 畑に環境モニターを設置するとしてアース的なものってどうしたらいいと思う?
アース棒でも打ち込んでarduinoのGNDと接続すればいいか…
あとは電源も来てるけど雷ガード付きのOAタップにACアダプタで守ってくれるかな…? 何をどの程度守るのか明確に。
ま、大概ハードがふっ飛んでもスペアに交換すればいいからノーガードってなるけど。
一番守るべきはデータだからリアルタイムで吸い上げとくとか。 >>588
具体的なシステム構成や仕様が分からないから何ともだけど、相互に距離が離れてれば、自分なら、信号は無線とか光でアイソレートして送ると思う >>588
10m以上の高さのある避雷針を立てないと駄目だな >>589
>>590
確かに… データはRTで送信してるから
データがサーバーに不着ならアラート鳴らして
現場直行って感じにするかな…
エアコン工事用のアース棒が一本余ってるから
気休め程度にぶっ刺しとこ…
>>591
だよねぇ…w
すぐ脇の電柱のてっぺんに
避雷針付いてるからそっちに落ちてもらうように祈るよ…w やたら接地せんほうがいいで。 なにもつながないほうが助かる。 >>593
うーん そうかもしれない…
気づいたらガチガチに保護してしまいそうや…
ノーガードで行くかー
俺に弾は当たらねえっ て信じて… Arduino UNOを初代ファミコンに例えたら、スーパーファミコンは何になりますか? なんとも微妙な表現だがそのくらい乗ってないんじゃない
一気にプレステくらいのMCUが乗ってるのになる arduinoの動作温度ってどれくらいかわかる人いる?
スペック見ても使用温度とか保存温度とか載ってないんだよなあ あ ATmega328Pのデータシートには-40〜85℃って書いてあった…
他のパーツはわからんけどそこそこ行けそうかな… -10℃以下だと電解コンデンサが怪しくなる。
外部電源で9Vや12Vを使うときは、レギュレータの温度が問題になることも。 PoEモジュールの回路図と使っている部品が判れば自分で作っちゃうんですが。 某所でロムってて気になったのですが何か殺伐としてたのでここで質問させていただきます
16MHz駆動のArduino Nanoで16MHzの矩形波を出力しようとしたらスケッチはどう書けばいいんでしょう
よろしくお願いします >>605
求めてる答えでは無いと思うが、クロックをそのままCLK0端子に出すしか無い。 >>605
周辺モジュールでもそれを実現するのは難しいような気がします。 >>606,607
あれ?
あっちでは何か出来るようなニュアンスだったんですが私の勘違いですね。
AVR単体の話と間違ってたかもしれません。
レジスタの値を直接書き換えるとかでないと出来ないんでしょうか?
AVR単体なら可能なんでしょうか? >>609
1周期の間にhighlowの2命令が必要だから >>609
>あっちでは何か出来るようなニュアンスだったんですが私の勘違いですね。
どこでそんな話があったんでしょ。
私が初心者集うスレで書いたのは16MHzのAVRで(1/16MHz)秒の幅のH(もちろんLも)が作れる、ってことですが。 >>610
理解しました
最大8MHzの矩形波ってことですね
ありがとうございました 汎用レジスタにビットパターンを用意しておいてOUT命令で出力すれば1クロックでポートを切り替えることは可能だがそれで得られるのは8MHz(そもそもループで破綻するけど)
SBI命令とCBI命令はそもそも2クロックなので無理、内蔵のタイマを使って出力するのも8MHzが限界
唯一可能なのはクロックをそのままピンに出力させるってことが出来る機能があるのでそれを有効にする ん?よくわからんけど継続する矩形波を出し続けるんじゃなくて62.5nsの1ショットパルスの話なの?
そういうことなら可能だよ>>613の1行目の話ね
俺はその話に参加してないからわからん >>613
具体的なお話ありがとうございます。
実際問題として
特定の動作クロックのNanoでそのときの最速の矩形波を出すのはどういうスケッチになるんでしょう?
もちろんクロックをそのまま出すというのは除きます。
もしお手数でなければご紹介ください。 >>614
幾度もありがとうございます。
継続的な連続する矩形波ということでお願いします。 >>615>>616
Timer0でも1でも2でもどれでもいいからTOP値を1にしてPhaseCollect以外のモードで出力するだけ ライブラリをZIPからインストールすると、ファイル→スケッチ例のメニューに勝手に
〇〇-masterって付く場合あるけど、みんな付いてる?
-masterって付けたくない場合はどうしたら良いの? 電気・電子掲示板群 ttp://x0000.net/forum.aspx?id=16
学術巨大掲示板群: アルファ・ラボ ttp://x0000.net
物理学 化学 数学 生物学 天文学 地理地学
IT 電子 工学 国語 方言 言語学 など
PS 連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0 >>618
スケッチフォルダの中のlibrariesの中にそのフォルダ名で解凍されてるからそうなる
フォルダ名を変えてIDEを再起動すればいいのでは? Arduino同士のI2C通信で質問です
Master側でセンサーの値をfloatに格納して それをそのままSlave側に
送ることって可能なんでしょうか? 色々調べてみたけど Master側から
センサーを持つSlave側にリクエストしてセンサー値を返させる例ばかり出てきます
byteとかcharとかに一度変換しなきゃダメなんでしょうか… なんで通信が絡むと途端にメンドくさくなるんや…
そういうライブラリが用意されててサクっとやれちゃうのがarduinoじゃないんか… 通信って結局byte列を送ってるだけだから、必ず何処かにその変換が入る
floatの内部表現をByte列化して送って受け側で戻せば出来るから自分でラッパー関数書けば良いだけだよ >>627
やっぱりそうなりますよね…
すぐに投げたくなっちゃうこの集中力の無さ
なんとかならんもんか… sprintf で変換して sscanf で戻せよ。 >>629
ああ… それクラウドサーバーに投げる時にやったことある…
sscanfは知らないから調べてみます…
sprintfはfloat×だからdtostrfってのもあるのか… >>627の具体的な方法としてなら&floatをchar*にキャストしてやればバイト列でアクセスできるな
まああんまりこういうやり方する人いないか… >>631
できるけど、意図的にやってるのかプログミムミスか区別付かないので
厳格なCだとワーニング案件
unionで別の使い方定義して"正しく使ってるよん"と教えて差し上げるのがいい arduinoはcharじゃなくてbyteと書けと言う方針みたいだね
union {
float f;
byte b[4];
} a;
a.f=1.0
とするとa.bが内部表現のbyte列へのポインタになるはずだから、それをi2cのwrite関数に渡せば出来ると思う お行儀良いかは別として整数にキャストしたfloat変数のアドレスをインクリメントしながらポインタ扱いしても送れそう
(byte)(*((volatile unsigned int *)((unsigned int)(&f)+i)))
みたいな…(fがfloat変数でiに0〜4←sizeof(f)-1でも可)
なお未テスト、多分送れる >>634
自己レス
0〜4じゃ5バイトじゃんw 0〜3です… >>633
あ!それトライしてみます! φ(.. )ユニオン…
>>634
お行儀悪くても何でもいいから送りたいです…
* が出てくると途端にやる気失せちゃう…困ったもんだ なんか… 難しいじゃねえか… (´;ω;`)
ぼくはライブラリ依存症なんだ… getValue();とかやれば
自動的にそのまま使える型でくれるのしか使えねーんだよぉおお…
…と叫びたい librariesフォルダに116個のライブラリが入ってるがなにか? それくらいはなんつーかArduino言語(まぁつまりはC)でプログラムを書くなら覚えておかなきゃ行けない基礎知識というか・・・
ライブラリとライブラリを組みわせるためにはある程度書けないとダメだろ >>636
産業機器ならメーカーサポートに聞いてもらって・・・ >>640
まぁどーしたって避けて通れなさそうですね…
調べれば調べるほど新たなる構文が出てきやがる…
がんばるぞー !(´;ω;`) >>642
上の解答も複数あるように、そもそもやりようが色々あるから好きなのでやればいい
あと変な顔文字をやめて「ここ参考にこう考えてこう書いたけどこうなってしまう」を添えてここで聞けば教えてくれるでしょ 型変換して通信できた!
ちょっとfloatだと難しかったのでint型で妥協しましたが…
みなさんありがとうございました もっと勉強しなきゃなあ… >>646
>>633のようにやればfloat型もただの4バイトのバイト列なので簡単だと思うよ
>>633のやり方だと
a.f = 3.14159
のように代入して
a.b[0]、a.b[1]、a.b[2]、a.b[3]までの4バイトのバイト配列でアクセスする
シリアルで送りたければ
Serial.write(a.b, 4);
文字列で送りたければ
for (int i = 0; i < 4; ++i) {
snprintf(buff, 10, "0x%02x ", a.b[i]);
Serial.write(buff, strnlen(buff, 10));
}
でいいはず あと、同じunionで複数の変数を宣言したいときは
こんなように名前をつけることも可能
union foo {
float f;
byte b[4];
};
union foo a;
union foo b;
union foo c; 普通に書式文字列%fでprintfしてやり取りするのが、他のルーチンと共通化出来て
簡単でわかりやすい、効率は悪いかもだが。
union はあとで悩む種になりうる。 uint32_t とかで4byteで送るってのもありかな。 >>651
2進主導小数点数を10進浮動小数点に変換してからまた2進浮動小数点に戻すのにかなりの誤差が出るよ
実際にやってみるといい vsnprintfやvsprintfが対応してるArduinoならこんな関数も作れる
char str_buff01[1024];
void printf1(const char* format, ...)
{
va_list ap;
va_start(ap, format);
// vsprintf(str_buff01, format, ap);
vsnprintf(str_buff01, 1024, format, ap);
va_end(ap);
Serial.print(str_buff01);
} >>645はprominiでコンパイル検証してみたがエラーは出なかったぞ
str_buff01のサイズは適当な値なのでメモリの少ないマイコンでは修正する必要はあるよ googleドライブにjpgデータを転送するスクリプトなんだけど、もう一つの別フォルダに違う名前で保存したいと思ってます。
testフォルダには転送できたのですが・・・・
どなたかご教示ください。
function doPost(e) {
var data = Utilities.base64Decode(e.parameters.data);
var nombreArchivo = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyyMMdd_HHmmss')+"_v2.jpg";
var blob = Utilities.newBlob(data, e.parameters.mimetype, nombreArchivo );
// Save the photo to Google Drive
var folder, folders = DriveApp.getFoldersByName("test");
if (folders.hasNext()) {
folder = folders.next();
} else {
folder = DriveApp.createFolder("test");
}
var file = folder.createFile(blob);
return ContentService.createTextOutput('Completo')
} 完成品の写真貼ってもらわんと組立が間違ってるんだろとしか言えない 配線間違いだろうな。
あとはICがパチもんだったとか。 そうですか、もう一度確認し直します。
ありがとうございました。 確認するじゃなくて写真を出せって言ってるのに分からないのか…。 Arduino Nanoを使って何か作った場合、みなさん最終的にはどんな感じに仕上げてます?
ユニバーサル基板にピンヘッダでハンダ付けが一般的なようにも思いますが
プリント基板とかで作るならどうしてますか?
出来れば穴開をあけたくないんですけどなんかうまい方法ないですか?
参考になりそうな写真見つけたらリンク張ってもらいたいです。 >>665
プリント基板頼むならNanoそのままつける必要無くね
ふつうにAVRとして乗っけているわ…USB-UART等の周辺回路も必要ならつける、自分で好きに配置出来るし
ユニバーサル基板でNanoやProminiをそのまま使って作るときはピンヘッダで付けるけどスタッカブルヘッダ使って2階建てみたいにしてArduinoの下の空間も使うことが多いかな >>648
そのやり方で試してみます!やっぱりfloatがいい…
今回はint型からバイト列に変えて送信して
1バイトに収まらないサイズはhighByte(Sensor_val)と
lowByte(Sensor_val)で送って 受け手側でmakeWord()で
結合してみました… ATTiny44でアバウトなタイマーを作ろうとしています。
最長12時間のタイマーです。誤差±15分ぐらいなら全然OKです。
ATTiny44は内蔵クロックを1Mhzか8Mhz、どちらにしようか迷ってます。
どちらの方が精度がマシですか?同じですかね?
試しに1Mhzで10分計測した結果、誤差0〜3秒程度でした。
また8Mhzの外部クリスタルも持ってますが、内蔵クロックとどれほどの違いがありますか?
タイマーのスケッチはTimeLibライブラリーを使用します。 >>668
10分で3秒なら12時間でも3分36秒だけどダメなの?
±3秒だろうからもっと誤差は少なくおさまりそうだけど。 >>668
元スレで回答しちゃったからそっちみといて >>669
できたらなるべく誤差が少ない方が良いかなと思いまして、、、
結局、外部クリスタルを付けることにしました。ありがとうございます。 ATTiny44でArduinoって方が興味ある。 まぁ水晶も空きピンもあるならつけといてもいんでない?
高いもんでもないし >>674
ポピュラーなAVRには殆どコアあるよ
比較的新しいtiny1にもあるし 128kHz のほうが消費電力小さくていいかもね。 >>677,679
ありがとう、面白いですねえ
興味本位でどれか試しにやってみようとする場合
正式なArduinoには搭載されていない物の中で
とっつきやすいというかポピュラーなのはどれなんでしょう? >>680
https://www.microchip.com/ParamChartSearch/Chart.aspx?branchID=30047
AVRはもっと沢山種類があって、その中でポピュラーなのが>>679でArduinoに出来る奴
だからあの中なら正直どれでもいいから求めるROMやRAMの容量、ピン数や搭載ハードウェアで決めるべき
しいて言うなら
mega0シリーズとtiny1シリーズのような次世代型(機能が豊富)とそれ以外の昔からあるtiny/megaに分かれてる
>>679にあるのだとmegaCoreXとmegaTinyCoreがそれぞれmega0とtiny1の次世代製品に対応してる
DACを装備してたり水晶なしで20MHzで動いたりADCが2ラインだったり論理回路を組み立てられたりタイマ倍くらい装備してたり高性能で安い
その代りレジスタ操作の書き方とかI/Oレジスタの構成がちょっと変わってる(Arduinoとして使うならライブラリと関数でラッピングしてあるからそれだけで済ますなら一緒ではあるが)
上記2つ以外は昔からある製品だから安定してるしUno、Nano、ProMicroなどに搭載されてる製品と同じように利用できる
もちろんだけど周辺回路(クリスタルを積むだとか、電源回路を組むだとかUSBシリアルを付けたいとか)は自分で考える必要はあるよ >>680
個人的には1.27mmピッチのSMDに抵抗が無ければtiny1がダントツでオススメ
旧世代よりペリフェラルが圧倒的に高性能だし旧世代の製品の1/2〜1/3くらいの値段で買える
SMDとは言えSOICパッケージで扱いやすく8ピン、14ピン、20ピンと選択肢あるのもいい
これの書き込みは手持ちのUnoかNanoで「JTAG2UPDI」というスケッチを使えばOK
どうしても2.54mmのDIPじゃないと無理だっていうならtinyの85と84と861がオススメ
ペリフェラルはUno系のちょい劣化版でそれぞれ8ピン、14ピン、20ピンかつDIPパッケージが有る
ただ次世代と違い旧tinyは乗算器がないので掛け算をビットシフトと足し算でやりきってるので
複雑な計算をぶん回そうと思うと同じクロックで動いてるUnoとかより手間取る(次世代はtinyでも乗算器あり)
これらの書き込みも手持ちのUnoかNanoで「Arduino as ISP」というスケッチを使えばOK
俺は本家Arduinoだとピンを持て余すような小ネタに使うから安い・小さいの良く使う
まぁArduinoにしないで普通にAVRとして使っている事の方が多いけど 赤外線 受信機 1838B に5vを入力したら、焼けてしまいました。
電圧を下げた方がいいのでしょうか。データシートでは2.7から5.5vになっていました。 >>683
電源5VのUNOでも、追加部品無しで簡単に繋げるだけだから、端子や極性間違えて無い?
https://i.imgur.com/IIDHdQ2.jpg Arduino Micro 購入して今から調べつつ試してみます。
これやったら壊れるって言う事だけ教えてもらえますか。 >>685
ICのデータシートに乗ってる絶対最大定格を超えることをする >>685
ICのデータシートに乗ってる絶対最大定格を超えることをする あれエラーって出たのに書き込めてたのか
多重になっちゃった >>684
>>686
ありがとうございます。何かの拍子に、定格を越えることがあったのかもしれませんね。今後は3vで運用したいと思います。
Unoとの接続例だと5vばかりですが、なんで3vを推奨しないのでしょうか。 物理的破損以外にもフューズ書き換えで文鎮化にもなるから怖い・・・ >>689
最大5.5Vなんでしょ?なら5Vは平気だよ
そもそも3.3Vで動作させて5Vとインターフェースするにはレベルシフトしないといけない事はわかってるよね?
Unoが3.3Vになるわけじゃないんだからセンサーが3.3VだとUnoは5Vでやりとりしようとするわけだからね
燃やしたのは単純にGNDとVCCを逆にでも繋いだんでしょう
これももちろんGNDを0VとみるとVCCが-5Vになるということで絶対最大定格をとんでもなく破ってるわけだけど >>690
ヒューズに関してはどう転んでも完全に殺すことはできないんだから元に戻せば使えるよ
ICSPを殺そうがRESETを殺そうが12Vパラレルライタには逆らえない
高電圧パラレルライタもUnoなりNanoなりで作れるしね >>689
・ たまたま使っていた1838Bが不良品で5V程度でも焼けてしまった
・ 5Vにつないだつもりが実は12Vにつながっていたとか
テスタで電圧は確認してる? 12Vヒューズリセッター自作してるけど
Aliで買ったtiny44、10個のうち2個が12VモードだとID0000でリセット不能だった
5Vだと普通にID読めるしソフトリセットのコマンドも通るんだけどね
Tiny85でヒューズリセットできなくなったってのも見たことあるし
何かの拍子に文鎮化するのかも知れない >>693
12vは繋いでません、電源はDC5vアダプタです。
たまたまですかね? >>694
偽物使っといて変な情報流すなよ
そのマイコンが偽物なだけ 偽者ってのはTiny11の表面削ってTiny85ってレーザー刻印したりその程度だぞ >>691
現在、モジュールを交換して3vで安定可動しています
IRは今回初めて挑戦しているので、アドバイスがとても勉強になります。 >>697
違うぞ
ちゃんとエポキシ除去か焼いて中身見てる?
普通にマジの偽物あるよ
AVRにもあるしARMにもあるしMAXIMの高いICなんかもある >>694
TL866でtiny2313のSPIENAをはずしても大丈夫だったがRSTDISBLは
IDが読めなくなり復旧不能。 他のパラレルライタで無事復旧できたので
TL866は使えない子認定しました。 >>700
高電圧対応してないから当たり前
そこだけ12V掛けて良くてそうするとプログラミングモードを呼び起こすようにしてある
そうすることでリセットピンをfuseでGPIOにしてもプログラム出来る仕組みなんだから その点megaTinyCoreはいいぞ!めちゃ周辺機能が豊富でDACがついてるから音楽再生したりとかの遊びもできる
最近出たから偽物は無いし(そもそもAliに一切ない)正規品がそもそも安いし、書き込みもデバッグもGNDとUPDIの2本だけでいい
UPDIピンすらIOポートにした場合はこちらも12Vが必要になるが、12Vを一発入れればその後継続してUPDIモードになってくれる仕様なので
わざわざ専用ライター作らんでも手動でちょいっと12Vに繋いでから普通にライターで書き込むだけで復活できる >>702
何その夢のようなマイコン
1つおイクラ? megaTinyCoreって1個100円以下であるじゃん!
いままでAliで古いTiny44とか85とか13とかMega8とか88とか168とか買ってる場合じゃなかった! >>701
SPIENAはずしたらHVPPでイレースするしかないと思ったが高電圧対応なくても
いいのですか? tiny1ファミリはmega0と同じ系統でmega0ファミリのATmega4809はArduino公式のNano Everyに搭載
新しい世代のペリフェラルを試してみたいけど1から自分でマイコン乗せるのはちょっとって人はオススメ
https://www.switch-science.com/catalog/6199/ ボタンの長押し処理ってどういうスケッチにすればいいんでしょうか? ESP-WROOM-02同士でやり取りしたいんですが…
5個の入出力をそれぞれマスター・スレーブで双方向に通信したいんです。
マスターの入力Aを押すとスレーブの出力AがONになるって感じですが可能でしょうか?
こういう方法や実例があれば教えていただけると助かります。 >>709
とりあえずハードウェア層の話で通信手段は何よ
(有線なのか無線なのか、有線ならSPIなのかUARTなのかI2Cなのかはたまた独自規格の通信を作るのか、無線ならWifiなのかBluetoothなのか…)
んで通信手段を決めたら自分でプロトコルを考えたらいいんじゃない?
5個の1bitの情報なら1バイトに収まるからめちゃくちゃ簡単だと思うけど
残り3bitをパリティにしてもいい >>710
「ESP-WROOM-02 間でUDP通信」って奴を見て考えてたのでWi-Fiです。
この作例だと4個の一方通行の通信しかできないようで双方向に出来ないのかな?と。
あまりArduinoを触ってないので細かい所は分からないんで助けて欲しいです。
(作例や定型の命令を拾ってきてピン番号とか買える程度は出来ますが…) >>711
https://www.mgo-tec.com/blog-entry-udp-wifi-m5stack.html
こういうことかな
M5Stackと書いてあるけどこのM5Stackの中身はESP32
その程度の知識のままだとたぶん無理だな
ちょっと勉強する気が必要だ https://github.com/micronucleus/micronucleus
あれ?いつのまにかmicronucleusブートローダってmega328pに対応してたんだな
これでUSBシリアル変換とかなしで328pだけでUSBと繋げてスケッチアップロードしたりできるな 参考にしてたのはこの作例 http://tc96.hatenablog.com/entry/2016/09/14/130932
(NGワードになるからhを大文字にした)
極端な話マスター・スレーブ共に送信と受信の部分を入れちゃえばいいのかな?と。 Arduinoではないですが、互換機ということでここで質問させてください。
Pro microのHID機能でキーボードを作ったら、
デバイスマネージャー上で「USB Composite Device」扱いとなったのですが、
普通の「キーボード」扱いにする方法ってありますか?
PCゲームによっては使えないものがいて、これが原因ではないかと思ってます。
よろしくお願いします。 >>716
標準のライブラリはマウスでもキーボードでもなんでも内包できるその「USB Composite Device」にとしてマウスやキーボードをエミュレーションしている
キーボードが良ければ完全にキーボードとして振る舞うことは当然可能だけど標準ライブラリじゃできないからUSBの仕様を自分でちゃんと理解してデバイス設計出来ないと作れない
普通の人はエミュレーションでも何も困らないので、既製の32U4で使えるライブラリがあるかどうか…なかったら↑の通り自作しかないね
出来るか出来ないかの質問で言えば当然出来るよ >>715
俺思うに、まだ、ESP-WROOM-02を買ってないんじゃないのか
(確実に自分でできるとわかったら購入と) >>718
買ってあるよ。2個
ただ秋月の四角い奴かっちゃったからブレッドボードに刺さらず詰んでるだけ。
(T型の方買えばよかったと後悔してる) ブレットボード2枚でも良いんだけど…購入時期や物が違うとかで連結出来ないんだよな。
改めて秋月のT型基板の奴買いなおすかブレッドボード買い足すか考えてる。
まぁ適当に繋いで実験してみるけどさ… ESP8266なら足のピッチも大きいから、ユニバーサル基板で自作変換ボードも作れそう AruduinoUnoとNano性能は同じで、ブレットボード上で使えるNanoの方が便利そうだけど入門書はUnoばっかりなのは理由あるの?
NanoEvery安い上に性能上がってるらしいけど初心者が1台目にこれ選ぶのはあり? Nano選ぶような奴は大抵の事は自己解決できるから初心者スレで目立たないだけだろ
俺は何も判らない頃UNO買ってその後追加したのは全部NanoかPromini シールドがいろいろあって重ねてライブラリ入れるだけで色々出来るから初心者に
こんなこともできるんですよみたいなことやらせるのに都合が良いってだけじゃね >>723
UNOを積極的に選ぶ理由は見つからないなあ
UNO用の作例でNanoでできなかった記憶はない
シールドも1つも持ってないし、最初に買ったUNOはどっかにしまったっきりだ
ついでに言えば、その最初のUNOですら中華クローン 質問の答えになってなかったな
Every持ってないので なんかよく分からんから、最初はUno買って入門書見ながら色々やってみるかなあ
開発ボードってのは、モジュール載せたお手軽強化キットって認識であってる?
開発ボードとシールドは同じ意味? 開発ボードはマイコンが乗った本体みたいなもん
シールドはそれ専用にサンドイッチ状に重ね合わせることで他のチップを併用して機能を追加するやつ(あなたの言うお手軽強化キット) やっぱNanoにしたくなった。Everyってついてる方選んで問題ないよね?
>>731
わかりやすい、理解できた! >>732
上でEveryに乗ってるチップはマイナーじゃないって書いといてアレけど、比較的新しいチップが乗ってることは事実なので
本当に初めて手を出すなら普通のNanoにしといたほうがいいかも?
出来ることも増えて性能も良くなってるし、とてもいいチップではあるのだけど、まだ日本語の情報が少ないでしょう 何もかも初めてで入門書見ながらやるなら掲載写真と同じように配線できるUnoでいいと思う
慣れたらブレッドボードに刺さる方が便利じゃん!てなるだろうけど
本に載ってる配線するのにUnoの○○はNanoのここだから…とかやってると間違いのもと いやいや、むしろ
>Unoの○○はNanoのここだから
とやった方がいいよ
写真だけ見て配線する癖なんざ絶対付けない方がいい どのレベルの初心者かによるんじゃねーかな〜
こういうのってそれはわかってるから言える事みたいなのあるからな
とりあえず組んで動いておおーーってなるところから始めてもいいとは思う
人それぞれかな 写真だけ見てやる前提で話してるからそうなる。
ピンの名前で見てボード上でそのピンを探すならUNOでもNanoでも違わない。 回路図見て配線すら出来ない様じゃどの道やっても続かないよ派
VS
とりあえず写真見た通りでもいいから最初は完成した方が楽しいよ派
ファイッ!!
なお持論マウント合戦が始まり質問者は二度と帰ってこないものとする 写真だけ見てる前提って誰が言ってるん
ピン見て配線して上手くいかなかったときに写真があった方がいいんじゃない?ちゃんと確認すれば間違いが分かるじゃんとかそういう話じゃなくて
そもそもArduinoってそういう層も間口広げて取り込んでいこうってスタンスだと思ってるけど…
まぁその程度出来ない奴は続かないだろうっていう意見には賛成だけどもね せっかくunionとか教えてもらったのに
配列やら構造体やら基本的な事がわかってないので使えない
ぼくが通りますよ… やっとポインタが少し理解できました…
これから使えそうな所に使ってみて練習だぁ… 進入監視システム作りたいんやけど
赤外線を常に照射してて一瞬でも途切れたらってのでええのん?
落ち葉がさえぎっただけで進入検知!とかやりたくないんだけど 調べてみたら、Nano はセラミック振動子だけど、Nano Everyは内蔵オシレータなんだね。 >>740
C言語だけの勉強なら、Arduino IDEみたいなマイコン対象じゃ無く、パソコン本体でコードを動かすフリーのコンパイラ使ったほうがいいと思うよ
1行づつ実行したり、変数値の監視とかブレークポイントとか設定できてコードと動作の確認がし易いし、入門を謳った処理系も結構有る >>741
感度調整ボリュームで遮断時間調整すればいいんじゃね
Nano Every 秋月で1500円
ESP32 秋月で1480円
俺なら後者にするわ 興味を持てるテーマが無ければ学習が進まない人もいれば、テーマがなくても学習ができる鉄人もいるし。
でも、ブレークして変数が見られない環境で学習するのはつらいね。 >>716
それはHIDになっていないのではないかな
私が使っているのはブートローダがLeonardoの32U4搭載のPro Micro互換ボード
だけど、HIDライブラリ使うと普通にHID機器として認識されて、リセットかけない
限りHIDデバイスで動作するけど
「USB Composite Device」って出るならば「sparkfun」のPro Microなのかなって
思うけど、IDEにsparkfunのライブラリを入れるとか作業対象をsparkfunのPro
Microにするとかしてる?
あとはSPI経由でLeonardoのブートローダを書き込むとLeonardoとして扱えるので
Leonardoとして色々やってみるとか Arduino Pro IDE
v0.0.6-alpha.preview
@rsora rsoraが リリースしました 20 日前 ・ このリリース以降、マスターへの 3つのコミット
変更ログ:
新規で注目すべき点:
- CLI設定のサポート。サードパーティコアをインストールすることができます。
- サードパーティコアの設定に対応しました。
- メニューからボード固有の設定を指定できるようになりました。(#10)
- [実験的]. Boards Control: Ctrl/Cmd+K Ctrl/Cmd+Bで試してみてください。
ボードを検索したり、実際のサードパーティのコアを設定したり、利用可能なボードの1つを選んでみてください。
- 未知(サードパーティ)のボード検出をよりサポートします。(#198)
- 今後、ボード検索はあいまいになります。(#223)
- 最終的なアプリではネイティブのgrpcに切り替えました。
修正:
- LinuxとWindows 用の最終アプリのZIP構造が変更されました。(#229)
- シリアルモニターは\nを想定していませんでした。(#201)
- エディタモードをトグルしてもコードは削除されません。(#192)
- 複数のエディタを非同期で開いたときにエディタフォーカスがおかしくなる問題を修正しました。(#201)
- アプリケーションの設定を ~/.arduinoProIDE に保存するようにした。(#184)
Windowsバージョン
Arduino Pro IDE Windows v0.0.6-alpha.preview
https://downloads.arduino.cc/arduino-pro-ide/arduino-pro-ide-0.0.6-alpha.preview-windows.zip
Mac OSXバージョン
Arduino Pro IDE OSX v0.0.6-alpha.preview
https://downloads.arduino.cc/arduino-pro-ide/arduino-pro-ide-0.0.6-alpha.preview-osx.dmg
Linux64バージョン
Arduino Pro IDE Linux v0.0.6-alpha.preview
https://downloads.arduino.cc/arduino-pro-ide/arduino-pro-ide-0.0.6-alpha.preview-linux64.zip >>751
へぇーっ、プロだとデバッガが乗ってるんだな?
Arduinoもココまできたか。。 まだアルファ版だもんね… せめてβから使ってみたい…
IDEどうしよかな Eclipseまだ試してないから入れてみよっかな… おはようございます。センサーの電源について質問です。
余熱が必要なセンサーを使いたいと思っています。
センサーには5V、GND、信号線の合計3本の線があります。
このセンサーは、5VとGNDの2本を繋ぐと、
強制的に予熱するようになっている(抵抗が発熱する)のですが、
センサーを使った測定は1日に1回でよいので、
その間ずっと予熱しておくのは電池がもったいない。
そこで、5Vの線を5Vピンに繋がずにデジタルアウトピンに繋いで、
余熱が必要になったらそのピンをHIGHにして5Vをかける、
測定が終わったらそのピンをLOWにすれば電気節約、
なんていう使い方をしようと思ったのですが、
これは、回路的にアリでしょうか?
それとも、電源の5Vはあくまでも5Vピンに繋ぐべきでしょうか? >>755
余熱なら消費電力もそれなりに多いのでマイコンから直接動かすのは厳しいと思う
トランジスタ等で回路を作るのが現実的 >>755
そのヒーターとやらの消費による
実用的にマイコンのピンから取っていい電流はせいぜい1本20mAくらいまで&ピン全部で100mAくらいまで
抵抗体なら250Ω以上あればまぁその使い方をしてもいいが、それより重い負荷(抵抗値が低い)ならトランジスタを使うべし >>756-757
さっそくありがとうございました。
データシート見ると、90mA流れるようなので、
別回路を組んでトランジスタでON/OFFします。
ありがとうございました。 シリコンエピタキシャルプレーナバイポーラジャンクショントランジスタ
メタルオキサイドセミコンダクターフィールドエフェクトトランジスタ 出力に90mAか、hfe=100ぐらいのトランジスタなら、ベース電流5〜10mAぐらいだな。 >>763
なんだって!!
ちょっと理解出来ない
俺の理解が違うのか、トランジスタの常識が違うのか、世界が生まれ変わったのか••• I2Cやってるんだけど送信バッファ溢れで連続してデータを
送れない。32バイト以内で送ったらスレーブはすぐにそれを変数に格納して、
バッファをクリアして、すぐに次のデータ待ちにしたいんだけど
どうしたらいいだろうか?Serial.flushみたいなのがあればいいんだけどなあ。 slaveでwire.onrecive使って受け取った32バイトを処理する関数でも登録しとけば良いんじゃないの >>767
うん、それでやってるんだよ。15種のデータを送りたいんだけど、
10個に減らして5分毎に送れば問題なくて、10個と5個に分けて30秒間隔を
空けて送ると前のバッファが残っていてエラーで破棄される。。もうかれこれ2日間くらいハマってるよ。 デバイスもコードも出さないんじゃエスパーしかちゃんと答えられない。stop送ってなくて応答待ちになってるとか。 >>770
あれ、、34バイト送ってるっぽい
一つ減らしてみる、、 こんにちは
DFPlayerでmp3を再生したいのですがうまくいきません
スイッチを押してSDカードの曲を順番に再生したい
ArduinoUNOです
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySoftwareSerial(10, 11);
DFRobotDFPlayerMini myDFPlayer;
const int buttonPin = 2;
int buttonPushCounter = 0;
int buttonState = 0;
int lastButtonState = 0;
void setup() {
pinMode(buttonPin, INPUT);
mySoftwareSerial.begin(9600);
Serial.begin(115200);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState != lastButtonState) {
if (buttonState == HIGH) {
buttonPushCounter++;
if(buttonPushCounter==1)myDFPlayer.play(1);
else if(myDFPlayer.readType()==DFPlayerPlayFinished )myDFPlayer.next();
}
}
lastButtonState = buttonState;
delay(1000);
} 何がうまく行かないのか分からない。
とりあえず1秒以上ボタンを押し続けないと動かないコードになってるけど
期待した動作なの?変数の使い方やツッコミどころは多々あるけど、
うまく行かない原因が分からんわ。
初期化も無いみたいだし、サンプルは動くの? 自己解決しました。ケアレスミスで括弧の位置がおかしかった。 間違えました。
2曲目から再生されてしまう。ボタンを押すと1曲目を再生し、ボタンを押すたびに2曲目、3曲目・・・と制御したい。
#include "DFRobotDFPlayerMini.h"
#include "SoftwareSerial.h"
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void setup() {
// put your setup code here, to run once:
mySoftwareSerial.begin(9600);
Serial.begin(115200);
pinMode(2,INPUT);
myDFPlayer.begin(mySoftwareSerial) ;
myDFPlayer.volume(30);
}
void loop() {
if(digitalRead(2) == HIGH){
myDFPlayer.next();
}
} bool first=true;
void loop() {
if(digitalRead(2) == HIGH){
if (first){
first=false;
myDFPlayer.play(1);
}else
myDFPlayer.next();
}
} 知人から頼まれてNano互換機でWifi接続の監視・通知デバイスを作成したのですが、
できればSSIDとパスワードは聞かずに(ハードコーディングせずに)知人自身の手で設定・変更ができるようにしたいです。
開発環境無しでUSB接続してUIからデータの一部を書き換えるようなアプリって存在しますか? int number =1;
void loop() {
if(digitalRead(2) == HIGH){
myDFPlayer.play(number);
number++;
}
} >>780
やはり作るしかない感じですかね… と言ってもArduinoもWebで公開されてるものをツギハギのコピペでどうにか動かしてる状態で、
USB通信するWinAppなんて全く自力で作れるビジョンが見えないというのが正直なところです
Bluetoothモジュールつきに切り替えてスマホのシリアル通信アプリで書き換えてもらうのが楽かもしれませんね >>781
USB通信するWinAppで考えているくらいなら、ユーザにarduino ide入れてもらってソース提供、#define で一番上で定義しておいてそこを書き換えてもらう。
ソース提供嫌なら、Hexファイルのssid部分を書き換えるアプリつくってセットで提供。SSIDの文字数がわかっていないとちょっと工夫がいるけどね。
Hexファイル書き込みツールはググってね。 >>782
ソース提供は全く問題ないのですが、最終的にPCスキルがゼロに等しい人でも使えるようにしたかったので
IDEのインストールやデータ保管の必要がある専用書き換えアプリ仕様は極力避けたくて方法を模索してました
正直シリアル通信もかなりハードル高いと思ってます(USBだとホスト機能の有無云々とかわからないと思うし)
「スイッチ切り替えるとUSBメモリとして振舞って、そこにあるテキストファイルをメモ帳で書き換えればOK」ぐらいまで行ければ最高なんですけどね SSIDとパスワードをもらうんじゃない、
こちらから指定するのだ。 microSDカードじゃ駄目?
シールドが100円程度だし、固定ファイル読み込むなら数行程度の
サンプルそのままで動く。
SDカード、PC接続USB、なんて何処でも売ってるし、
事前にファイルを用意してあげて、PCでテキストファイル書き換えて貰う。 >>781
NANOならUSBたってシリアル通信でしょ…
デバイスドライバ作れってワケじゃないんだぜ?
UARTで通信してEEPROMに記録した値を書き換えるようにハードもPCソフトも作ればいいよ >>786
ケースに封入してしまってるので現状の設計だと厳しいですが、SDカードはアリですね
>>787
いつの日かそういうのがスッと作れるスキルを手に入れたいです
もうPC自体持ってないって人も多いんでスマホ単体で完結できるのが最もユーザーフレンドリーかなとは思ってて
さっきAPモードとWebサーバー使ってブラウザ上で設定するって手法を見つけたんでちょっとチャレンジしてみます
皆さんご意見ありがとうございます そうだよねぇ… 若者もみんなスマホっていうハンディコンピューターだもんね
卒業論文やらでPC操作に手こずってたりするみたいよ >>788
ケース加工道具一式があれば簡単な作業なんだけど、
今後も頻繁に何か作るとかで無いと、道具一式で作りたい物が余裕で買えるw
Windowsの開発環境を作るのが面倒なのは、良く分かります。
仮想PCでLinux入れる方が簡単なぐらいですから。。。
>>783 で言われてる USBメモリ には、なりませんよ > Nano
いちからブートローダー作って V-USB を遥かに超えるプログラムを
32kB で作れないから世の中に無いんだろうと思う。
USB ホストにもなれないから、USBメモリを差すこともできない。
外部記憶の唯一が microSD。
>>787 が言う UART 通信であれば、PuTTY(PCのシリアル通信ソフト) とかで、
応答形式2問ですので、PC側のプログラムは不要です。
ESP32 なら色々と方法があるので、Nano にこだわりが無いなら、マイコンを
変更するのも、今後の機能追加もやりやすいかと。。。
後者のスマホアプリなんて IoT感 があってスマートだと思われます。
https://qiita.com/tomorrow56/items/8c2dfdf61d4741ba91de
https://qiita.com/kmaepu/items/3c9c94819f8b0f6da5af >>789
そうね
先ずPCのキーボードが打てないから スマホのフリックならおじさんより高速入力するけどなあw
やっぱり指10本使ったほうが速いと思うけど かな入力に関しては
タッチタイピングに匹敵するとかしないとか… 簡単な英数字入力装置を付けるのはどう?
OLEDとボタン2つぐらいあれば出来そうじゃない? どちらもI2C接続のI/OエキスパンダとOLEDモジュールにすれば2ピンで液晶付コントローラ付けれるぜ いやプログラムも継ぎ接ぎで、動かしてると条件がある。
全くの素人で無いので、心配は皆無なんだけど。。。
エキスパンダも使えば簡単なことだけど、やりたいこと+エキスパンダのサンプルは
存在しないだろうし、全てのピン部分のコードを変更する必要がある。
OLED も Nano の動作メモリ 2k だと日時の文字列フォーマットが限界。
かなり削りまくって sprintf 使わずでカレンダーが限界だった経験。
だって 2,000文字 だぜ?
SSID/Pasd と言っても入力値、比較、結果出力、厳しいと思うよ。 起動時にSDカードが刺さってたら、特定ファイルを読み込んで1行目SSID、2行目にPASSにするとか ありがとうございます
>>777
再生できましたが2曲目スタートでした・・・
>>779
DFPlayerのLEDが一瞬点灯しましたが再生できませんでした・・・ 私なら
スイッチを追加して、スイッチ押しながら起動すると決め打ちSSIDのAPモードで起動、スマホから繋いでwebインタフェースで設定かな。 ちょっとすみません
再生mp3ファイルは書き込んだ順なの?
もう一回確認します >>783
PCと接続しないとすると、
SSIDとパスワードを入力するインタフェース持った別のマイコンMを用意する。 ターゲットは起動時、特定のプルアップしたピンAをみる。Lowなら特定のピンBを介して適当なプロトコルでマイコンMと通信。
得たSSID PASSWORDはeepromに入れる。G、A、B の3pinで済むしプロトコルによってはAB兼ねられるから最低2ピンですむ。 Arduino Microで、排他的な6個のスイッチで1セットと排他的な10個のスイッチの1セットを検出したいんだけど、これってデジタルI/Oピンに直接つないじゃっていいのかな?
内部プルアップって書いてあるけど、プルアップ回路の抵抗って用意したほうがいいの?
用途は個人使用の遊具。
排他的と言うのは、同時押しされる事のないスイッチが6個のと10個ので1つの塊になっててその内のどれか一つしかONの状態にならないって事です。
調べてると、I/Oピンがもったいないみたいなセリフが散見されて、ロジックICとかダイオードとか使うみたいな話も見かけるのですが。 勿体ないとは言うけど他に使わないなら余らせてる方が勿体ないと思わんか? >>801
押されたことだけ検出したいのかどれが押されたか知りたいのか えっと、6個(10個)のうちどれか一つが常時ONになっていて、比較的ゆるい時間精度でそれが検出出来ればいいです。
(チャタリングとか、一瞬だけ押されたのを正確に検知とかは特に気にしない)
なので後者、今どれが押されているかを物理機構ないし使い方で同時押ししないようにするので、誤検出・誤操作関係のカバーも不要です。 >>801
他に使う予定ないなら無駄に余らせてもだしそれでいいのでは? ピンが切迫してくるといろいろ考えるようになる。
排他でいいならボタンごとに違う電圧が印加されるようにすればアナログピン1つで複数個のボタンをカバーできる >>804
まず現状でピンが足りてるの?足りてるなら別に今のままでよくね
勿体ないって言って、たとえばこれ↓2つ追加で付ければ6+10ピン使ってたのを2ピンで済ますこともできるが
https://eleshop.jp/shop/g/gT11512/
16使ってたのを2にして余った14の使い道が何もないならそれこそ勿体ねえって奴では 感謝です。
正確には無くてもいいかなって言う余分なボタン(全て独立して同時押ししうる)が5個と、
10個の排他スイッチ1セットが正確には16個あって10〜16個目は使用上区別する必要がないから電極繋げちゃおうって感じです。
今回は余分なスイッチ排除・16個→10個にします。
>805
ついでで、なんですが...
ちなみに排他スイッチなら、抵抗値変えてアナログで(段階的疑似可変抵抗化)って言うのは調べてて見かけたのですが、ちょうどスイッチ切り替えてる瞬間(0Ω)の時を検出しないように何かプログラムで工夫とかするんですかね? 当初疑問だった事は全て解決しました。ピンは足ります。ありがとです。
>805
なんかこう言うチップを必ず使わないといけないもんなのかどうかがよく分からなかったんです。 >>809
これって、SW3を押してから離してSW4を押す時に、検出が
SW3→SW押下なし→SW4ではなく、SW3→SW4になるように出来ます? >>810
スイッチの状態を読むのはあなた好きなタイミングでやって好きな処理をしたらいいのでは?
そもそも>>804で「一つが常時ON」って言ってるけどセレクタスイッチなの?
それをたとえ10ピン全部1個1個つなげたとしてもスイッチ自体は「SW3→SW押下なし→SW4」という動作だけど。
スイッチの動作と読み取った時の処理をごっちゃに考えてない? 10個のモーメンタリスイッチであれば「常時ON」っていうのはソフトウェア的に持ってる情報であってスイッチの状態じゃない >>810
安定した状態がみたいなら複数回読んで比較とかすれば。 ああ、そうか人力の範疇でどれかにスイッチが入ってる(入れてるつもり)のと電気的に切り替えの時に必ず全スイッチが切れてるのは別か... >>811,>>812
SW押下なしの部分を処理的に無視するプログラム作れば良い訳ですね。 電気・電子掲示板群 ttp://x0000.net/forum.aspx?id=16
学術巨大掲示板群: アルファ・ラボ ttp://x0000.net
物理学 化学 数学 生物学 天文学 地理地学
IT 電子 工学 国語 方言 言語学 など
PS 連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0 様々なご意見ありがとうございます 全部読ませていただきました
皆さんそれぞれ手法が違うのはやはりArduinoは自分の手の届く範囲で使うものという前提なのか、
知識が無い人に渡してコンフィグをさせるインターフェースの定番は確立されてないのかなという印象です
クソだなと思ってたルーターの設定画面が急に偉大に見えてきましたね >>817
定番というか
>知識が無い人に渡してコンフィグをさせる
ようなものを作れる人は自分で作っちゃうから定番が産まれようがないだけでは もう今の時代じゃPCよりスマホの方が圧倒的に皆が持ってるもんなぁ
Androidアプリも簡単なのでよければProcessingでArduino並に簡単に作れる時代だしね Arduinoにデータを入力する方法が明確でないから何をするか分からないみたいな
状態じゃないのかな
Arduinoで動的に外部からデータを変更したいならば、まずはどんなインター
フェースでデータを渡すか考えないと話が始まらない
Arduinoは出来合いの製品と違って、外部とデータをやり取りする部分はすべて自分で
実装する必要があるので、特定のインターフェースでやり取りするノウハウはあっても、
このインターフェースに決めうちでやり取りをするアプリとかノウハウっていうのは
存在しないよ
Arduinoの閉じた世界でスイッチや出力機器を着けて使う分にはArduinoのH/WとS/Wの
知識があれば出来るけど、Arduino以外の世界と繋ぐ場合には相手側の知識もないと
どうにも出来ないよ >>822
つまり自分で作るしかないということじゃない? 「Arduinoは自分の手の届く範囲で使うものという」前提
と
「知識が無い人に渡してコンフィグをさせるインターフェースの定番は確立されてない」
は関連はないのでは。
テレビのリモコンみたいな性格のものをArduinoで作ることはできるし、
それは自分の手が届く範囲外にも拡散しうるけれど
知識のない人がコンフィグする必要はないしね。
パソコンが使えるならUSBの仮想シリアル接続で、特に障害になることはないし。
Bluetooth は少量のビジネスならしんどいけど、趣味の範囲ならわりと多くの人が
使えるI/Fかもね。 >>817
微妙に言い回しに違和感あれどそのとおり。このわずかのメモリしかないコントローラに定番のあれや定番のこれを設けたら、どんなこともできる自由度が失われちゃうからね。
ルータはルータしかやらないからその固定的インターフェースが意味があって過剰じゃないんですね。 VCPも含めてシリアル通信でマイコンと端末を接続して、ユーザーサイドで設定ができるようにするとしたら、
皆さんは端末側のプログラムをなにで組んでるでしょ。
俺はパソコン前提でいいことがほとんどなので、C#で作ってるけど。
調べてみたらProcessingは面白そうですね。 音声認識w
一般人の例えとしてルータは、問題ないと思うけど?
CISCO や YAMAHA のインターフェースを見たらびっくりするだろうな。
ルータ設定に資格があるとか業界の人しか知らない。 すみません。教えてください。
コンパイルエラーで困っています。
ソースはこれ↓です。
https://www.lions-wing.net/maker/temperature/weather-code.html
Arduino IDEは1.8.12を使用しています。
ちなみに、「#include <Time.h>」は「#include <TimeLib.h>」に変えています。
あと、センサー類のライブラリの名称は必要に応じて変えています。
(テンポラリのフルパス) In function `setup':
(スケッチファイルのフルパスと行番号) undefined reference to `setSyncProvider(unsigned long (*)())'
(テンポラリのフルパス) In function `loop':
(スケッチファイルのフルパスと行番号) undefined reference to `now()'
collect2.exe: error: ld returned 1 exit status
いろいろ調べてみたら「未定義への参照」とのことらしいのですが、皆目見当がつきません。
(ソースを書かれた方はこれできちんと動いているはずなので、間違っているとは思えないのですが…。) TimeLib.hにはsetsyncproviderが定義されてないからTime.hが必要とか >>832
Time.hのままだと、もっとたくさんエラーが出たので… >>831-832
>「#include <Time.h>」は「#include <TimeLib.h>」に変えています。
#include <TimeLib.h>で動かすことに超こだわっているんだよ
それを#include <Time.h>したら大敗北で絶対にしたくないんだよ >>833
そもそも必要なライブラリは入ってるのか >>834
あと
>あと、センサー類のライブラリの名称は必要に応じて変えています。
ここも気になる
ヘッダの名前変えただけじゃ動かないのもあるし >>833
setSyncProvider(unsigned long (*)())とnow()
を自分で作れば良いんじゃないか?
できないなら、ここの人たちに頼めば作ってくれるだろ Timeライブラリってデフォルトでは入ってない気がする ライブラリマネージャでTimeを探してインストールしろ
多分入ってない Time.hはWindows環境だとバッティングするから
TimeLib.hに替えたんだろ 皆様ありがとうございます。
Time.h、TimeLib.hどちらも入っております。
ちなみに、Time.hの中身を見たら
#include "TimeLib.h"
の1行しかありませんでした。
あとこのスケッチは、sparkfunのサンプルスケッチを基に書かれた様です。
https://learn.sparkfun.com/tutorials/weather-shield-hookup-guide
おおもとは↑これの「Example Firmware - Weather Station」なのですが、
シールドのセンサーがHTU21DからSi7021に変更になったため、
ライブラリもsparkfunの新しいサンプルスケッチに合わせて変えています。
nowとsetSyncProviderはTimeLib.hの中に書かれていたので、定義されていると思ったのですが… >>841
ライブラリのインクルードのメニューにTimeって入ってる? >>842
メニューに「Time」はありました。
いま、「#include <TimeLib.>」をコメントアウトして「#include <Time.h」のコメントアウトを外してみたところ、エラーは変わりませんでした。
「Time.hでエラーがたくさん」というのは、どうやらTimeLib.hを拾ってくる前の状態でのエラーだった様です。 ということはライブラリは入ってるのにライブラリの関数実態が見つからずにリンクに失敗してるな
ライブラリマネージャでTimeを最新バージョンにしてみるとか ぼく最近Timeライブラリ入れたけど<Time.h>のみで使えてるなあ…
ネット繋いでNTPタイムサーバーから時刻拾ってきてTimeライブラリに
設定して管理できるサンプル… Timeライブラリをリンクできるかの確認のため、ファイル→スケッチ例→Time→TimeNTPを検証ボタンでコンパイル
このスケッチ例はsetSyncProviderを呼ぶ
これで失敗するならライブラリがきちんとインストールされてない >>846
ありがとうございます。
スケッチ例にある「TimeNTP」のコンパイルを試してみたところ、同様のエラーが出ました。
ご指摘の通り、ライブラリのインストールがきちんとされていない様です。 それならライブラリマネージャでインストール
インストール済み扱いなら一旦違うバージョン入れて最新を上書き >>848
試してみましたが、TimeNTPでの状態は変わりませんでした。
ライブラリマネージャーで一度1.4.0に落とし、さいど1.6.0にしてみました。 まぁ、ボード設定が間違っているんだろう。
それかMSストアからIDEインストールしたんじゃね? ボードをArduino unoにしてTimeNTPの検証でエラーが出るなら変開発環境がおかしくなってると思うからIDEとか含めて再インストールかね >>851
アドバイスありがとうございます。
IDEはインストーラー版を使用していましたので、Windows10のアプリと機能よりアンインストールし、改めてダウンロードしたインストーラーでインストールしましたが、結局TimeNTPサンプルスケッチのコンパイルはエラーが出てできませんでした。
そこでダメ元でIDE1.8.12のZip版で試してみたところ、TimeNTPのサンプルスケッチも、私が質問として投げさせてもらったスケッチどちらもエラーなくコンパイルを行うことができました。
ゴールデンウィークから行き詰まって悶々としていたことがあっさりと解消でき、皆様に感謝する次第です。
とりあえずひと山超えました。 >>852
思わずイイネボタンを探してしまったw
解決おめでと。 解決してよかった
ダメもとでzip版ってよく気付いたね インストーラーが実行権限の問題で必要なライブラリを展開できてなかったとか? >>855
インストーラ版のIDEが悪いのいうことまでは判ったのですが、結局どこが悪いのかがは判らず、
zip版のIDEを使って回避したというのが現状です。
https://www.lions-wing.net/maker/temperature/temp.html
↑これを参考にしながら、
Arduinoで収集した気象データを、netcatを使ってWeewxが動いているRaspberry piに引っ張ってくるということが達成できそうです。 >>857
Win10のアプリ機能からインストールしてないか?あれはMSの欠陥品だぞ
公式からダウンロードしたインストーラーなら問題ない
もちろん公式からダウンロードしたzip版も体験してるように問題ない
Win7の人はアプリ機能がないからこの問題には自動的に直面しない >>858
いえ、Arduinoの公式サイトからダウンロードしてきたインストーラーを使ってインストールしました。
Microsoft Storeは使ったことないですね。 皆様のおかげで、Arduinoで収集した気象データをTCPで送り出し、
WeewxがインストールされたラズパイにそのTCPパケットをNetcatを使って約10 秒間隔で取り込んで、テキストファイルとして書き出すところまでできました。
Weewxがそのテキストファイルを読み込んでくれないという問題が発生していますが、このスレの趣旨から大きく外れるので質問はここまでとさせていただきます。
皆様ありがとうございました。 ESP32って性能、機能、価格の全てにおいてarduinoに優っていると思うんですけど、arduinoの存在意義と優位性って何ですかね >>863
まったくもって「全てにおいて」勝ってないので・・・
タイマの機能も違うしACもないしADCの直線性もかなり悪いしEEPROMもないし(Flashエミュレーションは嫌)GPIO少ないし ボタン押すとピピッと鳴ってMOSFETのスイッチが入り30秒後に切れるスイッチや
音声をHi,Mid,Lowの3バンドフィルタ掛けてADC変換してRGBのLED光らせるサウンドイルミなんかを
30円のTiny13Aで作ってるけど、そんな用途にもESP32使えって事? >>868
日本では100キロ以上だせないけどGTRとか乗ってるでしょ >>868
本家Arduinoと比べてんじゃないの?
本家が出してるボードでATtiny13Aが乗ってるのってあったっけ? ESP32で開発してESP8266に押し込んでコスト下げるのはよくやる ESP32はまずPCのUSBポートに直接さすのも憚れるようなアンペアオーダーの突入電流が気に入らない
PCぶっ壊したくないし、バスパワーのUSBハブを別に用意しないといけないとか…
まぁ本家のボードが部品代に対してちと高くねえ?って気持ちはわかるが 優位性はともかく存在意義はこの環境を作ったという事実で十分だし、互換機にそれ以上の貢献は絶対できない Arduinoなどのボードには、リード線や、ブレッドボード用のピンをはんだづけするピン穴がたくさん(DIP?)ついていますよね。
一回ブレッドボード用のピンを半田付けしてしまうと、そのあとユニバーサル基板に取りつけなおそうとすると、ハンダを溶かすピン取り外しがすごく難しいです。。特にピン穴がいっぱいあるタイプは。
そこで質問なんですが、ひとまずブレッドボードで試すときに、ピンすら使わずにarduinoとブレッドボードを接続するオススメの方法などありますか?
今のところ、「導線をピン穴にくくりつけて絶縁テープで留め、導線とジャンパワイヤも同様にくっつける」という案は浮かんでいるんですが。 >>874
Unoならハンダづけ不要。
NanoとかPro microの話ならそう書いた方がいい。
後者ならテストクリップを使う方法がいいんじゃね? 再利用する→ユニバーサル基板にメスピンヘッダを付け、NANO,Prominiを挿す
再利用しない→ユニバーサル基板にNANO,Prominiを直接半田付け >>875
どうもありがとうございます!
すみません、UNOではなくmicroです。
マイコンボード上のピン穴のところに、テストクリップを引っ掛けたり噛んだりすることで、接触させる感じですかね!
たしかに、ワイヤー同士の接続はワニ口のテストクリップが一番楽そうです。 >>876
ありがとうございます!ユニバーサル基板側にメスピンヘッダという発想はなかったです!
そうすれば、arduinoにオスピンヘッダをつけたまま、ブレッドボードもユニバーサル基板もいけますねたしかに。 >>877
一応、スルホール用のテストワイヤーってのが有る
あと、arduinoは中華互換機を買えば安いのでケチらずに使い捨てられるよ >>879
調べましたがこれはありがたすぎますね笑 (スルーホールと呼ぶんですねそもそも)
これ早速ポチろうと思います!
たしかに・・・安物中華ボードも持っておいた方が、工作は大胆にスピーディになるかもしれません。
安物互換ボードも購入を検討します。ありがとうございます。 >>880
あ、そうでした!ご指摘ありがとうございます。
用語身につけます。 色々レスしてもらい参考になりました。 でも質問しておいてなんですが、いまだに ESP32 の arduino に対する立ち位置みたいなのが良くわかってないんですよね。
arduino というカテゴリーの中の1ブランドなのか、arduinoの亜流なのか 共通部分もあるけど一応別物なのか IDEはarduino使えるしよくわからんです
ググると解説は色々でるんですけどね。
レスしている人もいるようにarduinoもどきの中華製互換機が安く使い捨て出来るあたりはいい情報でした そもそもArduinoとはどういう構想のプロジェクトかもっと理解すべし
すればESP32を使ったArduino互換機の立ち位置も分かってくる ArduinoとESP32は関係ないよ
普及してるArduino IDE環境に対応してるだけ >>885
ArduinoとAVRは関係ないよ
普及してるArduino IDE環境に対応してるだけ
とでも言うのだろうか? >>886
アホか
AVRはArduino Foundationが公式で出しているボードに載っているので関係あるだろう
https://www.arduino.cc/
ほかにcortex-M0や同M3なども公式からリリースされたボードがある
まずArduino FoundationがライセンスしてArduino Holdingが販売してるボードと
オープンソースに乗っかって他が認定なしで自由に出しているものを分けて考えれ
とくに後者は「Arduino」という名前を一字一句そのまま使うことを禁じられている
STM32duinoとかね なにか根本的にまちがってるかもだけど
シリアルモニターの情報をソフトウェアシリアルに割り当ててTXで送信ってできるの?
それともソフトウェアシリアルで
SoftwareSerial mySerial(8, 7);
で割り当てた8がシリアルモニターの情報って事でいいの? 質問の意味がわかりにくいけど、ソフトウェアシリアルを使ってシリアルモニターに情報を送れるかってこと?
既定のシリアルポート以外はPC側USBに接続してないから、usb変換チップをつけると可能になる
そのままでは無理
シリアルモニターに送ってる情報をソフトウェアシリアルに送りたいなら、両方にwriteするプログラムにすれば良い >890
なんか解決しそうです。UNO使っているので複数のソフトウェアシリアルは
listenして切り替えればいいようですね。
ヒントを下さりありがとうございます。 シリアルモニタをArduinoと接続する特別な何かだと思っているのでは?
TeraTermに代表されるただのターミナルソフトの超シンプルな奴ってだけだぞ
IDEで選んだ「PCの」シリアルポート(COM1とか付いてる)で送受信するだけのソフトだ
ArduinoにはUSBシリアル(もしくは順ずる仕組み)が搭載されていてそれがシリアルポートとして見えているだけ
なのでArduinoIDEのシリアルモニタじゃなくて、その辺のターミナルソフトで同じことが出来る
標準で載ってるUSBシリアルはSerialに紐付けられている事が多いからCOMポートが同じでIDEからシリアルモニタ開けば自動的に通信できてるだけ
なのでソフトウェアシリアルを使って別のポートで通信したいならそこをPCとつなげないといけない(USBシリアル変換の何かが必要) ArduinoIDEのシリアルモニタと、TeraTermに代表されるターミナルソフトの違いは
スケッチのアップロードがだだ漏れになるかそうでないか Arduino microで初製作しているUSBキーボード的デバイスがそろそろ完成しそうです。
これって、2-3個量産しようと思ってmicro互換ボード使用するのって難しい事ですか? 難しいとは何が?
2〜3個は2〜3百個の間違い?
本当に2〜3個なら殆どの人は量産とは言わないのでは? 2-3個です。
純正品使うよりも何か難しいですか。 互換品を使ったことでもしトラブルが発生したときに自分で原因究明や対策がとれるかどうか
またそういうことが起きうることに対して発生するコストと価格差で自分で決めるしかない >>894
「難しい事」の意味が分からんけど
最初から互換機を必要数分買ってから始めりゃ余計な心配しなくて済んだね
ちなみに俺は互換機しか持ってない Pro MicroはクローンていうかArduino.ccには元々Pro Microと呼ばれるものは無い
Sparkfunのオリジナルだ そう、だからSparkfunのリンク張ってあるでしょ
そのクローンがAliあたりでいっぱい売ってるって話 https://www.尼.co.jp/dp/B07F2Z7T8W/
ココのレビューの人とかLeonardoだと思っているし
勘違いしている人たくさん居そう わー、ありがと。あとで見ます。
まぁ、千円二千円が惜しい訳じゃないんだけど、多分気持ちは分かるはず。
>>900
全てが未知な事だったもんで。
確かに私もルーターの設定が"難しい"と老人に言われても理解出来ないけど。 >>906
micro と Leonardo 何が違うんだよ? 違うと言えば違うし同じと言えば同じ
単なる視点の違いなのにわざわざ食ってかかる馬鹿w >>909
ググッてもロクな情報がないな。
「Leonardo は UNO の廉価版」ってのが多数派のようだが。
https://spiceman.jp/arduino-edition/
Leonardo と micro の違いは大きさか!
大きさなのか! じゃあ何なんだよ?
引用したサイトが間違ってんの? 俺的にはUNOよりLeonardoの方がオススメだなぁ
そのままでUSBデバイスになれるメリットは大きい nanoやmicroはマルツで専用ケースが売ってないのでオススメ度で一段劣る感じ >>912
結局、Leonardo と micro の違いは何なんだよ? コロナのおかげで覚えるきっかけが出来たが
VBAしかやった事ないが、arduinoのスケッチは思いのほか理解しやすいなCだから敬遠してたんだが BASICみたいな書き方でも動くし、趣味ならOKOK Seeduino XIAO 使ってみた
これいいわ
とにかく安い、小さい、互換性OK
もう、Universalnoはいらんかもw
ただし、スケッチを書き込むときの儀式がめんどう >>920
凄いなpwm使い放題か
プラモ電飾親父にはいいかもしれぬ 8ビット4つを統合して32ビットにしたいです。
下の式だと出ません。式を教えてください。
number_66 = 255;
number_67 = 255;
number_68 = 255;
number_69 = 1;
number_70 = number_66 + (number_67 << 8) + (number_68 << 16) + (number_69 << 24); ・int32_t number_70; or uint32_t number_70;
・long number_70; or unsigned log number_70;
で宣言してる? あとprintf絡みだと%d,%uあたりを間違いてる >>924,>>925をまとめるとこんな感じ
uint32_t number_70;
uint8_t number_66, number_67, number_68, number_69;
number_66 = 255;
number_67 = 255;
number_68 = 255;
number_69 = 1;
number_70 = (uint32_t)number_66 + ((uint32_t)number_67 << 8) + ((uint32_t)number_68 << 16) + ((uint32_t)number_69 << 24);
printf("number_70 = %ld\n", number_70); プルアップ抵抗って、現実的に、どんなときに必要なんですか?
ボタン入力とかで、
ピンモードINPUT_PULLUP をよく忘れてても
あまり問題ないですし >>929
ピンモードで設定するプルアップはR2。R1もなくて問題がなくて済むかな?
R1、R2もないときにちゃんとボタン入力ができているとしたら、保証外動作だと思う。
>>929
プルアップもプルダウンもしていないとピンの電圧は不定になる。
たまたま自然に0Vに近いとピンをグラウンドに落としたとき状態変化しない。 >>929
内部も外部も全くプルアップ抵抗が無いと入力端子が高インピーダンスになりノイズを拾い易くなる
例えば入力がハイの時はP1に繋がったLEDを点灯、ローの時はP2を点灯させるプログラムを作って、プルアップ抵抗が無くボタンにだけ配線されてる入力端子を指で触ってみるといいよ
きっと両方とも半分点灯してるように見えるから
でもプルアップしてると、指で触ってもボタンを押すまでP2は点灯(P1は消灯)し無いはず 内部回路とその動作内容を理解していないと分らないかもね。 >>932
問題になったことが無いんですよ
電圧が不定、といっても動作が不定になったこともない
だから「現実的な」必要性について疑問なんです >>936
とりあえずプルアップ(ダウン)が何故、必要かぐらい検索すれば?
Arduinoに関係ないと言えばそうだし、問題ないならそれで良いのでは?
いずれ何処かで引っかかって馬鹿にされるのがオチだろう。
マルチメータを持ってないと思われるが、>>933 が無茶苦茶、丁寧な
分かりやすい回答を出してくれてる。それ試してないだろ?
LED、タクトスイッチ、指一本で試せる。
>>933 の頭上にブルーインパレスを飛ばすように依頼しといたよ。 >>936
「現実的な」必要性は確実に動作すると言える状態にすることです。
実験で動作した回路が動作すると言える回路ではないし。
デバイスの内外にプルアップがない状態であなたが100個作って100個とも動いたとしても、
現実的な必要性を満たした回路じゃないんです。
現実的な必要性といえば、あなたの回路が開示されていません。
あながた気が付かないうちにプルアップと等価な回路が入ってる可能性もあります。 >>936
だったら「あまり問題ない」って書くなよ。 >>934
テレインテレイン
>>929
それって正負論理入れ代わらないんすか?
プルアップめんどくさいよね。
でも、一応LEDチカチカの次はプルダウン入れたスイッチ接続試して、そのあと内部プルアップ機能試す順番で私はやりました。
たくさん作る時に誤作動を防ぐ用心みたいな趣旨の説明をどこかで読んだ記憶はあります。 >>941
ひょっとして、プルアップ抵抗(同図だと33KΩ)を自体をショートさせると勘違いして無い?
そうじゃ無くて、この抵抗を外した場合の話ね
そうすると、もしスイッチを押してなければ、GNDから浮いて高インピーダンス状態になってる入力端子の電圧は定まらない
だから、端子を指で触ったり、或いはスイッチの上に指を置いたくらいでも、人体からのノイズを拾うので、スイッチの捺下が正確に検出でき無い 実験唯一至上主義に陥ると、その基礎知識、常識が自分の体験と合致しないときに、
その基礎知識、常識を疑うようになるんだよな。
マイコンの未使用ポートを放っておいても壊れたことないよ、おおげさに言ってるだけじゃん。みたいな。 まぁArduinoのほぼ全てのスケッチが(公式のサンプル含め)未使用ポートはハイインピーダンスで放置されてるけどな
BlinkだってLED_BUILTIN以外のpinModeをINPUT_PULLUPて書いた方が好ましいわけでしょ
ATmega328Pはリセット後のポートは入力なわけだし >>946
知識至上主義に陥ると実験結果を疑うようになる
他のスレでも誰か書いてたが、アンタのレスは主観に過ぎてつまらんのよ。
客観性が微塵も無いから全く逆の主張がすぐに出来てしまう。
たくさん書く暇があったら内容の稚拙さに気づいた方がいい。 プルアップの話題が出てるので質問します。
全てI2Cで、LCDモジュール、温湿度センサー、照度センサーなどを
利用しています。全てのI2Cモジュールはプルアップを内蔵してるようです。
この場合にさらにプルアップ抵抗をつけたらノイズに強くなったりするのでしょうか? >>948
はは、すげえなこりゃ。
内容が希薄なのも分かる気がするわ、猿のオナニー並み。 >>950
多けりゃいいってもんじゃない。
適正な値がある。 >>949
一度だけあなたに書くよ「おまえにいう資格があるんか?」
一応書くけど、資格がなくても書いてもいいよ。5chだし。 >>948
側から見ておめーの粘着のがよほど気持ち悪い >>948
初心者スレにもやべえのいるし今日はひどいなと思ったら同一人物で笑う >>948
5分の1にして内容をせめて倍の質にするべきだな、猿には無理だろうけど
オナニー覚えたら死ぬまで続けるらしいからさw >>950
マジレスするとノイズには強くなる。プルアップ抵抗を何本もつけるってのは要はそのピンに対するプルアップを並列に増やす、つまり抵抗値を下げるわけだから、傾向としてはノイズに強くなる。その分常時消費電力増える。 >>959
もといGに落としたときの消費電力だね増えるのは。High時はピンのインピーダンスが普通は高いから変わんないね。 横からですいません
http://cammy.co.jp/technical/2016/01/23/arduino_006/
内部のプルアップからGNDに直接つなぐと壊れるというのはどういうことなのでしょう?
スイッチがあれば壊れないのですか? へー、2chってどこに何書いたか総合的に見る方法もあるんだね。
学術的な物事について、正しい知識を持ってる人間と知らない人間で、前者が偉いとは特に言わないけどさ。
普通、後者は引け目を少しは感じたり謙虚だったりしないもんかね。
家庭教師みたいな事してた時の経験からすると、問題の解き方が分からない人の考えてる事って言うのは分かるようになった後には霧散してしまって失われる貴重なものであり、
教師側が生徒に"分からないと言う事を教えて頂く"くらいの気持ちでないと上手く教えられないってのが持論だけどね。
同時に、ネットで言い争いをして相手の考えを変えさせる事が出来ると言うのも奇跡的に難しい事だ。 >>961
壊れないよ、誤植じゃないの?
壊れるのは
・出力ポートをHにしてGNDに抵抗なしで直接接続したとき
・出力ポートをLにしてVcc(5Vや3.3V)に抵抗なしで直接接続したとき
・入力ポートをプルアップもプルダウンもせずオープンしたとき >>953
>>960
アドバイスありがとうございます。
I2Cは長い伝送に向かないそうですが、少し離れたところにセンサーを設置してみたいので、
転がっていた10mのシールド付きLANケーブルを利用してダメ元でセンサーを接続試験しています。
値は問題なく取れているのですが、一晩置いておくとlcdにカーソルが出現する不具合が出るので
プルアップを増やして様子を見てみようと考えました。
電源は別系統なんですが、そのセンサーの近くにパワーリレーもあるので動作時に悪影響があるのかも...
知識が無いので理屈がよくわかってないのですが、LANケーブルのシールドの片端をUNOの
GNDに落としたら今の所安定しているように見えます。。 >>965
LCDにカーソルが出現するのだってスケッチでそうなってるからそうなるわけで、
再現可能なら一晩と言わず目の前でやってみればいいと思う。
もっとも、シールドを生かせば安定してるならもうそれでいいような気もする。 >>965
オシロを持っているなら波形観測を奨めるところだが・・・。 >>965
距離が伸びた場合、通信速度を下げる(下げても問題ない場合)で対応出来る可能性が高い
カーソルの件は違う理由だと思うが >>965
2mまでの話のようだけどこんなの参考に
https://www.google.com/search?q=I2Cをケーブルで伸ばす場合の注意点
シールドは効果的と書いてある
よそから拾ってきたリンクだけどこんなの買っとけば十分信号チェックが可能
http://s.click.aliexpress.com/e/_dU6Kp7G >>966-968
すみません エスパー質問みたいになってしまいます。。
2時間経過で結局シールドの効果はありませんでした。。
UNOが置いてある机をガンッて振動を与えてしまうと
恐らくブレッドボード他の接点がアレで非表示にしてるはずのカーソル
が出てくることがあるんですが、今回は接触じゃない気がします。。
次はプルアップの追加を試してみます。
こういう時にオシロ欲しいですね。。使ったこと無いですけど。。 ノイズ対策のための回路とかって
デジタル屋には結構難しいんだよなァ
料理で言う砂糖少々、みたいなもんで
アナログ回路だとこんなのばっかりですげぇ >>970
>恐らくブレッドボード他の接点がアレで
まずそれを直そうかw >>969
ああ。。親切にありがとうございます。
参考にさせて頂きます。 >>972
はいw 面倒くさいけど切り分けにならないですもんね。
端材のユニバ基盤にハンダしてみよう。。 >>970
LANケーブルの様なケーブルは中の線がもの凄く細いので、ノイズに弱いのよ
距離、太さ、プルアップ抵抗の値がわかればもう少し対策のアドバイス出来ると思う
LANやらは差動信号を使う事でノイズ対策してる(詳しくは割愛) >>974
話変わっちゃうけど、うちではセンサー毎にESP8266ボードをつけたものを数セット稼働中で、
ESP8266とセンサーの間のI2Cは基板上だからトラブルは全く無い。
ESP8266のWi-Wiは一番遠いとこで10mは十分クリアしてる。
アナログの有線がらみで苦労するよりよっぽど楽な気がする。 >>975
>>976
みなさんありがとう!色々参考になります。。 >>977
https://i.imgur.com/7u6yMMX.jpg
ちょと適当だけと、RCローパスフィルターでノイズ対策したらどうかな?
抵抗やコンデンサや通信速度の調整あると思うけど >>978だけど
さすがに100pFは少なすぎるはずなので
220pF〜1000pF位で100kbps以下あたりかな?
(俺も適正な数字計算してない) >>978
恥ずかしながら勉強不足で計算ができないので
その図のまま一度試してみます!
通信速度が変更できることすら知りませんでした。。 >>980
速度についだけど
ノイズに強くする為にローパスフィルタを入れる
抵抗値やコンデンサ容量でローパスフィルタの強さが変わる
ローパスフィルタを入れると(伝送距離に関係なく)高速通信出来なくなる
高速通信出来ないので、通信速度を遅くする
i2cの場合、マスター側の出すクロックにスレーブも依存するので、マスターからのクロックを低くすれば速度は遅く出来る
極端に遅くても問題ないケースだと、1kbpsとかそれ以下にも出来る >>980
>値は問題なく取れているのですが、一晩置いておくとlcdにカーソルが出現する
>ブレッドボード他の接点がアレで非表示にしてるはずのカーソルが出てくることがある
>通信速度が変更できることすら知りませんでした
このあたりのレスから考えると、何をもって不具合としているのかから明確にする必要がある
ホントにI2Cの問題なのかすら怪しい感じがする
フィルターなんて信号の状態の現状を確認しないで闇雲にやっても意味無い >>980
今あなたが問題だと思っている不具合は結局のところ何?
10mを2mにしたらそのトラブルは一晩経っても出なくなるの?
基板にハンダ付けしてみてどういう状況になった?
フィルタがどうとか言ってるのはどう見ても先走りすぎだと思う。 >>965
安定化させるならCANトランシーバーかな >>983
>>984
やはり振動による接点不良が濃厚っぽい感じです。。
まず基板にハンダしようと思ったんですが、
4連のピンヘッダ×2に芯線をハンダしてコネクタのようにして
ブレッドボードに挿して3時間寝てみたら今の所安定しています。。。 わざわざ寝てみなくてもいい訳だがw
まあ、順番としては配線の不確実な部分から先に潰してかないとね :100000000C945C000C946E000C946E000C946E00CA こわいこわいこわいこわいこわいこわいこわいこわいこわいこわい このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 74日 1時間 50分 54秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。