Darkside(リンクエラー修正しました)

2018年06月の記事

<< 前のページ

2018年6月24日(日) 20:54

難攻不落

 MCCが使えない。ならばとサンプルプログラムを流用しようにも、古過ぎて delay.h が動かずコンパイルできない。
 どちらから攻めても、難攻不落である。

 だが、以前 dsPIC を扱ったときにXC16もインストールしていて、実は古いバージョンのXC16もパソコンに入っていることに気付いた。マイクロチップ社はソフト開発が分かっているようで、旧バージョンをアンインストールしないと新しいバージョンをインストールできない、などという言語道断な仕様になっていない。
 複数バージョンが共存できる。

 さっそく、最新の1.34ではなく当時の1.21を選択する。念のため、プロジェクトを新しく作り直す。

 だが、早々に気付いたのだが、サンプルプログラムに含まれる lcd.h や lcd.c は使用されていない。というか、どこからも参照されていない。液晶ディスプレイの付いた評価用ボードのためのサンプルかと思っていたが、違うようだ。これらをプロジェクトに含めないと、コンパイルエラーは一気に減る。そして実は、XC16が1.34であるか1.21であるかというのは、無関係だった。
 1.21だろうと、エラーは出る。

 関数の返り値が void なのに、それを変数に代入している・・・とエラーが出るので、代入部分をコメントアウトする。

 1.21であっても、_Delay が無いというエラーは出る。そこで、FCY の定義部分の直後で libpic30.h をインクルードする。「そんなものは見つからない」と警告表示が出ているが、コンパイルではエラーにならないので無視して良い。libpic30.h 自体も、XC16のディレクトリに含まれている。

 しかし、サンプルコードがコレで、大丈夫なのだろうか?

 こうしてコンパイルは通ったが、リンクが通らない。
 undefined reference to '_Delay' というエラーが出る。これは、コンパイラーを1.21にしても出る。Delay.h をインクルードしても、出る。
 とにかくこのサンプルコードが動かないのは、すべて delay が絡んでいる。これは、マイクロ秒あるいはミリ秒の時間待ちを生成するマクロらしい。先日8ビットPICの利点として、命令の実行時間を厳密に測れる、というのを書いた。
 16ビットPICでは自力で時間待ちループを作るのが面倒になって来て、マクロが用意されている。しかし、それがコンパイルの邪魔をする。

written by higashino [ドリル戦車] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2018年6月23日(土) 16:51

MCC化

 MCCを起動し、ピンアサイン通りに割り当てて行く。ただし、機種は実際に使う dsPIC とは異なる。MCCはまだ、dsPIC33FJ に対応していない。
 問題は、ICD である。これは ICE 用ではなく PicKit も含めたデバッグツール用の割り当てっぽいのだが、PGC と PGD の割り当てを11番ピンと12番ピンにすることは不可能なのだ。3通りの選択があるが、いずれも別のピンに割り当てられてしまう。すなわち、少なくともこの部分は dsPIC33FJ との互換性がない。
 よって、どこまで流用できるのか疑問が増す。

 ホールセンサーの1本をインプットキャプチャーし、モーターの回転数を取得できるようにすると便利だと考えた。それを2番ピンで行おうとしたが、ICできるピンは限られており2番ピンでは無理。そこで、止むを得ず15番ピンを使う。

 いちおうソースリストとして出力したし、それを問題なくコンパイルすることも出来た。だが、PCG と PCD は未使用にしてあるため、でき上がった HEX ファイルをマイコンに書き込むことはできない。

 MCCが dsPIC33FJ に対応していないのは、余りにも痛い。

 MCCをいじることにより、dsPIC の流儀が少しは分かるようになったので、自力で頑張るしかあるまい。
 例えば PWM では、過電流などで出力を停止できる。では、過電流のときには17番ピンの入力がHになるものとして、それをマイコンのコンフィグではどう定義すれば良いか?

 PWM のエラー入力を定義するとき、ピン番号による指定は出来ないのだ。
 FLT1 とか FLT2 とか、PWM の項目に損z内するのを見て欲しい。指定できるのは、この FLT1 とか FLT2 と言った「論理名」である。
 そしてその論理名に、実際のピン番号を割り当てるという2段階方式になっている。

 今回の例では、FLT1 に17番ピンを割り当て、PWM の詳細設定中において、エラー入力に FLT1 を指定している。

written by higashino [ドリル戦車] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2018年6月22日(金) 21:46

ピンアサイン

 まずは、以前話題にした本「モーターの動かし方早分かり」において、dsPIC33FJ12MC202 のピンをどのように使用しているかを整理する。

 2番ピンが謎で、3相あるうちの1相だけ特別に電流を検出(抵抗により電圧変換)し、それを入力している。
 3相合計の電流は別途モニターし、過電流を検出して17番ピンに入力している。だから特に必要がないのだが、本ではセンサーレスも取り上げており、1つの試験基板でセンサーありと両方の試験ができるようになっている。その関係だろう。センサーあり専用の場合は、恐らく必要ない。
 よって2番ピンは、実際には別の用途に使う(当面は未使用)。

入力
出力
デジタル
アナログ
pin
番号
PicKIT4
pin番号
MCLR IN D リセット入力 1 1
モーター1相電流 IN A 電圧変換された電流 2
外部ボリューム IN A 外部からの命令用 3
電源電圧 IN A モーター駆動電源 4
ホールセンサー1 IN D モーター付属 5
ホールセンサー2 IN D モーター付属 6
ホールセンサー3 IN D モーター付属 7
VSS D GND 8 3
OSI クロック水晶 9
OSO クロック水晶 10
PGD IN ソフト書き込み用 11 4
PGC OUT ソフト書き込み用 12 5
VDD D 3.3V 13 2
外部ボタン1 IN D 外部からの命令用 14

 16番と18番のピンは、本だとパソコンとの通信に使用される。そんな必要はないので、動作試験に流用したい。つまり、dsPIC33 は「動かす」までが大変である。だから、まずはLチカあたりから開始。LEDを16番ピンあたりに接続する。その次は、車体傾斜装置の動作試験を行うのに使う。
 16番と18番にサーボパルスを出力し、リニア・アクチュエイターを動かしてみたい。ここでは、3.3V→5Vのレベル変換も試験できる。

 PicKit 4 は8ピンだが、1〜6番ピンまでを使用して PicKit 3 までと後方互換がある。6〜8番の3つのピンは、どこにも接続しない。

入力
出力
デジタル
アナログ
pin
番号
AVDD A 3.3V 28
AVSS A GND 27
PWM 1L OUT D モータードライブ 26
PWM 1H OUT D モータードライブ 25
PWM 2L OUT D モータードライブ 24
PWM 2H OUT D モータードライブ 23
PWM 3L OUT D モータードライブ 22
PWM 3H OUT D モータードライブ 21
VDDcore IN 3.3Vに接続しない 20
VSS GND 19
サーボパルス2 OUT D 他デバイスと通信 18
モーター過電流 IN D 過電流ならH 17
サーボパルス1 OUT D 他デバイスと通信 16
外部ボタン2 IN D 外部からの命令用 15

 ブラシレスモーターを選定しようとネットを漁っていて気付いたが、廃番になるのが早い。
 こういう世界では、長期に渡って供給が保証されそうな製品を使いたい。すると、どうしてもタミヤになる。タミヤの 15.5T センサー付きが最有力だ。ただし、ホールセンサーがデジタル出力かどうかは、要確認である。

written by higashino [ドリル戦車] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2018年6月21日(木) 21:56

購入方法

 実際に組み立て手順をキッチリと確認すると、「金属袋詰A」で事足りるなんて訳が無かった。
 不必要なパーツと抱き合わせされるようなことはないが、現実には1万円近く必要だ。

 まず、組立説明図をダウンロードする。パーツだけあっても、組立説明図が無ければどうにもならない。

組立説明図(オフロード) > ビッグタイヤ の中にある「ハイラックスハイリフト」を2つとも落としておこう。


1/10 トヨタ ハイラックス ハイリフト(ITEM58397)

部品名 部品コード 価格
シフトロッド 9400461 480
金具袋詰A 9400456 6200
ファイナルギヤ袋詰 9335454 670
プラギヤ袋詰 9335128 470
Aパーツ 9005817 1300
Jパーツ 9115047 620
合計 9740

 モーター保護のスリッパークラッチまで装備している。この機能ならこの価格は仕方あるまい。
 ギアボックスとして機能させるだけであれば、Aパーツは必要ない。それで1300円も浮く。しかし、Aパーツはギアボックスを密閉し埃や砂から保護するのに役立っているし、固定する際にも役に立つ。併せて買うのが無難。

 注文も、カスタマーサービス内からオンラインで可能だ。

※消費増税により、現在の価格はたぶん上がっています。

 これで、3速ギアボックスを単体入手できる。ただし、まだ注文していないため生産中止になっていないかどうかは分からない。パーツリストに誤りがあるかどうかも確認できていない。
 DIYやったことが無ければ、高いと感じるかもしれない。ならば、やってみるといい。タミヤのと同じ機能性能重量サイズのギアボックスを、1万円で自作できるかどうか。

 他にもタミヤ製品に使われている魅力的な機能があれば、同様にして入手できる。製品の組立説明図からパーツリストを洗い出し、注文。

written by higashino [ドリル戦車] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2018年6月20日(水) 22:29

3速ギアボックス

 変速機もまた、悩ましい。
 元はと言えば、車体幅にモーター2個分のメカを押し込むのは苦しいという話から始まった。しかし、そういう話とは別に、やはり変速機は欲しいと思う。今回の戦車は、フルスクラッチであり自分の欲望をすべて実現させたい。そうなると、空間利用とか関係なく変速したい。オフロードの力強さとオンロードの快適走行を両立させるには、EVであっても変速機は不可欠だ。
 そこで、空間利用法はいったん棚上げし、純粋に変速機の実現という観点で考える。

 ラジコンに組み込めるような小型の変速機となると、大別して2つに絞られる。
 1つは、CVTだ。実質半径可変のプーリーを使用し、ベルトドライブで無段階変速する。大パワーの伝達に向かないため、実車では小型車でしか採用っされていない。しかし、ラジコンは更にパワーが無いのだから、CVTは可能だろう。
 もう1つは、普通にギアを切り替える方式。
 ラジコンで市販されている変速機は、すべてこれである。なぜか、CVTは存在しない。

 自作しようとすると、CVTは非常に難易度が高い。原理は単純だが、実体化するには繊細精密な加工を要する。動くだけなら簡単だが、まっとうな動力を伝えられるようにしようとすると、工学的な課題が多過ぎる。ラジコン市販品も皆無なので、パーツ流用もできない。汎用パーツで作ろうにも、汎用品では不可能な特殊な形状だ。
 となると、必然的にギアチェンジ方式になる。

 これも具体化を考え始めると、厄介な問題が山積する。
 クラッチの材質は何で形状はどうするか。それを汎用のピニオンギアと組み合わせて・・・と始めると、どこまで追加加工が必要になるか分からない。そもそもの基本的なピニオンギアを購入するだけでも大変だ。なぜなら、ギアチェンジ式変速機は複数組のギアのペアは、センターが一致せねばならない。大小のピニオンギアを噛み合わせてペアにするが、その際のセンター間距離が一致するように歯数を選ばねばならない。
 ラジコン用のパーツとしてピニオンギアは豊富に売られているが、噛み合わせた際のセンター間距離を知るのに必要な情報は公開されていない方が多い。それでは、パーツ選定も調達もできない。

 また、変速機構を実現するために「ひとひねり」必要だが、それも面倒な加工が多い。面倒を避けて単純な構造で製作すれば、耐久性の不安やらサイズの増大やら、マイナスが生じる。
 考えれば考えるほど、どうしようもなくなる。そもそも、市販品に劣るようでは自作する意味がない。
 流用できるものは流用し、それをカスタムするのが順当だ。

 エンジン用の変速機はトラップなので電動用に絞ると、タミヤが絶好の3速ギアボックスを出している。タミヤは何通りかの変速機を実用化しているが、「1/10 フォードF-350 ハイリフト」用が良い感じである。3速で、変速範囲がほぼ3倍である。
 ドリル戦車は変速比を1:25〜1:75ぐらいで変化させたい。タミヤの変速機に更にギアを組み合わせ、変速比が1:25〜1:75ぐらいになるよう調整すれば良い。
 変速比からみて、「1/10 トヨタ TUNDRA ハイリフト」と「1/10 トヨタ ハイラックス ハイリフト」にも同じものが使われている。

 この3速ギアボックスは単体で市販されていないが、実はタミヤのカスタマーサービスにオンライン注文が可能である。
 過去に同じ手法で、フルオペのパワーパックも単体入手した。しかも、フルオペの場合は複数パーツにまたがっていて、パワーパックだけ入手しようとすると割高だった。だが、3速ギアボックスは「金属袋詰A」にすべて収まっている。6200円だ。
 3速ギアボックスという非常に有用な減速機が、6200円というのは十分に良心的な価格だと思う。
 注文時は型番やパーツ名が必要だが、まさに時代・・・現在はトリセツがオンラインで落とせる。

written by higashino [ドリル戦車] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

<< 前のページ

Darkside(リンクエラー修正しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4