かめら工房

ものを作ったり,写真撮ったり

不定期!ニキシー管時計をつくる!2

こんばんは かめらです.

 

昨日に引き続きレポート書くのが辛いから更新してます.

ちなみに研究も何か座礁に乗り上げてる感じします.

 

そんなことよりニキシー管

 

今回はニキシー管を制御するマイコンボード部分について書いていきます.

が,今回もミスがございます(基板発注時)

 

作り直したデータは記事執筆現在elecrowに発注かけてます(またミスが見つかるんじゃ無いかとどきどきしてます)

 

とりあえず今回はまず動かすことを中心に考えます.

使用するマイコンはATMega328PAUをArduinoとして使います.

本当はSTM32とか使ってマイコン使う練習としてバシッと決めたかったんですが不確定要素が多いと動くかどうかも分からないのでとりあえず動くこと優先で.

 

んで作ったのがこんな感じ

f:id:ks7jistra:20160124234358p:plain

 

DC12V(昇圧基板の記事参照)から秋月に売ってるなんかつよいムラタのDCDCコンバータで降圧後,各部品へ電力供給.

akizukidenshi.com

 

で,昨日の記事

camerablog.hatenadiary.com

の基板の上にドッキングする.

 

そう

 

こんな感じに

f:id:ks7jistra:20160124235327p:plain

皆様お気づきだろうか

 

f:id:ks7jistra:20160124235408p:plain

スイッチと管が干渉していることに

 

それと昨日の記事の最後に言ったようにミスがある.

 

お気づきの方もおられるかもしれないが,

IN-14の表示側に基板を重ねようとしようとしている重大なミスをかめら氏は犯してしまったのである.

 

さらにこの基板の上にGPS受信モジュールを乗っけようとしているのであった.

 

今すぐにでも作り直したい.(でもとりあえずこれで作る.

 

あと2カ所くらいこの時にミスしてるけど書くのが面倒なのでこのへんで・・・

不定期!ニキシー管時計をつくる!

こんばんは かめらです.

 

前記事で昇圧回路の部分を書きました.

 

今回は,本体のニキシー管の部分を書こうかなと思っております.

 

先に書いておきますが(前回も書きましたが)特に目新しいことはないです.先人が踏み固めた道路を行くようなものです.その点ご了承ください.

 

別に卒論書くのが嫌だとかレポート書くのに疲れたとかそういうんじゃないよ?本当だよ?

 

ニキシー管を発光させる部分も良くある感じで

こんな感じを予定しております.

うーん見事にテンプレ

 

ノートに回路図とか色々書き殴ったけど最終的に形になったのが

f:id:ks7jistra:20160123222808p:plain

これもよく見(ry

 

時:分:秒表示が出来るようにネオン管をつける部分作りましたが,普通にIN-14のドットで表現しても良かったかなと今になって思いますね・・・.(実は発注済みというかもう基板来てる)

まぁあまり綺麗じゃ無いけれど配線回せば小数点も光らせること出来るし良いか・・・.

 

ちなみに発注した基板データがこちら

f:id:ks7jistra:20160123223640p:plain

 

この記事を書いているときにさらなるミスに気づくことになるなど基板を発注したときのかめらは知る由も無かった・・・

ニキシー

どうも

ちょっとはブログまともに更新していこうと思っているかめらです.

最近研究する気力が起こらない上にロボ研を引退したことで何でも良いからものつくりたい欲が・・・

ということで
前々から作りたいなーと考えていた

ニキシー管時計を作ります.


ニキシー管を駆動させるためには+200V近い電圧が必要となるので,
どうするにせよ昇圧が必要になります.

 

今回使用したいと考えているニキシー管はIN-14という良くある形のニキシー管を使用したいと考えています.

後輩に聞いたところ170Vで動作したとのことなのでその電圧くらいまで昇圧出来る回路を作ろうと思います.

モータドライバ作るときにブートストラップ回路(IC)とかは使ったことあったけど,
普通の昇圧DCDCコンバータは使ったことが無かったので,

先人の知恵(グーグル先生の力)を借りることにしました.


・・・ふむ.どうやらNJM2360とかいうDC/DCコンバータ制御用ICに少しの部品を使えば結構簡単に昇圧できるっぽい

のでこんな感じに昇圧回路組んでみた.

 

f:id:ks7jistra:20160111113146p:plain




コイルとコンデンサに貯めて昇圧する回路で,チョッパ回路とかいうっぽい.
で,そのスイッチングタイミングをNJM2360が調整してくれているっぽい.
賢い

こんな感じで数回ニキシー管時計製作についてちょいちょい書くつもりをしています.

 

・・・にしてもまぁ本当にネットに良く落ちているような回路まんまだなこれ・・・.

とりあえずこれからもよろしゅうお願いします.

お正月

本年もどうぞよろしくお願いします.かめらです.

お正月にちょっと大きな買い物をしてしまいました.

f:id:ks7jistra:20160107234325j:plain

 

f:id:ks7jistra:20160107234327j:plain

OCEANUS!!(OCW-T2000B-1AJF)

アウトレットモールでお正月特価でね・・・つい買っちゃいました.

焼き入れチタンでとても軽いので腕が疲れにくいのが良いです.

 

 

この記事のオチ?ねぇよ!(お買い物自慢がしたかっただけです)

Semihostingとかいうのを使ってみる

どうも かめらです.

前回の最後にprintfでうんたらかんたらってのやりたいってのを書いたんですが,

 

できてません().

ただ,CooCox CoIDEの機能にsemihostingという機能があってそれを使うとPCとシリアル通信っぽい挙動が真似できるらしいので実装してみました.

といってもほぼやることはないんですが・・・.
以下やり方


1.Repository STEP3のCOMMONタブのSemihostingにチェックを入れる.

f:id:ks7jistra:20150901014120p:plain


2.ConfigurationのDebuggerタブでSemihosting Enableにチェックを入れる.

f:id:ks7jistra:20150901014123p:plain


3.printf.cの中身を書き換える.

f:id:ks7jistra:20150901014126p:plain


stdio/printf.cを開き,先頭に#include <semihosting.h>と記述し,PrintChar関数に追記する.
semihostingの機能を使う.ここでは,SH_SendChar(c);と追記する.

4.使う
main関数の中で普通にprintfしたい内容を書いてマイコンに書き込み

f:id:ks7jistra:20150901014129p:plain

(内容は超適当

5.デバッグ(Ctrl+F5)

f:id:ks7jistra:20150901014132p:plain

 

6.表示

f:id:ks7jistra:20150901014135p:plain

下のSemihostingタブに結果が表示される.

 

ただしこのprintfデバッグ,アホみたいに速度が遅いのであくまで動作確認用としてお使いください.(画像では伝わらないがDelayも何も入れてないのにiの数が0.1sくらいでカウントアップされてる

 

あると便利なくても困らない機能なので覚えておけばいいかもです.

 

 

F4DiscoveryでLチカ

どうも,昨日SRCに行って帰ってを行った満身創痍のかめらです.みなさんいかがお過ごしでしょうか.

 

そういえばね,昨日SRCの帰りに湯涌温泉行ってきたんですよ,湯涌!

花咲くいろはの原案の地ですね.

 

温泉が好きで色んな温泉行くことはあるんですが,湯涌は初めてでした.

 

おたくだって言われても文句言わないくらい最高でしたね.

まぁそのことに関してはまた別記事に書くとして・・・.

 

マイコン学び始めましたって記事書いてから何も書いてないことに気づいてしまい,そろそろ書かねば(マイコン自体は弄ってるけど公開してないだけですはい.)と思ったのでとりあえずLチカからやっていきます.

 

まぁF4DiscoveryでLチカとか何人が記事書いてるねんってくらい書いてるでしょうけど気にせず書いていきます.

備忘録レベルですし,こんな風に書いた方がいいよとかあったらコメントかTwitterにリプください.

#include "stm32f4xx.h"

void GPIO_Configuration(void);
void delay(__IO uint32_t nCount);

uint32_t Count = 0xFFFFF;

int main(void)
{
	SystemInit();//システム全体の設定
	GPIO_Configuration();//GPIOの設定
    while(1)
    {
    	GPIO_ToggleBits(GPIOD,GPIO_Pin_13);//GPIO,Dポート13番ピンのオンオフ繰り返し.
    	delay(Count);
    }
}

void GPIO_Configuration(void)
{
        //GPIOをいじくる構造体GPIO_InitStructureを宣言
	GPIO_InitTypeDef GPIO_InitStructure;
    //GPIOのDポートを有効化する.
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
    //GPIODのどのピンを有効化するかを決定する.
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
        //GPIOのモードを出力(Output)モードへ.
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    //出力タイプはプッシュプル(PP)に設定.
	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    //内蔵プルアップ設定は無効に
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
    //GPIOの速度は100MHzに
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
    //GPIO_InitでGPIODを上の設定でを有効化する
	GPIO_Init(GPIOD, &GPIO_InitStructure);

}

void delay(__IO uint32_t nCount)
{
	while(nCount--);
}

今までArduinoしか使ったことなかったのでLチカにこんなに行数いるとは知らなかった(KONAMI
まぁ一度設定してしまえば書き換える必要があるのはmain文だけっぽいので最初だけの苦労と考えれば・・・.
簡単に実装できるDelay関数を実装したけれども,これでは汎用性がなさそうなので,今度はしっかりとタイマを使ってdelay_msとかdelay_usとかが実装できたらいいな,と思います.
が,ロボットとか作っていく上であまり必要ないかもしれない.
でもまぁあれば使うでしょ.ということで実装がんばります.

すぐに実装した方がデバッグしやすくなる方法・・・あれか,printfとかでPC-STM32間でシリアル通信できると値とか見られて楽だし次はそれの実装しますたぶん・・・.(できれば