いろいろ破壊しまくるゲーム「JUST CAUSE 3」が面白い

(投稿日:2016-06-05)

最近微妙に忙しく、なんだか久々のブログになってしまいましたが、今回はPCゲームを紹介したいと思います。

JustCause3_1
そのゲームは、スクウェア・エニックスの「JUST CAUSE 3」PC版。
「3」なのでシリーズ物ですが、前作を知らなくても大丈夫。
かくいう私も、この「3」が初プレイです。

JustCause3_2

この綺麗なお花畑の中にいるオッサンが主人公です。
ゲーム自体はオープンワールドのFPSで、架空の独裁国家で革命を起こすべく戦うというもの。

JustCause3_3
散発的に戦闘は起こるけど、主人公が積極的に戦闘を起こさなければ町はわりと平和だったりする。
なので、オープンワールドのゲームらしく、戦わずに車に乗って延々ドライブするだけでも結構楽しい。

[注意:音が出ます]
しかし、やはりメインは戦闘なので、バンバン戦います。
戦闘では色々な物を破壊できるようになっていて、政府側施設を全部破壊すれば町なり軍事基地を奪還できるというルールになってます。

このゲームならではの物を壊す楽しさがシステムに組み込まれてるのが、なかなか巧いですよね、
誘爆でどんどん連鎖して壊れていった時とか、実に気持ちいい。

動画ではガスタンクみたいなのがあり得ない壊れ方をしてますが、気にしてはいけない。

[注意:音が出ます]
ヘリに乗って攻撃したりも可能。
敵の応援ヘリとかが来るまでは無双状態に近く、これまた爽快。

[注意:音が出ます]
あと、パラシュートとフライングスーツ、そしてスパイダーマンのようにワイヤーを射出するガジェットを使って空を滑空したりもできます。
これも気持ちがいい。

JustCause3_4
夕日を見ながらたたずむ主人公。
このゲームはグラフィックも綺麗です。

というわけで、いろいろと気分爽快なゲーム「JUST CAUSE 3」の紹介でした。

・・・しかし、最近遊ぶ時間がなくて、途中で中断したまま。
いつになったらクリアできることやら。

投稿者:

IchigoJamで遊ぶ・その6 「7セグで3桁表示する」

(投稿日:2016-05-09)

ひさびさのIchigoJamネタです。

前回に引き続き7セグLEDを使うんですが、今回を桁を増やして3桁にチャレンジします。

3桁7セグLED

7seg3-1

今回使うのは、こういう3桁表示の7セグLED。
何故3桁という中途半端な桁になったのかというと、ちょうどこの部品が手許にあったから。

7seg3-2

裏はこんな感じで、ピンが12本あります。
7セグが3つのわりにピン数が少ない気がしますが、実はこれはダイナミック点灯用だから。

ダイナミック点灯とは

ダイナミック点灯というのは、LEDなどを高速に点滅させて使う方法のこと。
点滅スピードが速いと人間の目には普通に光ってるようにしか見えないため、点けっぱなしにするより消費電力を抑えたりできます。
(多少はチラチラしますが)

今回の場合のダイナミック点灯は、1桁目から3桁目に順番に高速に点灯させることによって、瞬間的には1桁しか点灯してないけど、あたかも3桁同時に光っているように見せるというもの。

こうすることで使用するピンを減らせて、マイコン等につなぐ際にポートの節約が出来るというワケです。

lg2
なぜピンが減らせるのかというと、内部の配線がこういう風に各桁で共通となっているため。
(図ではaの配線のみで他は省略してます)

信号の出口(図の上側)は別々になっているので、ここを制御することで点灯する桁を選べる仕組みです。
上側を3つとも接続すると同時に点灯できますが、表示内容が全部同じになってしまうのであまり意味が無いです。

ちなみに前回のように点滅させずに点灯させたままなのは「スタティック点灯」と言います。

目の錯覚を利用するなんて邪道、スタティック点灯こそ正義・・・とかいうのであれば、前回使った1桁のモノを3つ使えばできますが、配線も大変そうだし、ポートが足りなくなるのも何とかしないといけません。

なので、今回はダイナミックに点灯させます。

ダイナミック点灯でもポートが足りない?

前回、7セグを利用する時のポートを4つに節約できましたが、それでも残りは2ポート。
それでどうやって3桁を制御するのか?

まぁ、そこは例によって便利な汎用ロジックICがあるのです。

74138
今回使うのは74HC138、「3to8 ラインデコーダ」というもの。
(ピンセットでつまんでいるのは特に意味はない)
これは3ビットの入力信号から、8ビットのうち1つを選択した出力が得られるというもの。

table
真理値表はこんな感じ。
(フェアチャイルドのデータシートより引用)

左側のG1、G2というのはとりあえず無視して、A・B・Cが「X」でない3行目以降に注目。
このA・B・Cが入力する3ビットの信号で、この値によってOutputsのY0からY7のどれかが「L」になってます。

「L」とはLowのことで、電圧が低いことを表します。
今回は電流の出口側で桁を制御したいので、選択したビットの電圧が「L」になると電流が流れて好都合です。
(電流は電圧の高い方から低い方へ流れるため・・・と、理解してますが、厳密には違うかも)

しかし、入力に3ビット必要なら、やっぱりポートが足りない?
かと言うとそういうことは無く、今回使いたいのは3桁だけなので、真理値表でいうところのY0~Y2を制御できれば十分。
なので2ビットだけを使って、残り1ビットは「L」に固定してしまえば問題なしです。

実際に接続する

説明はこれくらいにして、実際にIchigoJamにつないでみましょう。

lg3
回路図?はこんな感じで、だんだんややこしくなってきました。

ij51
パズルめいてきたブレッドボード上の実装。
いかにヒモ状のジャンパーワイヤーを使わずに作れるかを考えるとちょっと楽しい。
(全然減らせてないですが)

それはさておき、この接続では出力する6ビットのうち、上位2ビット(ポート5と6)で桁の選択、下位4ビットが表示する値になります。

「5」は2進数で「000101」なので、「out 5」とすると1桁目が「5」になります。
ij54

2桁目を点灯させようとおもえば、表示させる値に2進数の「010000」、すなわち16を足せばOK。
「OUT 19」だと、2桁目が3になります。
ij52

同様に3桁目の場合は32をプラス。
「9」を3桁目に表示したいなら、「OUT 41」。
ij53

なので、以下のようなプログラムを実行すると。

7seg3

3桁表示できました。
といっても、固定値を表示しただけなので、次はもうちょっとまともな表示を行ってみたいと思いますが。

ところで、このプログラムを実行すると、3桁目の「9」が若干明るく見えます。
これは、3桁目の表示後にGOTO文を処理するため、その分他の桁より長く光ってるからでしょう。

明るさを均等にするには、以下のようにGOTO文の前に全桁を消灯すると良いかと(40行目)。

「OUT 0」では、1桁目に0が表示されてしまうので、何も表示されない値である「10」を1桁目に出力してます。

ちなみに、40行目を「OUT 0」にすると、「839」と表示されてるように見えます。
(そして8だけ微妙に明るさが違う)

というわけで、たぶん続きます。

投稿者:

しまなみ海道・とびしま海道の旅

(投稿日:2016-05-06)

ゴールデンウィーク前半、しまなみ海道・とびしま海道を自転車で旅行して来ました。

今年に入ってから計画し、宿の予約とかをしながらも天気だけが気がかりでしたが、旅行中は毎日気持ちのいい晴天。
そういえば、しまなみは5回くらい行ってますけど、天気が悪かった事が無いという幸運に恵まれてるなぁ。
(自転車旅行では天気が問題なんですよ)

というわけで、以下写真の紹介です。

とびしま海道

とびしま海道は今回初めて行きましたが、しまなみ海道ほど人も多くなく、のどかな感じです。
逆に言うと途中にお店などもあまりなく、昼食になかなかありつけずにお腹空かしながら走ってましたけど。

simanami1
とびしま海道で休憩中。
向こうに小さく見えるのは豊島大橋。
車もほとんど通らないところで、本当にのんびり。

尾道

simanami2
とびしま海道横断後、電車でしまなみ海道の起点・尾道へ。

尾道は好きなもので、もう8回くらい来たことがあります。
うち3回は青春18切符を使って行ったので、着いた時点で疲れ果ててましたけど。

simanami3
千光寺公園から眺める尾道水道。
この景色は本当に何度見ても飽きないですなぁ。

simanami4
尾道と言えば猫。
千光寺公園周辺にいる猫は人に馴れていて結構触らせてくれるんですけど、触り方が気に障ったのか、この後この猫に襲われました(笑)

大久野島(ウサギ島)

simanami5
尾道の観光後は、自転車でしまなみ海道を半分走り、大三島から大久野島へ。

大久野島はウサギ島として有名で、島にはウサギがワラワラいます。
ここのウサギも人に馴れていて、エサをあげると食べてくれるので癒やされます。

ただ、島へ渡るフェリーはウサギ好きな人で満員なのか、1時間くらい遅れてて待たされましたけども。

simanami6
大久野島の夕日。

大久野島は戦時中に毒ガス工場があった事でも有名で、島のあちこちに工場の廃墟が残ってたりするんですが、今回は見る暇がなかった。
残念。

しまなみ海道

大久野島からフェリーで大三島に戻り、しまなみ海道へ復帰。
と言っても、もう残りは半分ですけどね。

simanami7
多々羅大橋の近くの「道の駅」ならぬ「海の駅」で海を見ながら休憩。

海が透き通っていて、えらく綺麗でした。
いつもこんなに綺麗だったっけかな。

simanami8
その後、「伯方の塩(はっ・かっ・たっのしお)」で有名な伯方島に渡って、これまた有名なラーメン屋さん「さんわ」にて食事。

ちょうど昼食時だったのでかなり混んでましたが、ここのラーメンは本当おいしいので待つ価値はあります。

しまなみ海道には他にも、はっさく大福やドルチェのジェラート、瀬戸田のコロッケなど、いろいろとおいしいものがあって、全部食べたんですけど、写真は撮ってませんでした。

帰路

simanami9
帰りはフェリー。

フェリーは自転車が持ち込め、移動と宿泊が同時に出来てリーズナブル、と自転車乗りには嬉しい乗り物なんですけど、最近はどんどん航路が少なくなっているのが悲しい。

今回も東予発南港行きという、今治からはちょっと離れた東予港からの出港便。
昔は南港発大分行きの今治寄港便という、しまなみ海道へ行くには最適な航路があったのになぁ。

というわけで、だいぶ駆け足でしたが、しまなみ海道・とびしま海道の旅でした。

しまなみ海道

広島の尾道から愛媛の今治へ、瀬戸内の島々に架けられた橋でつながっている全長約70キロの道路。
途中の橋も含めて自転車でも走る事ができるので、サイクリストに絶大な人気のあるコースです。

とびしま海道

しまなみ海道途中の大三島の西にある岡村島から呉方面へ、しまなみと同じように橋でつながっている全長約30キロくらいの道路。
こちらも自転車通行可能なのでじわじわ人気が出ていますが、岡村島から東にはまだ橋が無く、しまなみ海道側とのアクセスにはフェリーを使うしかないのが若干不便なところ。
ここに橋が架かれば、もっと人気が出るでしょうね~。

投稿者:

最近のHDDはネジ穴の位置がちがう?

(投稿日:2016-04-26)

先日、新しいハードディスクを購入しました。
で、早速取り付けようとしたんですけど、うまく取り付けられない。

おかしいなと思って、よく見てみると・・・

hdd1
底のネジ穴の位置が違う!?

ネジ穴の位置なんて規格化されていて、そうそう変わらないものと思ってましたけど、こういうパターンもあるんですね(新しい規格?)。

取り付けようとしていた筐体も同じ考えの元に設計されていたのか、古いHDDに対応したネジ穴しか使えず、新しい方のHDDでは2カ所しかネジ止めできません。

これがSSDなら2カ所だけで取り付けても良いかもしれませんけど、凄いスピードで回る円盤が中に入ってるHDDを2カ所だけで固定するというのは不安が残ります。

hdd2
それならばと、こういう昔よく使ったマウンタで5インチベイに取り付けようかとも考えたんですが、これも筐体側のレバーで簡単に取り付けできる便利な仕組みが仇となり断念 (5インチベイにネジ穴すら無い・・・)。

hdd3
最終的にこういう5インチベイ2段に3.5インチHDDが3台取り付けられるマウンタを買って取り付けました。

予想外の出費でしたけど、ファンが付いていて精神衛生上ちょこっと安心なので、まあ良しとしましょう。

ちなみに、ちょっと調べてみたところでは大容量HDDの一部でネジ穴の位置が変わってるみたいですね。
側面のネジ穴がひとつ少ないものもあるようです。

投稿者:

吉野へ桜を見に行ってきました

(投稿日:2016-04-10)

yoshino1
土曜日、奈良の吉野へ桜を見にいってきました。
平地ではかなり散ってしまってますが、吉野は山間にあるので、まだ咲いています。
上の写真は上千本で撮ったもの。
実際はもっと綺麗だったんですけど、桜の写真は撮るのは難しい。

yoshino3
ロープウェイに乗らずに七曲がりを上っていったところにある赤い橋。
ここでくず餅を食べて一息つくのが個人的な定番なのです。

yoshino4
七曲がりの途中にある枝垂れ桜。
ピンクが映えるので、写真撮る人には大人気。

yoshino5
上千本のお墓の近くにあった白い桜。
青空がバックだとやっぱり綺麗ですね。

yoshino6
特別拝観中のお寺にあった枝垂れ桜。
これも綺麗でした。

yoshino2
ただ、シーズンまっただ中という事で人が多かった。
特に下千本から中千本の間のお店が建ち並ぶエリアは大混雑。

といっても、桜が咲いている場所はそれほど混んでないので、桜を見る分には何の問題もないです。

吉野は桜と紅葉の季節にしか行ったことがないのですが、それ以外のシーズンはどんな感じなんでしょうかね。
一度、真夏とかに山登りに行ってみたいところです。

投稿者:

IchigoJamで遊ぶ・その5 「7セグディスプレイを使う」

(投稿日:2016-04-06)

なんだか久々になりましたが、今回は7セグメント(略して7セグ)LEDを使ってみたいと思います。
ええ、また光りモノですとも。

7seg
7セグというのは、こういう「日」の字型になっている、よく見かけるお馴染みのやつです。
光る棒の部分が7本あるので7セグメント。
小数点のドット部分を入れると8セグメントですけどね。

(ドットのことは忘れて)これを制御するには7本の信号が必要になるんですけど、ここで困った問題が。

Ichigo Jamには出力ポートが6つしかない!

さて、どうしましょう?

※ Ichigo Jam も日々進化しており、新しいバージョンでは出力ポートはもっと増えています。

7セグメントデコーダを使う

しかし、世の中には便利なものがあるものです。
汎用ロジックICの中に、その名も7セグメントデコーダという7セグ用の「74HC4511」というICがありますので、これを使いましょう。

74HC4511
これが「74HC4511」です。
足が16本あります。

74hc4511ds
(日立(現ルネサス)のデータシートから引用)

構造はこんな感じになっていて、左側のABCDの4ビットを使って0から9の信号を入力すると、それに対応した7セグ用の信号が右側のa~gから出力されます。
入力が4ビットなので、これを使えば4本の出力ポートで7セグ表示が可能になるというワケです。

他に、このICが動作するためには電源も必要なので、VCCには電源を接続します。
LT,BT,LEといったのは制御用?なので、今は特に気にしなくても良いかと。

ちなみに、10以上の信号を入力(4ビットなので15まで入力可能)した場合、全てのセグメントが消えて何も表示されません。

BASICで制御する

kairo

というわけで、74HC4511と7セグLEDをこんな感じで接続します。
LT,BT,LEは、VCCやGNDに固定します。
(本当は他にも抵抗やらコンデンサやらを追加した方がいいんだと思いますが省略しています)

あとは、表示したい数字をOUT命令に指定すれだけでOK!
OUT命令はパラメータが1つだと、2ビット化して各ポートに出力してくれるためです。

早速、「OUT 1」を実行してみると・・・
7seg_1
この通り。

7seg_2
「OUT 9」だとこうなります。
下の横棒が光らないデザインですね。

7seg_a
「OUT 10」とすると何も表示されません。

プログラムでグルグル回してみます。

電子ルーレット

グルグルカウントするだけでは面白くないので、電子ルーレットみたいなのを作ってみました。

本体のスイッチを押すとルーレットが遅くなっていき、最後に出目の数値か点滅します。

数値はカウントアップではなくランダムです。

「ルーレットなら、別に7セグ使わなくても画面で表示すればいいじゃん」 とか言われそうですけど、それを無理矢理作るのが電子工作なのです。
・・・ほんとかよ(笑)

というわけで、ではまた。

投稿者:

ネットワークカメラを納品しました

(投稿日:2016-03-20)

camera1
先日、お客様の事務所にネットワークカメラを納品・設置させて頂きました。

複数ある支店の間をライブ映像で結び、各支店の様子を相互に確認できるように構築しています。
お互いの姿を見えるようにすることで、支店間の距離的な隔たりを減らし、会社としての一体感を出す事が第一の目的です。

もちろん防犯上の役割もあり、入退室者についての映像の記録も行っています。

camera2

弊社はソフトウェア開発をメインとしていますが、こういったソフト開発以外のソリューションの提案や提供も行っています。

投稿者:

IchigoJamで遊ぶ その4 アナログ入力で温度計

(投稿日:2016-03-18)

IchigoJamには(あのRaspberry Piにも付いていない)アナログ入力が備わっていて、0V~3.3Vの範囲の電圧を0~1023の数値として取得できます。
今回はこのアナログ入力を使ってみようと思います。

アナログ温度センサで温度を測る

IMG_8590_
見た目はトランジスタみたいですけど、温度センサです。
(この形だとトランジスタだと思っていた時期が私もありました)

これはTMP36というアナログ温度センサで、この三つある足のひとつから、温度が25℃の時には750mVが出力され、そこから温度が1℃変わる毎に電圧も10mV増減します。
なので、この足をIchigoJamのアナログ入力につないで電圧を測れば、温度が分かるというわけです。
(ちなみに残り2本の足は、電源とGND)

ondo
例によってつなぎ方はこんな感じ。

TMP36のVoutというのが温度の出力で、Vsが電源です。
今回はIN2のアナログ入力を使うので、VoutとIN2をつないでます。

IMG_8608_
実際の接続はこんな感じ。

アナログ入力の値はANAという関数で調べられるので、早速取得してみます。

tmp36
IchigoJamのアナログ入力は0~3.3Vが1024段階なので、1段階あたりは 3.3V ÷ 1024 ≒ 0.0032V =3.2mV。
アナログ入力の値が225ということは、3.2mvをかけると720mv。

25℃の時の750mVとの差は-30mVなので、温度は22℃という事になります。
若干肌寒い。

IMG_8610_
温度計で測ってみると22.8℃。
まぁまぁ近い値でした。

温度計プログラム

しかし、いちいちアナログ入力の値を調べて計算するのは面倒なので、こういうことはコンピュータにやらせましょう。

20行目、IchigoJamは小数を扱えない(たぶん)ので、アナログ入力の値に3.2mV分の32を掛け、500mV分の5000を引いておきます。
この値を100で割ると温度が求まるハズ。
40行目や60行目で、100で割ったり余りを求めたりして小数1桁まで表示してます。
温度の数字以外何も出さない、手抜きプログラムです。

では、実行~。

速すぎっ!
こんな温度計はせわしなさすぎる。

というわけで、途中にウェイトを入れて調整。

まだ速い気もしますけど、そこはWAITを調整かな。
単にWAITを入れるだけではなくて、待ってる間にも値を測定し、それを平均化したものを表示するのが良いかもしれない。

温度計の分解能

温度計を動かしていると、値はころころ変わるわりに、小数部分は同じ数字ばかり出てきます。

これは、IcihgoJamのアナログ入力の分解能が約3.2mVであるのと、温度センサの1℃あたり10mVという仕様とが相まって、約0.3度単位でしか温度を測れないからでしょう。

もっと細かく温度を測ろうと思ったら、センサを1℃あたり20mVとかのものに換えたり、出力電圧を増幅したりが必要かと。

あるいは、上に書いた平均を求めるようにプログラムを改造しても、ある程度は細かくなりそうな気がします。

投稿者:

IchigoJamで遊ぶ その3 信号機を作る

(投稿日:2016-03-16)

信号機っぽいものを作ろう

前回は1個のLEDを制御したので、今度は三つくらい制御してみましょう。
せっかくなので、青(緑)・黄色(橙)・赤の3色のLEDを用意して、信号機もどきにチャレンジ。

led2
こんな感じで、前回同様にOUT1には緑色のLEDを取り付け、加えてOUT2に黄色のLED、OUT3に赤色のLEDを接続します。

前回は「OUT 1」というコマンドを使っていましたが、実はこのOUTコマンドはパラメータを二つ指定することができて、以下のように使えます。

※オンにするというのは正確には電圧をHighにする事ですが、今のところは単純にオンとオフとしておきます。

OUT 2,1 にすると黄色のLEDが光り、OUT 3,1にすると赤色のLEDが光るというわけです。
簡単ですねぇ。

で、こんなプログラムで、緑が6秒、黄色が1.5秒、赤色が6秒というような信号機っぽいものを作ってみました。

見た目はちょっとアレですけど、信号機っぽい動作になってるハズ。

プログラムが分かりづらい!

しかし、このプログラムはちゃんと動きはしますが、出力先の指定とオンとオフが入り乱れていてややこしいし、なんだか無駄に長いです。

プログラムを一端途中で止めてから再度実行すると、初期化してないので青と赤が同時に光ったりする不具合もあります。

なので、ここは複数の出力を一度にオンとオフできる方法を使ってみます。
といっても、何のことは無い(前回も使っていた) OUTコマンドをパラメータ一つで使うだけなんですけどね。

OUTコマンドをパラメータ一つのみで使うと、そのパラメータを2進数にしたときの各ビットに対応したOUT端子がオン・オフされます。
たとえば、パラメータが「6」の場合、2進数だと「00000110」なので、OUT2とOUT3がオンで他はオフとなるわけです。

というわけで、プログラムをこういう風に書き換えました。

50行目の「OUT 4」 が、OUT4端子をオンにするものと思いがちですけど、実際は「OUT3端子のみオン」にしています。

個人的には分かりやすくなったと思ってますが、2進数を知らないと余計に分かりにくくなったかも?
ただ、プログラムは短くなったので良しとします・・・してください。

おまけ・歩行者用信号機

ほとんど同じようなプログラムですけど、歩行者用信号機も作ってみました。

動き的にはこちらの方が面白いかも(笑)

投稿者:

IchigoJamで遊ぶ その2

(投稿日:2016-03-13)

ハルチカ・・ではなくLチカ

今回は、電子工作での「Hello,World!」と言われるLチカ(LEDをチカチカ点滅させる)にチャレンジしてみましょう。

といっても、私の買ってきたIchigoJamのボードには最初からLEDが実装されています。
BASICにもLEDコマンドというものがあり、実に簡単に制御できます。

IMG_8544

というわけで、以下のようなプログラムを作成。

LEDをオンにして、30フレーム(0.5秒)待機し、LEDをオフにして、また30フレーム待機、を繰り返すだけのプログラム。
実行させると・・・

Lチカ完成です!
(刺さってる赤い線やらは今のところ気にしないでください)

外付けLEDをチカチカさせる。

しかし、基板上のLEDをチカチカさせるだけでは、いまいち面白くない。
なので、ブレッドボードを用意して、そこにLEDを取り付けてチカチカさせてみます。


つなぎ方はこういう感じ。
IchigoJamの出力ポートのOUT1とGNDの間にLEDを接続。
LEDに電流が流れすぎないよう、途中に抵抗も入れます。


実際の接続。
白い線がOUT1、黒い線がGNDで、IchigoJamのそれぞれのポートに刺さってます。

プログラムも出力ポートを使用するように変更。
といっても「LED」を「OUT」に変えるだけですけどね。

そして実行。

無事にチカチカしました。

やっていることは基板上のLEDを動かす事と変わり無いんですけど、自分で取り付けた部品を動かすというのが楽しいところですね。

次回、LEDでもうちょっと遊んでみたいと思います。

謝辞

回路図(と言うほどのものではないですが)の作成には、水魚堂さんのBSch3Vを使用させて頂きました。

ハルチカとは

初野晴さんによる日常系の青春ミステリ小説。及び、それを原作としたPA WORKS制作によるアニメーション。
個人的に好きな作品ですけど、Ichigo Jamには全然関係ありません。

投稿者: