Arduinoを購入しました

標準

今日、秋月電子通商 八潮店にて、Arduino SMD Edtion Rev.3を購入しました。価格は2,940円です。
※追加でUSB type-bケーブル(100円程度)を購入する必要があります。

Arduino SMD Rev.3

このSMDエディションは、通常版のチップがDIP化されていない、基盤に組み込まれたバージョンのようです。なので、チップ故障時などの時は交換することは出来ません。まぁ、そう頻繁に壊れることは無いと思うのでこれで十分ですね。

使ってみた感じを率直に言うと、Raspberry Piに比べて、必要な環境の整備(OSが無いので、パソコンと接続するだけで使える)が少なく、また十分な開発環境(オープンソースなので、様々な開発ソフトがある上、公式も開発ソフトをリリースしている)が用意されているので、とても簡単に電子工作が出来て楽しいです。また、Raspberry Piと違い、アナログ値の入力に対応しているので、アナログ出力のセンサーの類を簡単に使いこなすことが出来ます。価格も3,000円を切るほど安いので、是非関心のある方は手を伸ばしてみてはいかがでしょうか。

今後はRaspberry Pi関連の他にもArduino関連の記事も出していくことになります。よろしくお願いします。

Raspberry PiでCdSセンサーの値を読み取る

標準

今回は単純にCdSセンサーをRaspberry Piで読み取る事に挑戦してみます。
CdSセンサーというのは硫化カドミウムを使って、センサーに当たる光量によって抵抗値が変わるという特性を利用した、光量センサーです。これを使うことで、大雑把ではありますが、昼夜判定や、照明の状態などを確認できます。
では、簡単にまとめていきましょう。まず、CdSセンサーはアナログ値出力なので、Raspberry Piではお馴染みのA/Dコンバーターを使っていきます。今回のA/DコンバーターもMCP3008です。

import sys
import spidev
import smbus
import time
import datetime
import subprocess
import RPi.GPIO as GPIO

spi = spidev.SpiDev()
spi.open(0,0)

def get_adc(channel):
	r = spi.xfer2([1,(8+channel)<<4,0])
	ret = ((r[1]&3) << 8) + r[2]
	return ret

while 1:
	print(get_adc(0))
	time.sleep(0.1)

これだけでなんと、光量の値が取得できます。簡単ですね。
今回のポイントになるのは12~15行目のA/Dコンバーターから出力される変換されたデジタル値を読み取る部分です。
この部分はRaspberry Piを使っていく上では大変重要な機能になっていくと思うので、是非この機会に。

上記のコードで取得した光量の値を分岐させ、例えばブザーを鳴らしたり、例えばこちらの記事のようにLCDディスプレイにデータを書き込んだり、様々な用途に使えると思います。
近いうちに次はカラーセンサーの使い方について投稿したいと思いますので、乞うご期待。