久々にチーフです!
明日から小金井祭ということで準備真っ最中の昼休みにカキコしています。
今回から小金井祭全般が東館ということで、新校舎での初めての小金井祭。まだ始まってもいませんが、どうなるものかと杞憂していました。準備のほうはとりあえず順調(一部がものすごく怖いですが…)なので一安心です。
さあ、これから睡眠時間を削っての5日間。気力で乗り切っていこうと思います。
まだ詳細を知らない方は下のURLからご覧ください。
http://www.hosei-koganeisai.info/wiki/wiki.cgi?page=FrontPage
それではOBの方々、並びに一般の方々の来場を心よりお待ちしております。
2008年10月29日水曜日
くぁwせdrftgyふじこlp
うぅ~今日はネタがないkazuです
みんな日記の更新するのZE!
内容はなんでもいいですよ
例えば「夕方過ぎまでまた寝てた~」とか「やること無いからまた寝てた~」とか「眠い眠い眠い」とか「本気出そうそのうち出そう」などなど
ログイン方法は右上から
電研のメアド
電研のパスワード
を入力すればログインできます
まだ上記2つの情報を聞いていない1年生がいましたら誰かに聞いてください
Javascriptに図形描画機能があった事を忘れてた…orz
これでグラフを動的に描画できますね(フラグw
みんな日記の更新するのZE!
内容はなんでもいいですよ
例えば「夕方過ぎまでまた寝てた~」とか「やること無いからまた寝てた~」とか「眠い眠い眠い」とか「本気出そうそのうち出そう」などなど
ログイン方法は右上から
電研のメアド
電研のパスワード
を入力すればログインできます
まだ上記2つの情報を聞いていない1年生がいましたら誰かに聞いてください
Javascriptに図形描画機能があった事を忘れてた…orz
これでグラフを動的に描画できますね(フラグw
2008年10月27日月曜日
計算フォーム2
大学から借りてるノートPCにUbuntuStudioインストールしましたkazuです
WindowsXPへの影響を少なくするためにマスターブートレコードにはNTLDRを残したままインストールしました
ところが!!
Linux側からddコマンドを実行する前にUbuntu終了www
仕方がないから再起動後Windows側からUbuntuのブートパラメータブロックをコピーします
その時のメモを…
①CreateFile関数で//./PHYSICALDRIVE?をしてオプーン
②先頭セクタを見てLinuxをインストールしたパーティションのLBAアドレスを探す
③入手したLBAアドレスのセクタをテキトーな名前で保存(私は一応8.3形式に収まる名前にしました)
④(私の場合)WindowsXPがインストールされているCドライブのルートディレクトリにあるboot.iniを書き換えてさっき保存したBPBセクタもこのディレクトリにコピー
これで再起動したらおkでした
すごく汚いですがC++のプログラムを晒しておきます
▼ソースを表示▲ソースを閉じる
ちなみに環境は Windows XP Professional SP3 / Borland C++ Compiler 5.5 です
余談はここまでにして本題の計算フォームです
非同期シリアル通信(8bit/Asynchronous/Non Parity/Stopbit=1)
例の通り計算結果のご利用は自己責任でお願いしますね
今回もPIC16F687のデータシートを参照しました
他のPICでは計算式が異なる場合があるかもしれません
ビット当たりのずれが5%を超えるとErrorを返すようにしてあります
やっと地霊殿で新キャラに出会えたww
この記事を書いている途中にループ再生していた音楽:Border of extacy
次の記事を書くときに聞く予定の音楽:ひれ伏せ愚民どもっ!
いや…そんな趣味は無いよor2or2or2or2or2or2or2or2or2or2
だって僕も彼↓と同じ紳士だもんww
追記
①ソースコード中に字下げ用として使った はIEだと□になってしまうようです
②今回書いた計算フォームのJavascriptはIEだと正常に動作しないようです(過去の記事「計算フォーム」と名前空間が同じ!?)
WindowsXPへの影響を少なくするためにマスターブートレコードにはNTLDRを残したままインストールしました
ところが!!
Linux側からddコマンドを実行する前にUbuntu終了www
仕方がないから再起動後Windows側からUbuntuのブートパラメータブロックをコピーします
その時のメモを…
①CreateFile関数で//./PHYSICALDRIVE?をしてオプーン
②先頭セクタを見てLinuxをインストールしたパーティションのLBAアドレスを探す
③入手したLBAアドレスのセクタをテキトーな名前で保存(私は一応8.3形式に収まる名前にしました)
④(私の場合)WindowsXPがインストールされているCドライブのルートディレクトリにあるboot.iniを書き換えてさっき保存したBPBセクタもこのディレクトリにコピー
これで再起動したらおkでした
すごく汚いですがC++のプログラムを晒しておきます
▼ソースを表示▲ソースを閉じる
| 1 | #include <windows.h> |
| 2 | #include <stdio.h> |
| 3 | #include <shlobj.h> |
| 4 | #pragma pack(push,1) |
| 5 | typedef struct tagPartitionEntryTable { |
| 6 | unsigned char bootDescriptor; |
| 7 | unsigned char firstPartitionSector[3]; |
| 8 | unsigned char fileSystemDescriptor; |
| 9 | unsigned char lastPartitionSector[3]; |
| 10 | unsigned int firstSectorNumbers; |
| 11 | unsigned int numberOfSectors; |
| 12 | } PartitionEntryTable; |
| 13 | #pragma pack(pop) |
| 14 | void GetDesktopPath(char*); |
| 15 | void main() |
| 16 | { |
| 17 | OVERLAPPED ol={0}; |
| 18 | HANDLE hDrive = CreateFile("\\\\.\\PHYSICALDRIVE0",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,0,OPEN_EXISTING,0,0); |
| 19 | if(hDrive==INVALID_HANDLE_VALUE)printf("CreateFileError : code = 0x%08x",GetLastError()); |
| 20 | else { |
| 21 | unsigned char buf[512]; unsigned long size; int cnt = 446; |
| 22 | unsigned int firstSectorNumbers[4]; |
| 23 | PartitionEntryTable* pet; |
| 24 | ReadFile(hDrive,buf,512,&size,&ol); |
| 25 | for(int i=0;i<4;i++){ |
| 26 | pet = (PartitionEntryTable*)&buf[cnt]; |
| 27 | printf("\nPartition%d ========================\nbootDescriptor : 0x%02x\n",i,pet->bootDescriptor); |
| 28 | printf("firstPartitionSector : %d\n",(pet->firstPartitionSector[2]<<16)+(pet->firstPartitionSector[1]<<8)+pet->firstPartitionSector[0]); |
| 29 | printf("fileSystemDescriptor : %d\n",pet->fileSystemDescriptor); |
| 30 | printf("lastPartitionSector : %d\n",(pet->lastPartitionSector[2]<<16)+(pet->lastPartitionSector[1]<<8)+pet->lastPartitionSector[0]); |
| 31 | printf("firstSectorNumbers : %d\n",pet->firstSectorNumbers); |
| 32 | printf("numberOfSectors : %d\n\n",pet->numberOfSectors); |
| 33 | cnt+=16; |
| 34 | firstSectorNumbers[i]=pet->firstSectorNumbers; |
| 35 | } |
| 36 | // 保存ファイルパスの生成 |
| 37 | int numBPB; |
| 38 | char desktop[260],temp[260]; |
| 39 | printf("取得したいBPB番号を入力してください(取得しない場合は-1を入力) : "); |
| 40 | scanf("%d",&numBPB); |
| 41 | if((numBPB>=0)&&(numBPB<4)){ |
| 42 | GetDesktopPath(temp); |
| 43 | sprintf(desktop,"%s\\Ubuntu.br",temp,numBPB); |
| 44 | // 保存ファイル生成 |
| 45 | ol.Offset = firstSectorNumbers[numBPB] << 9; |
| 46 | ol.OffsetHigh = firstSectorNumbers[numBPB] >> (32-9); |
| 47 | ReadFile(hDrive,buf,512,&size,&ol); |
| 48 | FILE* fp = fopen(desktop,"wb"); |
| 49 | if(fp==NULL)printf("fopenエラー"); |
| 50 | else { |
| 51 | fwrite(buf,sizeof(char),512,fp); |
| 52 | fclose(fp); |
| 53 | } |
| 54 | } |
| 55 | CloseHandle(hDrive); |
| 56 | } |
| 57 | } |
| 58 | void GetDesktopPath(char *path) |
| 59 | { |
| 60 | LPITEMIDLIST pidl; |
| 61 | SHGetSpecialFolderLocation(NULL,CSIDL_DESKTOP,&pidl); |
| 62 | SHGetPathFromIDList(pidl,path); |
| 63 | CoTaskMemFree(pidl); |
| 64 | } |
余談はここまでにして本題の計算フォームです
非同期シリアル通信(8bit/Asynchronous/Non Parity/Stopbit=1)
例の通り計算結果のご利用は自己責任でお願いしますね
今回もPIC16F687のデータシートを参照しました
他のPICでは計算式が異なる場合があるかもしれません
ビット当たりのずれが5%を超えるとErrorを返すようにしてあります
やっと地霊殿で新キャラに出会えたww
この記事を書いている途中にループ再生していた音楽:Border of extacy
次の記事を書くときに聞く予定の音楽:ひれ伏せ愚民どもっ!
いや…そんな趣味は無いよor2or2or2or2or2or2or2or2or2or2
だって僕も彼↓と同じ紳士だもんww
追記
①ソースコード中に字下げ用として使った はIEだと□になってしまうようです
②今回書いた計算フォームのJavascriptはIEだと正常に動作しないようです(過去の記事「計算フォーム」と名前空間が同じ!?)
2008年10月22日水曜日
変態という名の紳士だよ^^^^^^^^^^^^^^^
マウス班の紳士ことPanpeeです。どうも。
まだマウス暦1年にもみたない私がなんとハーフサイズの魅力に取り付かれて半年から1年かけてハーフマウスを作ろうと思いたちY先輩のモータタダであげちゃうよ券を譲ってもらっちゃいました!
やったNE!マジパネェっすY先輩!
んでこれからマウスの設計をする二年or一年のためにちょっとしたマウスのトルク計算の式をつらつら書いてイキます。
加速トルク
Tm=Ta+L Tm:動輪軸のそうトルク
等速運動期間 Ta:加速トルク
Tm=L L:起動摩擦負荷トルク
この二つを主に求めるのですがこれを求めるにあたって
Ta=J/g × 2πf/t Ta:加速トルク(kg・cm)
J:負荷慣性モーメント(kg・cm2)
g:重力加速度(980cm/sec2)
J=WD2/8 f:動輪の等速運転速度(回転/sec)
t:加速期間の時間(sec)
W:物体の全重量(kg)
L=μWD/4 μ:摩擦係数(0.09)
D:動輪の直径(cm)
を求めます。コピペおいしいです^^^^^^^
でまぁまず全重量を決めます。Li-Poをだいたい80~100gとし私の場合ハーフなので結論から言うと使うモータ(ステッピング)は110g×2=220g ステッピングって結構でかくて重いよね^^;;;;;;;;
でもDC難しいんだからしょうがない!!ホイールとかも含めて結果的にだいたい400gと見積もれば十分(?)なので
W=0.4とし、モータの外径は28mmなのでD=30mmとする。本当は31ぐらいにしたいけど切りが悪いのでw
J=0.4×3^2/8=0.45(kg*cm^2)
となり、次にTaを求めるためにfを決めるのですが私が使うモータの回転数はフルステップで4500(r/min)(DC24Vで;)なので中間の2000回転で考えるとf=2000/60≒33(r/s)
ちなみに速度はv=33×3=99(cm/s)となりなんと1秒で11区間勧めることに!!
おいおい本当かよ?パルス速度とかどうなの?おいしいの?とか思いますが一様続けます。
次にtですがこれは少なく見積もった方が良い?気がするので0.5(s)とします。アバウトすぎワロタw
んで
Ta=0.45/980×2×π×33/0.5≒0.19(kg・cm)
L=0.09×0.4×3/4=0.027(kg・cm)
となります。よって
Tm(加速)=0.19+0.027=0.217(kg・cm)
=217(g・cm)
Tm(等速)=L=0.027(kg・cm)
=27(g・cm)
となり、安全率を1.5倍とし
217×1.5=325.5(g・cm)
つまり、必要な起動トルクは325.5(g・cm)となります。
ここでモータの特性図を見てみましょう。2000(r/min)のときトルクは0.04~0.05(N・m)の間です。
0.04と考えて換算すると1(N)≒102(g)
なので
0.04(N・m)≒4.08(g・m)=408(g・cm)
となり
おぉ、イケるではないか。となるのです。
ただ、ここで計算に使っているモータの回転数やらトルクは電源電圧がDC24Vのものを使っているので
うまくイクかは悩みどころ・・・しかも数値もアバウトやし^^;
でも資料にモータの電圧については起動電圧しか載っとらんし^^;;;
いっそ昇圧乗せるか・・・。
これで本当にいけるのか不安や^^;;;;;;;とか思いながら徹夜で計算し終えた変態なのでした。
この文章に意見などがあれば是非書き込んでください。
計算以外にも文章が不適切だと判断された場合は削除or編集しなおしてきます。ではでは
ノシ
まだマウス暦1年にもみたない私がなんとハーフサイズの魅力に取り付かれて半年から1年かけてハーフマウスを作ろうと思いたちY先輩のモータタダであげちゃうよ券を譲ってもらっちゃいました!
やったNE!マジパネェっすY先輩!
んでこれからマウスの設計をする二年or一年のためにちょっとしたマウスのトルク計算の式をつらつら書いてイキます。
加速トルク
Tm=Ta+L Tm:動輪軸のそうトルク
等速運動期間 Ta:加速トルク
Tm=L L:起動摩擦負荷トルク
この二つを主に求めるのですがこれを求めるにあたって
Ta=J/g × 2πf/t Ta:加速トルク(kg・cm)
J:負荷慣性モーメント(kg・cm2)
g:重力加速度(980cm/sec2)
J=WD2/8 f:動輪の等速運転速度(回転/sec)
t:加速期間の時間(sec)
W:物体の全重量(kg)
L=μWD/4 μ:摩擦係数(0.09)
D:動輪の直径(cm)
を求めます。コピペおいしいです^^^^^^^
でまぁまず全重量を決めます。Li-Poをだいたい80~100gとし私の場合ハーフなので結論から言うと使うモータ(ステッピング)は110g×2=220g ステッピングって結構でかくて重いよね^^;;;;;;;;
でもDC難しいんだからしょうがない!!ホイールとかも含めて結果的にだいたい400gと見積もれば十分(?)なので
W=0.4とし、モータの外径は28mmなのでD=30mmとする。本当は31ぐらいにしたいけど切りが悪いのでw
J=0.4×3^2/8=0.45(kg*cm^2)
となり、次にTaを求めるためにfを決めるのですが私が使うモータの回転数はフルステップで4500(r/min)(DC24Vで;)なので中間の2000回転で考えるとf=2000/60≒33(r/s)
ちなみに速度はv=33×3=99(cm/s)となりなんと1秒で11区間勧めることに!!
おいおい本当かよ?パルス速度とかどうなの?おいしいの?とか思いますが一様続けます。
次にtですがこれは少なく見積もった方が良い?気がするので0.5(s)とします。アバウトすぎワロタw
んで
Ta=0.45/980×2×π×33/0.5≒0.19(kg・cm)
L=0.09×0.4×3/4=0.027(kg・cm)
となります。よって
Tm(加速)=0.19+0.027=0.217(kg・cm)
=217(g・cm)
Tm(等速)=L=0.027(kg・cm)
=27(g・cm)
となり、安全率を1.5倍とし
217×1.5=325.5(g・cm)
つまり、必要な起動トルクは325.5(g・cm)となります。
ここでモータの特性図を見てみましょう。2000(r/min)のときトルクは0.04~0.05(N・m)の間です。
0.04と考えて換算すると1(N)≒102(g)
なので
0.04(N・m)≒4.08(g・m)=408(g・cm)
となり
おぉ、イケるではないか。となるのです。
ただ、ここで計算に使っているモータの回転数やらトルクは電源電圧がDC24Vのものを使っているので
うまくイクかは悩みどころ・・・しかも数値もアバウトやし^^;
でも資料にモータの電圧については起動電圧しか載っとらんし^^;;;
いっそ昇圧乗せるか・・・。
これで本当にいけるのか不安や^^;;;;;;;とか思いながら徹夜で計算し終えた変態なのでした。
この文章に意見などがあれば是非書き込んでください。
計算以外にも文章が不適切だと判断された場合は削除or編集しなおしてきます。ではでは
ノシ
2008年10月21日火曜日
復活!!
PICkit2を用いてAE-PGM877のファームを書き直して秋月PICライタが復活して喜んでいるkazuです
ついに少佐も来ましたね~♪
秋月のPICライタVar4.0のファームウェアアップデートを失敗しちゃって困ってる人、挙手!
ノ
はい私だけですねサーセンwww
でもネットを見たら似た症状の人が僅かにいたので書いてみますね♪
さて私はPICkit2を用いて復活させたこの秋月PICライタですがVar3の時のICを付けて復活できるかもしれません
その方法は…
秋月の「秋葉原店」のホームページで回路図集が見られます
そこで「プログラマキットVar3」の回路図と「Var4バージョンアップモジュール」の回路図を見ながら接続すべき5本の線を考えれば復活するでしょうね
私自身古いファームのICを使った復活はやってないので分かりませんが(ぉ
ちなみにPICkit2を使った最初の書き込みがPICライタのファーム…いとあはれなりww
くそ~ぅ地霊殿の後半のステージの音楽聴きたいけどそこまで進まないww
ついに少佐も来ましたね~♪
秋月のPICライタVar4.0のファームウェアアップデートを失敗しちゃって困ってる人、挙手!
ノ
はい私だけですねサーセンwww
でもネットを見たら似た症状の人が僅かにいたので書いてみますね♪
さて私はPICkit2を用いて復活させたこの秋月PICライタですがVar3の時のICを付けて復活できるかもしれません
その方法は…
秋月の「秋葉原店」のホームページで回路図集が見られます
そこで「プログラマキットVar3」の回路図と「Var4バージョンアップモジュール」の回路図を見ながら接続すべき5本の線を考えれば復活するでしょうね
私自身古いファームのICを使った復活はやってないので分かりませんが(ぉ
ちなみにPICkit2を使った最初の書き込みがPICライタのファーム…いとあはれなりww
くそ~ぅ地霊殿の後半のステージの音楽聴きたいけどそこまで進まないww
2008年10月19日日曜日
計算フォーム
え~先日計算フォームやってみるフラグを立てたkazuです
PICマイコンAD変換最大性能計算機
お約束ですがこの計算フォームを使うのは自己責任でお願いします
なお私が参照したデータシートはPIC16F687です
ほかの型番では計算式が異なるかもしれません
あと電源電圧が2.5V未満だとAD変換精度が落ちた気がします
ですがこの計算フォームでは電源電圧値に関するエラー表示はしません
さて地霊殿やって3面終わって「やっと製品版エリアだ~」と思ったらCode:0xC0000008で落ちましたww
Windowsプログラマなら毎度おなじみ(?)のアクセス違反ですね
でもパッチも情報も無い!?
あれ私だけ?
PICマイコンAD変換最大性能計算機
お約束ですがこの計算フォームを使うのは自己責任でお願いします
なお私が参照したデータシートはPIC16F687です
ほかの型番では計算式が異なるかもしれません
あと電源電圧が2.5V未満だとAD変換精度が落ちた気がします
ですがこの計算フォームでは電源電圧値に関するエラー表示はしません
さて地霊殿やって3面終わって「やっと製品版エリアだ~」と思ったらCode:0xC0000008で落ちましたww
Windowsプログラマなら毎度おなじみ(?)のアクセス違反ですね
でもパッチも情報も無い!?
あれ私だけ?
登録:
コメント (Atom)