GithubHelp home page GithubHelp logo

arduinodeasobu's People

Contributors

nobutarou avatar

Watchers

 avatar

arduinodeasobu's Issues

SPI = ISCP だった

名称一つにしてくれよ。ISCP ヘッダは秋月のマイコンボードから出てるので、プログラミングが必要なときは、FT232RL 外してこっちを使う。ISCP ヘッダだけで電源供給もできる。

ただのシリアル送受信の時はボードに付ければ OK だ。

まあとりあえず、目途はついた。シリアル通信プログラミングも何とかしたいとは思うが。

でもデータシート 27.8 節読んでも SPI の仕組みしか書いてないんだが、、、

ASOBoard 反省点

H=3.5mm ソケットは足が短かすぎて、はんだがのりにくい。

arduino as ISP 専用装置ほしい

Arduino UNO R3 の ICSP ヘッダからコネクタ伸ばして、ブレッドボード上にATmega328P に刺せば良い感じのものを

毎回 ICSP 形式(ブートローダー書き込みやうまくいかないときに avrdude 直接叩くため)とシリアル形式(Arduino IDE からスケッチのアップロード)を切り替えるのが面倒くさいので

ATMega328P と秋月FTR232RL のピンソケットとの結合が緩い

ATMega328P と秋月FTR232RL のピンソケットとの結合が緩い

0.65mm 角足のヘッダとなら合うが、これはこんどはきつすぎて、取り付け取り外しが面倒。基本的に、基板結合用だしね。
Φ0.6mm スズメッキ線がちょうどよい感じ。
すこし曲がってる足は導通できてるので、全部の足をくねくね曲げてもよさそう

FT232RL は 0.65mm のものに、ATmega328P は直接はんだとなった

PIC で静電容量計作れても通信手段が Arduino なんだよなあ

知識が無さすぎて、シリアル通信で結果送るなら Arduino 経由の方法しかわからない。
そうなると Arduino で作るのと大差ない。

ソフトウェア的には
https://qiita.com/yuiseki/items/bfa9ad984f7333377870
ここにあるように stty の後に cat するだけで良いんだろう

FT232RL との接続はここを参考にすれば良さそうだ。基本的に受信だけなら電源供給と PIC RX -> FT232RL TX だけで良さそう
http://zattouka.net/GarageHouse/micon/linkPC/FT232R.htm

ここも参考に
http://cat0048.my.coocan.jp/PIC16F1938/PIC16F1938_uart.html

とりあえず FT232RL 単体準備して、いろいろ試してみるしかないな。

10uF のセラコンなんてほぼ存在しない

適当に付けてるだけじゃないの? 同じような周波数で動くマイコン等には 0.1uF とか付けるし秋月の FT232RL 同じく 12MHz 駆動にも 0.1uF だか 0.01uF だか付いているし。1uF くらいならあるようなので 1uF 程度まで探してみよう。

コンパレータで静電容量測定できそう

// 基本デザイン
// D6: 正入力、AIN0、標準ピン配置のまま
// D7 負入力、AIN1、標準ピン配置のまま

void setup() {
  // |-|ACME -> 0|-|-|-|ADTS2|ADTS1|ADTS0|
  // ACME: PD6 の代わりに ADC を負入力に使う ->0
  // ADTS: は 22.3.1 に記載なく不明。どうやら割込み処理で ADC を動作させるもののようだ -> 0 
  ADCSRB = 0;

  // |ACD|ACBG|ACO|ACI|ACIE|ACIC|ACIS1|ACIS0|
  // ACD: コンパレータ無効 -> 0
  // ACBG: 正の入力に Vref を使う -> 0
  // ACO: AIN0>AIN1 のときに 1 が書き込まれるのではないか。読み込み専用
  // ACI: ACIS1, ACIS0 との組み合わせでの割込み用。とりあえず while で待ってみるので ->0
  // ACIC: TIMER1 をうんぬんかんぬんした割込み用。とりあえず理解できないので -> 0
  // A0IS: とりあえず割り込まないので -> 0
  ACSR = 0;

  // |-|-|-|-|-|-|AIN1D|AIN0D|
  // AINxD: デジタル入力無効 -> 1
  DIDR1= 0b00000011;
}

void loop() {
  // put your main code here, to run repeatedly:
  
  int acsr = ACSR;
  acsr = acsr & 0b00100000;
  if(acsr == 0b00100000 ) {
    digitalWrite(LED_BUILTIN,HIGH);
  } else {
    digitalWrite(LED_BUILTIN,LOW);
  }
}

image

データシートの 22.3.2 によると 1-2 clock cycle の遅延とあるから、analogRead() よりも相当速いかも

静電容量計 75Ωはだめだ

75Ωだと、ATmega328P IO ピンの定格 40mA を超えてしまう。保護用のダイオード (13.1節のデータシート) のおかげで 40mA 以上は流れないと思う(普段 IO ピンに 5V をいきなり挿しても壊れない理由はこれかと。)

ただ、計測は、おかしくなるから、最低でも 5V/40mA = 125Ω より大きい抵抗が必要だ。

手持ちなら 300Ωか 75x2=150Ωか、ま、300Ωだな

minicore 使ったらできた

これのブートローダーを Arduino as ISP で書き込んだ後、IDE のアップロードボタンで、書き込めた

https://github.com/MCUdude/MiniCore

avrdude のプログラマが Arduino から urclock に代わってた。ブートローダーも Arduino の omniboot だかのやり方に不満な方が書いたものらしい。

静電容量計 10MΩがおかしい

見た目 3.5MΩ位に見える。

で単純に digitalWrite(7,HIGH); で測ると 2.3V くらいしか出ていない

pinMode(7,OUTPUT); してからだと 5V 出る

ICB-062, Sunhayato

苦手な配線曲げ、突合せは、これで回避できるんじゃない?

静電容量測定、毎回計測は面倒くさい

100Ωだと、5v (3.2V 程度のはずだけど念のため) からの初期消費電力が0.25Wとなる。最低でも 220Ωが限界の 0.11W.

放電を 220Ω に固定するのがよさそう。1ピンに統一したけど、元に戻すのがよさそう。

2.2MΩ, 47pF-0.047uF, 時定数 1e-4 ~ 0.1sec
10kΩ, 0.1uF ~ 10uF, 時定数 1e-3 ~ 0.1sec
47Ω, 22uF ~ (2200uF), 時定数 1e-3 ~ 0.1 sec, 2200uF の放電は 3秒

まあここまででいいかな。

USB 充電は何かコントローラIC が必要なのでは

適当に 5V 与えたり D-, D+ を 300Ωとかで繋ぐだけだと充電できたりできなかったり。

LED Renser の ランタンはできない
Android スマホはできる
LED 簡易照明はできる。

たぶん、機器によって 5V 与えるだけで良いのと、最低限 USB としての振舞いが求められるもとといろいろありそう。

秋月に充電に関する良さそうなチップがないんだよね。

ADC 遅い

https://rtmrw.parallel.jp/laboratory6/lab-report-157/lab-157.html
によると 16MHz/128 のクロックで動作し、analogRead() に 13クロックかかるから、1回のサイクルが 1e-4 sec となる。

分周比を 2まで下げられるので 1.63e-6 sec までサイクルを下げられる。そうすると 時定数 0.01 ~ 0.001sec でも静電容量の測定精度がまずまずいなりそう。分周比 1まで下げれられないかと思って、データシートも確認したが 2 だった。

こちらの例だと、分周比設定の ADCSRA を設定したら、普通に analogRead() している。ということは、analogRead() 自身はこのレジスタの操作をしてないということになるので、ソースで確認する。

https://forums.ni.com/t5/%E5%8C%97%E6%9D%B1%E5%8C%97-LabVIEW%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E4%BC%9A/%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%A0%E3%81%91%E9%AB%98%E9%80%9F%E3%81%ABArduino%E3%81%AE%E3%82%A2%E3%83%8A%E3%83%AD%E3%82%B0%E5%85%A5%E5%8A%9B%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF%E5%8F%8E%E9%8C%B2%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95-%E7%A5%9D-quot-LabVIEW-Community/td-p/3980985

hardware/arduino/avr/cores/arduino/wiring_analog.c で ADCSRA が使われてるのはここだけで、これはレジスタの有無を調べてるだけで、内容の設定はしていない。なので、どっかで分周比を設定すれば、それが書き換えられることはないということになる。

#if defined(ADCSRA) && defined(ADCL)
	// start the conversion
	sbi(ADCSRA, ADSC);

	// ADSC is cleared when the conversion finishes
	while (bit_is_set(ADCSRA, ADSC));

	// we have to read ADCL first; doing so locks both ADCL
	// and ADCH until ADCH is read.  reading ADCL second would
	// cause the results of each conversion to be discarded,
	// as ADCL and ADCH would be locked when it completed.
	low  = ADCL;
	high = ADCH;
#else
	// we dont have an ADC, return 0
	low  = 0;
	high = 0;
#endif

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.