はじめに
ラズパイでFlutter使いたい人がどれくらいいるかわかりませんが(もしかして私だけ・・) UI付きのIOTがもしかして簡単に出来るのでは・・ということでやってみました。
使用したもの
・Raspberry Pi 4B メモリ4G
・キーボード・マウス
・M1 MacbookAir(OSインストール用)
目次
ラズパイにOSをインストール
まずはラズパイにOSをインストールします。
Flutterは今のところ64bit linuxにしか対応していないので32bit RaspberryPiOSでは起動できませんでした。ubuntu20.10ではFlutterの起動ができましたがwiringpiが上手く動かなかったため(動かせる人いたら教えて下さい・・)今回は64bitRaspberryPiOSを使用しました。
下記記事を参考にRaspberry Pi imagerでmicroSDカードにOSを保存します。
https://note.com/ryoma_0923/n/nb7c26336a057
OSのバージョンは添付の画像をご覧ください。
保存できたら、ラズパイに挿して起動して設定を済ませて、インターネット接続します。
GPIOを認識させる
最終目標はFlutterでGPIO制御なのでGPIO設定をします。
Flutter起動だけしたい方は飛ばして下さい。
ターミナルを開いて下記を入力します。
root権限を持ちます。
$ sudo su -
gpio制御用のライブラリを入れます。
$ wget http://project-downloads.drogon.net/wiringpi-latest.deb
$ sudo dpkg -i wiringpi-latest.deb
これでgpio接続が出来るようになっているはずです。下記コマンドでgpio一覧を確認してみましょう。
$ gpio readall
Flutterをインストール
いよいよFlutterをインストールします。公式の通りに進めていけば大丈夫です。
https://flutter.dev/desktop
https://snapcraft.io/install/flutter/raspbian
まず、snapdを使用できる様にします。
$ sudo apt update
$ sudo apt install snapd
$ sudo reboot
flutterをインストールします。
$ sudo snap install flutter --classic
下記も一緒にインストールします。
$ sudo apt-get install clang cmake ninja-build pkg-config libgtk-3-dev
FlutterでLinuxDesktopアプリが使える状態にします。
$ flutter config --enable-linux-desktop
Flutterアプリを作成し、ディレクトリを移動します
$ flutter create myapp
$ cd myapp
Flutterアプリを起動します。
flutter run -d linux
・・・がしかし、コンテキストが生成できないエラーが発生しストップ。
これが、ラズパイの限界か・・
試しにビルドして実行してみる。
$ flutter build linux
ビルドされたアプリはここにある。
/home/pi/myapp/build/linux/arm64/release/bundle
これを実行すると・・
行けたーーー!
お馴染みのカウントアップアプリが起動できました。
でも、デバックの度にビルドしたくないなぁ・・
何か良い方法をお持ちの方は是非是非コメント頂けると嬉しいです。
次回はFlutterでLチカに挑戦したいと思います。