Posts

How to use RP2040_Pi_Pico ? 6

Image
久々ですが、ピッカリクン組立図です。計数率、積算値切り替えスイッチと、スタートスイッチは省略しています。

STM8L automatic sprinkler 2

Image
以前書き込んだ散水装置を改良(?改悪)し、蓄電しない方式に変えました。回路図を示します。 モーター駆動のみ、AC電源を使います。プログラム等他の仕組みは、同じです。 バッテリーが急に劣化したのが変更の理由です。

How to use RP2040_Pi_Pico ? 5

Image
FusionPCBで回路基板を発注する方法は多くの情報があります。中国への発注から到着まで5日という噂、まさかと思っていましたが、本当でした。 この会社、日本にあるのではないかと疑ってしまいます。 届いた回路基板10枚の写真です。  次は、回路部品の調達です。全て秋月電子から通販で買います。到着を待ちます。

How to use RP2040_Pi_Pico ? 4

Image
回路を基板化するため回路図を入力し直しました。Designsparkの回路エディタ使用。一部の素子は編集して登録しています。 Designsparkのプリント基板エディタで、プリント基板作成用データgerver dataを作ります。 結果の確認は、KiCadでやりました。 つぎは、基板のネット注文です。

How to use RP2040_Pi_Pico ? 3

計数率のリアルタイム表示は、 過去にさかのぼった1分間の計数値を順次表示していく方法が基礎 となります。そのままだと、 1分毎に表示が更新されることになりますが、 過去の時系列を記憶できれば、リアルタイム表示が可能です。 過去の時系列を記憶する処理を更に簡略化する方法が、 過去の平均値を保持しながら一定の割合を最新の値で補正していく ものです。 ここではパルスの時間間隔の実測値の平均を更新していく次の式を 使いました。 平均値 : ave 、時間間隔 new: diff として、 ave=ave*0.95+diff*0.05 式中の係数のバランスを変えれば、 いわゆる時定数を変えることになります。 プログラム中では、 ON スイッチが入っていないときは、 平均値が変化しないような式を使っています。時間間隔が msec ですので、計数率 (cpm) は、 cpm=60000/ave となります。

How to use RP2040_Pi_Pico ? 2

<制御プログラム> 表示として、I2C接続小型LCDモジュールピッチ変換キット(秋月)を繋げました。 表示プログラムは、公開されているものを使わせていただきました。 JH7UBCブログ Rasberry Pi Pico MicroPython I2C LCD AQM0802A表示テスト 線量率計算の説明は、次回?書きます。 from machine import Pin,I2C import utime import time led=Pin(25,Pin.OUT) #led.toggle() i2c=I2C(0,freq=100000,scl=Pin( 17),sda=Pin(16)) addr=0x3e buf=bytearray(2) def write_cmd(cmd): buf[0]=0x00 buf[1]=cmd i2c.writeto(addr,buf) #led.toggle() def write_char(char): buf[0]=0x40 buf[1]=char i2c.writeto(addr,buf) #led.toggle() def print(str): for c in str: write_char(ord(c)) #led.toggle() def LCD_cursor(x,y): if y==0: write_cmd(0x80+x) if y==1: write_cmd(0xc0+x) #led.toggle() def LCD_clear(): buf[0]=0x00 buf[1]=0x01 i2c.writeto(addr,buf) utime.sleep(0.001) #led.toggle() def LCD_home(): buf[0]=0x00 buf[1]=0x02 i2c.writeto(addr,buf) utime.sleep(0.001) #led.toggle() def LCD_init(): or...