2017/01/19

外部 CSSファイルの強制読込み

 ブラウザで更新しても、外部CSSのように間接的に読み込まれるファイルは、キャッシュを読み込んでしまって反映されない。対策としては、CSS 読み込みのアドレスの指定に、適当なクエリを追加すればいいらしい、クエリが変化した時点で、新規に読み込まれる。へー、なるほど。

 このブログシステムでも、CSS を更新したときに、クエリを自動で書き換えるようにした。かなり前に、この問題に気づいたが、面倒くさいので、ブラウザのキャッシュ全削除で、ごまかしてた。それだと、閲覧者のほうは変化ないから、全く解決にはなっていなかった。

2017/01/16

ATX電源の再利用


 PC 自作とかやっていた人には、2個、3個ころがっていると思われる古いATX電源。わりと簡単に再利用できる。
 ① 緑+黒=電源単体で起動
 ② 灰+抵抗+LED+黒=電源ランプ
 ③ 黄 x 黒=12 V
 ④ 赤 x 黒=5 V
 ⑤ 橙 x 黒=3.3 V

 ※ 何のことか分らない人は、危ないだけなので手をだしてはいけません
 割と大きな電流が流せるので、電動ドリルとか、ACアダプタで動かせないようなものも利用できる。

2017/01/05

433Mhz 無線モジュール


 送信・受信それぞれ別の基板のモジュール。片方向のみのワイヤレス通信。試してみたけど電波弱くて話にならん。電圧上げるのは、実用度低いし、ちゃんとしたアンテナつければ、まともに使えるようになるのか?

 まぁ、電波が届いても、ガシガシ通信するような用途には使え無さそう。通信相手が、PCとかだったら、送信側だけ作ればいい ESP8266 でいいわけで、今となっては使いどころもないのかも。
参考リンク
 VirtualWire Library

2017/01/03

USBtinyISP + Da Vinci 32U + Pro Micro 治具


 Da Vinci 32U のブートローダを書き換えるのに必要なライタ用の治具を作った。表向きと、裏向き、両方で使える。ISP用6ピン端子付けていれば、こんなのは不要だけど、邪魔というか、出っ張っちゃうからね。

 一応、書き込めてるみたいだけど、ヒューズ・ビットの設定が良く分らない。DFU 版の初期値はいくつだったのか?しくじったなぁ。
Da Vinci 32U ブートローダ
 Arduino 版 da-vinci-32u.zip da-vinci-32u-master.hex
 DFU 版 megaUSB_DFU_Bootloaders.zip ATMega32U4-usbdevice_dfu-1_0_0.hex
 Pro Micro のクローンは、まんま Leonardo だな。

 USB HUB 経由だとベリファイ・エラー出まくりだったが、本体に直接繋いだら何の問題も無かった。上手く書き込めない場合は、USBポートや、ケーブルを疑う必要がある。
davinci_usbtiny_bootloader.bat

@echo off
echo Da Vinci 32U を初期化します
pause
avrdude -v -patmega32u4 -cusbtiny -e -Ulock:w:0x3F:m -Uefuse:w:0xcb:m -Uhfuse:w:0xd8:m -Ulfuse:w:0xff:m
timeout 3
avrdude -v -patmega32u4 -cusbtiny -Uflash:w:da-vinci-32u-master.hex:i -Ulock:w:0x2F:m
echo エラーがないか確認して下さい
pause
bat 実行結果


Da Vinci 32U を初期化します
Press any key to continue . . .

avrdude: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch

System wide configuration file is "D:\_program\avrdude\avrdude.conf"

Using Port : usb
Using Programmer : usbtiny
avrdude: usbdev_open(): Found USBtinyISP, bus:device: bus-0:\\.\libusb0-0001--0x1781-0x0c9f
AVR Part : ATmega32U4
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PA0
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 20 4 0 no 1024 4 0 9000 9000 0x00 0x00
flash 65 6 128 0 yes 32768 128 256 4500 4500 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

Programmer Type : USBtiny
Description : USBtiny simple USB programmer, http://www.ladyada.net/make/usbtinyisp/
avrdude: programmer operation not supported

avrdude: Using SCK period of 10 usec
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.04s

avrdude: Device signature = 0x1e9587
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as D9
avrdude: safemode: efuse reads as C3
avrdude: erasing chip
avrdude: Using SCK period of 10 usec
avrdude: reading input file "0x3F"
avrdude: writing lock (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x3F:
avrdude: load data lock data from input file 0x3F:
avrdude: input file 0x3F contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of lock verified
avrdude: reading input file "0xcb"
avrdude: writing efuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xcb:
avrdude: load data efuse data from input file 0xcb:
avrdude: input file 0xcb contains 1 bytes
avrdude: reading on-chip efuse data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of efuse verified
avrdude: reading input file "0xd8"
avrdude: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xd8:
avrdude: load data hfuse data from input file 0xd8:
avrdude: input file 0xd8 contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xff"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xff:
avrdude: load data lfuse data from input file 0xff:
avrdude: input file 0xff contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified

avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as D8
avrdude: safemode: efuse reads as CB
avrdude: safemode: Fuses OK (H:CB, E:D8, L:FF)

avrdude done. Thank you.


Waiting for 0 seconds, press a key to continue ...

avrdude: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch

System wide configuration file is "D:\_program\avrdude\avrdude.conf"

Using Port : usb
Using Programmer : usbtiny
avrdude: usbdev_open(): Found USBtinyISP, bus:device: bus-0:\\.\libusb0-0001--0x1781-0x0c9f
AVR Part : ATmega32U4
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PA0
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 20 4 0 no 1024 4 0 9000 9000 0x00 0x00
flash 65 6 128 0 yes 32768 128 256 4500 4500 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

Programmer Type : USBtiny
Description : USBtiny simple USB programmer, http://www.ladyada.net/make/usbtinyisp/
avrdude: programmer operation not supported

avrdude: Using SCK period of 10 usec
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude: Device signature = 0x1e9587
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as D8
avrdude: safemode: efuse reads as CB
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: Using SCK period of 10 usec
avrdude: reading input file "da-vinci-32u-master.hex"
avrdude: writing flash (32750 bytes):

Writing | ################################################## | 100% 62.61s

avrdude: 32750 bytes of flash written
avrdude: verifying flash memory against da-vinci-32u-master.hex:
avrdude: load data flash data from input file da-vinci-32u-master.hex:
avrdude: input file da-vinci-32u-master.hex contains 32750 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 40.41s

avrdude: verifying ...
avrdude: 32750 bytes of flash verified
avrdude: reading input file "0x2F"
avrdude: writing lock (1 bytes):

Writing | ################################################## | 100% 0.02s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x2F:
avrdude: load data lock data from input file 0x2F:
avrdude: input file 0x2F contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of lock verified

avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as D8
avrdude: safemode: efuse reads as CB
avrdude: safemode: Fuses OK (H:CB, E:D8, L:FF)

avrdude done. Thank you.

エラーがないか確認して下さい
Press any key to continue . . .
 正しく実行できていれば、Arduino は、初期化されて、BLINK のプログラムがピコピコ動いてるはず。

2017/01/01

PlayStation Controller 改




TP5ATT
TP33VCC
TP32GND
TP4CLOCK
TP3COMMAND
TP2ACK
TP1DATA
 
 HORI Fighting Stick PS / HPS-07 / 基板 0888-32

 ジャンクなプレステ用のコントローラーを、PC に接続するべく、Da Vinci 32U で工作。チャタリングなのか、入力が安定しない。デバウンス対策が必要か。信号変換よりも、直接ボタンに繋いだほうが、確実なんだろうけど。

 たまにしか使わないのに、Arduino を1個消費するのも、もったいないんで、ソケットを筐体の横に貼り付けた。
参考リンク
 PSX Library デジタル入力のコントローラ用
 Arduino Joystick Library Arduino IDE 1.6.6 以降