Arduino初心者熱烈大歓迎質問スレ part25
■ このスレッドは過去ログ倉庫に格納されています
VSCodeにPlatformIOを入れました Arduino IDEの様にボード事や追加したライブラリ毎のサンプルスケッチってどうやって開くんでしょうか? >>472 安ロジアナの定番、自分も半年くらい前に買った アプリはオープンソースのものとこのロジアナのパクリ元メーカからダウンロードできるやつの2種類使えるな >>468 >>450 の画像がまさにその手のロジアナ使って見た状態(24MHzサンプリング) 8chだと足りないし速度も余裕なさそうな感じだから少し上のスペックで安いのを物色してるところだけど ch数によって周波数が変わるのが多いようで、確実そうなスペックだと安物でもあまり安くはないなぁ もちろんちゃんとしたメーカーのだともっとずっと高いが、安物買いの銭失いとはよく言ったもので サンプルとかが入っていドキュメントの中のArduinoフォルダVSCodeで開ければ見れるはずだよ >>484 どうもありがとうございます Arduino IDEはインストールしないでPlatformIOだけでやりたくて… 安いロジアナ問題なく使えてるよ というかpulseviewが優秀 >>483 https://i.imgur.com/XHODaJy.png この辺かな 長め(少なくとも数min程度)に記録したいからストリームモード前提として Logic16/LA1010 16ch時16MHz、9ch時32MHz DSLogic 16ch時20MHz、12ch時25MHz 6022BL 16ch時20MHz? どれもCY7C68013Aなのかな(8chのやつも本家Saleaeも含めて ATTiny13Aで出力ピンが足りなくなったので、 3つの出力ピンで4つのLEDを順に点灯する回路を考えてみました。 https://i.imgur.com/DsDfCcS.png D0,D1,D2が出力ピンで、A-DがLEDです。 表にすると 012 ABCD 000 0000 001 0001 - Dのみ点灯 010 0100 - Bのみ点灯 011 0101 100 1010 101 1000 - Aのみ点灯 110 0010 - Cのみ点灯 111 0000 高速に切り替えればデューティー1/4で4つ同時に点灯しているようにも見えるはずです。 この回路は電気的に問題無いでしょうか? 電源は5V、LEDのVf=2.0V、R=470Ω、6.4mA流れるのを想定しています。 また、ハイインピーダンスを使用したアクロバティックな回路を見た記憶があるのですが、 検索しても見つける事ができませんでした。 もっとLED増やせるなどのご指摘がございましたらご教授下さい。 Arduinoではないけど、Microchip社のCompiled Tips `N Tricksってドキュメントに 6個駆動する例が紹介されてる Charlieplexing方式と言って1995年にMaximの社員が考案したといわれている方式 nピンの出力ポートでn(n-1)個のLEDを制御できる 3ピンの場合はこのように6個のLEDを制御できる https://en.wikipedia.org/wiki/File:3-pin_Charlieplexing_with_common_resistors.svg ピンが増えると制御できるLEDも飛躍的に増加するが同時点灯できるLEDは1個なのでデューティー比がかなり小さくなる 別途IC使用おkなら74HC138, 74HC4514とか こういうのは ICを追加せずに実現方法を考えるのが楽しいのよ 全く関係無いけど、DELLのCRT破壊したらコントロールパネルのボタンが分圧式?で驚いたわ よく耳にするけど実際にあんな製品で採用されてるとは思いもしなかった LEDのこんな制御も実際に採用されてたりするんだろか >>494 分圧式のスイッチはモニターだと見かける気がする だから接点が劣化して抵抗が増えると決定押しても別のボタンとして反応するとかの不具合が発生したりする >>491 正にこれです!ありがとうございました。 IC制御のタクトスイッチをArduinoでON-OFFの制御をしたいです IC INPUT_PULL___o ̄o____GND ICの制御 ------┤← +とGNDをICが切り替えている Arduino--------┘← はんだをして割り込ませる ICのプログラムは変えることができないので試行錯誤をした結果 ArduinoのポートをINPUT_PULLUPとdigitalWriteのLOWを切り替えて +とGNDを再現して思った動作はできました これって異端だったりしますか?何かスマートな方法あったりしますか? >>497 考え方は間違ってないけど以下の条件を満たしてる必要がある ・GNDの電位が同じ ・ケーブルが短い(内蔵プルアップのインピーダンスが高いため) ・IC側の入力インピーダンスが高い さらに arduinoとICの駆動電圧が違う場合 arduino5vでIC3.3vの場合は入力の耐電圧超える可能性がある(入力にクランプダイオード等が有れば問題無し) arduino3.3vでIC5vの場合は動作の確実性が弱い(誤作動の可能性有り) 一般的には駆動電圧一緒なら抵抗を挟んでdigital writeのhigh lowでやるんじ無いかな (抵抗はなくても動くが保護の意味も含めて念のため) >>491 折角なのでブレッドボードで配線してみました https://i.imgur.com/cfDQeNC.png 3OUT-6LEDでサウンドレベル表示してみましたが 2msx6=12ms,83fpsでチラつきも無く快調です 4OUT-12LEDも試してみたいと思います。 見づらい配線図より、実際に動いている写真のほうがいいな https://i.imgur.com/uBVQXsZ.mp4 こんな感じでどう?20LED by 5I/OPort 見かけ上の同時点灯数が5個なのでそこそこスムースに見える >>502 8PinのAVRとLi-Poかなんかで小さくまとめようと思ってたけど動くのが確認できた時点でもうやる気がなくなってしまったという… モデム付いたESP32ならあるね ただ2GのGSMだかで日本じゃ使えないとか? >>501 なめらかですね 時計とか同時点灯少ないものには有効そう >>507 固定パターンの繰り返ししかしていないからね、ほとんどがdelayでの待ち時間だと思う >>498 3つの条件をクリアしているのと駆動電圧も同じなので 抵抗を挟んで動かしてみます 想定される条件など詳しくありがとうございました! >>507 弾の縛りが無ければWS2812Bがコスパ良すぎて Nano 33 BLE買ってみたけどライブラリもサンプルも全く無くて泣きそう >>511 あなたがパイオニアなんだから頑張って! これからArduinoを始めたいんですが お勧めの本や㏋を教えて頂けますでしょうか。 やりたいことは鶏の孵化機で温度・湿度管理にそれに合わせた 加温や加湿、数時間ごとの卵の回転です。 温度などの計測は比較的簡単そうに見えるのですが モーターなどの動力に関しては色々難しそうなので そのあたりが詳しい本などを紹介していただけるとありがたいです。 又、お勧めのArduino本体とLCD(20*4)バックライト付き見やすいものも 教えて頂けないでしょうか? >>514 かなり前に温度と湿度だけはできました 加温+循環ファンに関してはSSRにドライヤーつなげでなんとかなりました ただ、タイマー+モーターによる卵の回転は最初は上手くいっていたんですが 2〜3日でシステムがフリーズしたりするので 動力電源の取り回しやモーターのノイズ拾っておかしくなったのかと? で、こんどはちゃんとしたものを作ろうと改めて勉強したいので 分かりやすい本など教えていただけるとありがたいです。 >>515 その最初は上手くいったってやつの情報を出した方がいいのでは? 「タイマー+モーターによる卵の回転」なんて本はない訳だから、 たたき台があった方がいいよ。 >>513 ELEGOOの三千円台のスターターキットにPDFのガイドブック付いてるよ。 >>515 タイマー+モーターだけで済むでしょ? Arduino介するからフリーズとかするんだよ 電子回路でなく電気回路で充分 Digispark で、キーボード上のScroll Lockの LEDと、ledPin1を同期させたくて 見つけてきたんだけど、点灯しっぱなしで上手くいかない、何が間違ってますか? #define LED_NUMLOCK (1 << 0) #define LED_CAPSLOCK (1 << 1) #define LED_SCROLLLOCK (1 << 2) const int ledPin = 1; uint8_t keyNone[8] = { 0, 0, 0, 0, 0, 0, 0 }; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { uint8_t ledStatus; delay(100); Serial.write(keyNone, 2); // Release key // keyboard firmware will send back 1 byte every time it receives a key // this byte represents the LED status for the keyboard: // Bit 0 - NUMLOCK, Bit 1 - CAPSLOCK, Bit 2 - SCROLLLOCK ledStatus = Serial.read(); if (ledStatus & LED_CAPSLOCK) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } } >>520 ホントだ、気づきませんでした、ありがとう御座います。 でも、動作しません。。。 そもそも"Serial"に2byte送るとキーボードのステータスが返ってくるの? >>522 ここのやつです。 http://coopermaa2nd.blogspot.com/2011/11/blog-post.html キーボードのランプは、PC側が光らせているので、複数あれば全て同期するようです Scroll LockのLEDを、HDDのアクセスランプにするツールを使って、派手なアクセスランプが作りたくて もう数年かけてます 数年もやってるの? すごいね!! オレなら一日で投げ出してる。 リンク先を読ませてもらいました。(ざっとだけど) ちなみに"atmega8u2"のファームは書き換え済みなんだよね? >>Uno IMEのON・OFFランプを作りたいんだけどなぁー。なんか無理っぽいね。 日本語入力になってると思って文字打ってたら、英語だったり またその逆だったり、よくあるんだよなー >>524 いえ、USBタイプのDigisparkで・・・ その数年というのは、 USB付きのpicから初めて、Arduinoを知って スマホ操作の自動化をやりながらなので せっかくクーポンゲットしたけど、とりあえず今は何も買う物がないっていう 何のクーポン?Arduinoのクーポンとかあるの? >>525 オレも欲しい でもIMEのON/OFFの状態ってPCの外部で判別できるのかな? >>529 出来ないと思う。PC側でソフトを常駐させて、IMEを監視してシリアルでマイコン側に送る方法になると思う ちと古いかもしれんが IME_GETOPEN ここらの情報読み出せばおk 下のコードの goto init; で for(;;){} に分岐した時は無限ループになるのでしょうか? void loop() { boolean flg1; boolean flg2; if (flg1 == true) { if (flg2 == true) goto init; <処理> } else { init:; for(;;) { } } } Arduinoの語られざる歴史 https://arduinohistory.github.io/ja.html Arduinoは今はSTM32でもESP32使えるけど当初はAVRありきだったのか、いつ頃どうやって他のプラットフォームでも使えるようになったのか、全く謎だったからググってたらこういうページが見つかった これってつまりどういう事ですか? つまり、君の疑問の答えはそこには書いてないという事だ。 >>538 はじめにavr以外を対象にwiringがあって それを利用してavrを使った別プロジェクトの成果としてArduinoができて その後Arduinoが流行って、Arduinoをスタートラインとして他のマイコンでもつかえるよう対応されていった どの段階でピンへだがクソ配置になったか分かるね。 今となっては経緯なんざくだらねえし、NanoかESPしか使わんからどうでもいいが。 そのクソ配置のArduinoが流行ってシールドがいっぱいでて Arduino のシールドが挿せるピン配置互換ボードが STM32などでも出てきたが、その頃はまだ Arduino IDE での開発は対応していなかった https://pc.watch.impress.co.jp/docs/news/635614.html その後 Arduino 1.6.2 のボードマネージャが実装され(2015年)、ボードマネージャで STM32 対応環境が落とせるようになって、かな? そのシールドというものは1枚も持ってないなあ 件のピン配置見たあと初ArduinoだったUNOはそっとしまい込んだから もっともそれも中華製クローンだったがw 最初のArduinoが最近買った「ATmega2560 (Mega 2560)」の新参者だけど 使用例としてコードを渡されて書込装置が「atmel STK500」なので比較的すぐ慣れた。 >>545 そうかな? 下で買ったから1枚千円で2枚買った。今見ると更に安くなってる。送料込で2600円だった。 https://www.banggood.com/RobotDyn-Mega-2560-PRO-Embed-CH340G-ATmega2560-16AU-Development-Module-Board-With-Pin-Headers-For-Arduino-p-1397734.html?cur_warehouse=CN OSCで頼んだので梱包用は紺のビーニールで、その中がビーニール袋(物は入っていたけど)1枚のみだったので電子部品なのに大丈夫かと驚いた。 黒い基板(2段目以降の写真)は少し前に半田付けしたけどarduinoは取り組み初めて5日目。 https://imgur.com/a/liYUqsn 昔の8ビットPCのあるビットをオンにするとLEDが点灯する。そのビットをオフにしてと「制御」が 戻ってくれば有り難いけど、結果はLEDが消灯するだけ。Lチカが目的ではないからORZ状態。 因みに黒い基板は自作ではなくて緑の基板と交換して貰った基板。写真では見えないけど黒の隣に緑がある。 つかその程度ならProminiで良かったんじゃないのか >>546 やっぱ富豪だよ ここの多くの住人は300〜400円(送料込)の中華unoとか200円前後(送料込)の中華nanoとか使ってる さらに80円(送料込)以下の使う人らも Pro miniは融通が効かなくて結局nanoに落ち着く >>546 全容が良く分からないけど、やってること比で大げさ感がだけが残る。 そんなわけ無いだろうけど、もしそれだけの処理ならATTiny13で出来そうw 昔の8ビットパソコンのCPU代わりに使うのでVCC、GND除いてI/Oピンが30本程必要。 それにしても Pro Mini でさえ某店舗では 1,266 円 とは高い。 https://www.switch-science.com/catalog/946/ どちらにしても今回の使い方では nano も使えないし ATmega2560でも速度が足りない感じで 期待した動きにならない。アセンブラで短いサイクル、一括でI/OピンがINPUTになる命令はないかなと。 >>552 自分のレスをよーく読んでみたらいい。 何やりたいか情報少なすぎて分からないから、はたからはただのひとりごとにしか見えない。 >>554 大筋でやりたいことは自分では判っている。 挨拶から始まり道草したけど質問としては下。 「ATmega2560のアセンブラで短いサイクル、一括でI/OピンがINPUTになる命令」があるか否か。 USBシリアル変換機を繋いでATTiny13とか85にブートローダーやスケッチを書き込むにはどんな配線にしたらいいんでしょうか? ググってもUNO経由のやり方しか見つけられないです 補足 ハード的にはバッファとして74LS244等を追加すれば機能は実現するも知れないけど 確証がないしハードを追加してまで確認する必要はないと現時点では考えてる。 >>555 DDRxポート(xはA〜D)に0書けば全部入力ポートになる というかリセット直後がこの状態だけど PORTxポート(xはA〜D)を読み出せば8bit分一括で読み出せる しかしなんで質問者がこんなに態度がでかいんだw 有能な人は自分の能力の程度を客観的に把握できており、 さらに上を目指す以上、自分が身を置いた場所に自分より上が必ず存在することを必須条件として生きている。 よって物腰はやわらかい。 >>558 レスありがとう。リセット直後に全部が入力ポートの状態になることは知ってる。 欲しい機能は「出力ポートの状態から一瞬で入力ポートの状態になる命令(機能)」。 >PORTxポート(xはA〜D)を読み出せば8bit分一括で読み出せる 多分PORTAと言う1本(1ビット)の入力ポートから一括で8bit分と言う意味じゃないのか? そうではなくて24本の出力(に設定状況)ポートが一瞬で入力ポートの状態になる命令が欲しい訳。 理由は、出力ポートが一瞬で入力ポートに変らないから不都合が生じると考えてる。 補足で書いたように、バッファとして74LS244等を入れれば一瞬で出力でも入力でもない ポートにはできるけど、究極的に自分が期待する状態になるかは判らない。 詳しく書いてくれたので自分の欲しい機能と君が提示してくれた機能とは違うことは判った。 図を書けば 74LS244 を挟むことによってファンアウト的な問題が無ければ数命令で済む。 「ATmega2560」←→ I/Oポート → 74LS244 → 8ビットパソコン 直前までの出力ポートを一瞬とまでは行かないけど出力でも入力でもないポートにできる。 Arduino 単独では 出力ポートの状態を変えるには入力ポートにするしかない訳でしょ。 >>562 なにも理解してなくて草 ゼロレジスタ用意しときゃ1命令でポート内の全ビット入力に出来るじゃん てか>>558 の書いたことなんも理解してないよね? 自分が解ってない側なのに間違った想像したうえなんでそんな偉そうに出来るのか甚だ疑問 もう二度とレスもらえないと思うよ >>564 申し訳ない、少し調べてみる。ありがとう。 >>552 ATmega328 nano で能力が足りない場合、mega2560買わないでESP32買う人が多い ESP32なら僅かな部品追加でVGA出力もできるしライブラリもある 昔の8ビットパソコンのエミュレータもあるよ http://www.fabglib.org/index.html Pro Microだとポートこんなにバラバラに割り当てられてるのね ┌ B5 B4 E6 D7 C6 D4 D0 D1 xx xx D2 D3 ┐ │ │ │ 32u4 USB │ │ └ B6 B2 B3 B1 F7 F6 F5 F4 xx xx xx xx ┘ ビットの取り出しや並べ替えをした上で複数のポートから一部分ずつ出力するにしても なるべく余計な計算が少なくなるように配線も含めて工夫する必要があるのか…面倒だ Arduinoでこういう変換アダプタを作ってるところです https://github.com/tmk/tmk_keyboard/tree/master/converter/adb_usb#wiring プルアップ抵抗としてDATAとPD0の間からVCCまで1KΩの抵抗を繋げるみたいなんですが、PSWをPD1に繋ぐ場合は同じようにVCCまで1KΩの抵抗を繋ぐ必要あるんでしょうか? >>568 抵抗が無い場合、PSWがOFFの時にPD1の信号レベルが不安定になる CMOSの入力はこういう状態は良くないのでプルアップ抵抗を入れる Arduinoの内蔵プルアップ抵抗を有効にした場合は 外付けの抵抗は不要になる P0では長いケーブルとかでAVR内部のプルアップだけだと弱いから、外部プルアップ抵抗入れろと書いてある PSWは調べてみるとStart upとかresetとかに使うようで、Dataピンよりシビアな要求はなさそうで、なくても行けると思うけど プルアップしておいたほうが無難かと思う >>566 案内どうもです。面白そうな内容なのでブックマークしました。 ただ今の所は千円程度ならアドレスピン等でも16本は欲しいと考えてます。 昨年までは下のスレにいまして322が自分です。自分も千円がはした金とは思いませんけど 千円程で基板設計やソフトで楽できるなら安いと考えてるから余裕があるのかも知れません。 因みにリンクで画像を貼った「緑色の基板」も実装して1300円で個人的には、お手頃感です。 ただし秋月のFT245RL(千円、しかも送料500円が痛い)は除きます 【懐古趣味】ワンボードマイコン総合スレ 第三章 ttps://matsuri.5ch.net/test/read.cgi/i4004/1504237364/ 322ナイコンさん2018/02/16(金) 21:44:28.65>>326 >>315 当時の技術書には拡張ハードの製作があって手を咥えて見てたけど、その手の拡張ハードの基板を 1000円〜2000円の安価で提供し技術書をCD(DVD)等で同梱したERISシリーズを2万円なら納得する。 ここまでするなら横流しと揶揄されない。ただ未だ形になってないので現時点では妄想レベル。 326ナイコンさん2018/02/17(土) 08:20:54.91>>330 >>322 数が出ないものをそんなはした金で提供しろと? そこまで言うなら自分で企画して開発委託でもしてみりゃいいんじゃないですかね いくらかかるか >>571 求めている物とちょっと離れるけど Z-80のPIOや周辺をATMEGA32Aに任せて SDカードやFLASHメモリなどの最近のデバイス使い放題にしてる Z80-MBCが参考になるんじゃないかな https://hackaday.io/project/159973-z80-mbc2-4ics-homemade-z80-computer ESP32にCPUエミュレーションさせて ATMEGA328あたりに周辺I/Oまかせて 8bit程度のパラレルバスで高速転送すれば VRAMのDMA転送までまかせられるかも知れないね >>562 俺も詳しくないけど AVRの場合、wレジスタIOレジスタの移動は1サイクルで実行できるので予めwレジスタにx00とxffを用意しておけば24本のIOを3サイクルでin/outの切り替え出来るって >>558 の人が書いてる >>569 >>570 どうもありがとうございます PD1はプルアップ無しで作ってみたんですがやり直します >>568 この続きです S端子ケーブルを切断してみたら4本の線の他に被覆無しの寄り線も入っていました コネクタ周りを分解してみると被覆無しの寄り線はコネクタの外側にはんだ付けされてました この被覆無しのより線はArduinoのどこに繋いだらいいんでしょうか? これもGNDですか? >>575 シールド線のことだね それはノイズから信号に影響を受けない様にする あるいは信号線からノイズを外に出さない様にする為だけど 非常に難しい問題が含まれているのでいるので説明しないけど 1. GNDに接続する 2.金属筐体に接続する 3.カットしてどこにも接続しない の内のどれかです ただ今回の場合はどれでもいい気がするけど >>576 どうもありがとうございます ケーブルの中には色付きの被覆あり単線が4本、被覆無しより線が1本で、そしてそれらの周りにはすぐに千切れる薄いアルミ箔みたいなので覆われていたんですが、このアルミ箔はどこにも繋がないで捨ててしまって大丈夫ですか? 分解してみたコネクタだとアルミ箔は外してあるみたいでした 繋げなくていいですよ、アルミ箔はまさしくノイズ対策 ノイズの影響を遮断するために、わざわざコードにアルミホイルを巻いたりするぐらい ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる