久々の更新 ― 2013/06/12 22:40
犬脱走検知ブザー、失敗しました。
圧電ブザー使ってたんだけど、やっぱ音が小さくて聞こえない・・・
検知もなんか不安定だし。
音が小さい問題は、アンプとスピーカーを組み込んだから解決したけど、
不安定な検知の解決策が見つからない。
別のセンサーを探してみるかぁ。
半年くらい更新してなかったけど、STM32ボード買ったり、
スピーカーやアンプ作ってみたり、BeagleBoneBlack買ったり・・・
ほとんどは買っただけで弄ってないけど
当初の目標は、Raspberry PiをMPDサーバーにする事だな。
犬脱走検知ブザー ― 2012/12/22 23:53
犬脱走検知ブザー
実家の犬、ロンはよく脱走する。
両親が勝手口を閉め忘れて、そこから抜け出るのが原因だ。
脱走といっても敷地内をうろつく程度なのだが、何かの拍子に敷地外に出ないとも限らない。
なので、犬脱走検知ブザーをArduinoで作ろうと思う。
ドア開放をスイッチで検知。
赤外線センサーを上下2箇所に設置し、下のセンサーのみ検知したらロンと判断。
上下両方検知したら人間と判断。
ちなみにロンが脱走する時は勢い良く出る事はなく、廻りをうかがいながら
ゆ~っくりと出るのでセンサーが検知しない事は無いだろう。
そもそも、赤外線センサーでロンを検知するかどうかは不明だけど・・・
で、ドアと下センサーを検知したら脱走と判断しブザーを鳴らす。
非常にシンプルで、Arduinoを使わなくても簡単に作れるんだろうと思う。
私はArduinoしか知らないから無理だけど。
今回はATmega328P、3.3V駆動、内部8MHz発振のArduino互換機を作り、
ACアダプタで動かそうと思う。
ACアダプタは12Vのを使うから、3端子レギュレターで降圧する回路も組込む。
赤外線センサーは秋月で買ったParallax PIRセンサー。
ドアの開閉は、磁石を近づけるとONになるリードスイッチを使う。
とりあえず正月に実家へ帰る前に作って、向こうで調整というスケジュール。
手持ちArduinoまとめ(2) ― 2012/12/15 23:03
● オシロスコープ専用互換機
[マイコン]:ATmega328P
[クロック]:16MHz(外部)
[電源]:5V
[フラッシュ]:32kバイト
[シリアル変換IC]:PL2303HX
[Fuse値]:
hFuse = DE
lFuse = FF
eFuse = 05
[ArduinoIDEの\hardware\arduino\boards.txt の内容]
############################################################
uno.name=Arduino Uno
uno.upload.protocol=arduino
uno.upload.maximum_size=32256
uno.upload.speed=115200
uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.bootloader.extended_fuses=0x05
uno.bootloader.path=optiboot
uno.bootloader.file=optiboot_atmega328.hex
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
uno.build.core=arduino
uno.build.variant=standard
############################################################
[その他]:
九州工業大学が公開している、簡易オシロスコープソフト専用Arduino互換機
● 4桁7セグLED搭載互換機
[マイコン]:ATmega328P
[クロック]:8MHz(内蔵RC)
[電源]:5V
[フラッシュ]:32kバイト
[シリアル変換IC]:なし
[Fuse値]:
hFuse = DE
lFuse = F2
eFuse = 05
[ArduinoIDEの\hardware\arduino\boards.txt の内容]
############################################################
atmega328o8.name=[Optiboot] ATmega328P 8MHz
atmega328o8.upload.protocol=arduino
atmega328o8.upload.maximum_size=32256
atmega328o8.upload.speed=115200
atmega328o8.bootloader.low_fuses=0xf2
atmega328o8.bootloader.high_fuses=0xde
atmega328o8.bootloader.extended_fuses=0x05
atmega328o8.bootloader.path=optiboot
atmega328o8.bootloader.file=optiboot_atmega328_pro_8MHz.hex
atmega328o8.bootloader.unlock_bits=0x3F
atmega328o8.bootloader.lock_bits=0x0F
atmega328o8.build.mcu=atmega328p
atmega328o8.build.f_cpu=8000000L
atmega328o8.build.core=arduino
############################################################
[その他]:
7segduinoのSsegライブラリを利用して表示を行う。
カソードコモンの7セグを使ったので mySseg.setKcommon(); と宣言する。
使える入出力ピンは、D5,A0~5の6本。
ブートファイルの作成方法は、
\arduino-1.0.1\hardware\arduino\bootloaders\optibootに移動し、
>omake atmega328_pro8
● 8×2LCD搭載用互換機
[マイコン]:ATmega328P
[クロック]:16MHz(外部)
[電源]:5V
[フラッシュ]:32kバイト
[シリアル変換IC]:なし
[Fuse値]:
hFuse = DE
lFuse = FF
eFuse = 05
[ArduinoIDEの\hardware\arduino\boards.txt の内容]
############################################################
uno.name=Arduino Uno
uno.upload.protocol=arduino
uno.upload.maximum_size=32256
uno.upload.speed=115200
uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.bootloader.extended_fuses=0x05
uno.bootloader.path=optiboot
uno.bootloader.file=optiboot_atmega328.hex
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
uno.build.core=arduino
uno.build.variant=standard
############################################################
[その他]:
LCDは、8×2行キャラクタ表示液晶モジュール ACM0802C-NLW-BBH。
1ピン - GND、2ピン - VCCなので注意が必要。
LCD接続端子は、D5,6,9,10,11,12ピン。
手持ちArduinoまとめ(1) ― 2012/12/14 23:27
● Japanino
[マイコン]:ATmega168V
[クロック]:8MHz(外部)
[電源]:5V
[フラッシュ]:16kバイト
[シリアル変換IC]:CP2104
[Fuse値]:
hFuse = DD
lFuse = C6
eFuse = 00
[ArduinoIDEの\hardware\arduino\boards.txt の内容]:
############################################################
japanino.name=Gakken Japanino
japanino.upload.protocol=stk500
japanino.upload.maximum_size=14336
japanino.upload.speed=19200
japanino.bootloader.low_fuses=0xc6
japanino.bootloader.high_fuses=0xdd
japanino.bootloader.extended_fuses=0x00
japanino.bootloader.path=lilypad
japanino.bootloader.file=LilyPadBOOT_168.hex
japanino.bootloader.unlock_bits=0x3F
japanino.bootloader.lock_bits=0x0F
japanino.build.mcu=atmega168
japanino.build.f_cpu=8000000L
japanino.build.core=arduino
############################################################
● ちびでぃ~の2
[マイコン]:ATmega328
[クロック]:16MHz(外部)
[電源]:5V or 3V (ジャンパピンで設定)
[フラッシュ]:32kバイト
[シリアル変換IC]:PL2303HX
[Fuse値]:
hFuse = DE
lFuse = FF
eFuse = 05
[ArduinoIDEの\hardware\arduino\boards.txt の内容]
############################################################
uno.name=Arduino Uno
uno.upload.protocol=arduino
uno.upload.maximum_size=32256
uno.upload.speed=115200
uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.bootloader.extended_fuses=0x05
uno.bootloader.path=optiboot
uno.bootloader.file=optiboot_atmega328.hex
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
uno.build.core=arduino
uno.build.variant=standard
############################################################
[その他]:
LCD接続ピン、SoftUSBコネクタ搭載。
LCD接続端子は、D5,6,9,10,11,12ピン。
● ちびでぃ~のPRO328
[マイコン]:ATmega328
[クロック]:16MHz(外部)
[電源]:5V
[フラッシュ]:32kバイト
[シリアル変換IC]:なし
[Fuse値]:
hFuse = DE
lFuse = FF
eFuse = 05
[ArduinoIDEの\hardware\arduino\boards.txt の内容]
############################################################
uno.name=Arduino Uno
uno.upload.protocol=arduino
uno.upload.maximum_size=32256
uno.upload.speed=115200
uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.bootloader.extended_fuses=0x05
uno.bootloader.path=optiboot
uno.bootloader.file=optiboot_atmega328.hex
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
uno.build.core=arduino
uno.build.variant=standard
############################################################
[その他]:
2台目はLCD接続用端子、可変抵抗を搭載(リセットボタンは無し)。
LCD接続端子は、D5,6,9,10,11,12ピン。
ただし、製作ミスによりA7、D13ピンが使えない。
● ちびでぃ~のPRO
[マイコン]:ATmega8L
[クロック]:8MHz(内蔵RC)
[電源]:5V
[フラッシュ]:8kバイト
[シリアル変換IC]:なし
[Fuse値]:
hFuse = DC
lFuse = 94
eFuse = 00
[ArduinoIDEの\hardware\arduino\boards.txt の内容]
############################################################
atmega8o8.name=[Optiboot] ATmega8 8MHz
atmega8o8.upload.protocol=arduino
atmega8o8.upload.maximum_size=7680
atmega8o8.upload.speed=115200
atmega8o8.bootloader.low_fuses=0x94
atmega8o8.bootloader.high_fuses=0xDC
atmega8o8.bootloader.path=optiboot
atmega8o8.bootloader.file=optiboot_atmega8-8m.hex
atmega8o8.bootloader.unlock_bits=0x3F
atmega8o8.bootloader.lock_bits=0x0F
atmega8o8.build.mcu=atmega8
atmega8o8.build.f_cpu=8000000L
atmega8o8.build.core=arduino
atmega8o8.build.variant=standard
############################################################
● ちびでぃ~の壱
[マイコン]:ATmega8
[クロック]:8MHz(内蔵RC)
[電源]:5V
[フラッシュ]:8kバイト
[シリアル変換IC]:なし
[Fuse値]:
hFuse = DC
lFuse = 94
eFuse = 00
[ArduinoIDEの\hardware\arduino\boards.txt の内容]
############################################################
atmega8o8.name=[Optiboot] ATmega8 8MHz
atmega8o8.upload.protocol=arduino
atmega8o8.upload.maximum_size=7680
atmega8o8.upload.speed=115200
atmega8o8.bootloader.low_fuses=0x94
atmega8o8.bootloader.high_fuses=0xDC
atmega8o8.bootloader.path=optiboot
atmega8o8.bootloader.file=optiboot_atmega8-8m.hex
atmega8o8.bootloader.unlock_bits=0x3F
atmega8o8.bootloader.lock_bits=0x0F
atmega8o8.build.mcu=atmega8
atmega8o8.build.f_cpu=8000000L
atmega8o8.build.core=arduino
atmega8o8.build.variant=standard
############################################################
[その他]:
ISP端子搭載。AVRチップ用ライターとして使える。
LCD搭載Arduino互換機作成 ― 2012/12/11 21:54
小型LCD搭載のArduino互換機を、ユニバーサル基盤で作った。
LCDは、8×2行キャラクタ表示液晶モジュール ACM0802C-NLW-BBH。
HD44780コンパチブルタイプなので、LiquidCrystalライブラリ使って簡単に表示できる。
ピン配置は下記のようになっている。
1ピン - GND
2ピン - VCC
3ピン - V0
4ピン - RS
5ピン - R/W
6ピン - E
7ピン - DB0
8ピン - DB1
9ピン - DB2
10ピン - DB3
11ピン - DB4
12ピン - DB5
13ピン - DB6
14ピン - DB7
今持ってる他のLCDと、1ピン、2ピンが逆なので注意が必要だ。
Arduinoとの接続は、4ピンモードで行う。
(自作機) (LCD)
GND - 1ピン(GND)
VCC - 2ピン(VCC)
D5 - 4ピン(RS)
D6 - 6ピン(E)
D9 - 11ピン(DB4)
D10 - 12ピン(DB5)
D11 - 13ピン(DB6)
D12 - 14ピン(DB7)
LCDの3ピン(V0)には、可変抵抗を接続してコントラストの調整を行えるようにする。
そして互換機の制作。
マイコンはATmega328Pを使い、16MHzのクリスタルで駆動させる。
ブートローダはOptibootにしたので、Uno互換機になった。
下記のようなスケッチをコンパイルして書込み。
#include <Arduino.h>
#include <LiquidCrystal.h>
// instanciate the library and pass pins for (RS, Enable, D4, D5, D6, D7)
LiquidCrystal lcd(5,6,9,10,11,12);
void setup(){
lcd.begin(8,2);
lcd.clear();
}
void loop(){
int i,t;
for(i=16;i>0;i--){
lcd.setCursor(0,0);
for(t=0;t<i;t++) lcd.print(" ");
lcd.print("Arduino");
delay(200);
}
for(i=5;i>0;i--){
lcd.setCursor(0,1);
lcd.print(" by T.S");
#include <LiquidCrystal.h>
// instanciate the library and pass pins for (RS, Enable, D4, D5, D6, D7)
LiquidCrystal lcd(5,6,9,10,11,12);
void setup(){
lcd.begin(8,2);
lcd.clear();
}
void loop(){
int i,t;
for(i=16;i>0;i--){
lcd.setCursor(0,0);
for(t=0;t<i;t++) lcd.print(" ");
lcd.print("Arduino");
delay(200);
}
for(i=5;i>0;i--){
lcd.setCursor(0,1);
lcd.print(" by T.S");
delay(1000);
lcd.setCursor(0,1);
lcd.print(" ");
delay(300);
}
}
lcd.setCursor(0,1);
lcd.print(" ");
delay(300);
}
}
LCDを接続して電源を入れたが・・・■■■■■■■■って表示されるだけ。
配線ミスを疑ってテスター当ててみたけど正常。
実は当初外付けクリスタル付けてなかったから、それを疑ってクリスタル点けたけど変化なし・・・
途方にくれながらネットで情報探してみたら、このLCDはR/W端子に信号を入れてやらないと駄目と書いてある。
そこでR/W端子をGNDに繋いでやったら、あっさり表示してくれた。
最終的なLCDとの接続はこんな感じ。
(自作機) (LCD)
GND - 1ピン(GND)
VCC - 2ピン(VCC)
D5 - 4ピン(RS)
GND - 5ピン(R/W)
D6 - 6ピン(E)
D9 - 11ピン(DB4)
D10 - 12ピン(DB5)
D11 - 13ピン(DB6)
D12 - 14ピン(DB7)
(LCDの3ピン(V0)に、可変抵抗を接続)
これを作った後で知ったけど、ストロベリーリナックスでもっと小さいLCDが買えるようだ。
I2C液晶だし、端子ピッチが狭いから苦労しそうだけど、これも試してみたいな。
最近のコメント