10月31日の日記です

寒くなってきた

だんだん気温が低くなり寒くなってきたなぁ。

うん、特にこれといって書くことない。
明日はもっと計画的に行動しよう。
そして早く寝よう。

DXライブラリを使ってみる-お絵かきソフトpart2

 とりあえず線を書くプログラムを作ってみる

前回では仕様を決定しました。
今回は、その仕様の中でもマウスで線を書くという機能を実装しようと思います。

必要となる機能

DrawLine 線を引く関数
DrawCircle 円を作成する関数

まあ、他にもありますがメインなのはこれらの機能です。

ソースコード

#include "DxLib.h"



int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
int Key;

ChangeWindowMode(TRUE);
SetGraphMode(850, 600, 16);
if (DxLib_Init() == -1) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}

int mx, my;
mx = 0;
my = 0;

int i,bx, by;
bx = 0; //
by = 0;
i = 0;

unsigned int waterblue;
waterblue = GetColor(0, 255, 255);

while (ProcessMessage() == 0)
{
SetDrawScreen(DX_SCREEN_BACK);
DrawFormatString(0, 0, GetColor(255, 221, 181), "お絵かきソフト_ver1.0");
if ((GetMouseInput() & MOUSE_INPUT_LEFT) != 0) {
GetMousePoint(&mx, &my);
}
else {
bx = 0;
by = 0;
i = 1;
}

if ((GetMouseInput() & MOUSE_INPUT_RIGHT) != 0) break;
if (bx!=0){
DrawLine(bx, by, mx, my, waterblue, 8);
}
if (i != 1) {
DrawCircle(mx, my, 4, waterblue, TRUE);
bx = mx;
by = my;
}
i = 0;
ScreenFlip();
}
WaitKey();
DxLib_End();
return 0;

}

こんな感じです。
前フレームのマウス座標と現在フレームのマウス座標から線を書き、フレーム地点でのマウス座標に円を表示しています。

実は、ようつべでほぼ似たようなことをしている動画を見つけてしまいました。
途中までは、それらの動画と似たような機能を実装することになりますが、どこかでオリジナリティは出そうと思います。

最後に実行結果の画像を貼り付けておきます。

意外と使い道あるかも



10月30日の日記です

趣味がなかなか合わない

自分は、趣味が電子工作、プログラミングとかを自称している学生であるが、同年代の友達で同じ趣味を持っている人が少ない。
工学系の学科で、同じ趣味を持つ人を期待していたのだが思ったより少なかった。

他の人の趣味といえば大半はゲームと答えるのだが、そのゲームの中でもなかなか合わない。


自分は艦これやストラテジーゲーム、音ゲーなどが刺さるゲームジャンルであるが、これの話題で話せる人がなかなかいない。
基本的にスイッチ(自分はスイッチ持っていない)のスマブラ(そして、スマブラが苦手だ)とか、ソシャゲとかが多いジャンルであると思われる。

まだゲーム以外の趣味なら話すことができるのだが、ゲームとなると話についていくには相手がプレイしているゲームを自分も少しでもプレイしなければなかなか話すことができない。(自分の会話能力が低いだけかもしれない)

だからといって話についていくためにゲームとか行動するっていうのは無いんだけどね。


趣味ってなんだろうな。
話についていくためにゲームをプレイし、アニメを見たりとかして趣味って言ってる人もいると思う。

それで本人も楽しんでるならいいけど、そうでなかったらそれは趣味とは言えない気がする。それは会話が趣味ではないかなと思う。

好きなこととか無意識にやってることが趣味とすると、人って全員趣味持っているといえるな。無趣味って言う人もいるけど気づいていないだけで趣味はあると思う。


まあ、自分は基本ソロプレイを好んできた身なので一人でも十分ではあるが、同じ趣味で楽しく話している様子を見ると時々羨ましく感じる。
このブログがいつか少しだけ見られるようになって、反応してくれる人とかいたら話してみたいな。
友達と過ごしててそんな風に思った一日でした。

10月29日の日記です。

病み上がり

朝起きたら風邪が治ってる気がしたので久々に外に出ました。
病み上がりの時に外に出ると気力はめちゃくちゃあるんだけど体力が持たないね。

まあ、こんな感じで一日の終わりの今は大分キツイ訳です。
という訳で今日の日記はこれで終わり!

10月28日の日記です

 風邪を引いたっぽい

27日、いつものようにパソコンとにらめっこしてたら、いつの間にか喉が痛い。
少しキツくなってベッドに横になったらそのまま寝てしまい完全に風邪を引いた感じです。

土曜日という貴重な休日をずっとベッドで過ごす羽目になりました。
こういう時ってひたすらようつべとかネットサーフィンとかしてしまってめっちゃ罪悪感がすごい。目に対して。
明日には治ってるといいなー。

今日の艦これ



天津風が改二になりました。性能よし、大発積みおkで我が鎮守府では大いに活躍してくれそうです。

10月26日の日記です

 Z80を使ってみたい。

昨日、トランジスタについて書いたしょぼい記事を投稿したんですけど、その記事を書いてる最中で電子工作熱という感じの熱を発症したんですよ。

んで、なんか作りたいと思って今日はいろいろ調べていたわけなんですが、ちょっと面白そうなものを見つけました。
Z80で動くCP/Mマシンというものです。
CP/Mマシンというのは、昔の8bitCPUとかで使われていたOS(オペレーティングシステム)らしいです。
このOSをZ80で走らせるという記事を見かけまして自分も作ってみたいと思いました。
自分はトランジスタを用いた回路ですら、つまずくレベルなんですが、何故か自作の8bitCPUは作ったことがあります。
それの延長でできないかな~と。
Z80は部品箱に一個ありますしね。

また本格的に考え出したら記事にしようかな。

日記のクオリティがどんどん下がってる気がする。
眠くなる前にできるだけ早く書かないときついっす。

10月25日の日記です

 睡眠3時間

今日は1時位に寝ようかなと思ったんですが、何故か5時まで起きてしまいました。

寝よう寝ようと思うほど眠れなくなるこの現象なんだろう。
実は昨日も同じような睡眠時間なので今日は日付が変わる前に寝たいな。

あ、そういえばこれで10記事目か。自分にしては意外と続いてるな。

ijyo

ライントレースマシンの動作を理解したい

 動機

この回路で動作原理も分からないまま電子工作を行って、なんか、まずい気がしてきたからですね(汗)。

回路図

問題の回路図です。


こんな感じです。
実際にはリレーのスイッチにも回路がありますが、これらの回路で関係ないため、省きました。
R1=10kΩ,VR1=最大30kΩ,CdS=明800Ω 暗1MΩとします。Tr1は2SC1815,RLはG5A・234pという型番の素子を使用しています。


マシンの動作

動作は、黒いラインからの反射した光をCdSが受け取ると、光量が少ないため、CdSの抵抗値が大きくなり、リレーが動作しなくなります。
黒いラインからはみ出た白い部分からの反射した光をCdSが受け取ると、光量が大きくなるため、CdSの抵抗値が小さくなり、リレーが動作します。

言い忘れていたんですけど、ライントレースマシンは黒いラインと白いラインを判断して動く機械って感じです。


ざっくりとした動作原理

CdSの抵抗値によってトランジスタTr1のベースに流れる電流IBの量が変化し、それによるコレクタ電流ICの増幅によって、リレーが動作するかしないかを決めているんだと思います。

必要になる値

ベース電流IB
コレクタ電流IC

次にこれらの求め方を説明しながら自分も学んでいきます。

トランジスタのベース電流の求め方

例としてCdSが明の状態での動作?流れ方?を考えてみます。CdS=800Ωですね。
ベース・エミッタ間電圧は約0.6Vです。したがって、VR1とTr1のベース部分に0.6V印加されています。
これらの情報からVR1に流れている電流が分かります。ここではVR1=15kΩとしておきます。
オームの法則からIVR1=0.6V/15kΩ=4×10^-5A=40μAとなります。

次にR1,CdS部分の流れている電流を計算していきます。
まず、R1,CdSの抵抗は合計で10.8kΩです。
この抵抗に印加されている電圧は9V-0.6V=8.4Vとなります。
これらの情報から電流を計算します。
I1=8.4V/10.8kΩ=0.78×10^-3=780μAとなります。

したがって、Tr1のベース電流IBは780μA-40μA=740μAの電流が流れていることになります。
こんな感じかな?


コレクタ電流を求めてみる

ベース電流からコレクタ電流を求めるには直流電流増幅率という値をベース電流にかけることで求めることができます。直流電流増幅率は基本的にトランジスタのデータシートに書いてあります。

そこで2SC1815の直流電流増幅率をデータシートから求めようと思ったのですが...
なんと、2SC1815トランジスタは4種類存在し、それぞれ増幅率が違うみたいです。出来れば自分で作成した回路のトランジスタの型番で計算したいところですが、分類を把握しておらず...ここでは増幅率150とします。

つまりコレクタ電流ICはIC=150×740μA=111mAとなります。
これでトランジスタ関係の計算は以上です。

リレーのデータシートを見てみる

「とりあえずコレクタ電流IC、ベース電流IBも求められるようになったけど、肝心なのはリレーが動くか動かないかでしょ」
そう声が聞こえてきそうです。大丈夫です。求められます多分。
要はCdSが明状態でのコレクタ電流がリレーの定格電流に合致すればいいわけです。んで、最終的に可変抵抗の値を求めてればおkです。というわけで早速データシート見ていきます。

書いてありました。この回路では9Vの電圧が印加されているのでその部分の定格電流を見ればいいわけです。ですが、これはちょっとまずいかもです。問題なのはトランジスタです。

リレーの定格電圧9Vの時の定格電流を目安に計算して、可変抵抗の値を決めても実際の回路は正常に動かないかもしれません。
リレーの定格電圧9Vということはリレーで9V使い果たしてしまうということです。おそらく残った電圧は0.なんちゃかVでしょう。
その場合、トランジスタでは飽和領域と呼ばれる領域に到達します。この領域は上のグラフの0に近いところの部分です。この領域ではベース電流IBの変化でコレクタ電流ICがほとんど増加しない領域らしいです。(詳しいことは分からない)魔の三角海域みたいな感じです。
まあ、とにかくリレーの電圧降下はほどほどにしてコレクタ・エミッタ間電圧に使える電圧を残そうってわけです。

というわけでリレーは定格電圧5Vの欄を参考にしていきます。つまり、コレクタ電流ICは40mAです。

可変抵抗の値を求めてみよう

後はどんどん計算するだけです。
ベース電流IBを求めます。直流電流増幅率は150とします。
IB=40mA/150=0.267mA=267μA
R1,CdS部分の電流は780μAなので780μA-267μA=513μAの電流を抵抗VR1に流せばいいわけです。
VR1=0.6/513μA=1169Ω≒1kΩ
可変抵抗の値は1kΩです。

CdS暗の場合はどうなるの

CdS暗の場合はどうなるか考えてみます。
CdS暗の場合なので1MΩです。
この時、R1,CdS部分の電流はI2=8.4V/1MΩ=8.4μAとなります。(R1の抵抗を足していませんが足しても似たような値です。)

ここまで読んだら分かると思うんですが、8.4μAでは、可変抵抗最大値の30kΩを設定してやってもIVR1=0.6V/30kΩ=20μAを流してしまうのでトランジスタ側に電流を全く流すことができません。
したがって、リレーは動かないというわけです。

まとめ

題名からするとめっちゃ脱線した記事ですが、結果的に理解はできました。トランジスタの理解もかなり深まっていい感じです。

トランジスタを使った電子工作もなんかやってみたいですね。今なら少しは使いこなせそうです。
以上です。


















10月24日の日記です

今日は電子工作でプレゼンの発表がありました。

教授の質問きつかった。
まあ、自分たちで工作したものを理解していないのが悪いんだけど...
これからこんな機会増えるのかな...卒論発表とか大丈夫かな俺。
過剰な位メモを取る。(資料に活かして質問に備える)
プレゼンをしっかり練習する。
電子回路の動作原理を理解する。
これらをやれば乗り越えられたんだろうけど、キツイな~。そこまで積極的にやってる訳でもないし...。

でも、電子工作自体は割と好きだし何とか興味持って次からがんばろ。

今日の艦これ


何となく育ててたromaが改装レベル到達しました。
しかし、改装設計図必要なのか。うーむ
設計図は今4枚でハロウィン期間で一週間で勲章1つ手に入るけどなー。

うん、これはパスだな。
矢矧、天津風、赤城、もっと重要な艦娘の改装が控えてるし。

初心者なので改装設計図を伴う改装はかなり気を使いますね。早く勲章100個とか持てるようになりたいなー。そんな持っててどうするって話だけど。





DXライブラリを使ってみる-お絵かきソフトpart1


動機

なんかdxライブラリを使ってみたくなった感じです。
お絵かきソフトなのはdxライブラリで作りやすそうだったからですね。

仕様を決めてみる

何も仕様決めないで作って、後から変更とかになったら面倒なので簡単な仕様だけ決めます。

1 マウスの左クリックで線を引く
2 線の太さは変えれるようなシステムにする
4 色も変えれるようなシステムにする
3 メニュー画面とかはやる気があれば作る(後からでもできそう)

こんな感じかな。
セーブ機能とかはなんか面倒くさそうなので今回は省きます。

次回はとりあえず線を引くプログラムを作ってみる所まで書いていきたいと思います。
↑こんな感じ(笑)


10月23日の日記です

 ドリームキャストのゲームが面白すぎる

最近ドリームキャストのソニックアドベンチャー2というゲームを遊んでいる。
これがかなり面白い。

ストーリーいいし、曲いいし、やってて本当楽しい。ナックルズのかけら集めが特に楽しいですね。

ただ下手くそすぎて今のところあんまり爽快感無い...

今日の艦これ

特に書くことないので普段の演習メンバーを紹介していきます。

まあ、なんか、本当に何も考えずにただ適当にレベリングしたい艦をぶち込んだ編成です。
とりあえず改二までレベリングって感じです。衣笠改二は75レベル位まで上げたい。

我が鎮守府は演習以外ではあんまりレベリングはやってない系鎮守府です。なのでかれこれ3ヶ月ぐらい前からずっとこれに近い編成で回しています。(ローマは最近始めた)

ベテラン提督とかは、やっぱり通常海域でレベリングしまくって育成艦の交代も早いのかな?

以上です。








10/22の日記です

 何もしていない日

また、やってしまった。

午後近くに布団から出て、飯食ってスマホいじって終わりの日。

こんな一日にならないようにするためのブログなのに...
あ、そういえばこのブログのタイトルが"暇で眠い備忘録と日記"だった。適当に付けて特に意味はなかったが、"暇で眠い"、まさにこの一日を表している。

普段やっていることって言葉にも出やすいんだなぁ~(浅)

よし、決めた。明日はプログラミングとか何でもいいから創作的なことするぞー!

10月21日の日記です

 ピザ作ってみた

学校の行事的なやつでピザ作りました。
普段チャーハンぐらいしか作れない自分にとってはなかなか経験できない体験でした。
ピザというよりかは、形がいびつすぎてほぼナンでしたけど、

その時の料理長な人の話によれば、イタリアン料理って作るだけなら意外と簡単に作れるみたいですね。極めると難しいらしく、"宇宙"と表現してました。

まあ、簡単に作れるなら作ってみようかな。パスタとか。

今日の艦これ(仮)

毎週のだるいやつ

毎週のだるいやつといったらこの任務でしょ。海上護衛作戦、ろ号作戦!
我が鎮守府では日曜日までほったらかしにして最後に一気にやります。
あ号作戦は日々の任務とキラ付けとかいろいろやってたら終わるんですけど、こいつらはなかなか終わりませんね~ 
まあ、2-2をひたすら空母で潰していくだけなのでそこまで大変ではないんですけど。

そろそろ、ハロウィン任務進めたいし、2-3で早波、浜波掘りやらないと。















DXライブラリで作ったゲーム-ブロック崩し

 概要

一年位前に作ったブロック崩しのゲームとそのソースコードを置いておきます。
ブロック崩しといってもブロックは一列だし、いきなりゲームが始まります。ソースコードをいじってみたりすると面白いかもしれません。

DXライブラリに関しては最近またやる気になってきたので、何か作ってみたいですね。お絵かきソフトとかいいかも。



10/20の日記です

今日は昼から雨がどっさり降り、傘が壊れて無しで学校行ったら散々な目に遭いました。
いやーきつい。
こうゆう感じで何か切らしてる時に限って、それが必要な状況に出くわすのよくあるので注意しないとですね〜


今日の艦これ(仮)

艦これはハロウィンイベント真っ盛り。
ということで執務室をハロウィンっぽくしてみました。
ぶっちゃけ平凡っすね。
ハロウィン床、壁紙、家具買ったら家具職人尽きました。んで、適当にそれっぽい家具を置いてみた感じです。家具職人は選択報酬でよく見かけるやつなんですけど基本的にもう一方がいい装備とかそこら辺なんですよね。なかなか集まりません。

ご登場頂いた秘書艦は特務艦、宗谷です。ハロウィンイベグラに一目惚れし、1-4を70回ぐらい周回して入手しました。いつ見てもかわいいです。あと、声がかわいい。にゃ~

10/20、今日の日記はこんなもんですかね。
うーむ、継続できるのか、これ。