2021年12月5日日曜日

【Sky Bees】#2 拠点拡張&養蜂スタート

 前回丸石製造機を作成したので,Hammerで丸石を砕き,Gravel・DustをひたすらSieveで砕いて資源を作成していきます.

並行して拠点拡張.Wandを使うとかなり効率的に進められます.
Dirt Generatorも作成し,Crucibleもホッパーで投入を自動化しておきます.
ちなみに,Crucibleの熱源については,火>マグマ>松明の順で溶かすスピードが上がるので(https://ex-nihilo-minecraft.fandom.com/wiki/Crucible#Melting),準備が出来次第,ネザーラック+火に変更予定です.

2021/12/08追記:Crucibleの熱源については,Crucibleを使用したレシピをJEIで見ようとする(Uキーもしくはレシピ上で右クリック)と,熱源とその効率の一覧を見ることができることに気が付きました.
どうやら火よりもUranium Blockの効率の方が良いようです.


その後は養蜂要素を進めていきます.
前回土をSieveに投入してゲットしたAncient Spores, Grass Seedsを土ブロックに対して右クリックして,それぞれMycelium, Grass Blockを作成します.
Grass Blockに対しては骨粉を利用して草を生やし,Tier1のBee Hiveを作成.
クエストで貰ったDandelionはBonsaiを利用して増やし,Buzzing Dollの素材に利用します.


Myceliumの上にBarrelを設置して水を投入し,生成されたWitchwaterに対してBuzzing Dollを右クリック.バニラの蜂がスポーンします.
スポーンした蜂はBee Jarで確保し,養蜂施設へ.

養蜂の基礎ができてきたので,次回はResourceful Beesの交配を進めていきたいと思います.
Honeycomb回収の自動化もできればやりたい...!

2021年12月4日土曜日

【Sky Bees】#1 丸石製造機(Ex Nihilo要素の攻略)

木一本の島からスタート.

島は3×3で,厚さ3ブロックの土の下に岩盤が生成されます.
土はこの後で使うので木の育成に必要な1マス分以外は全て回収.


さっそく指示通り/sethomeコマンドを実行して,Ex Nihiloのクエストを進めていきます.

最初のクエストは原木32個.
木の周囲で走ると成長促進効果があるので,少し足場を広げて走る場所を確保.
後,斧に一括破壊の効果がついてるので,可能な限り素早く斧を作ったほうが良いでしょう.

その後はCrookを作成し,Crookで葉を破壊することでSilkwormを入手.
Silkwormを葉に対して右クリックすると,葉にSilkwormが住み着き,Infested Leavesへと変化します.
これをCrookで破壊すると糸が入手できます.


糸を入手できたので,String Meshを作成できるようになり,Sieveが解放されます.
Hammerと並んで序盤の資源獲得に重要なアイテムです.


ここからは序盤の最重要目標であるCobblestone Generatorの作成に向けてクエストを進めていきます.

手持ちの土を突っ込んでStone Pebbleを入手し,丸石をクラフト.
かまどを作成します.

松明を作れるようになったので,Wooden Crucibleの熱源にします.
Wooden Crucibleに苗木4つを入れて放置すると水1000mBが生成されるので,2つ作って無限水源にします.

ちなみに,SkyBees環境では既存のブロックと隣接した空中にブロックを置くことが簡単にできます.(マウスのインジケータが変わったところで右クリックすることで可能・下図)
このおかげで,拠点を下方向に拡張するのも容易です.


次の目標はFired Crucible.材料にはClayとBone mealが必要です.
Bone mealはスケルトンからのドロップでも良いのですが,あまり戦闘したくなかったのでDustをSieveで処理する方法を選択.
土→丸石→Dust→Bone mealというルートを取るのですが,かなりの数の土が必要となります.
土は苗木や葉からBarrelで作ることが出来るので,これを効率的に回収するためにまずハサミ(Ceramic Shears)を製作します.
丸石をHammerで破壊→出来たGravelをHammerで破壊→SandをHammerで破壊とすることで,Dustを入手.
更に,水を張ったBarrelにDustを右クリックして,Clayを入手します.
ClayからCeramic Shearsをクラフトします.
後はShearsで葉をゲット→葉をBarrelに入れて土に→土をSieveにかけて丸石に→丸石をHammerで砕いてDustに→DustをSieveにかけてBone mealにします.長い.

...とか思ってましたが,あまりにもBone mealの出現が渋かったので,結局沸き部屋作りました.
しかも建設中に全く関係ないPhantomにやられる始末...(反省してベッド作りました)
ちなみに木造なのでクリーパーの処理を誤ると終わります.

何とか死線を潜り抜け(主にPhantom),骨をゲット.
念願のFired Crucibleです.

丸石をFired Crucibleに右クリックで投入してLavaを生成します.
後はこれを使って丸石製造機をクラフト!
今日はここまで.
次回は養蜂あたりかな?


前:なし




2019年5月25日土曜日

新ブログ開設のお知らせ

新しくはてなブログを始めました:https://mokerdiary.hatenablog.com/
今後記事更新ははてなブログが優先されると思います。
よろしくお願いいたします。

2018年11月21日水曜日

Arduinoでビジュアルプログラミングを試す

どうもMokerです。

ソフトウェア入門界隈ではScratchというのはある種の定番になりつつありますが、Maker界隈では似たようなものを聞かないなということに気づきました。

ということでArduinoのビジュアルプログラミングについてまとめておこうと思います。
今回選んだ基準は次の通り。

  • Blocklyベースであること(次期Scratchのベースらしいので移行が楽そう)
  • Githubに上がってること

という感じで検索かけた結果が次の通り。

  • BlocklyDuino
  • ardublockly
  • Mixly_Arduino
  • Blockly@RDUINO

一つずつ試していきたいと思います。

BlocklyDuino


最終更新日:2017年11月

一番Star数多かったやつです。古いだけあってデザインはとてもシンプル。
うちの環境ではオフライン版でもアップロードがうまくいきませんでした。Pythonのバージョンの問題かもしれません。
欠点としては、digitalwriteのHIGH/LOWに変数を使うことができません。
あとsetupとloopという概念がblockly上では存在しません。
Arduinoのコードとblocklyが並列で表示されないのが個人的にはあまり好きになれませんでした・・・

ardublockly


最終更新日:2018年2月

デザインがめちゃめちゃいいです。wikiとかも充実しててすげー好みです。
ただArduinoとの連携が若干うまくいってないのか、めちゃくちゃupload・verifyに時間かかりました。
個人的にはこれにarduinoのCLI統合して、さらにピン番号を変数で指定できるようになったらもう完成形だと思います。

Mixly_Arduino


オンライン版:なし
最終更新日:2018年11月

blocklyベースなのにオンライン版がないという異色のソフト。めちゃめちゃ展開に時間かかりました。
Microbitとかの開発もできるようです。
中華でちょっと怖さはありますが、ピン数を変数で指定できるなどかなり高度です。
デザインもかなりいい感じで、arduinoとの連携もうまくできそうです。
wikiが中国語しかないのと完全なオープンソースでないのが残念な感じですね・・・

Blockly@RDUINO

オンライン版:なし?
レポジトリ:https://github.com/technologiescollege/Blockly-at-rduino
最終更新日:2018年11月

デザインを見る感じは良さそうなのですが、ブロックが全然表示されません。
しかもreadmeなどがフランス語というおまけつき。結局使い方は全く分からず。


というわけで見てきました。
全部微妙といえなくもない結果ですが、使うとしたらardublocklyでしょうか・・・?
性能だけで見ればおそらくmixlyが一番なのですがね・・・、中華というだけで恐怖が・・・

2018年11月3日土曜日

esp-wroom-02にEsp-Linkを導入する vol.2

前回(その1)はesp-linkの導入法について説明しました。
今回は、実際に使ってみた感想とか書き込んでいこうと思います。

Esp-Linkに接続する

Wifiのアクセスポイント一覧からespを探して接続します。
僕の場合は、前回他のプロジェクトで書き込んだ設定が残っていたらしく、そのAP名とパスワードで接続しました。
さらにespのipアドレスを調べます。
コマンドプロンプトから"ipconfig"を実行しました。

ipアドレスをブラウザのURLに打ち込むと次の画面が出て来るはずです。

Espをインターネットに接続する

このままだとメインPCがインターネットに接続できず、作業上不便なので設定をいじっていきます。
まずはmDNSを有効化します。
まずはトップページのSystem overviewにある"Hostname"を"arduino"へと変更します(これがmDNS名となります。arduinoにしたのは後々ArduinoIDEから扱えるようにするためです)。
次に、mDNSのService名を変更します。ServiceタブのmDNSにある"Enable mDNS"にチェックを入れ、"Service Name"を"arduino"へと変更してください(上と同様にArduinoIDEから扱うためです)。
最後に、espをLANへと接続します。
まずはSTA+APモードに変更。
すると次の画面が出るはずです。WifiのAPを選んでパスワードを入力し、Connectをクリックしました。

ブラウザ上でESPのシリアルを触る

さて、本命の一つであるシリアルの無線化を試してみましょう。
幸い、esp-linkではブラウザ経由でシリアルを書き込めるので、それをやってみようと思います。

まず、ESPから出力されたシリアル信号をパソコン側で受信するために、ESPとPCをUSB-シリアル変換で接続します。
そして、シリアルを送受信できるソフトウェアを立ち上げましょう。

続いて、実際にブラウザからシリアルを送ってみます。
まずは、左のメニューから「μC Console」をクリック。

この画面からシリアルを送ることができます。
実際の映像がこちら。
ブラウザで送信してるときの方はほぼ遅延がないので、ブラウザで受信のときに遅延してるのはhttp関連の遅延なのかな、と思ってます。真偽は不明。

ローカルからESPのシリアルを触る

後で書く。com0com(https://sourceforge.net/projects/com0com/)とか使えばよさそう。

最後に

次回はArduinoIDEから扱う編をやりたいと思います。


2018年10月6日土曜日

esp-wroom-02にEsp-Linkを導入する

どうも皆さんこんにちは、二連続で記事を書いているmokerです。

さて、タイトルの通り、Esp-Linkを導入してみようというお話です。
全然日本語のソースが見当たらないので一応書いておきますが、英語読めるならそっちの方がいいと思います(当然ですが)。
ESP-WROOM-02のファームウェア書き換えは電波法に抵触する可能性も指摘されていますので、実行は自己責任でお願いします。


esp-linkについて

次のようなことが実行可能だそうです。
  • ESPのシリアルをwifi経由でいじる。
  • Wifiを用いて、ESPのシリアル経由でAVRなどにプログラムを書き込む。
  • HTTP経由でアップロードしたプログラムをESPに接続されたAVRに書き込む。
  • 接続されたマイコンをインターネットへ接続させる。
  • 接続されたマイコンをwifi経由で操作するUIとなる(一部未実装)。
今回は主に上2つを実行するために書き込んでみました。

全体としては、結構ドキュメントもしっかりしている上に、バイナリも提供されていてかなり扱いやすいと思います。
ただ開発環境がオフィシャルの提供してるやつで、arduino ideとかで製作されてるわけではないので、そこがちょっと僕にとってはいじりにくいポイントです。


書き込んでみる


基本的にはFLASHING.mdを読んでその通りに実行すればうまくいくと思います。
久しぶりにファームウェアの書き換えやったのでそのメモも含めて残しておきます。
環境はWindows10です。

①ダウンロード

リリースからバイナリをダウンロードします。
ダウンロードするのは、source codeではなく、esp-link-v3.x.xx-xxxx.tgzみたいなやつです。
編集時点ではトップに乗っているのがアルファ・リリースだったので注意してください。

②展開

Windowsでtgzを扱う場合、何が正攻法なのかよくわかりませんが、僕は7zipを使って展開しました。多分いろいろソフトがあると思うので適当に選んでください。

③ESPの接続

ESPをシリアル・アップロードモード(実行モードじゃなく)に設定したうえで、PCに接続します。詳しくはこちら:https://ht-deko.com/arduino/esp-wroom-02.html

④書き込みソフトの立ち上げ

ArduinoIDEにespをインストールしている以上、どこかにesptool.pyがあるとは思うのですが、探すのも、コマンドオプションを調べるのもめんどかったのでGUIツールを公式からダウンロードしてきます:https://www.espressif.com/en/support/download/other-toolsの「Flash Download Tool」
起動して、esp8266を選択。

⑤書き込み

オプションは下の通り。
それぞれダウンロードしてきたバイナリファイルと、書きこむ番地を選択します。
  • boot_v1.x.bin : 0x00000
  • blank.bin : 0x3FE000
  • esp_init_data_default.bin : 0x3FC000
  • user1.bin : 0x01000
あとはFlashsizeを自分のやつ選んで(ぼくは32mbitでした)STARTをクリック。

⑥再起動

ESPを実行モードにして、再起動。そうするとwifiのAPに出てくるはずです(なぜか僕の場合は、前回書きこんだwifiの設定がそのまま残ってました)。
ipconfigとかでAPのIPアドレス調べて、そのアドレスをブラウザで開きます。
esp-linkというタイトルのページが出てくればオーケー。

というわけで導入編はこんな感じです。そのうち使ってみた感想を別記事で書くと思います。

Arduinoでシンボリックリンクをライブラリとして使う(Win10)

みなさんお久しぶりです、Mokerです。
忙しさも少し落ち着いたので前回の続きを書いていきたいと思います。

さて今回書くのはタイトルの通り、win10においてシンボリックリンク経由でライブラリを参照できるよっていうお話です。

前回書いた通り、Arduinoでは原則としてライブラリは、ソフトウェア全体で共通のディレクトリか、そのプログラムと同じ階層のsrcフォルダの下(直下でなくてよい)に配置する必要があります。
しかし、この仕様はプロジェクトごとにライブラリを分けたいという場合に少し不便です。
なぜなら、プロジェクトフォルダに共通のlibフォルダを作っても、Arduino側から参照できないからです。

そこで、解決策として今回発見したのがシンボリックリンクを作るやり方。
プロジェクトのlibフォルダに対するシンボリックリンクを.inoファイルと同じ階層に「src」という名前で作っておくと無事参照することができます。

シンボリックリンクの作り方かたは次を参考にしました:http://www.wannko.net/windows10/etc/sinlink.html
うちの環境では、シンボリックリンク作成の際に管理者権限を要求されました。

これでArduino全体のlibフォルダを汚染することなく、プロジェクト全体でlibを共有することができるようになりました。
もしかしたら、srcという名前のシンボリックリンクを直接作るのではなく、srcというディレクトリを作っておいてその直下にcommonとかいう名前でシンボリックリンクを作る方が使い勝手がいいかもしれません(未検証)。

というかArduino用のプロジェクト管理ソフトって何かお勧めないですかね・・・?