~-~~--~-~~-----~-~-~--~-----~-~~~-~-~--~--~---~~~~--~~~-~-~-~-~--~~~~~-~-~~~
~--~--------~-~~~~~-~---~~--~--~---~~~~~-~-~~~--~--~---~~-~~-~-~~-~-~~-~~~-~
~-~~-~~~~~~~-~-~-~~---~-~--~-~~~-~---~-~~--~---~-~~~--~--~---~~~~-~~-~------
~~~~----~------~--~-~--~-~--~--~~~-~~~-~--~~~--~-~--~~~~~~---~~-~-~-~-~~~-~-
-~--~~-~-~-~-~-~~-~~~-~~--~~--~~--~-~~~--~--~~-~~~---~-~~----~~~~-~---~-~---
--~-~~-~--~--~~-~~-------~-~-~~~----~~--~~-~-~~-~~~~-~---~-~~~~~-~~~--~~-~--
~~---~~----~~-~-~~---~--~-~---~~~-~-~~~~~-----~-~~~~-~-~~-~-----~~~---~-~~~~
~--~---~~~-~---~~-~-~-~-~~~~-----~-~~--~-------~~-~-~~--~-~-~~-~--~~~~~-~~~~
-~~~~-----~~~~~-~-~--~--~~-~--~~-~~--~~-~~~~-~~~~~----~~-------~-~--~-~~--~-
---~~~--~---~-~----~-----~-~-~~~~~~--~~--~-~~-~~~--~~--~-~-~-~--~-~~-~~~-~~~
-~~--~~-~---~--~--~~~~~-~~~~~~-~~-~-~------~~~~~~~--~---~~-~--~-~~--~--~----
~---~--~---~~-~~----~~--~~---~---~~~~-~-~-~~~~--~~-~~~-~~--~~-~-~~~--~~~----
~--~-------~-~~~---~-~-~~~~~~---~~~-----~---~~~-~~~--~~----~--~-~~~~-~~~~~-~
---~~~~~-~~~--~--~~-~--~-~---~~---~~~~--~~~~--~--~-~~--~--~~--~~~~~--~---~--
-~--------~-~--~-~-~--~----~~~~~~~~~-~-~~-~~~~~~~---------~~-~~-~~-~~~~--~-~
------~-~~--~---~~-~~~~--~~~-----~~-~~-~~~--~~----~~~~-~~~~~-~-~~~--~--~---~
~~-~-~~-~~-~~-~~-~~~-~~~~~~-~---~---~~~~---~------~~~-----~~~-~~~--~------~-
~~-~~~-~-~---~~-~--~--~-~-----~-------~~~~--~-~~---~~-~~---~~~-~~~-~-~-~~~~~
-~~~---~--~-~--~~-~--~~~--~~-~~--~-~~--~-~--~~--~-~~--~--~~--~--~-~~-~-~-~~~
-~~-~--~-~--~-~~--~-~-~~-~--~~~--~-~~~-----~~~~~~~--~~~--~~~~~-~----~-----~-
--~-~---~~~~~--~---~--~~~~-~--~--~~~---~~~~~----~-~~----~-~--~~~-~~--~~-~-~~
---~~--~-~------~-~~~-~----~-~--~-~~~~~~~--~-~~--~--~~~~~---~-~~-~~~-~~-~--~
~---~~~----~-~~--~-~~~~~-~-----~-~-~-~~~~-~~-~~----~~---~~~-~--~-~--~~~~~---
~~-~-~~~~~--~-------~~-~~~---~----~~-~-~~---~-~~-~~-~-~~-~-~--~~~-~---~-~-~~
~-~~---~-~~~--~~~--~~~~-~~-~---~-~----~~--~~-~~-~-~~--~--~-~--~-~---~~~~--~-
-~~---~~-~-~~~-----~-~~~-~-----~-~~~~---~~-~-~--~--~--~-~~~~~~~~~~--~-~~----
-~--~--~--~~---~~~~-~~~--~--~~~-~~-~-~~--~-~-~~~-~---~~-~~~~--~-~-~-----~-~-
--~~~-~~~---~---~~~~~~~--~~----~-~~~~-~~-~-~~---~----~-------~~~~~-~-~-~--~~
~-~----~-~~~--~--~--~-~-~-~-~--~~~--~--~~~~~~~--~-~-~~~~----~~~--~~--~---~-~
~~~-~~---~-~~-~-~~-~-~-~-~-~----~~~--~-~~-~--~~~-~-~-~-~~--~~----~-~--~--~~-
---~~---~~~-~----~--~-~~~~~-~~~~--~~-----~~~-~-~~-~~-~~~~--~---~--~~-~~~----
--~-~---~----~~-~~-~~~-------~---~--~~~~-~~-~~~---~-~--~~~~~~~~-~~---~-~~-~~
~-~~~----~~~~~~~~~-~-~----~-~~~-~-~-----~-~~~~--~~~-~~--~~~-~~------~----~--
~-------~--~~-~~~~--~--~~-~~~~-~--~~~-----~~~~--~~~-~~--~-----~--~~~-~-~~~~-
-~~------~~~-~~-~-~-~~-~-~~--~-~---~~-~~-~-~~~--~-~~~--~--~-~---~--~~~--~~-~
~-~~--~~~-~-~----~---~~~--~~-~----~~-~-~--~-~-~--~----~~----~~~~~~--~~~-~~~~
~--~-~---------~~~~-~~~--~~~~~~~~--~-~-~~~~----~~--~~~~-~------~-~-~~--~--~~
~--~~-~-~~~-~---~-~~~~~----~~---~~~-~-----~~~-~---~~~--~-~~~~-----~--~~-~~-~
~---~~---~-~-~-~-------~-~-~-~~~~~-~~-~--~---~--~~--~--~~-~~-~~~~~~--~~-~-~~
-~-~~---~~--~-~-~~-~~~---~-~-~~-~~-~~-~~~~----~~-~--~-~--~~-~~~~-~-------~~-
~-~-~-~-~~~~-~~~-~-~~--~---~~~-~-~~~~~~~--~~---~~-~-~-~----~~--~-~----~-----
----~-~-~---~~~~--~~-~~~-~-~~~-~~~--~~-~-~---~~-~--~--~~~-~--~-~-----~-~-~~~
~-~-~~~---~-~-~-~--~-~~~-~----~-~~---~-~~----~-~~~-~~-~~-~--~~~~~-~~--~-~---
~~~~~~--~---~~~--~~-~~~~------~~--~-~~~-~~~---~-~--~---~~~-~~~----~-~---~-~-
~-~~---~--~-~--~--~~~-~~-~~~-~-~~-~~~-~--~~-~~-~-~-~~~---~-~----~--~~---~-~-
---~~-~~-~-~~~~~-~-~-~~~-~~~~~~~~~-~----~~~-------~--~-----~-~~---~-~-~~~---
~--~----~--~-~~-~~--~~----~-~--~~-~-~~~-~~~-~------~~~-~~~~-~-~-~--~---~~~~~
--~----~--~~~~-~--~-~----~-~~~-~~~~--~-~-----~---~~~~-~~~~-~-~--~--~-~~~~-~~
~~~~-~--~~~---~~~~---~-~--~~--~-~----~-~--~~~-~~~~-~~-~----~~~-~-~~--~-----~
~--~~---~-~---~~~~-~~~~~-----~~~-~~~~~~-~---~--~--~-~--~-~----~~---~~-~~~--~
Arduino 328の入力にスイッチを接続してるのですが、
LEDでその状態を視覚化しようと図のような回路を考えました。
平時はGreen、断線するとRedになります。
LED_Greenは3mA、LED_Redには4.8mA流れる設計です。
R150はArduinoがHi出力になった場合の保護用です。
平時13mAx3=40mAも消費してしまいますが、接続しても問題無いでしょうか? >>4
緑はつきっぱなしでいいの?
あとそれだとHiの電圧が低すぎて成り立たないんじゃない? 初心者で申し訳ないけど
おらもこの回路でいいのかなあと思ってた
あとでちゃんと計算してみようと思ったけど
シリアル通信ってPC側のプログラムをつくりたい場合どうやるの?
コンソールで手動でやるんじゃなくて
>>8
どうやるって、手持ちの開発環境で作る、としか 極端な話、最近はゲーム内にセンサーからのデータ取り込んだからUnityでやった。
>>10
違う、PC用のプログラムを書くの。
C#とか、Phytonとか、VBとかで。 USB接続でできるの?
USB接続したらarduinoと認識される気がするんだけど?
>>14
それはあなたがPCでArduino用の開発環境を立ち上げてるからでしょ
PCそのものはArduinoかどうかなんて認識してない
Arduino IDEがCOMポートを見ててArduinoがCOMに繋がったと認識してるだけのこと
たとえばUnityならUnityがCOMポートを見に行ってバッファのデータを拾ってくるの ArduinoIDEも作られているProcessingで作ったらどうだろう
>>17
回答者が質問者ですらない君の位置まで下りる義務は無い
分からないなら分からない君が質問すればいい >>20
ああ、何言ってるか分からないから偉そうに見えちゃったのな
それはお前、理解力の無い自分を恨めよ、馬鹿なのか? こんなのが難しいとかいう発想しちゃう自惚れ度ヤバすぎ。
パソコンとマイコンの違いってなんですか?
パソコンは計算させるものでマイコンはコントロールするもの???
パソコンもマイコンも計算とコントールをしてる
処理能力の差の問題
>>22
じゃあ、お前がID:kCDGTsjtに回答してやれ、見ててやるから、ほれ 回答済みの質問に回答しろって?
真性のアホだったか。
>>26
おや、君独自の個性的な回答を繰り出すのかと思ったら、降参か。
そこまで無能だったとは呆れた。 >>14
もう済んだ話かもしれないですが。
UNOの場合だと、パソコンとUSBで接続すると絵の上のようになります。
「USBシリアル」と書いた部分は、USBとシリアル通信を変換するしくみです。
絵の上のようにつながった結果、アプリやメインのマイコンから見れば、
絵の下のように、お互いに直接シリアル通信をしているように見えます。
車の部品としてマイコンを使いたいのですが、常時通電させた場合、数年レベルで持つものでしょうか
>>30
コネクタやケーブルまで含めて、構成してるパーツの信頼性・特性、実装法や設置箇所の環境に依る
特に車の場合、振動、埃、湿度(水)、温度とその変化など環境要因も大きい(トヨタは自社製の半田を下請けに提供してるほど)
先ずは、>>1 のように状況を具体的に詳しく書きましょう >>30
常時通電そのものは十年でもいけるだろうが
まず車載ってのが問題で条件がめちゃ厳しい
電子部品はマイコンどころかコンデンサにも車載用グレードってのがあるくらい
熱や振動などが辛い >>29
プログラムをアップロードもUSBシリアルからしてるの?
間違えたらプログラム壊れれない? >>18
processingに似てると思ってたんだけどフォークだったのか
中の関数まで似てるから偶然ではないと思ってたが >>33
USBシリアルを通して転送している
そのスケッチをやり取りする部分はブートローダといってプログラム領域を間借りして存在している
そこは標準のスケッチ転送では書き変わらないようになっている(ブートローダは自分自身を書き換えない) ArduinoIDE用のボードデータがあって簡単に開発できる奴で最もCPUの演算性能良い奴ってやっぱESP32?
こんな単純な比較は許されんがUnoMegaNanoが8bitで16MHzのところアーキテクチャは違えど32bitで240MHzは圧倒的だよな
STM32duinoでも確か32bitの72MHzだよねARMだったか
>>42
吊るしの600MHzで無限ループでGPIOをHi/Lo切り替えるだけだと154MHzになるようだ
ヒートシンクつけて960MHz動作でやると250MHzくらいか?
1秒で2億回以上点滅できるLEDが必要だな!!! DFPlayer動かなくて1日はまった
もしやと思いライブラリのver2個下げたら動いたよ
DFPlayer のライブラリは、もう開発終了で現在は、
DFRobotDFPlayerMini に開発が移ってる
けど、中身にほぼ違いは無いよ
MaixduinoのCoreMarkは700くらいしかないですが
>ESPduino-32 (ESP-Wroom-32@80 MHz),
最大240MHzなのに何で
>>51
内蔵のSPI-Flashの動作周波数でしょ
この成績はコア240MHzじゃないと出ない Teensy4.0速いね
512KBの高速メモリが効いてるのかな?
「TCCR1」を「TCCR1A」にしたら通らない?
Tinyx4とx5ではレジスタ名が違うんで
データシートのタイマーの項を見比べて
39行目も変更かな OCR1A = divisor-1;
>>55
どうもありがとうございます
TCCR1AとOCR1Aに変更したらコンパイル出来ましたが、書き込んでもtiny84側から音が出ません
(I2Cスレーブとして音を鳴らすスケッチだそうです)
ボード定義はこれを使いました
tiny85だと鳴るんですが。。。
OCR1Aは16ビットタイマーか
こうかな
OCR0A = divisor-1;
tiny84からスピーカへは5番ピン
Arduino Pinで言えば8番ピン
>>59
話題変えてすまんけど、
このArduino Pinって面倒つーか、
わかりにくくてイヤだわ。
素直にCPUのピン番号とかの方がマシ
GPIO定義名は一部のCPUで使えるからまだいいけど たぶんUnoとか開発ボード用に初心者にもわかりやすく番号を振ったんだろね
負電圧(0~-10v)のパルス信号(バイクのエンジン回転数)をarduinoに読みとらせたいのですが、この場合は反転レギュレータを使えばいいのでしょうか?
>>64-66
中心電圧シフトって方法があるんですね
フォトカプラは思いつかなかったですが確かにこれが安全そうですね
ありがとうございます >>67
回路図ありがとうございます
色々方法があるんですね
勉強になります インプットがHIGHかLOWかを判断したいんですが入力のピンにはまだ何も繋いでいないのにHIGHになってしまいます
対象方法教えてほしいです
>>70
入力のピンに何も繋がないと非常に不安定な状態になる
チップ内部にプログラムで制御可能なプルアップ抵抗が用意されているのでこれを使う
pinMode(<inputpin>, INPUT_PULLUP);
プルアップ抵抗は50kΩ前後
ロジックテスターのようなものを作りたいなら
出力ピンと入力ピンを10kΩで接続し
1)出力ピンをLowにしてプルダウン状態を作り、入力がHi入力なら明確なHi
2) 〃 Hiにしてプルアップ状態を作り、入力がLo入力なら明確なLo
3)それ以外のケースは不定、又は不明
これでいいんじゃないかな
あと、アナログ入力で正確に電圧測る手もあるよ >>70
なんかつなげよ。つないでないときの入力は不定だよ。 >>70 ですけど、みなさんありがとうございます
ISPライターを繋ぐピンと入力のピンが同じなだけでした
ISPライター外したらちゃんと動いてくれました
プルアップについてもちゃんとやってみます スペック:電子工作初心者。Arduino買ったばっか。
自転車のペダルにつけるPASセンサーなる磁気センサーを使ってモーターを動かしたかったんだけど
シグナルが断続的でうまく行かない。
こんなやつ
単純にこのシグナルをArduinoに入力して、受信している間一定の電流を出力させるにはどうしたら良いですか?
スロットルならモーターを問題なく動かせるので、リレーとやらを使ってその電流で作動するようにしたい。
あと、シグナル2回受信で作動、2秒シグナルがなかったら停止の機能もつけたい。
ネットにconst unsigned long activityTimeoutMS=2000;
const int startPulses=2;
とか言うコードが落ちていたが、実際のvoid loop()の中でどういうコードを書いたら動作するのか
さっぱりわからない。。。 あ、「シグナル2回受信で作動、2秒シグナルがなかったら停止の機能」の部分はとりあえず
無視してもらって構わないです。実際に動かしたら何の条件もつけないでうまく動作する可能性も十分にあるので。。。
よろしくお願いしますm(_ _)m
何がうまくいってないのかがわからないけれど、シグナル1回目で反応していいなら
---
カウンタ変数をあらかじめ決めた最大値に初期化
ループはじまり
カウンタ変数があらかじめ決めた最大値に満たないときはインクリメント
センサーからシグナルが入ったらカウンタクリア
カウンタ値があらかじめ決めた閾値以下ならリレーON、さもなければOFF
(10m秒ぐらいの)時間待ち
ループ終わり
レスありがとうございます!
あ、うまく行かないのはシグナルが途切れるのでモーターが一瞬ガツンと動いて止まってしまうことです。
プログラムの知識も皆無なんで参っているんですが、そのコード再現できるよう
ちょっと頑張ってみます!
ありがとうございました!
ちょっと頑張ってみたのですが、エラーばかり(iとかxとかが宣言されてないetc)でとても書き込みまでたどり着けない。
何かおかしいですかね?(・・?
int PASPin=2;
int led=11;
void setup() {
// put your setup code here, to run once:
pinMode(PASPin, INPUT);
pinMode(led, OUTPUT);
}
void loop() {
for(i=0; i<4; ++i); //i=0からスタートしてカウントしろ iは4より小さい
if(PASPin, HIGH){(x=i-2)}else{(x=i+1);} //PASPinに電流が流れたらiから2引いてxとする。そうでないなら1足してxとする
while(x<0){digitalWrite(led, HIGH)}else{digitalWrite(led, LOW)}; //xが0より小さいうちはled点けろ。そうでないなら消せ
delay(1000);
}
Arduino 云々じゃないね。
まず何らかの言語の勉強本、1冊ぐらい買って読んだ方がええやろ?
int x = 0;
for(int i = 0; i < 4; i++)...
こんな感じかな。全角のスペース、コロンも入ってたよ
int PASPin = 2;
int led = 11;
void setup() {
// put your setup code here, to run once:
pinMode(PASPin, INPUT);
pinMode(led, OUTPUT);
}
void loop() {
int x = 0;
for (int i = 0; i < 4; ++i)//i=0からスタートしてカウントしろ iは4より小さい
{
if (PASPin, HIGH)
x = i - 2;
else
x = i + 1;
//PASPinに電流が流れたらiから2引いてxとする。そうでないなら1足してxとする
if (x < 0)
digitalWrite(led, HIGH);
else
digitalWrite(led, LOW);
//xが0より小さいうちはled点けろ。そうでないなら消せ
delay(1000);
}
}
どういう処理がしたいの分からないから
延々とiを0から3でループさせたけどw
何が目的の4回ループなのか読み解けない…
あと、このセンサーって、ある場所で止まっていたらHigh出力を維持するのかな?
だとしたら、「センサーのシグナル」はHighかLowかの判定じゃだめですね。
「前のセンサーの状態」変数をLowに初期化
ループはじまり
もし「前のセンサーの状態」変数がLow かつ 今のセンサーの状態がHigh ならセンサーのシグナル発生
「前のセンサーの状態」変数に今のセンサーの状態を代入
:
:
ほかの処理
:
:
ループ終わり
こうしておけば、センサーの状態がLowからHighに変化したときだけを検出できます。
あああーダメだ
>>84
×「前のセンサーの状態」変数をLowに初期化
〇「前のセンサーの状態」変数をHighに初期化
こうしておかないと、センサーがたまたまHighで止まっていたときに、
いきなり変化したとみなしてしまいます。 >>80 ごもっともですm(_ _)m。あ、intで宣言するんですね。
>>81 ありがとうございます。
>>82 うおお、すごい!見るからにちゃんとしたプログラムです!
これをベースに動かしてみて試行錯誤してみようと思います。
ありがとうございます! >>84 iが大きくなりすぎるとシグナルで1引いたとき作動するx<0にしにくいかなぁ
と思って適当に4より小さいにしてみました(笑)
この磁気センサ、磁石の上で止まってもシグナルはすぐ消えるんで多分大丈夫そうです
というかこれ以上複雑になると手に負えないので(←いやお前すでに負えてないだろ)
いったん実験してみます
ありがとうございました! >この磁気センサ、磁石の上で止まってもシグナルはすぐ消えるんで多分大丈夫そうです
なるほど、それなら心配いらないですね。
あまりに初歩的なところでつまずいて自分でもびっくりなんですが
上のプログラムを書き込んでもLEDがただ点滅するだけ(センサーなんてピンに刺さってようが抜けてようが無視)
自分のマイコンが故障してるんですかね?
ちなみにスターターキットの互換ボードです
初期プログラムが作動しているのかと思ったのですが、delay(3000)にかえると
律儀に3秒間隔で点滅してもはや何とも。。。
>>if (PASPin, HIGH)
これ条件式になってないよね?
if (PASPin==HIGH)
デバッグの方法を覚えた方がいいな。シリアルモニターに値を出力させて挙動を見る方法は知っているかな?
setup(){}の中にSerial.begin(9600);追加。
delay(1000);の前に以下追加
Serial.print("i="); Serial.print(i);
Serial.print(" x="); Serial.print(x);
Serial.print(" PASPin="); Serial.println(PASPin);
コンパイルしてアップロードする。
「ツール」→「シリアルモニタ」を開く(右下の通信速度に9600bpsを選択)。
これでarduinoの中がどういう動きをしているのか(考えた通りなのかどうか)見える。
いやまてまて、PASPinはピン番号だからピンの状態を示す変数じぁないじゃんかw
if( digtalRead(PASPin) == HIGH )
>>90、93 おお!ありがとうございます!プログラムが作動し始めました!
あやうくスタート地点に立つ前に退場かと思いました(笑)
結果。。。結構な頻度でシグナルを送ってるはずなのにたまにLEDが点滅しただけでした
(←シグナル送ってる間点灯しててほしかったんだが。。。(笑)
>>92 チャレンジしてみます! みんな優しいな。
スターターキットを購入したのなら、何故、各種センサーのチュートリアルを
地道にやらなかったのかな?サンプルプログラムを色々と変更したり、条件を
変えたりして、遊びながら学ぶものだと思われるが。。。
ここで正解を聞いて、プログラムを人に組んで貰っても本来の意味はないよね?
完成すれば良いなら、既成品を買えば良いのでは?
>>92
デバッグの前段階かと。。。セミコロンが全角だったり?
PCの日本語入力の使い方からだろ。
決してプログラム、特に Arduino なんて誰でも習得できるレベルのもの。
今からでも全然遅くないから、その折角の入門キットを活用されてみては? Uno WifiやNano Everyのような最近のAVRのためにPicKit4を買ったんですが、もしかしてArduino IDEじゃPicKit4経由でブートローダー書き込んだりスケッチ書き換えたりって事は出来ないんでしょうか?
>>97
新しいのは知らんが中華Nanoのブートローダを中華Nanoで書き込むなんてことは日常茶飯事。
もちろんArduino IDEで。 あ、当然、PICkitは使わずに、2台のNanoで互いに
>>98
UnoWifiやNanoEveryはmega4809だからAtmelで言うAVR8X規格(もともとmegaxに使われてた奴)でICSPに対応してないよ
UPDIで書き込むからまぁJTAG2UPDIとかを使えば良いっちゃ良いんだが
>>97
PICKIT4はArduinoIDEでは対応してないんじゃない? >>98
ISPじゃなくてUPDIの話
NanoをUPDIプログラマにする事も出来るけどその話じゃなくてPicKit4で書き込めるかって事です >>100
対応してないんですかね
ググってもjtag2updiやmicroUPDIは見つかるけどPicKit4の例は全く引っ掛からなくて >>102
別にIDEからGUIでやらんでもavrdudeでよくない?
IDEに入ってるし >>97
ArduinoIDEの書き込み装置一覧にPICKIT4無いやろが
あるかどうか見てから買えやw >>103
Arduino IDEだと、inoファイルダブルクリックしてコマンド+シフト+Uで書き込めるから手軽かな、と
>>104
そんな事言ったら標準の書き込み装置一覧にUSBaspもUSBtinyISPもjtag2updiもmicroUPDIありませんよね?
これらは有志の方が作られたものを任意で追加したものだから、UPDIのAVRに書き込むために必要な純正装置のPicKit4も使えるように出来るかと思ったんです シリアルモニタで検証できました!
問題点:シグナルが途切れたら止まるように自動カウントさせていましたが、予想以上に早くて
シグナルごとー2では追いついてませんでした
:そもそもセンサーにつないでるだけで0.6vくらいの電気が流れていて反応していました。
というかPinにコードを刺しているだけでたまに反応しているようでした
:気になって磁気センサーからシグナルが出ているはずのとき(センサー付属のLEDが光ってるとき)
の電圧を測ったら0.3〜1.5vのきったならしい不安定な電気が流れていました。
この不安定センサーだと仮に0.8v以下のシグナルは無視とかのプログラムを組めたとしても
うまく行かなそうなので、いったん頓挫です(笑)
>>96 これからスターターキットでちょっとずつ勉強しようと思います。ただ経験上、実際にプロジェクトをはじめたら
想定を超えた問題が多発すると思うのでまた質問させてくださいm(_ _)m 頓挫ついでというか、そもそも自分が思いついた解決策が間違っている可能性があるので
意見を聞かせてください
スロットルでモーターをコントロールできるようになった
↓
でもこのままだと電動アシストじゃなくて電動自転車なのでペダルにつける磁気センサーでコントロールしようとしたが
センサーからのシグナルがとぎれとぎれなので駄目だった
これ皆さんだったらどう解決します?
今回自分は磁気センサーが反応しているあいだArduinoから連続する電気が流れるようにして
その電気が流れているときだけスロットルが有効になるようにして
モーターはスロットルでコントロールしたかった
という経緯なんですが、もっと良い解決策ってあるものですかね?
それだとペダルの回転は検知できてもペダルからのパワーは検知できてないような気がする。
確かに回転センサーと別にトルクセンサーもあるんですが、海外のサイトで売ってるのみたら
単品で2万円近いうえに取り付けも大変そうだったので選択肢になかったです。
でも今ヤフオク調べたら日本のアシスト車から外した中古品が1000円で売られてますね(笑)
見るからに別の自転車につけてちゃんと作動させるのは苦労しそうですが
万一成功したらシグナルは圧倒的に安定してそうなので突破口になるかも
ありがとうございます!
合法なレベルの電動アシスト自転車が作りたいならかなりハードルは高い。
キモは人力が50%を下回るような馬力を出してはいけないという点だが、
市販品は人間のパワーを計るためにペダル軸のねじれ具合を検出するなんぞという大変高度なことをしている。
まったく無駄なことしやがってという感じだが、法改正の気配はないし技術的に簡便な方法も見つかっていないのだ。
別に、電動原付にすればいいのでは?
ただし原付免許を持っていないお前が悪い、と言える。
>>人力が50%を下回るような馬力を出してはいけない
( ゚д゚)ハッ!こんな決まりあるんですか?
別の意味で完全に頓挫ですね(笑)
>>電動原付にすればいいのでは?
アシスト自転車
→原付(モーターの出力上限規制で多分非力)
→250cc (なぜかとんでもない出力までこのカテゴリーに認められてるので本命!)
とステップアップして自作していけたらなぁ(・∀・)と思ってましたが
いきなりコケましたね(笑)
>>110
規制なんて下らないのだが、それによって時々とんでもない傑作が生まれる
軽自動車しかり、アシスト自転車もまた規制によって生まれた超傑作だ
踏まなくても電動でブーーーーンなんてバカでも出来るが、それじゃダメなんだよ
踏まなきゃ進まない、一件不合理な様だが、それこそ傑作だった 自分は自作してさっさと公道走ってる海外の人たちが
心底うらやましいです(笑)
日本ではイノベーションは大企業にのみ認められた特権だからなぁ
>>115
確かにローラースケートはいてブーンってやりたいかも Arduinoって今やAVR以外にもいろいろ対応してるけどPICも対応してたりする?
ググっても対立煽りのページばっか
もうPICとAVRは同じ会社なのにESPやARMより仲が悪いとはどう言うことだ
AtmelがMicrochipに買収されて同じ会社になった
AVR推しの皆さんは悔しくてしかたない
AVRスレでPIC厨が暴れるという現象が見られないのがその証拠
そんな対立初耳なんだが
PICとか過去の栄光と思ってた
ArduinoのおかげでAVRは市民権を得たもんな
>なんだただの情弱か
情弱にそのような認識を持たれてしまうPICさん…w
PICくんは情弱を相手にしてないんだな、Arduinoと違って
そのArduinoのパーツに成り下がったのがAVRくん
コンコンてノックすると返してくるいいセンサありますか?振動か音ですかね
>AtmelがMicrochipに買収されて同じ会社になった
は事実だけど
>AVR推しの皆さんは悔しくてしかたない
これはおかしいね。
求められたから同じ会社になって、今も新製品が出ているわけだし。
AtmelのARMが欲しかっただけ、なんていう人もいるけれど、それなら
AVRの新製品なんて出さないわけだし。
PICもAVRも住み分けができればいいことだし、ユーザーが煽りあっても
仕方がない。両方の(あるいはいろいろなマイコンの)ユーザーである方が
偏らなくていいよ。
>>129
以前に使ったことがあるのが圧電ブザー(発振回路非内蔵タイプ)。
オペアンプで増幅してコンパレータでH/Lを決めるとか。
裸の圧電素子でもたぶんOK。 スマホのコンコンロック解除アプリと同じように加速度センサーを使うとか
まぁ一つ言えることはマイコンの肝とも言えるアーキテクチャに関してはPICは完全にゴミってことだな
>>130
なぜここでAVR厨が暴れるかの理由を推論してるんだよ
買収されて悔しいからだろうと
君のは悔しくない理由の説明になってないし
ましてここでAVR厨が暴れることの正当性も説明できてない >>135
何かを主張したけりゃ論理的にその理由も説明しないとね
ただの馬鹿にしか見えないよ、あるいは犬の遠吠え >>132
> 韓国製の冷蔵庫みたいな機能
なにそれ? >>135
PIC24やdsPICはかなりよくなってるけどね >>139
サンクス
こんなのあるのか
話し声には反応しないでノックにだけ反応するの? >>118
Arduinoに対応するにはg++のツールチェインが必要だけど
PIC用にフリーのg++のツールチェインはないんじゃないの?
XC8、XC16はC++自体対応してないし
PIC24、dsPIC用には非公式のg++があるようだけど
PIC32ならMIPSだから可能だろうけど >>136
>君のは悔しくない理由の説明になってないし
そもそも悔しいとか悔しくないとかの話じゃないのでは?
>なぜここでAVR厨が暴れるかの理由を推論してるんだよ
暴れてるかな? いたとしてもごく少数でしょ?
どんなところにも端っこの変わり者はいるからそういう人を対象に議論しても仕方がない。 アドバイスをお願いします。
esp32でサーボを制御するため、esp32servo.hをインクルードしました。1度ずつ変化させ、180度になったら0度まで戻すコードです。
しかし、サーボが180度回転したところで停止するだけで、制御不能になります。
シリアルモニターでは、1度ずつ変化していることが、確認できています。
>>144
追記
>しかし、サーボが180度回転したところで…
電源を入れると一気に180度まで回って制御不能になります。 >>145
現物の確認はできないですが、周期やピンの初期化はできてます? 動作がおかしいのはプログラムがおかしいのです。よーく見直してみよう。なお、ライブラリにバグがある事は初心者レベルでは稀です。
#include <ESP32Servo.h>
Servo servo;
int servoPin = D0;
void setup(){
servo1.setPeriodHertz(50);
servo1.attach( servoPin, 500, 2400 );
}
void loop(){
for( int pos=0; pos<=180; pos++ ){
servo.write(pos);
delay(2);
}
}
>>146
アドバイスありがとうございます。
D4に接続して、setupに
servo1.setPeriodHertz(50);
servo1.attach(4, 500, 2500);
としています。 >>147
ありがとうございます。
試してみたら、「複数のライブラリが見つかりました」と書き込み出来ませんでした。 内蔵されてる avr関係 が最新になってるので、
User配下にある hardware/arduino が不要なので削除して OK です
落ち着け
回路図か接続図
arduino ideとライブラリーのバージョン
書いたソース全部
>>157
文字列ならI2Cじゃなくてシリアルでいいんでは?
BasicSerial3はすごいコンパクトだよ 質問じゃないけど スイッチ付きUSBハブ が 200円 だった
内蔵LED が直ぐ壊れるとか、何かと問題あるけど、USB抜き差しが
必要な DigiSpark で便利に使ってる
>>159
>>161
文字でもなんでもよかったんですけど、UNOからI2Cでどうやって信号送ったらいいのか分からなくて
マスター側のUNOにはI2C(Grove)で他にセンサ繋いでいるからATtinyもGroveで繋げれたら配線が楽だと思って https://pastebin.com/ys765XKR
LEDを指定回数点滅させるスケッチなんですが、1秒間の間にチカチカさせてその後1秒間は消灯を繰り返したいです。
点滅させる回数を増やすたびに関数を作って点滅間隔を自分なりに測ってってやるのは非効率だと思うんですが、もっと短く書くやり方教えて欲しいです。お願いします。 >>165
点滅回数(i)と待ち時間(100-400)を関数の引数で渡す。 訳あってProcessingを使うことになって、フラッシュメモリに書き込むことをやってます。
質問ですが、書き込み中に「R」の表記が出るんですが、この意味は何でしょうか?
成功なら「・」失敗なら「X」は分かるのですが、
書き込みに失敗してますので、「R」もエラーの一種だと思います。
最後にDone!と表示されますが、失敗しています。
メモリICが5個中で2個がこのエラーが出て失敗します。
よろしくお願いいたします。 > Processingを使うことになって、フラッシュメモリに書き込むことをやってます。
自分でProcessingのプログラムを書いているように書かれているが、
どこかで拾って、説明書も読まないで使っているということか
エラー表記など作者の意図でどうとでもなるからこんな所で聞いてもなー
普通に考えて、RetryかReaderrorじゃないの?
>>171
引数渡したりしないで
digitalWrite(LED_PIN, HIGH);
delay(100);
digitalWrite(LED_PIN, LOW);
delay(200);
だと光ってくれたので間違って無さそうです >>170
x highSec == 100
o highSec = 100 >>173
どうもありがとうございます
関数内のhighSecとlowSecの==を直してみましたがそれでも光ってくれないです
int highSec = 0;
int lowSec = 0;
とスケッチの上に書いてあります すみません、マイコンのグランドのピンが折れてました…涙
新しいので試してみます
>>176
今後のためにおすすめ
ArduinoIDE>環境設定>コンパイラの警告>より多く >>177
どうもありがとうございます
設定を変更してスケッチ内の=を
==に戻したらたしかに警告が出ました >>169
ヒントありがとうございます。解決いたしました。 arduinoの5v出力端子にDFplayerという音声再生部品と外部スイッチ?(プログラムタイマー)を接続して使ってるのですが、
外部スイッチをつないだ状態でDFplayer特定の高音が流れるとDFplayerが動作を停止してしまいます。
外部スイッチをつながないと正常に動作してます。
電圧不足で止まってるような気がするのですが対策としてはどういった事ができるでしょうか?
プログラムタイマーとは?
DFplayer特定の高音が流れるとは?
>>180
電源はArduinoから取らないほうが良いよ
DFPlayerの電源は5Vから直接とる
Arduinoからトランジスタ・Mosfetで駆動させるてもいい
>>181
DFPlayer使ったことある? >>182
Nanoの5Vにつないで毎日使ってる。
で、
プログラムタイマーとは?
DFplayer特定の高音が流れるとは?
何のことか知ってたら教えて。 ATtinyやATmegaにスケッチ書き込むためにシールド化してみたのですが
使えるには使えますが見た目がボッコボコでいまいち見栄えがよくありません
参考になりそうな既製品ってありますでしょうか?
>>186
そです
こんなスッキリいけるのですね
表面実装とかいうやつでしょうか
自分にはハードル高そうなのでボッコボコ実装をもっと小さくキレイにする感じでやろうかと思います >>181
すみません、書き方が分かりづらかったです。
プログラムタイマーは設定の時間になったらスイッチをオンにする機器です、リレーって言うのかも?
DFPlayerで曲を流してこの機器をつないでいると、
曲の高音の箇所になると勝手に止まってしまいます。 >>180
DFplayerにパスコンもりもりにするぐらいしか思いつかない。 >>188
DFPlayer以外何がつながってるか具体的に分からないと回答できない。
Arduinoの種類、配線方法、大元の電源、リレーとやらのつなぎ方等々
ノイズでリレーが瞬断するとかだとしてもつなぎ方が分からんとなんともです。 〜でなければ回答できないとか要らないなぁ
普通に聞けないのかな
全員じゃなけど電子工作みたいなニッチな趣味はそういう人が多い
上から目線だったり、回りくどくウダウダ書いたり、知識披露したり
ホントそれ
回答するつもり無いのにいちゃもんおじさん
いつの間にか外野増えたけど回答した人は無しかw
>>188
高音 > ノイズ > リレーが瞬断 とかですかね。
>>190の言う通り、その「機器」の正体がわからないと何とも言えませんね。
だってそれの有無で状況が変るわけでしょ? >>1に書いてある通り回答者に超能力はないだろうからさ 聞かれたことに答えない質問者
自分は何も回答しないくせに
必要だから詳細を聞き返している回答者にただ絡むだけの馬鹿
全部自演か?
そんなんじゃ何も解決しないだけだろうに
>>180>>182で解決してると思うが
うちのDFplayer-miniは電圧が足りないと動作を停止とかかわいもんじゃなく
暴走してピギャーとでっかい異常音出す。
プログラムタイマーの消費が不明だけど外部電源に繋いで原因究明したほうがすっきりするだろうな
DFplayer-mini、7セグ表示機、RTC、OLEDで音量上げると電流足りなくてよくピギャーなってたわ
5V1Aの200円の電源でも買ってくれば良いよ >>180
DFPlayer-miniに限らず
Arduinoから電源はとらない方がいい
レギュレーターなりスイッチング電源なり外部から取りんさい Arduinoの5V出力に色々ぶらさげるってのは入門書とかが悪いのか
うちには5Vと12Vの電源しか無くて
AMS1117-5は最大12Vなので12.35Vとか繋ぐのこわい
なのでそこらじゅうにある5VのACアダプタからArduinoの5Vに注入してる
よく考えるとRAWとかVINなんて1度も使った事無いわ
>>200
素直に指摘されたことを認めて次からは改善するなり形だけでも謝まってみたりすれば済む話だと思うの。 お客様じゃないんだからさ、
なぞなぞレベルの質問、聞き返しても答えない。
そりゃ口調もキツくなるわな、
にんげんだもの。
>>205
ほんそれ
そういうヤツに限って自分の視野でしか問題点を見てなくて
その延長線に詳細を聞かれても答えないという態度がある
そういうの続くとまともな回答者が去りまともな質問者にも迷惑
まあ、すでにその状態になってるけど 初心者だから何を書けば良いかわからんのだろ
その程度でイライラするのはどうかと
オタクなんて器の小さい奴しか居ねえもんw
そこを如何にコントロールして答えさせるかが腕の見せ所ってワケw
今質問者はお前らと違って忙しくてレスできないんじゃね?w
せめてそんなところでは焦んなってw
>>207
解決してたとしてもお前には関係ないんじゃね?
残念ながらお前のレスはスルーされてるからw >外部スイッチ?(プログラムタイマー)を接続
>外部スイッチをつながないと正常に動作
とのことだが「外部スイッチって何?」には無回答
>>210
お前が一つでもいいから質問者の言う他の対策を書いてやれやボケ >>212
質問の趣旨を理解してれば君のレスが無意味でスルーされた理由はわかるはず。 >>214
スルーしたかどうかはどうでもいい。別に礼を貰うつもりで書いたわけじゃない
回答者がいくつか提示して質問者がそれを選べばいい
今回自分が書いた回答が、後に誰かの役に立てばいいと思ってるよ >>216
数撃ちゃあ当たる方式ですか、原因も探らず?
言葉の下品さと問題解決の手法は無関係ではないのねw >>217
わざわざAliじゃなくても
千石で500円くらいで店頭でマルチメーター売ってたよ パルスの周波数とデューティ比を測れるテスターってある?
ぶっちゃけスターターキットに入ってるセンサー使わないつもりなんだけど本体だけ買うよりなぜか安いし
スターターキットを買えばいいんだね?
>>225
どう考えても本体だけのが安いだろ
”その店では”とかいうのが付くんじゃね >>227
相場が全然わからない・・
秋月 1台 ¥2,940
amazonタイムセール 本体+(ブレッドボードやセンサー電子部品などなど総勢数十個) 2,500円くらい
本体自体が別もんなのだろうか Amazonのは中華互換機だよ
ものは普通に使えるけど不良品の確率も高かったりするから
トラブったときの問題の切り分けが難しくなるってばっちゃが言ってた
UNO買ってもnanoやPro mini等の小型の互換機や単体のマイコンしか使わなくなるから
arduino学習用なら安い互換機でいいと思う
>>230
本体
どちらもUNO と書いてて正確にはamaの方はELEGOOとR3だから別物なのか?と思って
素人目に見て数百円も開いてその他付属品も付いてきてどっち買えばいいんだろうておもた
>>232-234
なるほど、そもそもクローン品とかいう概念がなかったわ
プレステのクローン版なんて普通は売ってないよなくらいの感覚でいた
全てすっきり謎が解けたわ
とりあえず初めてなので?クローンから試してみようかな aliexpressの方向性で考えようかなと思うけど
>>234,236
配送予定が一ヶ月先なんだけどその通り一ヶ月先なのかな? >>237
そうなの、早くても2〜3週間はかかる
唯一のネックだけど
その間にいろいろ勉強しとけば? >>238,239
d
とりあえずついでに工具とかも見ていろいろ買ってみる >>240
はいはい、数週間後のデビュー、首を長くしてお待ちしております。