Bluetooth制御マシン

私は息子にプログラミングを紹介したいとずっと思っていましたが、どうすればいいですか?

BASICとPascalで勉強していた時代は終わりました。 私は彼にターボパスカルを見せようとしました-何かが判明し始めたように見えましたが、どういうわけかそれはそれ以上進みませんでした...



私は、子どもたちの言語デザイナーであるスクラッチと知り合いになってから、次の試みをすることにしました。 これは言語ではありません。画面上で「ブロック」をドラッグアンドドロップし、それらを相互に接続してスクリプトを作成する手段です。 今では状況は改善されています。 子供は簡単なゲームさえ作ることができました。 しかし、先に進む必要がありますか?







どういうわけか「プログラミング」を多様化するために、タイプライターを作成するというアイデアを思いつきましたが、その動作はScratchのコンピュータープログラムから制御できます。 つまり、子供が何らかの形でマシンの動作のロジックをプログラムできるということです。



Scratchプログラミング環境自体には、このための手段もあるようです。シリアルポート経由でコンピューターに接続された特別なScratchBoardまたはSesorBoardボードがあるようです。







このScratchBoardボードは、一部のセンサーの値をコンピューターに送信できます(4つのアナログセンサーA、B、C、D、光センサー、音センサー、ボタンなど)。 1つのコンピューターからボードへのコマンドは、1つのモーターに送信できます:「オン」/「オフ」、方向「そこ」/「戻る」、0〜100の電源。スクラッチ環境でモーターを制御するプログラム(スクリプト)







レゴブロックを連想させる何か-あなたは異なるブロックを接続し、プログラムを取得します。 子供はうまくマスターするかもしれません。



実際には、何かを動かすというアイデアがありましたが、スクラッチプログラムから制御されていました。



すぐにいくつかの問題があります。 最初の問題は、移動中のマシンをコンピューターに接続する方法です。ワイヤーは明らかに適切ではありません。 2番目の問題は、Scratchがこの唯一の方法を理解しているため、接続が「シリアルポート」の形式でなければならないことです。 3番目の問題は、両方向のデータ転送プロトコルを知る必要があることです。 4番目の問題は、Scratchが1つのモーターしか知らない場合にマシンを制御する方法です。 5番目...問題をリストするのに十分です! それらを解決する必要があります!



1. BluetoothモジュールLMX9838を購入しました。 このチップは、電源を入れるとすぐに使用できる状態になり、仮想シリアルポートの形でコンピューターから接続をすぐに確立できるため、優れています。 ワイヤレスとCOMポートの2つの問題がすぐに解決されます。 このモジュールをスカーフにはんだ付けする方法については、 こちらをご覧ください 。 BGAチップは下からのすべてのピンですが、幸いなことにほとんどのレッグは使用されていません。 チップを裏返して上から配線をはんだ付けすると、作業が大幅に簡素化されます。 結果はそのようなモジュールです:







2. Googleを使用して、日本のサイトでScratchプロトコルの説明を見つけました。 今、あなたはすでにロシア語で 、彼自身をよりよく知ることができます。



3. ボード「Mars rover」を取りました-これはFPGAアルテラの「電子設計者」です。 シリアルトランシーバーを実装し、スクラッチプロトコルを使用してデータを送受信し、モーターを制御するFPGAでプロジェクトを作成および縫製しました。 また、火星探査機は2つのフォトトランジスタをボードに接続しました-これらは機械の「目」になります。 私は彼らを地面に向けた。 彼は、たとえば何らかの障害物が描かれる白い紙の上を機械が動くことを計画しました。 実際、これらのセンサーは値を「暗い」または「明るい」とし、センサーの読み取り値「C」および「D」として、それらをScratchに送信します。







4. 2つのモーターを制御するために、「出力」などのパラメーターを使用することにしました。 スクラッチスクリプトは、ScratchBoardを介して接続されたモーターに電力を設定できます。 そう決めた。 電力がゼロの場合、最初のモーターが作動し、2番目のモーターは作動しません。 電力が50の場合、両方のモーターが作動します。 電力が100に設定されている場合、2番目のモーターは動作しますが、最初のモーターは動作しません。 もちろん、非常にエレガントではありませんが、状況から何らかの形で抜け出します。 コマンド「モーターオン」でオンになり、コマンド「モーターオフ」でオフになります。



まあ、それがすべてです。

マシンアセンブリ全体は次のようになります。クローラートラック上のプラットフォーム上の2つのモーター、火星ローバーボード、光学アイセンサー、およびBluetoothモジュール。 大きな紙の上に、黒いガッシュで8枚描きます(乾燥するように)。



子供はスクラッチでプログラムを作成します-このようなもの:







次に、タイプライターをオンにして、コンピューターとタイプライター間のBluetooth通信を確立します。 そして、Scratchプログラムを実行します。マシンはストリップで移動し、Scratchプログラムがこのロジックを設定します。







PS:翌日、アイデアが浮かびました。 Bluetoothを搭載したマシンがあります。 携帯電話から制御できますか? 夕方までに、私のnokiaのJavaプログラムの準備ができました!







Sun Wireless Toolkitを使用して作成しました。 このプロジェクトの詳細については、 こちらをご覧ください 。 Javaプログラムのソースもあります。



All Articles