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

サス班のブログ一覧

2025年05月13日 イイね!

スポーツできるファミリーカー

スポーツできるファミリーカーもともとMAZDA3が欲しかったんです笑
あの唯一無二なデザインはツボにドンピシャハマっていましたが、子供が産まれる時に買う車ではないかと諦めました。

そんな時にMAZDA6ワゴンを見てみたところ、スポーツアピアランスとして、黒いシグネチャーウイング、黒ホイール、ポリメタグレーを発見。これは実質MAZDA3ワゴンなのでは?(倒錯)
長いボディもかっこいいぜ!とMAZDA6に決めました。

入社したときにアテンザワゴンが会社においてあり、「こんなでかい車誰が買うんだ?」と思ってましたが、まさか自分が新車で買うとは思いませんでした。基本設計何年の前だよ!
とはいえ、安全機能なども今どきの装備でアップデートされているため、不満はありません。

ワゴンタイプのためベビーカーや帰省の荷物を積んでもまだ余裕がある積載量。長距離を快適に移動できるツアラーとしても優秀。

Posted at 2025/05/13 23:27:54 | コメント(0) | クルマレビュー
2025年05月03日 イイね!

初の美浜サーキットフリー走行

初の美浜サーキットフリー走行久々の更新。

同期のアテンザワゴン乗りからサーキット走行のお誘いがありました。

MAZDA6を新車で買ってから大人しくしてきましたが、この車の限界を見ていたい気もしており、納車後1年は経ったのでサーキット遊びに行ってきました。

周りはGR86やロードスター、ヤリスなど今時のスポーツカーばかりでかなり浮いた感じ(笑)



駐車場間違えてますよ感(ΦωΦ)

1枠(20分)だけでもいいかなとは思ってましたが、同期にのせられ3枠分を購入しました(2枠で十分でした(笑) タイヤの消耗を気にして攻められない)


ゆっくり走り始めて、徐々にペースアップ。だんだん調子こいて途中からESPをOFF!

流石に足回りも純正のため、リアが破綻することなく、ミスってもフロントが逃げるのみ。安心して攻められました。
(ロドはだいぶ特殊なセットだったなと実感)

始めてFFでスポーツ走行してみましたが、思ったより曲がるなぁという印象と、アクセルで鼻を引っ張る感じが独特でした。早めのアクセルで向きを変えていく感じ。

ABSか何かしらの制御が残っているのか、ブレーキング時などにペダルを押し返す感覚が。Gベクタリングも利いているのか制御に助けられている感じ。

ATのスポーツモードで走りましたが、今何速かわからない&シフトダウンしてくれない時があってロスすることも多かったです。

かる~く走るつもりでしたが、結局熱が入ってしまい高級な純正タイヤをだいぶ減らしてしまいました。
来週の点検で何か言われるかな?(タイヤウ◯コだらけ…)






車の特性を把握できるいい機会でした。
またタイミングを見つけて走りたいです。
Posted at 2025/05/03 10:09:04 | コメント(2) | トラックバック(0)
2021年12月12日 イイね!

【Arduino】タコメータをPCに付けて動かしてみよう!

【Arduino】タコメータをPCに付けて動かしてみよう!突然ですがタコメータを買いました。






alt
Aliexpressで1151円!(+ 送料)

格安です。 ほぼ本体買えるくらいの送料で1週間くらいで届きました。

「Dyna Racing」というブランドらしいです。特に情報はありません。

これまでの格安メータに比べたらデザインもよくなってますね。
オートゲージもDefiを見習い(パクr)シンプルデザインが増えてきています。

alt


ぱっと見、1000円には見えないクオリティだと思います。
まぁ2000円くらいですかね(笑)
ピークホールドもついており、ボタンで操作しますが、そのボタンがカタカタなので、
車で使用したらカチャカチャうるさくてしかたないと思います。(おススメしません)


まぁ車もいじっていないので何がしたかったかというと。

alt
パソコンに付けました。あらカッコいい。(意味不明)

パソコンの外部インジケーター(CPU使用率 表示)として使い始めました。
それだけです。ロマンです。


よくArduinoを使ってタコメータを作ろう!という試みをよく見ますが、
今回は、Arduinoマイコンを使って、タコメータを動かしたいと思います。


alt


パソコンのCPU使用率や温度などをタコメータに表示するプログラムを作成します。
パソコンのPythonで書いたプログラムから、Arduinoにシリアル通信で情報を送ります。
そして、Arduinoで受けた数値からエンジン回転数の疑似信号をパルス信号で作成して、タコメータに送り針を動かします。


なぜタコメータなのかというと、Arduinoのパルス制御と相性がよさそうだったからです。
水温計などの温度計だと、サーミスタの抵抗値の変化で針が動くので、抵抗・電流・電圧を制御してやらないといけません。

また、水温計とかだと 40~140℃とか中途半端な表示領域なので 0~100 のタコメータのほうが使いやすい。

あとは机にタコメータが置いてあるロマン!




さっそくプログラムに入るその前に、このメータはレブリミットの警告が付いています。
(デフォルトだと6千回転以上で警告音&点滅が始まります。)

やかましいので早速分解してブザーを外します(商品到着 1時間後 )

alt
メータ外周部のカシメを外して、分解します。
オートゲージのOEMかと思いましたが、中身は違うようです。


alt
基板を外すと下のブザーがありますので、もぎ取ります。
ブザーを外したことで警告が出ても静かですし、なぜかレブリミットが10000rpmに切り替わりました(謎)


alt
メータ裏に電源と信号線のコネクタがあるので、12VのACアダプタで給電します。


パソコンからシリアル通信でCPU使用率などを送信し、Arduinoで受けたデータをパルス信号として出力して、メータのエンジンパルス線に入力します。
信号入力には、Arduinoのデジタルピンの5V信号で問題なく動きました。


arduinoはライブラリでPWM(パルス幅変調)が利用できますが、タコメータの場合はエンジンの回転数に応じてパルスの周波数が変化するためPFM(パルス周波数変調)が必要になります。

(追記:純正ライブラリのtone関数で動かせるかも。16Hz以下の制御は出来なそうです。)


とてもわかりやすく解説されている方がおられましたので参考にさせていただきました。


今回のタコメータでは以下の対応表で動かせました。



 ・メータ針[RPM]      0, 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000
 ・RFM周波数[Hz]    0,     50,  100,   155,   200,   250,   300,   345,   395,  450,    500                  

alt
出力周波数 100Hz (メータ 1000rpm)

alt
出力周波数 250Hz (メータ 5000rpm)

alt
出力周波数 500Hz (メータ 10000rpm)



確かにパルスの周期が変わってます。
動かすとこんな感じ。
まだブザーがついていた時。

ステッピングモーターが静かでとても良い!
オートゲージのスイス製のモータは「ジーーーー」とギア音がうるさくて、
机上用途では使いにくかったので(意味不明)


ひとまず動作確認できたので、Pythonでパソコンから信号を送るプログラムを作りました。
シリアルのCOMポートをオープンし、CPU使用率をbyte形式で送ります。


パソコンから受信した指示値をそのまま表示したもの。
針のキビキビした感じはこっちのほうが良いか?(機械式っぽい?)

まぁモニター下でキビキビ動かれても五月蠅いだけなので、針を滑らかに動かすよう変更(/・ω・)/



滑らかに動かしたくて、指示値を加算・減算しました。
動きが滑らかですが、目標値までの追従は遅いです。

データの送信側と受信側それぞれのdeley等を早くすればそれなりに追従します。


そんなこんなで格安タコメータを利用したPCインジケーターでした。

電源系の作成と、CPU温度やメモリ使用量などの表示などテキトーに追加してく予定です。
ではでは。








Pythonプログラム
--------------------------------------------
# -*- coding: utf-8 -*-
import serial
import time
import psutil

Ser = serial.Serial('COM3',9600, timeout=None) # COMオープン。Arduinoが初期化を開始
time.sleep(3.0) # Arduinoが初期化するまで待つ

for i in range(10000): // テキトー
    cpu = str(round(psutil.cpu_percent(interval=0.5))) # CPU使用率(float→str)
    print(cpu)

    Ser.write(str.encode(cpu)) # Str→byte
    Ser.write(b'\n') // 改行コード
    time.sleep(0.5)
        
    ### テスト ###
    # Ser.write(b'500\n')  # 10000 rpm 
    # time.sleep(3)
    # Ser.write(b'0\n') # 0 rpm
    # time.sleep(3)

Ser.close() # COMクローズ

--------------------------------------------



Arduinoプログラム
--------------------------------------------
#include <avr/io.h>
#define PWMPin 10

// メータ針[RPM]      0, 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000
// RFM周波数[Hz]      0,   50,  100,  155,  200,  250,  300,  345,  395,  450,   500

int frq = 0;
int cnt = 0;
int CPU = 0;

void setup() {
  pinMode(PWMPin, OUTPUT);
  Serial.begin(9600);
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);  //  動作確認用LED
}

void loop() {
  int cnt_Lv = 2;
  int delay_inv = 5;

  if (Serial.available() > 0) {
    // メーター制御
    String Rdata = Serial.readStringUntil('\n'); // 改行コードまで受信
    int Rdata_int = serialStringToInt(Rdata); // 文字列⇒整数型
    CPU = map(Rdata_int, 0, 100, 0, 500); // 幅制限
  }

  if (CPU >= 10) { // 細かい動きがウザいため10%以下は表示しない

    // 針の動きを滑らかにする。目標に対して加算・減算する。
    if (CPU > cnt) {
      if (cnt < 500) { // MAX500まで
        cnt = cnt + cnt_Lv;
        digitalWrite(13, HIGH);
      }
    } else if (CPU < cnt) {
      if (cnt > 50) { // MIN 50まで
        cnt = cnt - cnt_Lv;
        digitalWrite(13, LOW);
      }
    } else {
      digitalWrite(13, LOW);
    }
  }else{
    cnt = 50; // 1000rpmで固定
  }

  //Pulse_out(CPU, 0.5); // 速く
  Pulse_out(cnt, 0.5); // 滑らか

  delay(delay_inv);
}

// パルス周波数変調
int Pulse_out(int FRQ, float DUTY) {
  // 周波数設定値
  TCCR1A = 0b00100001;
  TCCR1B = 0b00010010;
  OCR1A = (unsigned int)(1000000 / FRQ);
  OCR1B = (unsigned int)(1000000 / FRQ * DUTY);
}

// String⇒int変換
int serialStringToInt(String str_val) {
    # 以下のサイトからのそのまま引用なのでリンクで。
}
--------------------------------------------

Posted at 2021/12/12 18:35:12 | コメント(0) | トラックバック(0) | 日記
2020年10月26日 イイね!

【Arduino】PCボリュームコントローラ作ってみた!

【Arduino】PCボリュームコントローラ作ってみた!

久々の工作日記。

しばらく前からリモートワークやWEB会議が多くなり、ヘッドホンやイヤホンをつけたまま仕事をすることも多くなりました。

会議中に唐突にマイク音の大きい人がしゃべることにより、聞きたくもないおっさんの吐息が耳の中へ流れ込みます・・・( ゚Д゚)

急いでボリュームを絞ろうとして、別のアイコンをクリックしてしまったりするので、単独でPCのボリュームをグリグリ調整できるコントローラが欲しくなりました。
キーボードのショートカットでも操作できますが、両手を使わないといけないので、とっさには操作しづらい・・・


市販品もありますが、カッコいい市販品は無駄に高い・・・
中華品の製品を見てみたらと、質素な基盤とツマミだけで数千円するので、これなら自分で作れるぞ!っと調査開始。

Arduinoを使ってコントローラを作っている人がいるようなので、自分も真似してみました。



alt

完成です。

素材はジャンクパーツから外してあった部品で作成。
可変抵抗の電圧値をArduinoで読み取ってやり、PCへボリューム変更の信号を送ります。


素材
 ・100均の缶カラ
 ・可変抵抗
 ・なんか良さげなノブ
 ・ケーブル
 ・ピンソケット
 ・Arduino UNO (ここが失敗・・・)



こういうものは触った時の重さが質感を出すので・・・

alt

中華風ナットでずっしり作戦!

デットニング材を張り付けることで、触った時の”カラカラ”いう安っぽい軽い音も防止。


alt

Arduino Leonardo(互換機)を使用。


ArduinoはUnoではなく、Leonardoを使用しました。

こいつが何かっていうと、PCとつなげることでマウスやキーボードなどのUSBデバイスとして認識させることができます。
つまり、マウス操作などをプログラムすることで、誰も操作していないのに定期的にマウスが動き、リモートワーク中に「退席中」にならないデバイスが作れるわけです。


当初、手持ちのArduino Unoのファームウェアを書き換えて、USBデバイスとして認識させようと思いましたが、自分のはバージョンが古いR2であったためうまくできませんでした。(海外フォーラムだと成功例あり??)

Arduino UNO R3であれば、ATmega16U2のファームウェアを書き換えれば、HIDキーボードデバイスとして認識させることができるようです。


ArduinoUno作戦がうまくいかなかったため、急遽Arduino Leonardoの互換機(600円)を追加購入しました。




んで出来たのが上の写真。
Arduino Leonardoがキーボードとして認識され、可変抵抗から出た電圧を読み取り、その値の変化に応じてPCへ音量Up/Downの信号を送ります。



ここで何も考えず作業を始めてしまったことで、失敗に気づく・・・ 

 当初、可変抵抗を動かすことで、PCへ送る信号として「PCの音量を20%にしろ」、「PCの音量を50%にしろ」という信号を送れると考えていました。
でも良く調べてみると「PCの音量を1上げろ」、「PCの音量を1下げろ」しか指令できないことに気づく・・・

 可変抵抗は回転範囲が限られているため、上で書いたような指令の出し方では相性が悪い。
回転の絶対位置でボリュームが規定できるわけではなく、現在の音量設定からの相対位置で指示を送ることになるので、PC側で音量を変更した場合、可変抵抗の角度と差が生まれてしまいます。

たとえば、
alt


理想: 最小0 ⇔ 最大100

可変抵抗の最小点を音量0、最大点を音量100にするのが理想。


でもPC側の音量をマウスで変更してしまうことで、PC音量100、でもノブの位置は最小地点で、これ以上下げられない!って状況が生まれてしまいます。

alt

音量を下げる側に動かせない・・・

素直に初めからロータリーエンコーダを使用するべきでした。エンコーダなら今の位置からの角度変化を検出して指示が送れるので、こんなことはおきません。

そこで、音量を最小にしたときに、「音量を1下げる」信号を送り続けて、初期位置補正をするようにしました。


扱いになれれば、とても便利なデバイスになりました(/・ω・)/
これで唐突な音量変化にも対応できるぞ!

安いエンコーダも買ってあるので、気が向いたときに組み替えたいと思います。




キーボード操作部分のヘッダーファイルはこの記事を参考にさせていただきました。

#include "ConsumerControl.h"

int val_old;
int cnt = 0; // 音量最小時のカウント 音量が一番小さいときにカウントを開始。
// 最小時に25カウント以上すると通信を終了する。

void setup() {
  Serial.begin(9600);
}
void loop() {
  int val = analogRead(0);
  int valm = map(val, 0, 1023, 0, 100);
  Serial.println(valm);

  // ボリュームを最小にしたとき ⇒ 音量小ボタンを押し続ける。
  if (valm <= 1 & cnt < 25) { // 25カウント以上ループした場合、機能を無効化する。
    Serial.println("Volume DOWN");
    ConsumerControl.press(VOLUME_DOWN); // 音量小ボタンを押す
    ConsumerControl.release(); // ボタンを離す
    val_old = valm;
    cnt = cnt + 1;
  }

  // ボリュームを大きくする
  if (valm > val_old + 2) {
    Serial.println("Volume UP");
    ConsumerControl.press(VOLUME_UP); // 音量大ボタンを押す
    ConsumerControl.press(VOLUME_UP); // 音量大ボタンを押す
    ConsumerControl.press(VOLUME_UP); // 音量大ボタンを押す
    ConsumerControl.release(); // ボタンを離す
    val_old = valm;
    cnt = 0;
  }
  // ボリュームを小さくする
  if (valm < val_old - 2) {
    Serial.println("Volume DOWN");
    ConsumerControl.press(VOLUME_DOWN); // 音量小ボタンを押す
    ConsumerControl.press(VOLUME_DOWN); // 音量小ボタンを押す
    ConsumerControl.press(VOLUME_DOWN); // 音量小ボタンを押す
    ConsumerControl.release(); // ボタンを離す
    val_old = valm;
    cnt = 0;
  }

  // 変化がない場合
  if (valm == val_old) {
    Serial.println("-------");
  }
  delay(20);
}


Posted at 2020/10/26 22:50:05 | コメント(1) | トラックバック(0) | その他 | 日記
2018年12月10日 イイね!

ビギナーズジムカーナ2018 フェスティバル!

ビギナーズジムカーナ2018 フェスティバル!ビ筑 2018フェスティバルに参加してきました!

昨年度は参加しなかったため、フェスティバルはおととし以来の参加です。



まずはコースから。



例年と違って、コテコテにしてはシンプルかもしれない(笑)
ハイスピードなコースになっており、スピードとライン撮りに悩みます。


前回の最終戦でサイドの効きに不安があったので、空気圧を少し高め&リア減衰高めのコースジムカーナ仕様のセットで走りました!

朝は寒く、気温も10℃ほどでした。



練習走行でなんとな~く走ってみよう!っと気合を入れずに走ったらそこそこのタイム(*´Д`)
練習で3位ほどで、これはまさか・・・っといつもの悪い癖が出ました。。。


1本目でP3、ミスコース!!(爆)
なんこかパイロンをひっかけ、最終セクションで正面からパイロンにゴッツンコ。


心が折れました。バックギヤ入らないし・・・


気を取り直して2本目。

気温も14℃くらいまで上がり、路面も温まってきましたが、
空気圧を変えるのを忘れてテールハッピー!



無難に走れたかな?っとタイムを見ると全く伸びず(*´з`)

フェスでの入賞はなりませんでした!






続いて、フェス恒例のバトルジムカーナ!

おととし参加した時は、基本スラロームにターンが1個あるくらいでしたが、今年のコースを見てびっくり。ガッツリジムカーナやん!

ルールを確認することに必死で、また空気圧を変えることを忘れる(笑)
相手はコペンの常連さん!



やらかしました(笑)
リアがズルズルで楽し~♪っと踏みまくっていたら、プッシングアンダー気味にゴール前のパイロンに接触orz

完熟歩行時に「こんなんスラロームじゃないじゃん!ただのゲートじゃんwww!」
などとほざいていた自分を殴ってやりたい(笑) 見事その”ゲート”を吹っ飛ばし敗北。
踏んだ瞬間ミッキーマ〇スみたいな声出てるし・・・(´・ω:;.:...

チーム分けもテキトーだなーっと思っていましたが、
出走のばらつきのせいか、フルボッコな試合がなかったのが良かったですね!
皆さんいい勝負をしていましたし、アウディの活躍が一番盛り上がったかも♪(*‘∀‘)


そんなこんなでフェスの報告でした!
Posted at 2018/12/10 20:05:10 | コメント(2) | トラックバック(0) | 日記

プロフィール

「点検でマツダへ。娘氏、NDを指さし「どーどすたー!」と大はしゃぎ。いい傾向です!」
何シテル?   05/10 11:19
サス班と申します. 名前の由来は学生時代にサークルでサスペンションの設計・製作を行っていたから^^ 写真,映画,革細工が趣味です♪ 素人ながらできるだ...

ハイタッチ!drive

みんカラ新規会員登録

ユーザー内検索

<< 2025/8 >>

     12
3456789
10111213141516
17181920212223
24252627282930
31      

リンク・クリップ

PHILIPS スマホホルダー 
カテゴリ:その他(カテゴリ未設定)
2025/06/17 22:48:12
Alfanxi ハンドステッチ アルカンターラ 
カテゴリ:その他(カテゴリ未設定)
2025/05/23 00:27:35
ステアリングカバー縫付け 
カテゴリ:その他(カテゴリ未設定)
2025/05/20 07:20:10

愛車一覧

マツダ MAZDA6 ワゴン マツダ MAZDA6 ワゴン
ついに実用的な車を手に入れました。 今時少なくなってきたステーションワゴンです。 荷物 ...
マツダ ロードスター マツダ ロードスター
またここに戻ってきてしまった. 身近に手放す人がいたので保護しました. やっぱりこの動 ...
スズキ カプチーノ スズキ カプチーノ
FRオープンスポーツが忘れられず,購入! スズキ カプチーノ 平成8年(1996) 後 ...
マツダ ユーノスロードスター マツダ ユーノスロードスター
1997年製NA8C(Sr.2) 500台限定のR2リミテッドです. 真っ白なボディに ...

過去のブログ

2025年
01月02月03月04月05月06月
07月08月09月10月11月12月
2021年
01月02月03月04月05月06月
07月08月09月10月11月12月
2020年
01月02月03月04月05月06月
07月08月09月10月11月12月
2018年
01月02月03月04月05月06月
07月08月09月10月11月12月
2017年
01月02月03月04月05月06月
07月08月09月10月11月12月
2016年
01月02月03月04月05月06月
07月08月09月10月11月12月
2015年
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月
2013年
01月02月03月04月05月06月
07月08月09月10月11月12月
2012年
01月02月03月04月05月06月
07月08月09月10月11月12月
2011年
01月02月03月04月05月06月
07月08月09月10月11月12月
2010年
01月02月03月04月05月06月
07月08月09月10月11月12月
ヘルプ利用規約サイトマップ
© LY Corporation