NXTでLEDを制御
NXTの外部に自作のモータやセンサーを接続するための実験。
配線
参考記事を元に、 NXTのアナログポートに、抵抗とLEDを接続。
ANA(1)--1KΩ--LED--AGND(2)
NicoSensor基板では、アナログポートを使わないのでラッピングワイヤで、 ANA(1),AGND(2)をユニバーサル基板領域まで延長し、 ジャンプワイヤで配線できるようにICソケット丸ピンを挿しておく。
拡張ブロックの追加
元記事では、『NXTのサイトから、RCXのブロックを使用できるようにする追加ブロックを入れて…』 と書いてあるので、LEGO(R) MindStorms NXT Software Updatesより、 Legacy Block Library(English) [PC用] をダウンロード&解凍。 すると"Legacy_Blocks_EN-US"というフォルダが作られる。
"LEGO MINDSTORMS Education NXT"を起動し、 "ツール"-"ブロックのインポートとエクスポートのウィザード…"を選び、 "インポート"タグの、"次から読み込み:" の"閲覧"ボタンを押し、 先ほどの"Legacy_Blocks_EN-US"フォルダを指定し、"OK"を押す。 すると、"インポートするブロックを選択してください"と表示されるので、 RCXのブロックで使う"Motor*"と"Lamp*"を選ぶ。 (Ctrlキーを押しながら2つを選ぶ) "パレットにブロックを追加"の欄には、"拡張機能"を選び、 "インポート"ボタンを押すと、ランプ*とモータ*が追加される。
このように機能を追加した後であれば、パーツを指定するタブの"拡張機能"を選ぶと、 "Lamp*"が使えるようになる。
LEDを点滅させてみる
実験として、LEDを1秒周期で点滅させてみる。
無限の繰り返し { // プログラムっぽく表現 Lamp*( Port=A, Action=On, Intensity=50% ) ; 待機( コントロール時間, 1秒まで ) ; Lamp*( Port=A, Action=Off ) ; 待機( コントロール時間, 1秒まで ) ; }
ファイルとC言語
C言語のファイル操作において、絶対PATH,相対PATHの理解は重要であり、 Windowsのコマンドプロンプトを開いて、"C:\WINDOWS\system32\IME\CINTLGNT"あたりを 例題に、相対PATHの親ディレクトリ表記を解説。
c: dir dir \WINDOWS dir \WINDOWS\system32 dir \WINDOWS\system32\IME dir \WINDOWS\system32\IME\CINTLGNT cd \WINDOWS\system32\IME dir dir CINTLGNT # これを絶対PATHでは? dir .. dir ..\.. # これを絶対PATHでは? dir ..\..\system # これを絶対PATHでは?
後半は教室に戻り、FILE型とfopen()の説明を行う。
FILE* fp ; fp = fopen( "ファイル名" , "モード" ) ; fclose( fp ) ; # ファイルを開く際のカレントディレクトリは、通常プログラムファイルのディレクトリ # モードには、"r"読み込み , "w"書き込み , "a"追記がある。
Windows と unix では、行末文字の考え方が違う。 unix では "\n" で次の行の左端に移動するが、 Windows では、"\r"(復改) , "\n"(改行) を送らないと、次行左端に移動しない。 このため、WindowsのC言語と、UnixのC言語の互換性を考え、 「テキストモード」では、"\n"と"\r\n" の置き換えをしてくれる。 「バイナリモード」では、置き換えをしない。