1月 21st, 2023

1995年頃に古本屋で見かけた、1990年ごろの雑誌「エレクトロニクスライフ」の特集記事で知ってずっと気になっていたもの、本誌買って帰った覚えがあるけど見つからないので物から先に

1970年代末ごろIntelには自動化制御向けのコンピューターとして「 8051」を代表とした「MCS-51」というプロセッサーファミリーがあり、8051では、プロセッサーとプログラム用の数KBのROMと若干量のRAMといくつかの周辺回路が一つにまとめてありました。2023年1月現在でも、高速化されたりRAMや様々な周辺回路が追加された、バイナリーコード互換品が今でも量産されて活躍しているようです。1980年代頭には、マイクロプロセッサー上で動くBASICインタープリターが登場して、オペレーティングシステム的な役割も持っていたようですが、8051をもとにROMやRAMの容量を増やした8052のROMに、専用の実数型BASICインタープリター「MCS-BASIC-52」が書き込まれた「8052AH-BASIC」というICが売り出され、国内雑誌でもいくつか特集が組まれたことがあったようです。 いまどきの32ビットマイクロコントローラー向けでMicroPythonやCircuitPythonといった組み込みPythonにつながっているREPLの先祖みたいなものでしょうか。後年BASICのバージョン1.1がパブリックドメインソフトウェアーとして公開され、主に欧米の有志の手により近年まで改良されて行って最新はV1.3系まで進化しています。

8052AH-BASICは一度扱ってみたかったものですが、初めて知った1995年ごろならまだともかく2022年5月下旬時点で現物はまず入手できないようだったので、代替品として まず中国製のMCS-51互換マイコンのSTC STC89C52RC-POQFP44-*-J9Cで、後日 沁恒 CH559 で動かしてみることにしました。

STCの方はUSBインターフェース付きのデモボードから線を引き出して、BASICプログラムや変数類の格納に必要な外付けRAMに256k×8bit SRAM(IDT71256)を、BASICプログラムやデータの保存用に使うために64k×8bit EEPROM(AT28C64B)を接続して、BASICプログラムを保存できるような構成になっています。RAMはたまたま高速型のが手に入っただけなのでタイミングが問題なければ普通のでいいと思います。 はんだ付けだと寝ながら配線できないので、基板裏面にピンヘッダーをたてて、ワイヤーラッピングで配線してみました。

メモリーはプログラム用( PMEM )が内蔵ROMと外付けの両方合わせて最大64KB、データ用が内蔵RAM(IRAM)256Bに加えて別管理の外付け(XRAM)が最大64KB、追加の周辺デバイスとのやり取りは、汎用入出力を切り替えて必要な信号を作るよりも、外付けメモリーを使うときの回路を作って、外付けメモリーのどこかを間借りして使う感じでしょう。ここで使ったSTC-…-J9Cはプログラムメモリー選択信号PSEN#が元のMCS-51のようには動かないようで、XRAMの内容をPMEMとして読みださせてプログラムとデータを混載させる方法はできませんでした。また、XRAMに配置したEEPROMへの書き込みはV1.1では外付けメモリーへの読み書き関数XBYでできることは確認しましたが、EEPROM内部バッファーを利用した複数バイトの一括書き込をさせるには、命令の実行処理の都合上自分で書き込み制御線を操作できるようなハードウェアーの追加が要りそうです。また、PROG命令によるBASICプログラムリストのEEPROMへの一括書き込みは、EEPROM側の「書き込み中」の呈示方法BASIC側の想定と合わないのでV1.1では書き込み不可能、V1.3では問題なく書き込みができました。

Image
Image

CH559のほうはUSBインターフェースがついているので、BASICを改造すれば単体で使えそうですが、BASIC側の改造はせず、UART0の信号をCH340を使ったUSB-UARTブリッジモジュール(秋月電子通商: K-14745 )を介してパソコンと通信するようにしてあります。

Image

CH559には 内蔵XRAM(内蔵 eXternal RAM )として6KB用意してあり 、BASIC-52の動作要件を十分満たしているため、特にメモリー関係の外付けはしなくても動きました。 内蔵 eXternal RAM とはちょっとおかしな表現ですが、もともと8051には若干量のRAMが備え付けられていて、それで済むなら単体で使えるもので、 MCS-51をもとにしたワンチップマイコンでは、必要なら若干の回路とともに外付けすることになっていた分のRAMまで一緒に載せてあったりするのでこう書かざるを得ません。

CH559へのBASICの書き込みは本体側のUSB接続からおこなうことになります。Arduinoツールチェーンを使わないなら純正の書き込みツールが使えるようですが、Arduinoで使うにはちょっと特別のデバイスドライバー差し替える必要があり、うちの環境ではドライバー差し替え後は純正のプログラマーが使えなくなってしまったので、Arduinoで使用されているCH55Xduinoの書き込みツールを別に見つけてかきこむことになりました。筆者はよほど必要がない限りArduinoを使わないのでちょっと面倒くさい手順になってしまいました。

いざ動かしてみると、通信速度をいったん希望の4倍にして「スペース」キーを押して通信速度を認識させ、通信速度を戻すとうまくいくようでした。 Teratermからの場合いったん通信速度115200bpsに設定してスッペ―スキー推してスタートさせてそのまま通信速度を9600bpsに変えたらうまく動いたようです。

よくベンチマークにされているマンデルブロー集合のプログラむは、普通のだと7分チックかかるのが1分程度でかけました

Image

(参考)順不同

CH55xDuino(https://github.com/DeqingSun/ch55xduino

秋田純一:「CH55Xでどうでしょう」および「CH559PICO」、(個人出版、個人作成ハードウェア―) アップデートされて商業誌になったようです。 https://www.rutles.net/products/detail.php?product_id=897

https://www.dos4ever.com/8031board/8031board.html

http://www.amy.hi-ho.ne.jp/officetetsu/storage/mcs8051_techdata.pdf

https://sbc738827564.wordpress.com/category/basic52/

http://haserin09.la.coocan.jp/asciiart.html

http://haserin09.la.coocan.jp/asciiart.html#PROGRAMS

12月 7th, 2022

更新履歴によると、2022年12月7日でこのサイトを作り始めて20年になるようです。SL-13000作るよって言っておいて他のクレーンばかりぽつぽつできちゃった感じになりましたが、20年の間に道具も部品もいろいろ変わって特に3Dプリンティングが普及したので材質にこだわらなければ割と細密なものでも作りやすくなったり、半導体やモーターが小さくて安くなってので動くものはだいぶ作りやすくなったりしたようですね。13000というか7800というかは、5年くらい前に一度仕切り直して続けることは続けています。

というわけでひっそり20周年ですがもしかしたらクレーンと関係ない投稿が続くかもしれません。

2月 18th, 2020

ワンダーフェスティバル2020[冬]に出ました。ケーソンドック他数点とまも(twitter:@kojimamo)さんの同人誌数点展示販売しました。

30t起重機船

ゴライアスクレーン

ケーソンドック

上記3点については補足事項を専用ページにアップロードしたので、ご覧ください。

12月 28th, 2019

7台目の3Dプリンターがやってきました。ワンダーフェスティバル2020冬の出し物もはかどりそうです。

11月 7th, 2019

タワーの形が特徴的な昭和35-40年ごろのIHI(100t*39m)

11月 3rd, 2019

いろいろ思うことはありますが、1/700のクレーンぽつぽつ作ってます

4月 15th, 2019

30t起重機船(1/700)

30t起重機船(1/700)


30t起重機船(1/700)

30t起重機船(1/700)

3Dプリンターはパワーアップ改造のためにばらばらにしてしまったYHD-101がそのままで、今年に入ってSparkmaker(光造形)と中古のAnycubic Photon(光造形)が入ってFDM2台と合わせて4(5)台になってしまいました。

旧海軍30t起重機船の1/700とかも、作ってます。

8月 21st, 2018

コミケ会場にて

コミケ会場にて

盆は「コミックマーケット」94にでて、ちっちゃなタワークレーンの小さめの冊子と1/700のケーソンドックの模型をそれぞれ少数頒布してきました。

冊子も模型も通販業者へ委託等は今のところは検討中です。

8月 21st, 2018

つくると

つくると

つくると!に模型などを展示してきました。

「はたらじ」以外での展示は多分これが最初です。
水平引込クレーンの模型の仕上げがちょっと大変で前日夜までかかってしまいましたが、どうにか当日動かすことができました。

6月 6th, 2018


ここではとつぜんのアニメ顔ヘッド

3Dモデルは一年くらいこねくり回して2017年の9月頃からちまちまと形にしていってます
youtubeにいくつかあげていますが、
ニコ動のほうにもう少し編集したものをあげています

1/3(60cm)の人形の頭部の大きさより顔面少し大きいかんじで、
現状は目玉と眉が動くだけですが、目玉の可動域にはかなり配慮した構造になっています。

目玉の動かし方は基本ランダムで、方向は正面を0、上下と左右は夫々一方を+、反対を-としておき、
下記の要領で動かすのを基本にしています。

(眼球の回転量)=(乱数)- (乱数の範囲の最大)/2 -(現在の眼球の向き)/(係数)    (1)

(新しい眼球の向き)=(現在の眼球の向き)+(眼球の回転量)                (2)

(休止時間)=(眼球の回転量の関数、最低0.2秒)                        (3)

って感じでやっています。
(1)の最後の項で目玉の向きが正面から離れるほど正面に戻す働きが強くなるように偏りをつけています。
また、ある目標の各部へ目配せしているときの目の動きと、他の目標に視線を移す動きも目の動きの大きさが違うだけだろうという考え方で扱うために、(1)の第二項までの乱数部分を次の(4)のように奇数乗するあるいは符号を退避して偶数乗することで、小さい動きがでやすくなるようにしてみたりもしています。
(眼球の回転量)=((乱数)- (乱数の範囲の最大)/2)^(奇数)*(係数)-(現在の眼球の向き)/(係数)      (4)

さらに、これに頭部に内蔵したジャイロセンサーからの信号を処理して、頭の回転と逆向きに目を動かそうとするようにしくんであります。

眉は動かせる事を見せるために間に合わせ的にジャイロセンサーからの信号処理結果の一部を使って動かしています。

なおCGアニメーション等では次の(5)のように目標物のどこかに目を向けておいて、別に計算した細かい動き(にeyejitterなどと名前をつけて)足し合わせているのを昔から見かけます。
(眼球の向き)= (目標のある一点への向き)+(ランダムに細かい動き)          (5)

5月 23rd, 2018

7月15-16に福岡市内の旧芸工大(九大・大橋キャンパス)で行われる「つくると!」という「メイカー」系イベントに模型数点を持っていくことにしました。
つくると!5の出展紹介ページ

展示の一番大きなものは数年前作っていた「スイングレバー式水平引き込みクレーン」の模型ですが、製作開始直後に「欲しい」と訪ねてきた方がいたので、一度仮引き渡し後取り戻して改装という感じなっていて
期限はないとはいえ近いうちに完了して引き渡す必要があるので、今度の「つくると!」に合わせて完成させて、出展した後そのまま納めるような感じになります。
水平引き込みクレーンの模型

9月 13th, 2017

アンローダー、バルカー

アンローダー、バルカー


アンローダーを出力して塗装しておきました。
適当にバルカーを添えておきましょう。
1/50で電動にしてみたいところです。