そういえば、AndroidとArduinoとの間で通信するみたいな話を聞いたので、同じ事を今持ってる部品でやってみようと思いました。
調べてみると、いつものFT232RLとシリアル通信できるみたいです。
Android携帯を接続するためには、USBホスト対応の端末と所謂ホストケーブルと呼ばれる変換ケーブルが必要です。
Amazomなりでも4,500円位から売ってますが、他の用途でオス端子だけ取られたUSBケーブルもあるので、いつでも開いてる100均ローソンでMicroUSBケーブルを買い足して作りました。
カッターで切開した画像はありませんが、ハンダ付けされてる側から見ると
この様なピン配置になってます。(一列に並んでる場合もあるかも分かりません)
1番ピンからの線の対応として
1 : Vcc
2 : D-(通信 負) <-白色
3 : D+(通信 正)
4 : ID(On-The-Go)
5 : GND <-黒色
と、なります。
標準USBのメス端子からも、赤, 緑, 白, 黒の線が出ていると思うので上記のピンと線の対応通りにハンダ付けします。
更に、4番のID端子をGNDに短絡させてやる事で、多くのモバイル機器ホストモードとして動作する様です。
テスターで、それぞれが短絡していない(4,5番は除いて)事をチェックして、手持ちのUSBキーボードとUSBメモリを接続してみました。
ちゃんと入力できました。ちょっと嬉しいです。
半角/全角キーも、ちゃんと使えるんですね。
Ctrl, NumLockとかのキーは有効では無いようです。ちょっと触っただけなので分かりませんが...
USBメモリも挿せばそのままマウントされました。
ディスク内の音声ファイルも再生できます。
このアルバムはガスリーのエロケです。またライブ行きたいです。
フォーマットですが、FAT32は当然マウントされるでしょうがExFATは駄目でした。残念
当然NTFSも駄目です。
ちなみに、端末上でフォーマットすると、FAT32でフォーマットされました。
Logicoolのunifyingで接続する無線トラックボール(無線マウス)もそのまま利用できます。
動作を確認できたので、接着剤を流し込んで絶縁します。
普段ヘッドホンのジャック部などの絶縁と固定にセメダインを使ってますが、今回は瞬間接着剤で固定してみました。狭いのと、硬化させたいので。
あとは、熱収縮チューブなり、ビニールテープなりで保護します。
ホストケーブルはできたのでコードを書いてシリアル通信してみたいと思いますが、それはまた今度...
2012年11月9日金曜日
2012年11月4日日曜日
Carbon Ring Finger Strap を買って改造してみる
- Xperia SXの使用感
目当て通りのサイズと軽さに大満足です。
太めの指と画面の右縁付近との相性が少し悪いですが、それ以外はフリック入力等も問題無いです。
重量も、以前のGalaxySに比べてとても軽く感じ、今まで使ってきたスマホの中で一番持っていて楽な機種です。
唯一心配だったバッテリーの持ちも、意外と悪くありませんでした。(LTEオフ設定)
- ストラップ
どこかでリング型のストラップが便利!流行ってる!っていう事を聞き、カーボン製のリングというロードバイク乗りなら一撃で撃ち抜かれるであろう商品を発見しそのまま購入しました。
購入したストラップは、Deff社のCarbon Ring Finger Strap
Amazonで購入した時は2400円程と、ちょっと何考えてるのか分からない価格ですが、完全にロードバイクのパーツの感覚で買いました。
事前に読んだレビューには、ネジが甘いや紐の強度が気になるという物がありましたので、その辺りには軽く手を加えようと思います。
アーレンキーでバラバラです。カーボン模様がかっこいい。
ネジは届いた状態ではそこまで緩くは無いと思いますが、アルミの部分が可動する事を考えると、気づかず緩んでバラバラになってると言う事も確かにあるかもと思います。
時々増し締めするか、Amazonのレビューにもありますがロックタイトなどのネジのゆるみ止めを使用する方が良いと思います。
紐はよくあるストラップに使われている普通の紐でしょうか。
手持ちのノギスで測ってみると、紐の太さは約0.5mmでした。こう見るとストラップって結構細いんですね。
一重結びで玉にして、アルミのパーツの中に引っ掛けてあります。
- ちょっと改造
素材屋さんからケブラー糸を芯にした紐を購入したので、交換してみます。
アラミド繊維のケブラーというと、防弾チョッキとかにも使用されていますよね。
ちなみに、今回購入した約1mmの紐に使われているケブラー芯糸の断裂強度は約58kgだそうで、糸が切れる前に結び目が解けるかカーボンが割れそうです。
スタンダードな黒色と、白色も一緒に購入しました。
線自体の太さは1mm以上あるのでそんなに柔らかく無いですが、芯糸はとても柔らかいです。
[11/5追記]
紐が太くて一本しか通らないんですね。
元々付いてる紐が大体0.5mmなのに、1mmちょっとある紐だと二本通りませんよねー
一本だけ通して携帯側で結びつけるような使い方にでもしようかとも思いましたが、それもどうかと思うので穴を広げる方向で調節しました。アルミで良かった。
その辺のドライバーで2mm程のサイズに穴を拡張し紐を通した後も、どうやって玉を作って固定しようかとか次々問題が出てきながらも紐交換できました。
ネジは、予定通り接着剤で固定させました。
ふむむ....どうなんでしょうね。シリコンチューブつけた方が良いかな?
まぁ、ケブラー云々は置いておいても紐は太くなって、固定の玉も強化したので紐の部分に関して心配は無くなったかな、と。何も考えずに引っ張って、ぶら下げられます。
カバーはポリエステルなので、毛羽立ちは防げません。
ちなみに、白色の紐も買ったのでアルミの色にあわせて赤色の染色にトライしました。
唯一見つけたコールダイ ホットのレッドを使用しました。
染料を買った時に店員さんと相談すると、ポリなので淡く染まると思いますという事なので加熱しながら3度染めてみました。
コンロ周りが汚いですけど、お鍋で紐をコトコト煮込んでいます。
上から、染める前, 染めた後, 元々ついていた紐です。
赤, ピンクというより、茶色というか薄めのあずき色になりました。
並べると元々の紐と今回使った紐の太さが分かります。赤の紐は外皮が緩くなって更に太くなってますが。
ヘアゴムにしか見えないレベル。
染色は諦めます。
[ここまで]
そういえば、このストラップならコナン君の映画であったブレスレットでコナン君の体重を支え吊るという事もできそうです。
あの金メダルのブレスレットは、そういう繊維で作られた糸を使っているのかもしれないですねー
メモ
ストラップに使われてる金具の付いた紐って松葉紐って言うそう。
2012年10月30日火曜日
[Java][AVR]MacのJavaでAVRとシリアル通信したい
AVRで作ってるI/Oボードで取得したセンサーのデータを扱うのは、現状JavaでやりたいのでMac上のJavaでシリアル通信出来るようにする。
Javaでシリアル通信を行うライブラリにRxTxという物があるのでこれを使います。GNUライセンスです。
まず、古い方の公式サイトからrxtx-2.1-7-bins-r2.zip (Final)をダウンロードしてきます。
さらっと少し上にダウンロードサイトが移動した旨が書いてありましたが気づきませんでした。
新しい方のサイトも見てみましたが、書いている時点で安定版のバージョンは同じ様です。
ダウンロードしたzipファイルを解凍して出来たディレクトリの中のINSTALLの内容の
に従って、
解凍したディレクトリの中にあるRXTXcomm.jarと、Mac_OS_Xディレクトリの中にあるlibrxtxSerial.jnilibを、
/Library/Java/Extensionsにコピーします。
最後のfixperm.shを実行するよう言ってますが、無いので飛ばします。
とりあえず前準備は終わったので、Eclipseでサンプルプロジェクトを作ってみます。
適当なプロジェクトを作成し、プロジェクトのプロパティの Javaのビルドパス-ライブラリーの外部Jarの追加で先程コピーしたRXTXcomm.jarを指定してあげます。
ポートを開き、受信した文字を出力するだけのプログラムを書いてみます。
AVRのプログラムは、ただHello World!!を出力し続けるだけです。
簡単に説明を行うと
15行目
16行目
18行目
19行目
あとは、通常のJavaの通常の入出力プログラムです。 それぞれの例外は、エラーメッセージの通りだと思います。
実行してみると、
Java Communications APIの使い方
Javaでシリアル通信を行うライブラリにRxTxという物があるのでこれを使います。GNUライセンスです。
まず、古い方の公式サイトからrxtx-2.1-7-bins-r2.zip (Final)をダウンロードしてきます。
さらっと少し上にダウンロードサイトが移動した旨が書いてありましたが気づきませんでした。
新しい方のサイトも見てみましたが、書いている時点で安定版のバージョンは同じ様です。
ダウンロードしたzipファイルを解凍して出来たディレクトリの中のINSTALLの内容の
Mac OS X (x86 and ppc) (there is an Installer with the source)
RXTXcomm.jar goes in /Library/Java/Extensions
librxtxSerial.jnilib goes in /Library/Java/Extensions
Run fixperm.sh thats in the directory. Fix perms is in the Mac_OS_X
subdirectory.
に従って、
解凍したディレクトリの中にあるRXTXcomm.jarと、Mac_OS_Xディレクトリの中にあるlibrxtxSerial.jnilibを、
/Library/Java/Extensionsにコピーします。
最後のfixperm.shを実行するよう言ってますが、無いので飛ばします。
とりあえず前準備は終わったので、Eclipseでサンプルプロジェクトを作ってみます。
適当なプロジェクトを作成し、プロジェクトのプロパティの Javaのビルドパス-ライブラリーの外部Jarの追加で先程コピーしたRXTXcomm.jarを指定してあげます。
ポートを開き、受信した文字を出力するだけのプログラムを書いてみます。
AVRのプログラムは、ただHello World!!を出力し続けるだけです。
import java.io.IOException;
import java.io.InputStream;
import gnu.io.CommPortIdentifier;
import gnu.io.NoSuchPortException;
import gnu.io.PortInUseException;
import gnu.io.SerialPort;
import gnu.io.UnsupportedCommOperationException;
public class Sample {
public static final void main(String[] args){
try{
CommPortIdentifier portID = CommPortIdentifier.getPortIdentifier("/dev/tty.usbserial-A400FMPJ");
SerialPort port = (SerialPort)portID.open("Sample", 5000); //waiting5000ms
port.setSerialPortParams(19200, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
port.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);
InputStream is = port.getInputStream();
int c;
while((c = is.read()) != -1){
Calendar cal = Calendar.getInstance();
System.out.print(cal.get(Calendar.SECOND) + "." + cal.get(Calendar.MILLISECOND));
System.out.println("->" + (char)c);
}
is.close();
port.close();
}catch(NoSuchPortException e){
System.err.println("Can Not Find Device");
e.printStackTrace();
}catch(PortInUseException e){
System.err.println("Can Not Open Device");
e.printStackTrace();
}catch(UnsupportedCommOperationException e){
System.err.println("Invalid Parameter");
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
}
}
簡単に説明を行うと
15行目
CommPortIdentifier portID = CommPortIdentifier.getPortIdentifier("/dev/tty.usbserial-A400FMPJ");
getPortIdentifierの引数には下の画像にあるように、開きたいデバイスのパスを与えます。
16行目
SerialPort port = (SerialPort)portID.open("Sample", 5000);
第一引数にはポートを開くアプリケーション名, 第二引数にはポートが他のアプリケーションに使用されていた場合にポートが解放されるのを待つ待ち時間(ms)です。
18行目
port.setSerialPortParams(19200, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);第一引数から、ボーレート, データビット数, ストップビット数, パリティの種類です。
19行目
port.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);フロー制御の設定を行います。
あとは、通常のJavaの通常の入出力プログラムです。 それぞれの例外は、エラーメッセージの通りだと思います。
実行してみると、
java.lang.UnsatisfiedLinkError: /Library/Java/Extensions/librxtxSerial.jnilib: no suitable image found. Did find: /Library/Java/Extensions/librxtxSerial.jnilib: no matching architecture in universal wrapper thrown while loading gnu.io.RXTXCommDriver
Exception in thread "main" java.lang.UnsatisfiedLinkError: /Library/Java/Extensions/librxtxSerial.jnilib: no suitable image found. Did find: /Library/Java/Extensions/librxtxSerial.jnilib: no matching architecture in universal wrapper
ってエラーを吐きました。
調べてみると、先程ダウンロードしたlibrxtxSerial.jnilibは32bit用でJavaは64bitで実行される事によるエラーのようです。
なので、実行の構成からVM引数に-d32を与えて32bitで実行してあげると解決します。
調べてみると、先程ダウンロードしたlibrxtxSerial.jnilibは32bit用でJavaは64bitで実行される事によるエラーのようです。
なので、実行の構成からVM引数に-d32を与えて32bitで実行してあげると解決します。
また、根本的な解決として64bit対応のライブラリに置き換える方法もあります。
arduinoのgoogle codeに、64bit用のライブラリがありましたのでダウンロードし置き換えてあげて下さい。
arduinoのgoogle codeに、64bit用のライブラリがありましたのでダウンロードし置き換えてあげて下さい。
先程のエラーは解決できましたが、
gnu.io.PortInUseException: Unknown Application
というエラーが出ました。
調べるとRxTxの排他制御の為のディレクトリが必要という情報がありましたので、ターミナルで
sudo mkdir /var/lock sudo chmod 777 /var/lock
無事、データの受信を確認しました。
2012年10月26日金曜日
[Android]Xperia SXに変えました
Galaxy SIIが出た頃に型落ちしてたGalaxy Sに変えてからの、二台目Android
Symbianを使ってた頃には考えもしなかった世界になってますね!
iPhone 3GS以来のiPhone5か, WM6.1以来のWindows Phoneか, Galaxy SIII miniか?とか迷いながらサイズだけ見てXperia SXをチョイス。
12年夏モデルで生産も多くないみたいで、中々在庫も無くロードバイクでお散歩ついでに近隣の市のshopを見て回って買ってきました。
冬にはXperia AXも出ますが、スペックはほぼ変わらず画面サイズは大きくなってるので...
以下メモ
ホームアプリ
└Docomo palette ui, Xperiaホーム は痒い所に手が届かなかったので、4.0以降で使えるApex, Nova, Atom Launcherを入れてみたけど、どれも微妙
└結局、Galaxyの時と同じでGo Launcherを。Xperiaホームのページ数を減らせればそれで良かったのに...
ブラウザとメッセンジャー系
└Chrome
└Kakao talk
└Viper
└Lineはバッテリーを良く食べるみたいなのでちょっと様子を見てから..
└Skypeもまた今度
ツールとか
└GTasks(ToDoと簡易メモ)
└Solid Explorer(ファイラ)
└AirDroid(wifiを使ってPCとファイルのやりとり)
└3G Watchdog(通信料監視, 今回は要らない気もする)
└Google Play music(google play music クライアント)
とりあえず、必要最低限だけ
あとは、プリインストールのアプリをいくつかアンインストール, 無効化
Symbianを使ってた頃には考えもしなかった世界になってますね!
iPhone 3GS以来のiPhone5か, WM6.1以来のWindows Phoneか, Galaxy SIII miniか?とか迷いながらサイズだけ見てXperia SXをチョイス。
12年夏モデルで生産も多くないみたいで、中々在庫も無くロードバイクでお散歩ついでに近隣の市のshopを見て回って買ってきました。
冬にはXperia AXも出ますが、スペックはほぼ変わらず画面サイズは大きくなってるので...
以下メモ
ホームアプリ
└Docomo palette ui, Xperiaホーム は痒い所に手が届かなかったので、4.0以降で使えるApex, Nova, Atom Launcherを入れてみたけど、どれも微妙
└結局、Galaxyの時と同じでGo Launcherを。Xperiaホームのページ数を減らせればそれで良かったのに...
ブラウザとメッセンジャー系
└Chrome
└Kakao talk
└Viper
└Lineはバッテリーを良く食べるみたいなのでちょっと様子を見てから..
└Skypeもまた今度
ツールとか
└GTasks(ToDoと簡易メモ)
└Solid Explorer(ファイラ)
└AirDroid(wifiを使ってPCとファイルのやりとり)
└3G Watchdog(通信料監視, 今回は要らない気もする)
└Google Play music(google play music クライアント)
とりあえず、必要最低限だけ
あとは、プリインストールのアプリをいくつかアンインストール, 無効化
2012年10月18日木曜日
[AVR]AVRを始める(3)-USBで通信
赤外線カメラが早速ほこりを被りました
そして、盗まれた一代目ロードのTrek君に変わって二代目Corratecのバイクを買いました(*´ω`*)
Trekのより鍵のグレードは上げないといけないですが、鍵なんて所詮無力です...置いておくのが悪いんです...
また間が空いて、今回はUSBを使って通信をします。
USB変換モジュールは、秋月のFT232RLを使います。
COMポートもUSBも同じシリアルなのに、どのあたりが変換なのかよく分かりません。
前回までで、SP3232ECPを用いたシリアル通信はできたので、それをFT232RLに変えるだけです。
回路図は以下の通りです。
FT232RLとAVRの接続はデータの送受信に用いるTXDとRXDの二本だけです。
また、FT232RLはUSBから5V(または、3.3V)電源を出力する事ができますので、AVRへの電源供給に用います。簡単便利!
シリアル通信のソフトによってシリアルポートが開けなかった為、sanahi氏のAcknowrichでキャプチャしてテストを行いました。良さ気ですかね。
とりあえず、ここまででCOMポートの無いmacbook proに戻れそう。
次はJavaでシリアル通信をしたいと思います。
そして、盗まれた一代目ロードのTrek君に変わって二代目Corratecのバイクを買いました(*´ω`*)
Trekのより鍵のグレードは上げないといけないですが、鍵なんて所詮無力です...置いておくのが悪いんです...
また間が空いて、今回はUSBを使って通信をします。
USB変換モジュールは、秋月のFT232RLを使います。
COMポートもUSBも同じシリアルなのに、どのあたりが変換なのかよく分かりません。
前回までで、SP3232ECPを用いたシリアル通信はできたので、それをFT232RLに変えるだけです。
回路図は以下の通りです。
FT232RLとAVRの接続はデータの送受信に用いるTXDとRXDの二本だけです。
また、FT232RLはUSBから5V(または、3.3V)電源を出力する事ができますので、AVRへの電源供給に用います。簡単便利!
シリアル通信のソフトによってシリアルポートが開けなかった為、sanahi氏のAcknowrichでキャプチャしてテストを行いました。良さ気ですかね。
とりあえず、ここまででCOMポートの無いmacbook proに戻れそう。
次はJavaでシリアル通信をしたいと思います。
2012年10月4日木曜日
赤外線カメラの作り方
赤外線カメラを作りました。赤外線照射器と一緒に
SEALsの本
を読んでナイトビジョンに憧れて...本は凄く面白かったです
試しに手作りの赤外線照射器を使って真っ暗な部屋を撮影してみます。
肉眼では真っ暗ですが、撮影は出来てますね。残念なのは思ったより照射器の光量が小さい事ですね...
また、IRフィルタを少しカットし、デジカメのフラッシュをフィルタでカバーすると赤外線フラッシュになります。夜間の写真撮影ならばこれで十分です。照射器は必要ありません。
せっかくの赤外線カメラなのでスノー効果(?)など赤外線独特な写真も...?
画像の加工の仕方が分からないので、macのプレビューで適当に...これも練習ですね。
赤外線カメラは出来ましたが、ナイトビジョンはまだ達成できていないので赤外線照射器と一緒にまた後で...
*最後に、カメラの改造は自己責任です。どんな不具合が起きても対応する事はできません。撮影についても同様です。
ちなみに、透けたりムフフな事にはなりませんので、あしからず
新しいデジカメをそろそろ買いたかったので、4年くらい前に購入したカメラを利用する事にします。
用意するもの
用意するもの
- デジカメ

今回は、大分古くなったNikon COOLPIX P60を利用します。
分解・改造するので、亡くなっても構わない物を用意しましょう。 - 光吸収・赤外透過フィルタ (IRフィルタ)
IRフィルタは可視光領域をカットするフィルタです。暗闇で照射器と組み合わせて使うなら必要ないと思いますが、お昼に赤外線写真を撮影したい人は必要です。
今回は富士フィルムのIRフィルタを使用しました。IR-xxと号数が振ってあり、号数の10倍の波長をカットします。JIS曰く、可視光の波長の上界は760-830nmらしいです。
先人の方達は76号を使っている場合が多いように感じますが、近くのお店の在庫と相談して 80号
を使用しました。昨日の時点で近くのビックカメラには80号
と82号
の2枚だけ在庫がありました。お店によって無いことも多そうです。
デジカメの改造
これで、赤外線カメラのできあがりです。- カメラを分解します
写真はP60のものですが、工程は似たようなものでしょう。
フラッシュ用の大容量のキャパシタが内蔵されています。感電したら痛いです。気をつけましょう。
筺体の底部, 側部のネジを外しカバーを開きます。

液晶やアルミのシールド(? 放熱板?)を取り除き、イメージセンサにアクセスできる所まで分解します。
二枚目の画像でAと書かれた、フレキシケーブルの接続されたシルバーのボードを開けるとCCD素子があります。 - フィルタの交換
画像は撮り忘れましたが、CCD素子の前に光の当たる角度でピンク色に見えるガラス板があり、これがローパスフィルタです。このフィルタが赤外線領域をカットしています。
ローパスフィルタを取り除き、そのフィルタと同サイズにIRフィルタをカットしローパスフィルタのあった場所に収めます。 - 元に戻す
液晶等を基盤に接続し仮組みを行い、電源が入ること, (場所によるかもしれませんが)紫色の画像が液晶に表示される事を確認しデジカメを元に戻します。
又開ける事もあると思いますので、ネジが2, 3本余っても気にしないでいきます。
ローパスフィルタとIRフィルタは厚さが異なるため、取り替えるとピントが合わなくなると思います。同じ厚さになる様にガラス(アクリル)板を加える方も居るようです。
試しに手作りの赤外線照射器を使って真っ暗な部屋を撮影してみます。
肉眼では真っ暗ですが、撮影は出来てますね。残念なのは思ったより照射器の光量が小さい事ですね...
また、IRフィルタを少しカットし、デジカメのフラッシュをフィルタでカバーすると赤外線フラッシュになります。夜間の写真撮影ならばこれで十分です。照射器は必要ありません。
せっかくの赤外線カメラなのでスノー効果(?)など赤外線独特な写真も...?
画像の加工の仕方が分からないので、macのプレビューで適当に...これも練習ですね。
赤外線カメラは出来ましたが、ナイトビジョンはまだ達成できていないので赤外線照射器と一緒にまた後で...
*最後に、カメラの改造は自己責任です。どんな不具合が起きても対応する事はできません。撮影についても同様です。
ちなみに、透けたりムフフな事にはなりませんので、あしからず
2012年9月7日金曜日
[AVR]AVRを始める(2) - USART通信
少し間が開いて、AVRについて。
I/Oボードという事で、AVRとPC間で通信をさせたいです。
STK600にはUSBポートとRS-232Cが載っていますので、どちらかを使えばPCとの通信のテストが出来ると思っていました。
以下のコードでひたすらデータを吐き出し続けさせ、PCで観測させようと考えましたが全くできないので、諦めました...
STK600での方法をご存知の方が居られたら、是非ご教示下さい。
仕方が無いので、一緒に買ったATMEGA328Pを使ってテストを行います。
STK600からISPのピンを引っ張ってフレッドボード上に組んだチップにプログラムします。
Atmel Studio上からプログラムする方法が判らなかった為、Avrdudeを用いて書き込みました。
AVRからRS-232Cを用いて通信する為のトランシーバにSP3232ECPを使います。
回路図は以下の通り。ISPを用いる事で、チップが基盤に実装されていてもプログラムする事が出来ます。(今回はピンの重複がないので、実際どうなるか分かりませんが...)
今回は電源は、ISPのピンから頂いています。
トランシーバIC周りのキャパシタや接地は省略しています。
上記のコードをプログラムし、PCのシリアルポートと通信させ受信を確認しました。
今日はここまで。
次は、送信とUSB変換について...
久しぶりにスパゲティコード
#回路図の作成にはBSch3を利用させて頂きました。
I/Oボードという事で、AVRとPC間で通信をさせたいです。
STK600にはUSBポートとRS-232Cが載っていますので、どちらかを使えばPCとの通信のテストが出来ると思っていました。
以下のコードでひたすらデータを吐き出し続けさせ、PCで観測させようと考えましたが全くできないので、諦めました...
STK600での方法をご存知の方が居られたら、是非ご教示下さい。
#define F_CPU 1000000UL // Clock Speed
#define BAUD 9600
#define MYUBRR ((F_CPU/16/BAUD)-1) //Asynchronous Normal mode
#include <avr/io.h>
#include <util/delay.h>
int main(void){
unsigned char data = 0x01;
UBRR0H = (unsigned char)(MYUBRR >> 8);
UBRR0L = (unsigned char)MYUBRR;
UCSR0B = (1 << RXEN0)|(1 << TXEN0);
/* Stop bit:1, Parity: None, Data bits:8*/
UCSR0C = (1 << UCSZ01)|(1 << UCSZ00);
while(1){
while(!(UCSR0A & (1 << UDRE0))){}
//put data into buffer, send the data
UDR0 = data;
delay_ms(50);
data = data + 0x01;
}
}
仕方が無いので、一緒に買ったATMEGA328Pを使ってテストを行います。
STK600からISPのピンを引っ張ってフレッドボード上に組んだチップにプログラムします。
Atmel Studio上からプログラムする方法が判らなかった為、Avrdudeを用いて書き込みました。
AVRからRS-232Cを用いて通信する為のトランシーバにSP3232ECPを使います。
回路図は以下の通り。ISPを用いる事で、チップが基盤に実装されていてもプログラムする事が出来ます。(今回はピンの重複がないので、実際どうなるか分かりませんが...)
今回は電源は、ISPのピンから頂いています。
トランシーバIC周りのキャパシタや接地は省略しています。
上記のコードをプログラムし、PCのシリアルポートと通信させ受信を確認しました。
今日はここまで。
次は、送信とUSB変換について...
久しぶりにスパゲティコード
#回路図の作成にはBSch3を利用させて頂きました。
登録:
投稿 (Atom)





















