エントリー

Highrise City で100万人達成

先月から「Highrise City」を始めて何とか100万人都市となった(荒地:37時間)

HRC_Screenshot_2023.10.07-11.51.50.png

「Highrise City」は「シムシティ」の進化版で街を作るシミュレーションゲームである

この手のシミュレーションでは「Cities: Skylines」が有名で,もうすぐ(10/25)にV2が出る予定になっている

こちらも購入予定ではあるが「Cities: Skylines」は(本来の)街作りシミュレーターにゲーム要素を追加した物なので多少勝手が違い街を創造する感じとなる(駐車場など細かいとこまで設定可能)

「Highrise City」はゲームとして評価も高かったので始めてみた訳である(この手のゲームは非常に時間を費やすので暇でないとできないけどね)

(ゲームニュースサイト)

https://www.4gamer.net/games/590/G059051/20230905005/

https://automaton-media.com/articles/newsjp/20230830-262203/

メモリを追加

以下のスペックで開始

  • Windows11(22H2)
  • i5-12400F,16GB
  • Goforce1060 6GB 2560x1440

「Highrise City」を動作させる条件は満たしてはいたのだが最初は10万人規模になったところでメモリ不足にてフリーズ

画面の設定をデフォルト(高画質)から(普通)にして動作オブジェクト10000を5000にすれば60万人まで問題なし(最初は60万人で不具合があり止め)

ここでメモリの状態を確認したところ

MEM16-01.png

ゲーム中は約12GB使用であった

Windowsでは実装16GBで1.5倍の24GBまでは問題なく利用できるようになっているようだがギリギリなのでメモリを増やすことにした

というのも半導体不足なのにメモリ価格は下がっていて去年16GBの価格で32GBが購入できたからである

IMG_20231007_125405.jpg

実績があるので同メーカ品を選択(別メーカに更に安価なメモリもある)

遂に実装メモリが32GBになった(思えば1994年の初代Pentiumの時にはSIM8MB×4枚の32MBで使用,1枚35kだったのでトータル140k,この時のHDDが1.2GB)

同じ60万都市で確認すると

MEM32-01.png

約15GB使用で余裕あり,100万人達成時も変わりなかった

32GBメモリになって自動バックアップの時間も短縮された感じがするので効果はあるようだ

(2023.10.9追加)

200万人達成したが最小レベルの設定でも頻繁にダウンするため止め

HRC_Screenshot_2023.10.10-01.14.55.png

フィッシングメール

流出したメールアドレスに来ていた詐欺メールをフィルターで止めていたのだが,やはりメールアドレスが知られるとあの手この手で送ってくる

WS20230924_01.png

以下がメールヘッダー(拙者のメールアドレスは削除)

Return-Path: <smbcjp@duoti57.shop>
X-Original-To: xxx
Delivered-To: xxx
Received: from mail.duoti57.shop (unknown [113.31.114.158])
by Cubian (Postfix) with ESMTPS id 46D8844A7F
for <xxx>; Sat, 23 Sep 2023 06:49:11 +0900 (JST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=default; d=duoti57.shop;
h=Date:From:To:Subject:Message-ID:Mime-Version:Content-Type;
i=smbcjp@duoti57.shop;
bh=t67Tziiu0qe3pvTBkXeI4WK82dtukx5Pqg98/zt6T0w=;
b=Gx8Ar0cSKI2u2q5NSTHPdGnG4ucFweUVLLUyoeRGGXZcWyoewyeI3u6/EZB2L7XHUvAmN/myyIq2
GCYy21mSWCshQSL+oouFRl7XJEPDF0MftPhymt5UUmcbxoSNS+lISUHQhPphVeYXlPw/b1sR54i5
J4xfZ1Hv5k7nvV8h+6PfHtZp8BRGXS+YQwfOeKvV4HsYsu1UDLBFRR819cXfUgV7cEXv2cZT+Ztt
Kjw0zFhW2mJ+mOxaL3GE46VF9AFBTZy5byyoYfDGWHjtiHskVvcA/PFgdv9xsGu+HRFJ+HgR94fh
w515ZLolC5dEMgRJDOIZBZlK4pSxtPgLSQ+UPQ==
Date: Sat, 23 Sep 2023 05:48:59 +0800
From: =?utf-8?B?5LiJ5LqV5L2P5Y+L44Kr44O844OJ?= <smbcjp@duoti57.shop>
To: <xxx>
Subject: =?utf-8?B?44GK5pSv5omV44GE5pel44Gu44GU5qGI5YaF?=
Message-ID: <20230923054908532308@duoti57.shop>
Mime-Version: 1.0

WS20230924_02.png

同じくメールヘッダー(拙者のメールアドレスは削除)

Return-Path: <support@service.kjh8y2483g.com>
X-Original-To: xxx
Delivered-To: xxx
Received: from service.kjh8y2483g.com (unknown [172.245.223.90])
by Cubian (Postfix) with ESMTP id 3563A44916
for <xxx>; Sun, 24 Sep 2023 06:23:13 +0900 (JST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; s=mykey; d=service.kjh8y2483g.com;
h=Date:From:To:Subject:Message-ID:Mime-Version:Content-Type;
bh=+/AVtK2BS5b2YK9D0VOGEZqtpko=;
b=D1rBSWRRpAdyrpChpcmip1mykjHf/3KwEaY0Ni9D+fjnDlIr2HavZ94+/1CooTHpliJW3p+4Ma6/
SLeHaU5qcfHN35VCnA0ZbsVtp5YbF6j6+JiiEz0Vn9iquITwPkm51MBm+7HXZuP80IMHojyVM/CF
IoCnECXJwv5SpK25iGE=
Received: from yahoo2.com.cn (103.252.116.14) by service.kjh8y2483g.com id h1tbk00001g3 for <xxx>; Sat, 23 Sep 2023 17:23:10 -0400 (envelope-from <support@service.kjh8y2483g.com>)
Date: Sun, 24 Sep 2023 05:22:51 +0800
From: =?utf-8?B?5LiJ5LqV5L2P5Y+L44Kr44O844OJ?= <support@service.kjh8y2483g.com>
To: <xxx>
Subject: =?utf-8?B?44GK5pSv5omV44GE5pel44Gu44GU5qGI5YaF?=
Message-ID: <20230924052300245660@service.kjh8y2483g.com>
X-mailer: Foxmail 6, 13, 102, 15 [cn]
Mime-Version: 1.0

連続で2日間送られてきて2つの本文は同様だが発信元が異なるようでアドレスが拡散されてるのかもしれない

面倒だが対策しないとならない

 

3Dプリンタカバーなど(続)

マザーボードを変更する前にやっておきたいことがようやく終わりそう

IMG_20230818_140040.jpg

エンクロージャー

上の蓋と手前に扉を作製

IMG_20230811_120803.jpgIMG_20230811_120817.jpg

全てはめ込み式にしたので取り外し可能

上部から覗きこめるように透明板(透明写真立ての板を使用)を付けたが前面からも見えた方が便利そうなので後で扉にも付けた

IMG_20230811_120826.jpgIMG_20230811_162923.jpg

扉に使用するための丁番が(ダイキ)だと高価だったので3DプリントしようとしたがCADで上手く作れない

困っていたらコーナンで嬉しい安価版を見つけた

IMG_20230823_131632.jpg

扉留めには磁石を埋め込んだ

フィラメントガイドも隙間ができないように作り直している

エンクロージャは主にABSの積層割れ対策だが,消費電力の改善や冬場の温度保護にもなるだろう

エアフロー用FAN

エアフロー用FANは上部のバーに付け,コントローラをラズパイボックスの横に付けて24Vを元電源から引いた(コントローラはエンクロージャ内に設置予定だったが熱のため変更)

IMG_20230820_135100.jpgIMG_20230822_132146.jpg

温度監視

エンクロージャの上部と下部で温度監視するためBMP280を2個I2C接続で使用

コントロールはラズパイで行うがOctoPrintは利用できないので,映像を含めてラズパイで監視システムを組み込むことにした

(BMP280)

I2C接続した2つのBMP280から温度を取得するためpythonでプログラミングするのだがBMP280のライブラリが無いのでArduino版を参考にして作る( 写真はラズパイ3Bを使ってテスト中)

IMG_20230812_132613.jpg

しかし何故か温度が5~6℃高くなる

Arduinoで確認すると正常なのでBMP280の異常ではない

後で見つけたBME280のスイッチサイエンス版(1接続用なので利用できない)でも同様で温度に誤差がある

読み込んだレジスタ値を(同時ではないが)Arduinoで読んだ値と照合したところ異なる部分があるのでBullseyeのI/O Ctrl部かI2Cの不具合も考えられる

原因不明なため温度の元になる値を5℃分強制的に下げることにした(気圧値にも影響あるため元になる値を補正)

(配信の実装方法)

取得温度の表示はリアルタイムにするため「websocket」を利用(websocketは初なのでこちらが参考になった)

映像は「OpenCV+websocket」「RTSP」「GStreamer」を試行してみたところ正常動作しないので「MJPG-Streamer」を使った(Bullseyeなのでこちらを参考にすると良い)

(OS設定)

ラズパイZERO WHで使用するので32ビット版のBullseyeを使う

2023-05-03-raspios-bullseye-armhf-lite.img.xz

後で再セットアップした際,最新のラズパイイメージャーが正常に動作したので利用したが直接書き込んだ場合以下の問題あることが判った

SSHを有効にするため「/boot/ssh」(拡張子なし)を作成するが,SSHでログインできるUIDが無い

→ 最初の起動でパーティションを拡張,再起動後,consoleでユーザとパスワードの設定待ちとなっている

ログインできたら定番の設定

$ sudo raspi-config

host-name → 当ネットワークの命名規約
LANG → UTF8追加
TimeZone → ASIA,Tokyo

I2C Enable
Serial console Desable + Serial Enable(Bullseyeで扱いに変更あり

$ sudo apt update --allow-releaseinfo-change
$ sudo apt update
$ sudo apt upgrade
$ shutdown -r now

(注)IPアドレスはDHCPサーバにて管理

pythonとGPIO

$ sudo systemctl disable hciuart. → (Bluetoothで「PL011」を使う設定をUARTで使うようにする)

(pythonセットアップ)
$ sudo apt install git
$ sudo apt install python-dev python3-pip

(pipの確認)
$ python -m pip -V
/usr/bin/python: No module named pip

(pipのアップグレード)
$ sudo pip install --upgrade pip
...
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 20.3.4
...
Successfully installed pip-23.2.1

$ pip -V
pip 23.2.1 from /usr/local/lib/python3.9/dist-packages/pip (python 3.9)

(GPIO出力)
$ sudo pip install wiringpi
...
Successfully built wiringpi
Installing collected packages: wiringpi
Successfully installed wiringpi-2.60.1
...

(websocketライブラリ)
$ sudo pip install tornado
Installing collected packages: tornado
Successfully installed tornado-6.3.3
...

(smbus2を使用可能にする)
$ sudo pip install smbus2
...
Installing collected packages: smbus2
Successfully installed smbus2-0.4.2
...

$ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 77

MJPG-Streamer(映像配信)セットアップ

$ sudo apt update
$ sudo apt install -y git cmake libjpeg-dev
$ cd
$ git clone https://github.com/neuralassembly/mjpg-streamer.git
$ cd mjpg-streamer/mjpg-streamer-experimental
$ make
$ sudo make install

ラズパイ専用カメラモジュールを使う場合 (input_raspicam.so)
$ cd $HOME/mjpg-streamer/mjpg-streamer-experimental
$ mjpg_streamer -o 'output_http.so -w ./www -p 8080' -i 'input_raspicam.so -x 1920 -y 1080 -fps 30 -q 10'

USBカメラを使う場合 (input_uvc.so)
$ cd $HOME/mjpg-streamer/mjpg-streamer-experimental
$ mjpg_streamer -o 'output_http.so -w ./www -p 8080' -i 'input_uvc.so -d /dev/video0 -r 640x480 -fps 30 -q 10'

-wは//(root)のコンテンツを指定する場合
-pのポート指定は8080でないと動作しない(コンパイルで固定になっている部分があるのか)
ラズパイ専用カメラモジュールはUSBカメラのライブラリでも動作する
LD_LIBRARY_PATH=/usr/local/lib/mjpg-streamerの指定無しでも動作した(上のコマンドはライブラリのあるディレクトリで起動している)

(コード)

温度表示サーバ(server.py):websocket(tornado)用のサーバサイドpython

映像配信サーバ(mjpg-streamer.sh):MJPG-Streamerサーバ起動用のプロシージャ

監視画面用HTML(main.html):温度表示サーバと組みとなって表示(CSSは未公開)

BMP280温度(newBMP280_2.py):server.pyから使用されるBMP280温度取得python

CPU温度(cputemp.py):server.pyから使用されるCPU温度取得python

(監視画面)

WS202324.png

エンクロージャ内は暗いので照明が必要か

(追加:2023.08.24)

照明を追加12VのLEDモジュールを2個直列して24Vで使用(バーに引掛けて設置)

IMG_20230824_173416.jpg

見える程度にはなったのでとりあえずは良しとする

WS20230824_02.png

外気31℃時,PLAの印刷にて(ビルドプレート50℃設定)上部がMax.42.1℃,下部がMax.39.9℃まで達した

(設置)

I2C用のケーブルをどうするか悩んでいたところ丁度コネクタが異常になったUSBケーブルが出来たので利用

IMG_20230816_111914.jpg

設置用のパーツ(センサー台,ケーブル止め)は3DプリントしてXH端子を付けて完成

IMG_20230817_145015.jpgIMG_20230818_162108.jpg

レールのTスロットに差し込んで回せば止まるように作ってある

IMG_20230820_135108.jpgIMG_20230820_135121.jpg

接続元は基板の空きがなかったため2段にした(いいかげん作り直せばいいのだがw)

IMG_20230822_132120.jpg

排気(未)

冬までには追加する予定

3Dプリンタカバーのエアフロー

3Dプリンタのエンクロージャーはビルドプレート上の熱を抑え込むようにしないとならない

何もしないカバーを掛けただけだと上部だけが暖かくなってしまうのでFANを使って熱を循環させる

IMG_20230809_124005.jpg

FANは上部に付けてやれば(設置場所も悩んだけど)良いのだけどFANの効力がどんなものか判らない

なら・・・ファンコンを付けちゃおうってことで作製,FANは交換前に3Dプリンタに付いていた24V版を再利用することにした

(回路図)

ファンコン_回路図.png

  • コントロールはATTINY13aで十分
  • 風量はソフトウェアPWMで変更(FANが24V0.05Aなので2N7000)
  • 無断変速にする程でもないのでタクトSWで切替
  • LEDは後で付けたので回路図にはない(PB3に10mAで接続)

(スケッチ)

fanCtrl.txt

電源ONデフォルトを7:3のPWMにした(4段階可変)

ブレッドボードで確認

IMG_20230808_194706.jpg

設置する場所が横平棒になるので横長にしてみた(ボードはパーツ配置後切断)

IMG_20230809_121938.jpg

FANは2台で最終動作確認

IMG_20230809_122930.jpg

デフォルトの回転数で0.076A

IMG_20230809_123037.jpg

最高回転数で0.112Aであった(FAN0.05×2+LED0.01A+AVR)(注)LEDとAVRは5V

IMG_20230809_123104.jpg

エンクロージャーへの設置は次回

(排気)

完全密閉ではないがエンクロージャー内の温度監視しながら外へホース経由で排気しようと考えている

IMG_20230809_124006.jpg

ユーティリティ

検索

エントリー検索フォーム
キーワード

新着コメント

Re:SDRplay社RSP1クローンを購入
2025/05/25 from 匿名希望
Re:Mozilla FirefoxではNHKプラスを再生できない件
2025/05/09 from Donabeyaki
Re:ATS-25を作製する
2025/03/23 from kazu
Re:ATS-25を作製する
2025/03/22 from admin
Re:ATS-25を作製する
2025/03/22 from kazu

過去ログ

Feed