いろんなデータをいじってみる

throttle-normal

みなさんこんにちは.

 

いろいろデータを解析した三菱・コルト( Z27AG )のECUですが怖くて思い切った変更ができていませんでした.

 

が,サーキット走ったりジムカーナやったりでいろんな状況で走らせると気になって気になってしょうがない部分が出てきました.

というわけでさくっと変更してみます.

 

今回変更した箇所は以下のとおり.

・スロットルマップ

・ブーストリミット

・ブーストコントロールマップ

・DTC回避

 

スロットルマップ

アクセルON→アクセルOFFを繰り返すと,回転が上がって欲しい部分でなかなか上がらずもっさり感を感じたので純正データをずらしてみました.

スロットルコントローラーを買ってつけてもいいんだけど学生にとっては高い( 1万円くらい )しなんといっても邪魔なので直接変更したほうがいいよねということで.

変更前

throttle-normal

変更後

throttle-change

ものすごく扱いやすくなりましたね.ほしい時にちゃんとついてきてくれる感じで.

もうちょっとずらしたのもあったのですが,変更後のデータが自分にはあってるように思えたのでとりあえずこの仕様で.

 

ブーストリミット

これは上限変更してもそんなに変わらないので,ブーストコントロールマップ変更するしということでなんとなく.

変更前

boostlimit-normal

変更後

boostlimit-change

 

ブーストコントロールマップ

『スロットルマップ変えたしついでにやっとくか』という非常に軽いノリで変えてみました.

単に100%にしておく時間が長くなっただけです.

変更前

boostctl-normal

変更後

boostctl-change

 

DTCチェックランプ回避

これはもれなく各DTCコードのデータを書き換えただけです.

ホントはマップでチェックランプ光らないように調整したほうがいいんですがね.所詮プライベーターなんで.エンジン壊れたらその時はその時ということで.

 

最後にですがもしこの記事を見て真似される場合は自己責任でお願いします.

 

A/F計取り付けたら点火と空燃比,それからバルブタイミングを詰めてみたいですね~

エンジンの肝はバルブタイミングですから

Altera DE2-115でLCDに文字を表示する

キャプチャ

Altera DE2-115を借りていろいろすることができたのでメモ.

いろいろやったけど一番情報が少なかったと思われるLCDを使って文字を表示する方法を書いておきます.

fopenでLCDを開いてfwriteを使ってLCDにデータを表示させる方法とか,どっかの大学の先生が作ったプログラムを使って表示させる方法とかさまざまあるようですが,今回は別の方法でやってみようと思います.

 

開発環境&使用ソフトウェア

  • Windows 7 Enterprise x86_64
  •  Quartus II 12.0sp2 Web Edition
  • Nios II Build Tool for Eclipse
  • Terasic DE2-115 System Builder

 

ハードウェアを作る(?)

FPGAのことがよくわかっていなくて,なんといえばいいのかわからないけどハードウェアの論理合成をする.

一からVerilogを書いてもよかったんだけど,ほかの作業に追われていたのでTerasic DE2-115 System Builderを使ってサクッとVerilogファイルを生成してしまう.ある意味チート.

キャプチャ

Generate ボタンを押すとプロジェクトファイルが生成される.生成されたプロジェクトファイルをQuartus IIで開く.

Qsysでサクッと画像のようにつなげる.

キャプチャ

後は「プロジェクト名.v」となっているVerilogファイルの” Structural coding “というところにNios IIの設定を追記する.

これで論理合成したあとDE2-115のボードにプログラミング.

 

プログラムを書く

サクッとテストプログラムを書いてみる.ただ以下のコードは何となく書いたので動くかわからん.

開発しててハマったのがEcripseでDE2-115を認識しないときがあったこと.これはEcripseをいったん閉じてQuartusIIから回路をプログラミングしてからもう一度Ecripseを立ち上げると認識するようになった.
ちなみにAltera Monitor Programを使って開発してる人はLCDを使うときLCDのアドレス+1してポインタつかっていろいろすると行けるっぽい.

 

動作

上に書いたプログラムで表示したわけではないけど,下の画像のように動く.

P_20160126_104338[1]

 

参考にしたサイト

 

触ってからだいぶ時間が空いてからこれを書いたのであやふやになってる部分も多数...

触ってるときにアウトプットするのって大切ですね~

FPGAを使った開発はものすごく楽しかったけど,個人でやるんだったらPICが楽だなーと思ったり.

Ubuntu14.04からAmazonランチャーを削除する

Ubuntu14.04 LTSをインストールした時から「邪魔だなー」と思っていたAmazonのランチャーを削除する方法わかったのでメモとして記録

 

 

これでメニューからAmazonを消せます。

Googleで検索する方法は2016-02-12現在ではエラーメッセージがでて削除できないみたい。

 

参考文献:

How to remove “Amazon” : askUbuntu

ECUの解析 その2

キャプチャ1

コルトRA Ver.Rの前期のECUは何もしなくてもよかったのですが,自分の乗ってる中期( 2008 )モデルはECUが変わったみたいで前期の定義ファイルのままではなんのデータかわかりませんでした.

詳細は『ECUの解析 その1』にて.

ECUからdumpしたバイナリ&定義ファイルとにらめっこの格闘しかれこれ3か月(?)かかってやっと全項目を正常に表示できました.

キャプチャ1

いやー海外の方ってすごい方いっぱいいますね.すごく勉強になりました.

スロットルマップの方は大分前からいじってなるべくワイヤースロットルのようになるようにやっていましたが,来春からはいよいよ燃料マップと点火をいじるので楽しみでしょうがないです.

前期ECUを使ってなんちゃってセッティングを行ってしましたが,これからはもともとついていた中期のECUを使ってさらに煮詰めたセッティングができるわけです.今の車についている前期ECUを取り換えないといけないですねー

PHP + CometでWebピットボード的なやつを作る

14243

先日とあるチームのドライバーとしてエビスサーキット西コースで行われた3時間Kカー耐久レースに参戦してきました.

その時にピットからの指示を簡単にドライバーが確認できるWebアプリ的な奴を作ったのでサクッとご紹介します.

 

ピットボードとは

まず『ピットボード』とはですが,レースなどをよく見る方はご存知かもしれません.自分のチームのクルーがドライバーに対してなんかかしらの指示を書いたやつですね.それをホームストレートなどの時に自分のピットがある前のところからドライバーが見えるように掲げるものです.

14243

こんな感じ( 画像はgoogle画像検索で出てきたものをお借りしました)

 

ピットボードでは『ピットIN』などの簡単な指示ができますが,『オーバーテイク仕掛けろ』みたいな指示がやりづらいですよね.

そこそこ資金力があるチームは無線を使って指示するみたいですが,そんなお金もない.というわけでサクッと表題のやつを作ったわけです.

 

Webピットボードを作る まえおき

ピットボードをつくるときに必要な項目を挙げてみました.

  • かんたんに指示をみるためのもの
  • 指示がリアルタイムに送れる・確認できる

こんな感じでしょうか.

  • かんたんに指示を見るためのもの

これはすでにあるものを使うと達成できるのですが,

  • 指示がリアルタイムに送れる・確認できる

というのがちょっと厄介ですね.

リアルタイム更新についてGoogleで検索してみると,AjaxというのとCometというのがあるそう.

Ajaxについては使ったことがあるのでまた使ったことがないCometで実装してみようとなったわけです.

 

Cometとは

下の方にある参考サイトに詳しく乗っていますが,引用させていただくと

1つ目は、Ajaxなどの技術を使い、1秒毎など定期的に更新するというもの。F5連打と同じだが、ブラウザでページ自体を更新する必要はないため、一見更新しているようには見えない。

2つ目はcometという技術を使う。これは聞いたことがなかったが、中身を知ったらその知恵に驚いた。cometはおおまかにいうと、最初にリクエストがあった際に、サーバー側でつかんだままにして、発言があったらレスポンスを返すというもの。

最初のやり方だと、発言が更新されていなくても更新を行うためムダなリクエストが発生する。これだとユーザーが増えた際に、サーバーに負荷がかかるので望ましくない。cometを使えば、データが更新された時にプッシュされるため、ムダなリクエストが発生しない。

というものらしい.

 

実際に作ってみる

下記のサイトを参考にして作成してみました.

チャットのように過去のログは切り捨てることにして実装しました.

<実際のコード>

・comet.php

 

・index.html

 

こんな感じになりました

キャプチャ2

フォームに入力し「追加」ボタンを押すと指示できるようになっています.

 

実際の運用

車両にタブレットを取り付け,テザリングを使用して運用しました.

キャプチャ

最初順調に動いていたように見えたのですが,思ったよりも電波状況がよくなく,ピットから指示は送っていても車両側の方で更新されず指示が伝わらないなどトラブルがありました.

まあどうしようもないので古典的に<meta name=”Refresh”>を追加して対処したわけです.

 

また予選も終わりこれから本線というときにWebサーバーがダウン.Refreshの頻度が多いせいでリクエストを処理できなくなってしまいました.

当日になって数々のトラブルに見舞われましたがなんとか運用できた感じです.

 

解決すべき課題などがたくさん出てきたので次のレースまでにはそれらを解決してもっと質の高いものにしていきたいと思います.

WD Red買った

tmp_955-P_20151127_095909-1044659664

サーバーで使用しているHDDのSMART値が怪しい感じなので買えることにしました。

tmp_955-P_20151127_095909-1044659664

WD Red 2.0TBを2本

実は今までHDD一つだったので( 当然バックアップはしてるけど )、それだけじゃなくてソフトウェアRAIDを組んでみようという感じです。

そのうちサーバー止めてOSもソフトウェアもWebサーバーも全部変えてみよう

同じ構成でずっと動かすのも勉強だけど、新しい環境を構築して運用するのも勉強だよね

 

 

(近いうち大規模?メンテナンスするよ)