AVRマイコンATmega328Pでロータリーエンコーダを回す

序文

マイコン初心者の筆者が、作業を始めてから3日くらいかかり、何とか一応意図通り動くところまで漕ぎ着けた軌跡の話。

筆者は30代半ばにして、初めてマイコンを触った。なんとなくのイメージだが、(趣味で)人がマイコンを初めて触るという経験をするのは10代が多い気がする。

10年くらい前にマイコンを始めようと思って買った参考書(そのまま10年放置状態だったがw)がアセンブリ言語での説明で、今回の開発はこの本を大いに参考にしたのでこのブログも説明は基本的にアセンブリ言語で行う。筆者が参考にした本を下記に示す。以下「参考書」という。

AVRマイコン・プログラミング入門 – 廣田修一 著

筆者のレベルと想定する読者

筆者は、学生時代に電気、電子回路のことは一応学んだが、殆ど忘れていて基本的な事しか覚えていないというレベル。例えば、トランジスタ、ダイオード、コイル、コンデンサ等の素子がどういう動きをするか位は大まかに分かる。電気に関する簡単な計算は出来る。しかし、複素数、微分、積分、行列を使うか、それ以上のレベルの計算のやり方は忘れた。

プログラミングのレベルとしては、高級言語プログラミングの基本的な事は分かる。例えばExcel VBAでちょっとしたアプリケーションは作れる。しかし、C言語は学生の頃に少し習ったが、殆ど完全に忘れている。何故わざわざアセンブリ言語で開発しているのかと言えば、昔たまたま買ったマイコンの参考書がアセンブリ言語で書かれていて、C言語を勉強するのが面倒臭いというのが大きいw

なので、想定する読者も基本的な電気の知識はあり、高級言語プログラミングの基本的な事は知っている(変数、条件分岐、ループ等その辺の概念は分かる)と言う前提で話を進める。

回路の概要

ロータリーエンコーダの出力をマイコンで受け取るにはどうすれば良いかいろいろ検索したのだが、上位にヒットするのは大抵ArduinoかPICの情報で、言語はSketchと呼ばれるC言語に似たもの(PICはC言語)だ。AVRのアセンブリ言語で開発しようとしてる筆者にはプログラミングとしてはあまり参考にならない。

この記事は、AVRをアセンブリ言語で開発し、ロータリーエンコーダの出力を受け取るにはどうすればいいか示すのを目的にしている(そんな需要あるのか?w)。今回はロータリーエンコーダがCWかCCWのどちらの方向に回ったかだけを判定し、速さなどは問わないものとする。電子ボリュームやセレクタとして使うことを想定している。以下に、ブレッドボードで組んだ回路の写真と全体回路図を示す。

回路を組んだ写真

写真1 回路をブレッドボードに組んだ写真

全体回路図

図1 全体回路図

ATmega328P(以下、マイコンと言う)のPORTBの全ビットにLEDを接続してある。PORTBの各ビットが変化すると、それに対応したLEDの点灯状態も変化する。始め、LEDに直列に接続している抵抗は1kΩにしていたのだが、眩し過ぎるので途中で10kΩに変更した。これでも十分に明るい。点灯しているか否か分かれば良いだけならもっと暗くても大丈夫だ。

LEDのカソード側がマイコンのピンに繋がっているので、ピンがLになると点灯する。参考書にも、マイコンのHの出力電流よりもLの入力電流の方が大きいので、ピンに接続するトランジスタやLEDはLになった時に動作するようにした方が良いと書いてあった。

ロータリーエンコーダは千石電商で売っている100円程度の安い物で、インクリメンタル方式でクリックありの物を使用した。インクリメンタル方式のロータリーエンコーダを回すとどのように出力するか分からない人は、各自で検索して欲しい。

ロータリーエンコーダのA相をトランジスタで組んだNOTゲートを通してマイコンの外部割りこみ0のピンINT0に接続する。

ロータリーエンコーダのB相は10kΩの抵抗でVccからプルアップしてマイコンのPINC0に接続する。

ロータリーエンコーダを回すと、A相の出力がH→L、L→Hと変化し、NOTゲートを通してマイコンのINT0はL→H、H→Lと変化する。

何故わざわざNOTゲートを通すのかは、後述の筆者による勘違いのためなのだが、上手く動作した後にこのNOTゲートを外したらまた上手く動かなくなったので、最終的にこのままにしてある。多分NOTゲートを外しても抵抗とコンデンサの値を適切に設定すれば上手く動くと思うがメンドクサイ

この時、マイコンのINT0がH→Lと変化したタイミングで外部割りこみを発生させ、ロータリーエンコーダのB相が接続されているPINC0の状態により、回転方向がCWかCCWか判定する仕組みだ。

回路設計において、最終的にうまくいった要因はマイコンのピン4 INT0とGND及びピン23 PC0とGND間に接続したコンデンサC0とC1による。これを接続しないとロータリーエンコーダのチャタリングノイズを拾ってしまい、右に1クリック回した時に「右に1クリック、左に1クリック回した」動作をし、左に1クリック回すとその逆になったりする。

酷いと左に1クリック回したはずなのに右に1クリック回した動作をしたり、左に速く数クリック回すと右に数クリック回した動作をしたりと全く安定しなかった。今回の開発は3日くらいかかったが、そのうち2日以上はこの原因を取り除くのに費やしてしまった。

マイコンでロータリーエンコーダを使用する際は、ノイズ対策のコンデンサが必須。これ重要。

ノイズ対策としてコンデンサを接続すると良いという情報は下記の記事を参考にした。Arduinoの記事だが、ロータリーエンコーダからマイコンまでの回路設計と言う意味では非常に参考になった。

第二十一項 ロータリーエンコーダとノイズ対策・割り込み – kusamura

この記事ではノイズ対策として0.01μFのコンデンサを入れているが、手元に無かったので試しに0.047μFのコンデンサを入れてみた。しかし、あまり変化が無かったので、思い切って0.47μFのコンデンサにしてみたところ、容量が大きすぎて誤動作すると言うこともなく、寧ろ非常にスムーズに動作するようになった。

レジスタとは

レジスタとは何か、割り込みとは何かというレベルから説明し始めると、それこそ一冊の本が出来上がるくらいの分量になってしまうので、そこら辺を正確に知りたい人はネットや本で調べて欲しい。

筆者はアセンブリ言語が良く分からない内は高級言語の知識に絡めて以下のように理解した(アセンブリ言語の正確な概念から鑑みれば甚だ不正確な表現が含まれるのは承知いただきたい)。

汎用レジスタ

高級言語の変数のように使用する。ただし、入れられるデータ型はVisual BASICで言うところのバイト型。一つのレジスタには0~255の値までしか代入出来ない。AVRのR0~R15は制約が多いので、初心者の内は特に理由がない場合はR16から使った方が良い。

きっと、マイコンに慣れてきて汎用レジスタの中にも特殊な役割があるものを知ったり、数が足りなくなったりしたら自然とR0~R15を使うことも出てくるだろう。

標準IOレジスタ

マイコンの入出力や各機能を使用するのに用いる。ある意味高級言語の関数に近い。例えば入力のPINBというレジスタは、PBx(xは0~7の整数)のピンの値が変化すると同様に変化し、それを読み込むことでピンの値を読み取る事が出来る。

IN  R16,	PINB

例えば上記のアセンブリ言語のソースは、高級言語風に表現すれば

R16 = PINB()

R16という変数が存在して、PINB()はマイコンのピンB群の状態を返す関数で、その値を変数に代入する…みたいな意味だ。勿論、実際のアセンブリ言語のソースでこのように表記してもエラーになるので注意。

このレジスタに値を代入すると、定められたマイコンの機能が起動したり、機能の動きを変える事が出来る…とイメージすると良いと思う。

拡張IOレジスタ

高級言語はCPUの挙動やメモリ構造をあまり意識せずに使用出来るが、マイコンをアセンブリ言語で開発すると言うのはマイコンと言うCPUの動きそのものを命令することなので、大変だがマイコンのメモリ構造は理解していないと使いこなすことは出来ない。ここでは深くは触れないので、本やネットで頑張って調べよう。

標準IOレジスタも拡張IOレジスタも、マイコンの機能を起動したりその動きを変えたりと役割は殆ど同じ。違いは、マイコンの中でどのメモリアドレスに配置されているかという部分だ。

マイコンはメモリのあるアドレスに値を代入するという操作一つを取っても、アドレス群ごとに命令が異なる。高級言語のように何でも「変数 = 値」と代入は出来ないのだ。

何故なのかとか考えてはいけない。そういうものなのだ。

フローチャート

プログラムのフローチャートを下図に示す。

フローチャート1

図2 フローチャート1/2

フローチャート2

図3 フローチャート2/2

要約すると、ロータリーエンコーダが回されたらA相からの出力変化により外部割りこみ0を発生させ、B相からの出力をPINC0で読み取りCWかCCWか判定し、PORTBに接続した8つのLEDを2進数表示で点灯させる仕組みだ。

右に回すと数字が増えていき、255クリック目で全点灯状態になる。

左に回すと数字が減っていき、全点灯状態から255クリック目で全消灯状態になる。

チャタリング防止の為に回路にコンデンサを入れているが、ソフトウェアでもA相の出力変化からPINC0の値を読み取るのに約2msの遅延時間を入れて対策している。

プログラム全文

プログラム全文を下記に示す。

;ロータリーエンコーダを回してLED点灯を変化させるプログラム

.include "m328pdef.inc"

;汎用レジスタ
.def STACK	=	R16
.def R_TEMP1	=	R17
.def R_TEMP2	=	R18
.def R_FLAG	=	R19

;定数定義
.EQU B_INT0	=	0	;外部割り込み0
.EQU B_TMR0	=	2	;タイマ0
.EQU B_RTY_ENC	=	0	;ロータリーエンコーダがCWかCCWか判定するビット

.CSEG
	RJMP MAIN
.ORG	0x0002
	RJMP EXT_INT0	;外部割り込み0
.ORG	0x0020
	RJMP TMR0	;タイマ0

;外部割り込み0
EXT_INT0:
	;ステータス・レジスタの内容を退避
	IN  STACK,	SREG

	;外部割りこみ0発生フラグセット
	SBR R_FLAG,	(1<<B_INT0)

	;ステータス・レジスタの内容を復帰
	OUT SREG,	STACK

	RETI

;タイマ0
TMR0:
	;ステータス・レジスタの内容を退避
	IN  STACK,	SREG
	
	;カウンタ停止
	LDI R_TEMP1,	0x00
	OUT TCCR0B,	R_TEMP1

	;タイマ0割り込み発生フラグセット
	SBR R_FLAG,	(1<<B_TMR0)

	;ステータス・レジスタの内容を復帰
	OUT SREG,	STACK

	RETI

;メインルーチン
MAIN:
	CLI	;全割り込み禁止

;PORT設定
	LDI R_TEMP1,	0B11111111	
	LDI R_TEMP2,	0B11111111	;全ポートを1にしてLEDを消灯させる
	OUT DDRB,	R_TEMP1
	OUT PORTB,	R_TEMP2

	LDI R_TEMP1,	0B11111110	;PORTCのピン0を入力にする
	LDI R_TEMP2,	0B00000000	;PORTCのピン0をプルアップなしにする
	OUT DDRC,	R_TEMP1
	OUT PORTC,	R_TEMP2

	LDI R_TEMP1,	0B11111011	;PORTDのピン2はINT0なので入力にする
	LDI R_TEMP2,	0B00000000	;PORTDのピン2をプルアップなしにする
	OUT DDRD,	R_TEMP1
	OUT PORTD,	R_TEMP2

;外部割り込み関連 レジスタ設定
	LDS R_TEMP1,	EICRA
	CBR R_TEMP1,	(1<<ISC00)
	SBR R_TEMP1,	(1<<ISC01)	;INT0がH→Lで割り込み発生
	STS EICRA,	R_TEMP1
	SBI EIMSK,	INT0	;外部割り込み0許可

;タイマ0関連 レジスタ設定
	LDS R_TEMP1,	TIMSK0
	SBR R_TEMP1,	(1<<TOIE0)
	STS TIMSK0,	R_TEMP1		;タイマ0割り込み許可


	;全割り込み許可
	SEI

MAIN01:
	;外部割り込み発生フラグ OFF
	;タイマ0桁溢れフラグOFF
	CLR R_FLAG

MAIN02:
	;外部割り込み判定
	SBRC R_FLAG,	B_INT0
	RJMP MAIN03	;外部割り込み0が発生

	RJMP MAIN02

MAIN03:
	;タイマ0セット(外部割り込みが発生してから2ms待つ)
	LDI R_TEMP1,	0x02	;プリスケーラ8
	OUT TCCR0B,	R_TEMP1

	LDI R_TEMP1,	0x06	;割り込み時間2ms
	OUT TCNT0,	R_TEMP1

MAIN04:
	;タイマ0桁溢れ判定
	SBRC R_FLAG,	B_TMR0
	RJMP MAIN05	;タイマ0桁溢れ

	RJMP MAIN04

MAIN05:
	;ロータリーエンコーダの回転方向を判定
	SBIC PINC,	B_RTY_ENC	;PINCのビット0が1ならCW、0ならCCW(PINCのビット0が0なら1行スキップ)
	RJMP MAIN10	;ロータリーエンコーダの回転方向がCWの場合
	RJMP MAIN20	;ロータリーエンコーダの回転方向がCCWの場合

MAIN10:
	;ロータリーエンコーダの回転方向がCWの場合
	IN  R_TEMP1,	PORTB
	CPI R_TEMP1,	0x00	;PORTBが0かどうか判定
	BREQ MAIN01	;PORTBが0なら何もせずにメインルーチンのループに戻る
	DEC R_TEMP1		
	OUT PORTB,	R_TEMP1		;PORTBが0でないならデクリメントする

	RJMP MAIN01

MAIN20:
	;ロータリーエンコーダの回転方向がCCWの場合
	IN  R_TEMP1,	PORTB
	CPI R_TEMP1,	0xFF	;PORTBがFFかどうか判定
	BREQ MAIN01	;PORTBがFFなら何もせずにメインルーチンのループに戻る
	INC R_TEMP1
	OUT PORTB,	R_TEMP1		;PORTBがFFでないならインクリメントする

	RJMP MAIN01

思い返せば初歩的な部分だと思うが、つまずいた部分としては…

	LDI R_TEMP1,	0B11111011	;PORTDのピン2はINT0なので入力にする
	LDI R_TEMP2,	0B00000000	;PORTDのピン2をプルアップなしにする
	OUT DDRD,	R_TEMP1
	OUT PORTD,	R_TEMP2

このPORTDのピン2を入力に設定する部分。ネットを検索すると、入力に設定しなくてもピンの値が変化すれば割り込みが発生すると書いてあるが、出力に設定しているピンの値を変化させるには、普通はソフトウェア的な処置が必要だろう。

今回のように、ロータリーエンコーダやスイッチで値を入力する場合は、やはり外部割りこみを兼ねるピンは入力に設定するべきだ。

もう一つ、外部割りこみ制御レジスタの部分。

;外部割り込み関連 レジスタ設定
	LDS R_TEMP1,	EICRA
	CBR R_TEMP1,	(1<<ISC00)
	SBR R_TEMP1,	(1<<ISC01)	;INT0がH→Lで割り込み発生
	STS EICRA,	R_TEMP1
	SBI EIMSK,	INT0	;外部割り込み0許可
ビット 7 6 5 4 3 2 1 0
EICRA ISC11 ISC10 ISC01 ISC00

表1 EICRAレジスタの構造

ISC01 ISC00 割りこみ発生条件
0 0 INT0がLow
0 1 INT0がLow→High、High→Low
1 0 INT0がHigh→Low
1 1 INT0がLow→High

表2 外部割りこみ0発生条件

始め、このレジスタのISC01、ISC00の部分を「01」と設定すると、「INT0がLow→High→Lowとなった時に外部割り込み0が発生する」とずっと勘違いしていた。つまり、形が「凸」のような波形を受信した時に割り込みが発生すると思っていた。

実際にはISC01、ISC00を「01」と設定しているとINT0がLow→Highになった時も、High→Lowになった時も、つまり波形の立ち上がりと立ち下がりの両方で外部割り込み0が発生する。

ロータリーエンコーダを1クリック回した時に外部割りこみ0の動作を2回してしまうのは何故か分からない原因の一つだった。

回路が上手く動かなくてハマっている2日余りのうち1日余りはこのレジスタ設定の勘違いに気付いていないからだった。

ロータリーエンコーダA相の出力とマイコンのINT0の間にNOTゲートを入れたのもこの勘違いによるもの。

まとめ

ロータリーエンコーダはチャタリング対策として、マイコンの入力端子とGNDの間にコンデンサを接続しよう。

ロータリーエンコーダやスイッチで外部割りこみを発生させるときは、そのピンは入力に設定しよう。

AVRの外部割りこみに「波形が立ち上がって立ち下がった時」という発生条件は無い。

以上、マイコン初心者が実験でこの知見を得るのに3日かかった…というお話でした!w

これで、ロータリーエンコーダを値セレクタとして使う準備は整ったので、次の段階に進める。

カテゴリー: 未分類 | コメントする

コールマンのガソリン2バーナー(413H、425F等)でアセトンは使えるか

結論

使えない。

使用不能

背景

エアブラシを使うときに必須のツールクリーナー。典型的な有機溶剤で、消防法の危険物の分類としては第4類第1石油類である。

ツールクリーナーは1l辺り1500~2000円位して高いなと思って調べたら、アセトンで代用している人も結構いるらしい。アセトンはヒロバ・ゼロで税込で1lが770円、2lが1210円、4lが1320円、18lが5073円で売っていて4lか18lなら結構安い(2020年9月15日現在)。そして、アセトンも第1石油類(水溶性)である。

ホワイトガソリンも第1石油類なので、引火点、沸点等の特性が近い筈…これはキャンプのガソリン機器に使えるのでは?と思った。

しかし、ネット上でガソリンの代わりにアセトンを使ってみたと言う情報は自分が検索した範囲では見つからなかったので、自分で確かめてみよう!と思った。

動機

何故そんな事をするかと言えば、ホワイトガソリンが高い、これに尽きる。

コールマン純正のホワイトガソリンは4lで3000円以上する。自動車用のレギュラーガソリンは時期にも依るが高くても1lで150円程度と考えたら、驚く程高価だ。後者は価格の半分以上税金で、前者は消費税程度しかかかっていないのにも関らずだ。

そこでネットで調べてみると、一斗缶で6400円~8100円程度のものが見つかる(2020年9月15日現在)。

しかし、アセトンの一斗缶はこれより更に安い上に、エアブラシ洗浄用としても使える。ホワイトガソリンは自分は燃料としてしか使い道が無い。

結果

始めは一瞬火が着くが、すぐに消えてしまう。挙動的に空気過多の様子。バーナーヘッドの段を減らしてやってみてもうまくいかない。

通常のバーナーヘッド
通常のバーナーヘッド
段を減らしたバーナーヘッド
段を減らしたバーナーヘッド

挙句の果てには、何日か経った後に通常のホワイトガソリンを入れて使おうとしたらポンピングのゴムが劣化し、チェックバルブも故障した模様でポンピングしてもタンクの圧がすぐに抜けてしまう。アセトンに侵されてポンピングやチェックバルブのゴムが駄目になったものと思われる。後でポンピングのゴムとチェックバルブ買って交換しないと…orz

ホワイトガソリン機器にアセトンを入れたらダメ、ゼッタイ。

原因の推定

燃え方がどう見ても空気過多(燃料が薄すぎる)という状態だったので、ガソリン燃焼の空燃比とアセトン燃焼の空燃比が違いすぎるのだろう。

ホワイトガソリンは、缶の表記に依ればベンゼン、トルエン、キシレン、n-ヘキサン、エチルベンゼンが含まれているらしい。

ホワイトガソリン缶の成分表示
ホワイトガソリン缶の成分表示


$$\require{mhchem}$$

$$\ce {2C6H6 + 15O2->12CO2 + 6H2O}…ベンゼン \\
\ce {C6H5CH3 + 9O2->7CO2 + 4H2O}…トルエン \\
\ce {2C6H4(CH3)2 + 21O2 ->16CO2 + 10H2O}…キシレン \\
\ce {2C6H14 + 19O2 ->12CO2 + 14H2O}…n-ヘキサン \\
\ce {2C6H5C2H5 + 21O2 ->16CO2 + 10H2O}…エチルベンゼン $$

$$
\ce {CH3COCH3 + 4O2 ->3CO2 + 3H2O}…アセトン$$

上5つがホワイトガソリンの成分、下1つがアセトンの燃焼式だ。この式から分かるように、それぞれの物質1に対して必要な酸素はベンゼン7.5、トルエン9、キシレン10.5、n-ヘキサン9.5、エチルベンゼン10.5と、それぞれの成分の含有率が不明な為正確ではないがホワイトガソリン1に対しておよそ10の酸素が必要であろう。対して、アセトン1に対して必要な酸素は4と、2.5倍もの開きがある。これでは、燃焼不良を起こしても納得と言うものだ。

総括

繰り返すが、ガソリン機器にアセトンはダメ、ゼッタイ。

まともに燃えない上にゴムの部品が駄目になり故障する。

カテゴリー: 未分類 | コメントする

CBR1100XXバーハンドル化 (ブレーキホース、クラッチホース、スロットルケーブル、チョークケーブル交換、スイッチハーネス延長)

バーハンドルに変えようと思った動機

CBR1100XXはスーパースポーツとツアラーの間のような性格で、一部ではメガスポーツと呼ばれるジャンルのバイクだ。

これに該当する車種と言えば、スズキ・GSX1300Rハヤブサや、カワサキ・ニンジャZX-14Rなど。

CBR1100XXは発売当時、市販量産バイクの中で世界最速だったと言う事もあり、速く走ることにも重きを置いている。

速く走ることに重きを置くと言う事は、ハンドルはセパレートでポジションは前傾と相場が決まっている(偏見)。

しかし、自分はサーキットで遊んだり、峠を攻めたりするような走り方はしないので、長時間乗っていても疲れない方が良いと思い、バーハンドル化することにした。前に丸1日かけて一般道で250km程ツーリングしたら、肩と手首が結構痛くなってしまったので。

バーハンドルキットと言えば、ハリケーンから35000円程度で出ている(キャブレターモデル用の場合)。

このキットは、恐らくホース、ケーブル(ワイヤ)、ハーネスを極力交換しないで、構造変更申請もせずに済む範囲を目指して開発されたものと思われる。取り付ければ、当然純正ハンドルよりは姿勢は楽になると思われるが、ネット上ではまだ若干前傾だと言う話を聞いた。

もうすぐ車検であり、ブレーキフルードやクラッチフルードを交換するし、車検のついでに構造変更申請をすれば非常に合理的だ。と言うことで、自分は前述の制約に縛られる必要は無いので、思い切ってホース・ケーブル交換、ハーネス延長を伴うハンドル交換に踏み切ることにした。

Before, After

ハンドル交換前のライディングポジション
ハンドル交換前のライディングポジション(身長182cm)
ハンドル交換前のハンドル周り
ハンドル交換前のハンドル周り
ハンドル交換後のライディングポジション
ハンドル交換後のライディングポジション(身長182cm)
ハンドル交換後のハンドル周り
ハンドル交換後のハンドル周り

ご覧の通り、ほぼ直立のライディングポジションになり、姿勢がかなり楽になった。

フューエルタンクとエアクリーナ取り外し

始めはフューエルタンクの取り外しは大変で難しそうだと思い外さずに作業を進めていた。しかし、タンクの取り外しはそんな気後れをするほど難しくは無く、寧ろタンクが付いたまま各種作業を進めるほうがタンクが邪魔でやりづらくて遥かに難しい。エアクリーナを取り外してその下にアクセスする作業をする時は、タンクはさっさと外してしまうことを勧める。

今回、誤ってタンクを支えているハンマーに腕が当たってしまい、タンクが落ちてファンネルに亀裂を入れてしまった。エアクリーナを外す以上の作業をする時はタンクは絶対に外した方が良い。

作業に先立ち、左右のアッパカウルカバーとインナパネル、左ロアカウル、フロントフェンダを外す。

タンクマウントボルト
シートを外し、タンクマウントボルトを外す。何気に前のユーザによってアーシングされている。自分はアーシングの効果については懐疑的な立場を取る人間だが、害を与えることは無いだろうし付いているものをわざわざ外す事は無いと思いアーシングケーブルは付けたままにしている。
タンクをハンマーで支える

タンクマウントボルトを外し、インナパネルの突起をタンク側部の穴から外し、タンク全体を後ろに引っ張るとタンク前方のマウントラバー(車輪のようになっている部品)がフレームから出てくる。その状態タンクマウントカラー(マウントボルトの周りに付いている筒のようなもの)を外し、マウントボルトを仮止めする。その状態でタンク前方を持ち上げ、ハンマー等で支える。

…と実際に序盤はこうして作業を進めたが、この時点でタンクは外してしまった方が良い。

エアクリーナカバーのスクリュを外し、エアクリーナカバーを外す。中々外れないなと悪戦苦闘していたら、カバー周りのスクリュは外していたが、カバー上面のスクリュを外し忘れていた。危うくカバーを壊すところであった。

エアクリーナケース

エアサクションホース(左側の丸印)を外し、ファンネルにエアクリーナケースを固定するクランプのスクリュ(右側の丸印)4つを緩める。

エアクリーナケース前方下部にブリーザチューブ(エアサクションホースと似たようなチューブ)が付いているので外す。

イグニッションコイルマウントナット

左右のイグニッションコイルマウントナットを外す。

エアクリーナケースを外す。

燃料コック・オーバーフローチューブ・エアベントチューブ

燃料コックを閉じ、オーバーフローチューブとエアベントチューブを外す。

フューエルチューブ、負圧ホース

フューエルチューブと負圧ホースを外す。これで燃料タンクが外れる。

スロットルケーブル、チョークケーブル交換

ハンドルがかなり高く手前になるので、スロットルケーブル、チョークケーブルを長いものに交換する。今回はハリケーンの車種別モデルの100mmロングを選択した。

右ハンドルバースイッチ

右ハンドルバースイッチ。スロットルケーブルを外す時は赤丸のねじを緩める。

右ハンドルバースイッチ

右ハンドルバースイッチを外すためのスクリュその1。

右ハンドルバースイッチ

右ハンドルバースイッチを外すためのスクリュその2。

右ハンドルバースイッチスクリュ

スクリュは長さが違うので気をつけよう。外したスイッチに仮付けしておいても良いかもしれない。

右ハンドルバースイッチ

フォークから右ハンドルバーを外したところ。この状態で、右ハンドルバースイッチからスロットルケーブルを外す。その様子の写真は撮り忘れた…。

タンクを外したところ

タンクとスロットルケーブルを外したところ。

キャブレターを上から見る

キャブレターを上から見る。スロットルケーブルは真ん中辺りから出ている。

キャブレター中心のアップ

キャブレター中心のアップ。スロットルケーブルは指で指している辺りに接続されている。こんなのタンクつけたままじゃ絶対外せない…。

スロットルケーブルチューブをブラケットに固定しているナットを緩めて、チューブをブラケットから外す。そして、ケーブルをスロットルドラムから外す。

外したスロットルケーブルとこれから付けるスロットルケーブル

上が外したスロットルケーブルで、下がこれから付けるスロットルケーブル。100mmロングと言うだけあり、確かに長さが100mm程違う。

新しくつけたスロットルケーブル

キャブレター側のみ100mmロングの新しいスロットルケーブルを付ける。

キャブレター側のチョークケーブルを外す。

左ハンドルバースイッチ

左ハンドルバースイッチを外すためのスクリュ。

左ハンドルバースイッチ

左ハンドルバースイッチを外すためのスクリュ。

左ハンドルバーのバーエンドを外し、グリップを外し、左ハンドルバースイッチを外す。スイッチからチョークケーブルを外す。

外したチョークケーブルとこれから付けるチョークケーブル

上が外したチョークケーブルで、下がこれから付けるチョークケーブル。長さが100mm程違う。

キャブレター側のみ100mmロングの新しいチョークケーブルを付ける。

クラッチホース、ブレーキホースの交換

ブレーキフルードやクラッチフルードを交換する際のエア抜きは結構大変なので、通常はリザーバのフルードを切らさないように気を付ける必要がある。しかし今回はホースを交換してしまうので、エア抜きは必須である。なので、リザーバの残量など気にせずガンガンレバーを握りまくる。

クラッチマスターシリンダ

ハンドルを右に切り、クラッチマスタシリンダをなるべく水平にする。クラッチマスターシリンダの周りをウエス等で保護し、スクリュを外しキャップを開ける。

クラッチマスタシリンダ

ダイヤフラムプレートとダイヤフラムを外す。

クラッチスレーブシリンダ

クラッチスレーブシリンダのブリーダバルブにメガネレンチを嵌め、透明なビニールチューブを付け容器で受ける。

ブリーダバルブを緩め、クラッチレバーを握る、放すをクラッチフルードが出なくなるまで繰り返す。

注射器

クラッチレバーを握ってもクラッチフルードが出なくなったら、注射器で更に吸うと良い。

クラッチマスタシリンダバンジョーボルト

クラッチマスタシリンダ側のバンジョーボルトを外す。

クラッチライン

丸印のボルトを外し、フレームからクラッチラインを外す。

クラッチラインを外しているところ

クラッチラインを外しているところ。

クラッチラインが外れたところ

クラッチラインが外れたところ。

スレーブシリンダ側のバンジョーボルト

スレーブシリンダ側のバンジョーボルトを外し、クラッチラインを車体から完全に外す。

クラッチスレーブシリンダバンジョーアダプタ

クラッチスレーブシリンダ側に新しいクラッチホースを付けるためのバンジョーアダプタを付け、ねじ部にグリスを塗る。

スレーブシリンダ・シーリングワッシャ・バンジョーアダプタ・シーリングワッシャ・バンジョーボルトの順で付ける。

クラッチライン

ブレーキラインの方も、クラッチラインと同様にしてフルードを抜き取る。

ブレーキキャリパーにブリーダバルブが2つ付いているが、アウターブリーダバルブ(上側に付いている方)から抜き取る。

3ウェイジョイント

3ウェイジョイントにグリスを塗る。

ブレーキライン

ブレーキラインを製作する。今回使用したのはActiveの310mm、360mm、535mmのホース。バンジョーアダプタはストレート30°が2つとサイド20°が1つ。

ブレーキホースの310mmは右ブレーキキャリパ、360mmは左ブレーキキャリパ、535mmはブレーキマスタシリンダ。

バンジョーアダプタのストレート30°はブレーキマスタシリンダと右ブレーキキャリパ、サイド20°は左ブレーキキャリパ。

トップブリッジの交換、バーハンドルの取り付け

ストッパリング

ストッパリングを外す。

左ハンドルバー

マスタシリンダホルダボルトを外し、マスタシリンダを外す。割り締めボルトを緩め、左ハンドルバーをフォークから外す。

トップブリッジ割り締め締めボルト

トップブリッジ割り締め締めボルトを緩める。

ステムナットを緩めるためのソケット

ステムナットを緩めるためのソケット。流石に12mmの六角ビットソケットは持っていなくて買って来た。

ステムナット

ステムナットキャップ(黒いゴムのようなもの)を外し、ステムナットを外す。

メインスイッチ

メインスイッチ取り付けボルトを外し、トップブリッジからメインスイッチを外す。

トップブリッジを逆さにして嵌める

メインスイッチ取り付けボルトを緩めにくいときは、トップブリッジを逆さにしてフォークに嵌めると良いかもしれない。

ハリケーンのメインスイッチ取り付けボルト

ハリケーンのメインスイッチ取り付けボルト。短い方と長い方の2組が付属しており、短い方がイモビライザが追加された中期モデル以降で、長いほうがイモビライザが無い初期モデル用。今回は長い方を使う。スペーサーを入れるのを忘れるとトップブリッジに対してメインスイッチの位置がずれて、ハンドルロックが出来なくなるので注意。

始め、スペーサーを入れ忘れてハンドルロックが出来なくて、原因を探るのに30分くらい焦った。ハリケーンの説明書にもちゃんと書いてあるのでよく読もう。

ハリケーンのトップブリッジにメインスイッチを取り付け

ハリケーンのトップブリッジにメインスイッチを付ける。トルク:22N・m

ハンドルホルダー

今回使用するハンドルホルダー。ハリケーン・セットバックホルダー(HB0651)

ハンドルバー

今回使用するハンドルバー。ハリケーン・POLICE 3型ハンドル。

ハンドルバーにスイッチ取付穴開け

ハンドルバーの右側に、スイッチ取付穴を開ける。

始めはバーの端からの距離を純正ハンドルと同じ位置にしたのだが、それだと外側過ぎる事が判明し、21mm程内側にずらしたら丁度良いことが判明。

ハンドルバーに付ける部品を並べて現物合わせを入念に行うことを勧める。

車体に仮付け

トップブリッジ、ハンドルホルダー、ハンドルバーを車体に付ける。

スロットルケーブルエンド

スロットルパイプにスロットルケーブルエンドを付ける。

左ハンドルバースイッチにチョークケーブルエンドを付ける。

ハンドルの組み立て

ハンドルにブレーキマスタシリンダ、クラッチマスタシリンダ、ハンドルバースイッチ、スロットルパイプを付ける。

マスタシリンダホルダボルトのトルク:12N・m

ブレーキマスタシリンダにブレーキホースを付ける。

クラッチマスタシリンダにクラッチホースを付ける。

バンジョーアダプタを付ける際にシーリングワッシャを忘れないように。トルク…バンジョーボルト:34N・m、ホースソケット部:8~10N・m

ブレーキキャリパ

左右のブレーキキャリパにブレーキホースを付ける。

バンジョーアダプタをブレーキキャリパに付ける際にシーリングワッシャを忘れないように。バンジョーボルトのトルク:34N・m

バンジョーアダプタのホース取付ねじ部にグリスを塗る(テーパー部には塗らないように)。バンジョーアダプタブレーキホースを付ける。トルク:8~10N・m

ホース類の取り回し

左ブレーキキャリパから3ウェイジョイント

左ブレーキキャリパから3ウェイジョイントまでのブレーキホース取り回し

右ブレーキキャリパから3ウェイジョイント

右ブレーキキャリパから3ウェイジョイントまでのブレーキホース取り回し

3ウェイジョイント付近

3ウェイジョイント付近のブレーキホース取り回し

クラッチホース

クラッチホース取り回し

スイッチハーネス延長

ハンドル交換に伴い、スイッチハーネスの長さも足りなくなるので延長する。

初期のキャブレターモデルは左右のスイッチもともに9極のコネクタで、MTW型9極(ハリケーン品番:HD1405)が合う。

しかし、今回は近所のライコランドにハリケーンの延長ハーネスは売っていなくて、デイトナのコネクター110型<セット>9極なら売っていたので、デイトナのコネクタと配線を買って、自分で延長ハーネスを製作した。

製作してみて思ったのは、合計18本も配線の両側の皮を剥いて圧着端子をかしめてコネクタに固定するのは、結構な手間な上にかかった合計金額もそこまで安くならなかったので、素直にハリケーンの汎用延長ハーネスを購入する事を勧める。

オープンバレル型の圧着端子をかしめる工具を持っていなかったら迷わずハリケーン一択だろう。

延長ハーネス製作の材料

ホームセンターで適当なスパイラルチューブを買ったが、デイトナから良い感じのハーネスチューブが出ていて、しかもコネクタを買ったのと同じライコランドにちゃんと在庫があった。よく見ておけば良かった…。

配線の両側に圧着端子をかしめる

合計18本の配線の両側の皮を剥いて、ひたすら圧着端子をかしめていく簡単だけどだるいお仕事。写真は片側分の9本が出来たところ。

延長ハーネス製作の材料

配線に端子を圧着し終わったら、コネクタに突っ込めば完成。これを左右分の2個作る。

延長ハーネスを付ける

製作した延長ハーネスをスイッチハーネスに付けて、防水のためにコネクタ部分は自己融着テープを巻いた。

クラクション用の延長ハーネス

クラクションのハーネスも長さが足りなくなったので、延長ハーネスを製作した。

フルードの注入、エア抜き

ブレーキフルード、クラッチフルードを注入してエア抜きをする。エア抜きのやり方の詳細は「ブレーキフルード エア抜き」等で検索して貰いたい。

ブレーキフルードの注入

マスタシリンダにブレーキフルードを注入し、系統にブレーキフルードを行き渡らせる。

エア抜き

エア抜きのやり方を簡単に書くと…

ブリーダバルブを緩める→レバーを握る→ブリーダバルブを閉める→レバーを離す、又は

ブリーダバルブを緩める→注射器を引く→ブリーダバルブを閉める→注射器を戻す

この動作をブリーダバルブ及びマスタシリンダからエアが出なくなるまで繰り返す。

エア抜きが終わったらバイクを手で押してブレーキをかけて利くか確かめる。利くようなら次はエンジンをかけて徐行して確かめる。

詳細は検索すれば分かりやすい動画なども沢山出てくるので、そちらを参照。

外したカウル等を元に戻して完成。4月25日の午後、4月26日の丸一日、4月29日の午前と時間にして丸2日程かかった。

エアベントチューブ交換

寿命を迎えたエアベントチューブ

実は、今回の作業時、エアベントチューブは脱落してミッションの上に載っていた。上の写真は新たにチューブを用意して取り付ける時のもの。始め、このチューブのタンクと反対側の行き先が分からなくて困り、調べた。

CBR1100XXな話

上記のブログの赤丸が、、なんだろ?そのまま地面に向って一直線。という部分。どこにも繋がらずに地面に向かっているらしい。エアベントと言う役割を考えれば、そりゃそうか…。脱落しても問題が起こらないわけだ。

新品の燃料チューブ

エアベントチューブなので、通常は燃料は通らないのだが、燃料系統の配管なので一応燃料に対応した新品のチューブに交換しておいた。

今回使用した部品

スロットルケーブル

ハリケーン ロングスロットルケーブルW. 100mmロングキャブ車用

チョークケーブル

ハリケーン ロングチョークケーブル. 100mmロング

クラッチホース

ハリケーン SURE SYSTEM LINE フル・ステンレス製

ハリケーンのページに依れば標準長は130cmなので、ハンドル交換をしたと言うことで10cm長い方がいいかなと思って140cmを選んだが、長すぎた。130cmで良かった。

後、ブレーキホースが黒で、クラッチホースが銀になりアンバランスになってしまったので、多少高くても黒を選べば良かった。

ブレーキホース、バンジョーアダプタ
アクティブ AC PERFORMANCE LINEブレーキホース310mm、360mm、535mm、3Wayジョイント、バンジョーアダプタストレート30°×2、サイド20°×1。

トップブリッジ

ハリケーン CBR1100XX ジュラルミントップブリッジ バーハンドル用

ハンドルホルダー

ハリケーン セットバックホルダー シルバーアルマイト

ハンドルバー

ハリケーン POLICE 3型 ハンドル

110型コネクタ9極

デイトナのコネクター110型<セット>9極、配線、スパイラルチューブ

トリムクリップ

古いクリップは劣化していて、外した瞬間足が折れたりする。何個か新品に交換した。

後はブレーキフルードとか。合計8万円くらいした…。

構造変更申請後の車検証Before, After

車検証

構造変更申請後の車検証Before, After。ちゃんと幅と高さが変わっている。

2件のコメント

CBR1100XXフロントフォークオーバーホール

ヤフオク!で入札する際に商品説明ページにも記載されていたのだが、CBR1100XXのフロントフォークからオイルが滲むので、フロントフォークをオーバーホールすることにした。

今回はフォークオイルの交換とフォークオイルにじみの是正が目的のため、フォークオイルとシール類の交換に着眼を置き、フォークチューブ、フォークスプリング、ダンパAssy等の点検は省略している。

フロントフォークの車体への取り付け手順を省略する代わりに、取り外し手順に主なボルト取り付け時のトルクを記載した。

フロントフェンダー
フロントフェンダーを外す。
クラクション
ブレーキホースをとめているクランプを外し、クラクションをとめているブラケットを外す。
フロントスタンド
フロントスタンドを立て、前輪を浮かす。
フォークキャップ
フォークキャップ(トルク:23Nm)を緩める。買った状態では、何故かハンドル上部からフォークが引っ込んでいた。前に整備した奴誰だ…。
Rブレーキキャリパ
右ブレーキキャリパマウントボルト(トルク:31Nm)を外す。ブレーキキャリパを針金等で吊るしておく。
Lブレーキキャリパ
セカンダリマスタシリンダボルト(トルク:31Nm)とピボットボルト(トルク:31Nm)を外し、セカンダリマスタシリンダと左ブレーキキャリパを外す。ブレーキキャリパを針金等で吊るしておく。
アクスルボルト
アクスルボルト(トルク:59Nm)を外す。右アクスル割り締めボルト(トルク:22Nm)を緩める。
Lアクスル割り締めボルト
左アクスル割り締めボルト(トルク:22Nm)を緩める。フロントアクスルを外し、フロントホイールを外す。
ブレーキホースクランプボルト
写真の角度が悪くて見えないが、左フォークの丸印の辺りにブレーキホースクランプボルトがあるので、外す。
ディレイバルブマウントボルト
ブレーキパイプ3ウェイジョイントマウントボルト(トルク:12Nm)、ディレイバルブマウントボルト(トルク:12Nm)を外す。
Lハンドルバー
左ハンドルバー割り締めボルト(トルク:26Nm)を緩め、左ハンドルバーを外す。
Rハンドルバー
右ハンドルバー割り締めボルト(トルク:26Nm)を緩め、右ハンドルバーを外す。
トップブリッジ割り締めボルト(トルク:23Nm)を緩める。写真撮り忘れた…。
Lボトムブリッジ割り締めボルト
左側のボトムブリッジ割り締めボルト(トルク:49Nm)を緩める。左フォークを外す。
Rボトムブリッジ割り締めボルト
右側のボトムブリッジ割り締めボルト(トルク:49Nm)を緩める。右フォークを外す。
外したフロントフォーク
外したフロントフォーク
フォークプロテクタ
フォークプロテクタを外す。
フォークキャップ
フォークキャップを外す。
ロックナット
フォークキャップをレンチで押さえて、ロックナット(写真の丸印のナット)を緩める。フォークキャップを外す。
スプリングカラー
スプリングカラーを外す。
ジョイントプレート
ジョイントプレート(ワッシャのようなもの)とフォークスプリングを外し、フォークを収縮させてオイルを抜き取る。
ソケットボルト
フォークスライダ底部にあるソケットボルト。
ソケットボルト外し
ソケットボルトを外す。シーリングワッシャ(銅ワッシャ)が中に残される事が多いので、それもドライバ等でこじって外す。
フォークダンパAssy
フォークダンパAssyを抜き取る。
ダストシールを外す。写真撮り忘れた…。
ストッパリング
フォークチューブを傷つけないようにドライバ等でこじってストッパリングを外す。
ストッパリングが外れたところ
ストッパリングが外れたところ
フォークチューブ
フォークチューブを強く往復させて、ボトムケースから引き抜く。オイルシールを付ける前にフォークオイルを塗り、新品に交換する。ガイドブッシュとフォークチューブブッシュは下地が3/4以上現れているか、著しく傷ついている場合に交換する。バックアップリングは横から見て変形していたら交換する。フォークチューブブッシュ(フォークチューブの一番下側に付いているC型のリング)は新品に交換する時以外は外さない。
オイルシール打ち込み
コンクリート等の固い面にボトムケースを置いて、フォークシールを打ち込む。本当はオイルシールドライバとスライダウェイトという専用工具があるのだが、持っていなかったので塩ビパイプで代用した。
ストッパリング、ダストシールを付ける。
オイルロックピース
オイルロックピースをダンパAssyに付ける。ダンパAssyをフォークチューブに付ける。フォークスプリング、スプリングカラー、フォークキャップを仮付けする。
ソケットボルトにネジロック剤を塗る
ソケットボルトにネジロック剤を塗る。
ソケットボルトに新品のシーリングワッシャを付ける
ソケットボルトに新品のシーリングワッシャを付ける。
フォークダンパAssy
フォークスプリング、スプリングカラー、フォークキャップを仮付けし、ソケットボルトを付ける(トルク:20Nm)。フォークキャップ、スプリングカラー、フォークスプリングを外す。
ノギスで簡易オイルレベルゲージ
ノギスで簡易的にオイルレベルゲージの代用にする。規定オイルレベルは142mmなので、ノギスは145mmにセットした。
フォークオイルを注ぐ
規定量(483±2.5cm3)を目安にフォークオイルを静かに注ぐ。
ダンパロッド
ダンパロッドを静かに数回収縮させる。
オイルレベル測定
フォークチューブを静かに数回収縮させて、エアを抜く。フォークチューブを一杯に圧縮してオイルレベルを測定する。規定レベルは142mm。
フォークスプリング
フォークスプリングをピッチが細かい方を下にして取り付ける。本当はダンパーロッドを引き出してからやる(ってサービスマニュアルに書いてあった)。
ジョイントプレート
ジョイントプレートを付ける。ロックナットを手で一杯に締める。
スプリングカラー
スプリングカラーを付ける。
フォークキャップ
新品のOリングにフォークオイルを塗り、フォークキャップに付ける。フォークキャップをロックナットに当たるまで締め付ける。ロックナットを20N・mで締め付ける。
フォークプロテクタ
フォークプロテクタをフォークスライダの溝に合わせて付ける。
外した時の逆順で車体にフロントフォークを取り付けて完成。トップブリッジからの突き出し量は39mm。
2件のコメント

CBR1100XXスーパーブラックバードを買ってしまった

昨年9月に愛知県運転免許試験場において一発試験で大型自動二輪免許を取得し、次に乗るバイクは何にしようか考えていた。

始めは父親がCB750FourとW1という、今だと整備済みのまともなものは100万円は下らないという伝説級のクラシックバイクを2台も所持していて、前に「大型バイク2台も持ってても仕方無いしどっちか売ろうかなー」とか言っていたのでどちらかを譲ってもらおうかと考えていた。

しかし、いざ相談してみると、「クラシックバイクはたまの休日にふらっと遠出して注目を集めて所有欲を満たすもので、通勤で乗るべきものではない」「すぐ錆びるので出来ればガレージに保管して、ワックスは切らさない事」と言われてしまった。

通勤で乗るつもりで、今はガレージを所有する事も不可能な状況なので、父親のバイクを譲ってもらうのは諦めた。

代わりにお勧めを聞いてみたところ、CBR1100XXスーパーブラックバードかINAZUMA 1200はどうかと言われた。曰く、出た当時は流行ったが、今は中古市場で不人気車種で弾数がいっぱいあって安いらしい。

本当ならCRF1100LアフリカツインとかVストローム1000XTとかVERSYS1000SEとかに興味があったのだが、これらは新車だとどれも150万円以上するし、中古でもどんなに安くても100万円以上する。親にもバイクにばかりに金かけてないで、今後の為に貯金しておいた方が良いと諭されてしまったので、勧められた二車種のうちから選ぶことにした。

調べていくうちにCBR1100XXは出た当時はホンダのフラッグシップ車で、雑誌の企画で300km/h出した事もあるという凄いバイクで、中にはヤフオク!で20万円を切る出品もあるなど、手を出しやすいという事が分かった。20万円前後で300km/h出るバイクが買えるって凄くないか!?とすっかり虜になってしまい、結局ヤフオク!で25万円で落札してしまった。

CBR1100XX

97年式で色は赤、エンジン好調、吹け上がり良好、オイル漏れ、水漏れ等なし。落札したのは2019年12月だが、2020年5月まで車検あり。難点はカウルに小傷とクラック、フロントフォークからオイルが若干滲んでいると言う事だった。

そのくらいの欠点は20年以上前のバイクで25万円と言う価格を考えれば仕方無い。というか、冷静に考えると製造から20年以上経っているって、クラシックバイクの域に片足を突っ込んでいる気がしてきた。ただ、CB750FourやW1みたいに錆びやすくて仕方無いと言うことはないだろう。

3件のコメント