LoginSignup
5
1

More than 1 year has passed since last update.

LambdaChip First Impression

Last updated at Posted at 2021-10-24

LambdaChip はオープンソースの関数型組み込みシステムです。

LambdaChip を実装し、Scheme で組み込みプログラミングができる Alonzoボードを入手したので試してみました。

image.png
Alonzoボードはスタンダード版 (USD29) とフルセット版(USD99)の2種類あります。写真のパッケージはフルセット版です。

フルセット版の中身。
image.png
写真の左下にある黒いボードがAlonzoボード本体です。スタンダード版 (USD29) を購入した場合はこのボード1枚のみになります。
写真の右下はデバッガです。Alonzo ボードへのプログラム書き込みやデバッグなどに使います。

スタンダード版のみ購入の場合でも、プログラムの書き込み/実行は microSD カードにプログラム配置することで行うことができます。

フルセット版/スタンダード版いずれも現在のところ入手はSeeedStudio経由となります。
https://www.seeedstudio.com/LambdaChip-Alonzo-Standard-Version-p-4854.html
image.png

图㧪科学技術有限公司

LambdaChip および Alonzo 中国深センで組込技術開発を行う TuweiTechnology 社(图㧪科学技術有限公司)が開発しています。

LambdaChip
https://lambdachip.com
image.png

TuweiTechnology 社は LambdaChip の開発に注力していますがライセンスは独占的ではなく、LambdaChip は Linux のようにオープンソースで誰でも使うことができます。

Alonzo ボード

image.png

フルセット版に付属する説明書
image.png
説明書裏面
image.png

デバッガ
image.png

デバッガを使ってPCに接続した状態 この状態でプログラムの書き込みやデバッグを行うことができます。
image.png

デバッガを使わずにスタンダード版のみで開発や実行をする場合は、このようにmicroSDカードを使ってプログラムの実行を行います。

image.png

AlonzoボードのCPU はSTM32F411CEU6。Cortex-M4 の 32bit ARM プロセッサで 100MHz。 512KB のフラッシュが使えます。
image.png
FR8016HA は freqchip 社の BLE チップです。これを使うとしてAlonzoボードは日本の技適は取得していないので「技適未取得機器を用いた実験等の特例制度」などを申請して実験することになります。
https://www.freqchip.com/

image.png

実験しよう

最初の1歩として、LED点滅(Lチカ) をしてみます。

https://lambdachip.com/articles/docs
の「0. Get started」を行います。

環境

Ubuntu 20.04 LTS で確認しています。

あらかじめ、以下の手順でDockerをセットアップしています。
「Ubuntu20.04 に Docker を導入する」
https://qiita.com/nanbuwks/items/0ba1d13b3cd27e5c6426

MS-Windows の場合は以下のようにして Dockerをインストールします。
「LambdaChip を MS-Windows で試す」
https://qiita.com/nanbuwks/items/091a80bc0830f1963a9e

Mac の場合は以下を参照して Docker をインストールしてください。
「Mac に Docker Desktop をインストール — Docker-docs-ja 19.03 ドキュメント」
https://docs.docker.jp/docker-for-mac/install.html

docker で開発環境を入手


$ sudo docker pull registry.gitlab.com/lambdachip/laco:latest

sudo しているのは、先のDockerセットアップで sudo 必要な設定としているからです。sudo 必要ない設定にしている方は以降も sudo 無しに読み替えてください。
なお、環境を作った後もこのコマンドを実行することで開発環境が最新に保つことができます。

ワークスペースを作り、開発環境に入る


$ mkdir ~/lambdachip-workspace
$ cd lambdachip-workspace/

としておいて、


$ sudo docker run -it --rm -v $PWD:/workspace -w /workspace -u "lambdachip:lambdachip" registry.gitlab.com/lambdachip/laco:latest bash

と実行すると、以下のようになります。


 ________________________________
/\                               \
\_|                     _        |
  | |  _.._ _ |_  _| _./ |_ o._  |
  | |_(_|| | ||_)(_|(_|\_| |||_) |
  |                          |   |
  |   ___________________________|_
   \_/_____________________________/
Laco compiler workspace
lambdachip@de52db3dde27:/workspace$

プロンプトがこのようになったことを確認し、一度抜けます。

lambdachip@de52db3dde27:/workspace$ exit
exit
$

Scheme プログラムを作成、コンパイルする

$ vim program.scm

として、以下の内容のファイルを作成します。


(define (main x)
  (gpio-toggle! 'dev_led1)
  (usleep 200000)
  (if (= x 0)
    #t
    (main (- x 1))))
(main 10)

ここに示したプログラムは、サンプルから少し変えています。

再度仮想環境に入ります。


$ sudo docker run -it --rm -v $PWD:/workspace -w /workspace -u "lambdachip:lambdachip" registry.gitlab.com/lambdachip/laco:latest bash

先程作成したプログラムをコンパイルします。

lambdachip@448d3a1fe424:/workspace$ laco program.scm
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /usr/bin/laco
;;; compiled /home/lambdachip/.cache/guile/ccache/3.0-LE-8-4.5/usr/bin/laco.go
lambdachip@448d3a1fe424:/workspace$

コンパイルしたファイルができていることを確認します。

lambdachip@448d3a1fe424:/workspace$ ls
program.lef  program.scm

この、program.lef を microSDカードに書き込みましょう。

Alonzo ボードで実行

書き込んだ microSD カードを装着します。

image.png

USB Type-C 端子から5Vを供給します。

image.png

フルカラーLED D6 が
image.png

点滅し、プログラムが実行されたことがわかります。
image.png

プログラムを変更してみる

LED の定義を変えたり、時定数を変えたりして遊んでみましょう。

定義 LED
dev_led0 フルカラーLED 赤
dev_led1 フルカラーLED 緑
dev_led2 フルカラーLED 青
dev_led3 白LED

Alonzoボードの入手

先に記したように現在のところSeeedStudio経由となります。

https://www.seeedstudio.com/LambdaChip-Alonzo-Standard-Version-p-4853.html
https://www.seeedstudio.com/LambdaChip-Alonzo-Standard-Version-p-4854.html
image.png

しかしながら、フルセット版/スタンダード版いずれも品切れで入手できません。なんとかしてみようと計画中です。

image.png

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1