MZ-80 パソコン開発物語

今だから話せる、パソコン開発記録を連載します。 感想をコメントに残して頂けたら 嬉しい・・。

全体表示

[ リスト | 詳細 ]

記事検索
検索

XBee JPEG カメラ

イメージ 1

JPEGカメラとXbeeの組み合わせで、遠隔ビューを作ってみよう・・
( XBee proなら、バッテリか太陽電池で、5〜600m程離れていても通信が出来るそうな・・)

取りあえず、LinkSprite JPEGカメラで、直接PCと接続してみました。

カメラは、baud rate 38400、画素は最低のQQVGA(160*120)に設定
モニターは、C#2008 Express Editionで、作成しました。
受信した画像は、余りに小さいので、倍の320*240 QVGAに拡大表示しています。

画像要求コマンドで、約1秒以内で表示されます。(JPEG deta 3.628Kbytes)

今後、XBeeでの、転送に進みたいが、もっとボーレートを上げる必要があるので
取りあえず、PIC 18F26J50を手配し、現在入荷待ち・・(チップワンストップから・・)

18F26J50は、ハードでURAT 2PORTあり、またRAMが3Kほどあるので、JPEGのデータ
取り込みとXBeeへの転送で、かなり 行けそう・・

段々 MZ80レプリカより広がりつつありますが・・時代の流れでしょう???。

物騒な昨今、離れた場所、倉庫などの状況を 見れるモノが出来れば、
少しは、犯罪の抑止力となれば良いな・・と思います。

( カメラは、VGA( 640*480)サイズも可能ですが、
スピードと異常状況の察知と割り切れば 今、映っている画像でも良いかな・・)

XBee スターターキット

イメージ 1

前回 Firemware書き込みでトラブルとなりましたが、 
メーカへの問い合わせの結果、対処法を教えて頂きました。

結論としては、現在のXBeeのFiremwareが、ATかAPIか?UART条件を合わせ、X-CTU を途中で
ハンド処理を行いながら、書き込む。
即ち、現在ATモードでAPIモードのFiremwareを書き込む場合、最初 ATモードで書き始め
途中で書き込みをAPIに変更するハンド処理行う,複雑さ・・・

一般に、Firemwareの書き込みは、強制的に書き込みを実行し、リセットで動作を開始すると謂う事に
慣れている者にとっては、いささか・・・大変だね。

まあ、 吹っ飛んでいたFiremwareが、回復したので、スタータキットを手作りをしました。

"Hello world"じゃないけれど、単純に、Coordinater と End Deviceの組み合わせで 
透過モードでリターン動作が出来ました。
これから、本格的に?? 検討かな・・・

写真 左 PCと接続し、ローダー 兼 XBee端末(Coordinater)
    右 XBee End Device( RX,TX接続し、return に設定)

イメージ 1

XBee Pro 2個を入手し、AT透過モードで ループバック・テスト動作させていたが、
APIモードに変更すべくFirmwareの書込みをしたところ、エラーとなってしまった。
再書き込みでUARTが受け付けず、ブートローダーが働かない。
ブートローダーは、ハードスイッチもなく、ボーレート設定があいまいで、手段にも問題ありそう。

ネットで調べると、Firmware 書込み時エラー、UART通信が不能となる事故が、かなり書き込まれている。
対処の書込み有るが・・モジュールを途中で、端子に差し込むとか・・あまり論理的でない話でもあり、
何回か しつこく試すと良いなど・・・ 俺も当然、やってみたけど・・ 現時点 駄目が続いている。

うまくいったとか、3個中1個は回復したとか・・、癌になった時に頼る 民間療法のようなだな・・

一部 ブログでも報じられているし・・sparkFunとかDigiメーカのForumにも書き込まれているが・・
論理的に明解な リカバリー対応とかFactoryResetが Digi Internationalからの情報がない。
 (サーチが下手なのか? 見つからない。)
Firmwareの回復を、色々(民間療法で)やってみて だめなユニットは、あきらめろという状態なのか?

そんな事ないと思うけど・・・ 一度 Digi Internationalに問い合わせをしよう。

ARM 浮動小数点演算

イメージ 1

STBeeを使用して、BASICインタープリタの製作を進めています。
開発は、Sourcery G++Liteですが、ハード演算部を使うようになっている模様・・
コンパイルで、四則計算が、__aeabi_dxxx 未定義の連続・・対処法があるだろけれど・・・

結局 64ビット、浮動小数点演算を作ってしまいました。
signed int compDouble( double X, double Y);....浮動少数の大小比較
double doubleADD( double X, double Y);.........浮動小数の加算
double doubleSUB( double X, double Y);.........浮動小数の減算
double doubleMUL( double X, double Y);.........浮動小数の積算
double doubleDIV( double X, double Y);.........浮動小数の除算
double doubleSignConv( double X);..............浮動小数の符号変換

一応 単純変数の代入、print文の処理が動いていますので、報告を兼ね、アップしました。
画面のシアン色の行は、STBeeマイコンへのコマンドで、白い行は、応答です。
変数への代入、表示と、四則計算は機能しています。
尚、浮動小数点のフォーマット化ストリング処理は、12桁表示として作成しました。

以前、MZ-80の四則・関数ライブラリ作成を思い出しながら・・
でも 今更、マクローリン展開・・などはやりたくない。
Sourcery G++Liteは 三角関数、対数等は、ハード演算部を使っていない模様・・・
四則計算を作れば何とかなると思う

ARM Project STBee

イメージ 1

H8、SH・・R社の動向が氣になりますね。
今回、H8の浮動小数型BASICインタープリッターがホボ完了しました。ARMに移行すべく奮闘中

STBeeのボードを入手し、開発環境を構築?しました。
エディタ・ファイル管理は、使い慣れたH8,SH用のYellowIDEを使用し、
CodeSourceryLite、Cygwin、DFUWを使う、寄せ集めのバラック?IDEです。

何とか、ネスト割り込みとSUARTで、MZ80-H8版の端末『Terminal by MZLAB』と38400bpsでつながった。
ここまで来るのも一苦労(?)
また、printfが機能しないのでデバッグ用のソフトの作成 手間が掛かります。

準備したデバッグ用の主なソフトは、
printString(unsigned char *buf); // ストリング列のprint命令
printHexInt( unsigned int I ); // INTのprint命令
printHexLong( unsigned long I ); // LONGのprint命令

STB32F103VEは64KのRAMエリアが有ります、これを32Kに制限し、BASICエリア用に上部の32Kを開放する。
H8バージョンと同様(MZ-80Bも・・)に、BASICエリアの動的メモリアロケーションを作成をしました。
TEXT -------------------- テキスト文 保存
FLP〜FLP2 --------------- 数値変数 及び 1〜2次元配列
STR〜STR2 --------------- ストリング 及び 1〜2次元配列
SFOR, SGOSUB,RUNNING ---- for-next gosub等 多重CALLの条件保存
STRS,FLPS,STACK --------- 構文解釈、関数演算の為のstack

まず BASICエリアのメモリアロケーションが問題なく動作する状態になったようです。

テストで、行番号の追加・廃止を行いました。

我々老兵は、昔からの主義で、デバッガーと称するツールは使わない。
使うのは、せいぜい データの打ち出しprint()で十分だ。
デバッガーに頼るプログラマーは思考力・課題分析力が弱い・・ それは、少し言い過ぎか・・

[PR]お得情報

ふるさと納税サイト『さとふる』
実質2000円で特産品がお手元に
11/30までキャンペーン実施中!

その他のキャンペーン


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事