Giter VIP home page Giter VIP logo

arduinodeasobu's Introduction

arduinodeasobu's People

Contributors

nobutarou avatar

Watchers

 avatar

arduinodeasobu's Issues

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

// 基本デザイン
// 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() よりも相当速いかも

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

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秒

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

ASOBoard 反省点

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

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

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

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

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

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

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

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

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

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

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 単体準備して、いろいろ試してみるしかないな。

arduino as ISP 専用装置ほしい

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

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

ICB-062, Sunhayato

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

SPI = ISCP だった

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

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

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

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

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

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

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

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

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

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

静電容量計 75Ωはだめだ

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

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

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

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

minicore 使ったらできた

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

https://github.com/MCUdude/MiniCore

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

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.