画像処理ライブラリの作成

 ちょっと画像処理関連でやりたいことがあったので、この機会にということでBMPのライブラリを作った(C++)。
これまでBMPの操作は必要になったときにそのつど適当にプログラムをでっちあげて対応していた。
これからはこのライブラリを使っていく。
ソースコードは公開するので使ってもらっても構わないが、バグも含まれていると思うので注意。

このページの下部でダウンロード可能
ジャジャガッチ | C/C++ | 20:14 | comments(0) | trackbacks(0) |

GMC-4で遊ぶ(4)

 GMC-4でラーメンタイマーを作った。
行き当たりばったりでデバッグ等をしてつぎはぎのコードになってしまい、コードがかなり大きくなってしまった。
GMC-4のプログラムメモリはたった40バイト。漢字20文字分。
データメモリは8バイト。
実はコードの大きさが40バイトを超えてしまった。データメモリもプログラムメモリに使えるようで、データメモリもぎりぎりまでプログラムに使用した。詳細な内容はhttp://jajagacchi.web.fc2.com/GMC4-ii.htmlへ。


早速ラーメンを作ってみた。大して食べたくもないのにラーメンタイマーを使いたいがために。味は変わらない。ただ、面倒なのは電源を切るとプログラムも消えてしまうため、ラーメンを作るためにわざわざ事前に90文字ぽちぽち打ち込まなくてはならない。
妻にラーメン食べるからラーメンタイマー動かしてくれと言われたが、ちょっと待ってくれ、コード打つのに時間がかかる、と言ったら呆れられた。

ここでGMC-4をいじった感想を。
まず、デバッグが大変。コードを打ち込んだあと、あ、ここに命令を入れ忘れた、となったら、その挿入部以後全部打ち直しになって大変。しかもアドレスがずれるため、JUMP命令のところの番地の指定も修正しなければならない。泥臭くてよいな、とも思ったが。
あと、プログラムメモリが恐ろしく小さい。まさかラーメンタイマーごときでプログラムメモリをオーバーするとは思わなかった。普段贅沢な環境でプログラムを組んでいるため新鮮だった。この小ささがシンプルさにつながっていい感じなのだろうな。
シミュレータやアセンブラ、C言語用コンパイラ等を作っている人もいるが、あえて利用しなかった。泥臭さを味わいたくて。コンパイラとか作るの楽しそうだな。

GMC-4、中々面白いのでお勧め。2500円で買えます。
ジャジャガッチ | 電子工作 | 23:08 | comments(0) | trackbacks(0) |

GMC-4で遊ぶ(3) バイナリ15秒タイマー

 GMC-4でラーメンタイマーを作ることにした。しかもただのラーメンタイマーではなく、カウントを二進数表示するおしゃれなタイマーを!!

手始めにバイナリ15秒タイマーを作った。


ジャジャガッチ | 電子工作 | 21:59 | comments(0) | trackbacks(0) |

GMC-4で遊ぶ(2)

 GMC-4でどういう感じにプログラムしているのか雰囲気を伝えたくて動画を撮った。
これくらいの短いプログラムなら入力も苦にならない。
ジャジャガッチ | 電子工作 | 19:20 | comments(0) | trackbacks(0) |

本日観た映画二本

 1本目は「ブレイド」。吸血鬼の人間のハーフ"ブレイド"が吸血鬼達と戦いを繰り広げる映画。何年か前に観たことがあるのだが、続編を観る前に復習として観ておくことにした。かっけー。

 2本目は6年ほど前に公開されたスペイン映画「QUBE RED」。GEOでたまたま見つけて、有名なカルト映画「CUBE」のパクリ作品かな、と思ってあらすじを見ると結構数学的な内容が濃そうな感じだったので興味をそそられて借りてみた。
数学者フェルマーを名乗る招待主から招待された4人の数学者が迫り来る壁に囲まれながら数学の問題を解いていくというストーリー。ただ、4人ともあまり賢い数学者には見えない・・・。
面白いかと言われれば面白くない。つまらないかと言われればつまらなくもない。凡作。暇つぶしくらいにはなるか。
 グロとかは一切ないので安心して観られます。オチは面白くない。ただ、数学がテーマになっている映画は少ないのでそこには存在価値があるか。
ジャジャガッチ | その他 | 15:55 | comments(0) | trackbacks(0) |

ジャジャガッチの勉強ノート更新

久しぶりに「ジャジャガッチの勉強ノート」を更新した。 記事の大半を旧コンテンツページに移動し、GMC-4コーナーを作っといた。 でもGMC-4でやりたいことがあまり思い浮かばない。さて、何しよう。
ジャジャガッチ | その他 | 22:00 | comments(0) | trackbacks(0) |

GMC-4で遊ぶ

 GMC-4とは学研から発売された大人の科学付録の4bitマイクロコンピュータのことだ。
極めて単純なコンピュータだ。
入力は0〜Fまでのキーがあり、出力はLEDとスピーカーがある。
ハンドアセンブルとか経験できるし面白そう!ということで今年の2月に購入したがそのまま放置してしまっていた。

これではいかんということで昨日引っ張り出してきて少しいじってみた。
命令表を見ながら簡単なプログラムを書いてみた。

KA
JUMP 00
CAL ENDS

KAはキーが押されていない場合実行フラグ1、押された場合0となる。
JUMPは実行フラグが1の場合指定アドレスにジャンプする。フラグ0の場合は無視される。
CAL ENDSは音が鳴る。
これを実行すると、キーが押されていない場合はJUMPで0番地に戻るのでKAとJUMPをいったりきたりする(loop)。押されるとフラグ0となりJUMPが無視されるので音が鳴る。
つまり、単にボタンを押すと音が鳴るというだけのプログラムだ。
上のプログラムを16進数に直すと(ハンドアセンブル)

0F00E7

となる。これをGMC-4に入力して実行してやればよい。
しばらくは動作確認を兼ねて簡単なプログラムを書いていこうかな。

ジャジャガッチ | 電子工作 | 14:53 | comments(0) | trackbacks(0) |

包丁研いでみた

 これまで包丁が切れなくなったら間単に使えるナイフシャープナーで研いでいた。
包丁をセットして引くだけで結構切れるようになる。

しかしこのまえ刃を見てみると結構刃こぼれしてしまっている。
これは砥石じゃないと無理だろうということでAmazonで買った。
荒いのと仕上げ用の砥石がセットになっているものを購入した。

刃こぼれしている部分を修正するためにはまず刃を砥石に垂直に当てて削り、そのあとで傾けて研げばよいらしい。
試しにやってみたが、確かに刃こぼれは大分修正できたと思う。
切れ味は妻に聞かないと僕にはよくわかりません。
ジャジャガッチ | その他 | 22:39 | comments(0) | trackbacks(0) |

デバッグ

 昨日は一日デバッグしていた。
コンパイルは通り、プログラムも最後まで走るが結果がおかしい。
変数の中身を参照するために適当にprintfをはさむ、関係なさそうなところをコメントアウトする、などなどしてみた。
明らかに関係ない命令を実行しておくと正常動作する。
こういうわけわからんときは大体メモリ周りのバグだ。

こういうときはひたすら関係なさそうなところをコメントアウトしては実行を繰り返す。コメントアウトしてまだ異常動作するならば、少なくと残った部分には不具合がある(コメントアウトした部分が正常である保証はないが)。
コメントアウトして正常動作したからコメントアウトした部分に異常動作部分があるとしてはならない。メモリ周りのバグのときはちょっとしたことでなぜか正常動作してしまうことがあるからだ。このようなとき、コメントアウトした部分を元に戻し、ほかの部分をコメントアウトすると正常動作することが往々にしてある。

このようにして徐々にバグを追い詰めていき、ついにバグを見つけた。やはりメモリ周りのバグだった。
バグの発見に時間がかかったのは自作したライブラリを多用していたためだ。徐々にライブラリを少なくしていくのが面倒だった。
ジャジャガッチ | C/C++ | 22:26 | comments(0) | trackbacks(0) |

どうでもいいこと

 pcの立ち上がりが遅いのでosをクリーンインストールしてみた。
変わらない。
内臓dvdドライブのケーブルをマザーボードから引っこ抜くと遅いのが直った。
前から内臓dvdドライブが動作しなくなっていたのだが、起動が遅いのはその関係だったのか。

クリーンインストールしたのでブラウザとかも入れなおさなければならない。
ずっとFireFoxを使っていたのだけれど、アップデートで改悪されることなども多く、乗換えを考えていた(デフォルトだとスクロールがヌルヌルしてて気持ちが悪い、日本語入力にバグ←修正済み、など。)。
Chromeにしようかな、とも思ったが、関係ないソフトをインストールしたときに(Flash Playerだったかな)「デフォルトでChromeをインストールする」、という項目にデフォルトでチェックが入っていてインストールされているのに気がついて腹が立ったのでやめた。
Chromeはよくほかのソフトと抱き合わせで勝手にインストールされてしまう。
何でデフォルトでチェックが入っているのか理解不能。
やめろ。
ジャジャガッチ | その他 | 23:05 | comments(0) | trackbacks(0) |
1/1PAGES | |

07
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
--
>>
<<
--
PR
RECOMMEND
RECENT COMMENT
MOBILE
qrcode
OTHERS
Since 2013/09/17
LATEST ENTRY
CATEGORY
ARCHIVE
LINKS
PROFILE
SEARCH