• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+

さいとうあのブログ一覧

2022年09月20日 イイね!

走ってきた!

今日は娘の塾のお迎えの命令を承ったので11時まで晩酌はオアズケ。暇なのでHKS HIPERMAX IV GT 20SPECを試したくて一時間弱、走って来ました。

純正足で走ったことの無い道が中心でしたが、なんていうか別の車に乗っているような安定感。フラフラする様なロールがなくカーブではスッとロールしグッと踏んばるのでオンザレール感があります。ただ、純正足でも感じたゴムブッシュがよれるのか荷重が溜まるとより曲がろうとする感じはまだあります。

リアのポヨンポヨン感は全く発生せず。少し大きなバンプで車体がフワッと持ち上げられてもスッと着地してそのまま何もなかった様に走れます。これで高速でも安心して走れそうです。

後は路面の段差の吸収も純正ビル足とは全く違います。純正は段差でバンッ!と大きな音と衝撃が伝わってきてホイールが歪むんじゃないかという感じを受けますが、この足はもう少し低い音でボンッと吸収してくれます。例えるならホイールをインチダウンして扁平率の大きなタイヤにしたような感じ。

バネレートやショックの減衰力は純正よりハードになっていると思うので下からの突き上げが減ることはないですが、過渡に足がつっぱらないのでむしろ乗り心地は良くなっているように感じます。

とにかく、安心して走れるのでスポーツセレクターと相まって、スポーツ走行が今まで以上に楽しくなっちゃいました。正直、S4に乗り始めて「これは攻めて乗る車じゃなくてハイスピードクルージングする車かな」と思ってましたが、その認識がぶっ飛びました(笑)




Posted at 2022/09/20 21:14:18 | コメント(0) | トラックバック(0)
2022年09月20日 イイね!

車高調取り付けました

車高調取り付けました以前、メルカリで購入した車高調ですが、純正足の感じも少し分かったし、リアのポヨンポヨンがどうしても我慢できなかったので重い腰を上げて交換しました。

交換した車高調はHKS HIPERMAX IV GT 20SPECで、フロントとリアのバネレートが標準から1キロずつ落としてありF 8k/R 6kとなってます。

実家で工具を借りて黙々と。おかげて写真があまりありません(笑)

取り外す前にこんな感じでフェンダーから糸を垂らして糸とホイールの縁までの距離を上と下で測定しノーマルのキャンバーを求めました。


しかし、地面が水平でないみたいで左右はバラバラ。右は0度で左は−1.2度。平均すると-0.6度と標準値な感じ。

今日は雨で出来なかったので、天気のいい日に再測定して見ようと思います。同じ位置で車の向きを180度変えて測定すれば地面の傾きは分かると思うので。

車高はフェンダー下からホイールセンターまでで測りました。4輪とも約365mmと揃ってました。

で、取付後の車高は355mmとしました。前後共に1cmダウンで見た目は全然分からない。

キャンバーは右が-1度で左が-2.2度。同じ場所で測定なので地面が0.6度傾いてるとすると左右とも−1.6度位となります。この位の値ならとりあえずの走行には問題ないかな。

車高も1cmのダウンなのでトーもそんなに変わってないとは思いますが、暫く乗ったらプロにアライメント見てもらおうかなと思っています。

で、実家からの帰りに運転しましたが、雨のせいかのんびりなドライバーが多くフワンフワンが解消したのかまだよくわかりませんが、純正ビル足の違和感は感じなくなってリニアな動きになってそうな感じ。

減衰力は前15/後13として見ましたが乗り心地も悪化せずいい感じ。

晴れたときに少し山道を走って見て減衰力は少し変えて見る予定です。
Posted at 2022/09/20 15:02:35 | コメント(0) | トラックバック(0)
2022年09月18日 イイね!

左足ブレーキ

今の車になる前から左足ブレーキを練習しています。かれこれ2年以上は練習している感じ。

S4はブレーキが割といい位置にあって左足でも踏みやすい。折角のツーペダルなのでそのメリットを活かすために右足オンリーの操作から抜け出したい。

おかげで通常の運転では左足ブレーキでも違和感なく走れて、信号での停止でもなめらかに停止できる様になりました。

それとフルブレーキングでABSが効き始めたらブレーキを抜くとかそういう操作もそんなに難しく無い感覚になって来てます。

以前、マニュアル車に乗っていた時にラリードライバーの真似をして左足ブレーキを踏んだときは踏力を調整することができず、前荷重で鼻を内側に入れるどころかアンダーで外に行ってしまう感じでしたが今はもう少しコントロールできる様になりました。

まだ微調整は右足のほうが自信があるのと、左足ブレーキだと体をシートに押し付けるのにデメリットがありますが、ボケ防止の意味でも左足ブレーキを続けて行きたいと思います(笑)

そして、スポーツセレクターと左足ブレーキでマニュアル車とは違った操る楽しさを見つけたいと思ってます。

ただし、CVTのスポーツ走行での弱さもあるみたいなので、夏は基本的な操作の練習を積んで冬の雪道で低速でスポーツ走行を楽しみたいと思ってます(笑)
Posted at 2022/09/18 22:19:38 | コメント(0) | トラックバック(0) | 日記
2022年09月16日 イイね!

ステアリングリモコンでブルートゥースリモコンを制御する件⑥

というわけで、最後に回路図とソースを載せておきます。

ソースは一部にゃんカラさんのコードを流用していることもあり、商用利用は禁止としておきます。商用でこんなことしようと思う人も需要もないと思いますが(笑)

まずは回路図。手書きで汚くてすみません(汗)



そしてソース。

/*
* File: newmain.c
* Author: saito-a
*
* Created on 2022/07/29, 21:36
*/


// PIC16F1769 Configuration Bit Settings

// 'C' source line config statements

// CONFIG1
#pragma config FOSC = INTOSC // Oscillator Selection Bits (INTOSC oscillator: I/O function on CLKIN pin)
#pragma config WDTE = OFF // Watchdog Timer Enable (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable (PWRT disabled)
#pragma config MCLRE = ON // MCLR Pin Function Select (MCLR/VPP pin function is MCLR)
#pragma config CP = OFF // Flash Program Memory Code Protection (Program memory code protection is disabled)
#pragma config BOREN = OFF // Brown-out Reset Enable (Brown-out Reset enabled)
#pragma config CLKOUTEN = OFF // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin)
#pragma config IESO = ON // Internal/External Switchover Mode (Internal/External Switchover Mode is enabled)
#pragma config FCMEN = ON // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is enabled)

// CONFIG2
#pragma config WRT = OFF // Flash Memory Self-Write Protection (Write protection off)
#pragma config PPS1WAY = ON // Peripheral Pin Select one-way control (The PPSLOCK bit cannot be cleared once it is set by software)
#pragma config ZCD = OFF // Zero-cross detect disable (Zero-cross detect circuit is disabled at POR)
#pragma config PLLEN = OFF // Phase Lock Loop enable (4x PLL is always enabled)
#pragma config STVREN = ON // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will cause a Reset)
#pragma config BORV = LO // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
#pragma config LPBOR = OFF // Low-Power Brown Out Reset (Low-Power BOR is disabled)
#pragma config LVP = ON // Low-Voltage Programming Enable (High-voltage on MCLR/VPP must be used for programming)

// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.

#define _XTAL_FREQ 32000000
#include
#include "Flash.h"

#define Blue 1
#define Orange 2

// SW ap. B
#define NC 0
#define FORWORD 1
#define PREVIOUS 2
#define VOLPLUS 3
#define VOLMINUS 4
#define MUTE 5 //IN BLUE / OUT ORANGE
#define SRC 1
#define RINGUP 2
#define RINGDOWN 3
#define MIC 4

// NAVI Logic 3.3V
#define SW0 0UL // 前 mode
#define SW1 254UL // 1.24V 次 off hook
#define SW2 440UL // 2.15V VOL+ on hook
#define SW3 581UL // 2.84V VOL- mute
#define SWNC 682UL // 3.3V

// VDC_mode definition
#define VDC_ON 0
#define VDC_MULTI 1
#define VDC_OFF 2

// BLE_sw_definition
#define BLE_SW_ON 0
#define BLE_SW_OFF 1



void init(void) {

INTCON = 0b00000000;
T1GCON = 0b00000000;

OSCCON = 0b11110000; // Internal OSC 8MHz(32MHz)

ADCON1 = 0b11100000; // Right justified, AD変換クロック 2.0 micro sec, Vss, Vdd

ANSELA = 0b00000000;
ANSELB = 0b00000000;
ANSELC = 0b11000000; // RC6,RC7
TRISA = 0b00000000;
TRISB = 0b00000000;
TRISC = 0b11000000; // RC6,RC7 is INPUT
PORTA = 0b00000000;
PORTB = 0b01110000; //RB4,RB5,RB6 をBLE_SW_OFF(HIGH)に。 RB7 をVDC SW OFFに
PORTC = 0b00000000;

// DAC for Blue wire (10bit))
DAC1CON0bits.FM = 0b0;
DAC1CON0bits.OE1 = 0b0;
// DAC1CON0bits.OE2 = 0b0; //PIC16F1769には無い出力
DAC1CON0bits.PSS = 0b00;
DAC1CON0bits.NSS = 0b00;
DAC1CON0bits.EN = 1;

// DAC for Orange wire (10bit))
DAC2CON0bits.FM = 0b0;
DAC2CON0bits.OE1 = 0b0;
// DAC2CON0bits.OE2 = 0b0; //PIC16F1769には無い出力
DAC2CON0bits.PSS = 0b00;
DAC2CON0bits.NSS = 0b00;
DAC2CON0bits.EN = 1;


// OP Amp for Blue wire
OPA1CONbits.UG = 1;
OPA1CONbits.ORPOL = 0;
OPA1CONbits.ORM = 0;
OPA1NCHSbits.NCH = 0b0000;
OPA1PCHSbits.PCH = 0b0010; // DAC1 out
OPA1CONbits.EN = 1;

// OP Amp for Orange wire
OPA2CONbits.UG = 1;
OPA2CONbits.ORPOL = 0;
OPA2CONbits.ORM = 0;
OPA2NCHSbits.NCH = 0b0000;
OPA2PCHSbits.PCH = 0b0011; // DAC2 out
OPA2CONbits.EN = 1;



}

// convert analog value to SW number
// 470R
int convSwVal(long sVal) {
int retVal;

if(sVal < 131L) {
// 0R
retVal = 1;
} else if(sVal < 393L) {
// 162R
retVal = 2;
} else if(sVal < 637L) {
// 490R
retVal = 3;
} else if(sVal < 813L) {
// 1.3KR
retVal = 4;
} else if(sVal < 947L) {
// 2.7KR
retVal = 5;
} else {
// 100KR
retVal = 0;
}
return retVal;
}

void outDAC(int Wire, unsigned long AnalogVal) {
switch(Wire) {
case Blue: // Blue wire
DAC1REFH = AnalogVal >> 8;
DAC1REFL = AnalogVal & 0xFF;
DACLDbits.DAC1LD = 0b1;
__delay_us(20);
break;
case Orange: // Orange wire
DAC2REFH = AnalogVal >> 8;
DAC2REFL = AnalogVal & 0xFF;
DACLDbits.DAC2LD = 0b1;
__delay_us(20);
break;

default:
break;
}
}

// Output to pins
void outputSwData(int wire, int SW) {

switch(wire) {
case Blue: // Blue
switch(SW) {
case NC: // (NC)
outDAC(Blue, SWNC);// (NC) 
RB6 = BLE_SW_OFF;
RB5 = BLE_SW_OFF;
RB4 = BLE_SW_OFF;
break;
case VOLPLUS: // VOL +
outDAC(Blue, SW2);// VOL +
break;
case VOLMINUS: // VOL -
outDAC(Blue, SW3);// VOL -
break;
case FORWORD: // >
outDAC(Blue, SW0);// >
if (BLE_SW_OFF == RB4){ //真ん中ボタン押下中(送り長押し継続中)は送りボタンは制御しない
RB5 = BLE_SW_ON;
}
break;
case PREVIOUS: // <
outDAC(Blue, SW1);// <
RB6 = BLE_SW_ON;
break;
case MUTE: // Mute
outDAC(Orange, SW3);
break;
default:
break;
}
break;
case Orange: // Orange
if (SW != MIC){
RB7=0;
}
switch(SW) {
case NC: // (NC)
outDAC(Orange, SWNC);// (NC)
break;
case SRC: // SRC
outDAC(Orange, SW0);// SRC
break;
case MIC: // MIC
RB7 = 1;
break;
case RINGDOWN: // Ring off
outDAC(Orange, SW1);// Ring off
break;
case RINGUP: // Ring up
outDAC(Orange, SW2);// Ring up
break;
default:
break;
}
break;
default:
break;
}
}

void main(void) {
long blueVal;
int blueSw;
long orangeVal;
int orangeSw;

int vdc_mode;
char rom_data;

int time_count=0; //長押しカウンタ
int push=0; //長押しフラグ


init();

// 初期vdc設定読み出し
__delay_ms(3000);

rom_data=(char)FLASH_read(0x1f80);

if (rom_data==1){
vdc_mode = VDC_MULTI;
}
else if (rom_data==2) {
vdc_mode =VDC_OFF;
}
else {
vdc_mode= VDC_ON;
}

// 初期vdc制御

if (vdc_mode == VDC_MULTI) {
RB7 = 1;
__delay_ms(500);
RB7 = 0;
}
else if (vdc_mode == VDC_OFF){
RB7 = 1;
__delay_ms(2500);
RB7 = 0;
}

// BLEswitchペアリング処理
__delay_ms(6000);

RB4 = BLE_SW_ON;

__delay_ms(3000);
RB4 = BLE_SW_OFF;


while(1) {

// Blue wire
ADCON0 = 0b00100001; // AN8 ADC Start (RC6) 8pin
__delay_us(20);
ADCON0bits.GO = 1;
while(ADCON0bits.GO);
blueVal = ADRESL + (ADRESH * 256);
blueSw = convSwVal(blueVal);

outputSwData(Blue, blueSw);

// Orange wire
ADCON0 = 0b00100101; // AN9 ADC Start (RC7) 9pin
__delay_us(20);
ADCON0bits.GO = 1;
while(ADCON0bits.GO);
orangeVal = ADRESL + (ADRESH * 256);
orangeSw = convSwVal(orangeVal);

if(blueSw != MUTE){
outputSwData(Orange, orangeSw);
}

// vdc長押し(約5秒)で初期モード変更
if (orangeSw == MIC){
if (push == 0){
push = 1;
T1CON = 0;
TMR1H = 0;
TMR1L = 0;
PIR1bits.TMR1IF = 0;
T1CON = 0b00110001;
}
if (PIR1bits.TMR1IF == 1){
time_count++;
PIR1bits.TMR1IF = 0;
}
if (time_count == 75){
vdc_mode++;
if (vdc_mode>2){
vdc_mode = 0;
}
FLASH_erase(0x1f80);
FLASH_write(0x1f80,vdc_mode,0);
T1CON = 0;
time_count++;
}
}


// FORWARD長押しで真ん中BLEスイッチON
else if ( blueSw == FORWORD || blueSw == PREVIOUS ){
if (push == 0){
push = 1;
T1CON = 0;
TMR1H = 0;
TMR1L = 0;
PIR1bits.TMR1IF = 0;
T1CON = 0b00110001;
}
if (PIR1bits.TMR1IF == 1){
time_count++;
PIR1bits.TMR1IF = 0;
}
if (time_count == 16){ //長押し検出
if ( blueSw == FORWORD ){ //送り長押し→真ん中ボタンON、送りボタンOFF
RB5 = BLE_SW_OFF; //RB4-ONとRB5-OFFの順番を逆にするとうまく動かない
RB4 = BLE_SW_ON;
}
else if ( blueSw == PREVIOUS ){ //戻り長押し→強制ペアリング 2.2秒 送り&戻りON
RB5 = BLE_SW_ON;
__delay_ms(2200);
}

}
}
else{
push = 0;
T1CON = 0;
time_count =0;

}
}
}


---ソースここまで---

これに加えてMICROCHIP社の発行しているフラッシュメモリの解説PDFの最後の方にある
Flash.c
Flash.h
HEFlash.c
HEFash.h
を一緒にコンパイルして下さい。
Posted at 2022/09/16 21:46:09 | コメント(0) | トラックバック(0) | 日記
2022年09月16日 イイね!

ステアリングリモコンでブルートゥースリモコンを制御する件⑤

昨日のブログで後に少し追記した件。

BLEリモコンのマニュアルを見ると強制ペアリングモードに移行するのに、戻り・送りボタンを両方同時に押すという操作が説明書にありました。これを盛り込むために最終修正。

ステアリングリモコンは抵抗値で押しているボタンを判断していますが、複数のボタンを同時に押すことは想定しておらず検出できません。

なので、戻りボタンを長押し(約1秒)したら強制ペアリングの制御をすることにしました。

プログラムの修正をさくっと行って車で動作確認。強制ペアリングモードに移行することは確認できましたが・・・これ、使いみちがほぼなさそうです。

というのもすでにペアリング済みのスマホとうまく接続ができていないときにこの操作をしてもBLEリモコン側だけの制御ではどうにもならず、スマホ側でペアリングの解除→ペアリングの許可という操作をしなくてはいけません。

これならば、真ん中ボタン長押しでBLEリモコンの電源OFFし、再度長押しでBLEリモコン起動→登録スマホとのペアリングの動作を行うほうが、スマホの操作が必要がなくて良さそうです。

また、少なくともスマホのブルートゥースをONにしておけば、車に乗り込んでエンジンをかけて自動的に接続される動作に不安定さはなかったので、強制ペアリングの機能は不要かもしれません。

それと、話が少し変わりますが、昨日の動作確認でエンジン始動時の自動VCDモード設定の動作が怪しいと書いた件、多分理由がわかりました。

エンジンを切ってもすぐにACCがオフにならず、その間に再度エンジンオンをすると私の作った制御基板は起動時のVDCスイッチ制御を行わない(もしくは変なタイミングで行ってる)ようです。ちゃんとエンジン切ったあと、MFDの画面が消えるくらいまで待ってからエンジンを始動すると問題なく動作しました。

通常の使用では、エンジン切ってすぐにエンジンをONすることもないし、この動作がわかっていれば、自動でモード制御してくれなくても手元でモードを変更すればいいだけなので、こちらの動作はこのままということにしました。

というわけで、ステアリングスイッチで遊ぶのはネタ切れとなりまして、また新たな遊びを見つけない限りはこのままで。

A型の車にA型のステアリングリモコンを買っていたらこんな機能を盛り込もうなんて思わなかったので、A型のステアリングリモコンを買うより開発環境を整えたり部品を買ったりとお金がかかってしまいましたが、盛り込めた機能を考えたら安く済んだかなと思いました(笑)

Posted at 2022/09/16 21:38:39 | コメント(0) | トラックバック(0) | 日記

プロフィール

「@オビワン・ケノービ さん
まだ人工雪なので硬めでザラザラしてますね。
まぁ、シーズンはじめの足慣らしには十分でしたよ〜」
何シテル?   11/27 13:58
趣味の自転車にうつつを抜かしオイル交換等メンテナンスをおろそかにしていたGC8Fが家族旅行中にエンジンブローし廃車に。車はレッカー移動で人間は新幹線で帰宅・・・...
みんカラ新規会員登録

ユーザー内検索

<< 2022/9 >>

     1 2 3
4 5 6 7 8 910
11 12 13 14 15 1617
1819 20 21 222324
25 26 27 2829 30 

ブログカテゴリー

リンク・クリップ

スポーツセレクターをDIYでなんとかする件① 
カテゴリ:その他(カテゴリ未設定)
2024/06/14 06:40:31
CVTコントロールバルブ交換 
カテゴリ:その他(カテゴリ未設定)
2023/06/03 20:38:32
[スバル WRX S4] 整備・・・?WRXの裏コマンド 
カテゴリ:その他(カテゴリ未設定)
2022/11/06 16:15:31

愛車一覧

スバル WRX S4 スバル WRX S4
スキー復活でFFのプレマシーから乗り換え。レヴォーグを買おうと思っていたのですがいつの間 ...
スバル インプレッサ スバル インプレッサ
スバル インプレッサWRXに乗っています。

過去のブログ

2025年
01月02月03月04月05月06月
07月08月09月10月11月12月
2024年
01月02月03月04月05月06月
07月08月09月10月11月12月
2023年
01月02月03月04月05月06月
07月08月09月10月11月12月
2022年
01月02月03月04月05月06月
07月08月09月10月11月12月
2014年
01月02月03月04月05月06月
07月08月09月10月11月12月
ヘルプ利用規約サイトマップ
© LY Corporation