FC2ブログ

名張市つつじが丘おもちゃ病院

三重県名張市つつじが丘でおもちゃの病院を開院しています。年中無休で修理は無料、部品代のみ実費です。おもちゃの修理依頼は tutuji@cb4.so-net.ne.jp へメールにてご連絡下さい。なお、宅配便での受け付けは行っておりません。このブログにはおもちゃ等の修理事例やツール製作などを載せていきます。故障診断や修理方法の改善等、ご意見をお寄せ下さい。

スーパーショベル(CCP)の修理(COB故障をPICで補完)

本件は、(愛知県)小牧おもちゃの病院様の修理事例であり、COBチップが故障していたため、つつじが丘おもちゃ病院(当院)が提供している 「故障したICやマイコンの代替品をお作りするサービス」 を利用していただいた。
当記事には依頼元の小牧おもちゃの病院様から提供していただいた情報や資料が含まれている。

1.患者
スーパーショベル(CCP社商品ページの画像)
ラジコンショベルカー(COB故障をPICで補完)外観1
ラジコンショベルカー(COB故障をPICで補完)外観2

2.症状
①右側のキャタピラが後退(逆転)しない。正転はする。

②左側キャタピラ、アーム上下、ライト、サウンド、クラクションなど、その他の機能は動作する。

3.診察
①本体側のCOBから右側キャタピラ逆転の信号が出てきていない。COB故障と診断し、つつじが丘おもちゃ病院(当方)へPICのファームウェア開発が依頼された。

4.治療
当院では依頼元からの要件に基いてファームウェアを開発した。

【開発要件】(依頼元から提示)
・エンコード信号を入力し、左右のキャタピラの駆動信号を出力する。

・ターゲットは16F1705とする。

・ピン割当ては以下とする。

RA0:右キャタピラ前進(正転)正論理出力
RA1:右キャタピラ後退(逆転)正論理出力 
RA2:左キャタピラ前進(正転)正論理出力
RA4:左キャタピラ後退(逆転)正論理出力
RA5:ch選択(上記何れかの駆動がアクティブのときL出力)
RC0:エンコード信号入力

・キャタピラ駆動信号は入力オフ後も200ms保持する。

・正逆転切り替え時のデッドタイムは200msとする。

・正逆の相反するコード受信は正逆ともに出力をLとする。

・エンコード信号の信号波形を以下に示す。

説明の中でCh番号は下記の操作に対応する。
Ch1  右キャタピラ-正転
CH2  右キャタピラ-逆転
CH3  左キャタピラ-正転
CH4  左キャタピラ-逆転

フレーム全体
ラジコンショベルカー(COB故障をPICで補完)エンコード波形1

操作時の信号
ラジコンショベルカー(COB故障をPICで補完)エンコード波形2
ラジコンショベルカー(COB故障をPICで補完)エンコード波形3
ラジコンショベルカー(COB故障をPICで補完)エンコード波形4
ラジコンショベルカー(COB故障をPICで補完)エンコード波形5

STOPコード
ラジコンショベルカー(COB故障をPICで補完)エンコード波形6
ラジコンショベルカー(COB故障をPICで補完)エンコード波形7

【設計】(当院で実施)
・依頼元から提示されたエンコード信号波形を帰納法でエンコードルールを推理し、デコード処理を設計した。

//デコード処理
//1.4ms以上のHの後、Lへの変化でフレーム開始とする。
//続くLとHの1組で1ビットを表す。
//L期間は変化せず、150us~300us。
//ビット値はH期間で判別する。200us~300usはb'0'、500us~700usはb'1'。
//4ms以上のLでフレーム終了とする。
//1フレームは22ビット固定で、フレーム終了まで受信し、受信ビット数が22ビットでなければ無効とする。
//上記の条件に当てはまらない場合はデコード結果を無効とし、1フレーム開始待ちに戻る。
//キャタピラの制御値はフレームの先頭4ビットで示され、ビットの並びは以下のとおり。
//先頭からb0、b1、b2、b3の順で、ビット値0はインアクティブ、ビット値1はアクティブを示す。
//b0:右キャタピラモーター正転
//b1:右キャタピラモーター逆転
//b2:左キャタピラモーター正転
//b3:左キャタピラモーター逆転

//STOPコードは通常のフレームのb0~b3が全て0に設定されたものである。
//従って、デコーダはSTOPコードも通常のコードとして処理すればよい。

・その他の処理方法は
//TMR1のクロック周期を1usとし、エンコード信号のパルス巾を計時する。
//2ms周期のTMR0割込みでデコード結果に対応する駆動信号をピンへ出力する。


【ダウンロード】
本ファームウェアの設計資料と開発プロジェクトは ここから ダウンロードできる。

【実装】(依頼元で実施)
ラジコンショベルカー(COB故障をPICで補完)実装

【後日談1】
このラジコンは、エンジンをスタートさせないと、キャタピラや運転台の駆動ができない仕組みになっているそうだ。そう言えば他の似たおもちゃでもそのようになっていたのを思い出した。
サウンドも、サウンドONを指示しておかないと音は出ないとのこと。

提供したファームウェアはエンジンの動作状態に関わらず、キャタピラを駆動してしまう。要件の確認漏れだった。

しかし、これらの制御は送信機側で行われていて、エンジンスタートするまではキャタピラの駆動コードは送信されないそうだ。またサウンドONについても同様とのこと。従って、提供したファームウェアで元々の動作仕様になるので問題は無いことが判った。

【後日談2】
このファームウェアの重大な欠陥が発覚した。
メーカーの商品ページを見たら、スーパーショベルはch1~3の設定が可能であることが判った。

しかし、このファームウェアではch設定をチェックしていないので、送信機と受信機でch設定が違っていてもキャタピラを駆動してしまう。ch設定に関して、SWの信号とエンコードの要件は依頼元から提示されていなかったが、当方も確認を怠っていた。競合するラジコンが近辺にいなければ動作上の問題は生じないのが救いである。

リコールを含む善後策の実施を依頼元へお願いしたところ、患者様から 「ch設定機能は使わないので、現状のままでよい」 との回答を得たとの連絡をいただいた。
スポンサーサイト



  1. 2018/05/29(火) 10:38:07|
  2. マイコン換装
  3. | コメント:0

アンパンマンうたえほんの修理(マイコン換装)

本件は、(千葉県)鎌ケ谷おもちゃの図書館「あ・そ・ぼ」おもちゃ病院様 の修理事例であり、つつじが丘おもちゃ病院(当院)はファームウェアの開発を請け負った。
当記事には依頼元の 鎌ケ谷おもちゃの図書館「あ・そ・ぼ」おもちゃ病院様 から提供していただいた情報や資料が含まれている。
依頼元のブログは こちら

1.患者
アンパンマンうたえほん
アンパンマンうたえほん(マイコン換装)外観

2.症状(依頼元で実施)
①各ボタンを押しても、マイク音もメロディ音も出ない。

3.診察(依頼元で実施)
①COB不良と判断し、つつじが丘おもちゃ病院(当院)へファームウェアの開発が依頼された。

4.治療
【開発要件】(依頼元から提示)
①電源は単三乾電池2個の3V

②マイコンはPIC16F1705を使用

③操作SW
・スライドスイッチ1個 電源:OFF/ON
・タッチSW 音量:おおきい・ちいさい
・タッチSW 選曲12曲:
     <アンパンマン4曲>
      ・アンパンマンのマーチ
      ・ゆうきりんりん
      ・ドレミファアンパンマン
      ・アンパンマンたいそう
     <どうよう8曲>
      ・かえるのがっしょう
      ・やまのおんがくか
      ・きしゃポッポ
      ・しあわせならてをたたこう
      ・もりのくまさん
      ・むすんでひらいて
      ・おおきなくりのきのしたで
      ・ハッピー・バースデイ・トゥ・ユー

④タッチSWは4×4のマトリクス接続で、構成は以下のとおり。
アンパンマンうたえほん(マイコン換装)キーマトリクス

⑤動作仕様
・スライドスイッチ「OFF」から「ON」でPIC、アンプ部へ電源供給
・12曲対応のタッチスイッチを押すと対応の曲が鳴る
・演奏中他のタッチスイッチを押すと現曲を中断して対応の曲が鳴る
・マイクスイッチを「ON」にするとマイク音が鳴る
・スライドスイッチ「ON」から「OFF」でPIC、アンプ部へ電源供給停止 

【設計・製作】当院で実施
オーソドックスな電子オルゴール機能であるが、今回は電子ボリュームの仕掛けについてのみ解説しておく。

⑥電子ボリュームの構成
アンパンマンうたえほん(マイコン換装)電子ボリューム
PICのポートをアナログ設定にすると減衰無し、L出力すると減衰する。ただ、これだけの簡単な仕掛けだ。

⑦楽譜や歌詞カードがあれば、それに曲データを合わせるべきであるが、その提示が無かったので既存の曲データを入れておいた。

【実装】依頼元で実施
実装以降の工程は 依頼元のブログ を参照。

なお、回路設計は依頼元で実施され、当方は一切関与していない。

【ダウンロード】
開発したファームウェアは ここから ダウンロードできる。
  1. 2018/05/21(月) 10:23:15|
  2. マイコン換装
  3. | コメント:0

I2CインタフェースEEPROM(24シリーズ)ライターの製作(PC側制御ソフト)

I2CインタフェースEEPROM(24シリーズ)ライターの製作 で作ったのはライターのハードウェアだけだった。
PC側の制御ソフトは 「USB接続PICプログラマー」 の ISP.EXE を流用していた。しかし、ISP.EXE はEEPROM以外の機能が一杯あって邪魔になる。それで、ISP.EXE からEEPROM以外の機能を取り去り、操作し易くした。これで誤操作による「爆発する恐れ」が無くなった。

【操作】
EEPROMライター操作画面

各リストボックスで該当するアイテムを選択して、「実行」をクリックすると読み書きが行われる。

【ダウンロード】
PC側の制御ソフトは ここから ダウンロードできる。
ディレクトリ ISP\EEPROM にVisualStudio2008のVBプロジェクトが入っている。
実行ファイルは ISP\EEPROM\bin\EEPROM.exe
実行ファイルと ISPdll.dll は同じディレクトリに置くこと。
  1. 2018/05/14(月) 10:58:19|
  2. プログラマー
  3. | コメント:0

PIC電子オルゴールのレパートリーと試聴

PIC電子オルゴールのレパートリーは、沢山の方からご支援をいただいて、増殖してきています。僕自身もすべてを把握できていません。

そんな物ぐさな僕に代わって、福岡県飯塚市のおもちゃドクターがレパートリーの整理を行ってくれました。更に試聴ができる環境も整えてくれました。

是非 ここを 訪れて聴いてみて下さい。電子オルゴール以外にも面白い記事がありますよ~。
  1. 2018/05/04(金) 16:39:39|
  2. 電子オルゴール+音声再生
  3. | コメント:0

PIC電子オルゴールVer5_7で音符データ255個の制限を撤廃

お馴染みのPIC電子オルゴールで、音符データが各パート毎に最大255個の制約を撤廃した。これからは255を超える長い曲も書けるようになった。

【互換対策】
従来の音符データとの互換性を保つために以下の対策を採る。

・音符データのビット構成の違いは音符データの定義マクロの中で吸収する。既定の定義マクロを使っている限り音符データの互換がある。

・SONG_SELやVOICEx_SELなどのAPI、およびSONG_ENDやVOICEx_ENDなどのコールバック関数の機能とインタフェースは従前どおりである。

・orgelエンジン側の制御データを直接覗き見する処理は影響を受ける。パートの実行中ステップを示す変数 「partx_step」 は8ビットから14ビットに拡張されることになり互換が無い。しかし、この変数はアプリケーションから汎用的に使われているため、 「partx_step はパートxの実行中の音符ステップの下位8ビット」 を示すこととし、存続させる。


【内部処理の変更】
音符ステップ(音符データのインデックス値)を8ビットから16ビット(実質は14ビット)で管理するように変更した。

音符データの構成を8ビットから14ビットに拡張した。その目的はリピートや無条件分岐の分岐先オフセットを255以上に設定できるようにするためだ。PIC16Fは1ワードが14ビットだが、従来は1ワードに8ビットの音符データを格納していて、残りの6ビットを無駄にしていた。

音符データを14ビットに拡張したことにより、音符データの構成を 音価6ビット+音高8ビット に変更した。従来は、音価コードや音高コードの数が足りなくなると直指定音符で逃げていたが、今後はそのような小細工が不要になる。


【ダウンロード】
改善後のファームウェアは ここから ダウンロードできる。
  1. 2018/05/02(水) 18:45:21|
  2. 電子オルゴール+音声再生
  3. | コメント:0

I2CインタフェースEEPROM(24シリーズ)ライターの製作

PIC電子オルゴールで外付けのEEPROMから音声再生をさせる事例を公開したら、方々からEEPROMへの書き込み手段についての問い合わせを多くいただいた。PICユーザの多くはPICkit3を使っていると思うが、PICkit3では24シリーズの書き込みができない。ドキュメント「PICkit3アプリケーション」のReadMe.txtによると、24シリーズに書くためにはPICkit3の基板から部品を2個(TR3とR50)取り外す改造を行うように指示されている。しかし、実際にそれをやる人は少ないのではないかと思う。

I2C_EEPROMライターPICkit3改造

24シリーズに書き込みができるライターが出回っている。例えば下記は24と25に対応していて、250円くらいだ。
I2C_EEPROMライターCH341A


僕の PICプログラマー は24と25に対応しているので、EEPROM書き込み環境としてお薦めするが、製作がやや面倒だ。そこで、PICプログラマーから24の書き込み機能のみを抜き出して、超簡易な 「I2C_EEPROMライター」 を作ったので紹介する。

今流行りの16F1454(@130円2018秋月価格)を使って廉価にした。200円くらいで作れる。

【外観】
I2C_EEPROMライター外観

【回路図】
I2C_EEPROMライター回路図

USBの+5VからLEDのVf分を降下させて、3.3Vを作っている。デバイスによっては動作電圧が3.6V以下のものがあるので、このようにしている。どうしても5Vで書きたいときはショートピンを挿す。

【配線図】
I2C_EEPROMライター配線図

【ソフトウェア】
PC側の制御ソフトはPICプログラマーの 「ISP」 をそのまま使う。

ライターのファームウェアはPICプログラマーの16F1459のものを16F1454に移植した。ピン数が少なくなるので、buildエラーにならないだけの必要最小限の変更に止めた。

【ダウンロード】
詳細な製作資料とファームおよびPC側制御ソフトの開発プロジェクトは ここから ダウンロードできる。

PC側の制御ソフトはGUIとプログラマー制御の2つから成る。
①GUIを担うVBプロジェクトは「ISP」、実行ファイルは「ISP\bin\ISP.exe」
カレントディレクトリを 「ISP\bin」 に置いて起動すればよい。

②プログラマー制御を担うVCプロジェクトは「ISPdll」、DLLファイルは「ISPdll\Release\ISPdll.dll」

プログラマー側の制御ソフトは
③16F1454のファームウェアでMPLABXプロジェクトは 「ISPpic16F1454\apps\usb\device\cdc_basic\firmware\ISPpic16F1454.X」
USBドライバー組み込みに必要な inf と cat は 「ISPpic16F1454\Windows」 にある。

【注意事項】
PC側の制御ソフトでは24シリーズ以外もデバイスの選択ができるが、それを選択してプログラムを実行すると爆発する恐れがあるので注意されたい。
  1. 2018/05/01(火) 19:15:59|
  2. プログラマー
  3. | コメント:0

プロフィール

大泉茂幸

Author:大泉茂幸
名張市つつじが丘おもちゃ病院
名張市つつじが丘南3番町129
tutuji@cb4.so-net.ne.jp
090-5534-6494
連絡は上記のメール、またはSMSでお願いします。

子どもの頃から趣味は電子工作一筋でやってきました。理科離れが進む中で科学技術に興味を持つ子どもが少しでも増えて行くことを願って、子ども達に電子工作の活動の場を提供しています。

1981年からおもちゃ病院の活動を始め、2014年に三重県名張市への移住を機に「つつじが丘おもちゃ病院」を開院しました。自分でおもちゃを設計し製作する【おもちゃ工房】と、マイコンを応用した電子工作を楽しむ【マイコンクラブ】も併設しています。新規参加メンバーを募集しています。

当ブログで公開している技術情報や成果物の複製、改変および再配布はフリーです。読者様のおもちゃ病院活動のお役に立てば幸いです。ご利用いただいた結果や感想等を記事へのコメントやメールでフィードバックしていただけると有難いです。なお、公開ファイルは最新版を載せているので、古い記事の内容から変わっている場合があります。

カテゴリ

おもちゃ修理技術 (124)
¦ ・電子オルゴール+音声再生 (52)
¦ ・音声再生・録音再生 (13)
¦ ・2.4GHzラジコン (35)
¦ ・レガシーラジコン (13)
¦ ・赤外線リモコン (4)
¦ ・RFID (3)
¦ ・タッチセンス (4)
ツール製作 (35)
¦ ・プログラマー (27)
¦ ・USB-シリアル変換 (3)
¦ ・その他のツール (5)
修理事例 (157)
¦ ・マイコン換装 (75)
¦ ・電子・電気修理 (59)
¦ ・メカ修理 (23)
製作記事 (5)
PIC開発 (4)
おもちゃ病院 (9)
ドクター研修会 (2)
未分類 (0)

最新記事

最新コメント

月別アーカイブ

訪問者数

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

QRコード

QR