モバイル開発からサーバーサイドアプリケーションまで、我々はSwift 言語に柔軟性を見出だし始めています。ですがまだSwiftには開拓されていない領域があり、Swiftエンジニアがその可能性を切り開くかもしれません。このトークでは、Kate が Raspberry Pi で Swift の開発環境を構築するにあたって良かったこと、悪かったことについてお話します。
SwiftyPi
次のフロンティアにSwiftを連れて行ってくれるものです
- 組み込みSwift
- ラズパイの設定
- ラズパイのPinとSwift
- デモ
- まとめ
Swiftは柔軟です
モバイルからサーバーサイド、そして組み込みへ広がってきました
ラズベリーパイはカードサイズのコンピューターです。
これが何故大事かというと小さなコンピューターがいろいろなOSで動く、オープンソースで、Linux用のPortがあって、Swiftの様々な素晴らしい点を載せることができます。
ラズベリーパイをどうやって使ったらいいのか
OSを選ぶ必要がありますが、Raspbian、そしてUbuntuがおすすめです。
様々ありますが、ご説明するのは時間がないので、リポジトリを見て下さい
どう立ち上げるのかから説明しましょう。
まだSwift4.1のサポートがありません。
理由はいろいろですが、リソースの不足です。ARMのリナックス側に十分なリソースがない。
ここを気にしなければ3.1.1で使えます。
設定の仕方
リポジトリに行く、バイナリをダウンロードできるのでインストール、幅広いレコメディションがありますし、ライブラリをOpenSSLなどをインストールします、ラズベリーパイの端末でバージョンを確認します。
ラズベリーパイを動かしていく、Swift上のコードを見ていく
PinとSwift
回路のレイアウトをどうするか
レジスターとLED
GPIO(GeneralInputOutputPin)
接続設定ができました。どう試験するのか
端末でwiringpi をインストールしてGPIOピンをアウトプット用にしてスイッチを入れる
gpio write 13 1
gpio write 13 0
でOffにできます。
ラズベリーパイ上のピン
操作する時は数字を使うわけです 丸の中に入っている数字がTerminalから使う数字です。
Swiftから使うにはGPIO番号を使います。ピン13を使うには、GPIO27が対応する番号です。
OSSのSwiftyGPIOを使う
On, Offにするサンプル
ちかちか
これが現実世界のプロジェクトに繋がります
Berlin Train Systemというのがありますが信頼性がないわけです。電車を乗り逃がすことが多いです。
視覚的にいつ家を出なければならないか分かるようにしたい。そしてきちんと駅に着くように。
サーバーをRasberyPi上で実行し、最寄り駅を出発駅、到着駅、経路を決めていきます。
次に重要な要素を話します。サーバーです。
Vaporを使おうと思いました。repositoryにDependencyとして指定します。
Vaporツールボックスは使いません。Swift4が必要です。使えないのでツールボックスは使えません。 Demoです。
出発駅と到着駅を設定して..
ブザーを鳴らすことにします。
なりました
ここまで何をしたか
モバイル、サーバー、システムに接続という3つをしました。これでLEDを動かせる
- ラズパイでEthenetケーブルを使ってネット共有できるようになりました。
- Swift4に早く対応するといいですね
- LEDがつかない時は接続を確認して下さい
- 物理的ピン番号とGPIO番号は違います
- GPIO番号はSwiftコードで使うものです。