2019年10月10日木曜日

macOS mojave でMSXエミュレーターを動かす

  1. App Store から Xcodeをインストール

    アプリケーションフォルダから一度だけ Xcodeを起動して、必要なツールを自動インストール

  1. HomeBrew をインストール

    https://brew.sh/index_ja

    アプリケーション、ユーティリティ、ターミナルを起動して

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

と入力。

 

  1. fmsx 関係のツールを入れる

    続いてターミナルから

brew cask install xquartz

brew install fmsx

として必要なツールを入れる

 

オーディオエミュレーターのサービスを起動する

brew services start pulseaudio

 

  1. fmxs の起動

    Finder で アプリケーションのユーティリティ フォルダに入っている XQuartz を起動

    (brew cask install xquartz が入れてくれた)

 

  1. XQuartz の メニューの「アプリケーション」「ターミナル」を開ける

    ここのターミナルはmac OSのターミナルではないので混同しないように

    そのウインドウから

fmsx -home /usr/local/opt/fmsx/share/fmsx

で起動したらめでたしめでたし

 

 

2019年8月4日日曜日

知育器の豆電球を使ったニッカドディスチャージ

 電子リレー(IRF520)と電流・電圧測定(INA219) と、近くの文房具屋さんで埃をかぶって売ってた「知育キット豆電球ソケットセット」を使ってENELOOPの放電器を作る。

 ダイソーとかだと知育玩具が売ってなかった。

 amazonのほうが安いんだけどこういう町のお店にはお金使いたいし。

 前に書いたblogの簡単応用

電子リレー(IRF520)のblog

電流・電圧測定(INA219)のblog

 

方針

 豆電球で電力を消費させ、解放電圧で0.9Vになったら放電をとめてENELOOPを痛まないように、なおかつニッカド水素特有の「メモリー現象」の回復(リフレッシュ)を行いたい。

 中途半端に放電した状態で途中充電すると容量が減ってしまうのでこういうのが欲しかった。

 単体の機材は売ってるし、電子回路で自作するものもいくつか公開されている。

 んが、これは負荷をかけた状態で0.9VになったらOFFにするという仕組みで、実はENELOOPにはもう少し電力が残っている。

 最後のひと絞りまで使い尽くすけどいたわり放電というのはマイコン IOT制御ならでは。

 

ハードウェア接続

  • IRF520は GPIO 21(40番ピン)と39番ピン(GND) を接続。pigpio + python3 で制御

     

実際の回路はこちら。1.2Vでは豆電球が暗いので手ブレしてる orz

OS

Rasberry PI の OSは、Raspbian Buster Lite 2019-07-10 のものを使った。

 

Python3の殴り書きソース

$vi discharge.py

#!/usr/bin/env python

# csvに出力したかったのでflush()を使いたい
import sys

# GPIOのコントロール
import pigpio

# sleep用
import time

# 現時刻取得用
from datetime import datetime
# 電力計のライブラリインポート
from ina219 import INA219
from ina219 import DeviceRangeError

SHUNT_OHMS = 0.1

# Raspi GPIO21(40番PIN)を出力設定にする
pi = pigpio.pi()
pi.set_mode(21,pigpio.OUTPUT)
# 電流測定の初期化
ina = INA219(SHUNT_OHMS)
ina.configure()

# 豆電球をoffにしておく
pi.write(21,0)
# 電池はすぐに電圧を復帰しないので、0.05秒待ってやる
time.sleep(0.05)
# 初期電圧を計る
voltage = ina.voltage()
print("%.3f" % voltage)

# 解放電圧が0.9V以上なら、whileでループ
while voltage > 0.9:
    pi.write( 21,1 )      # 電球ON
    time.sleep( 30 )      # 30秒豆電球を点灯
    power = ina.power()   # 消費電力を計る
    pi.write( 21,0 )      # 電球OFF
    time.sleep( 0.05 )    # ちょっとだけ待つ
    voltage = ina.voltage() # 解放電圧を計る
    print("%s,%.3f,%.3f" % (datetime.now().strftime("%Y/%m/%d %H:%M:%S"),voltage,power))
    sys.stdout.flush()    # python3だとこれがないと逐次出力にならない

# これがないと32回目の起動で失敗する。pigpioの仕様。
pi.stop()

 

使ってみた

6:09 に放電を開始、9:26 に0.7Vになったので放電を停止したようだ

2019/08/04 06:09:33,1.352,201.463
2019/08/04 06:10:03,1.348,200.976
2019/08/04 06:10:33,1.344,199.024
2019/08/04 06:11:03,1.340,197.805
中略
2019/08/04 09:25:33,1.032,115.122
2019/08/04 09:26:03,0.988,103.902
2019/08/04 09:26:33,0.752,54.390

この時点で解放電圧をテスター測ってみると、1.02Vもあり、やはり解放電圧は相当高めであった。

 

2019年8月3日土曜日

RaspberryPI + INA219 を使って電圧、電流を測定する

 せっかくRaspberry PI に Zabbix という値を監視して、美しくグラフを描いてくれるツールを入れたので色々監視したくなってきた。

 I2Cの電流/電圧計と安いRaspberry PI Zero W とか使えばいいんじゃね?

 

これを使ってやりたい事

  • 鉛蓄電池の現在の電圧を知りたい

    自作の180Wソーラーパネル4枚 + MPTTチャージャー + 鉛蓄電池(でっかいの8台)+AC100Vコンバーター(サイン波)で自分の部屋の電気をまかなっている

    鉛蓄電池が11Vを切ると電池保護の為にAC100Vを出すコンバーターが出力を止めてしまうので切れる前にZabbixからメールを飛ばして「あと10分で電池切れ!」とかしたい

  • ニッカド電池の電圧を知りたい

    テスターだと解放電圧なので、10mAとか流しながら実測の電圧を知りたい

  • USB電力テスターは買った方が安くて高機能だが、作ってみたい

  • 温度センサーとか10℃でアナログ電圧の1V出すものがあるので水槽の水温とか測りたい

    いやーでもデジタル温度センサーのほうがいいかな..(DS18B20など)

     

とまぁいろいろ夢が膨らむので、まずは電流と電圧を同時に計測できる仕組みがほしい。

 

I2C対応の電流/電圧計

 amazonで見つけたのは5個で¥1,000-(@¥200-)のINA219 DC電流電源センサー(実は中華コピー品だった)

 ±3.2Aまでの電流、26Vまでの電圧測定ができるらしい。200円で。

 注目は±3.2A。ブラスマイナスとあるので、太陽光+充電池の充放電記録に使える!?

 正規のものは¥1,300もするけど、パチモンは¥200なのでそっちを買った。

 この基盤についてるシャント(shunt※)は、0.1Ωのチップ抵抗(!)を使っていて26V / 3.2Aとなんと83ワットも測れる。ほんとかね。まぁUSBの5V 2.4Aくらいなら持つだろう。

(※ shunt : 小さく正確な抵抗を電線の途中に挟んでその電圧差で電流を計る仕組み。主にDCで使うが100Aとかの電流も割と正確に、安価に測れる)

 

 

Rasberry PIの準備

 Raspberry PI3のI2C通信は2組あって1組目は

  • GPIO2(3番ピン)がデータピン (SDA)
  • GPIO3(5番ピン)がクロックピン(SCL)

 電源はラズパイの1番ピンに3.3VがでているのでこれをVCCとして使う。

 最初はpigpioを使ってI2Cを素でアクセスして値を取ろうとしたが、INA219は安い割にはやたらに高機能で、分解能優先、速度優先、消費電力優先、電圧電流アラート送信などいろいろ相反する設定があって、何をどう設定すれば正しく動作するんだか調べるのが面倒くさい。マニュアルぶ厚い。

 面倒くさいならどこかにライブラリがあると思ったので検索したらバッチリあった。

 ありがとうありがとう。

 pigpioとは違い、Raspberry PI のI2C機能をONにする必要がある。

 少し長めなので別blog (ラズパイでI2Cを使う )に切り出した。

 

gitからライブラリを手に入れる

Raspberry Pi Python Library for Voltage and Current Sensors Using the INA219

https://github.com/chrisb2/pi_ina219

このpython用のライブラリをpython3に組み込みむ。

# pip3 が入っていない場合は別途 apt install してください

apt-get -y install python3-pip


# git側ではpipコマンドを使ってますが、python3にも対応していたのでpip3で導入
# 万一古いのが入っているとダメになるらしく、念の為一度uninstallする必要があるらしい
sudo pip3 uninstall pi-ina219
sudo pip3 install pi-ina219

で、gitの例題をそのままコピー

遅くて分解能は低くなるかもしんないけど、全自動で値を読み取る、とREADMEに書いてあった

$ vi iv.py

#!/usr/bin/env python
from ina219 import INA219
from ina219 import DeviceRangeError

SHUNT_OHMS = 0.1

def read():
    ina = INA219(SHUNT_OHMS)
    ina.configure()

    print("Bus Voltage: %.3f V" % ina.voltage())
    try:
        print("Bus Current: %.3f mA" % ina.current())
        print("Power: %.3f mW" % ina.power())
        print("Shunt voltage: %.3f mV" % ina.shunt_voltage())
    except DeviceRangeError as e:
        # Current out of device range with specified shunt resistor
        print(e)

if __name__ == "__main__":
    read()

 

何も繋がず実行してみる

$ python3 iv.py

Bus Voltage: 0.884 V
Bus Current: 0.000 mA
Power: 0.000 mW
Shunt voltage: -0.010 mV

Bus VoltageはV+を解放しているのでノイズを拾って0.8Vと出ているようだ。

 エラーが出た?

FileNotFoundError: [Errno 2] No such file or directory: '/dev/i2c-1'

エラーがでた場合は、OSでI2CをONにしていないので、

sudo raspi-config で Interface Options→I2C をONにしてリトライ


それでも同じエラー

/frb/i2c-1 に読み取り権限がないのかもしれません

i2cグループに自分のID(というか読み取らせたい人)を追加します

$ sudo usermod -aG i2c 自分のID

例 : sudo usermod -aG i2c zabbix  (zabbix_agentに読み取らせたかった)
 


ラズパイの電圧を計る

INA219の V+ を RasPIの2番PINに接続する。

V-はどこにも繋いではいけない!!(これは罠だ!!)

V-にGNDを差してしまうと0.1Ωで電源をショートさせてしまう事になり回路が焼けてしまうだけでなく

最悪やけどを負ってしまう

V-は電流を測るためのマイナス方向への接続。

測りたい電池のマイナス側はラズパイのGNDに繋ぎます

アイソレーションの心配あるけど仕方ない

気を取り直してもう一度実行。

$ python3 iv.py 
Bus Voltage: 5.048 V
Bus Current: 0.000 mA
Power: 0.000 mW
Shunt voltage: 0.000 mV

電源電圧が 5.048V という事がわかった。

V-を使った電流を測定するような配線をする記事は別に書く事にする

 

複数同時接続も可能

INA219のI2Cアドレスは、データシートからは0x40,0x41,0x44,0x45 が選択できる。

https://www.adafruit.com/product/904

 デフォルトは0x40で基盤のADDR0,ADDR1をハンダでショートさせると4台までのINA219を1つのI2C線にぶら下げる事ができる。

 

 

 

RaspberryPI で I2C インターフェイスを使う

Rasberry PI の OSは、Raspbian Buster Lite 2019-07-10 のものを使った。

ラズパイのコンフィグレーターを使って

$ sudo raspi-config

Interfacing Optios を選択、

I2C を ONにする。で、Finishして設定を書き込む。

次に

/boot/config.txt に

$ sudo vi /boot/config.txt
...前略
# Uncomment some or all of these to enable the optional hardware interfaces
dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# これ↓を足した
dtparam=i2c_baudrate=50000
...攻略

reboot する

 

i2cdetectを使いたいのでツールを導入

$ sudo apt-get install i2c-tools

 

起動時のログ(dmesg)にI2Cドライバーが読み込まれているか確認

$ dmesg | grep i2c
[    5.935833] i2c /dev entries driver

 

接続されているI2Cデバイスをサーチ

# I2Cインターフェイスのリストを見てみる
$ i2cdetect  -l
i2c-1 i2c        bcm2835 I2C adapter              I2C adapter

# i2c-1の1がi2c 1番セットっぽい。
# Raspberry pi 3は2セットあるが2セット目は配線してないので出てこないのかな?

# 1番のリストを取ってみる
$ i2cdetect -y 1

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

# $40 に INA219(電流/電圧)がつながっている
# 何もつながっていない、またはdetectに対応していないI2Cデバイスなら
# 全部 -- となる。
 
最近のLinuxはセキュリティが厳しいので、I2Cインターフェイスにアクセスしていいユーザーの設定も必要
たとえば zabbixエージェントであれば

追記 2021/01/25

# sudo usermod -aG i2c zabbix 

としておく。userが なす太郎であれば sudo usermod -aG nasutaro  となる

pythonがアクセスする時に

IOError: [Errno 121] Remote I/O error

とでるのは、そもそもI2Cのインターフェイスがonになってないの理由ではなく、そのユーザーにI/Oをアクセスできるようにシステムにおしえておく事


実際にエラーがでたライブラリを調べてて気づいた

とある温度センサーのライブラリ


おしまい

 

 

2019年7月29日月曜日

Raspberry PI の PWM によるファンコン自作 その3

前回その2へ

 

ハードウェアPWMの制御

 Raspberry PI の GPIO18(12PIN)はハードウェアで連続発信する事ができるので、ソフトウェアの負荷がなく大変便利

間違っていました。pigpioだとどのPINでも高精度PWMが出せますが、今回は GPIO18(12番PIN)をPWM出力に割り当てます

 またデューティ比を1%-99%まで変化させられる。これをPWM制御として利用する。

 

 Rasberry PI の OSは、Raspbian Buster Lite 2019-07-10 のものを使った。

 ダウンロードしたISOをSDカード(やUSBメモリ)に焼き込むなら断然 Etcherが便利。

 Macだとdd使うのが通で、Windows なら窓の杜で謎ツール利用、とあるけど  

 どう考えてもEtcher一択

 Electronで書いてあるのも刺さる(謎)

 

Boot後環境の設定

 Raspbian Buster Liteをインストールした直後は、イギリス時間だったり、sshデーモンが動いてなかったりするので、rootで

  • raspi-config の設定

    sshデーモン、ロケールを日本に、漢字が使えるように UTF-8 jp の設定を行う

  • 固定IP にするには、/etc/dhcpcd.conf で 設定する

    CentOSみたいに /etc/network/〜 ではない。staticでもdhcpcd.conf で集中管理する

当然デフォルトのユーザー名(pi)とパスワード(raspberry)は変更しておく事

インターネットに晒すと秒速で乗っ取られてbotを入れ込まれて悪の手先になってしまう

 

ツール類をインストール

 GPIOのハードウェアを設定するのに、いちいちrootになるのもめんどくさいし、将来デーモン化する時にrootデーモンは極力減らしておきたい。

 

# sudo しなくてもpioを動かせるデーモン
sudo apt install pigpio
# デーモン起動
sudo systemctl enable pigpiod
sudo systemctl start pigpiod

# python3 の pigpio ライブラリを入れる
sudo apt install python3-pip
sudo pip3 install pigpio

 

python3 のプログラムを書く

# fancon.py

import pigpio

gpio_pin0 = 18

pi = pigpio.pi()
pi.set_mode(gpio_pin0, pigpio.OUTPUT)

# 240kHz duty比0.2(200000) 。0.1だとFANが回らない事があった
pi.hardware_PWM(gpio_pin0,240000,200000)

 

ファンが回りますように

$ python3 fancon.py

のろのろ回ったらOK

 

温度を測る

負荷をかけてCPUの温度をみたい。RaspBerryPI 3はCPUが4コアだったので

$ while true; do echo > /dev/null; done &
$ while true; do echo > /dev/null; done &
$ while true; do echo > /dev/null; done &
$ while true; do echo > /dev/null; done &

として4つ無駄にCPU負荷をかける。不動小数点ユニットを使ってないので本気の全力ではない。

 

温度はcatのテキストでみれる。unix系の便利なところ。

cat /sys/class/thermal/thermal_zone0/temp
83282

表示を1/1000にして読み取ると、ひーもう83度もある。

 

のろのろ(20%)回っているファンをCPUの上にゴロリと乗せると

5分後に60度に下がった。

 

PWMを99%にしてさらに5分回すと 56度になった。

pi.hardware_PWM(gpio_pin0,240000,990000)

99%だと当然うるさいし、ほとんど効果がないようなので20%程度で十分そう。

10%だとファンが回転しなかったり、なんか止まっちゃってる事があった。

周波数を240KHzにしたのは、250KHzだと回りが悪かったから。電解コンデンサの個性なので微調整する事

 

あとはデーモン化する

 やり方忘れた。

 rasbian OSは超簡単にデーモン化する事ができるのでググればわかる気がする。

 Redhat7系(CentOS7)だと/etc/init.d/ に超複雑スクリプトが必要だけど、こちらは3行くらいかけば行けたハズなのでまた後日。

 

改良点 仕事で使うなら

 起動時にPWM制御できてないのでファンの速度が0である。

 これはGPIOがリセット直後は0な為。

 仕事で使うなら、起動時はファン100%で、PWM制御が入ってから速度を落とすべき。

 電子リレーのSIGの入力をデジタルICでインバートして反転させ、起動直後は1にしてあげると良さそう。

 とはいえもう一個チップ足すのはめんどくさいのでオモチャならここまでとする。

 

Raspberry PI の PWM によるファンコン自作 その2

RaspberryPI + IRF520(電子リレー) + うるさいチビファンの速度を変えて遊ぶその2

 

前回 その1へ

 

方針

 RaspberryPIのハードウェアPWM出力ピンが12ピン(GPIO18)なのでこれをIRF520のスイッチ制御に使う。

 PWMの周波数は250KHz。こればPCのマザーボードでもだいたいこれくらい。

 なぜ250KHzかは後述

 

材料

コンデンサーや抵抗などは、ごっそりセットキットをamazon売っているのでそれを使います。

  • セラミックコンデンサ10種類 0.1μF-10μF
  • 電解コンデンサ 0.1μF - 1000μF
  • ジンパワイヤ 100本セット
 

 これだけあれば当分持つ。一つ一つ秋葉原に買いに行くのも電車賃かかるし、ケースに最初から丁寧に入っているしまぁ便利な世の中になってる事。

 

リレー出力を平滑化する

V+ , V- の基盤の裏に電解コンデンサとセラミックコンデンサを半田付けする。

  • 電解コンデンサは10μF〜100μFくらい。

    小さいと効果なく、でかいとリレーの保護回路がつらいのでむやみに大きくしないように。

    極性があるのでV+にプラス、V-にマイナスとなるようにする。

    逆にするとすごい勢いで破裂する

  • セラミックコンデンサは0.1μF〜1μFくらい。

    高周波ノイズ除去。電波を周囲に撒き散らさないおまじない。

PWMを250KHzに設定するのは、電解コンデンサのインピーダンスが一番低くなるあたりだから。

つまり、効率よく平滑化してくれるって事ね。

電子リレーは500KHzくらいが実用限界なので、200KHz〜250KHzくらいがいい感じ。

 

GPIOピンの確認

Raspberry PI のピンは、2,4,12 の3本

  • 2は+5V で、IRF520のVINへ
  • 4はGNDで、IRF520のGNDへ
  • 12はPWM出力で、IRF520のSIGへ

 

ファンの接続

  • V+に赤、V-に黒線をつなぐ

 

 

次はこのハードを制御するソフトを導入する

 

その3ソフト編

2019年7月18日木曜日

Raspberry PI の PWM によるファンコン自作 その1

Raspberry PI 4 は待つが吉

 Raspberry PI 4 が発売されたようです。市場では争奪戦なのか、ebay.comでは1万円の強気の値段で売っている人もいますが、マテ、いまは時期が悪い。

 USB-Cの電源入力の部分の設計者いわく「いやー規格書読んでなかったよ」という事でUSB3.2Gen2を正しく実装されたケーブルだと電力不足で電源が入らないそうです。

 適当に配線された中華ケーブルまたは純正ケーブルのみ電力の供給が可能とのこと。

 ディスカッションを読んでみると、5.1kΩの抵抗2個をケチッて取り付けてなかったんだとか。

 本家:「なのでGPIO側から5V供給すると急場はしのげるよ」

ただし説明書には

 本家: 「GPIOの5Vは出力用で保護回路が入ってないからここから絶対に電力入力しないでね」

 うん、混乱するよね、掲示板。保護回路が入った5Vを入力すればいいんだけど。

 

Raspberry PI 3 MobelBにファンをつけたい

 事の発端は自宅のサーバーをRaspberryPI (以下RasPI) 4 に置き換えたい。でも何年も電源いれっぱなしだから冷やしたいなぁと。RasPI3でも1.2GHzで連続動作させると、ヒートシンク(ちっこい)つけても即80度とかになって速度が落ちてしまう。チップが壊れるには程遠いんだけど。

 で、公式ショップを探してみたところに冷却ファンがありました。

 サイズは3cmx3cmx1cm で、13,200rpm(5V 0.2A)とあるものの、みなさん届いたFANは6,000rpm程度らしくなにやら品質管理できてないっぽい。しかもちょっと耳障りな音らしい。

 でも電力は5V 0.2Aらしく、ひょっとした軸の油が切れた不良品を安く仕入れているんじゃないか?

 5V 0.2A 品は山水の超高級品だと10,000rpmクラスで自身で飛び上がるほどの風量。高いけど。その山水の技術力をもってすら13,200rpmがないわけで純正FANはぁゃιぃよね。

 あきらめてamazonで検索したら 中華5V 0.2A のファンが 5個で1,099円

 回転数は7,500rpm なので少しうるさいかなと思ったけどあまりの安さにプライム即ポチ

 さっそく届いたものを5Vのピンに刺してみると

 プイイイイイーン!!!

 うるせーぇぇぇぇ

 テレビの音が聞こえないレベル。いまはYoutubeの音が聞こえないあたりか?

 あれだ、山水のファンをみると複雑な形状をしているのにこのファンは羽が斜めにくっついてるだけなのでプロペラが高速回転すると空気が剥離し破裂音がでている模様。

 ただまぁ剥離音がでなくなるまで回転数を落とせばいいわけだ。

 遅すぎて冷えないよりは良い。

 中華の説明書によると、RasPIの3.3Vから電源をとると静かだよ、とあるんだけど、3.3Vの電力コンバーターはギリギリの設計でGPIOの出力(合計160mA)を全力使うと余力はほぼない。変換チップ(とコイル)が焼け死ぬ可能性もある。

 できればRasPIの外側の5Vを使いたいので、GPIO 18番のハードウェアPWMの出力をトランジスタやFETでスイッチングして見かけの電圧を下げる事にしよう。

 PWM制御にすればソフトウェアでコントロールできてRasPIの負荷で回転数を変える、なんて事もできそうだし。(結局しなかった。後述)

 手元にある2SC1815(2SC372はモッタイナイ)だと150mAまでだったので、FET買うかぁ。でも10個単位で買っても送料のほうが高いなぁ、とググってたら、FET + 逆流防止ダイオード + チップ抵抗 がくっついた汎用半導体リレーモジュールが激安で売っているではありませんか。ダイオード内蔵なのでモーターもイケル

 しかも10個で1,000円ですよ。ハンダつけして組み立てる事を考えたら安すぎるぅ。

 説明書も何もついてないけど回路追えばわかるよね。という事で即ポチ。(懲りてない)

IRF520-Module

回路図はこちら。素子自体は9Aは流せるけど1A以上でヒートシンクが必要

ただ基盤の細っそいパターンみると1A流したらパターン焼き切れると思う。実は4層高級基盤なのか??

その2へ

 

2019年7月11日木曜日

Unity 2019のPackage Managerで ARFoundation が見つからない

 ARKit3が楽しそうだったので、ARKit3 UnityでググったらPackage Managerにメニューがあるから簡単にインストールできるよ!という記事が大量にヒットしました。

やったねー。

 Unity2019.1.9f1をダウンロードして、AppleDeveloper にお金をお布施して、iOS13 beta3 も手に入れて、Xcodeも新しくして、いざUnity2019起動。
 メニューからWindows -> Package Manager を開けてみると




ない。

 あー、そっか。きっとUnityが新しすぎたのね。まだ整備されていない違いない。

 Unity2018 , Unity 2017 をダウンロードしてPackage Managerを開けてみもやはりない。

 これはひょっとしてあれか?当たりが出るまでUnity2018.(1-99).(1-99)f(1-99)をダウンロードするしかないのか。
 俺の根が尽きるか、ハードディスクがUnityで埋め尽くされるか勝負だ!!

 根が尽きました。

 最近のハードディスクは16Tとかあるしねっ。Unityなんかいくつダウンロードしてもヘコタレナイ容量。


 実際にはUnity2019.1.9 f1 (2019/7/11現在の最新) で
Windows -> PackageManager のウインドウ開けた後、

Advanced▼ をクリック、 Show preview packaged を選択すると良いようです




でたー

AR Foundation 2.2.0 preview2 と、ARKit XR Plugin preview1 をそれぞれクリックして、右下のinstallを押せば良いようです。

 AR Foundation 2.2.0 preview2iOS13beta用で、iOS12.3 ではビルドしても動作しないのでお気をつけください。
 また、Xcodeは11beta1以上が必要です。(現時点でXcode11.0beta3)
 同梱されているライブラリのバージョンが合わないためです。

以下の文書の一番下に「この組み合わせじゃないとダメよ」とありました。
https://github.com/Unity-Technologies/arfoundation-samples/blob/master/README.md