まつたろうの歩み (original) (raw)

4bit-PC ATD-K-004 でもっと遊べないか考えました。せっかくピンヘッダを付けたので、見ていたらポートが使えるかも知れないと思いました。できたら、5Vを取り出してクローラーを自在に動かすプログラムを書きたいとワクワク感が沸いてきました。

I/O ポート付近の拡大写真

上の画像のように、RB3,RB5,RA3,5V,GND,TXD,RXD,3V3 のポートがあります。回路図を見ると、PIC-ICは同じ物を使っています。PIC32MX120F032B のデータシートを調べました。

データシート

赤のアンダーラインを引いてるポートが使えそうです。PIN番号 7,10,12,14 の4つです。RB3の7番ピンを使うことで、考え始めました。とりあえずの資料はプログラミングの解説資料です。付録部分に使えそうな所がありました。

解説資料の付録部分

F70とF71の命令を使うと、何とかできそうです。Webで調べても、ポートを扱った記事はみつかりませんでした。そこで赤枠の文章を読み込んで、自分なりに考えて書きました。フラグについて書かれたものは、解説資料にもありません。コード例を見ていても、フラグの記述がないので無視して書きました。ORANGE-4 IDE の出力です。下の 80A....を入力して、RUNを押しますが何もテスタは反応しません。RUNの使い方もよくわかりません。資料の 1-> RUNなどそれぞれ試しました。だめでした。

; aitendo ATD-K-004でポートから5Vを出力したい
; 外部モーターを動かしたい

ldi 0 ; Aレジスタに0(出力するように設定する)
ldyi 7 ; Yレジスタにポート番号7を入れる
ioctrl ; ポートの設定をする
ldi 1 ; Aレジスタに1を出力するように設定
out ; 出力する

E00:80A7F7081F71

上の解説書では、Aレジスタの使い方を読み取れません。その後も、色々と試しました。どうしてもできません。そこで、何かヒントはないかと探しました。そうしたら、プログラムの解説書ではなく、始めの説明書にありました。解説はすべて熟読し、何回も繰り返して確認すべきだと反省しました。どこかに、ヒントはあるものです。

ポート1を使った、Lチカのプログラム

ORANGE-4 のポート1を使っています。自分が書いたプログラムとは少し違いました。これを参考に書いて、IDEで出力しました。

; 説明書から

; PORT1に接続したLEDの点滅 Lチカ

start:

ldyi 7 ; 1->7 RG3は7番ピンなので

out ; 出力ON

ldi 5 ; Aレジスタに5 ?なぜ

scall 9 ; C->9 Cではオペランド不正となった

out ; 出力OFF

ldi 5 ; Aレジスタに5 ?なぜ

scall 9 ; C->9

jmpf start ; startに戻る、繰り返し

E00:A781F7185E980F7185E9F00

これで動作を確認すると、ブザーがビー・ビー・と間隔をおいて鳴りました。しかし、RB3の7番ピンに電圧は出力されませんでした。ALUの構成とか何かが違うのでしょうか?

結論:

しばらく待って、ORANGE-4を買うべきでした。今は販売されていますが、物は増やしたくありません。大体のことは把握したのでこれでやめときます。今度は前に買って置いた、ラズパイピコをやろうと思います。

ーーー じいじと孫のお勉強 ーーー

星やロケットが好きな孫に、ちょうど良いものがありました。まだ、続きそうです。

しつもん!ドラえもん

以前購入していた4ビットPC、ATD-K-004です。ORANGE-4を購入したかったのですが、残念ながら売り切れていました。その互換品です。

ATD-K-004

これで、アセンブリ機械語のことを一通り勉強しました。それからCASL2でアセンブリの勉強を深めました。その後は、孫に機械語の簡単なプログラムを入力させ遊ばせるくらいでした。もう少し活用できないかと考えWebで調べました。そしたら、ORANGEー4から機械語に変換したデータを送れる記事がありました。下が参考にさせていただいたWebサイトです。ありがとうございました。

マイコンキット「ORANGE-4」で機械語レベルのプログラミング体験【いつモノコト】-Impress Watch

CP2102を搭載したUSBシリアルモジュールでパソコンと接続 【ORANGE-4】モニターの起動

早速、USBシリアルモジュールを購入しました。送料込み750円で買えました。ピンヘッダを半田付けし、ケーブルでパソコンとつなぎました。写真:左 シリアルモジュールは認識されているようです。写真:右 ORANGEー4 IDE ちゃんと機械語に変換できています。

左:デバイスマネージャー 右:ORANGE-4 IDE

テラタームをインストールしてましたので、使ってみました。記事ではボーレート(通信速度)を115200に設定したら良いようにかいてあります。RST→D→RUNキーを押してみても、プログラムが転送される状態にはなりません。何も表示されません。

テラターム

テラタームでもUSBシリアルモジュールは認識されているようです。しかし、記事の写真にあるように、一番上にある「 ORANGE-4 Ver 1.08 Copyright (C) 2017 by picosoft 」

が表示されません。文字さえ入力できません。テラタームをアンインストールして新しいテラタームをインストールしましたが、それでも何も表示されません。その他設定を色々変えて試しましたが、できませんでした。それで、この接続はあきらめることにしました。このPICマイコンには、そのソフトウェアが焼き付けてないのかもしれません。記事にあった、学研1981年当時の「FX-マイコン R-165プログラム集」を少しいじって孫が遊べそうなものがないか探してみます。

5年ほど前に買っていた、矢沢久雄氏著「コンピュータはなぜ動くのか」を読みました。SE・プログラマー向けの内容です。私のような素人には全く必要の無いような内容もありましたが、幅広い視野から書かれた本です。

「コンピュータはなぜ動くのか」矢沢久雄氏著

始めに、Z80マイコンを図上で結線する作業がありました。これまでコンピュータシステムの学習はかなり積み上げてきましたので、赤鉛筆で結線することで復習のようになりました。ALUとプログラムの具体的な動作のしかたを、もっと深く解説してあれば良いなと思いました。

Z80の回路を結線する

この結線の後、残りのページも一通り読みました。それらの中でも、TCP/IPはいずれもう少し勉強してみようと思っています。実社会のSE・プログラマーは、データ構造を把握していなければならないことを感じました。

前の記事で書いていましたが、Scratchの勉強は現段階ではここでやめておくことにしました。次は、ラズパイに戻ろうと思います。

ーーー じいじと孫の工作 ーーー

完成しました。上に乗ってる小型の模型には、じいじはほとんど関与しませんでした。孫も大変満足そうでした。よくやりました!パチパチパチ....

ブロック模型完成!

ーーー 今日の一言 ーーー

衆議院選挙、当然の結果が出ました。もっと差があっても良いと、個人的には思います。全員ではありませんが、金まみれの政治家の多くが選出されなかったことは当然のことです。これから、金儲けでではなく国民のために働いて欲しいと思います。

Scratch の達人第4章のゲーム作成まで、終わりました。終わったと言っても、写経レベルのままです。第4章は手裏剣を投げて戦うゲームです。

第4章ゲーム完成

今回は前の反省もあり、全角の日本語は極力使用せず変数などを英語っぽく書きました。おかげで訳の分からない、トラブルはありませんでした。英語と日本語を比較することが、少し面倒でした。たまに変数など取り違えることはありましたが、修正したら簡単に直りました。下の画像が、比較検討の様子です。

比較検討中

サンプルプログラムと動作を比較していたら、スピードが遅いようです。ここでScratchのよいところは、変数などにチェックを入れると画面に表示してくれるところです。速度とspeed を表示させたら、「6」と「0」が表示されています。

速度とspeedを表示させた

原因を調べたら、ブロック定義の「□画面を再描画せずに実行する」にチェックを入れてませんでした。Scratchには、エラーチェックがありません。エラーチェックが欲しいところです。第4章が終わったので、補足のプログラムも試しました。

第4章の発展プログラム

火花や炎・巻物も増えています。タイマーで夜昼の区別もつけてあります。かなり長いコードを書かなければいけません。チャレンジするかどうか、考えているところです。ここまで勉強してきても、これらの変数やブロック定義がどうScratchのコマンドに繋がっているのか分かりません。特に1秒間に30フレーム動くと書いてあるけど、Scratchにそれがどうコマンドとして認識されているかです。もう少し研究する必要があります。

ーーー じいじと孫の工作 ーーー

前に作っていたブロックで、大型の物を作りたいと言ったので作りました。5歳の孫が自分で作りました。1つの図ごと作成したところでチェックして、ここは図ではこうなってるよと指摘したらすぐに直しました。ほとんどがきちんとできていました。最後の押さえつけは、じいじがやりました。

本体ができました。

10月1日、信州の美ヶ原高原に行ってきました。素晴らしい! Wonderful ! 360°、雄大で美しい景色が目の前に広がっていました。左は穂高連峰、右に槍ヶ岳、小槍も見えます。王が頭からの眺めです。

中央アルプスの山々

右には白馬連峰北アルプス?(分かりません。)もきれいに見えました。

白馬?北アルプス

前日の9月30日、静岡から名古屋の親友の車に乗せてもらって信州に来ました。松本でおいしい「くるみ蕎麦」を食べて、ここを訪れました。しかし残念、霧に包まれて30mくらいしかの視界しかありません。美しの塔まで行きました。それでも霧は当分晴れそうにないので、あきらめて旅館に行くことにしました。1日、松本城を見に行く途中、眼前に穂高連峰が見えました。運転してくれてる親友が美ヶ原高原に戻ろうかと言ってくれたので、即断合意。昨日通った、ビーナスラインを登りました。駐車場から歩き始めて、昨日来た美しの塔です。今日はくっきり見えます。

美しの塔

王が頭に着く前に、穂高連峰が見えました。昨日の経験から、良く見えるうちに写真に納めておくことにしました。ちょっと時間が経つと、すぐに雲に隠れてしまいます。

穂高連峰

王が頭に着きました。

王が頭

乗鞍岳もくっきり、見えます。

乗鞍岳

王が頭で、山好きのご夫婦に出会いました。山の名前やこの近辺の情報など、いろいろ教えていただきました。(ありがとうございました。)何回も来るけど、ここまできれいに見えることは少ないそうです。午前中が良いそうです。ラッキー!。私たちは2回で、こんな素晴らしい景色に出会えました。教えていただいた道を通り、王が鼻に着きました。絶景です。3000m級の山々を背景に、手前の諏訪盆地と雄大な景色が広がっています。感動しました。

王が鼻からの眺め

王が鼻からは、中央アルプスの山々が眼前に広がっています。ここでは、槍ヶ岳は少し雲に隠れていました。途中で写真撮っておいて、良かったです。山の景色は、時々刻々と移り変わります。

ここまで、グーグルアースの距離計で約4Kmです。斜面もあるので、5Kmくらいはあると思います。駐車場から、往復2時間半かかりました。

美ヶ原高原

ーーー 旅日記 ーーー

29日(日)に、静岡で大学のサークルのOB会がありました。寄り道して、浜松の楽器博物館に行きました。学生の頃は食べられなかった、鰻も食べました。OB会だけではもったいないので、信州に行くことを考えていました。親友が信州、それから帰りの名古屋駅まで付き合ってくれ、来ることができました。親友も来て良かった、と言ってました。運転してくれた TJ、ありがとさん!

50年前の学生の頃、蓼科に行きました。10月に友人が紅葉が素晴らしかったと言っていたので、11月3日に行きました。行ったところ、紅葉どころか雪に降られ寒かった記憶しか残っていません。ところが、ここでは奇跡的なパプニングがありました。寒さに震えながら駅の暖かい蕎麦を食べ終え、元気を取り戻しました。そろそろ、帰ろうかと考えていたところ、なんと静岡の大学の先輩たちと出会ったのです。50年たった今でも、本当に信じられないような出来事でした。帰りは先輩の車に同乗し、静岡に帰ることができました。ちょっとだけ場所は違いますが、信州は思い出の地です。

Scratch が思い通りに動作しない場合。

1.まずはコードチェック 2つのファイルを表示させて比較しました。上がサンプルプログラム、下が自分が書いたコードです。

比較検討

2.計算は四則演算の通り、かけ算割り算でブロックをつくり、その後足し算引き算のブロックに入れます。このことが明記されている本は見ませんでした。

3.数字は半角のみ、半角数字で上書きしたら改善する場合もありました。私の場合、変数やブロック定義で全角文字を入力したら、IMEや半角全角の表示が変になりました。これが正常に動作しない原因だと考えています。私のPCとScratchの相性の悪さかも知れません。後で、コードで確認してもどこが違うかわかりません。半角/全角キーを押すタイミングを、表示を見ながら確認して、おかしい場合は保存してScratchを終了する。再度、Scratchを起動させはじめました。基本的に全角文字は使わないで、半角のローマ字で書くと良いと思います。

4.ブロック定義する場合に、「□ 画面を再描画せずに実行する」というチェック欄があります。そのチェックはされているか、どうかも見直して下さい。

今日でScratch の達人、第3章が終わりました。この本のサンプルプログラムには、必要ないブロックの記述が消されず残されています。イベントなどない不必要なブロックは削除して使いましょう。宝石のクローンがうまく表示されず、1週間ほど6回書き直しました。結局原因がわからず、サンプルプログラムを使いました。このレベルのゲーム作りはかなり難しいです。自分で考えて作ることは、とてもできないように感じます。次は第4章です。縦にも横にもスクロールするゲームのようです。とにかく、あと1章頑張ります。

***Scratch の便利な機能***

*コードエリアを広くする。上の窓の左側です。

コードエリアを広くする

*コードを整理する。 右クリックして、「きれいにする」でゴチャゴチャになったコードを並べ変えてくれます。

ーーー じいじと孫の工作 ーーー

クローンです。

クローン

ーーー 今日の一言 ーーー

能登は大変なことになっています。お見舞い申し上げます。しかし、今日の新聞ではレバノンで今回だけで558人の方が亡くなっています。戦争は自然災害の比ではありません。

総裁選が行われますが、憲法改正を強く主張されているようです。国民に不安な気持ちを起こさせ、戦争ができる準備が進められています。あれだけの防衛費があれば、どれだけの積極的な平和外交ができるでしょうか?政治にたずさわる方々には、そこをしっかり考えて欲しいです。

Scratch の勉強を始めて、かなりプログラムを書きました。今やっている本は「Scratch の達人」です。最初、図書館から借りて2週間の期間を延長してかりましたが、終わらないので購入しました。ちょっと、コードの表記がわかりにくいです。始めに、変数の書き方とブロックの具体的な定義のしかた(特に引数を使う場合)を説明してあったら分かりやすいと思いました。

Scratchの達人

ようやく、2章のゲームを自分で入力しました。これも一部正しく動作しなかったので、ダウンロードファイルで最終的には仕上げました。引数付きのブロック定義が原因だと考えています。私にとっては、かなり高度なゲームです。たくさんの変数やブロックを使って書いてあります。背景やスプライトの導入など詳しく解説されています。画像の処理は難しいです。右下のスタートから、真上のゴールめざします。敵に当たらないように進み、ゴールしたらスタートに戻ります。点数が入ります。自機がタコのような敵に当たると、クルクル回転しながら消えていきます。当たり判定が難しいです。作業途中の画像です。これぐらい難易度が高かったら、私一人では考えきれません。

2章のゲーム作成中

2章が終わったので、コードをきれいに残しておきたいと思いました。Scratch には印刷設定がありません。いろいろ調べていたら、 ファイル名.sb3 を ファイル名.zip と変更すると良いとあったのでやってみました。確かに json ファイルは出てきました。

コードの json ファイル

これでは使いようがないので、手書きでコードを書くことにしました。昨日と今日で3時間ほど書きましたが、膨大な時間がかかりそうです。

前にプリントスクリーンを使い、アドビーのフォトショップでつなげることを考えていました。しかし、接合部分などの処理が大変そうでやめていました。今日ふっと、プリントスクリーンからpng画像を保存し、エクセルに貼り付けることを思いつきました。仕事をやめてエクセルの存在すら忘れていました。一つのスプライトで、5回か6回貼り付けたものもありました。印刷したプリントはA4版で23枚になりましたが、無事終了しました。印刷機能が欲しい、Scratchです。

ーーー じいじと孫の工作 ーーー

少し前はこんなふうに「豆」で遊んでいました。

豆遊び

ーーー 今日の一言 ーーー

総裁選が行われるようです。ある立候補者は、憲法改正をするという意見を表明しています。防衛費も大幅に増額されています。戦争するための準備が整いつつあります。危険な状況を作り出してはいけません。憲法改正に反対します!