Arduino初心者熱烈大歓迎質問スレ part27
■ このスレッドは過去ログ倉庫に格納されています
それくらいはなんつーか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ってそういう層も間口広げて取り込んでいこうってスタンスだと思ってるけど… まぁその程度出来ない奴は続かないだろうっていう意見には賛成だけどもね ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる