| 2005/10/31 | 
	
	 
	 
	こんなもの買ってみたりして 
	やっぱりARUMO-SiRがかわいくてしょうがないので、なんとか満足度アップしたい!というわけで、
	「ロボットバトル in 名古屋モーターショー」へ向けて改良します。そして、その先は「ロボファイト2」に「ロボプロ・アスリート」と、
	がんがん行こうと思います。というわけで、まずは購入してみた部品がこれ。
	これでいいのかな〜と思いつつ、ネットで5個セット、495円というのを見つけたので購入。明日には、待ちに待ったアレが来ます〜。
	 
	  
	mabotanさんのホームページ(10/28)にて、リトルベランカのネットショップで
	購入バトルをしていた(さらに、SISOは負けた)事に気づく…在庫が1個しか残ってなくて、再入荷を待っていました…。
	明日には届くぞ〜と出遅れ組です。でも4つ買いました。最近、飛ぶ鳥も打ち落とす勢いのmabotanさんと購入パーツがシンクロするのは、ラッキーアイテム??? 
	   | 
	| 2005/10/30 | 
	
	 
	 
	「ロボットバトル in 名古屋モーターショー」エントリ  |   
	ARUMO-SiRで出動予定 
	ロボットバトル in 名古屋モーターショーにエントリしました。運営、お疲れ様です。
	今回は、ARUMO-SiRでいきます。たぶん、現状の強さで行けばG-Tuneという気もするのですが、ARUMO-SiRの方も、現在、改良?中でして、しっかり育てないとです。
	たぶん、手間のかからない度合いで行けば、まちがいなくARUMO-SiRの方が手間はかからないと思いますので、これで強くなってくれば、
	とても使いやすい機体になると思います。
	 
	さてさて、PSoCの方、たまぞうくん、だいたいできました。今、整理中です。いや〜、簡単簡単。ぼちぼちアナログ行こうかな。
	 
	   | 
	| 2005/10/29 | 
	
	 
	 
	PWMモジュールでサーボ制御 
	そろそろPSoCも、もうちょっとロボットなコンテンツということで、今日はサーボパルスを出力してみようと思います。
	サーボパルスに最適なのは…PastelMagicさん
	のチュートリアルにもあります、PWMによるLED点滅を応用すればできそうです。
	 
	このPWMモジュール、周期とパルス幅を設定することができます。一般的にサーボ制御信号は、20ms周期で、
	その中で、ON時間を600〜2400usぐらいにしてやると、それに応じてサーボの動作角度が決定されるようになっています。
	で、1500usぐらいにするとニュートラルって感じです。PWMモジュールにはいくつかの種類があるのですが、
	その中のPWM16(16ビットのPWM)を使用し、1usのクロックを入力してやれば、20000カウントで20msecになり、
	1500カウント分ONしてやればサーボ制御信号のできあがり…となるはずです。それではさっそくいってみようと思います。
	今回のプロジェクト名は…「ServoPWM」とでもしておきます。
	 
		
		
			
				  クリックで拡大します。
			 | 
			
				では、さくさくっとプロジェクトを作ります。プロジェクト名は「ServoPWM」とでもしておきます。
				今回使用する主役モジュールは、PWM16です。これは「PWMs」の中から選択することができます。
				まずはこれをちょいちょいっと選択しまいましょう。そうすると、デフォルトで「PWM16_1」というモジュールが追加されます。
				今回は、これしか使いませんから、「Interconnect」画面へ移動しましょう。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				まずはいつものように「Global Resources」を設定します。
				デフォルトがなんで「8_MHz」なのかよくわからない「CPU_Clock」ですが、今回もこのまま行きます。
				で、PWM16_1に与えるクロックをここで設定するわけですが、「1us」単位を作ってみます。
				1usという単位を作るためには、周波数は1MHzを使えばよいいので、
				SysClkである24MHzを24分周してやればいいことになります。VC1とVC2を組み合わせて24分周してもいいのですが、
				VC3が256まで分周できますので、VC3で一気に行きます。というわけで、今回のポイントは、
				「VC3 Divider」を「24」にセットすることです。それにしても、なんで「VC3」だけ「Divider」なんでしょうね〜
				…と疑問に思ったのですが、考えてみると「VC3」だけは、いろいろなクロック源が使えるんです。
				それで、「VC1」、「VC2」と同じ表記が使えないからみたいです。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				次は、今回の主役モジュール、「PWM16_1」の設定に移ります。まずは「Place」します。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				「Place」したら、今度はモジュールの設定です。今回は、「20msecの全体周期を作っておいて、
				1.5msだけオンしておく」というのが目的ですので、以下のようになります。
				
				- 「Clock」…このために1MHzを設定した「VC3」とします。
				
 - 「Enable」…きっと「有効にする」という意味だろうということで「High」。
				
 - 「CompareOut」…「Row_0_Output_0」にします。今回、サーボパルスをPORT0[0]に出そうと思っています(MiniEval1のTP6…LEDのすぐ隣)。
					さすがのPSoCも「どれでも設定でOK」と言うわけではありません。そのため、PORT0[0]に接続できる「Row Output」を選択する必要があります。
				
 - 「TerminalCountOut」…よくわからないけど、使ってない気がするので「None」
				
 - 「Period」…これで全体の周期を設定します。今回、「1us」が入力ですので、「20000」で「20ms」になります。そんなわけで、「-1」して「19999」をセット。
				
 - 「PulseWidth」…信号がオンになっている期間です。デフォルトで「1.5ms」を出そうと思いますので、例によって「-1」して「1499」とします。
				
 - 「CompareType」…例によって「Less Than Or Equal」
				
 - 「InterruptType」…割り込みは使用しないので、今回は適当。
				
 - 「ClockSync」…相変わらず、意味はよくわかってませんが、いつもの「Sync to SysClk」
				
 - 「InvertEnable」…とりあえず「Normal」
				
  
				  
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				そして、「Row_0_Output_0」を「PORT0[0]」まで接続します。直接接続するのではなく、まず、
				「Row_0_Output_0」を「GOE0」(グローバルアウトイーブン0)へ接続します。
				そのためには、まずは「Row_0_Output_0」の先っちょについている四角い箱をクリックします。
				そうすると、「Digital Interconnect Row_0_Output_0」というダイアログボックスが表示されます。
				   
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				この「Digital Interconnect Row_0_Output_0」中の、一番上の三角をクリックして「GlobalOutEven_0」を
				選択すると、「GOE0」に接続されます。デバイスエディタのブロック図でも、線が実際に接続されます。
				   
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				今度は、「GOE0」を「PORT0[0]」に接続します。まず「GlobalOutEven_0」をクリックします。
				そうするとメニューが表示されますので、「Pin」を選択します。
				   
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				すると接続先を選択することができますので、「Port_0_0」を選択します。
				   
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				はい、こんな風に結線されていることが表示されます。
				   
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				また、ポートの設定を見ると、PORT0[0]が"Strong"へ自動的に変更されています。
				きっと、このポートをPWM出力に割り当てたので、出力に自動設定されたんでしょうね。
				これで「Genrate Application」します。
				   
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				次はプログラムの方を書きます。1500usを出力するだけならば、このまま処理開始プログラムだけ書いてビルドすればよさそうですね。
				というわけで、オンラインマニュアルを見ながらちょいちょいと書きます。まずは「Application Editor」画面へ移動します。
				んで、オンラインマニュアルを開いてコピーしたいところを選択して「右クリックメニューからCopy」を選びます。
				これ、ず〜っと疑問だったんです。普通に「Ctrl+C」してもコピーできないもんですから、ずっと、コピーできないと思っていたんですが、実は、メニューからやればできるということを最近知りました。
				   
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				というわけで、ちょちょっとmain.cのコードを追加します。
	PWM16_1_Start();	//	Start the PWM16
	while( 1 );
 
				んでは後はビルドして、できあがり…と。例によって警告がでていますが、よくわからないので無視。
				  
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				さて、テストですが、一応、サーボから変な電気信号が入ってMiniProg1を壊したりしたら嫌なので、
				一応、MiniProg1をはずし、MiniEval1に5Vを電源で供給するようにしました。また、サーボのグランドと、
				MiniEval1のグランドは必ず接続してください。MiniEval1の大きな穴ですが、
				みの虫クリップで挟むのにちょうどいいです。今後の実験用に、ケーブルをいくつか作っておくと便利そうですね。
				 
				こうやって見ると、「実験装置」という感じです。でかいアルインコの電源が雰囲気を出してます。でも、S03Tを一個、動かすだけ…。
				 
				実行すると、サーボが「ビシ」っとセンター位置で停止します(これをセンター位置と呼ぶかどうかは定かじゃないけど)。
				サーボホーンを触って見ると、しっかりとトルク感がありますのでサーボ制御信号もバッチリでているようです。
				よしよし、基礎実験成功!
				 
				動画を載せようか悩んだんですが、止まっている動画を載せるのもどうかと思い、自主規制…。
				   
			 | 
		 
		 
	
	…と、ここで終わったら、いくらなんでも寂しいですよね〜。だって、何にも動かないもの。というわけで、
	スイッチを押すと一時的に「1800us」に切り替わるようにしてみます。
	まずは「Device Editor」の「Interconnect」画面に戻って、
	スイッチ入力ができるように設定します。「2005/10/07 PSoCのMiniEval1でLED点灯」を参考に設定してみてください。
	 
	んでは「Application Editor」でプログラミングします。ループの中に、「スイッチが押されたら、
	パルス幅を1800usにする。んで、離されたら1500usに戻す」という処理をいれればよさそうです。
	じゃあ、どうやったら「パルス幅」を変更することができるか?がポイントになりますが、これは、
	オンラインマニュアルのAPIのところを見ると、それらしいのが載ってまして、
	PWM16_WritePulseWidth()を使えばよさそうです。
	
	と、その前に、スイッチから入力できるようにする必要がありますので、以下のようにして、
	ポートの設定を変更します。
		 
		- Device EditorのInterconnect画面に戻る。
		
 - PORT1[4]を「Pull Down」にする。
		
 - 「Generate Application」する。
		
  
	で、main.cをちょこちょこっと修正します。「もし、SWが押されていたら、1800us信号に切り替える。
	そしてSWが離されるのを待ち、離されたら1500us信号に戻す。」という処理を書けばいいので、
	以下のようになります。
  PWM16_1_Start();              // Start the PWM16
  while( 1 ){
    if(( PRT1DR&0x10 ) != 0 ){  // P1[4](SW) ON Check
      PWM16_1_WritePulseWidth( 1799 );// Set 1800us
      while(( PRT1DR&0x10 ) != 0 );   // P1[4](SW) ON Check
      PWM16_1_WritePulseWidth( 1499 );// Set 1500us
    }
  }
	動作中の楽しい動画をご覧あれ!
	
	
	  クリックで再生します。
	 
	さて、次は、いよいよ「たまぞうプロジェクト」いきます(TAHMAZOじゃないよ、たまぞうだよ)。
	 
	   | 
	| 2005/10/26 | 
	
	 
	 
	最近、PSoCネタが多い理由… 
	最近は、なぜか「2日・日本で仕事、3日・海外で仕事、半日・残件整理、1日半・バタンキュー」な生活が続いています。
	以前、「旅疲れは移動距離に関係する」という話を聞いたことがありますが、絶対そうだ〜と思います。うぅぅ。
	そんなわけで、なかなかマシーンに触れない日々をすごしていますが、そんなときでも、PSoC実験セットは旅のお供に最高!
	なわけでして、いつも持っていってます。出張の時って、こういうのとかプログラムが進みます。なぜか新幹線だと
	プログラムがよく進みますが、飛行機だとイマイチ落ち着けないのが不思議。
	 
	MiniEval1だけでできるものならば、その場でちょいちょい、他の機材を使う場合は、だいたいデバッグしておいて、
	家に戻って動作確認、という感じです。そのうち、RS232C通信もやってみよう。
	 
	それにしても、疲れる〜。
	 
	   | 
	| 2005/10/24 | 
	
	 
	 
	タイマと割り込みでLEDを点滅 
	今回は、LEDを割り込みで1秒毎に点灯/消灯させようと思います。やっぱこういうのには「タイマ」という気がするのですが、実は、
	「カウンタとタイマ、どっちがいいんだろう?」なんて悩んでます。ドキュメントを見るとすごくよく似ています。
	ま、単純なプロジェクトなので、どっちを使ってもよさそうということで、素直にタイマにします。
	 
	さて、今回、このタイマ、ちょっと調べて見たら「32kHz」を入力できるようです。また、「32kHz」は内臓しているとのこと。
	精度は、内臓24MHzのクロックが±2.5%とのことから、たぶん、これも±2.5%かな。内部低速発振器(ILO)を使っているとのことなので、
	きっとそうでしょう。
	この32kHzというクロック、時計などではよく使われるクロックで、正確には「32.768kHz」だったと思います。
	PSoCの内臓32kHzの場合は、32000、32768、どっちなんだろう?ま、一般的と言う事で、32768ということで進めてみます。
	またアプリケーションノートあたりを探してみます。
	 
		
		
			
				  クリックで拡大します。
			 | 
			
				まずはプロジェクトを作ります。今回は、「LedFlicker」としました。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				それではさっそく「Timer16」を選択します。今回、32768をカウントして1秒を作り出すため、16ビットカウンタを選択します。
				8ビットカウンタの場合、「0〜255」までしかカウントできませんが、16ビットカウンタならば「0〜65535」までカウントでき、
				ばっちりです。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				「Device Editor」の「Selection」画面から「Interconnect」画面に切り替えます。そして「Timer16_1」を「Place」します。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				それでは、「Timer16_1」の設定をします。今回、「Global Resources」の設定は、すべてデフォルトで問題ありません。
				まずは「Clock」を「CPU_32_KHz」にします。そして「Caputure」は「Low」(なんか、有効/無効をHigh/Lowで表現しているみたいです)。
				「Period」は、タイマの期間ですので「32768」から「-1」した値である「32767」を設定します。
				他のサンプルとかみると、こう「-1」して書いて「Compare Type」を「Less than Or Equal」にしていたので、
				同じようにしています。
				 あと大事なのが「ClockSync」です。必ず「Use SysClk Direct」以外を選択してください。これ、厳密にどんな機能か、
				まだ理解していないのですが、「Use SysClk Direct」を選択すると、さっきの32kHzの設定が無視されて、
				SysClkが使用されるようなことがマニュアルに書いてありました。実は、最初、「なんでLEDが点滅しないんだろ〜!?」と、
				はまりました。
				 というわけで、「Generate Application」しましょう。
				   
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				さってと、いよいよ割り込み処理です。まずは「Application Editor」に切り替えます。サンプルを見てみると…
				モジュール起動や割り込み許可の処理は書いてあっても、なんと、肝心な割り込み処理のサンプルがありません〜。
				ひょ〜。というわけで、ごにょごにょと調べると…(って、本に書いてありますね)、自動生成されたソースコード、
				「boot.asm」に割り込みベクタテーブルが書いてあり(割り込みが発生した時に参照されて、
				必要な処理に移るためのテーブル)、ジャンプ先は、これまた自動生成されたソースコードの「timer16_1int.asm」
				の中に定義されていました。「Library Source」の中にあります。
				どうやらここに直接コードを書くか、C言語の関数を作っておいて、割り込み関数の宣言をしておけばよさそうです。
				   
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				せっかくC言語が使えるし、そんなにスピードも気になりませんから、今回はC言語で割り込みを記述します。
				 まずは、いつものメイン処理を記述します。これはマニュアルを読むと載っているので、ほとんどそのまま使います。
				まずは「Timer16_1」の割り込み用初期化をし、その後、CPU全体の割り込み許可をして、最後にモジュールをスタートかけるようです。
				で、プログラムが終わると、そのままPSoCもとまってしまいますので、最後に、永久ループ(って言うのかな?)として、
				ぐるぐる回りの一行を入れておきます。
				 
  Timer16_1_EnableInt();
  M8C_EnableGInt;
  Timer16_1_Start();
  while( 1 );
				 
				本題の割り込み処理ですが、C言語で割り込み処理を記述する場合、あるおまじないをします。
				というわけでいきなりでてきたのが「#pragma」。これは…よくわからないので、お作法とて覚えておくことにします。
				この行の一番最後は関数名で、次の行(次の行である必要はありませんが)に関数の本体が定義してあります。
				こうやって記述すると、割り込み処理として認識してくれるようです。関数名は好きなものをつけて頂けばOKです。
				中身は、単にPORT2の[0]〜[3]をひっくり返す、というものです。
				
#pragma interrupt_handler int_timer16_1
void int_timer16_1()
{
  PRT2DR ^= 0x0F;
}
				
				  
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				それでは、Application Editor上から「Library Source」フォルダを開いて、「timer16_1int.asm」の編集をします。
				「asm」と拡張子がついているだけあって、アセンブラです。え?アセンブラ、わかりません?大丈夫です。
				SISOもわかりません。「boot.asm」の方を見て、ごくごく簡単に書きました。
				 
				書いたのは、先ほど作った割り込み処理の「int_timer16_1_TC()」を呼び出す処理です。
				「ljmp」っていうのはきっと「ジャンプする命令」だろうと。で、あと、割と定番なんですが、
				アセンブラからC言語を呼び出す時には、関数名の頭に「_」(アンダーバー)をつけるようです。
				というわけでできたのが、次の一行。
				 
  ljmp  _int_timer16_1
				 
				  
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				ビルドしてみると…何やら警告がでてきてしまいました。あらら。ま、よくわからないので、とりあえず無視しておきます。
				後は「PSoC Programmer」を起動してPSoCに書き込めばおしまいです。「PSoC Programmer」から、MiniProg1の電源をONしてやれば、
				見事にチカチカとLEDが4つ同時に点滅すると思います。1秒に一度、点灯と消灯を切り替えていますので、
				点滅周期は2秒になります。
			 | 
		 
		
			
				  クリックで再生します。
			 | 
			
				それでは、動作中のPSoCの動画をお楽しみください(動画だけ見ても楽しくないかもしれませんが、
				自分でプログラムしたものが、思ったとおりに動作するのは楽しいですよ!)。
				う〜ん、心なしか1秒よりちょっと遅い感じ。
				 
				ここで疑問なんですが、「割り込み処理の呼び出しは、boot.asmの方に呼び出しを書いたほうが速いんじゃないの?」
				って思っちゃいますよね〜。というわけで試してみました。「ljmp _int_timer16_1_ISR」と書いてあるところを、
				「_int_timer16_1」としたら、ちゃんと動作しました。ところが、ちょっと困った事が。
				「Generate Application」を再度したら、コードが初期化されました。やっぱり、
				ちゃんと「ここにコード書いてね〜」とあるところに書かないとダメですね〜。
			  | 
		 
		 
	   | 
	| 2005/10/23 | 
	
	 
	 
	表彰状と認定証、頂きました 
	出張から帰ってきたら届いていたものをもう1つ。ロボプロ・アスリートの表彰状と認定証です。ひょっとして、
	走るたびに認定証って頂けるのかな…。こういうのって、結構、うれしいかも。最後には、トロフィーとかあったりして。
	 
	  
	そういえばROBO-ONE、最近は大きくて軽いトロフィーですが、以前の小さくてきれいな、
	ガラスのメダルの方がいいと思います…どうして変わったんだろう???
	 
	   | 
	| 2005/10/22 | 
	
	 
	 
	魅惑のニューラインナップ! 
	2005/09/29の不定期TOPICにてARUMO-SiRでのサーボ固定方法を紹介した時に、あさいさん
	のところの「特ナベ0番小ネジ2x5クロアエン」が一番気に入っているので、2x6もあったらいいな〜と書いたのですが、なんと、
	ラインナップしてくださいました!現在、小売の在庫のところから選択できるようになっています。あさいさん、ありがとうございます〜。
	 
	ネジが2本並んでいますが、左が「特ナベ0番小ネジ2x6クロアエン」、右が普通の「ナベ0番2種小ねじ2×6クロアエン」です。
	この写真でもわかりますように、頭のサイズが「特ナベ」の方が少し大きく、4mmになっています。このメリットとしては、
	固定される材料との面積が広くなることで力が分散され、ネジ数を減らしても材料の変形を防ぐことができ…そうな気がしています。
	実際、樹脂ワッシャなどの変形具合を見ると、「接触面積が広がることによる力の分散」効果はありそうです。
	 
	「材料が変形しにくくなる=ネジが緩みにくくなる」とも言えると思います。結果として「壊れにくい安定したロボット」
	を作ることができるのではないかと思います。
	 
	  
	  
	薄さでいけば、AHNの方がもちろん薄いのですが、それでもこの薄さなので、重宝します。
	またこの丸みが、触ったときにとても気持ちがいいんですよ。普通のナベネジ等では味わえない、
	温かみのある感触を楽しむことができます。一度、お試しあれ!
	    | 
	| 2005/10/20 | 
	
	 
	 
	相変わらずわかりませぬ。 
	ドキュメントを読むと、クロックは最大333kHzと書いてあるのを見つけました。でも、そのとおりに24MHzを分周すると、
	72分周しないといけません。「VC1=SysClk/N」だけでは16までしか分周できませんので、さらにVC1の出力をVC2に入れて分周しないといけなくなります。
	VC3を使えば256まで分周できるので一気に分周できますが、今度は、SAR6に入力することができません。う〜ん。
	 
	  クリックで拡大します。
	 
	ひょっとして結果オーライかな?と思いつつも、あまりにもかけ離れているので、ひょっとしたら、「VC1=SysClk/N」の「SysClk」は、
	「CPU_Clock」のことかな〜なんて思い始めました。ほら、「CPU_Clcok」って、「3_MHz(SysClk/8)」(デフォルト)になっているじゃないですか。
	これで8分周したら64分周なので結構近い値になります。ということは、「CPU_Clock」を上げたらうまくいかなくなるんじゃないかな〜と、
	早速実験してみました。こういうのがさくさくっとできるあたりがPSoCですね!
	 
	結果は…変わらず。うまくいっているようです。う〜む、不思議だ。
	 
	2005/10/21追記:別のプログラムを組んでいたら、やっぱ、「VC1=SysClk/N」の「SysClk」は、CPU_Clockの意味な気がしてきました
	(CPU_Clockが24_MHzだとうまくいかないのに、3MHzにしたらうまくいくようになったケース発生!)。
	 
	2005/10/21追記:さらに追記ですが…「えいや!」で、PWMによるLED点滅のプログラムを作って「CPU_Clock」を変更しながら様子を見てみました。
	う〜ん、「VC1=SysClk/N」の「SysClk」は、やっぱり「SysClk」みたいです。ま、とりあえず、SAR6には333KHzを入れるのが手堅そう。
	 
	2005/10/21追記:またまた追記ですが…ドキュメントから、「VC1=SysClk/N」の「SysClk」は「SysClk」であることを確認しました。
	ここに切り抜いて載せてもいいのかな…「Architectural Description」のところに、「PSoCクロックソースの概要」を説明する図がありまして、
	SysClockが、それぞれ「CPU CLK」(マニュアルどおり記載)、「VC1」、「VC2」、「VC3」に入力されていることが書かれています。
	    | 
	| 2005/10/19 | 
	
	 
	 
	「公開練習会 in ポートメッセなごや」 
	PSoCをお供に某国へ出張してます(ここは暖かいので、風邪を引いている身としてはちょっとうれしかったりして)。
	なんか、出張している時の方が、仕事が早く終われる気がする…。というわけで、やりかけだったA/D変換の続きです。
	 
	それはそうと、みんなのやす@大同工業大学さんから、「公開練習会 in ポートメッセなごや」のお知らせ!
	今度はスケジュールOK!です。しかもロボファイト2の前の週なので、すごくいいタイミングです。いや〜、気合入ります。
	ARUMO-SiR、持っていきます〜。荷物に余裕があったらG-Tuneも持ってきます。
	 
	とりあえず作って見る。 
	PSoCの方、とりあえずA/D変換のプログラムを作ってみました。MiniEval1のボリュームをまわすと、
	4つのLEDがレベルメータのように点灯するというものです。SAR6のSample Clockに何を入れていいのかは相変わらずよくわからないので、
	適当にやってみます。また、前回の調査で、SAR6をどこに割り当てても、PORT2[0]から信号を直接取り込むのは無理なことがわかりましたので、
	PGA(Programmable Gain Amplifier)という、アナログ信号増幅モジュール(オペアンプの増幅回路かな)を倍率1にして組み込み、
	その出力をSAR6に入力するようにします。そして、最後にA/D変換結果をプログラムで取り出し、
	「PSoCのMiniEval1でLED点灯」で行った方法と同じ方法でLED点灯させるようにします。
	 
	それでは、まずProjectを作ります。
	 
		
	   | 
	| 2005/10/18 | 
	
	 
	 
	ちょっと気になる…1万円でおつりが来る充放電器 
	今使っている充電器、スワローチャージャーアドバンスはリトルベランカ
	で購入したのですが、ふと見ていたら、新しい充電器、
	Hyperion EOS 5i 充電器 (Speed SS14N)
	を発見。9月末ぐらいから取り扱いを開始しているようです。
	12V入力なのですが、なんだか安くてよさそう。ROBO-ONEとかやってると、やっぱ充電器、2個欲しい時が多々ありまして、
	例えば、前日の夜とか、2時間おきに起きてバッテリー交換しながら充電しているのですが、それはそれで睡眠不足になってしまうと…。
	最近は、秋月の放電器も併用して、放電だけでも早く!とかやってます。そろそろリポも検討かな。以前に比べて、だいぶ値段が下がっている気がします。
	単4NiMH950mAhで250円ぐらいですから、6セルパックすると1500円。放電能力は多分3C、無理して4か5Cぐらいかなってところ。
	もう1000円足せば、7.4V-700mAhあたりの10Cリポ(やや性能低めあたり)ならば買えます。しかも重量は6割程度。う〜む。
	 
	この充放電器ですが、調べて見ると、もう少し安く販売しているところとか、上位機種を取り扱っているところもありますね〜。
	(とか言いながら、買うとしたら、いつものリトルベランカで買うんだろうけど)
	マニュアルとかも公開されていて、機能的にはこのサイズの充放電器と同じ感じ。というわけで、「スワローチャージャーアドバンスと比べるとどうですか〜?」
	と聞いてみたら、「3.6Vのリチウムイオン充電機能が無いけど、それが不要ならばいいですよ〜」とのことでした。
	う〜む、いいですね〜。
	 
	
	あ、ちなみにこの手(12V入力)の充放電器を使う場合、別に電源を用意する必要があります。
	うちでは、秋月で購入した60W級スイッチングACアダプタ 12V 5Aを使っています。
	10Aぐらいのものがあれば充放電器のフルスペックを出せますが、単4とか単3を6セル充電するだけなら、これでいけてます。
	たぶん、もっと出力が小さい電源でもいけるかな〜って思ってますが、こわいので試した事は無いです。
	 
	うわさネタ:以前、形のよく似たものは中身は同じ物で、発売時期が新しい方がプログラムが新しくなっている分、
	性能がいいという話を聞いた事があります。
	
	 
	ちょっと気になる…1万円でおつりが来る二足歩行ロボット 
	ロボプロ・アスリートの時に一緒に走った、「ラクティオン」(ロボプロのホームページだとレンタルになっていますが、
	たぶん、会場でマイロボットに変えたと思われます。ロボプロさんに確認してもらったほうがいいのかな?それとも、
	参加者の方で編集するところだったかな?)ですが、
	実はこれ、恐竜型二足歩行ロボット、その名もロボザウルス。会場で見せてもらったのですが、
	本当にのっしのっしと首と尻尾を振りながら歩きます。しかも、方向転換も可能。
	しっかり脚を上げて(構造的には傾けてというか…)歩くので、パンチカーペットでもガシガシ歩行。
	起き上がりはできないそうですが、サイズも大きく、立派なもんです。
	調べてみたら、なんと税込み「\9,999」!AI(人工知能)搭載して、各種センサーにより周囲の音や動きなどの状況を把握、
	「リモートコントロールモード」「自由歩行モード」「防御モード」を持ち云々。
	 
	商品紹介を読むと、バラして調べたくなっちゃうことがたくさん書いてあるんだけど…興味がある方は、トイザらスへごぉ!
	 
	というわけで、トイザラスのリンク 
	商品紹介:http://www.toysrus.co.jp/f/robosaurus/ 
	ニュースリリース:http://www.toysrus.co.jp/truj/press/2005/20050824.html
	 
	ARUMO-SiRへの悩み 
	ARUMO-SiRの今後について悩む…。突貫工事でイージーに作ったとは言え、やはり自分で丹精込めて作っただけあって、かわいいです。
	最初、作り始めた時は「とりあえず」的な感じで作ったので、これ以上、改良とかはしないで行こうかな〜と思っていたのですが…
	困った、すごくかわいくなってきてしまいました。というわけで、ロボファイト2に向けて改良を開始しようかどうしようか、
	すごく悩み中。やりだすと仕事等の予想負荷から、また新型G-Tuneがまた作れない可能性が高くなってくるのですが、う〜ん。
	やりたい事はたくさんあっても時間は限られていますから、選択してやるしかないよな〜。悩む、悩みます。
	いっそ、今シーズンは新機体開発はやめて、マイナーバージョンアップと要素技術で遊びまくろうかな〜。
	 
	   | 
	| 2005/10/16 | 
	
	 
	 
	夢の競演 
	ロボプロ・アスリート、観客のみなさんの応援の中、がんばって歩いてきました。実際にパンチカーペットの上を歩かせてみたら、
	新歩行ルーチン、役に立たず!こりゃまずい、ということで、いつもの格闘歩きでやってきました。
	いや〜、とりあえず転ばずには走れました。タイムは…全然、覚えていないのですが、5000まで進むことができました。
	シンプルファイターは速かったです。それにしても操縦する姿がすごくおもしろかったです。
	ああやって操作しているんですね〜、なるほど。
	 子供がかぶりつきで見てくれているので、ついつい芸をしたくなるのを我慢しながら (^_^) …です。
	ははは。近所だったら、ほいほい行って、タイムを狙う回と遊ぶ回とかやりたいぐらいです、はい。
	 
	
	5000は、トラック周回するので、いつものように自分もG-Tuneと同じ向きにしようとしたら、
	目の前にViSIONガールの脚が見えたので、思わず自分の姿勢を戻したら操作ミスをしてしまい、
	そのまま動揺し続けたことは秘密です。次回チャンスがあったら、オペレーションの位置もよく考えてやることにします…
	まだまだ心の修行が足りません。
	 
	ちょっと携帯のカメラで、画像イマイチですが、夢の競演、撮って来ました。やっぱ、目立ってました。
	しかも、ロボプロさん、ちゃんとこの3台を組にして出走させてくださるあたり、うれしいですね〜。
	AMATERASさんの「汗拭き」にはやられました。あとリリアの内部構造を一部、見させてもらったのですが…
	こ、これはやばいです。中村さんに「これ、首もちゃんと付いている(人形の外装が装着されている)んですね、すご〜い」
	とか言ったら、「実は首だけじゃなくて…」。ああ、これ以上は書けないです。(*^_^*)
	 
	  
	 
	 
	  
	 
	 
	最後のステージでは、オープン参加のみなさんとも戦いました。これまた燃え燃えです。なんか今回は、ファイトでも
	子供達の応援がすごくて、うわ〜って感じで。GUARDIAN、十兵衛と戦ったのですが、2回とも負けてしまいました。
	う〜ん、みなさん、すごくレベルアップしています。7月の頃とは動きが違います。特にGUARDIAN、
	回り込みの動きがすごく良くなっていて、「射程に入れた!」と思って攻撃を出しても、回り込んでよけられちゃうんです。
	そろそろG-Tuneの動作パターンや速度も見なおしが必要です。なんか、ロボファイト2は、
	G-Tuneを持っていきたくなってしまいましたが…ARUMO-SiRの方も育てないといけないので、ここは我慢我慢。
	ARUMO-SiRでは、このあたりがっちり見直して、新しい気持ちでロボファイト2に挑もうと思います。
	 
	その後は、みなさんと食事を軽くとってから帰宅したんですが、これまた楽しかったです。
	ロボット仲間が集まって、いろいろ話ができるってのも、ほんと楽しいです。
	 
	   | 
	| 2005/10/14 | 
	
	 
	 
	GNUSHとGNUH8ツールチェーン、v0503がリリース 
	ちょっと前に届いたKPITからのメールによると、
	新しいGNUSHとGNUH8のツールチェーン(要はGCCのコンパイラです)がリリースされたようです。
	英語のメールなんですが、添付されているhtmlドキュメントが微妙ながらも日本語というのがありがたいです。
	そういえばしばらく前の事ですが、「M16CM32C」というのもリリースされています。今回は、デフォルトプロジェクトが増えているのと、
	HEW4.0をサポートするようになったようですね。
	 
	というわけで、さっそくインストールしてみました。実は、今まで「GNUH8 v0403」を使っていたのですが
	(せっかく更新してくれているんだから新しいの使えよ〜と言われそうですが…)、ちょっとお試し、ということで入れ替えてみました。
	とりあえず、新規プロジェクトを作るところまでやってみましたが、おお、デフォルトプロジェクトがすごく増えてます。
	なんか、なんでもありそうです。もちろん、3694Fだってありますよ。へ〜。
	 
	  クリックで拡大します。 
	早朝特訓は続く… 
	っていうか、もう週末だよ〜。現在、秒速20cmぐらいです(パンチカーペット上で、どれくらい出るかは不明…)。
	スピードはここらであきらめて、方向転換歩行の方にかかろうと思います。絶対に歩いていると曲がりますから。
	立ち止まって方向転換では、時間ロスが大きすぎますので、なんとか進みながらさくっと方向転換したいところ。
	幸いにして、もともとの横歩きスクリプトは嫌でも曲がりますので、これをそのまま使えば…(^_^;…
	う、5000の方、左回りだった…(G-Tuneは右に曲がっていく…)。
	 
	そうそう、棒使いロボットのVinsentを製作されてるHIDEさんとこと
	リンクさせていただいたのですが、ぜひ、棒を振り回している動画をアップして欲しいな〜と、こっそり思ってます。
	 
	ロボコンマガジン42到着 
		昨日、書くのを忘れちゃったんですが、発売より一足先にロボコンマガジン42到着。
		おお〜、ホントに載ってる〜。やばい、やばいっすよ…いや、別にやばくないですが、ビビってます。
		こんなこと、そうそうあるもんでも無いから、後生、大事に取っておこう。
	 
	   | 
	| 2005/10/13 | 
	
	 
	 
	かけっこ練習中 
	というわけで、ロボプロ・アスリートのために早朝トレーニング中。
	最初、まともに歩く方を調整していたんですが、う〜む、バランスが崩れていくだけで、これ以上、速くならない…
	MICRO-MGとS03Tをピッチ軸に混在させているせいか、動きがどんどんバラバラになってしまいます。あと、S03Tの初期動作の甘さが、
	ロール軸移動の正確性を落としてしまっていて、なんともならない感じです。
	というわけでやっぱりカニ歩行(いいのかな???)。現在、チューニング中で、やっと秒速15cmぐらいです。
	目標30cm/secには程遠いですが、ぎりぎりまで、壊さない程度にがんばります。
	もともと直進しなかったのですが、現在は、50cmぐらいなら直進するようになりました。
	ついでなので、「曲がりながら進む」という処理も埋め込み中です。でも、まだ片方しか方向修正ができないので、
	課題多し。う〜む。
	 
	豊田でおもしろいことやってたんですね〜。 
	マジンガアの光子力研九所の開発日誌で、
	なんだかおもしろそうなイベントとが愛知県・豊田市で行われていた模様。ちょっと激しすぎかな〜と思いつつも、
	障害物競走、すごくおもしろそうです。あまり難易度が高いと、やる方も観てる方も大変な気がしますので、
	ほどほどにスピーディにこなせそうというところで、
	 
	- よ〜い、ドン!
	
 - まずは軽くかけっこ。
	
 - スラローム
	
 - くぐり抜け
	
 - ボールかき分け
	
 - などなど
	
  
	なんておもしろそうです。実況中継とかもやりやすそうなので、盛り上がるのではないでしょうか。
	
	お、そういえば、ロボファイトの「SPACE BASE」が割と近い感じです。よし、これは参加せねば。
	SISOがイメージしているのは、これを倍にしたぐらいのものかな〜。どっかやらないかな〜。
	 
	ロボコンマガジンbS2にて 
	Online ROBOCON Magazineの
	bS2予告を見られた方はもうご存知かもしれませんが、なんと、G-Tuneの記事が掲載されます。
	ああ、ホント、ホントなのね〜。こっそりと執筆していたわけですが、どうも白昼夢みたいな感じがしてまして、
	いざ、こうやって掲載されてみると…ビビってます。10冊ぐらい買っておいて、イベントの時に配ろうかな。
	 
	「配る」で思い出したんですが、ロボット製作に使えるかな〜と思って買ってみたけど使わなかった部品や、
	使ってたけど使わなくなったものとか、ROBO-ONE等のイベントでもらった景品で、使ってないものって…
	みなさん、ありませんか?うち、高級半田ゴテが3本もあまっているんです。なぜか、セラコート賞、
	2回も頂いてまして。この間の「科学と産業の体験フェア・ランブル大会」みたいな大会に行くときは、
	賞品寄付ということで持っていこうかな〜。
	 
	MonotaRO.com 
	MonotaRO.comの住商グレンジャーって、「一般消費者様としてご利用頂くことは、
	原則お断りしております。」と、まあ個人はダメです、って丁重に断られたりするんですが(無理やり登録できないことは無いですが)、
	ふと、個人ユーザー向けMonotaROを発見しました。
	って、みなさん、既にご存知でしたか?値段は、本家より、ほんの少し高いかな〜ってのと、品揃えがやや少なめです。
	要望を出して行けば、本家並に増えるかな?
	 
	そういえば、エーゼットというメーカの水溶性切削油(1L)があるんですが、
	これって、樹脂加工するときに使えるかな?試しに買ってみようかな〜。
	    | 
	| 2005/10/12 | 
	
	 
	 
	ロボプロ・アスリート 
	ロボプロ・アスリート、エントリーしました。
	いつの間にやら登録台数が24台。「OmniZero.1」に「たぬたぬG」まで登録されてます。いつ出るのかな〜。SISOは、10月16日に出ます。
	一発、「Super Crab Walk」…要はただのカニ歩きなのですが…で記録出してみようと思います。どうせなら、目指せ、MAGIです。ZIPPONさん、
	すごいな〜。ARUMO-SiRは、お休みです。
	実は、受信機パーツを共用していて、結構、組替えがめんどくさいんですよね〜。そんなわけで、今のところ、片方動かしたら片方お休みです。
	そのうち、なんとかしないとです。
	 
	そして、アスリートの後は、バトルですよね、バトル。いや、もとい、練習試合です。「バトル」と書くと、どうも気合が入りすぎて…。
	いよいよ、シンプルファイター用の技を発動できます。あとは、りりあちゃんとAMATERASさんとの、夢の撮影会!
	 
	   | 
	| 2005/10/11 | 
	
	 
	 
	A/D変換 User Module 
	先週は会社のイベントでどたばた、さらに妻のPCが壊れてしまってキーボード入力が半分ぐらいできなくなってしまってバタバタしてたんですが、
	ようやく落ち着いたのでPSoC再開です。
	 
	今度は、A/D変換をしてみようと思っているのですが、せっかくなので、サンプルを見ながら自分のやってみたいのを作り始めてみました。
	う〜ん、なかなか意味がわからないです。英語のマニュアルはこういう時、つらいです。んで、いくつか気づいた事がありましたので、
	メモしておきます。
	 
	SAR6 
	アナログからデジタルに変換するユーザモジュールは何種類かあるのですが、今回は、ぱっと見、シンプルそうなSARを使ってみようと思います。
	アプリケーションノート(AN2239)に、A/Dコンバータの特徴が書いてあるのですが、「SAR」は、「Analog Switched Capacitor PSoC Blocks」
	のことのようです。「逐次比較レジスタ」…きっと、「逐次変換していくADコンバータ」ということかな。よく読むと、
	「このタイプのコンバータは高速であるが、変換から変換完了の要求に対する入力が安定するまで、CPUを100%使用する」と書いてありますので、
	きっと、CPUからあれこれしてA/D変換するのでしょう。その分、デジタルブロックなどを使用しません。
	 
	んで、MiniEval1には、PORT0[1]にボリュームが実装されているので、これを読み取ってみようと作り始めたのですが、
	あら?ダイレクトに選べるポートには制限があるのね…しかも、PORT0[1]は選べないようです。たぶん、増幅器とかを経由したら大丈夫そうなんですが、
	直につなげるのは…
	 
	
		
			
				 
			 | 
			
				まずは、ASC10にPlace(配置)してみました。そうすると…。
			 | 
		 
		
			
				 
			 | 
			
				選べるのはこれだけです。ポート直に接続できるのは「PORT2[3]」のみです。
			 | 
		 
		
			
				 
			 | 
			
				まずは、ASD20にPlace(配置)してみました。そうすると…。
			 | 
		 
		
			
				 
			 | 
			
				選べるのはこれだけです。残念ながらPORT直には接続できません。
			 | 
		 
	 
	
	こんな感じで、順番にPlaceしていってみたら(きっとマニュアルのどこかに書いてあるんでしょうけど、う〜ん、どこかな〜)、
	ポート直に接続できるのは、ASC10がPORT2[3]、ASC23がPORT2[0]で、他には接続できないことがわかりました。
	使い方から考えたら、直に接続する事はあまり無いと思いますので特に不便では無いんでしょうが、
	設計時にはちょっと覚えておいた方がよさそうです。
	 
	それにしても、「Sample Clock」って、どれくらいのクロックを入れたらいいんでしょう???
	 
	   | 
	| 2005/10/07 | 
	
	 
	 
	GPIOのお勉強 
	というわけで、仕事も何気にヘヴィだったりするので、だらだら〜っと休息期間を取っているわけですが、
	ぼちぼちっとPSoCを触り始めています。まずは、GPIOを使ってみようと思います。
	「GPIOってなんぞや?」なんて思ったんですが、要は「汎用入出力」のことのようです。
	MiniEval1には、スイッチとLEDが実装されていますので、「スイッチを押すとLEDが点灯する」という、
	単純なプログラムを組んでみようと思います。
	 
	PSoCのI/Oポート 
	I/Oポートには、High Z、High Z Analog、Open Drain High、Open DrainLow、Pull Up、Pull Down、Strong、Strong Slowの
	8つのモードがあります。「初めてのPSoC」に解説が書いてありましたが、まだまだ勉強不足。
	とりあえずLEDを点灯させるためには「StrongでOK」と理解しました。また、スイッチは、MiniEval1では、VCCにぶら下がっていますので
	(+5Vにつながっている)、PSoC内で処理をするためには、Pull Downとすればよさそうです。
	 
	プロジェクト作って、ごごごっと行ってみよう! 
	 
		
			
				  クリックで拡大します。
			 | 
			
				というわけで、まずは「PSoC Designer」を起動します。そうすると、「Start」というダイアログが表示されまして、
				新プロジェクトを作ったり、今まで作ったプロジェクトを読み込むことができます。ここでは迷わず「Start new project」をクリックします。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				プロジェクト名は、「LEDSW」としました。「LEDをSWで点灯させるから」です。もっと長い名前でも大丈夫です。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				今回は、「CY8C27443-24PXI」を使っていますので、以下の画面のように設定します。チップを切り替えるには、
				ダイアログ左にある「View Catalog」をクリックして選択メニューを開き、そこから選択します。
				また、せっかく「Cコンパイラ」が使えるので、「Generate 'Main' file using:」は、「C」を選択します。
				なんで、「CY8C27443-24PXI」を使っているかというと、なんとなく、モジュール規模が少ない方が最初は理解しやすいかな〜と思ったので、
				こっちにしました。ちなみに、「CY8C29...」になると、デジタルブロック数やROMが倍だそうです。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				というわけで、「Device Editor」の「Selection(モジュール選択画面)」が開きました。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				今回のプログラムでは、モジュールを使わないので、そのままさくさくっと結線作業を行います。
				普通は、モジュールを追加しますので、ここで、A/Dコンバータ等を追加して、それから結線作業となるのですが、
				今回、I/Oをちょっといじるだけのプログラムですので、モジュールは使いません。
				メニューから「Interconnect」を選択する事によって、画面を移動します。
			 | 
		 
	 
	
	I/Oの設定 
	 
		
			
				  クリックで拡大します。
			 | 
			
				これが「Interconnect」の画面です。「モジュールが無いのに、結線がいるの?」と思われるのかもしれませんが、実は、
				この画面からI/Oの設定をします。 
				先に説明したとおり、各I/Oポートはモードを持っており、入力/出力を切り替えたり、プルアップ、プルダウンの設定をすることができます。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				「Interconnect」画面の左下の方にあるのが、I/O設定のための画面です。まずはスイッチの設定から行きます。 
				スイッチは、P1[4]に接続されていますので、Port_1_4の「Drive」の列をクリックすると、モードを選択できるようになります。
				8つのモードが表示されますが、この中から「Pull Down」を選択します。これで、後でコードを生成した時に、
				このための初期化コードが生成されます。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				これでOKです。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				引き続き、LEDの方も設定します。LEDは、P2[0]〜[3]につながっていますので、どれでもいいんですが、ここでは、
				P2[0]を使います。同じように選択し、「Strong」を選択します。これ、要は普通の出力みたいです。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				さてっと、ソースコードを生成します。ここまで、なんだかリッチな画面でいろいろ編集してきましたが、
				実は、これ、自動生成されるソースコードのための設定作業です。例えば、「ポートをプルダウン」という設定をしましたが、
				これも「そのための初期化コードを生成」するためのものです。 
				では、「Generate Application」します。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				お、なにやら完了した模様。
			 | 
		 
	 
	
	コーディング 
	 
		
			
				  クリックで拡大します。
			 | 
			
				ちょこっとですが、コーディングします。先に説明したとおり、初期化コードなどは既に「Generate Application」で生成されていますので、
				後は、本体を書くだけです。マイコンプログラミングをやっていると、まず最初に「モジュール初期化のコードをどう書くか?」というところで、
				マイコンのハードウェアマニュアルとにらめっこになるのですが、PSoC Designerを使っている場合は、この苦労が少なくてすみそうです。 
				それでは、「Application Editor」へ行きます。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				これが「Application Editor」です。よくある統合環境の画面ですね〜。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				ソースファイルを開きます。開くには、左のツリーから選択します。他にもいろいろソースコードが入っており、
				覗いて見るとおもしろいかもしれません。自動生成されたコードも入っています。また、モジュールを追加した場合、
				それ関係のソースコードも入ります。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				それでは、「SWの情報を、LEDへ出力する」というプログラムを書きます。 
				I/Oポートへアクセスするためには、「PRTxDR」という変数を介してアクセスをします。こうやって使うと、
				普通のマイコンと同じ感じです。例えばPORT1ならば「PRT1DR」で、それぞれのビットが、各ピンの状態に対応しています。
				今回の場合、P1[4]に接続されているSWの状態を読み取るので、二進数で00010000b、つまり16進数で10hです。
				また、LEDは、P2[0]ですので、二進数で00000001b、16進数で01hのデータにて、操作すればOKです。
				 というわけで、コードはこうなります。
while( 1 ){
  if(( PRT1DR&0x10 ) != 0 ){ // P1[4](SW) Input Check
    PRT2DR |= 0x01;          // P2[0]=H LED ON
  }
  else{
    PRT2DR &= ~0x01;         // P2[0]=L LED OFF
  }
}
			エディタ上で日本語を入力すると、文字化けする事に気づいてしまいました…。うちの環境だけかな〜。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				それではビルドします。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				無事、ビルド完了したようです。
			 | 
		 
	 
	
	PSoCへの書き込み 
	 
		
			
				  クリックで拡大します。
			 | 
			
				というわけで、パソコンにUSBケーブルで、MiniEval1、CY3210-MiniProgを接続します。もちろん、もっと前から接続していても構いません。
				そして、「PSoC Designer」の「Program Part」のアイコンをクリックします。実行されるのは「PSoC Programmer」ですので、
				Windowsメニューの方から起動しても言いのですが、「PSoC Designer」から起動すると、プロジェクトの情報が引き継がれるので便利です。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				じゃん、「PSoC Programmer」です。起動すると、いきなりPSoCと接続されます。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				「Program」ボタンを押すと…。
			 | 
		 
		
			
				  クリックで拡大します。
			 | 
			
				ごごごっとプログラムが転送されます。「成功!」と出てますので、大丈夫です。 
				なぜか「PSoC Programmer」の動作ログ表示は、新しい方が上です(「PSoC Designer」では、新しい方が下)。
			 | 
		 
	 
	
	プログラムの実行 
	 
		
			
				  クリックで拡大します。
			 | 
			
				それでは、動作させてみます。「PSoC Programmer」から電源ON!します。これは便利です。CY3210-MiniProgからMiniEval1に電源が供給され、
				そのままプログラムを走らせる事ができます。 
				注意は、「このチェックボックスの表示にはウソがある」ことです。下の方に表示されているステータスのところを見る方が正しいです。
			 | 
		 
		
			
				  クリックで点灯します。
			 | 
			
				というわけで、「スイッチを押すと、LEDが点灯する」プログラムの完成〜です。
			 | 
		 
	 
	
	というわけで… 
	というわけで、ここまで、だだだっと作って見ましたが、これを応用すると、とりあえず「デジタルコンパスの値をLEDで表示」というのは簡単にできそうです。
	そのときは、入力ポートは「Pull Down」じゃなくて、別のにする必要があると思いますけど、プログラム自体は、ちょっと直すだけでOKそうです。
	しばらくは、この評価ボードだけで遊んでみようと思います(とか言いながら、今、RS232CのI/F作ってたりして…)。
	 
	   | 
	| 2005/10/06 | 
	
	 
	 
	AKC21のTELEC認証状況等について 
	現在、確認中、調査中および勉強中ですが…電波法的には、ちょっと個人で普通に使おうと思うと難しそうです。う〜む。
	 
	追記:現在、もうちょっと調査中ですので、そのうちまとめてアップします。 
	   | 
	| 2005/10/05 | 
	
	 
	 
	PSoC/CY3210-MiniProgとソフトのインストール  |   
	インストールするもの 
	久々のPSoCネタです。$10で手に入れた評価キット(CY3210-MiniEval1)ですが、WinXPのパソコンにインストールしたら、
	以前インストールした時(Win2K)とちょっと違っていたので、手順をメモっておきます。
	 
	  
	これが、付属CDを入れた時に表示される画面です。実行するのは、「Install PSoC Designer 4.2」、
	「Install Service Pack 2(SP2」、そして「Install PSoC Programmer 1.17」の3つになります。
	 
	最初に「あれ〜?」って思ったのが、再起動が無いことです。大丈夫なのかな〜。Win2Kの時は、Designerと
	Programmerをインストールした後に、再起動確認があったのですが、WinXPでは聞いてこないです(うちのだけか?)。
	大丈夫かな〜と思いつつ、適当なプロジェクトを作って実行してみようと思い、USBにMiniProgを挿して見ると…
	 
	こういう時に一番見たくない画面が…
	 
	USBのドライバが入らない? 
	   
	そうです。機器が認識されていないという、ユーザに責任があるのか無いのかよくわからない、この画面です。
	 
	本来だと(前インストールした記憶だと)、上記手順でインストールすると、一発認識していたと思うんですが、
	それが故、何をどうしたらいいのかさっぱりです。
	CDの中を探して見たりいろいろしてみたのですが、さっぱり…。と、思ってたら、ふと思いつきました。
	「MiniProgって、結局、PSoC Programmerでしか使わないんだよね〜」…ということは、
	PSoC Programmerがインストールされているフォルダを探せば何かでてくるのではないかと。で、見つけました。
	 
	そのままデフォルトでインストールした場合ですと、「C:\Program Files\Cypress MicroSystems\PSoC Programmer\drivers」
	というフォルダにドライバが入っています。「新しいハードウェアの検出ウィザード」が開始したら、Windows Updateには接続せずに、
	「一覧または特定の場所からインストールする(詳細)」を選択して、後は、上記のフォルダを指定してやればバッチリです。
	インストールが完了すると、MiniProgに通電されるのか、LEDがチカチカ光ります。よし、これでばっちりですね!
	 
	デバイスマネージャで、「USB(Universal Serial Bus)コントローラ」のところに、
	「USB Mini Programmer」が表示されていればOKです。
	 
	  
	Cコンパイラのライセンスキー 
	2005/07/27の不定期TOPICにも書きましたが、Cコンパイラのライセンスキーは、CYPRESSよりメールで頂きました。
	最近は、ちゃんとすぐに送られてくるんでしょうか?うちの場合は、日本CYPRESSに「まだライセンス来てませ〜ん」
	とメールしたらすぐに来ました。まだ、ライセンスキーが来ていない方は、一度、コンタクトを取られるとよいかと思います。
	後は、Pastel MagicさんのTIPSで紹介されている
	「コンパイラのライセンスキーが入れられない?」を見ながら入力すればOKです。
	 
	三月兎さんからDVD到着〜! 
	家に帰ってきたら、なんと、第8回 ROBO-ONEのDVDが到着していました。どうもありがとうございます〜。
	まずは予選1から、さっそくスタート!…お、いきなりARUMO-SiRだ〜!
	 
	  
	おお、こんなマークが… 
	  
	   | 
	| 2005/10/04 | 
	
	 
	 
	ネジの無いサーボ、RB50をばらして見ました。 
	以前購入して、ARUMO-SiRの頭に使っているサーボである、「RB50」をばらして見ました。結論から行くと、
	全部はめ込みで、特に、サーボホーン側をばらすのが大変でした。それでは、分解ショーの始まり始まり。
	 
	まずは、ギア周り分解にチャレンジ。 
	  
	よく見ると、くぼみがあるので、きっとここから「パチッ」と外れるに違いないと、細いドライバでこじって、えんやこ〜ら。 
	  
	お尻側が外れました。あらら。お尻側は、手で力を入れれば簡単に外れます。 
	  
	まあ、いずれはばらすつもりだったので、よしとして、再び細いドライバでこじること、数分。なかなか外れません。
	お、はずれました。う〜、ケースが傷ついた〜。ここをきれいにはずすのは、難易度高いです。
	 
	  
	というわけで、ギアのアップと、ギアを並べて見ました。出力軸は、このサイズのサーボにはよくあるパターンで、
	ポテンショから軸が出ています。で、ポテンショとそのケースらしきものに出っ張りがついていて、
	可動範囲を超えたときのロックになるようになっています。戻そうと思ったら、ギアがよく似ていて、
	どっちがどれだかわからなくなってしまいました…よく見たら、厚みが違ったので、
	さっき撮った写真を見ながらやれば大丈夫ですした。
	   
	  
	おまけでポテンショの裏側アップ。ポテンショは、ケースに接着剤で固定されています。 
	  
	なんでまた、ばらしたかといいますと…これでギアボックス作れないかな〜と思ってまして。そのためには、
	メカ的に、ちょっとした改造でくるくる回るものになってくれないと困るので、ギアなどを確認したかった次第です。
	軽量サーボの中には、ギアそのものが360度分無いものもあった気がしますので、要注意です。 
	う〜ん、でもやっぱり、ちゃんとビス止めされているサーボがいいな〜。ここまで小さいと無理かな。
	 
	そうそう、しろまさんのところで、
	「萌えデジ」の話がありましたが、一年ぐらい前に掲載許可の話がありまして、結局、どれに載ったんだろう?
	って思ってましたので、所在がわかって良かったです。ありがとうございます。どんな紹介文だったんだろう???
	 
	   | 
	| 2005/10/03 | 
	
	 
	 
	パンチカーペット 
	ロボプロにて、「ロボプロ・アスリート in エキスポランド」が開催されます。
	んで、「パンチカーペットってな〜に?」という疑問が出ると思うので、ここで実際に動かしてみた感想を紹介します。
	ZIPPONさんとこの裏 MAGI(2005/10/02)でも紹介されていますが、この「パンチカーペット」とは、
	なんとかショーとかで、ブースの下に敷いてある、毛足の短いカーペットと同じものだと思います。
	個人的な思い出では、小学生の頃、冷たい体育館の床に直接生徒を座らせるのがかわいそうと思った先生方が、
	床に引いてくれた薄いカーペット…すでにうん十年前の記憶なので、ちょっと怪しいですけど。
	 
	以前、とあるイベントで、たぶん同条件でG-Tuneでも歩かせて見たのですが、
	ちょっと引きずりがあると、ちょっときついですが、すべりはそこそこありますので、引きずり方によっては結構歩けたりします。
	そんなわけで、普通より、少し上から脚を降ろすようにしてやれば、わりと歩けると思います
	(格闘用の横歩きで歩ききったことは秘密)。
	 
	とはいっても、いつもと違う条件で歩かせるのは、なかなか難しく、転んだり、変な方向に行ってしまうこともしばしば。
	そんなときは、子供達の声援に応えて、一芸…をしている場合じゃなくて、がんばって起きあがればそれはそれで楽しいですよ。
	なかなか遠方だと参加しにくいと思いますが、お薦めです。
	 
	   | 
	| 2005/10/01 | 
	
	 
	 
	SRCにエントリ 
	ロボファイト2へエントリしました。
	スタンダードレギュレーションクラスの方です。親睦会は、夜8時ごろまでどっかの駅にたどり着ければ家まで
	帰れそうなので、こちらもエントリー!です (^_^)/。なぜか気力、急にアップ。どうもROBO-ONE終わってから、
	体調もイマイチ(今日も病院へ…)でして、仕事も忙しいで、なんとな〜く、充電状態でして。ははは。
	さて、ARUMO-SiRのメンテをはじめようかな。まずは、ROBO-ONEでやりきれなかったことということで、
	移動速度のブラシアップから。
	 
	  
	追記…と思って張り切っていたら、病院でもらった薬のせいか、夜中までずっと寝てしまいました。
	明日、早起きする事にしよっっと。
	 
	   |