(読むとは言っていない) マオです。
「境界線上のホライゾン ガールズトーク 祭と夢」を買ってきました。
厚さはサイドストーリーなのでいつもより薄めです。
そろそろ読む機運が高まってきた感じなんだけど、本棚を2通りほど占拠しているのを見ると躊躇してしまいます。
最近は読むシリーズ物も減ってきているし、ここら辺でエンジンを掛けないと来年以降に持ち越しされそうな気がする(遠い目)
ここから細かい制御が出来るようになる。マオです。
今まではコマンドで個別に部品を制御してたけど、プログラムで制御する事により複雑な事が出来るようになる。
使える言語は様々で推奨はPythonらしい。
ここでは既に開発環境が整っているJavaを使用していく。
GPIOを使うには、Pi4Jというライブラリが必要になる。
もし、RaspberryPiが直接ネットワークに繋がっているなら、インストールは簡単に終わる。
curl -s get.pi4j.com | sudo bash
これをsudoが出来るユーザで実行するだけだ。
JDKなんかはデフォルトで入ってるようなので、問題無いっぽい。
ライブラリは「/opt/pi4j/lib」にインストールされる。
今回の回路は前回のタクタイルスイッチと前々回のフルカラーLEDを使って、スイッチを押すごとに色が変わっていく物を作る。
注意点はコマンドの時とGPIOの番号が違う所だ。
コマンドではGPIO16だった所が、Pi4JではGPIO27となる。
詳細は公式のPin Numbering(Raspberry Pi 2 Model Bはここ)にあるので、確認しよう。
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import com.pi4j.io.gpio.GpioController; import com.pi4j.io.gpio.GpioFactory; import com.pi4j.io.gpio.GpioPinDigitalInput; import com.pi4j.io.gpio.GpioPinDigitalOutput; import com.pi4j.io.gpio.PinPullResistance; import com.pi4j.io.gpio.PinState; import com.pi4j.io.gpio.RaspiPin; import com.pi4j.io.gpio.event.GpioPinDigitalStateChangeEvent; import com.pi4j.io.gpio.event.GpioPinListenerDigital; public class ButtonDeLedTikatika { public static void main(String[] args) { // #1 final GpioController gpio = GpioFactory.getInstance(); // #2 final GpioPinDigitalOutput led_red = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_29, PinState.HIGH); led_red.setShutdownOptions(true); final GpioPinDigitalOutput led_green = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_25, PinState.HIGH); led_green.setShutdownOptions(true); final GpioPinDigitalOutput led_blue = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_28, PinState.HIGH); led_blue.setShutdownOptions(true); // #3 final GpioPinDigitalInput button = gpio.provisionDigitalInputPin(RaspiPin.GPIO_27, PinPullResistance.PULL_UP); button.setShutdownOptions(true); // #4 button.addListener(new GpioPinListenerDigital() { private byte flag; @Override public void handleGpioPinDigitalStateChangeEvent(GpioPinDigitalStateChangeEvent pin_event) { if(pin_event.getState().isLow()) { flag += flag < 7 ? 1 : -flag; led_red.setState((flag & 1) != 0 ? PinState.LOW : PinState.HIGH); led_green.setState((flag & 2) != 0 ? PinState.LOW : PinState.HIGH); led_blue.setState((flag & 4) != 0 ? PinState.LOW : PinState.HIGH); } } }); // #5 BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); try { while(!in.ready()) { Thread.sleep(1000); } in.readLine(); } catch (IOException | InterruptedException e) { e.printStackTrace(); } // #6 gpio.shutdown(); } }
以上が制御するプログラム。
#1でGPIOをなんやかんやするインスタンスを貰う。
なんやかんやするインスタンスを使って、#2でLED部分の設定をしている。
赤をGPIO29、緑をGPIO25、青をGPIO28に繋いである。
二つ目の引数にあるPinState.HIGHはデフォルトの出力状態を指定している。
このLEDは電圧がかかっていると消えるので、実行されると消えた状態になる。
setShutdownOptionsは終了時に関わる設定なので、そっちで説明するので飛ばす。
#3はタクタイルスイッチ部分の設定だ。
GPIO27に接続してあり、二つ目の引数PinPullResistance.PULL_UPはプルアップ抵抗の設定をしている。
#4はタクタイルスイッチの状態が変化された時の処理を登録している。
各色の状態は3ビット(0~7)で記録して、ビットが立っている部分が光る。
スイッチが押されると処理がされ、電圧がLowになるのでif分の中が実行される。
フラグ管理をしているflagに1を加算するか、7から溢れる場合は0に戻している。
setStateでPinState.LOWかPinState.HIGHを指定する事で、電圧を変更する事が出来る。
これによりスイッチを押すたびに、消えた状態からレッド→グリーン→イエロー→ブルー→マゼンタ→シアン→ホワイトとなり、次でまた消える。
#5はエンターキーを押すまで、プログラムを抜けないようにループさせている。
GPIOの制御部分は別スレッドで動く為に、この部分が無いと処理が終了してしまう。
#6の部分でGPIOを開放(コマンドにおけるunexport)したりする。
しかし、#2や#3でやっているsetShutdownOptions(true)を指定していないと開放してくれない。
setShutdownOptionsでは色々と開放後のピンの状態も指定出来たりする。
実行は一般ユーザからクラスファイルが置いてあるディレクトリで以下のコマンドで出来る。
sudo java -cp .:"/opt/pi4j/lib/*" ButtonDeLedTikatika
意外とサクサクとここまで出来てしまった。
基礎は終わったので、ここから難易度がドンドン上がって大変な事になりそうだ・・・(遠い目)
色々調整されているね。マオです。
久しぶりにFactorioをやって、25時間10分ほどでクリアしました。
今回はバージョン12でクリア条件が変更されています。
バージョン11以前では防衛施設を設置して地域住民のデモを一定時間排除してればクリアでしたが、12からは衛星を搭載したロケットを打ち上げる事によりクリアになる。
まず、ロケットを打ち上げるにはロケットサイロを作り、そこでロケットを作成する。
並行して衛星を作って、完成したロケットサイロのインベントリに衛星を突っ込んで発射すればよい。
サイロ・衛星・ロケットはゲーム中でもっとも多く資材を使うので、これを綺麗にコンベアで廻して自動化するのがカギになるだろう。
私は諦めてロボットに全て運ばせたがな!
前バージョンで比較した感じで、一番の私の中での変更点はレーザータレットのコストが色々上がった事。
使用する資材も増えたが面積も増えた。
その分攻撃力も強化されているので、処理的な関係で変更されたのかな?
前は酷かったからなぁ(遠い目)
クリア条件が変わった事により、モジュール地獄から開放された。
使用資材が散らばってくれて、最後はただ回路を作る施設の増設という流れが、今まで作ってきたラインから出来る製品を更に組み合わせるラインを作るという風に変わった。
あれが最後にダレる要因だったのよね。
もちろん増設すれば速度は上がると思うが、どちらかと言うと全てをバランス良く組み立てるのが大事かもしれない。
後、エイリアンアーティファクトを使う場面はテクノロジー開放までで、クリアに必要なアイテムを生成する所では使用しない。
周りを掃除するくらいで十分な量を確保できる感じだ。
アーマーに装備出来る携帯ロボットステーションなんかも便利だったな。
回路系で新しい追加があったけど、元から回路使ってないから便利なのか不明だな(笑)
ま、こんな感じで楽しめたので次のバージョンまで寝かせる事になるな。
やり始めると面白いけど同じバージョンを何度もやるというゲームではないんだよねぇ・・・。
短時間でも遊べる。マオです。
SteamでCRYPTARKと言うゲームを買ってみた。
ハロウィンセール中ですが、珍しく定価で買っております。
出たのが先月らしいからね(初期にセールがあったみたいだが)。
ジャンルはローグライク全方位シューティング。
大まかな流れは某FTLに似たような感じで、いくつかある敵船の一つを選び、中に入って徘徊して弱点であるコアを吹き飛ばして、次のエリアに行く・・・最後は大型戦艦と対決だ!
もちろん、戦艦内部はランダムで迷路のように入り組んでロックされた隔壁なんかもあります。
・・・まあ、たまにこの隔壁の意味はなんだろうと首をかしげる構造もあったりしますが・・・。
コアを吹き飛ばすとクリアになるわけですが、ストレートに行って吹き飛ばせるわけじゃありません。
戦艦内には色々なシステムが設置されていて、コアを守るシールドシステムや攻撃を受けたらアラームを鳴らして敵を呼んだりする警報システム等を破壊する必要があります。
中には破壊しなくても頑張れる装置もあったりしますが、数多く壊せば有利になります。
こちら側はスタート地点で、4つの武器(弾数も決められる)と4つのアイテムを持って、機体の強度(ライフ性シューティング)を設定して出発します。
最強の装備を持っていけばいいじゃんと思うかもしれませんが、それぞれにコストがあり出発時に支払う必要があります。
資金がマイナスになるとゲームオーバーですが、マイナスにならなければ戦闘でやられても続ける事が出来ます。
やられると機体の修理費も取られるので、ギリギリの運用だと即効アウトです。
報酬は時間内のクリア報酬(決められた時間をオーバーしてクリアするとお金を取られるが、逆に短ければ短いほどボーナスも入る)の他に、3つのボーナスがある。
ボーナスは条件があり、例えば警報システムを破壊しないとか機体強度を一定以下にするとか、出発コストを一定以下とか・・・。
なので、ここら辺も最初の選択肢から色々と考えないといけないですね。
装備やアイテムは60種類ほどあるようですが、最初は固定のいくつかの物しかありません。
増やすには戦艦内にある技術を戦闘中に盗んでくる必要があります。
それによって次の戦闘から使用する事が出来ます。
寄り道になるので報酬の制限時間や機体の状態との兼ね合いも考えて立ち回らないといけませんが・・・。
で、まあ5時間ほど頑張ってたらクリア出来てしまいました。
通しでクリアすると1プレイ1時間のようです。
ライフ性なので敵の攻撃は激しいですが、ライフ回復もあったり、後一発で死ぬって時には一定時間スローモーションにもなるので結構頑張れます。
敵船内にも1回限りコストを支払ってライフや弾薬を回復してくれるポイントもあるので、これも活用出来ると良い感じ。
ただ、武器に関しては数が多い割には私の中でアッサリと固定されてZIP、SG、G-HE、LIGHTになってしまう。
ってか、LIGHTが反則なんだよね。
壁越しに攻撃攻撃出来る上に、複数の敵に連鎖で当たって、弾数制限が無い。
これのお陰でラスボスも倒せちゃったからなぁ。
ま、早期アクセスだから修正される可能性はあるな。
そう、このゲームはいつものように早期アクセス。
マップ生成時エラーで落ちるバグが現在あるようです(1回だけあった)。
ロードマップでは、ローカルでの協力プレイ(オンラインは技術的に難しいらしい)を作る予定があるらしいので、もし出たら塔の集会でやるかもしれんな。
また、バージョンアップが楽しみな作品が出てきてしまったぜ・・・。
まだ、気温は少し高い。マオです。
10月終わりです。
微妙に気温が高いので今年もブルーベリーが寝ぼけて花を咲かせそうな雰囲気です。
紅葉はまだ半分といった所。
良い感じに色付いたら写真でも撮るか。
RaspberryPiは良い感じに学習出来ていると思う。
後は先立つ物さえあれば、色々と実験して楽しめるのだがな・・・(遠い目)
では、今月の検索ワードを見ていこう。
「factorio」
久しぶりにやったんだけど、やっぱり時間泥棒のヤバイゲームだわ。
結構調整されていて、前の低公害プレイと同じようにやったつもりだけど、巣の成長が早くなってるように感じる。
現在、プレイ時間15時間でそろそろゴールに向けての素材集めが始まろうとしている所だ。
これのModを作ってみたいと思ってるけど、全体の調整をかけないといけない構想になってるから手が出せない。
グラフィックの問題もあるしねぇ・・・。
「カルカソンヌ 片づけ」
普通に箱に入れるだけだけど・・・。
何か特別なことが?
「長い友との別れ」
その後は偽者の変わらない友(有料)との共同生活になる可能性。
もしくは孤独に生きるか・・・。
「ath-m40x 評価」
一応、耐久力は約1年という私の評価ですが、それ以外は特に問題になる事は無いな。
最近、ヘッドバンドの革がひび割れてきた。
どう頑張っても2年は持たない気がするわ。
来月の予定。
集会が21日辺り。
艦これイベントが18日辺りから。
Steamでハロウィンセールが始まったけど、セールで買う物は無い感じだな。
もしかしたら珍しく定価で1つと、1コインで買えそうなのを1つほど買うかもしれない。
魔法のカードの支払いが酷い事になっていたので、自重しないといけないんだけどなぁ(笑)