tomise
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
[[作業日誌]]
目次
#contents();
*メニュー [#tcad47a6]
//個人ページの下にページを作ることもできます。
//自分のページを追加したい場合は、[[名前/新しいページ名]]...
* コメント [#p8b39b01]
#pcomment(reply);
* ToDo [#r224974f]
- 電源修復
- 配線
- フォトカプラの確認
* 2011年01月21日(金): 実機でのホイール回転確認 [#acbf00e5]
直前の一時間で、ホイール以外の割込を全て無効にするとちゃ...
とりあえず、ホイールの回転だけは実機で確認できた。
ただ、距離がかなりぎりぎりらしく、赤外線LEDの取付角度が非...
発表前に一応1つだけでも確認が取れたのは嬉しかった。
* 2011年01月20日(木): 電源ラインの修復と電圧の再確認 [#b2...
電源ラインのコネクタを新しくつけ直した所、接触不良は完全...
赤外線LEDの入力が反応しなくなったのをテスタで確認したら、...
でも割込は発生しない。なぜに?
フォトカプラはやっぱりうんともすんとも言わない。
入力側に電圧をかけても出力はぴくりとも動かないで5Vのまま。
どうも根本的に違っている気がしてきた。
* 2011年01月19日(水): 修正と確認 [#zef5ddf3]
電源ラインの修復と、赤外線LEDによる回転検出の確認。
3端子レギュレータは生きていたが、どうも端子が駄目になった...
ある角度なら動くが、コネクタの予備もないのでとりあえずUSB...
12Vからのフォトカプラによる入力が相変わらず駄目。
今回はショートさせないように慎重に各端子の電圧を見ていく...
アノード-カソード間は約1.9Vなので発光側はOK.
出力側がおかしい? データシートを見ながら別の回路に変更し...
続いて設置前には成功していた赤外線LEDによる回転検出の確認。
前まで不安定さもなく問題なく動いていたのに、なぜかうんと...
今までなかった接触不良も一応確認したが、どうも違う。
ここまできて1つも実機動作確認できないのは悔しいが、時間切...
駄目だった分は原因分析して次につなげたい。
* 2011年01月14日(金): 実機配線と確認 [#db666807]
後付け装備のせいでメータ周りのカウルを外すのが滅茶苦茶面...
3端子レギュレータの通電はOK.
次に、と行こうと思ったら一定間隔でリセットとフリーズを繰...
外部端子が多いのでただの接触不良かと思ったが、全て外して...
しばらく悩んであれこれ試した挙げ句、どうもスイッチの入力...
スイッチを読みに行かなければ安定して動作した。
スイッチはただの表示切替なのでとりあえずは除外してその他...
次にフォトカプラ経由での点火パルスの入力。
これがどうも割込入力できていない様子で、うんともすんとも...
回路は直したはずなのにと、ふと回路を直した時にピンを1つず...
でもまだ反応無し。
テスタでフォトカプラ周りから電源周りまで順に追っていたら...
通電しなくなったのでお亡くなりになったのかと焦ったが、USB...
基板裏を見たら3端子レギュレータ手前の12Vの端子が焦げてハ...
3端子レギュレータが亡くなっていないことを祈る。
車体側はバッ直だったので全然問題なし。
気温が低すぎて外での作業が辛いのでとりあえず本日はここま...
* 2011年01月12日(水): 回路修正とプログラム [#d89736d4]
フォトカプラ周りの配線がおかしかったので再修正。
後はプログラムを実機に合わせて書いた。
* 2011年01月07日(金): センサー配線の完成と3端子レギュレー...
センサー用の配線を全て完了して、12V -> 5V用の3端子レギュ...
後はプログラムを完成させて、配線して実機確認をするだけに。
* 2011年01月03日(月): 回転数からの計算式 [#l4a8870a]
サービスデータより
** タイヤサイズ [#ec22e7dd]
フロントタイヤ 100/80-17 52S
幅100mm 扁平率(タイヤの高さ÷タイヤ幅×100)80% リム径17イン...
直径 = (17 * 25.4) + (100 * 0.8 * 2)
= 591.8mm
外周 = 591.8 * 3.1415
= 1859.2mm
** 減速比 [#mfce9022]
1速 2.600(39/15)
2速 1.789(34/19)
3速 1.409(31/22)
4速 1.160(29/25)
5速 1.000(27/27)
6速 0.892(25/28)
1次減速比 3.086(71/23)
2次減速比 3.357(47/14)
タイヤの回転数 = エンジン回転数 / (1次減速比 * 2次減速比...
減速比 = エンジン回転数 / (タイヤ回転数 * 1次減速比 * 2...
ホイールは3本スポークなので、立ち上がり、下がりの片方だけ...
** 速度の計算 [#xbe0ba2b]
// これは使わない
// 速度(km/h) = (エンジン回転数 / 最終減速比) * タイヤ外...
速度(km/h) = (タイヤ回転数 * タイヤ外周 / 経過時間) * (...
* 2010年12月17日(金): 表示プログラムの作成2とセンサー配線...
前回のitos()は0だと表示されないので一行追加。
桁数以下の幅を指定したらまずいのは同様。
void itos(char *s, int i, int width)
{
s[width] = '\0';
s[width - 1] = '0';
for (; i; i /= 10)
s[--width] = i % 10 + '0';
while (width)
s[--width] = ' ';
}
割込ルーチンでどのピンの割込なのかを確かめてからカウント。
#pragma interrupt_handler INT_GPIO
void INT_GPIO(void)
{
if ((PRT0DR & (0x01 << 7)) == 0)
++wheel;
}
他も適当に組んで、赤外線LEDを動かすとカウントされるのを確...
カウントはcounterモジュールをつかっても良さそうだけど、こ...
* 2010年12月10日(金): 表示プログラムの作成1 [#jc22a430]
起動時の動作チェックアニメーションを何パターンか作成した。
液晶に全て0xff(黒塗り)を表示させる。
sprintf()の代りにcsprintf()があったが、桁オプションが使え...
仕方ないので、文字幅を指定してintを文字列にする関数を作っ...
/*
* sに整数iをwidth幅で文字列化して格納する
* widthが文字列幅以下にならないように注意
* itos(s, 16, 3); // " 16"
* itos(s, 8, 5); // " 8"
*/
void itos(char *s, int i, int width)
{
s[width] = '\0';
for (; i; i /= 10)
s[--width] = i % 10 + '0';
while (width)
s[--width] = ' ';
}
単位表示で3文字も幅を取るのが勿体ないのでCGRAMに単位文字...
素直に3文字分(km/h, kph, rpm)使っておくのが無難か?
点火と回転は割込でcountしようと思ったが、割込は同じ関数が...
関数内でポートの状態を見て、どのピンからの割込かを調べてc...
表示更新は割込関数内ではせずにmain()か定期的なタイマー割...
* 2010年12月03日(金): 赤外線LEDと受光素子 [#pde4ad62]
磁気抵抗素子の値の変化が小さすぎてテスタでもわからないの...
エミッタ接地回路でコレクタに100Ωを繋げると5.0 <-> 4.5V
10kΩに変更して4 <-> 0V
これならデジタル入力に使えそう。
* 2010年11月26日(金): 磁気抵抗素子 [#c0540141]
[[磁気抵抗素子DM-106B:http://akizukidenshi.com/catalog/g/...
配線ミスやら、入力ピンに制限があることに気付かず、無駄に...
SAR6で値を取ってみると、磁石を殆ど接触させた状態で1, それ...
ADCの使い方が間違っている?
PGA経由でGainを色々変えてみても大して変わらない。
* 2010年11月19日(金): スイッチ割込 [#oacf3964]
スイッチ割込でカウント、タイマー割込で定期的に表示更新ま...
mainのループは空にできた。
+ 割込を発生させたいピンの設定をする
+ PSoCGPIOINT.asmにジャンプ先の関数名を追加
+ main.cに呼び出される関数を記述
PSoCGPIOINT.asmはこんな感じに。
;@PSoC_UserCode_BODY@ (Do not change this line.)
;---------------------------------------------------
; Insert your custom code below this banner
;---------------------------------------------------
ljmp _INT_GPIO
;---------------------------------------------------
; Insert your custom code above this banner
;---------------------------------------------------
;@PSoC_UserCode_END@ (Do not change this line.)
main.cはこんな感じに。先程のPSoCGPIOINT.asmに書いた関数名...
#pragma interrupt_handler INT_GPIO
void INT_GPIO(void)
{
// ...
}
調べていて見つけた情報。割込に使ったポートと同じポートに...
- http://edycube.blog2.fc2.com/blog-entry-314.html
** 数値 -> 文字列 [#jf303bfc]
sprintf()が使えないので、itoa()で。
#include <stdlib.h>
char line[17] = {'\0'};
itoa(line, 12345, 10);
でもこれだと桁揃えがしにくい。
それを改善したマクロが見つかるが、if分岐で何とかしても良...
if (count < 10)
;
else if (count < 100)
;
else if (count < 1000)
;
else if (count < 10000)
;
else
;
* 2010年11月12日(金): 液晶の配線と動作確認 [#r30a1f81]
前回の配線図通りに配線。初めにピンを間違えて大幅な時間ロ...
コントラスト調整用に10kΩの可変抵抗をつけるべき所に普通の...
#ref(SC1602_0.jpg)
#ref(SC1602_1.jpg)
文字列の表示はこんな感じ。
LCD_1_Start();
LCD_1_Position(0, 0); // 行, 列
LCD_1_PrCString("LCD Test");
datasheetを見ていると、棒グラフを表示させるなんていう面白...
ドット単位のパターンを用意して実現している様子。
デバッグやらにも便利に使えそう。
SC1602は1文字を5 * 7ドットで表現しているので、横棒グラフ...
使い方はこんな感じ。
LCD_1_InitBG(LCD_1_SOLID_BG);
LCD_1_DrawBG(0, 0, 16, 72); // 行, 開始列, 終了行, グ...
DrawBG()の引数がちょっとわかりにくいけど、次のような感じ。
LCD_1_DrawBG(0, 0, 16, 50); // 0行目の0〜16文字を使っ...
LCD_1_DrawBG(0, 1, 5, 60); // 0行目の1〜5文字を使っ...
良く考えたら16文字だからDrawBG(0, 0, 15, ...)が正しい気が...
* 2010年10月31日(日): HD44780の配線図 [#s0189f9e]
#ref(HD44780A_配線図.jpg)
データシートと睨めっこした結果、こんな感じになった。
配線距離が長いが、ユニバーサル基板に液晶を取り付けたとき...
* 2010年10月29日(金): 製作案の発表 [#j6cc2dc6]
何を作りたいかの発表と、その中からどれを実際に作っていく...
皆実装に縛られない自由な案を出していて、実装前提で考えて...
次回までにキャラクタ液晶の配線を考えておく。
* 2010年10月22日(金): テスト基板の作成 [#v6b24566]
#ref(基板_表面.jpg)
#ref(基板_裏面.jpg)
FIRST TOUCHでCapSenseを試した後、ユニバーサル基板にICソケ...
* 2010年10月15日(金): PSoC FIRST TOUCH [#m4295144]
PSoCの開発環境を整え、FIRST TOUCHを使ってLEDを光らせる所...
[[PSoC入門:PSoC First Touch編]]に従って、プロジェクトの作...
プログラムを書く前の設定作業が多いなあと思ったが、それだ...
バージョンが更新されたようで[[PSoC入門:PSoC First Touch編...
終了行:
[[作業日誌]]
目次
#contents();
*メニュー [#tcad47a6]
//個人ページの下にページを作ることもできます。
//自分のページを追加したい場合は、[[名前/新しいページ名]]...
* コメント [#p8b39b01]
#pcomment(reply);
* ToDo [#r224974f]
- 電源修復
- 配線
- フォトカプラの確認
* 2011年01月21日(金): 実機でのホイール回転確認 [#acbf00e5]
直前の一時間で、ホイール以外の割込を全て無効にするとちゃ...
とりあえず、ホイールの回転だけは実機で確認できた。
ただ、距離がかなりぎりぎりらしく、赤外線LEDの取付角度が非...
発表前に一応1つだけでも確認が取れたのは嬉しかった。
* 2011年01月20日(木): 電源ラインの修復と電圧の再確認 [#b2...
電源ラインのコネクタを新しくつけ直した所、接触不良は完全...
赤外線LEDの入力が反応しなくなったのをテスタで確認したら、...
でも割込は発生しない。なぜに?
フォトカプラはやっぱりうんともすんとも言わない。
入力側に電圧をかけても出力はぴくりとも動かないで5Vのまま。
どうも根本的に違っている気がしてきた。
* 2011年01月19日(水): 修正と確認 [#zef5ddf3]
電源ラインの修復と、赤外線LEDによる回転検出の確認。
3端子レギュレータは生きていたが、どうも端子が駄目になった...
ある角度なら動くが、コネクタの予備もないのでとりあえずUSB...
12Vからのフォトカプラによる入力が相変わらず駄目。
今回はショートさせないように慎重に各端子の電圧を見ていく...
アノード-カソード間は約1.9Vなので発光側はOK.
出力側がおかしい? データシートを見ながら別の回路に変更し...
続いて設置前には成功していた赤外線LEDによる回転検出の確認。
前まで不安定さもなく問題なく動いていたのに、なぜかうんと...
今までなかった接触不良も一応確認したが、どうも違う。
ここまできて1つも実機動作確認できないのは悔しいが、時間切...
駄目だった分は原因分析して次につなげたい。
* 2011年01月14日(金): 実機配線と確認 [#db666807]
後付け装備のせいでメータ周りのカウルを外すのが滅茶苦茶面...
3端子レギュレータの通電はOK.
次に、と行こうと思ったら一定間隔でリセットとフリーズを繰...
外部端子が多いのでただの接触不良かと思ったが、全て外して...
しばらく悩んであれこれ試した挙げ句、どうもスイッチの入力...
スイッチを読みに行かなければ安定して動作した。
スイッチはただの表示切替なのでとりあえずは除外してその他...
次にフォトカプラ経由での点火パルスの入力。
これがどうも割込入力できていない様子で、うんともすんとも...
回路は直したはずなのにと、ふと回路を直した時にピンを1つず...
でもまだ反応無し。
テスタでフォトカプラ周りから電源周りまで順に追っていたら...
通電しなくなったのでお亡くなりになったのかと焦ったが、USB...
基板裏を見たら3端子レギュレータ手前の12Vの端子が焦げてハ...
3端子レギュレータが亡くなっていないことを祈る。
車体側はバッ直だったので全然問題なし。
気温が低すぎて外での作業が辛いのでとりあえず本日はここま...
* 2011年01月12日(水): 回路修正とプログラム [#d89736d4]
フォトカプラ周りの配線がおかしかったので再修正。
後はプログラムを実機に合わせて書いた。
* 2011年01月07日(金): センサー配線の完成と3端子レギュレー...
センサー用の配線を全て完了して、12V -> 5V用の3端子レギュ...
後はプログラムを完成させて、配線して実機確認をするだけに。
* 2011年01月03日(月): 回転数からの計算式 [#l4a8870a]
サービスデータより
** タイヤサイズ [#ec22e7dd]
フロントタイヤ 100/80-17 52S
幅100mm 扁平率(タイヤの高さ÷タイヤ幅×100)80% リム径17イン...
直径 = (17 * 25.4) + (100 * 0.8 * 2)
= 591.8mm
外周 = 591.8 * 3.1415
= 1859.2mm
** 減速比 [#mfce9022]
1速 2.600(39/15)
2速 1.789(34/19)
3速 1.409(31/22)
4速 1.160(29/25)
5速 1.000(27/27)
6速 0.892(25/28)
1次減速比 3.086(71/23)
2次減速比 3.357(47/14)
タイヤの回転数 = エンジン回転数 / (1次減速比 * 2次減速比...
減速比 = エンジン回転数 / (タイヤ回転数 * 1次減速比 * 2...
ホイールは3本スポークなので、立ち上がり、下がりの片方だけ...
** 速度の計算 [#xbe0ba2b]
// これは使わない
// 速度(km/h) = (エンジン回転数 / 最終減速比) * タイヤ外...
速度(km/h) = (タイヤ回転数 * タイヤ外周 / 経過時間) * (...
* 2010年12月17日(金): 表示プログラムの作成2とセンサー配線...
前回のitos()は0だと表示されないので一行追加。
桁数以下の幅を指定したらまずいのは同様。
void itos(char *s, int i, int width)
{
s[width] = '\0';
s[width - 1] = '0';
for (; i; i /= 10)
s[--width] = i % 10 + '0';
while (width)
s[--width] = ' ';
}
割込ルーチンでどのピンの割込なのかを確かめてからカウント。
#pragma interrupt_handler INT_GPIO
void INT_GPIO(void)
{
if ((PRT0DR & (0x01 << 7)) == 0)
++wheel;
}
他も適当に組んで、赤外線LEDを動かすとカウントされるのを確...
カウントはcounterモジュールをつかっても良さそうだけど、こ...
* 2010年12月10日(金): 表示プログラムの作成1 [#jc22a430]
起動時の動作チェックアニメーションを何パターンか作成した。
液晶に全て0xff(黒塗り)を表示させる。
sprintf()の代りにcsprintf()があったが、桁オプションが使え...
仕方ないので、文字幅を指定してintを文字列にする関数を作っ...
/*
* sに整数iをwidth幅で文字列化して格納する
* widthが文字列幅以下にならないように注意
* itos(s, 16, 3); // " 16"
* itos(s, 8, 5); // " 8"
*/
void itos(char *s, int i, int width)
{
s[width] = '\0';
for (; i; i /= 10)
s[--width] = i % 10 + '0';
while (width)
s[--width] = ' ';
}
単位表示で3文字も幅を取るのが勿体ないのでCGRAMに単位文字...
素直に3文字分(km/h, kph, rpm)使っておくのが無難か?
点火と回転は割込でcountしようと思ったが、割込は同じ関数が...
関数内でポートの状態を見て、どのピンからの割込かを調べてc...
表示更新は割込関数内ではせずにmain()か定期的なタイマー割...
* 2010年12月03日(金): 赤外線LEDと受光素子 [#pde4ad62]
磁気抵抗素子の値の変化が小さすぎてテスタでもわからないの...
エミッタ接地回路でコレクタに100Ωを繋げると5.0 <-> 4.5V
10kΩに変更して4 <-> 0V
これならデジタル入力に使えそう。
* 2010年11月26日(金): 磁気抵抗素子 [#c0540141]
[[磁気抵抗素子DM-106B:http://akizukidenshi.com/catalog/g/...
配線ミスやら、入力ピンに制限があることに気付かず、無駄に...
SAR6で値を取ってみると、磁石を殆ど接触させた状態で1, それ...
ADCの使い方が間違っている?
PGA経由でGainを色々変えてみても大して変わらない。
* 2010年11月19日(金): スイッチ割込 [#oacf3964]
スイッチ割込でカウント、タイマー割込で定期的に表示更新ま...
mainのループは空にできた。
+ 割込を発生させたいピンの設定をする
+ PSoCGPIOINT.asmにジャンプ先の関数名を追加
+ main.cに呼び出される関数を記述
PSoCGPIOINT.asmはこんな感じに。
;@PSoC_UserCode_BODY@ (Do not change this line.)
;---------------------------------------------------
; Insert your custom code below this banner
;---------------------------------------------------
ljmp _INT_GPIO
;---------------------------------------------------
; Insert your custom code above this banner
;---------------------------------------------------
;@PSoC_UserCode_END@ (Do not change this line.)
main.cはこんな感じに。先程のPSoCGPIOINT.asmに書いた関数名...
#pragma interrupt_handler INT_GPIO
void INT_GPIO(void)
{
// ...
}
調べていて見つけた情報。割込に使ったポートと同じポートに...
- http://edycube.blog2.fc2.com/blog-entry-314.html
** 数値 -> 文字列 [#jf303bfc]
sprintf()が使えないので、itoa()で。
#include <stdlib.h>
char line[17] = {'\0'};
itoa(line, 12345, 10);
でもこれだと桁揃えがしにくい。
それを改善したマクロが見つかるが、if分岐で何とかしても良...
if (count < 10)
;
else if (count < 100)
;
else if (count < 1000)
;
else if (count < 10000)
;
else
;
* 2010年11月12日(金): 液晶の配線と動作確認 [#r30a1f81]
前回の配線図通りに配線。初めにピンを間違えて大幅な時間ロ...
コントラスト調整用に10kΩの可変抵抗をつけるべき所に普通の...
#ref(SC1602_0.jpg)
#ref(SC1602_1.jpg)
文字列の表示はこんな感じ。
LCD_1_Start();
LCD_1_Position(0, 0); // 行, 列
LCD_1_PrCString("LCD Test");
datasheetを見ていると、棒グラフを表示させるなんていう面白...
ドット単位のパターンを用意して実現している様子。
デバッグやらにも便利に使えそう。
SC1602は1文字を5 * 7ドットで表現しているので、横棒グラフ...
使い方はこんな感じ。
LCD_1_InitBG(LCD_1_SOLID_BG);
LCD_1_DrawBG(0, 0, 16, 72); // 行, 開始列, 終了行, グ...
DrawBG()の引数がちょっとわかりにくいけど、次のような感じ。
LCD_1_DrawBG(0, 0, 16, 50); // 0行目の0〜16文字を使っ...
LCD_1_DrawBG(0, 1, 5, 60); // 0行目の1〜5文字を使っ...
良く考えたら16文字だからDrawBG(0, 0, 15, ...)が正しい気が...
* 2010年10月31日(日): HD44780の配線図 [#s0189f9e]
#ref(HD44780A_配線図.jpg)
データシートと睨めっこした結果、こんな感じになった。
配線距離が長いが、ユニバーサル基板に液晶を取り付けたとき...
* 2010年10月29日(金): 製作案の発表 [#j6cc2dc6]
何を作りたいかの発表と、その中からどれを実際に作っていく...
皆実装に縛られない自由な案を出していて、実装前提で考えて...
次回までにキャラクタ液晶の配線を考えておく。
* 2010年10月22日(金): テスト基板の作成 [#v6b24566]
#ref(基板_表面.jpg)
#ref(基板_裏面.jpg)
FIRST TOUCHでCapSenseを試した後、ユニバーサル基板にICソケ...
* 2010年10月15日(金): PSoC FIRST TOUCH [#m4295144]
PSoCの開発環境を整え、FIRST TOUCHを使ってLEDを光らせる所...
[[PSoC入門:PSoC First Touch編]]に従って、プロジェクトの作...
プログラムを書く前の設定作業が多いなあと思ったが、それだ...
バージョンが更新されたようで[[PSoC入門:PSoC First Touch編...
ページ名: