2015年6月27日土曜日

digi-key部品到着

digi-keyから部品が到着した。
相変わらず早い。ありがたい。
まだ基板が届かないので、ファイルに整理して終了。

2015年6月23日火曜日

digi-keyに部品注文

ハーフマウスに使う電気部品をデジキーで注文した。
総額9000円。
デジキーは7500円以上は送料無料だけれど、1万円以上だと消費税がかかるので、ちょうどいい数量で頼むのが得策。
だけれども、1万円以下に抑えるために、注文を2回に分けたりするのはしない。そこは大人ですから(^^;

後は、デジモデで機構部品を依頼で1万円くらいの出費になりそう。

 手持ち部品を使ったりもするけれど、総額3万円くらいでハーフサイズマウスが作れるということか。

2015年6月21日日曜日

マウス基板を発注

FusionPCBにマイクロマウスハーフサイズ用の基板を注文した。

このペースだと今年の大会には間に合いそうにないけれど、何もしないよりはましだろう。

保存のためにガーバーデータをおいておく


$46.06だったので、1$\128換算で約5900円(EMS送料込み)だった。

部品面
半田面



2015年6月7日日曜日

ソースコード変換のサイト

C言語のプログラムソースをWEBで公開するための、コード変換サイトを変えた。
前から”とか<>とかが きれいに変換できなかったから。


これまで使っていたサイト。
ソースを「そのまま表示する為のHTMLソース」に変換

今回使ってみたサイト。
WEB表示用、HTMLエンコード置換変換

より良いサイトがあれば、今後もホイホイ変えてしまうと思う。

MODXでRSS取得

自分のホームページと、このブログを連動させようとしてMODxでRSSを取得する方法を探していたけれど、古い情報ばかりで見つけられなかった。

目線を変えて、MODx関係なしに、普通の静的サイトでRSS情報の表示をどうしているのかを探してみて、次のサイトを見つけた。

K子の公式ブログ:簡単に出来る楽しいブログの作り方 第3回RSSの埋め込み方法


生成されたコードの内容を理解しようと思ったら大変だけれど、単に使うだけならばコードを貼り付けるだけなので簡単そうだ。
さっそく、チャンクで登録してテンプレートに追加してみた。
うん、いい感じ。

気づいてしまえば、それだけのことだったのに、MODxを使っているという先入観からRSS表示のアプローチを間違えてしまい、時間がかかった。


2015年6月5日金曜日

STM32F4のADC3をDMA転送02



以前に書いた「STM32のAD変換01」では、AD変換した結果は右詰されていた。
しかし、その後に書いた記事、「STM32のAD変換結果をDMA転送」では、AD変換の結果が右詰されないで左詰で変数に格納されていた。

DMA関連の何かが悪いのだと思ったので、じっくり眺めたけれど分からなかった。

そこで、AD変換の初期化まわりを眺めなおしたら、少し気がついた。ADC_InitTypeDef構造体でADCを初期化する前に、ADC_StructInit関数を使って構造体自体の初期化をしているサンプルがある。それを真似して、ADC_StructInit関数で初期化してから構造体に値をセットして、ADC_Init関数で初期化してみた。

うまくいった。

なるほどね、構造体の初期値が不定だから、自分で設定しなかったメンバーが悪さをしていたのかな。だけれど、それだと、最初の「STM32のAD変換01」で期待通りの右詰で値を取得できた理由が分からない。
まぁ、とりあえず今はいいか。


それと、各種の関数の実体をソースで呼んでいるときに、ADC_DeInit関数の中身をみたらADC1のリセットをしているだけだったので、ADC3のリセット処理に変えてみた。


一度に色々と変更したせいで、どの変更がどう反映されたか分からなくなってしまったが、望んだ結果が得られたから、今日のところは良しとしよう。

ソースは以下。


2015年6月4日木曜日

STM32のTIM5でPWM出力

先日、TIM1でPWM出力が出来たので、TIM5でも楽勝と思っていたけれど、またまた上手くいかなかった。

結果としては、TIM5の設定は間違えてはおらず、GPIOの初期設定の間違えだった。

GPIOをオルタネート・ファンクションとして使う場合、GPIO_OTypeやGPIO_PuPdの設定は必要ないと思ったけれど、必要だった。
ごくごく初歩的な設定例だけれど、TIM5のPWM出力をする際のGPIO設定をさらします。


// PA0,PA1,PA2,PA3 : 
  GPIO_InitTypeDef GPIO_InitStructure;
  GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;
  GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF;
  GPIO_InitStructure.GPIO_Speed = GPIO_High_Speed;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;       // この行がないとPWM出力されない
  GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL;
  GPIO_Init(GPIOA,&GPIO_InitStructure);




2015年6月3日水曜日

STM32のAD変換結果をDMA転送

連続変換モードがうまく動かせなかったので、DMAを使ってAD変換結果を変数に転送するようにした。

いつもながら、花岡ちゃんに花束を、を参考にさせてもらった。
ちょっとパクリすぎたかなとも思う(^ ^;

ソースコードは以下。


STM32のAD変換スキャンモード不発

調子に乗って、AD変換のスキャンモードにチャレンジしてみたが、うまく結果を得られなかった。


  //ADC3の変換モード設定。
  ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
  // ↓ ENABLE(スキャンモード)、DISABLE(分割スキャンモード)
  ADC_InitStructure.ADC_ScanConvMode         = DISABLE; 
  // ↓ ENABLE(連続変換モード)、DISABLE(シングル変換モード)
  ADC_InitStructure.ADC_ContinuousConvMode   = ENABLE; 
  // ↓ AD変換開始トリガなし
  ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None; 
  // ↓ AD変換後のデータ右詰
  ADC_InitStructure.ADC_DataAlign            = ADC_DataAlign_Right;           
  // ↓ 入力を4本(チャネルを増やしたらここを変える)
  ADC_InitStructure.ADC_NbrOfConversion      = 1;       
  ADC_Init(ADC3, &ADC_InitStructure);

変換モードをENABLEにしただけなんだけれど、駄目でした。