メーターランプ交換32020/01/25 17:22:52

使ったLEDはこちら。
T10で長さ29mm。T5で長さ17.8mm。
ちょっとサイズの表示がかけてるけど画像を追加。

メーターランプ交換22020/01/25 17:15:51

加工したLED。
電極部のワイヤーを伸ばして、白色プラスチック部のカバーから一度抜いてからカットして戻した。
ワイヤーは折り返すと若干上側にはみ出すのでカットしてもいいかも。

マザーボードのコンデンサ交換2019/02/16 21:51:24

16年ほど前に買ったP4のPCが起動しなくなった。
確認したところマザーボードのコンデンサが液漏れしていた。
液漏れのひどいコンデンサと同じ規格のものが手元に3個だけあったので、ひどいほうから順番に交換した。
運良く?3個目で起動するようになったので一安心。
あと9個ほどコンデンサが膨らんでいるので、コンデンサを購入しておこうと考えている。

ロジックアナライザー2018/05/05 16:03:45

EFIコンピュータの動きを把握するためLAP-C16064を購入した。
http://www.zeroplus.com.tw/logic-analyzer_en/products.php?product_id=252&pdn=3&pdnex=61
付属品のプローブが使いにくかったので、別のプローブを探したい。

手作りEFIコンピュータ ―2016/09/10 18:24:35

ROMチップはついていないが表面も。

手作りEFIコンピュータ ―2016/09/10 18:21:21

途中経過を記録。
とりあえずメモリと外付けROM回路追加完了。
これから認識できるか確認となるが、どうなることやら。

手作りEFIコンピュータ ―2016/09/09 16:05:49

途中経過を記録。

手作りEFIコンピュータ ―2016/09/08 15:46:45

途中経過を記録。

Raspberry Pi3でAQM0802Aを動かす2016/07/18 13:20:22

Raspberry Pi3B(2Bも)ではpull up抵抗の関係でLCDのAQM0802Aがうまく動作しないらしい。
参考:http://raspibb2.blogspot.jp/2015/12/blog-post_31.html
実際接続してもうまく動作しなかった。
せっかく買ったのに残念だったので、ソフトウェア(Python)でI2Cの実装をしてI2C専用GPIO(pin3,pin5)を使わないで動作を試みた。
結果としてとりあえず動作したので、そのソフトウェアを公開します。

写真の配線はすごく適当ですみません。
3.3V電源(pin1)とVDD,RESETを接続、GPIO27(pin13)とSDAを接続、GPIO22(pin15)とSCLを接続、GND(pin20)とGNDを接続しています。
AQM0802Aのpull up抵抗は有効にしています。

改版は自由に行っていただいて構いません。AQM0802Aを有効に使ってください。

LCD_test.py
--------------------
#!/usr/bin/env python
#
#http://firewall.asablo.jp/blog/
#
import RPi.GPIO as GPIO
import time

#GPIO27 = Pin13
#GPIO22 = Pin15
GPIO_SDA = 27
GPIO_SCL = 22
clock = 400000 #100000 or 400000
wait = float(1) / clock

GPIO.setmode(GPIO.BCM)
GPIO.setup(GPIO_SDA,GPIO.OUT, pull_up_down=GPIO.PUD_OFF, initial=True)
GPIO.setup(GPIO_SCL,GPIO.OUT, pull_up_down=GPIO.PUD_OFF, initial=True)

def I2C_Start():
time.sleep(0.5)
GPIO.output(GPIO_SDA, False)
time.sleep(wait)
GPIO.output(GPIO_SCL, False)
time.sleep(wait)
return

def I2C_Stop():
time.sleep(wait)
GPIO.output(GPIO_SCL, True)
time.sleep(wait)
GPIO.output(GPIO_SDA, True)
time.sleep(wait)
return

def I2C_WriteAddress(data):
data = data << 1
data = data & 0xFE
for i in range(8):
bit = data & 0x80
if(bit % 127 == 1):
GPIO.output(GPIO_SDA, True)
else:
GPIO.output(GPIO_SDA, False)
time.sleep(wait)
GPIO.output(GPIO_SCL, True)
time.sleep(wait)
GPIO.output(GPIO_SCL, False)
time.sleep(wait)
data = data << 1
GPIO.setup(GPIO_SDA,GPIO.IN,pull_up_down=GPIO.PUD_OFF)
GPIO.output(GPIO_SCL, True)
time.sleep(wait)
result = GPIO.input(GPIO_SDA)
time.sleep(wait)
GPIO.output(GPIO_SCL, False)
GPIO.setup(GPIO_SDA,GPIO.OUT, pull_up_down=GPIO.PUD_OFF)
GPIO.output(GPIO_SDA, False)
return result

#動作未確認
def I2C_ReadAddress(data):
data = data << 1
data = data | 0x01
for i in range(8):
bit = data & 0x80
if(bit % 127 == 1):
GPIO.output(GPIO_SDA, True)
else:
GPIO.output(GPIO_SDA, False)
time.sleep(wait)
GPIO.output(GPIO_SCL, True)
time.sleep(wait)
GPIO.output(GPIO_SCL, False)
time.sleep(wait)
data = data << 1
GPIO.setup(GPIO_SDA,GPIO.IN,pull_up_down=GPIO.PUD_OFF)
GPIO.output(GPIO_SCL, True)
time.sleep(wait)
result = GPIO.input(GPIO_SDA)
time.sleep(wait)
GPIO.output(GPIO_SCL, False)
GPIO.setup(GPIO_SDA,GPIO.OUT, pull_up_down=GPIO.PUD_OFF)
GPIO.output(GPIO_SDA, False)
return result


def I2C_Write(data):
for i in range(8):
bit = data & 0x80
if(bit % 127 == 1):
GPIO.output(GPIO_SDA, True)
else:
GPIO.output(GPIO_SDA, False)
time.sleep(wait)
GPIO.output(GPIO_SCL, True)
time.sleep(wait)
GPIO.output(GPIO_SCL, False)
time.sleep(wait)
data = data << 1
GPIO.setup(GPIO_SDA,GPIO.IN,pull_up_down=GPIO.PUD_OFF)
GPIO.output(GPIO_SCL, True)
time.sleep(wait)
result = GPIO.input(GPIO_SDA)
time.sleep(wait)
GPIO.output(GPIO_SCL, False)
GPIO.setup(GPIO_SDA,GPIO.OUT, pull_up_down=GPIO.PUD_OFF)
GPIO.output(GPIO_SDA, False)
return result

#動作未確認
def I2C_Read():
data = 0
GPIO.setup(GPIO_SDA,GPIO.IN,pull_up_down=GPIO.PUD_UP)
GPIO.output(GPIO_SDA, False)
time.sleep(wait)
GPIO.output(GPIO_SCL, False)
for i in range(8):
time.sleep(wait)
GPIO.output(GPIO_SCL, True)
time.sleep(wait)
bit = GPIO.input(GPIO_SDA)
GPIO.output(GPIO_SCL, False)
time.sleep(wait)
data = data << 1
data = data + (bit & 0x01)
GPIO.setup(GPIO_SDA,GPIO.OUT,pull_up=GPIO.PDU_UP)
GPIO.output(GPIO_SDA,False)
GPIO.output(GPIO_SCL, True)
time.sleep(wait)
GPIO.output(GPIO_SCL, False)
time.sleep(wait)
GPIO.output(GPIO_SCL, True)
return data

#main
#Initialize
I2C_Start()
I2C_WriteAddress(0x3e)
I2C_Write(0x38)
I2C_Write(0x39)
I2C_Write(0x14)
I2C_Write(0x70)
I2C_Write(0x56)
I2C_Write(0x6C)
time.sleep(0.2)
I2C_Write(0x38)
I2C_Write(0x0C)
I2C_Write(0x01)
I2C_Stop()


#1行目
I2C_Start()
I2C_WriteAddress(0x3e)
I2C_Write(0x00)
I2C_Write(0x80)
I2C_Stop()

#AQM0802A
I2C_Start()
I2C_WriteAddress(0x3e)
I2C_Write(0x40)
I2C_Write(0x41)
I2C_Write(0x51)
I2C_Write(0x4D)
I2C_Write(0x30)
I2C_Write(0x38)
I2C_Write(0x30)
I2C_Write(0x32)
I2C_Write(0x41)
I2C_Stop()

#2行目
I2C_Start()
I2C_WriteAddress(0x3e)
I2C_Write(0x00)
I2C_Write(0xC0)
I2C_Stop()

#firewall
I2C_Start()
I2C_WriteAddress(0x3e)
I2C_Write(0x40)
I2C_Write(0x66)
I2C_Write(0x69)
I2C_Write(0x72)
I2C_Write(0x65)
I2C_Write(0x77)
I2C_Write(0x61)
I2C_Write(0x6C)
I2C_Write(0x6C)
I2C_Stop()

time.sleep(1)

GPIO.cleanup()
--------------------

Raspberry Pi3 model B 電源回路 の熱対策2016/05/28 15:06:59

ヒートシンクが小さかったので容量アップしてみた。
通電時のヒートシンク温度が前よりも上がらないので、だいぶ放熱している感じ。