[表示 : 全て 最新50 1-99 101- 201- 2ch.scのread.cgiへ]
Update time : 11/14 19:29 / Filesize : 106 KB / Number-of Response : 228
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

RISC-VマイコンK210搭載『Sipeed MAix』『M5StickV』



1 名前:774ワット発電中さん [2019/11/12(火) 07:52:44 ID:QKqsideH.net]
今、話題のRISC-Vコア、AIアクセラレータKPU内蔵マイコンK210搭載
Sipeed MAix、M5StickVの話題を扱います

64bit 400MHz RV64GCのRISC-Vコアを2コア搭載
RV64GCなので単精度、倍精度浮動小数点演算もOK
AIアクセラレータのKPU内蔵
MicroPython環境のMaixPyやArduino IDEでの開発が可能です

101 名前:774ワット発電中さん mailto:sage [2020/02/09(日) 09:45:34.06 ID:8pfKKO4u.net]
スイッチサイエンスでSipeed RISC-Vデバッガ売ってたんだね
安かったので買ってしまった
やっぱりJTAGピンが外に出てないMaixduinoでは使えない模様
ESP32で使う方法を見つけたからいいけど

使ってるチップはFT2232Dで秋月のFT2232Dモジュールより安いね

102 名前:774ワット発電中さん mailto:sage [2020/02/09(日) 09:54:18 ID:8pfKKO4u.net]
ESP32をいじってたらミスしてMaixduinoに載ってるESP32に書き込んでしまった
Maixduino用のESP32のfirmware公開されてたんだね
自分でビルドしてesptool.pyで書き込んで復活しました

firmwareはここ
https://github.com/sipeed/Maixduino_esp32_fimware

103 名前:774ワット発電中さん mailto:sage [2020/02/09(日) 10:22:12.74 ID:8pfKKO4u.net]
MaixduinoのArduinoのI2CのライブラリのWire.endTransmission()だけど
Wire.endTransmission(false);
とsendStopにfalseを指定してもきちんと働いてないようです

温度センサーモジュールのADT7410で、0x00以外のレジスタの値を読み出せない
ESP32とArduino Pro miniの互換機で試したところ正常に読み出せました

ライブラリのWire.cppを見てみたところ
TwoWire::endTransmission(bool sendStop)から
TwoWire::writeTransmission()とTwoWire::readTransmission()を呼び出してるようですが
この2つの関数でsendStopが無視されてる模様

104 名前:774ワット発電中さん mailto:sage [2020/02/09(日) 12:50:42.77 ID:8pfKKO4u.net]
自己レスです

kendryte-standalone-sdkのi2c_recv_dataを直接呼び出すことで解決しました

インクルードファイルは
#include <kendryte-standalone-sdk/lib/drivers/include/i2c.h>

int i2c_recv_data(i2c_device_number_t i2c_num, const uint8_t *send_buf, size_t send_buf_len, uint8_t *receive_buf,
size_t receive_buf_len)

i2c_numがI2CのBus番号
WireがI2C_DEVICE_0、Wire1がI2C_DEVICE_1、Wire2がI2C_DEVICE_2で
i2c_device_number_tでキャストしてあげないとエラーが出る
send_bufにi2cデバイスの読み取りたいレジスタのアドレスを格納
send_buf_lenがsend_bufのデータの大きさ
receive_bufで読み込むバッファを指定
receive_buf_lenでreceive_bufの大きさを指定

ATD7410のステータスレジスタを読み込む例はこんな感じ
uint8_t status_reg;
uint8_t reg_addr = 0x02;
i2c_recv_data((i2c_device_number_t)I2C_DEVICE_0, &reg_addr, 1, &status_reg, 1);

105 名前:774ワット発電中さん mailto:sage [2020/02/09(日) 12:58:14 ID:8pfKKO4u.net]
Arduinoからi2c_recv_data()を使うときは特に初期は必要ないようです
(おそらく、Wireのライブラリの方で初期化してる)
レジスタの内容を読み込みたい時だけ直接i2c_recv_data()を呼び出せばいいようです

106 名前:774ワット発電中さん mailto:sage [2020/02/10(月) 08:06:51.29 ID:k864Uy1H.net]
上の例ではプログラムの先の方で
同じI2Cデバイス宛てにWire.endTransmission()を呼んでたので
初期化しなくてもよかったようです
I2Cデバイスへの初めての読み込みでi2c_recv_dataを使う場合や
アドレスの違うI2Cデバイスへの読み込みでi2c_recv_dataを使う場合は
初期化をしてI2Cデバイスのアドレスを設定する必要があるようです

初期化は下記関数を使います
i2c_init(i2c_device_number_t i2c_num, uint32_t slave_address, uint32_t address_width,
uint32_t i2c_clk);

ここで
i2c_numがI2CのBus番号
WireがI2C_DEVICE_0、Wire1がI2C_DEVICE_1、Wire2がI2C_DEVICE_2で
i2c_device_number_tでキャストしてあげないとエラーが出る
slave_addressがI2Cデバイスのアドレス
address_widthがI2Cデバイスのアドレス幅で7bitもしくは10bitどちらかを指定するようです
i2c_clkがI2Cのクロック周波数です

ADT7410のI2Cアドレスが0x48だとすると初期化設定例は
i2c_init((i2c_device_number_t)I2C_DEVICE_0, 0x48, 7, Wire.getClock());

107 名前:774ワット発電中さん mailto:sage [2020/02/16(日) 08:04:36 ID:6TUPzqjA.net]
中国の新型コロナ検出AIってK210かな?
学習はクラウド使ってそうだけど。

108 名前:774ワット発電中さん mailto:sage [2020/03/09(月) 05:34:00.99 ID:9wKrufsq.net]
M5StickVとUNIT V
Groveポートが2つあればよかったのに
K210はFPIOAでピンの機能を自由に変更できるのがいいね

109 名前:774ワット発電中さん mailto:sage [2020/03/09(月) 06:05:25 ID:9wKrufsq.net]
MaixPyはSSLを使えないことを除けばかなり高機能なMicroPython実装だね
大容量のRAMを活かした仮想フレームバッファで画像を楽に扱えるのがかなりいい



110 名前:774ワット発電中さん mailto:sage [2020/03/15(日) 05:41:58.84 ID:Gm3vCHEC.net]
MicroPythonでグラフィックス扱うならMaixシリーズが一番いいみたい
本家MicroPythonやCircuitPythonのLCDライブラリはPythonで描画するので遅い
MicroPython lobo版はMicroPython自体がLCDに対応してるので対応するLCDを使うと速いが
MicroPython lobo版は直接LCDに描画するので仮想フレームバッファでイメージを扱えないし
ESP32と比べてMaixシリーズはMicroPythonでは6倍くらい速い

111 名前:774ワット発電中さん [2020/03/26(木) 09:01:33 ID:ToI4vXt0.net]
Sipeed社は良い製品を作る

112 名前:774ワット発電中さん mailto:sage [2020/04/18(土) 19:19:15 ID:I/lCD19r.net]
M5StickV手にいれたがセンサーのリセットでエラーが出る…ファーム書き換えたけど駄目だな
MaixPyでLCD、LEDを制御することはできたから単にカメラの不良かな。
最初にレンズが転がってたのが関係あんのかなあ

113 名前:774ワット発電中さん mailto:sage [2020/04/19(日) 08:17:54 ID:+GCyV03F.net]
この手の製品は初期不良交換のみなので
初期不良ならすぐに購入したお店に連絡取った方がいいよ

114 名前:774ワット発電中さん [2020/04/19(日) 09:53:16 ID:+GCyV03F.net]
>>38の部分で抜けてたのがあったので追記します
Humblesoft_GFX.cppの

元ファイルの41行目を変更
textsize_x, textsize_y);
の部分を下のように変更
textsize);

元ファイルの68行目を変更
textsize_x, textsize_y);
の部分を下のように変更
textsize);

115 名前:774ワット発電中さん mailto:sage [2020/04/19(日) 10:35:16 ID:+GCyV03F.net]
追記
41行目、68行目というのは>>38の最後の部分を追記する前の行番号です
追記後の行番号は55行目、82行目になります

116 名前:774ワット発電中さん mailto:sage [2020/04/19(日) 10:35:42 ID:+GCyV03F.net]
あとは、MaixduinoのライブラリのSipeed_ST7789.hとSipeed_ST7789.cppを
platformioのプロジェクトのsrcフォルダにコピーして名前を変更


>>38
>LCDドライバのSipeed_ST7789.hとSipeed_ST7789.cppを名前を変えてコピーして
>Adafruit_GFXからの継承ではなく、Humblesoft_GFXからの継承に改変

この部分は具体的に書くと下記のようになります


Sipeed_ST7789.hをHumblesoft_Sipeed_ST7789.hへ
Sipeed_ST7789.cppをHumblesoft_Sipeed_ST7789.cppへ


Humblesoft_Sipeed_ST7789.hの下記部分を変更
6行目の
#include <Adafruit_GFX.h>

この部分を下記のように変更
#include <Humblesoft_GFX.h>



48行目の
class Sipeed_ST7789 : public Adafruit_GFX{

この部分を下記のように変更
class Sipeed_ST7789 : public Humblesoft_GFX{

117 名前:774ワット発電中さん mailto:sage [2020/04/19(日) 10:35:58 ID:+GCyV03F.net]
Humblesoft_Sipeed_ST7789.cppの下記部分を変更

この部分を
#include "Sipeed_ST7789.h"
#include "lcd.h"
#include "sysctl.h"
#include "utils.h"

下記のように変更
#include "Humblesoft_Sipeed_ST7789.h"
#include <lcd.h>
#include <sysctl.h>
#include <utils.h>

8行目の
:Adafruit_GFX(w,h),

の部分を下記のように変更
:Humblesoft_GFX(w,h),

118 名前:774ワット発電中さん mailto:sage [2020/04/19(日) 10:43:35 ID:+GCyV03F.net]
使用するファイルは下記のようになります
全部、PlatformIOのプロジェクトのsrcに置きます

Bitmap.cpp
Bitmap.h
Humblesoft_GFX.h
Humblesoft_GFX.cpp
Fontx.h
Fontx.cpp
result.h
uni2sjis.h
uni2sjis.c
uni2sjis_tbl.c
Utf8Decoder.h
Utf8Decoder.cpp
Humblesoft_Sipeed_ST7789.h
Humblesoft_Sipeed_ST7789.cpp
main.cpp

119 名前:774ワット発電中さん mailto:sage [2020/04/23(木) 15:55:48 ID:vYxLxDSP.net]
Sipeed MaixCube is a Fully Integrated AI Development Platform Powered by Kendryte K210 RISC-V SoC
https://www.cnx-software.com/2020/04/21/sipeed-maixcube-is-a-fully-integrated-ai-development-platform-powered-by-kendryte-k210-risc-v-soc/
https://www.cnx-software.com/wp-content/uploads/2020/04/Sipeed-Maixcube-768x336.jpg
https://www.cnx-software.com/wp-content/uploads/2020/04/MaixCube-All-in-one-K210-Development-Platform-768x594.jpg



120 名前:774ワット発電中さん mailto:sage [2020/04/23(木) 15:58:04.53 ID:vYxLxDSP.net]
https://www.cnx-software.com/wp-content/uploads/2020/04/MaixCube-Pinout.jpg.webp

121 名前:774ワット発電中さん mailto:sage [2020/04/23(木) 20:40:03 ID:lYOzG5Xu.net]
M5Stack のパチモンっぽいな。

122 名前:774ワット発電中さん mailto:sage [2020/04/24(金) 00:55:02 ID:ED6ESRz6.net]
ピンが6本出てるからM5StickVより拡張性はあるっぽいね
I2CとSPI
SPIとUART
I2CとUART
なんて組み合わせが出来るんじゃない?

123 名前:774ワット発電中さん mailto:sage [2020/04/24(金) 01:08:50 ID:ED6ESRz6.net]
Groveポートもあるのか
I2C、UART、SPIの組み合わせも出来るね

SPI-MODポートのIO6、IO7、IO8はESP8266と接続すること考えてそう
(IO6がRX、IO7がTX、IO8がESP8266のEN接続用)

Arduinoも使えればかなりいいね

124 名前:774ワット発電中さん mailto:sage [2020/04/24(金) 09:23:04 ID:wnUtt6bl.net]
でもお高いんでしょう?

125 名前:774ワット発電中さん mailto:sage [2020/04/25(土) 15:11:58 ID:YNeUPGGp.net]
$24.9だから日本だと4000円くらいになっちゃうかもね
Shigezoneで扱いがあれば安く買えるかも
まだプレオーダーの段階なのでまだ先になるだろうけどね

126 名前:774ワット発電中さん mailto:sage [2020/04/25(土) 15:14:14 ID:YNeUPGGp.net]
上の記事だと
ここで注文受けてるようだぞ

https://www.seeedstudio.com/Sipeed-Maix-Cube-p-4553.html

127 名前:774ワット発電中さん mailto:sage [2020/06/03(水) 16:21:56 ID:wBlJe4uy.net]
TTGO T-Watch K210 / K210 AIOT Watches Perform Face Detection with Kendryte K210 RISC-V Processor, ESP32 WiSoC
https://www.cnx-software.com/2020/06/03/ttgo-t-watch-k210-k210-aiot-watches-perform-face-detection-with-kendryte-k210-risc-v-processor-esp32-wisoc/
https://www.cnx-software.com/wp-content/uploads/2020/06/T-Watch-K210-AIOT-Pinout.jpg

  AI Processor Kendryte K210 RISC-V Dualcore 64bit with FPU with 8MB SRAM
  Storage 16MB QSPI flash, MicroSD card socket
  Display I/F FPC connect for external display (not included)
  Camera 2MP OV2640 sensor
  Audio MAX98357A Audio codec; CVSD & SBC audio encoding
  Connectivity 2.4 GHz 802.11b/g/n WiFi 4 up to 150 Mbps, Bluetooth 4.2 BR/EDR and BLE
  Debugging USB-C port via CP2104
  Expansion
    UART, SPI, I2C, PWM, I2S
    I2C grove connector
    I/O Voltage 3.3V / 1.8V operation
  Misc Power and boot buttons; RTC
  Power Supply -5V DC/1A DC input; AXP202 PMIC
  Dimensions & Weight TBD

128 名前:774ワット発電中さん [2020/06/03(水) 16:22:26 ID:wBlJe4uy.net]
age

129 名前:774ワット発電中さん [2020/06/05(金) 14:15:18.31 ID:5la78J+m.net]
>>127
でもお高いんでしょう?



130 名前:774ワット発電中さん [2020/06/22(月) 20:38:49.53 ID:ibnC1bZx.net]
MaixduinoでオンボードのESP32をArduinoから使えたので報告します

ライブラリはこれです
https://github.com/arduino-libraries/WiFiNINA

上記ライブラリと、Maixduinoのframework-maixduinoを一部改変します

framework-maixduinoの方は
PlatformIOの方は
C:\Users\ユーザ名\.platformio\packages\framework-maixduino\variants\sipeed_maixduino
Arduino IDEの方は
C:\Users\ユーザ名\AppData\Local\Arduino15\packages\Maixduino\hardware\k210\0.3.11\variants\sipeed_maixduino
ここのpins_arduino.hを一部改変します

74行目の
#define MD_PIN_MAP(fpio) (((fpio) < 17) ? _maixduino_pin_map[(fpio)] : (fpio))

static const uint8_t _maixduino_pin_map[17] = {4, 5, 21, 22, 23, 24, 32, 15, 14, 13, 12, 11, 10, 3, 31, 30, 16};

の部分を
#define MD_PIN_MAP(fpio) (((fpio) < 22) ? _maixduino_pin_map[(fpio)] : (fpio))

static const uint8_t _maixduino_pin_map[22] = {4, 5, 21, 22, 23, 24, 32, 15, 14, 13, 12, 11, 10, 3, 31, 30, 16, 8, 9, 25, 6, 7};

に改変

131 名前:774ワット発電中さん [2020/06/22(月) 20:39:53.08 ID:ibnC1bZx.net]
続き


WiFiNINAのライブラリの方は
srcの中のutilityの中の52行の次の部分を
static uint8_t SLAVESELECT = 10; // ss
static uint8_t SLAVEREADY = 7; // handshake pin
static uint8_t SLAVERESET = 5; // reset pin

次のようにします

static uint8_t SLAVESELECT = 19; // ss pin 25
static uint8_t SLAVEREADY = 18; // pin 9 handshake pin
static uint8_t SLAVERESET = 17; // pin 8reset pin
static uint8_t NINA_GPIO0 = 18; // pin 9
#define PINS_COUNT 22

これだけです。
これでとりあえず、exampleのWiFiPingは成功しました
(PlatformIOだと先頭に下記内容を追加する必要があります)

#include <Arduino.h>
void printWiFiData();
void printCurrentNet();
void printMacAddress(byte mac[]);

132 名前:774ワット発電中さん mailto:sage [2020/06/22(月) 20:55:56.62 ID:ibnC1bZx.net]
exampleのWiFiWebClientもうまくいきました
他は試してないです

133 名前:774ワット発電中さん mailto:sage [2020/06/22(月) 21:02:06.13 ID:ibnC1bZx.net]
誤記がありました
改変するファイルのファイル名が抜けてました

正しくはこうです
WiFiNINAのライブラリの方は
srcの中のutilityの中のspi_drv.cppの52行の次の部分を
static uint8_t SLAVESELECT = 10; // ss
static uint8_t SLAVEREADY = 7; // handshake pin
static uint8_t SLAVERESET = 5; // reset pin

次のようにします

static uint8_t SLAVESELECT = 19; // ss pin 25
static uint8_t SLAVEREADY = 18; // pin 9 handshake pin
static uint8_t SLAVERESET = 17; // pin 8reset pin
static uint8_t NINA_GPIO0 = 18; // pin 9
#define PINS_COUNT 22

134 名前:774ワット発電中さん mailto:sage [2020/06/23(火) 21:53:34.85 ID:nqVjLTks.net]
WiFiWebServerを試してみたところうまく動きませんでした
NINA_GPIO0がHIGHになってないとSpiDrv::available()で1を返さないので
WiFiServer.cppのWiFiServer::available()の中で呼ばれる
server_drv.cppの中のServerDrv::availServer(_sock)が
_sockの値を取得するまえにすぐに返ってきてしまいます

NINA_GPIO0はIO32(Maixduinoの6番目のピン)に割り当てみます
なので、srcの中のutilityの中の52行のspi_drv.cppの次の部分を
static uint8_t SLAVESELECT = 10; // ss
static uint8_t SLAVEREADY = 7; // handshake pin
static uint8_t SLAVERESET = 5; // reset pin
この部分はこうなります

static uint8_t SLAVESELECT = 19; // ss pin 25
static uint8_t SLAVEREADY = 18; // pin 9 handshake pin
static uint8_t SLAVERESET = 17; // pin 8reset pin
static uint8_t NINA_GPIO0 = 6; // pin 32
#define PINS_COUNT 22

次にsrcのutilityの中のspi_drv.cppの563行目を下記のように変更してください

int SpiDrv::available()
{
return (digitalRead(NINA_GPIO0) != LOW);
}
この部分を
int SpiDrv::available()
{
// return (digitalRead(NINA_GPIO0) != LOW);
return 1;
}

135 名前:774ワット発電中さん [2020/06/23(火) 21:54:34.33 ID:nqVjLTks.net]
まとめると

WiFiNINAのライブラリはここ
https://github.com/arduino-libraries/WiFiNINA

Maixduinoで使えるように
上記ライブラリと、Maixduinoのframework-maixduinoを一部改変します

framework-maixduinoの方は
PlatformIOの方は
C:\Users\ユーザ名\.platformio\packages\framework-maixduino\variants\sipeed_maixduino
Arduino IDEの方は
C:\Users\ユーザ名\AppData\Local\Arduino15\packages\Maixduino\hardware\k210\0.3.11\variants\sipeed_maixduino
ここのpins_arduino.hを一部改変します

74行目の
#define MD_PIN_MAP(fpio) (((fpio) < 17) ? _maixduino_pin_map[(fpio)] : (fpio))

static const uint8_t _maixduino_pin_map[17] = {4, 5, 21, 22, 23, 24, 32, 15, 14, 13, 12, 11, 10, 3, 31, 30, 16};

の部分を
#define MD_PIN_MAP(fpio) (((fpio) < 22) ? _maixduino_pin_map[(fpio)] : (fpio))

static const uint8_t _maixduino_pin_map[22] = {4, 5, 21, 22, 23, 24, 32, 15, 14, 13, 12, 11, 10, 3, 31, 30, 16, 8, 9, 25, 6, 7};

に改変

136 名前:774ワット発電中さん [2020/06/23(火) 21:55:04.09 ID:nqVjLTks.net]
続き

WiFiNINAのライブラリの方は下記のように改変します
NINA_GPIO0はIO32(Maixduinoの6番目のピン)に割り当てありますが適当な使ってないピンを割り当ててください
srcの中のutilityの中の52行のspi_drv.cppの次の部分を
static uint8_t SLAVESELECT = 10; // ss
static uint8_t SLAVEREADY = 7; // handshake pin
static uint8_t SLAVERESET = 5; // reset pin
この部分はこうなります

static uint8_t SLAVESELECT = 19; // ss pin 25
static uint8_t SLAVEREADY = 18; // pin 9 handshake pin
static uint8_t SLAVERESET = 17; // pin 8reset pin
static uint8_t NINA_GPIO0 = 6; // pin 32
#define PINS_COUNT 22

次にsrcのutilityの中のspi_drv.cppの563行目を下記のように変更してください

int SpiDrv::available()
{
return (digitalRead(NINA_GPIO0) != LOW);
}
この部分を
int SpiDrv::available()
{
// return (digitalRead(NINA_GPIO0) != LOW);
return 1;
}

137 名前:774ワット発電中さん mailto:sage [2020/06/23(火) 21:59:58.58 ID:nqVjLTks.net]
https://github.com/arduino-libraries/WiFiNINA/blob/master/examples/WiFiUdpNtpClient/WiFiUdpNtpClient.ino

WiFiNINAのexampleのWiFiUdpNtpClientですが
129行目のsendNTPpacket関数の型がunsigned longなのにreturn文がないために
Maixduinoでは暴走してしまいます。
unsigned longではなくvoidにします

unsigned long sendNTPpacket(IPAddress& address) {

これを

void sendNTPpacket(IPAddress& address) {

にします

138 名前:774ワット発電中さん mailto:sage [2020/06/24(水) 18:36:09.92 ID:dOpT5/L4.net]
K210だとリッチすぎ、GD32VF103だとプアすぎ
STM32F7とかSTM32F4クラスのRISC-Vマイコンが欲しい

139 名前:774ワット発電中さん mailto:sage [2020/06/25(木) 07:04:34 ID:JzIhqSS4.net]
RISC-Vってあっちこっちから出てるけど、どのRISC-Vも同じコンパイラでコード生成できるもんなの?



140 名前:774ワット発電中さん mailto:sage [2020/06/26(金) 04:48:40 ID:LZTMupFO.net]
ArduinoやPlatformIO使う分には勝手にgccのツールチェインが入るから
そのあたりは気にすることはないね

141 名前:774ワット発電中さん mailto:sage [2020/06/26(金) 05:01:44 ID:LZTMupFO.net]
>>138
こんなのもあるよ

HiFive1 RevB
akizukidenshi.com/catalog/g/gM-15014/
1個 ¥6,600(税込)

SparkFun RED-V Thing Plus - SiFive RISC-V FE310 SoC
https://www.switch-science.com/catalog/5993/
税込単価 4,043 円

142 名前:774ワット発電中さん mailto:sage [2020/06/26(金) 06:19:53.47 ID:qkH+HUJz.net]
>>138
Longan nanoだと不足?

143 名前:774ワット発電中さん mailto:sage [2020/06/26(金) 07:55:27 ID:EhWT5Fr2.net]
>>141,142
コアの計算能力はともかくメモリが少ない。RAMが16KBや20KBじゃ8/16bitマイコン並みだし
ROMも少ないしせっかくの32bitマイコンなのにマルチメディアデータを扱ったりするのが難しい

144 名前:774ワット発電中さん mailto:sage [2020/06/26(金) 08:18:27.77 ID:LZTMupFO.net]
マルチメディアデータ扱いたければそれこそK210でいいと思うけどな
MaixbitならQVGAのLCDとカメラ付きで秋月で3000円で売ってる

Sipeed Maixbit Suit
akizukidenshi.com/catalog/g/gM-14471/
1個 ¥3,000(税込)

145 名前:774ワット発電中さん mailto:sage [2020/06/28(日) 15:04:22 ID:EJHUg9/I.net]
>>144
K210はRISC-Vお試しとしてはありなんだろうけど結構電気食いというかラズパイzeroくらい電気いるように見える
組み込み制御向けのハイパフォーマンスマイコン・・STMならSTM32F7とかSTM32F4クラス、ルネエレならRX600やRX700クラス
というかこの辺と比較してみたい

146 名前:774ワット発電中さん mailto:sage [2020/06/28(日) 15:48:23.85 ID:vtJU8P9w.net]
>>145
そこまで電気食わないよ
触っても全然熱くないというかほとんど温度上昇感じない
Cortex-M7が視野に入ってるならK210を使ってもいいはず
Cortex-M7を使ったTeensy 4.0なんてRaspberry Pi Zeroより速いんだから

147 名前:774ワット発電中さん mailto:sage [2020/06/28(日) 15:52:16.34 ID:vtJU8P9w.net]
ちなみにMHzあたりの性能はK210よりCortex-M7の方が上
K210は64bitというだけでそこまでリッチなコアじゃないよ
Arduino計測すると性能的にはクロックも高くてMHzあたりの性能も高いTeensy 4.0の方が上
ただ、MicroPythonで計算するとK210の方が性能出るんだよね

148 名前:774ワット発電中さん mailto:sage [2020/06/28(日) 16:33:31.51 ID:vtJU8P9w.net]
Teensy 4.0はNXP iMXRT1062というマイコン使っててCPUコアはCortex-M7の600MHz

149 名前:774ワット発電中さん mailto:sage [2020/06/28(日) 17:10:26.47 ID:vtJU8P9w.net]
Dhrystone 2.1の結果はこんな感じ

Maixduino(K210 RISC-V RV64GC 400MHz)
Dhrystone/s : 1338079.0
DMIPS     : 761.5703
DMIPS/MHz  : 1.903926

Teensy 4.0(iMXRT1062 Cortex-M7 600MHz)
Dhrystone/s : 2690341.8
DMIPS     : 1531.2133
DMIPS/MHz  : 2.552022



150 名前:774ワット発電中さん mailto:sage [2020/06/28(日) 19:11:19.70 ID:EJHUg9/I.net]
>>146-178
サンキュ。そうでもないのか。ググると出てきたデータシートを見てみたら
> 2.3 Power SuppliesSupply
> Core 0.9V VDD 0.9V Max 2000mA
とか書いてあったから結構食うのかと思った
買ってみるかなぁ・・・もっとも秋月は土日閉まっているから別のルートを考える必要があるが

151 名前:774ワット発電中さん mailto:sage [2020/06/28(日) 19:49:46.61 ID:vtJU8P9w.net]
買うのか
STM32F7やRX700使うのかと思った

MaixduinoはWiFiが使える代わりにJTAGの端子が出てないのでデバッガが使えない
MaixbitならJTAGの端子は出てる

MaixbitやMaixduinoならShigezoneでも売ってるよ
https://www.shigezone.com/?product=maix-bit_set
5月30日から東京ラジオデパート3Fの店舗が再開してるらしい
土日は11:00からみたい
営業してるかどうか問い合わせてみたら?

152 名前:774ワット発電中さん mailto:sage [2020/06/28(日) 21:31:31.26 ID:EJHUg9/I.net]
>>151
あくまで評価用だし
RX72Nはすでに買っている
STM32F7はどれにしようか迷い中

世の中ARMだらけだけどアセンブラも考慮するならRXは良くできていると思う

153 名前:774ワット発電中さん mailto:sage [2020/06/29(月) 08:08:27.35 ID:OLhfdQAp.net]
K210について調べていたけどハードウェアマニュアル的な資料が見あたらない
割り込みやレジスタの使い方とか何処に書いてあるのだろうか。データシートも公式にはなさそうだし
まさか初期のSPRESENSEみたいにSDKを調べろと?

154 名前:774ワット発電中さん mailto:sage [2020/06/29(月) 18:16:27 ID:lbnvmwx/.net]
>>151
1Fに移転してるよ。

155 名前:774ワット発電中さん mailto:sage [2020/06/29(月) 20:12:39 ID:SYPmVIIF.net]
>>153
資料はここにあるのくらいしかないかもね

https://dl.sipeed.com/MAIX/SDK/Document

156 名前:774ワット発電中さん mailto:sage [2020/06/30(火) 18:54:46.51 ID:RxJbXPgH.net]
>>155
マジか。となるとSDKにない使い方は難しいわけか
GD32VF103のマニュアルはそれなりに書いてあるようだ
うーむ、難しい・・

157 名前:774ワット発電中さん mailto:sage [2020/06/30(火) 20:32:29.78 ID:X3AZeJaJ.net]
GD32VF103を作ってるGigaDeviceはSTM32の互換チップ作ってるメーカーだったりする

互換チップが次々と生まれる中国、半導体業界の新たな潮流
https://eetimes.jp/ee/articles/2001/28/news032_2.html

ArmとRISC-V、両輪で製品拡充を目指すGigaDevice
https://eetimes.jp/ee/articles/2002/28/news077.html

158 名前:774ワット発電中さん mailto:sage [2020/06/30(火) 21:19:41.61 ID:j/lrpME7.net]
>>157
それは知っている。組み込みマイコンだからかフラッシュプログラマを作るための資料も用意されているようだ
個人的にGD32VF4とか出てきたらなかなかおもしろそう。ペリフェラルもいっぱいあるし
GD32VF103にSRAM外付けも考えたけどバーストモードがないみたいで断念(STM32F103にはある)

159 名前:774ワット発電中さん mailto:sage [2020/07/04(土) 05:39:53 ID:b94zB0sM.net]
>>135-137の内容をまとめてみました

ArduinoでMaixduinoのオンボードWiFiを使う方法
https://pastebin.com/h1QxymDr



160 名前:774ワット発電中さん [2020/08/25(火) 06:58:22.62 ID:IDPQMyyU.net]
Sipeed Maix Amigo is a Portable 64-bit RISC-V AI Development Kit with Display and Cameras
https://www.cnx-software.com/2020/08/24/sipeed-maix-amigo-portable-64-bit-risc-v-ai-development-kit-display-cameras/

https://www.cnx-software.com/wp-content/uploads/2020/08/Sipeed-Maix-Amigo.jpg

  SoC Kendryte K210 Dual-core 64-bit RISC-V (RV64GC) processor with FPU @ 400 MHz
     (overclockable to 500MHz),
     8MB SRAM,
     built-in AI accelerators for video and audio
  Storage 16MB Flash, MicroSD card slot up
  Display 3.5-inch TFT capacitive touch screen display with 480×320 resolution
  Camera
    VGA front-facing camera up to 30 fps (GC0328 sensor)
    VGA rear camera up to 60 fps (OV7740 sensor)
  Audio 6+1 microphone array
  USB 1x USB Type-C port for power and programming
  Expansion
    3x Grove ports with I2C, GPIO, etc…
    3x 8-pin SP-MOD headers with GPIOs, 3.3V, and GND signals;
     compatible with ESP-01 ESP8266 WiFi module, PSRAM modules, etc…
  Sensor Accelerometer
  Misc Reset button, 3x function buttons, 3x LEDs
  Battery 520 mAh Lithium battery
  Power Supply Via USB-C port
  Dimensions 104.3 x 63.3 x 16.5mm

161 名前:774ワット発電中さん mailto:sage [2020/09/04(金) 08:39:02 ID:uQbju8+V.net]
スイッチサイエンスでMaixcube売ってるんだな

Maixcube
https://www.switch-science.com/catalog/6407/
税込単価 4,433 円
公開日 2020年8月24日

162 名前:774ワット発電中さん [2020/10/08(木) 22:13:49.93 ID:OHqFEtj6.net]
MaixduinoでArduinoでボードライブラリ0.3.11でカメラが使えない不具合について
別のスレでMaixduinoでカメラが使えないと指摘されたので
0.3.9と0.3.11のカメラのライブラリを比較したところ
Camera.h
79行目
virtual void setRotation(uint8_t rotation) = 0;
ここだけを中途半端にsetRotaionからsetRotationに修正してあってそれが原因でエラーが出てる模様


下記も修正するとうまくいく
Sipeed_OV2640.h
60行目
virtual void setRotaion(uint8_t rotation);
これを下記に修正
virtual void setRotation(uint8_t rotation);

Sipeed_OV2640.cpp
724行目
void Sipeed_OV2640::setRotaion(uint8_t rotation)
これを下記に修正
void Sipeed_OV2640::setRotation(uint8_t rotation)

163 名前:774ワット発電中さん mailto:sage [2020/10/08(木) 23:02:15.47 ID:OHqFEtj6.net]
新しいMaixduinoはカメラがGC0328に置き換わってるようです
その場合はライブラリは下記のものに差し替える必要があるようです
https://github.com/fukuen/Maixduino_GC0328

164 名前:774ワット発電中さん mailto:sage [2020/10/10(土) 05:49:51.24 ID:oYFPVsFX.net]
>>160
でもお高いんでしょう?

165 名前:774ワット発電中さん mailto:sage [2020/10/14(水) 13:08:07.96 ID:D6Wnc/Bi.net]
>>163
別スレでトラブっていた者です。
いろいろ試行錯誤したのですが、
結局のところライブラリ差替えだけではサンプルプログラムはまともには動かず、
結局OV2640のカメラを買って取り替えるはめになりました。

166 名前:774ワット発電中さん mailto:sage [2020/10/17(土) 18:01:40.27 ID:Ga96/P+h.net]
>>165
OV2640は単体で売ってるものなの?

スイッチサイエンスでは取り扱いがあったようだけど、在庫0だし次回入荷も未定

Sipeed OV2640 カメラモジュール
https://www.switch-science.com/catalog/5711/

167 名前:774ワット発電中さん mailto:sage [2020/10/17(土) 19:48:10.62 ID:VcGByFE+.net]
>>166
秋月のこれを買いました
OV2640使用200万画素カメラ
https://akizukidenshi.com/catalog/g/gM-14926/

168 名前:774ワット発電中さん [2020/10/24(土) 16:22:11.44 ID:R5V2Ewvn.net]
Maixduinoでbusyboxが動作したのでその方法を書きます

busyboxしか動作しないのでできることは限られます
全く実用的ではないです
あくまでMaixduino上でLinuxが動くという実験になります
MaixシリーズならMaixduino以外でも動作すると思われます


Maixduinoでbusyboxを使う
https://pastebin.com/uTtmnx71

busyboxでawkを追加できるので簡単なテストプログラムを用意してみました
https://pastebin.com/qgEHT9m5

buildrootのbusyboxにプログラムを追加する
https://pastebin.com/gXFxieJa


備考
ファイルシステムがRAMディスクなので
Maixduinoを再起動するとMaixduinoで作成したファイルが全部消えるので要注意です

169 名前:774ワット発電中さん mailto:sage [2020/10/24(土) 20:28:57.05 ID:R5V2Ewvn.net]
今度はArduinoでの話ですが
MaixシリーズのArduinoではデフォルトのオプションでは
double型の演算がソフトウェアエミュレーションで実行されることを確認しました

whetstoneをArduinoで動くようにしてMaixduinoでも計測してみたのですが
busyboxで計測したものと比べて
MaixduinoのArduinoでは非常に遅い結果となりました

PlatformIOでビルドしてできるfirmware.elfをobjdumpで
逆アセンブルして確認したのですが
どうやらMaixシリーズのArduinoのデフォルトのオプションでは
double型の演算はFPUの命令を使わずに、ソフトウェアエミュレーションで演算してるようです
FPUの命令を使わずに浮動小数点演算のソフトウェアエミュレーションの関数を呼び出してます

PlatformIOはplatformio.iniでbuild_flagsとbuild_unflagsを指定することで
コンパイラオプションを指定できるのでFPU命令を使用するようにならないか試してみました

K210のツールチェインのgccやg++ではデフォルトで
--with-abi=lp64fと--with-arch=rv64imafcのオプションが付いてるようです
つまり、ハードウェアでdouble型に対応しないRISC-V用のABIとアーキテクチャが指定されています

rv64imafcは64bitRISC-Vで乗除算命令、atmic命令、単精度浮動小数点命令、縮小命令に対応してものになります
K210は倍精度浮動小数点演算に対応しているので、rv64imafdcもしくはrv64gcが指定できるはずです
lp64fは関数の呼び出しでfloat型のパラメーターや戻り値をFPUのレジスタで受け渡して
double型のパラメーターや戻り値は整数レジスタで受け渡しをするABIです



170 名前:774ワット発電中さん mailto:sage [2020/10/24(土) 20:29:31.02 ID:R5V2Ewvn.net]
いろいろ試したところPlatformIOのplatformio.iniでオプションを
下のように指定するとコンパイラがFPU命令を生成するようになりました

build_unflags = -march=rv64imafc
build_flags = -mabi=lp64f -march=rv64gc

objdumpの逆アセンブルで確認してdouble型のFPU命令が生成されていることを確認しました


-mabi=lp64fの代わりに-mabi=lp64dも試してみましたが
コンパイルかリンクでエラーが出てビルドが成功しませんでした

また、デフォルトではサイズ優先最適化の-Osが付いているので
速度優先にしたい場合は-O2や-O3を指定して
build_unflags = -Os -march=rv64imafc
build_flags = -O2 -mabi=lp64f -march=rv64gc
または
build_unflags = -Os -march=rv64imafc
build_flags = -O3 -mabi=lp64f -march=rv64gc
のように指定した方がサイズは少し大きくなりますが実行速度は速くなります

PlatformIOのplatformio.iniでオプションを
build_unflags = -Os -march=rv64imafc
build_flags = -O3 -mabi=lp64f -march=rv64gc
このようにすることでWhetstoneの結果がかなり改善されました

171 名前:774ワット発電中さん mailto:sage [2020/10/27(火) 21:54:01.70 ID:3FNQlp8P.net]
下記のようにAruino IDEでコンパイラオプションを変更して
Maixduinoでdhrystoneとwhetstoneを実行してみました
(オプションを変更したら一度ソースファイルすべてを保存して保存日時を更新してください、
そうしないと再ビルドされないかもしれません)

オプション変更前(-mabi=lp64f -march=rv64imafc -Os)

dhrystone
Microseconds for one run through Dhrystone: 1.5
Dhrystones per Second: 650801.5

whetstone
Loops: 7000, Iterations: 1, Duration: 23.251999 sec.
C Converted Double Precision Whetstones: 30.1 MIPS


オプション変更後(-mabi=lp64f -march=rv64imafc -O2)

dhrystone
Microseconds for one run through Dhrystone: 0.8
Dhrystones per Second: 1279344.9


whetstone
Loops: 50000, Iterations: 1, Duration: 23.533020 sec.
C Converted Double Precision Whetstones: 212.5 MIPS


大幅に実行速度が速くなりました


Arduino IDEでMaixシリーズのコンパイラオプションを変更する方法はこちらです
(自己責任でお願いします)
https://pastebin.com/E66j9e7f

172 名前:774ワット発電中さん mailto:sage [2020/10/27(火) 21:55:22.45 ID:3FNQlp8P.net]
DhrystoneとWhetstoneのソースコードはこちらです

Dhrystone
Arduino互換機用Dhrystone 2.1のソースコード(PlatformIO IDE用)

main.cpp
https://pastebin.com/r4apdxaA

mylib.cpp
https://pastebin.com/MRkdRitB

dhry.h
https://pastebin.com/cwTrL2Ex

dhry_1.c
https://pastebin.com/n2AbNiRc

dhry_2.c
https://pastebin.com/TusHM9X6



Whetstone.cのArduino互換機用のソース(PlatformIO IDE用)
main.cpp
https://pastebin.com/AfdU9rbi

mylib.cpp
https://pastebin.com/LqFD9GBW

whetstone.c
https://pastebin.com/x6HFC051



ターミナル上で小文字の"s"キーを押すとスタートします

Arduino IDEでもmain.cppを.inoファイルにすることで
そのままで動作します

173 名前:774ワット発電中さん mailto:sage [2020/10/29(木) 22:06:51.88 ID:plAqF9yH.net]
温度センサーのADT7410とADT7310のMaixシリーズ用のArduinoのスケッチです
以前、MaixPy用のみを投稿しててArduino用を投稿してなかったので今更ですが投稿します

ADT7410はI2C、ADT7310はSPIで動作します
ともに秋月で税込み500円で売ってます
https://akizukidenshi.com/catalog/g/gM-06675/
https://akizukidenshi.com/catalog/g/gM-06708/


これらのスケッチは気温を5秒おきにシリアルとLCDに表示するだけのスケッチです


MaixシリーズのArduino用のADT7410のスケッチ

https://pastebin.com/w75GcEVf


MaixduinoではSDA、SCLと書かれてるピン
Maixduino以外の機種ではSDAが31番ピン、SCLが30番ピンです

MaixシリーズではWire.endTransmission()のsendStopが無視されてしまうようで
ADT7410の0x00以外のレジスタの値が読み込めませんでした
一部でkendryte-standalone-sdkのライブラリを直接使うことで
ADT7410の0x00以外のレジスタの値を読み込んでます

174 名前:774ワット発電中さん mailto:sage [2020/10/29(木) 22:09:57.69 ID:plAqF9yH.net]
MaixduinoのArduino用のADT7310のスケッチ
MaixシリーズのMaixduino以外の機種ではpinCSの値を変更してください

https://pastebin.com/FCBqYfFq


ADT7310はMaixduinoの
IO21ピンにCS    
IO22ピンにMISO
IO23ピンにSCK
IO24ピンにMOSI
を接続してみました

Maix BitなどのMaixシリーズのMaixduino以外の機種は
21番ピンにCS
22番ピンにMISO
23番ピンにSCK
24番ピンにMOSI
になると思います

SPI.beginをパラメーター無しで呼び出すと
デフォルトではK210のピン番号で
MISOが26番ピン、SCKが27番ピン、MOSIが28番ピンCSは指定無しになりますが
MaixduinoのピンソケットにはK210のそれらのピンが出てないため
SPI.beginでパラメーターを指定して上のようにSPIのピンを
Maixduinoのピンソケットに出てるピンに変更しました

175 名前:774ワット発電中さん mailto:sage [2020/10/29(木) 22:19:09.76 ID:plAqF9yH.net]
いつのまにか秋月でMaixduinoを扱いだしたようです


Maixduino Suit Development Board
https://akizukidenshi.com/catalog/g/gM-15550/
1個 ¥4,100(税込)

176 名前:774ワット発電中さん mailto:sage [2020/10/31(土) 10:47:56.09 ID:PoIv2v2t.net]
Sipeed MaixシリーズのArduino用でRISC-V RV64GC用の
インラインアセンブラを使った簡単なプログラムを書いてみました

MaixシリーズのLCDに簡単な図形を表示するプログラムです
Maixduinoで動作確認しました
Arduino IDE用です


Sipeed MaixシリーズのArduino用のRISC-V RV64GCインラインアセンブラ デモプログラム
https://pastebin.com/UTVk6LsY

177 名前:774ワット発電中さん mailto:sage [2020/10/31(土) 16:46:28.16 ID:PoIv2v2t.net]
>>176をPlatformIO IDE、Arduino IDEどちらでもビルドできるように修正しました


Sipeed MaixシリーズのArduino用のRISC-V RV64GCインラインアセンブラ デモプログラム(PlatformIO IDE対応版)

https://pastebin.com/Yih6K59b


PlatformIO IDEでビルドする場合はplatformio.iniに
下記オプションのいずれかを指定してください

build_unflags = -march=rv64imafc
build_flags = -mabi=lp64f -march=rv64gc

build_unflags = -Os -march=rv64imafc
build_flags = -O2 -mabi=lp64f -march=rv64gc

build_unflags = -Os -march=rv64imafc
build_flags = -O3 -mabi=lp64f -march=rv64gc



Arduino IDEでビルドする場合は下記のやり方でオプションを変更してください
(オプション変更に関しては自己責任でお願いします)

https://pastebin.com/E66j9e7f

178 名前:774ワット発電中さん mailto:sage [2020/11/01(日) 12:25:15.88 ID:Ggm+nbqY.net]
MaixシリーズのArduinoでBME280をI2Cで使ってみました

SparkFunのBME280ライブラリがそのまま使えます

SparkFunのBME280ライブラリはここにあります
https://github.com/sparkfun/SparkFun_BME280_Arduino_Library


単にLCDとSeralに温度、湿度、気圧を表示するだけのものです


BME280のサンプルスケッチ
https://pastebin.com/bFk36iGX


スケッチではBME280のI2Cアドレスは0x76にしてあります
BME280のI2Cアドレスに合わせて変更してください


ADT7410ではkendryte-standalone-sdkのI2Cのライブラリを
直接叩く必要がありましたが
BME280は一般的なArduinoと全く同じやり方で扱えます
たいていのI2CデバイスはBME280と同様に一般的なArduinoと同じ方法で使えると思います

MaixduinoではSDA、SCLと書かれてるピン
Maixduino以外の機種ではSDAが31番ピン、SCLが30番ピンです

179 名前:774ワット発電中さん mailto:sage [2020/11/01(日) 18:43:26.31 ID:Ggm+nbqY.net]
>>176,>>177のプログラムでオプションを変更したくないという方のために
RISC-Vのインライン アセンブラの命令を倍精度浮動小数点命令を使っていたところを
すべて単精度浮動小数点命令にしたバージョンを作ってみました
これならArduino IDEやPlatformIOでオプションを変更せずに
デフォルトのオプションでビルドできます


Sipeed MaixシリーズのArduino用のRISC-V RV64GCインラインアセンブラ デモプログラム(単精度浮動小数点版)

https://pastebin.com/sKqhdLq1



180 名前:774ワット発電中さん mailto:sage [2020/11/03(火) 18:09:27.88 ID:91AZLfsn.net]
>>176,177,179の修正版をつくりました

プログラムがdummy_func01を呼ばないと動作しないという変な挙動を示していたのは
アセンブラのプログラムが悪かったようです

gccのインラインアセンブラの入力オペランドで割り当てられるレジスタが
関数呼び出しで保存されないレジスタだったため
関数呼び出しで破壊されてしまうのが原因の一つでした

また、call擬似命令で暗黙的に使われるraレジスタを
インラインアセンブラで破壊されるレジスタのリストに加えてなかったのがもう一つの原因でした
これらが原因で変な挙動を示していたようです

これらを修正したバージョンを作ってみました
インラインアセンブラの入力オペランドに割り当てられるレジスタの内容は
アセンブラプログラムの最初のところで
スタックに確保したメモリに保存するようにしました

また、インラインアセンブラの入力オペランドに指定した変数は
割り当てられたレジスタに値を戻してからインラインアセンブラを終了しないと
インラインアセンブラの後に同じ関数内でその変数が使えないようなので
(これもインラインアセンブラ内の関数呼び出しでレジスタの内容が破壊されるのが原因)
アセンブラプログラムの最後に入力オペランドに割り当てられたレジスタに値を戻すようにしました
そしてインラインアセンブラで破壊されるレジスタのリストにra (x1の別名)レジスタを追加しました

181 名前:774ワット発電中さん mailto:sage [2020/11/03(火) 18:13:19.69 ID:91AZLfsn.net]
>>176,>>177
これらの修正版はこちらです(Arduino IDEとPlatformIO IDEに対応してます)

Sipeed MaixシリーズのArduino用のRISC-V RV64IMAFCインラインアセンブラ デモプログラム(単精度浮動小数点修正版)
https://pastebin.com/LSG7pGwb

こちらは倍精度浮動小数点命令を使用せず単精度浮動小数点命令のみなので
Arduino IDEやPlatformIO IDEでオプションを変更しなくてもビルドできます

182 名前:774ワット発電中さん mailto:sage [2020/11/03(火) 18:14:24.68 ID:91AZLfsn.net]
>>179の修正版はこちらです(こちらもArduino IDEとPlatformIO IDEに対応してます)
Sipeed MaixシリーズのArduino用のRISC-V RV64GCインラインアセンブラ デモプログラム(倍精度浮動小数点修正版)
https://pastebin.com/gvsybiG0

こちらは倍精度浮動小数点命令を使用するのでオプションの変更が必要です
(Arduino IDE、PlatformIO IDEともにデフォルトのオプションが-march=rv64imafcなため
アセンブラが倍精度浮動小数点命令でエラーを出すため。
-march=rv64imafdcもしくは-march=rv64gcを指定する)

PlatformIO IDEでビルドする場合はplatformio.iniに
下記オプションのいずれかを指定してください

build_unflags = -march=rv64imafc
build_flags = -mabi=lp64f -march=rv64gc

build_unflags = -Os -march=rv64imafc
build_flags = -O2 -mabi=lp64f -march=rv64gc

build_unflags = -Os -march=rv64imafc
build_flags = -O3 -mabi=lp64f -march=rv64gc

Arduino IDEでビルドする場合は下記のやり方でオプションを変更してください
(オプション変更に関しては自己責任でお願いします)

https://pastebin.com/E66j9e7f

183 名前:774ワット発電中さん mailto:sage [2020/11/03(火) 18:18:33.19 ID:91AZLfsn.net]
逆でした>>181>>179の修正版

184 名前:774ワット発電中さん mailto:sage [2020/11/03(火) 18:20:05.98 ID:91AZLfsn.net]
>>182>>176,177の修正版

185 名前:774ワット発電中さん mailto:sage [2020/11/03(火) 18:36:06.14 ID:91AZLfsn.net]
>>178に関してですが
Windowsの場合のArduino IDEのライブラリフォルダは下記になります
メニューのツール→ライブラリの管理で入れるとカスタムライブラリに入ります

カスタムライブラリ
C:\Users\username\Documents\Arduino\libraries

あらゆるボード用のライブラリ
C:\Program Files (x86)\Arduino\libraries

Maixシリーズ用のライブラリ
C:\Users\username\AppData\Local\Arduino15\packages\Maixduino\hardware\k210\0.3.11\libraries

usernameの部分は各自のユーザ名に読み替えてください

186 名前:774ワット発電中さん [2020/11/04(水) 00:26:20.07 ID:UWtXrnOH.net]
M5 Stack Core2の話題ってここでいいの?

187 名前:774ワット発電中さん mailto:sage [2020/11/04(水) 08:14:20.52 ID:igpM2pWF.net]
>>186
M5Stack Core 2はESP32というマイコンモジュールを使ってるのでこっちでは?

格安wifiモジュール「esp8266」「esp32」 5個目
rio2016.5ch.net/test/read.cgi/denki/1594364030/

188 名前:774ワット発電中さん mailto:sage [2020/11/04(水) 08:16:28.91 ID:igpM2pWF.net]
>>185の追記

Microsoft StoreからArduino IDEを入れた人のMaixシリーズ用のライブラリはここ
C:\Users\username\Documents\ArduinoData\packages\Maixduino\hardware\k210\0.3.11\libraries


Microsoft StoreからArduino IDEを入れた人のコンパイラオプション変更のためのplatform.txtはここです
(コンパイラオプション変更は自己責任でお願いします)
C:\Users\username\Documents\ArduinoData\packages\Maixduino\hardware\k210\0.3.11\platform.txt

189 名前:774ワット発電中さん mailto:sage [2020/11/07(土) 13:56:04.98 ID:s0yOLKt3.net]
IOエクスパンダのMCP23017をArduinoで使ってみました

ICは秋月で110円で買えます
https://akizukidenshi.com/catalog/g/gI-09486/
ボードはスイッチサイエンスで990円で買えます
https://www.switch-science.com/catalog/1650/


MCP23017はI2Cで制御します。
接続はMaixduinoではSDA、SCLと書かれてるピン
Maixduino以外の機種ではSDAが31番ピン、SCLが30番ピンです

https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library
AdafruitのMCP23017用のライブラリを一部修正することで
Maixシリーズでそのまま使えます

Adafruit_MCP23017.cppの25行目から30行目を変更する

#ifdef __AVR
#include <avr/pgmspace.h>
#elif defined(ESP8266)
#include <pgmspace.h>
#endif
#include "Adafruit_MCP23017.h"

この部分を下記のように修正する

#ifdef __AVR
#include <avr/pgmspace.h>
#elif defined(ESP8266)
#include <pgmspace.h>
//#endif
#elif defined(K210)
#include <avr/pgmspace.h>
#endif
#include "Adafruit_MCP23017.h"

Adafruitのこのライブラリを使うことで
ArduinoのdigitalWriteやdigitalReadのような関数で操作できます。


Adafruitのライブラリを使ったMaixシリーズのMCP23017用の簡単なLチカです
GPA0とGPB0にLED、GPA7にタクトスイッチを接続してあることを想定してます
アドレスは0x21になってますが自分の設定に合わせて変更してください
https://pastebin.com/iaHfktTf


ライブラリは上記URLからダウンロードできます。
緑色のCodeと書かれてる部分をクリックすると
一番下に「Download ZIP」と出てくるのでそれをダウンロードすればいいです
上記のように修正して手動で下記フォルダにフォルダごとコピーしてください。
C:\Users\username\Documents\Arduino\libraries
(usernameの部分は自分のユーザ名に読み替えてください)

ライブラリはArduino IDEの「ツール」→「ライブラリ」の管理からも入れられます
Adafruit MCP23017 Arduino Libraryを検索してください。
その場合、ライブラリは下記フォルダに入ります
上記のようにそれを修正します
C:\Users\username\Documents\Arduino\libraries
(usernameの部分は自分のユーザ名に読み替えてください)



190 名前:774ワット発電中さん mailto:sage [2020/11/15(日) 15:15:12.02 ID:teZ1TfP2.net]
16ch、12bitのPWMコントローラーのPCA9685をArduinoで使ってみました

秋月やスイッチサイエンスでモジュールキットが購入できます

I2C接続16チャンネル サーボ&PWM駆動キット
https://akizukidenshi.com/catalog/g/gK-10350/

PCA9685搭載16チャネル PWM/サーボ ドライバー (I2C接続)
https://www.switch-science.com/catalog/961/


https://github.com/adafruit/Adafruit-PWM-Servo-Driver-Library
ここのAdafruitのPCA9685用のライブラリがそのまま使えます


MaixduinoはSDA、SCLと書かれてるピンに接続
Maixduino以外では31ピンにSDA、30ピンにSCLを接続します


簡単なLチカのデモプログラムを作ってみました
全チャンネルにLEDがシンク接続されていることを想定しています
(setPWMが使いにくいのでデューティ比で指定できる関数を作ってみました)
PCA9685のI2Cアドレスは0x40に設定されているので自分のものに合わせて変更してください
https://pastebin.com/Ceq6EjTW

このようにMaixシリーズでも簡単にI2Cデバイスが使えます
ADT7410のようなkendryte-standalone-sdkを
使わないといけなくなるケースはまれなケースのようです。
I2CデバイスはSCL、SDAとGND、電源を接続するだけで扱えるのが便利ですね

191 名前:774ワット発電中さん mailto:sage [2020/11/15(日) 23:28:07.29 ID:teZ1TfP2.net]
MaixduinoのオンボードのESP32に間違ってESP32のArduinoのスケッチなどを書き込んでしまった場合
下記のサイトからMaixduinoのESP32用のファームウエアをダウンロードできます
書き込み方法も書かれてますので参照してください
https://github.com/sipeed/Maixduino_esp32_fimware/releases

192 名前:774ワット発電中さん mailto:sage [2020/11/15(日) 23:37:11.79 ID:teZ1TfP2.net]
XuanTie C906 based Allwinner RISC-V processor to power $12+ Linux SBC’s
https://www.cnx-software.com/2020/11/09/xuantie-c906-based-allwinner-risc-v-processor-to-power-12-linux-sbcs/

193 名前:774ワット発電中さん mailto:sage [2020/11/20(金) 02:00:51.45 ID:H+nY04Tn.net]
でも中華マイコンなんて使わない

194 名前:774ワット発電中さん [2020/11/21(土) 09:43:35.91 ID:8Rne8laZ.net]
RISC-Vは中華の救世主だから

195 名前:774ワット発電中さん mailto:sage [2020/11/26(木) 18:07:52.53 ID:5n6CcI41.net]
m5stackについて質問したいけど、誘導していただけませんか?

196 名前:774ワット発電中さん mailto:sage [2020/11/26(木) 18:10:00.33 ID:/cXFFSG9.net]
>>195
格安wifiモジュール「esp8266」「esp32」 5個目
https://rio2016.5ch.net/test/read.cgi/denki/1594364030/

197 名前:774ワット発電中さん mailto:sage [2020/11/26(木) 19:27:53.21 ID:3q8o3OmG.net]
素早いレス!
有り難うございます!
>>196

198 名前:774ワット発電中さん [2020/12/04(金) 23:36:55.10 ID:Dxdew/7s.net]
RISC-Vが過疎ってるからって関係ない板にまでコピペしまくるなよな。

199 名前:774ワット発電中さん mailto:sage [2020/12/05(土) 05:29:06.67 ID:rJBcPVxC.net]
おまえらRISC-V飽きたの?



200 名前:774ワット発電中さん mailto:sage [2020/12/05(土) 05:50:15.23 ID:ChAkp9KC.net]
キチガイが自作PC板で暴れてるな。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<106KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef