(別室)GNSSのページ
※このページはあくまで個人的な趣味によって書かれており、著者は全ての内容について、いかなる責任も負いません。
このページは、GNSSを使った事例をまとめています。
1.GNSSのページ
GNSS(Global Navigation Satellite System / 全球測位衛星システム)は、GPS、GLONASS、Galileo、準天頂衛星(QZSS)等の衛星測位システムの総称です。
GNSS受信機(GT-730F)の例(秋月電子で購入)
このGNSS受信機は、電源を供給するだけでUARTでNMEA0183の出力をおこなってくれます。
n−blox社の製品の詳細については、
u-blox社のHP
を参照してください。
u−blox社のGNSS受信機(GT-902PMGG)の例(秋月電子で購入)
u−blox社のGNSS受信機をシリアルでつないだイメージ
u−center
Tera Termをつないだイメージ(9600BPS)
Google MAPに表示したイメージ
Google MAPに表示したイメージ
市販のGPSロガーのイメージ
シリアルロガーのイメージ
接続図
電源は車のシガープラグに市販のUSB携帯充電器をつなぐと、5Vが簡単に供給できます。
写真
上記GPSロガーで軌跡を表示したイメージ
準備中
(別室)ラズベリーパイのページ
ラズベリーパイの画面イメージ
準備中
準備中
(別室)milk−V Duoのページ
準備中
(別室)LTE,Wifi,BLEのページ
ESP32は開発ツールが豊富で、何を使って開発してもいいと思いますが、最も簡単な開発ツールはArduinoだと思います。
ただいま、準備中
ただいま、準備中
ただいま、準備中
(別室)メカのページ
メカをマイコンで制御する事例です。
AMAZONで購入したコインスイッチを使ってみました。
準備中
秋月電子八潮店の店頭で、ジャンク扱いで販売されていました。
(別室)Z80のページ
Z80を使った事例です。
秋月電子で「AKI−80(Z80)モニターROM」が500円で販売されていたので、
参考にされる場合は、あくまで自己責任でお願いします。
また、現在準備中の企画についても、仮にこのページにまとめています。
このページで取り上げている準備中の企画は、準備ができましたら、専用のHPに移行していく予定です。
※国土地理院のHPより抜粋
従来から行われているGNSS測位や、精度の高いRTK測位(cm級の精度の高い測量もできる。)があります。
RTK測位は、近似解(Float解と呼ぶ)から真の解(Fix解と呼ぶ)を求めていきますが、Fix解が求まるまでには、かなりの時間がかかるため、
例えば、u−bloxの製品では、1周波のNEO-M8Pや、2周波のZZP-F9P**という製品があり、2周波の製品ではFix解が求めるまでの時間が短くなるために
移動体では位置の精度が高くなります。
USBポートにつなぐだけで、NMEAログを出力します。
(1)n−blox社(M8)を使ったGNSS受信機を使ってみる
開発では、この出力をUARTでパソコンやマイコン等に取り込み、データを抽出し、計算する事で行います。
この計算は算術的なもので、RTKLIBというソースコードが公開されたライブラリも存在します。
なお、この受信機の出力設定はいろいろ変更できますが、UART通信の通信速度のデフォルトは、このモジュールでは9600BPSです。
アンテナの中に受信モジュールが内蔵されていて、秋月電子では2500円程度で購入できます。
裏面にマグネットがついて、コードも1.5メートルあるので、車や窓辺に貼り付けて、
パソコンとUARTでつなぐだけで使用できます。
シリアル出力(NMEA0183)で、電源はDC3V〜5.5Vです。
出力はUARTなので、USB−シリアル変換器をつなぐだけでWindows10 パソコンにつながります。
写真は保護用のダイオードや抵抗、LEDを入れていますが、実際には、Vcc、GND、RX、TXの4点の半田付けをするだけOKです。
「u−center」が、u-blox社のHPより無償でダウンロードできるので、GNSS受信機をつなぐだけで表示が開始されます。
但し、このツールで表示される内容は専門的で、GNSSの基本的な知識が必要です。
出力はテキスト(NMEA0183形式)なので、Tera Termをつないだだけでも、受信した情報が表示されていきます。
この出力は汎用的な形式なので、これをログファイルとして出力し地図上ににマッピングできます。
ただし、もしu−centerで地図上にマッピングするのなら、GoogleMAPの課金手続きが必要になります。
例えば、GNSS受信機が出力したMNEAファイルを、ツールでKMNファイルに変換すると、Google MAPに無償で表示できます。
この受信機の誤差は最大2mとの事でしたが、受信機を定位置に置いているにもかかわらず、MAPのように最大5m程度ずれていました。
カーナビは地図の道路情報で位置を補正しているので、生データでこの精度なら、カーナビよりはいいのかも知れません。
このGNSS受信機で使っている衛星「みちびき」は、GPS(米国)のような衛星ではなく、GPSのデータを補完するためのものです。
ノートパソコンにログを取りながら、実際に車で移動してみました。カーナビに比べてかなり精度は高いようです。
国道の上り下り車線も、右折レーンで徐行や停止している状態も、地図上に表現されています。
但し、プロット数があまり多いとGoogle MAPではプロットが最初の2000件しか表示されません(走行軌跡は表示されます)。
また、Google MAPでは一度に取り込めるMNEAファイルの制約が5Mバイトなので、1つの地図に全ての走行軌跡を表示するなら
レイヤ分けして取り込む必要があります。
フリーの間引きツールもありますので、これを使ってもいいと思います。
(1−A)事例1:GPSロガーにしてみる
上記のように、このモジュールをパソコンにつないでMNEAファイルを作成し、これをツールでKMNファイルに変換して、軌跡を表示しても
よいのですが、これでは、ノートパソコンを持ち歩かなくてはなりません。
こんな時は、受信機の出力をシリアルロガーでSDカードに保存し、このSDカードに保存したMNEAファイルをパソコンに取り込んだほうが、
便利です。
シリアルロガーは、安いものでは1000円以下で購入できます。
この場合、他に必要なものは、データーを保存するSDカードくらいです。
シリアルロガーは、例えばPICマイコンを使って作る事も出来ますが、購入しても安いので、購入してしまったほうがいいかも知れません。
私が購入したシリアルロガーは、アマゾンで1000円くらいで購入できるもので、説明の必要がないくらい簡単に使えます。
フォーマットしたSDカードをシリアルロガーに挿入して電源を入れると、SDカードに自動的にconfig.txtというファイルが作成されます。
このシリアルロガーの通信速度のデフォルトは9600BPSですが、例えばこの設定を変えたい時は、このSDカードをパソコンに挿入して、パソコンの
テキストエディタでこのファイルを編集します。
シリアルロガーの電源を入れ、通信を開始すると、LEDが点滅し、SDカードに自動的にLOG00000.txtというファイルが作成されて、このファイルに
ログが保存されていきます。
もし、シリアルロガーの電源を入れなおすと、入れなおす度に、LOG00001.txt、LOG00002.txt・・・・・・と保存されるファイル名がカウントアップ
されていきます。
なお、このシリアルロガーの回路図とファームは一般に公開されていて、部品を集めて作る事もできるのですが、コンパイルするためには「Arduino
IDE 1.6.5」という古いバージョンのArduino IDEのが必要なようで、
Windows10パソコンでは動作しないようです。
私がAMAZONで購入したシリアルロガーの中には、このファームを自分で書き込むようになっている製品がありましたが、
私はすでに古いパソコンは持っていないので、ロガーの買い直しが必要になりました。
AMAZONで購入する時の説明には、この説明はありませんでしたので、注意したほうがいいと思います。
登山やサイクリングが好きな人には、GPS受信機とロガーが一体になった専用のGPSロガーも市販されています。
これは、USBポートにつなぐだけで充電可能で、大きさがUSBメモリー程度しかないので、実際に使われる場合は、こちらもお得です。
専用の地図ソフトで軌跡を表示できるので、思い出の走行ルートをデーターとして残す事ができます。
秋月電子で4000円くらいで購入できます
このシリアルロガーはアマゾンで購入したもので、1000円以下ですが、64GバイトまでのSDカードを使用できます。
SDカードを挿入し、電源を入れるだけで使えます。
シリアルロガーとして使うだけなら、必要な配線は、VCC,GND,TX,RXの4本のみです。
もしArduinoでファームを更新する必要があるなら、DTRの配線も必要なので、必要な配線は5本になります。
ただし、この場合は「Arduino IDE 1.6.5」という古いバージョンが動くパソコンが必要です。
簡単な接続で本格的なGPSロガーになります。
車のキーがONの時だけ、走行ログが取れます。
実験でGPSロガーを作ってみました。
電源を車のシガプラグから取りたかったので、携帯電話の充電用に市販されている「シガプラグ―USB充電器」を使って、
USB充電器から5Vを供給しています。車のキーをONにしてシガプラグに電源が供給されている間、ログを取り続けます。
車のキーをOFFにするとログを停止して、再度電源をONにすると、ファイル名がカウントアップされてログを取り続けます。
情報量にもよりますが、4GバイトのSDカードで1000時間以上はログが取れそうなので、通常の用途では十分だと思います。
Rx,Txはクロスさせる必要があるので、注意が必要です。
●上記GPSロガーの使い方(事例1)
(1)上記GPSロガー ※秋月電子で購入した「u−blox社のGNSS受信機(GT-902PMGG)」にAMAZONで購入したシリアルロガーをつないだもの
からSDカードに保存されたテキストファイルをパソコンにコピーします。
(2)(1)のテキストファイルはMNEAファイル形式なので、フリーの変換ソフトを使用して、これをKMNファイルに変換します。
フリーの変換ソフトは、検索するといろいろ出てきますが、何でもOKだと思います。
(3)Webブラウザーから、Googleマップを開きます。
(4)Googleマップの「メニュー」--->「マイプレイス」--->「地図を作製」--->「インポート」と選択し、(2)で作成したファイルを読み込ませます。
※この操作には、事前にフリーのGoogle-IDを作って、Googleにログオンしておく必要があります。
(5)走行軌跡がGoogleマップ上に黄色で表示されます。
(1−B)事例2:RTKLIBを使ってみる
RTKLIBを使って、アプリケーションを作る事例です。
この項目は、準備が出来ましたら「(別室)ラズベリーパイのページ」に移動します。
(1)Raspberry Pi Zero WHを使ってみる
ラズベリーパイを使うために、まずはシステムディスク(SDカード)を作る必要があります。
Raspberry PiのSDカードは、Windowsとはファイルシステムが異なるので、Windowsパソコンのエクスプローラ
からでは、正しくアクセスはできません。
私の場合は、自分用の基本的な機能を組み込んだSDカードを作っておいて、これを「Win32 Disk Imager」というツールを使って、
パソコンにイメージバックアップしておいて、あとは必要な都度、このイメージファイルを空のSDカードにコピーして起動ディスクにしています。
イメージファイルは、バージョンをいくつか用意するとパソコンのハードディスクを数百Gバイトも使ってしまうのですが、
システムディスクの作成が単なるイメージコピーになるので作業が楽です。
ラズベリーパイで使えるOSはいろいろありますが、私は、ラズベリーパイの公式OSであるRaspbianを使っています。
他のOSは使っていませんが、Webブラウザーやオフィースソフトも初めからインストールされていて、小型のパソコンのような感覚です。
但し、これらのアプリケーションを使う事が目的であれば、「Raspberry Pi Zero WH」では処理が重すぎて使いずらいので、
最新で高性能なラズベリーパイ(この原稿を書いている時点ではラズベリーパイ4)を使ったほうがいいと思います。
ラズベリーパイがWifiがつながっていれば、同じWifiにつながっているパソコンから「Tera Term」のようなターミナルソフトで
操作する事もできます。
ラズベリーパイは、必ずしもパソコンにつなぐ必要はありませんが、パソコンを使いながら作業する事は多いと思うので、Windowsパソコン
から使えるのは便利です。
なお、「Raspberry Pi Zero WH」にはLANコネクタがありませんが、Wifiを使ってインターネット接続している人には、
これだけでも、基本的な操作では不自由はしないと思います。
ラズベリーパイにはインターネット接続は必須です。
インターネット上に豊富なライブラリがあり、ほとんどの作業の場合、これをサイトからダウンロードする必要があります。
例えばI/Oポートを操作するとか、日本語を使うとか、そんな基本的な操作でさえ、インターネットからライブラリーをダウンロードして組み込ま
ないと使う事ができません。
いきなり電源を切るとSDカードの情報が壊れるかもしれません。
終了する場合は、shutdown -h now コマンド等でシステムを終了しておく必要があります。
写真
「Raspberry Pi Zero WH」に、ディスプレイ(HDMI)、マウスとキーボード(USBハブ経由)、
DC5V電源(USBポート)をつないだイメージ
システムイメージ
ラズベリーパイの基盤上には、他にカメラ接続用のコネクタもついています。
PORTの確認用にLEDをつないだイメージ
シェルスクリプトやC言語、MicroPython等で簡単にLチカできます。
背景の風景の壁紙は、ラズベリーパイにデフォルトでついてきたものです。
Windowsパソコン(TeraTerm)から、ラズベリーパイを操作するイメージ
WiFiでTCP/IPで接続する場合、デフォルトでは、ホスト名:raspberrypi.local、TCPポート:22、サービス:SSH、
ユーザー名:pi、パスワード:raspberryです。
(2)Raspberry Pi Picoを使ってみる
「Raspberry Pi Pico」は、組み込み型のマイコンで、ラズベリーパイのOSは動きません。
「Raspberry Pi」や、「Raspberry Pi Zero」とは全く異なるものです。
開発は、Raspberry Piのほか、Windows10パソコンのUbuntuで行うこともできます。
私は、インターフェース誌を参考にして、Ubuntuでの開発環境を用意しました。
写真
ボード上のボタン(BOOTSEL)を押したままUSBに接続すると、Windowsパソコンから外部デバイスとして認識されます。
ラズベリーパイのHPからLチカサンプルをダウンロードしてここにコピーし、電源を入れなおすとボード上のLEDが点滅します。
この項目は、準備が出来ましたら「(別室)milk−V Duoのページ」に移動します。
(1)milk−V Duoを使ってみる
milk−V Duoは、安価で小型ながら、Linuxが動作するRISC-V評価ボードです。
例えば秋月電子では、Milk-V Duoが1420円、メモリーが256MBにアップグレードされたmilk-V Duo 256Mで2300円で購入できます。
※2024年5月現在
Linuxを動かすために最低限必要なものは、パソコンと、このボード(本体)、1GB以上のMicroSDカード、USBタイプCケーブルのみです。
このボードは、Linuxを動かすまでなら、このボードを初めて使う人でも、ボードを購入してから1〜2時間もあれば、おそらくLinux
を動かす事までがきます。
詳細は、
milk−Vのサイトに書いてありますが、必要な作業は下記の通りです。
1.「Boot the Duo」の手順に従ってSDカードを作成して本体に挿入し、USBから電源を供給すると、10秒程度で
青色のLEDが点滅します。
私が使用したバージョンでは、書き込むファームはMilk-V Duoボードの時は、milkv-duo-v1.1.0-2024-0410、
milk-V Duo 256Mの時は、milkv-duo256m-v1.1.0-2024-0410でした。
2.1の状態で「Setting UP」の手順に従って、パソコンのUSBのドライバーを設定します。
3.例えばTeraTERM等で、このボードに接続すると、Linuxのコマンドが操作できます。
IP:192.168.42.1 ユーザー名:root パスワード:milkv
なお、サイトでは、Milk-V DuoがDuo(CV1800B)、milk-V Duo 256MがDuo256M(SG2002)と記述されています。
写真
「milk−V Duo」と「milk−V Duo 256M」の写真
基板上のMPUの大きさに違いがありますが、見た目はほとんど同じに見えます
USBケーブルでパソコンと接続すれば、
SSHで、IP:192.168.42.1 ユーザー名:root パスワード:milkv でログインできます
このページは、準備ができましたら、「(別室)LTE,Wifi,BLEのページ」に移動します。
ESP02やESP32は、低価格、かつ容易にWifiやBLEとの通信システムが作れるので、IOT分野では広く使われているようです。
現在ではLTEで使えるSIMも安くなり、こういう分野のアプリケーションを作るのも容易なようです。
ここでは、主に、LTEやWifi,BLEの活用事例を取り上げていきます。
●用意した開発環境
1.Arduino ・・・・・ 最も簡単で扱いやすい開発環境だと思います。
サンプルプロジェクトも豊富に用意されているので、これを修正したり、そのまま書き込むだけでも簡単な動作確認ができます。
2.Segger Embedded Studio
・・・・・ Noldicの開発ではSDKが無償で提供されていて、本格的な開発に使用できます。
このSDKに含まれるサンプルは豊富で、多くの場合、このサンプルを修正するだけでもプログラムの開発ができるのですが、
NoldicのSDKは、このツールの古いバージョンで作られているようで、現時点の最新(6.34a)でビルドすると、
プロジェクトによってはエラーが多発する事があります。
こういう場合はエラー箇所を1つずつ手直しする必要があるようです。
Segger Embedded Studioのビルドイメージ
sesというフォルダーに入っているものが、Segger Embedded Studioのサンプルです
Noldicの場合、SESのライセンスは無償で取ることができます
ライセンスの申請をすると、ライセンスは瞬時にメールで送られてきます
3.nRFgo Studio
・・・・・ Noldicのコアチップの内部メモリを読み書きできるツールです。
Programingを選択し、開発ボードが認識されると、SoftDevice,Application,Bootloader
の選択タグが表示されるので、書き込むファイルを選択してProgramを押すとコアチップに書き込みが行なわれます。
nRFgo Studioで開発ボードに書き込んでいるイメージ
(1)nRF9160−DK(Noldic社)を使ってみる
nRF9160−DKは、LTE-M、NB-IoT、及びGPS用のnRF9160 SIPの評価及び開発を行うためのもので、
nRF52840ボードコントローラも備え、Bluetooth Low Energyゲートウェイの構築などに使用できます。
幅広い帯域に対応する専用のLTE-M / NB-IoTアンテナを備えており、世界中で動作します。
※注)文面は販売メーカーの資料より抜粋
キットにはsimが添付されていて、いろいろなアプリケーションが作れそうです。
このボードは、J−LINKが内蔵されていて、パソコンとUSBで接続するだけで開発できます。
このボードの詳細や購入はWebで容易に見つけられますが、価格は2万円超くらいします。※R04年8月現在
資料やサンプルはWebから入手できます。
SDKを使用するには、PYTHONが一般的なようですが、アプリケーションの開発には専門的な知識も必要となり、
根気は必要なようです。
この詳細は、
NORDIC社のHP
で詳しく説明されています。
nRF9160−DKキットの写真
ただいま、準備中
(2)nRF52840(Noldic社)を使ってみる
(2−1)Seeed XIAO BLE nRF52840ボード(Seeed Studio社)を使ってみる
このボードは、Nordic社のnRF52840を積んだもので、秋月電子で2000円程度で購入できます。※R04.09.01現在
BLEの実験用に購入したものですが、他にもいろいろ使えそうです。
秋月電子のHPを抜粋すると、このボードの概要は下記の通りです。
・開発: Arduino、MicroPython、CircuitPython、Codecraftグラフィックプログラミング、その他
・プロセッサ:Nordic nRF52840M4F(ARM Cortex-M4 FPU内蔵 @64 MHz)
・無線機能: Bluetooth 5.0/NFC/Zigbee(オンボードアンテナ)
・メモリ: 1 MB flash & 256 kB RAM(オンチップ)、 2 MB QSPI flash(オンボード)
・インターフェイス:UART、IIC、SPI、NFC、SWD、11xGPIO(PWM)、6xADC、RGBLED、ユーザーLED、リセットSW
nRF52840ボードの写真
nRF52840ボードのイメージ図(メーカーのHPより抜粋)
ArduinoのLチカサンプルを、そのまま動かしてみました
詳細は、
https://wiki.seeedstudio.com/XIAO_BLE/で説明されています。
他にもいろいろなサンプルが入っているので、実験してみると面白そうです。
このボードはUSBケーブルでつないだだけでは、COMポートが認識されない事があるようです。
この場合、USBコネクタの隣にあるRSTスイッチ(小さくてわかりにくい)をダブルクリックすると、認識されるようです。
USB3.0コネクタでパソコンとつないで、ArduinoでLチカサンプルを書き込んでやれば、
USBコネクタの右隣にあるLEDが1秒程度の周期で赤点滅します
ただいま、準備中
(2−2)nRF52840使用BLEマイコンボード(株式会社秋月電子通商)を使ってみる
このボードは、MDBT50Q-1MV2モジュールを積んだもので、秋月電子で2000円程度で購入できます。※R05.03.01現在
BLEの実験用に購入したものですが、他にもいろいろ使えそうです。
nRF52840ボードの写真
ArduinoのLチカサンプルを、そのまま動かしてみました。
詳細は、秋月電子のHP(ボードマネージャー導入方法)に記載されています。
但し、以下の注意点があります。
1.このボードはUSBケーブルでつないだだけでは、COMポートが認識されませんでした。
ボード上のリセットスイッチをダブルクリックすると、認識されるようになりました。
2.秋月電子の「ボードマネージャー導入方法」の手順では、インストールする手順が抜けているので注意が必要です。
3.秋月電子の回路図を見るとLEDは、D13につながっていますが、
Arduinoの「feather_nrf52840_express」のボード定義(variant.h、variant.cpp)を見ると、
LED_BUILTIN(LED1)は、D3(P1.15)です。
よって、ArduinoのLチカサンプル「blink」をそのまま書き込んでも、Lチカはしません。
variant.h、variant.cppを書き換えるか、上の図のように、スケッチの「LED_BUILTIN」を「13」に書き換える必要があります。
(3)nRF52832(Noldic社)を使ってみる
(3−1)FEASYCOM nRF52832ボードを使ってみる
このボードは、Nordic社のnRF52832を積んだもので、700円程度で購入できます。※R04.09.01現在
メーカーのHPによると、このモジュールの仕様は下記の通りです(HPをそのまま抜粋)。
ブルートゥースモジュール: FSC-BT630
ブルートゥースバージョン: BLE 5.0モジュール
CHIP : Nordic nRF52832
サイズ : 10mm * 11.7mm * 1.7mm
プロトコル : GAP、 ATT、 GATT、 SMP、 L2CAP
周波数 : 2.402-2.480 GHz
送信電力 : +4dBm(最大)
電圧 : 1.7-3.6V
アンテナの種類 : セラミックアンテナ内蔵、外付けアンテナ対応
FEASYCOM nRF52832のイメージ
ピンレイアウト(データシートより抜粋)
ただいま、準備中
(4)ESP02(ESP−WROOM−02)を使ってみる
簡単な実験ボードを作ってみました。
但し、こういうボードは、USBシリアル変換や、リセットスイッチのついたボードが1000円程度で購入できるので、
このような手間をかけるなら、そういうボードを購入してしまったほうがいいかも知れません。
写真
回路図
右側のTX,RXをUSBシリアル変換器を通してパソコンにつなぎます。
USBシリアル変換やリセットスイッチのついたESP8266ボードも500円程度で市販されています
このボードの場合、他に必要なものはUSBケーブルのみで、最低限の開発ができます
このボードは、初期状態でATコマンドが使えるアプリケーションがインストールされていますが、アプリケーションを書き込んでしまうと
このファームが書き換えられて、ATコマンドが使えなくなってしまいます。
ATコマンドを使えるように戻すには、アプリケーション書き込んで初期状態に戻すか、ATファームをインストールするか等の対応が必要に
なるようです。
ArduinoによるLチカイメージ
Arduinoを使った開発では、基本的な操作は、サンプルスケッチが用意されています。
サンプルスケッチをそのままコンパイルして書き込むだけも、基本的な機能は実現できます。
ただいま、準備中
(5)ESP32を使ってみる
Espressif Systems社が提供している純正開発ツールでは、ESP−IDFがあり、基本的な機能は
サンプルプログラムが提供されています。
他に、MicroPythonも、ESP32の開発ではよく使われているようです。
ESP32
パソコンのUSBにつなぐだけで使用できます。AMAZONで1000円程度で購入できます。
ArduinoによるLチカイメージ
Arduinoやドライバーの設定については、ネット上に多くの情報があります。
設定後に、Arduino IDE の「メニュー」==>「ツール」==>「ボード」==>「 ESP32 Dev Module」と選択すれば、
ArduinoのLチカサンプルスケッチ(blink)が動作します。
書き込みが終了すると、何もしなくても、LEDが点滅を開始します。
このスケッチは、ポート番号だけ、実際にLEDをつないだポート番号に合わて修正する必要があります。
ESP−IDFによるLチカイメージ
ESP−IDFの設定や使い方については、 こちらのHPを参考にさせていただきました。
Lチカサンプルは、「Get−started」の「blink」になります。
ポート番号は、実際にLEDをつないだポート番号に合わて修正する必要があります。
MicroPython(uPyCraft)によるLチカイメージ
MicroPythonのファームはESP32に事前に書き込んでおく必要があります。
詳細は、 こちらのHPを参考にさせていただきました。
GUIは、いろいろ種類がありますので、uPyCraftでなくても、使いやすいものでいいと思います。
(6)XBeeを使ってみる
XBeeには、通信方式が
ZigBeeタイプ
(XBee ZB)と、
WiFiタイプ
(XBee WiFi)
があるので、
注意が必要です。
XBeeのイメージ(XBee WiFi)
(7)RN42を使ってみる
秋月電子で販売されているRN42モジュール(2種類)を使ってみました。
RN42を使うと、容易にBLE通信ができます。
〇共通仕様 (秋月電子のHPより抜粋)
・Bluetooth :2.1+EDR
・プロファイル :GAP・SDP・RFCOMM・L2CAP・SPP・DUN
・インターフェイス :UART
・デジタルIO :10
・電源電圧 :3〜3.6V
・送信電流 :30mA
・待機電流 :26μA
・周波数 :2.4GHz
・受信感度 :-80dBm
・送信出力 :2dBm
・通信距離max. :20m
・通信速度max. :3Mbps
・動作温度min. :-40℃
・動作温度max. :85℃
RN42のイメージ
写真左のタイプ(秋月電子 RN-42 Bluetooth 2mmピッチ変換モジュール)は、上のXBeeと基板の寸法が同じです。
写真右のタイプ(秋月電子 RN-42 Bluetooth無線モジュール評価キット)は、USBコネクタにつなぐだけで使用できます。
この項目は、準備が出来ましたら「(別室)メカのページ」に移動します。
(1)コインスイッチ
硬貨が挿入されると挿入された硬貨を識別して、スイッチを入れ、硬貨がボックスに入ります。
設定されたコインと異なる硬貨が挿入れると、返金口から返金されます。
内部に設定するコインと同じものを入れ箇所があり、コイルで磁力を加えて、設定されたコインと挿入されたコインが同じかどうか比較して
コインをチェックしているようです。
AMAZONで購入したコインスイッチの例
(2)電磁カウンタ
DC12VをON/OFFする毎に1カウントするもので、カウント動作はそれなりに確実でした。
いろいろ応用できそうです。
写真
●電源の遮断回数計測カウンタ
この記事は、
(別室)レトロのページにあります。
この項目は、準備が出来ましたら「(別室)Z80のページ」に移動します。
(1)AKI−80(Z80)モニターROM
しばらくぶりにAKI−80を動かしてみました。
このモニターROMには、「Lチカプログラム」と、「モニタプログラム」の2つのプログラムが組み込まれていて、
回路図中のSW1をGNDにつないで立ち上げると「Lチカプログラム」となり、
回路図中のSW1をVCCにつないで立ち上げると「モニタプログラム」となります。
「モニタプログラム」のほうは、パソコン側のソフトウエア(Z-VISIONリモート、BASICインタープリタ)についての記述がありますが、
このパソコン側のソフトウエアは、現在(R4.10.1)では入手困難な上、仮に入手できたとしても、
かなり旧型のパソコンでないと動かないかも知れません(私は入手もテストもしていません)。
私がZ80の開発を行っていた頃は、パソコンというと、PC−98やDOS/Vパソコンが主流の時代でした。
このモニターROMの中にはBASICインタープリタも入っていますので、
パソコン側のソフトウエアはなくても、このモニタプログラムをUARTでパソコンのTERA−TERMと接続するだけで、
AKI−80上で「BASIC」が使えます。
初期のZ80の時代のパソコンは、電源を入れるとOSではなく、BASICが立ち上がりましたが、同じようなイメージです。
電源を入れて「Enter」キーを押すとキャレットが表示されて「BASIC」インタプリタが起動しています。
この状態でプログラムを入力して、「run」とキーインすると、プログラムが動作します。
「CTRL」キーと「C」キーを同時に押すと、プログラムが止まります。
昔のBASIC言語なので、コマンドの先頭には行番号が必要です。
AKI−80(ゴールド)の場合は、水晶は、ふつうは、最速となる24.576MHzを使っていると思いますが、
このアプリでターミナルツールでつなぐ場合は、水晶を19.6608MHzに交換して、TERA−TERMのボーレートは9600BPS
に設定する必要があります。
回路図は、「AKI−80(Z80)モニターROM」の説明書の通りです。
今ではZ−80マイコンは古すぎて、ボードを動かす事すら難しくなっているので、「Lチカプログラム」もAKI−80ボードの正常確認用
という意味では、いいかも知れません。
秋月電子では、他にCD−ROM(Cコンパイラセット)のついたキットも販売しています。
私の場合は、手持ちのROMライターの制御ソフトが旧式すぎて、AKI−80のソフトウエアを開発しても、
現在のパソコンではROMに書き込む方法がありません。
そういう理由で、このCコンパイラは購入していませんが、今でも動かすことができるROMライターを持っている人には
開発ソフトはいいかも知れません。
但し、このCコンパイラは、Windows10/11パソコンで動くかどうかは試していないので分かりません。
写真と回路図1(SW1をGNDにつなぐと、1秒間隔でLEDが点滅します)
写真と回路図2(SW1をVCCにつなぐと、モニタプログラムが起動します)
回路図のTx、Rxラインを、USB−TTLシリアル変換器を通してパソコンのTeraTerm等につなぎます。
私は、USB−TTLシリアル変換器は、AMAZONで数百円で購入したFTDI232を使用しています。
このシリアル変換器は、格安ながら、Arduinoにもそのまま使える便利なものです。
Z80の電源を入れる前に、シリアル変換器をつないでTeraTermを立ち上げておきます。
ADM3202やMAX232のようなものを使って、Z80の起動と同時にシリアル変換器にも電源が入るようにしてしまうと動かないようです。
モニターROMのプログラムは、ターミナルソフトで動くという違いはありますが、見た目の操作は昔のZ80系パソコンとほとんど同じです。
TERA−TERM(モニタプログラムが起動したイメージ)
TERA−TERMを使って、AKI−80上でBASICを動かしているイメージ
昔のパソコンとほとんど同じ操作なので、BASICを使った事があれば、操作やコマンドの説明は不要かと思います。
昔のパソコンは、現在のような便利なスクリーンエディタはなく、BASICはこんなふうに入力して動かしていました。
昔のパソコンもそうでしたが、このプログラムはZ80のRAM上で動いているので、入力したプログラムは、電源を切れば消えてしまいます。
昔のパソコンではBASICで作ったプログラムを、カセットテープやフロッピーディスクに保存して、動かす時にロードして使っていましたが、
その頃のレトロで懐かしいイメージです。
BASIC言語のPOKE文を使えば、AKI−80のRAM上で動作するマシン語プログラムを作る事ができます。
簡単なプログラムなら、アセンブリ言語で書いて、これをハンドアセンブルして、POKE文で書き込めます。
昭和の昔には、一般的に行われていた手法ですが、この方法ならROMライター等の追加のハードウエアは不要です。
電源を切れば書いたプログラムは消えてしまいますが、Z80の実験にはいいと思います。