ZigbeeモージュールTWE-Liteでシリアル通信のテストをしました. PC-USBシリアルモジュール-TWE-Lite USBシリアルモジュールのTX,RXとTWE-LiteのTX,RXをクロスして接続する. 親機:M1-GND,M2,M3オープン,BPS-GND(38400bps) 子機:M1,M2,M3オープン,BPS-GND(38400bps) まずは,teratermでテスト. 通信速度を38400にして,TerminalのTransmitをCR+LFとしておく. 親機 (論理ID=0x00) ,子機 (論理ID=0x78)双方から約1秒間隔で, 以下のようなIO状態の通知データが送られる. :7881150175810000380026C9000C04220000FFFFFFFFFFA7 親機からデータを送ってみる. 下記データをコピーしteratermに張り付け,Enterすれば, 子機側のPCのteraterm上に表示される. :780100112233AABBCCDD13 最後の2バイトはチェックサムで,0x78+0x01+0x00+...0x13の下位が0x00になる. 続いてProcessingで作ったシリアル通信のテストプログラム 親機側からhello!を2秒間隔で送信する. 子機では,IO状態の通知データは無視しそれ以外のデータを表示する. 親機側の送信プログラム import processing.serial.*; Serial myPort; void setup(){ myPort = new Serial( this, Serial.list()[0], 38400); } void draw(){ char[] data= new char[20]; int i,sum,n=7;//N of words +1 data[0] =0x78; data[1] ='h'; data[2] ='e'; data[3] ='l'; data[4] ='l'; data[5] ='o'; data[6] ='!'; String str = ":"; sum=0; for(i=0;i<n;i++)sum+=(int)(data[i]); data[n]=(char)((256-sum%256)%256); for(i=0;i<=n;i++){ if(data[i]/16>9)str+=(char)('A'+(data[i]/16-10)); else str+=(char)('0'+(data[i]/16)); if(data[i]%16>9)str+=(char)('A'+(data[i]%16-10)); else str+=(char)('0'+(data[i]%16)); } println(str); str+='\r'; //CR str+='\n'; //LF myPort.write(str); //delay 2 sec int t=millis(); while(millis()<t+2000){} }//draw() 子機側の送信プログラム import processing.serial.*; Serial myPort; void setup(){ size(100,100); myPort = new Serial( this, Serial.list()[0], 38400); } void draw(){ int i,n; char a; char[] data = new char[100]; String str = ""; for(i=0;i<100;i++){ while (myPort.available()==0){}; data[i]=(char)myPort.read(); str+=data[i]; if(data[i]=='\n')break; }//for n=i; //50 if(n!=50)for(i=3;i<n-4;i+=2){ if(data[i]>='A')a=(char)(10+data[i]-'A'); else a=(char)(data[i]-'0'); a*=16; if(data[i+1]>='A')a+=(char)(10+data[i+1]-'A'); else a+=(char)(data[i+1]-'0'); print(a);} }//draw()
ATMELのAT-Tiny26,ATmega,R8Cなどのワンチップマイコン,C言語,JAVAなどのプログラミング言語の入門のためのページです.サンプルプログラムを中心に紹介します.他にもLinixや数学ソフトなどの紹介も行います.
このブログを検索
あなたは
番目のお客様です.
内容
Visual C++ Express Editionを用いたプログラミングメモ
Windows版 Mathematicaの使い方
MATLABとOctaveを使う
Fedora,Vine,Debian,KnoppixでLinux一本勝負?
CygwinやMinGWでCプログラミングを行う
C言語のプログラミング入門
R8Cで液晶SC1602BSの表示を行う
マイコンと2進数
R8CTinyマイコンの最初の一歩(Cプログラミング)
R8C/TinyシリーズのリセットとIDコードチェック機能
R8CTinyでCOMポートの通信実験
CT-208でR8CTinyの実行(アセンブラ)
R8C/Tiny29(サンハヤトのMB-8C29)の評価
サウンドファイルwavを開く
よく使うATMELのマイコンのアセンブラの比較
ATMELのATTiny26入門
Tiny26で液晶SC1602BSの表示を行う
AD変換の結果を液晶に表示する
マイコンによる電子オルゴール
Tiny2313でパルスの分周とカウンタ
Tiny2313でシリアル通信とROMリーダ
Tiny2313でGPSデータを液晶に表示
加速度センサを使う
マイコンでI2C-EEPROMの読み書きを行う
TINY13,TINY25,2313などの8ピンマイコンを使う
PSOCマイコンスタートアップ
AF,FMラジオ
Windows版 Mathematicaの使い方
MATLABとOctaveを使う
Fedora,Vine,Debian,KnoppixでLinux一本勝負?
CygwinやMinGWでCプログラミングを行う
C言語のプログラミング入門
R8Cで液晶SC1602BSの表示を行う
マイコンと2進数
R8CTinyマイコンの最初の一歩(Cプログラミング)
R8C/TinyシリーズのリセットとIDコードチェック機能
R8CTinyでCOMポートの通信実験
CT-208でR8CTinyの実行(アセンブラ)
R8C/Tiny29(サンハヤトのMB-8C29)の評価
サウンドファイルwavを開く
よく使うATMELのマイコンのアセンブラの比較
ATMELのATTiny26入門
Tiny26で液晶SC1602BSの表示を行う
AD変換の結果を液晶に表示する
マイコンによる電子オルゴール
Tiny2313でパルスの分周とカウンタ
Tiny2313でシリアル通信とROMリーダ
Tiny2313でGPSデータを液晶に表示
加速度センサを使う
マイコンでI2C-EEPROMの読み書きを行う
TINY13,TINY25,2313などの8ピンマイコンを使う
PSOCマイコンスタートアップ
AF,FMラジオ