Eagleye 530s
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
Seeedは、IoT技術プラットフォーム向けの開発キットを設計する経験豊富な企業です。最新の開発キットであるEagleye 530sは、Samsung ARTIK™ IoTプラットフォーム向けの製品やサービスの開発を始めるためのサポートを目的としています。
Eagleye 530sは、高性能で事前テスト済み、コスト効率が高く、製品化準備が整った開発キットです。このキットは、Samsung ARTIK™ 530s(1GBのシステムオンモジュール(SoM))をカスタムクレジットカードサイズのボードに組み込んでいます。ARTIK™ 530sに関する詳細情報は、こちらをクリックしてください。
Samsung ARTIK™とは?
Samsung ARTIK™は、エンタープライズグレードのシステムオンモジュール(SoM)、クラウドサービス、エンドツーエンドのセキュリティを備えた、堅牢なIoTソリューションの設計と開発を可能にする事前統合型IoTプラットフォームです。開発者は、IoT製品の設計と構築時にセキュリティの重要性を軽視しがちです。ARTIKのSoMおよびクラウド向け統合セキュリティサービスにより、製品のセキュリティを簡単に強化できます。
前述の通り、Eagleye 530sはARTIK 530s 1GB SoMをベースにしており、Quad Core Cortex® A9(1.2 GHz動作)、4GBフラッシュメモリ、ハードウェアベースのセキュリティ機能、Linux OS(Ubuntu)を搭載しています。Eagleye 530sはまた、40ピンGPIOおよびMicro SD、Ethernet 10/100/1000、Wi-Fi 802.11 a/b/g/n、Bluetooth BLE 4.2 802.15.4、ZigBee/Thread用のアクセサリインターフェースを提供します。さらに、フルHDMI、MIPIカメラインターフェース、ビデオ、オーディオメディアもサポートしています。
Eagleye 530sは、多くの「メイカー」ハードウェアアクセサリとピン互換性があるため、Samsung ARTIK™開発者は広範な「メイカー」アクセサリ市場に簡単にアクセスできます。これにより、市販のセンサー(例:GrovePi+、Groveセンサー)、音声認識(例:ReSpeaker 2-mic array、ReSpeaker 4-mic array)、リレー、GPS、セルラー接続などを使用して、機能豊富な概念実証(PoC)や製品化準備が整った製品を簡単にプロトタイプ化および構築できます。
バージョン
製品バージョン | 変更点 | リリース日 |
---|---|---|
Eagleye 530s Rev1.0 | 初版 | 2018年2月28日 |
特徴
- Samsung ARTIK™ IoT プラットフォームを搭載。
- ARTIK 530s 1GB SoM を採用、1.2 GHz で動作する Quad Core Cortex® A9 を搭載。
- 40 ピン GPIO およびアクセサリインターフェースを含む。
- Micro SD、Ethernet 10/100/1000、Wi-Fi 802.11 a/b/g/n、Bluetooth BLE 4.2 802.15.4、ZigBee/Thread をサポート。
- フル HDMI、MIPI カメラインターフェース、ビデオ、およびオーディオメディアをサポート。
仕様
パラメータ | 値/範囲 | |
---|---|---|
プロセッサ | ||
CPU | Quad core ARM® Cortex®[email protected] | |
GPU | 3D グラフィックスアクセラレータ | |
メディア | ||
カメラインターフェース | 4レーン MIPI CSI 最大 5M (1920x1080@30fps) | |
ディスプレイ | 4レーン MIPI DSI および HDMI1.4a (1920x1080p@60fps) または LVDS (1280x720p@60fps) | |
オーディオ | 2 つの I2S オーディオ入力/出力 | |
メモリ | ||
DRAM | 512MB/1GB DDR3 | |
フラッシュ | 4GB eMMC v4.5 | |
セキュリティ | ||
セキュアイレメント | セキュアなポイントツーポイント認証およびデータ転送 | |
無線 | ||
WLAN | IEEE 802.11a/b/g/n、デュアルバンド SISO | |
Bluetooth® | 4.2 (BLE+クラシック) | |
802.15.4 | ZigBee®/Thread | |
電源管理 | ||
PMIC | オンボードの降圧コンバータと LDO を使用して ARTIK 530 モジュールの全電力を供給 | |
インターフェース | ||
イーサネット | 10/100/1000Base-T MAC (外部 PHY 必須) | |
アナログおよびデジタル I/O | GPIO、UART、I2C、SPI、USB ホスト、USB OTG、HSIC、ADC、PWM、I2S、JTAG |
ハードウェア概要
ブロック図
インターフェース
以下の図は、Eagleye 530sのTOPとBOTTOMの全体プレビューを示しています。
- ⓐ DC電源: 5V DC電源供給。
- ⓑ USBホスト2.0インターフェース: 2つのUSB 2.0インターフェースを備えています。
- ⓒ イーサネット: イーサネットインターフェースは802.3az-2010に基づき、エネルギー効率の良いイーサネット(EEE)標準に準拠しています。インターフェースの理論上の最大速度は1000Mbpsです。
- ⓓ イヤージャック: ステレオオーディオをサポートする4ピンイヤージャックインターフェースを備えています。
- ⓔ ブートスイッチ: 「eMMc 1st Boot」がブートオプションとして選択されている場合、システムはまずeMMcからの起動を試み、失敗した場合はSDカードからの起動を試みます。SDカードからの起動も失敗した場合、システムはUSBからの起動を試みます。SDカード起動オプションを選択した場合、システムはSDカードからの起動を開始し、失敗した場合はUSB起動を試みます。USBが選択された場合、USB起動のみが試みられます。
SW402 | eMMc 1st Boot | SDカード1st Boot | USB 1st Boot |
---|---|---|---|
1 | Off | Off | On |
2 | Off | Off | On |
3 | X | X | X |
4 | Off | On | X |
- ⓕ HDMI: HDMI 1.4aコネクタを1つ備えています。以下のビデオフォーマットをサポートしています: - 480p/480i @59.94Hz/60Hz, 576p/576i@50Hz - 720p/720i @50Hz/59.94Hz/60Hz - 1080p/1080i @50Hz/59.94Hz/60Hz
- ⓖ USB OTG: USB OTGを1つ備えています。
- ⓗ USB UART: USB UARTを1つ備えています。
- ⓘ ユーザーボタンS4: S4と名付けられたスイッチで、GPIO 54にマッピングされています。
- ⓚ 電源オンLED: ボードの電源がオンになるとLEDが点灯します。
- ⓛ 電源入力LED: ボードが電源供給を受けるとLEDが点灯します。
- ⓜ SDカード挿入LED: SDカードがボードに挿入されるとLEDが点灯します。
- ⓝ ユーザーボタンS3: S3と名付けられたスイッチで、GPIO 50にマッピングされています。
- ⓞ MIPI CSI: MIPI CSIインターフェースは静的解像度5Mピクセルまたは1080Pの動画キャプチャ用の動的解像度をサポートします。
- ⓟ ANT(802.11): 802.11またはBluetooth®機能が必要な場合、Eagleye 530sに同梱されているアンテナを取り付ける必要があります。
- ⓠ リセット: ボードのリセット。
- ⓡ 電源: 電源スイッチをオンにした後、約1秒間電源ボタン(S1)を押します。
- ⓢ ANT(802.11): 802.11またはBluetooth®機能が必要な場合、Eagleye 530sに同梱されているアンテナを取り付ける必要があります。
- ⓣ ユーザーピン: Eagleye 530sは多用途の制御および監視デバイスとして、多くのプログラム可能な信号ピンを提供します。これらのピンは、リレーの制御、アナログ電圧の生成、アナログセンサーの監視などのタスクを直接処理するほか、より高度な制御およびセンサー装置との並列およびシリアル通信を含む複雑なタスクも処理します。
- ⓤ ANT(Zigbee): Zigbee機能が必要な場合、Eagleye 530sに同梱されているアンテナを取り付ける必要があります。
- ⓥ 電源スイッチ: JP1およびJP2ジャンパーの選択により、電源供給元を選択できます。DC-5Vアダプターから電源が供給される場合、ジャンパーJP2が配置され、3-4位置が接続されます。 USB-UARTから電源が供給される場合、ジャンパーJP1が1-2位置に配置されます。Eagleye 530sを外部電源アダプターと使用する場合は、5V-2.5Aアダプター(2.1x5.5mmプラグ)を使用してください。
両方を同時に接続しないでください!
- ⓦ SDカードスロット: SD3.0をサポートするSDカードインターフェースを1つ備えています。
- ⓧ JTAG: JTAGインターフェースを1つ備えています。
機械図面
機械図面のすべての寸法は[mm]単位です。
アプリケーションアイデア
- DIY
- IoTとスマートホーム
- ロボット
はじめに
開封デモ
このセクションでは、開発用PCでシリアル接続を設定し、Eagleye 530s開発環境を起動することで、Eagleye 530s開発環境の使用を開始する方法を説明します。
ハードウェア
ステップ1. 電源スイッチ(ハードウェア概要の番号21として記載)をUSBに設定します。
ステップ2. PCからUSB UART(ハードウェア概要の番号8として記載)にUSBケーブルを接続します。
ステップ3. 電源ボタンを1秒以上押すと、緑色/赤色のLED(ハードウェア概要の番号10/11を参照)が点灯します。
ソフトウェア
Eagleye 530sモジュールとの接続は、有線または無線で行うことができます。ここでは、無料のシリアルコンソールであるPuTTYをインストールする方法を選択します。ソフトウェアはhttp://www.putty.org/からダウンロードできます。ダウンロード後、以下の手順に従ってください:
- ステップ1. コントロールパネルでデバイスマネージャーを開きます。
- ステップ2. PCを使用する場合、USBからシリアルへのドライバーをインストールします。ドライバーは以下の場所からダウンロードできます:(https://www.ftdichip.com/Drivers/CDM/CDM21218_Setup.zip)。その他のドライバーについては、(https://www.ftdichip.com/Drivers/D2XX.htm)を参照してください。
- ステップ3. USBシリアルケーブルを接続した際のPC上のCOMポート番号を確認します。この例では、割り当てられたCOMポートはCOM9です。
- ステップ4. PuTTYの設定を以下のように行います:
- 「Serial line」をステップ3で確認したCOMポート番号に設定します。
- COM速度を「115200」に設定します。
- 接続タイプを「Serial」に設定します。
- セッションをEagleye 530sとして保存します。
- ステップ5. 保存したセッションを選択し、「Open」ボタンをクリックします。
- ステップ6. ユーザー名とパスワードは「root」です。
- ステップ7. 以下のようなターミナルが表示されます。
オンボードLEDを操作する
- ステップ1. blink_led.pyをダウンロードするか、以下のコードをコピーしてblink_led.pyに貼り付けます。
#!/usr/bin/python
import time
import sys
print "LEDを点滅させます"
ledpin = 159 # 青色LEDを点滅させます。赤色LEDの場合は43に変更してください。
# GPIOピンをエクスポートする
pinctl = open("/sys/class/gpio/export", "wb", 0)
try:
pinctl.write( str(ledpin))
print "ピン", str(ledpin), "をエクスポートしました"
except:
print "ピン", str(ledpin), "はすでにエクスポートされています"
pinctl.close()
# GPIOピンをデジタル出力に設定する
filename = '/sys/class/gpio/gpio%d/direction' % ledpin
pinctldir = open(filename, "wb", 0)
try:
pinctldir.write("out")
print "ピン", str(ledpin), "をデジタル出力に設定しました"
except:
print "ピンの方向設定に失敗しました"
pinctldir.close()
# GPIOピンをアンエクスポートする
def exit_gpio():
pinctl = open("/sys/class/gpio/unexport", "wb", 0)
try:
pinctl.write( str(ledpin))
print "ピン", str(ledpin), "をアンエクスポートしました"
except:
print "ピン", str(ledpin), "はすでにアンエクスポートされています"
pinctl.close()
# GPIOピンの値を10秒ごとに変更する
filename = '/sys/class/gpio/gpio%d/value' % ledpin
while True:
try:
pin = open(filename, "wb", 0)
pin.write( str(1) )
time.sleep(1)
pin.write( str(0) )
time.sleep(1)
pin.close()
except:
exit_gpio()
sys.exit(0)
- ステップ2. 'python blink_led.py'を実行します。
- ステップ3. LEDが点滅するのが確認できます。
オンボードボタンを操作する
- ステップ1. read_button.pyをダウンロードするか、以下のコードをコピーしてread_button.pyに貼り付けます。
#!/usr/bin/python
import time
import sys
print "ボタンをトグルします"
buttonpin = 54 # S4ボタンを読み取ります。S3ボタンの場合は50に変更してください。
# ピンをエクスポートする
pinctl = open("/sys/class/gpio/export", "wb", 0)
try:
pinctl.write( str(buttonpin))
print "ピン", str(buttonpin), "をエクスポートしました"
except:
print "ピン", str(buttonpin), "はすでにエクスポートされています"
pinctl.close()
# ピンをデジタル入力に設定する
filename = '/sys/class/gpio/gpio%d/direction' % buttonpin
pinctldir = open(filename, "wb", 0)
try:
pinctldir.write("in")
print "ピン", str(buttonpin), "をデジタル入力に設定しました"
except:
print "ピンの方向設定に失敗しました"
pinctldir.close()
def exit_gpio():
# ピンをアンエクスポートする
pinctl = open("/sys/class/gpio/unexport", "wb", 0)
try:
pinctl.write( str(buttonpin))
print "ピン", str(buttonpin), "をアンエクスポートしました"
except:
print "ピン", str(buttonpin), "はすでにアンエクスポートされています"
pinctl.close()
# ボタンが押されるとピンの値が変化する
filename = '/sys/class/gpio/gpio%d/value' % buttonpin
while True:
try:
pin = open(filename, "rb", 0)
print pin.read()
time.sleep(1)
pin.close()
except KeyboardInterrupt:
exit_gpio()
sys.exit(0)
- ステップ2. 'python read_button.py'を実行します。
- ステップ3. 以下のようなターミナル情報が表示されます。
[root@artik ~]# python read_button.py
ボタンをトグルします
ピン 54 はすでにエクスポートされています
ピン 54 をデジタル入力に設定しました
1
1
0
0
イーサネットとWi-Fiネットワーク
以下の手順では、有線または無線のローカルエリアネットワーク(LAN)の設定について説明します。有線LAN(ハードワイヤード)ポートは常に利用可能です。無線LAN(WLAN)回路は別途利用可能で、Connection Managerで設定できます。
- ステップ1. 無線アクセスポイントをスキャンします。以下のコマンドを入力します。 connmanctlを入力して>プロンプトを表示します。
- ステップ2. wifiをスキャンして利用可能なアクセスポイントを検索します(完了するまで待ちます)。
- ステップ3. servicesを入力してリストを表示します。
- ステップ4. アクセスポイントを選択します。>プロンプト内で以下のコマンドを入力します。
- ステップ5. agent onを入力して、Connection Managerがパスワードを要求するようにします。
- ステップ6. connect wifi_xxxxを入力して希望のアクセスポイントを選択します(Tabキーを使用して入力を開始し、自動補完できます)。
- ステップ7. 必要に応じてエージェントのパスワード要求に応答します。
- ステップ8. 完了したらquitを入力します。
- ステップ9. このプロセスを今後繰り返す必要はありません:接続は今後自動的に行われます。
以下は翻訳された内容です:
端末情報
[root@artik ~]# connmanctl
Error getting VPN connections: The name net.connman.vpn was not provided by any connmanctl> scan wifi
Scan completed for wifi
connmanctl> scan wifi
connmanctl> services
*AO Wired ethernet_000000000000_cable
seeed wifi_722c1f37ca11_XXXXXXXX_managed_psk
ReSpeaker1DD346 wifi_722c1f37ca11_XXXXXXXX_managed_none
connmanctl> agent on
Agent registered
connmanctl> connect wifi_722c1f37ca11_XXXXXXXX_managed_psk
Agent RequestInput wifi_722c1f37ca11_XXXXXXXX_managed_psk
Passphrase = [ Type=psk, Requirement=mandatory ]
Passphrase? 2018seeed
connmanctl> quit
[root@artik ~]#
ファームウェア更新
- ステップ 1. ファームウェアをダウンロードします。「ARTIK 530s 1G」のファイルを選択してください。
- ステップ 2. Etcher ツールを使用してファームウェアをSDカードに書き込みます。
- ステップ 3. SDカードをEagleye 530sのSDスロットに挿入します。
- ステップ 4. ハードウェア概要で番号21と記載されているブートスイッチのPin4をオンにします。
- ステップ 5. PCからUSBケーブルをUSB UART(ハードウェア概要で番号8と記載)に接続します。
- ステップ 6. 電源ボタンを1秒以上押し続けると、緑/赤/青のLED(ハードウェア概要で番号10/11/12を参照)が点灯します。
- ステップ 7. 以下のメッセージが表示され、ファームウェアが正常にダウンロードされます。
- ステップ 8. ボードをシャットダウンし、SDカードを取り外し、ブートスイッチのPin4をオフに戻してください。
ピンプログラミングを試す
Eagleyeボードは多くのプログラム可能な信号ピンを提供します。これらのピンの一部は汎用入出力(GPIO)ピンであり、その他はアナログ入力、パルス幅変調出力、シリアル通信用の固定用途ピンです。
- デジタル入力(GPIO) – 低(GND)または高(Vcc)のDC信号レベルを検知
- デジタル出力(GPIO) – 動的に制御可能なDCレベル(GNDまたはVcc)を駆動
- 波形出力(PWM) – 周波数とデューティサイクルを動的にプログラム可能なパルス幅変調回路によるDCレベルの切り替え
- シリアルポート(I2CおよびUART) – 業界標準プロトコルに従ったデータの送受信
- アナログ入力(ADC) – 変動する信号レベルを読み取り、アナログ-デジタルコンバータを通じて処理
Linuxカーネルのsysfs機能は、プログラム可能なピンを制御および監視するためのライブラリを提供します。詳細は参考資料をご覧ください。
以下はコネクタのピン配置とその意味です。
説明 | ピン名 | ピン番号 | ピン番号 | ピン名 | 説明 |
---|---|---|---|---|---|
3.3V | 3.3V | 1 | 2 | 5V | 5V |
I2C | XI2C0_SDA | 3 | 4 | 5V | 5V |
I2C | XI2C0_SCL | 5 | 6 | GND | GND |
GPIO_161 | XAGPIO0 | 7 | 8 | XUART0_TX | UART |
GND | GND | 9 | 10 | XUART0_RX | UART |
GPIO_128 | XGPIO0 | 11 | 12 | I2SBCK1 | I2S |
GPIO_129 | XGPIO1 | 13 | 14 | GND | GND |
PWM | PWM2 | 15 | 16 | XGPIO2 | GPIO_130 |
3.3V | 3.3V | 17 | 18 | XGPIO3 | GPIO_46 |
SPI | XSPIO_MOSI | 19 | 20 | GND | GND |
SPI | XSPIO_MISO | 21 | 22 | PWM0 | PWM |
SPI | XSPIO_CLK | 23 | 24 | XSPIO0_CS | SPI |
GND | GND | 25 | 26 | XGPIO4 | GPIO_14 |
NC | NC | 27 | 28 | NC | NC |
GPIO_27 | XGPIO9 | 29 | 30 | GND | GND |
GPIO_25 | XGPIO6 | 31 | 32 | XGPIO7 | GPIO_0 |
GPIO_26 | XGPIO8 | 33 | 34 | GND | GND |
I2S | I2SLRCLK1 | 35 | 36 | XADC0 | ADC |
ADC | XADC1 | 37 | 38 | I2SDIN1 | I2S |
GND | GND | 39 | 40 | I2SDOUT1 | I2S |
GPIOのSysfsによる制御
例えば、ピン11はGPIOであり、デジタル入力または出力として使用できます。特定のGPIOを使用するには、まずその方向(モード)を入力または出力として設定し、必要に応じて読み取りまたは書き込みを行います。
オンボードLEDを操作するおよびオンボードボタンを操作するチュートリアルでは、デジタルI/Oピンの必要なプログラミング例を提供しています。
:::注意 LED/ボタンのPythonプログラム内で特定のGPIOピン番号を変更してください。 :::
PWMのSysfsによる制御
例えば、ピン22はPWMです。LEDのPWMを40ピンのPWMおよびGNDに接続することができます。周期とデューティサイクル(最大制限は1,000,000,000(ns単位))を設定できます。デューティサイクルは常に周期より小さくする必要があります。
以下の演習では、PWMピンを使用して固定の点滅速度を設定する方法を示します。
ステップ 1. PWM0をエクスポート
echo 0 > /sys/class/pwm/pwmchip0/export
pwm0サブディレクトリが作成されます。(echo 0でpwm0を作成、echo 2でpwm2を作成できます。)
ステップ 2. 属性を設定
a) 周期(単位: ns)を1秒に設定
echo 1000000000 > /sys/class/pwm/pwmchip0/pwm0/period
b) デューティサイクル(単位: ns)を500ミリ秒に設定
echo 500000000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
c) PWM0を有効化
echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable
d) PWM0を無効化
echo 0 > /sys/class/pwm/pwmchip0/pwm0/enable
ステップ 3. PWM0をアンエクスポート
echo 0 > /sys/class/pwm/pwmchip0/unexport
以下は日本語への翻訳です:
ここでは pwm0 のターミナル情報を示します。
[root@artik pwmchip0]# echo 0 > /sys/class/pwm/pwmchip0/export # pwm2 を使用する場合は echo 2 に変更してください
[root@artik pwmchip0]# echo 1000000000 > /sys/class/pwm/pwmchip0/pwm0/period # pwm2 を使用する場合は pwm0 を pwm2 に変更してください
[root@artik pwmchip0]# echo 500000000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle # pwm2 を使用する場合は pwm0 を pwm2 に変更してください
[root@artik pwmchip0]# echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable # pwm2 を使用する場合は pwm0 を pwm2 に変更してください
[root@artik pwmchip0]# echo 0 > /sys/class/pwm/pwmchip0/pwm0/enable # pwm2 を使用する場合は pwm0 を pwm2 に変更してください
Sysfs を使用した ADC 制御
例えば、ピン 36 は ADC0 です。以下のコマンドライン例は ADC0 の現在値を読み取る方法を示しています。
[root@artik dev]# cat /sys/devices/platform/c0000000.soc/c0053000.adc/iio:device0/in_voltage0_raw
0
[root@artik dev]# cat /sys/devices/platform/c0000000.soc/c0053000.adc/iio:device0/in_voltage0_raw
1211
[root@artik dev]# cat /sys/devices/platform/c0000000.soc/c0053000.adc/iio:device0/in_voltage0_raw
2027
[root@artik dev]# cat /sys/devices/platform/c0000000.soc/c0053000.adc/iio:device0/in_voltage0_raw
3017
[root@artik dev]# cat /sys/devices/platform/c0000000.soc/c0053000.adc/iio:device0/in_voltage0_raw
4095
ピン 37 (ADC1) を使用する場合は、in_voltage0_raw
を in_voltage1_raw
に変更してください。
UART 制御
- ステップ 1. 以下のコマンドを実行して UART0 を有効にします。リストに ttyAMA4 が表示されます。ARTIK 530s 1G Secure Module Firmware (Ubuntu): A533s_os_18.05.00 でテスト済み。
cd /sys/kernel/config/device-tree/overlays/
mkdir ttyAMA4
cd /boot/overlays
cat s5p4418-artik533-compy-serial4.dtbo > /sys/kernel/config/device-tree/overlays/ttyAMA4/dtbo
cd /dev
ls tty*
- ステップ 2. UART0 の TX/RX を USB2Serial アダプタに接続します。
ピン番号 | ピン名 | USB2Serial アダプタ |
---|---|---|
6 | GND | GND |
8 | XUART0_TX | RX |
10 | XUART0_RX | TX |
- ステップ 3. UART0 に "hello" を送信します。
stty -F /dev/ttyAMA4
echo “hello ..” > /dev/ttyAMA4
- ステップ 4. 以下のようにシリアルモニターに表示されます。
hello ..
hello ..
hello ..
ReSpeakers マイクを使用する
2 Mics Pi HAT を使用する
ハードウェア
2 Mics ドライバのインストール
- ステップ 1. Seeed-Voicecard ドライバをダウンロードします。
[root@artik ~]# apt update
[root@artik ~]# apt install git
[root@artik ~]# git clone https://github.com/respeaker/seeed-voicecard
[root@artik ~]# cd seeed-voicecard
[root@artik seeed-voicecard]# git checkout remotes/origin/artikpi -b artiki
- ステップ 2. Seeed-Voicecard ドライバをインストールします。
[root@artik ~]# cd seeed-voicecard/
[root@artik seeed-voicecard]# mount -o remount,rw /lib/modules
[root@artik seeed-voicecard]# sudo mkdir -p /lib/modules/4.4.113-0533GS0F-44U-01Q5/kernel/sound/soc/codecs/
[root@artik seeed-voicecard]# sudo cp snd-soc-ac108.ko.0533GS0F-44U-01Q5 /lib/modules/4.4.113-0533GS0F-44U-01Q5/kernel/sound/soc/codecs/snd-soc-ac108.ko
[root@artik seeed-voicecard]# sudo cp snd-soc-wm8960.ko.0533GS0F-44U-01Q5 /lib/modules/4.4.113-0533GS0F-44U-01Q5/kernel/sound/soc/codecs/snd-soc-wm8960.ko
[root@artik seeed-voicecard]# sudo depmod -a
- ステップ 3. 2 Mics を有効にします。
[root@artik ~]# cd seeed-voicecard
[root@artik seeed-voicecard]# su root
[root@artik seeed-voicecard]# mkdir /sys/kernel/config/device-tree/overlays/seeed-voicecard
[root@artik seeed-voicecard]# cat seeed-2mic-voicecard-artik.dtbo > /sys/kernel/config/device-tree/overlays/seeed-voicecard/dtbo
[root@artik seeed-voicecard]# cp wm8960_asound.state /var/lib/alsa/asound.state
[root@artik seeed-voicecard]# alsactl --file=wm8960_asound.state restore
再起動後にステップ 3 を再度実行してください。そうしないと Seeed Voicecard を検出できません。
- ステップ 4.
arecord
を使用して録音デバイスをリストします。
[root@artik seeed-voicecard]# arecord -L
null
Discard all samples (playback) or generate zero samples (capture)
pulse
PulseAudio Sound Server
default
Playback/recording through the PulseAudio sound server
playback
dmixed
ac108
sysdefault:CARD=Audio
Artik530 raptor Audio,
Default Audio Device
dmix:CARD=Audio,DEV=0
Artik530 raptor Audio,
Direct sample mixing device
dsnoop:CARD=Audio,DEV=0
Artik530 raptor Audio,
Direct sample snooping device
hw:CARD=Audio,DEV=0
Artik530 raptor Audio,
Direct hardware device without any conversions
plughw:CARD=Audio,DEV=0
Artik530 raptor Audio,
Hardware device with all software conversions
sysdefault:CARD=seeed2micvoicec
seeed-2mic-voicecard,
Default Audio Device
dmix:CARD=seeed2micvoicec,DEV=0
seeed-2mic-voicecard,
Direct sample mixing device
dsnoop:CARD=seeed2micvoicec,DEV=0
seeed-2mic-voicecard,
Direct sample snooping device
hw:CARD=seeed2micvoicec,DEV=0
seeed-2mic-voicecard,
Direct hardware device without any conversions
plughw:CARD=seeed2micvoicec,DEV=0
seeed-2mic-voicecard,
Hardware device with all software conversions
オーディオの録音/再生
- コマンドラインを使用して録音を開始します。
arecord -f cd -Dplughw:1,0 /tmp/test.wav
aplay -Dplughw:1,0 /tmp/test.wav
以下はハードウェアセットアップです。2 Mics のオーディオジャックから再生音を聞くことができます。
Python を使用して録音を開始します。
ステップ 1. 以下のコマンドで pyaudio パッケージをインストールします。
apt install python-pyaudio
ステップ 2. vi などのテキストエディタを使用して recorder_2Mics.py コードファイルを作成します。このコードは 10 秒間の音声クリップを
test.wav
として録音します。
import pyaudio
import wave
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 48000
CHUNK = 1024
RECORD_SECONDS = 10
WAVE_OUTPUT_FILENAME = "test.wav"
audio = pyaudio.PyAudio()
# 録音開始
stream = audio.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK)
print "音声を録音中..."
frames = []
threshold = 800
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print "録音完了"
# 録音停止
stream.stop_stream()
stream.close()
audio.terminate()
waveFile = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
waveFile.setnchannels(CHANNELS)
waveFile.setsampwidth(audio.get_sample_size(FORMAT))
waveFile.setframerate(RATE)
waveFile.writeframes(b''.join(frames))
waveFile.close()
詳細情報については、Google アシスタントとの連携など、ReSpeaker 2-Mics Pi HAT を参照してください。
4 Mics Pi HAT を使用する
ハードウェア
4 Mics ドライバのインストール
- ステップ 1. Seeed-Voicecard ドライバをダウンロードします。
[root@artik ~]# apt update
[root@artik ~]# apt install git
[root@artik ~]# git clone https://github.com/respeaker/seeed-voicecard
[root@artik ~]# cd seeed-voicecard
[root@artik seeed-voicecard]# git checkout remotes/origin/artikpi -b artiki
- ステップ 2. Seeed-Voicecard ドライバをインストールします。
[root@artik seeed-voicecard]# mount -o remount,rw /lib/modules
[root@artik seeed-voicecard]# sudo mkdir -p /lib/modules/4.4.113-0533GS0F-44U-01Q5/kernel/sound/soc/codecs/
[root@artik seeed-voicecard]# sudo cp snd-soc-ac108.ko.0533GS0F-44U-01Q5 /lib/modules/4.4.113-0533GS0F-44U-01Q5/kernel/sound/soc/codecs/snd-soc-ac108.ko
[root@artik seeed-voicecard]# sudo cp snd-soc-wm8960.ko.0533GS0F-44U-01Q5 /lib/modules/4.4.113-0533GS0F-44U-01Q5/kernel/sound/soc/codecs/snd-soc-wm8960.ko
[root@artik seeed-voicecard]# sudo depmod -a
- ステップ 3. 4 Mics を有効化します。
[root@artik ~]# cd seeed-voicecard
[root@artik seeed-voicecard]# su root
[root@artik seeed-voicecard]# mkdir /sys/kernel/config/device-tree/overlays/seeed-voicecard
[root@artik seeed-voicecard]# cat seeed-4mic-voicecard-artik.dtbo > /sys/kernel/config/device-tree/overlays/seeed-voicecard/dtbo
[root@artik seeed-voicecard]#
[ 574.305000] Please set data-protocol.
[ 574.310000] i2c_id number :0
[ 574.310000] ac108 codec_index :0
[ 574.315000] ac108 I2S data protocol type :1
[ 574.335000] ac108_write error->[REG-0x00,val-0x12]
[ 574.550000] AC108 PLL freq_in match:24000000, freq_out:24576000
[ 574.550000]
[ 574.640000] AC108 PLL freq_in match:24000000, freq_out:24576000
[ 574.640000]
[root@artik seeed-voicecard]# cp ac108_asound.state /var/lib/alsa/asound.state
[root@artik seeed-voicecard]# cp ac108_plugin/libasound_module_pcm_ac108.so /usr//lib/arm-linux-gnueabihf/alsa-lib/
[root@artik seeed-voicecard]# cp asound_4mic.conf /etc/asound.conf
[root@artik seeed-voicecard]# alsactl --file=ac108_asound.state restore
再起動後にステップ 3 を再度実行してください。そうしないと、Seeed Voicecard を検出できません。
- ステップ 4.
arecord
を使用して録音デバイスをリストします。
[root@artik seeed-voicecard]# arecord -L
null
Discard all samples (playback) or generate zero samples (capture)
pulse
PulseAudio Sound Server
default
Playback/recording through the PulseAudio sound server
playback
dmixed
ac108
sysdefault:CARD=Audio
Artik530 raptor Audio,
Default Audio Device
dmix:CARD=Audio,DEV=0
Artik530 raptor Audio,
Direct sample mixing device
dsnoop:CARD=Audio,DEV=0
Artik530 raptor Audio,
Direct sample snooping device
hw:CARD=Audio,DEV=0
Artik530 raptor Audio,
Direct hardware device without any conversions
plughw:CARD=Audio,DEV=0
Artik530 raptor Audio,
Hardware device with all software conversions
sysdefault:CARD=seeed4micvoicec
seeed-4mic-voicecard,
Default Audio Device
dmix:CARD=seeed4micvoicec,DEV=0
seeed-4mic-voicecard,
Direct sample mixing device
dsnoop:CARD=seeed4micvoicec,DEV=0
seeed-4mic-voicecard,
Direct sample snooping device
hw:CARD=seeed4micvoicec,DEV=0
seeed-4mic-voicecard,
Direct hardware device without any conversions
plughw:CARD=seeed4micvoicec,DEV=0
seeed-4mic-voicecard,
Hardware device with all software conversions
音声の録音
- コマンドラインを使用して録音を開始します。
arecord -Dac108 -f S16_LE -r 48000 -c 4 /tmp/test.wav
Python を使用して録音を開始します。
ステップ 1. 以下のコマンドで
pyaudio
パッケージをインストールします。apt install python-pyaudio
ステップ 2.
vi
などのテキストエディタを使用して、この recorder_4Mics.py コードファイルを作成します。このコードは 10 秒間の音声クリップtest.wav
を録音します。
import pyaudio
import wave
FORMAT = pyaudio.paInt16
CHANNELS = 4
RATE = 48000
CHUNK = 1024
RECORD_SECONDS = 10
WAVE_OUTPUT_FILENAME = "test.wav"
audio = pyaudio.PyAudio()
# 録音開始
stream = audio.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK)
print "recording audio..."
frames = []
threshold = 800
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print "done recording"
# 録音停止
stream.stop_stream()
stream.close()
audio.terminate()
waveFile = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
waveFile.setnchannels(CHANNELS)
waveFile.setsampwidth(audio.get_sample_size(FORMAT))
waveFile.setframerate(RATE)
waveFile.writeframes(b''.join(frames))
waveFile.close()
詳細情報については、Alexa/DuerOS との連携など、ReSpeaker 4-Mic Array for Raspberry Pi を参照してください。
Mic Array v2.0 を使用する
ハードウェア
音声の録音
- コマンドラインを使用して録音を開始します。
arecord -D plughw:1,0 -f cd test.wav # 録音、まず arecord -l を使用してカードとハードウェアを確認してください
aplay -D plughw:1,0 -f cd test.wav # 再生、まず aplay -l を使用してカードとハードウェアを確認してください
arecord -D plughw:1,0 -f cd |aplay -D plughw:1,0 -f cd # 録音と再生を同時に行います
Python を使用して録音を開始します。
ステップ 1. 以下のスクリプトを実行して Mic Array のデバイスインデックス番号を取得します。
apt install python-pip
pip install pyaudio
cd ~
nano get_index.pyステップ 2. 以下のコードをコピーして get_index.py に貼り付けます。
import pyaudio
p = pyaudio.PyAudio()
info = p.get_host_api_info_by_index(0)
numdevices = info.get('deviceCount')
for i in range(0, numdevices):
if (p.get_device_info_by_host_api_device_index(0, i).get('maxInputChannels')) > 0:
print "Input Device id ", i, " - ", p.get_device_info_by_host_api_device_index(0, i).get('name')
ステップ 3、Ctrl + X を押して終了し、Y を押して保存します。
ステップ 4、
sudo python get_index.py
を実行すると、以下のようにデバイス ID が表示されます。
Input Device id 0 - Artik530 raptor Audio: - (hw:0,0)
Input Device id 2 - ReSpeaker 4 Mic Array (UAC1.0): USB Audio (hw:1,0)
Input Device id 3 - sysdefault
Input Device id 4 - pulse
Input Device id 8 - default
- ステップ 5、
RESPEAKER_INDEX = 2
を該当するインデックス番号に変更します。Python スクリプト record.py を実行して音声を録音します。
import pyaudio
import wave
RESPEAKER_RATE = 16000
RESPEAKER_CHANNELS = 1 # ファームウェアに基づいて変更、default_firmware.bin は 1、i6_firmware.bin は 6
RESPEAKER_WIDTH = 2
# getDeviceInfo.py を実行してインデックスを取得
RESPEAKER_INDEX = 2 # 入力デバイス ID を参照
CHUNK = 1024
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"
p = pyaudio.PyAudio()
stream = p.open(
rate=RESPEAKER_RATE,
format=p.get_format_from_width(RESPEAKER_WIDTH),
channels=RESPEAKER_CHANNELS,
input=True,
input_device_index=RESPEAKER_INDEX,)
print("* 録音中")
frames = []
for i in range(0, int(RESPEAKER_RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print("* 録音完了")
stream.stop_stream()
stream.close()
p.terminate()
wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(RESPEAKER_CHANNELS)
wf.setsampwidth(p.get_sample_size(p.get_format_from_width(RESPEAKER_WIDTH)))
wf.setframerate(RESPEAKER_RATE)
wf.writeframes(b''.join(frames))
wf.close()
DOA/LEDs などの詳細については、ReSpeaker Mic Array v2.0 を参照してください。
GrovePi+ を使用する
依存関係のインストール
apt install g++ libi2c-dev
apt install python-dev
apt install python-smbus
apt install libffi-dev
apt install python-pip
pip install setuptools
pip install smbus-cffi
pip install numpy
GrovePi+ シールドを使用した Python による I2C
- ステップ 1. GitHub からファイルをダウンロードします。
cd ~
git clone https://github.com/DexterInd/GrovePi.git
- ステップ 2. ソースコード
/root/GrovePi/Software/Cpp/grovepi.cpp
を修正し、以下のように 1 行を追加します。
void GrovePi::SMBusName(char *smbus_name)
{
unsigned int hw_revision = gpioHardwareRevision();
unsigned int smbus_rev;
if(hw_revision < 4)
// タイプ 1
smbus_rev = 1;
else if(hw_revision < 16)
// タイプ 2
smbus_rev = 2;
else
// タイプ 3
smbus_rev = 3;
if(smbus_rev == 2 || smbus_rev == 3)
strcpy(smbus_name, "/dev/i2c-1");
else
strcpy(smbus_name, "/dev/i2c-0");
strcpy(smbus_name, "/dev/i2c-1"); // この行を追加して eagleye_530s の I2C を有効化
}
- ステップ 3. ソースコード
/root/GrovePi/Software/Python/grovepi.py
を修正し、以下のようにコメントアウトします。
if sys.platform == 'uwp':
import winrt_smbus as smbus
bus = smbus.SMBus(1)
else:
import smbus
# import RPi.GPIO as GPIO
# rev = GPIO.RPI_REVISION
# if rev == 2 or rev == 3:
bus = smbus.SMBus(1)
# else:
# bus = smbus.SMBus(0)
- ステップ 4. ボードをリセットするたびに、以下の 2 つのコマンドを実行します。これらを bash ファイルに入れて自動化してください。
mkdir /sys/kernel/config/device-tree/overlays/i2c
cat /boot/overlays/s5p4418-artik533-compy-i2c1.dtbo > /sys/kernel/config/device-tree/overlays/i2c/dtbo
再起動後にステップ 4 のコマンドを実行してください。
- ステップ 5. Grove-Led と Grove-Rotary Angle Sensor を以下のように GrovePi に接続します。
- ステップ 6.
grove_rotary_angle_sensor.py
を実行します。
cd ~/GrovePi/Software/Python/
python grove_rotary_angle_sensor.py
以下はコードです。
import time
import grovepi
# Grove Rotary Angle Sensor をアナログポート A0 に接続
# SIG,NC,VCC,GND
potentiometer = 0
# LED をデジタルポート D5 に接続
# SIG,NC,VCC,GND
led = 5
grovepi.pinMode(potentiometer,"INPUT")
grovepi.pinMode(led,"OUTPUT")
time.sleep(1)
# ADC の基準電圧は 5V
adc_ref = 5
# Grove インターフェースの Vcc は通常 5V
grove_vcc = 5
# 回転角の全範囲は 300 度 (0 から 300)
full_angle = 300
while True:
try:
# ポテンショメータからセンサー値を読み取る
sensor_value = grovepi.analogRead(potentiometer)
# 電圧を計算
voltage = round((float)(sensor_value) * adc_ref / 1023, 2)
# 回転角を計算 (0 から 300 度)
degrees = round((voltage * full_angle) / grove_vcc, 2)
# 回転角 (0 から 300) を基に LED の明るさ (0 から 255) を計算
brightness = int(degrees / full_angle * 255)
# LED に PWM 出力を与える
grovepi.analogWrite(led,brightness)
print("sensor_value = %d voltage = %.2f degrees = %.1f brightness = %d" %(sensor_value, voltage, degrees, brightness))
except KeyboardInterrupt:
grovepi.analogWrite(led,0)
break
except IOError:
print ("Error")
- ステップ 7. 回転角センサーを回すと、LED の明るさが変化します。また、以下のようにターミナル情報が表示されます。
[root@artik Python]# python grove_rotary_angle_sensor.py
sensor_value = 246 voltage = 1.20 degrees = 72.0 brightness = 61
sensor_value = 247 voltage = 1.21 degrees = 72.6 brightness = 61
sensor_value = 258 voltage = 1.26 degrees = 75.6 brightness = 64
sensor_value = 274 voltage = 1.34 degrees = 80.4 brightness = 68
sensor_value = 296 voltage = 1.45 degrees = 87.0 brightness = 73
sensor_value = 318 voltage = 1.55 degrees = 93.0 brightness = 79
sensor_value = 340 voltage = 1.66 degrees = 99.6 brightness = 84
sensor_value = 363 voltage = 1.77 degrees = 106.2 brightness = 90
sensor_value = 387 voltage = 1.89 degrees = 113.4 brightness = 96
他の Grove センサーについては、DexterInd Python Library を参照してください。すべてのセンサーが Eagleye 530s と互換性があるわけではありません。問題がある場合は技術サポートにお問い合わせください。
シールドを使ってみよう
リレー基板を使う
ハードウェア
ソフトウェア
- ステップ 1. 以下のコマンドを実行して I2C を有効にします。
mkdir /sys/kernel/config/device-tree/overlays/i2c
cat /boot/overlays/s5p4418-artik533-compy-i2c1.dtbo > /sys/kernel/config/device-tree/overlays/i2c/dtbo
ボードをリセットするたびに、以下の2つのコマンドを実行してください。これらを bash ファイルに入れて自動化することをお勧めします。
- ステップ 2.
i2cdetect
を実行してリレーシールドを検出します。
[root@artik ~]# i2cdetect -y -r 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
- ステップ 3. 以下のコマンドを実行して
relay_lib_seeed_test.py
を実行します。
[root@artik ~]# cd ~
[root@artik ~]# git clone https://github.com/johnwargo/Seeed-Studio-Relay-Board.git
[root@artik ~]# cd Seed-Studio-Relay-Board/
[root@artik Seed-Studio-Relay-Board]# python relay_lib_seeed_test.py
Turning all relays ON
Turning all relays OFF
Turning relay 1 ON
Turning relay 1 OFF
Turning relay 2 ON
Turning relay 2 OFF
Turning relay 3 ON
Turning relay 3 OFF
Turning relay 4 ON
Turning relay 4 OFF
詳細については、Raspberry Pi Relay Board v1.0 を参照してください。
RS232基板を使う
ハードウェア
- ステップ 1. USB ケーブルを電源に接続します。
- ステップ 2. RS232 ケーブルを RS232 シールドと PC の間に接続します。
ソフトウェア
- ステップ 1. PC 側で putty を開き、以下のように設定します。COM はデバイスマネージャーで確認したものを設定してください。この例では COM ポートは COM9 に割り当てられています。
- ステップ 2. PuTTY の設定を以下のように行います:
- 「Serial line」をステップ 3 で確認した COM ポート番号に設定します。
- COM の速度を「115200」に設定します。
- 接続タイプを「Serial」に設定します。
- セッションを「Eagleye 530s」として保存します。
- ステップ 3. 保存したセッションを選択し、「Open」ボタンをクリックします。
- ステップ 4. ユーザー名とパスワードは
root
です。 - ステップ 5. 以下のようなターミナルが表示されます。
詳細については、Raspberry Pi RS232 Board v1.0 を参照してください。
ブレイクアウトボードを使う
Raspberry Pi ブレイクアウトボードは、電源、状態インジケータライト、ボタン、汎用トランジスタ(NPN、PNP、N-MOS、P-MOS など)を提供します。Eagleye_530s と組み合わせて使用するのに適しています。
詳細については、Raspberry Pi Breakout Board v1.0 を参照してください。
FAQs
- Q1: Eagleye 530sはRaspberry Pi用のエンクロージャと互換性がありますか?
A1: はい。以下は互換性のあるリストです。
SKU | 説明 | コメント |
---|---|---|
103010002 | GrovePi+ | GrovePi+での使用を参照してください |
103030030 | Raspberry Pi Breakout Board v1.0 | シールドでの使用を参照してください |
103030029 | Raspberry Pi Relay Board v1.0 | シールドでの使用を参照してください |
103030028 | Raspberry Pi RS232 Board v1.0 | シールドでの使用を参照してください |
114990835 | Raspberry Pi HDMI LCD (7インチ) | ディスプレイは正常に動作しますが、タッチ機能は除きます。 |
- Q2: 自動起動機能を設定する方法は?
A2: 以下の画像に示されているD401ダイオードを見つけ、D401ダイオードをはんだ付けで取り外し、D401の2つのピンをはんだドットで短絡してください。
Resources
- [PDF] ARTIK™ 530s SoMモジュールデータシート
- [認証] CE証明書&レポート
- [認証] IC証明書&レポート
- [認証] FCC証明書&レポート
- [PDF] Eagleye 530sユーザーガイド
- [詳細な読み物] ARTIK™ 530s
- [詳細な読み物] Samsung ARTIK™ IoTプラットフォーム
- [詳細な読み物] 顔認識プロジェクト
技術サポート&製品ディスカッション
弊社製品をお選びいただきありがとうございます!製品の使用体験がスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルを用意しています。