问题标签 [arduino-due]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
703 浏览

arduino - 使用 arm-none-eabi-g++ 验证 Arduino Due

我对运行时在幕后运行的命令感兴趣

我问这个是因为我正在使用 Arduino Due 板,虽然我可以使上面的命令工作并成功验证我的代码,但它会短暂打开 Arduino GUI,这有点惹恼我的 Continuos 集成系统,因为 OS X 机器运行它是无头的。从 CI 系统解决这个问题很痛苦,所以我只是想弄清楚幕后运行的命令。这样我就可以使用 g++ 或类似的方法验证我的程序,没有窗口提示。

到目前为止,我发现 arduino 验证命令使用arm-none-eabi-g++,因为这是 Arduino Due 等 SAM 板的编译器。我还添加了所有这些参数:

我在这里找到的。

但是对于我使用的一些低级变量和函数,我会遇到错误,例如:

所以我想还有一些东西要包括在内,我只是不知道是什么。当 arduino 验证代码时,幕后运行了哪些命令?

我真的很感谢你的帮助。

干杯,拉奎尔

0 投票
1 回答
116 浏览

arrays - 在 Arduino Due 上执行大量的图像处理/路径规划任务

所以,我想做一个能够穿越未知迷宫的机器人。提供给它的唯一信息是迷宫的单色位图图像,机器人必须从中识别起点和终点,它必须将其携带的球装在其中的盒子,并规划它的路径迷宫。它必须从迷宫的那个 bmp 图像中完成所有这些工作。这是指向迷宫的示例位图图像的链接。

由于完成所有这些处理,我将使用 arduino。目前,我已将此 BMP 读入 2D 字符数组,链接到字符数组,从中制作连接图/图,以便可以在其上应用路径规划算法(Dijkstra 或广度优先搜索)。

然而问题如下,这个位图的大小是 96x56 像素。这意味着连接图/图的大小将是 [5376][5376],非常大。要声明这么大的数组将需要以 MB 为单位的内存,而 arduino 的 SRAM 只有 96KB。

我应该怎么办?请建议。我只是电气工程一年级的学生,所以对所有这些东西都不太了解。我想到的一件事是删除相同的行(请参阅二维数组)。但是后来我想,它本身将需要大量的处理能力,因为我必须逐个元素地将每一行与其他行进行比较。这里的问题基本上是内存和处理限制。

我将不胜感激!

0 投票
1 回答
77 浏览

c++ - 函数指针问题 C++ / Arduino

我有一个带有一个类和几个声明和非静态成员函数的头文件,如下所示:

以及带有结构和类的头文件,例如:

我想解决 bar.cpp 的静态函数“myOtherFunction”中的函数指针,例如:

但这给我一个编译器错误:

可以肯定的是,对于任何有 c/c++ 经验的人来说,这都是一个明显的错误,但现在我被困住了,非常感谢一些帮助。谢谢...

0 投票
2 回答
312 浏览

c - 由于 Arduino Due 上的指针导致无限循环

我使用 Dan Royer 的代码作为基础在 Arduino Mega 2560 上实现了一个缓冲区。代码在 Mega 上运行得非常好,但我想使用 Arduino Due 的增强功能和功能(它使用 ARM 而不是标准的 Atmel 微处理器)。

在到期时,我总是在处理缓冲区内容时进入无限循环,因为到达缓冲区末尾时它不会退出。有谁知道为什么会发生这种情况?您对如何防止这种情况有想法吗?

给出的命令将是 GCode,例如:“G01 X20.5 Y30;”

这是缓冲区的填充方式:

然后 processCommand() 调用一个函数,该函数在缓冲区中搜索特定字符并返回该字符正后方的浮点数:

现在,这段代码在 Arduino Mega 上运行良好,但在 Due 上,由于某种原因,while 循环永远不会退出。

这是它在 Mega 上的工作方式:

但这就是到期时的情况:

等等...

因此,在我看来,退出条件ptr<buffer+sofar从未得到满足。不幸的是,我无法用 Arduino 打印内存地址。有人知道吗?

0 投票
0 回答
5374 浏览

compiler-errors - Arduino 1.6.5 编译错误 - avr-g++: 错误: CreateProcess: No such file or directory 编译错误

情况:

Arduino 1.6.5 在编译示例代码“01.Basics/Blink”时出错 01.基础/眨眼

在不更改任何编码的情况下验证草图,但显示以下错误 02. 编译错误

我试过但不起作用:

1)通过https://www.arduino.cc/en/Guide/ArduinoDue

2)遵循所有步骤

以下是我使用的设置: 03.设置

0 投票
1 回答
923 浏览

sd-card - 对 FatFS 进行必要的调整以使其与 Arduino Due 一起使用

:)

首先原谅我的英语不好。我希望你能理解我的写作。

我的目标是为学生项目构建一个高精度(24 位)数据记录器,将数据存储到 SD 卡中。我使用 Arduino Due (ATSAM3X8E) 和额外的带有 SD 卡连接器的自制屏蔽。

此外,我使用 Atmel Studio 6.2 和 ASF 库“SPI 接口上的 SD/MMC 堆栈”和“FatFS 文件系统”。

完全可以通过 spi 使用 sd/mmc 模块进行读写,但没有文件系统。所以硬件工作正常。

我想我的错误可以定位在 FatFS 模块中。

在 main.c 我调用以下函数:

  • sd_mmc_init();

  • sd_mmc_check(SD_SLOT); //直到这个程序工作,我可以用终端窗口读写有效值

  • f_mount(LUN_ID_SD_MMC_0_MEM, &fs);

//它返回 FR_OK 但这里可能是第一个小错误,因为我不确定我是否选择了正确的 LUN。

  • f_open(&file_object,(char const *)test_file_name, FA_CREATE_ALWAYS | FA_WRITE);

// 这里出现错误 FR_DISK_ERR // 当我将错误跟踪到较低级别时,我来到函数: - chk_mounted(&path, &dj.fs, (BYTE)(mode & ~FA_READ)); - fmt = check_fs(fs, bsect = 0); - 然后在最低级别我的 disk_read 函数,它是 diskio.c 的一部分(附加)

稍后它必须遵循函数 f_puts 和 f_close(&file_object); 但是没有 f_open,它们就无法工作。

我附加了我的 diskio.c 文件,其中分配了导致错误的 disk_read 文件。

我真的希望有人能帮助我。谢谢大家的回答和提示!!!

0 投票
1 回答
160 浏览

arduino - Arduino 上 void* 的字节截断转换

我希望有人可以帮助我诊断出我正在经历的这种奇怪行为。我正在为 Arduino Due 编程并使用Adafruit FONA 调制解调器。有问题的代码提交要通过调制解调器发送的字节数组。sendData正在服用unsigned char[]我投到的void*data_len是写入缓冲区的字节数,而不是缓冲区本身的大小。

我正在使用的电路板不使用 printf/sprintf 打印到标准输出。相反,这是使用Serial.printand完成的Serial.printlnSerial这是一个 Arduino 类,而不是标准的 C++ 类。sprintf_ByteArray我写来检查字节缓冲区的内容,结果反映为十六进制字节。

正如我提到的,我的最终目标是将数据写入调制解调器。这是在fonaSerial->printlnandfonaSerial->write调用中完成的。第一个发出调制解调器命令,其中包含要写入的数据大小。第二个写入数据。

但我正在经历一些棘手的事情。打印结果data如下String message所示。对我来说莫名其妙,message只包含data. 起初,这并没有让我感到惊讶,因为data它包含空字节,我认为这些都是罪魁祸首。但是,message实际上包括空字节!而且,我本来希望message代表 的前 N ​​个字节data,直到第一个空字节。

最后:我以转换data为 auint8_t*并传递给fonaSerial->write. 最初我一直在传递一个字符串,但在我遇到问题后,我决定尝试这种替代方法。然后我将此数据发送到我正在运行的服务器。服务器也仅获得 119 字节的有效负载。

作为记录,早些时候我成功发送了一个较小的有效载荷。我不知道我现在在做什么导致问题。

Payload (void*)= 8a a5 62 69 64 00 69 63 6f 6e 64 69 74 69 6f 6e 01 67 62 61 74 74 65 72 79 18 1d 65 73 74 61 74 65 02 69 74 69 6d 65 73 74 61 6d 70 19 0f 95 a5 62 69 64 01 69 63 6f 6e 64 69 74 69 6f 6e 01 67 62 61 74 74 65 72 79 18 42 65 73 74 61 74 65 62 69 74 69 6d 65 73 74 61 6d 70 19 0f 97 a5 62 69 64 02 69 63 6f 6e 64 69 74 69 6f 6e 00 67 62 61 74 74 65 72 79 18 29 65 73 74 61 74 65 06 69 74 69 6d 65 73 74 61 6d 70 19 0f 98 a5 62 69 64 03 69 63 6f 6e 64 69 74 69 6f 6e 01 67 62 61 74 74 65 72 79 18 26 65 73 74 61 74 65 01 69 74 69 6d 65 73 74 61 6d 70 19 0f 99 a5 62 69 64 04 69 63 6f 6e 64 69 74 69 6f 6e 01 67 62 61 74 74 65 72 79 18 2f 65 73 74 61 74 65 62 69 74 69 6d 65 73 74 61 6d 70 19 0f 9a a5 62 69 64 05 69 63 6f 6e 64 69 74 69 6f 6e 01 67 62 61 74 74 65 72 79 18 1d 65 73 74 61 74 65 06 69 74 69 6d 65 73 74 61 6d 70 19 0f 9c a5 62 69 64 18 42 69 63 6f 6e 64 69 74 69 6f 6e 18 75 67 62 61 74 74 65 72 79 18 69 65 73 74 61 74 65 18 6c 69 74 69 6d 65 73 74 61 6d 70 1a 67 6e 69 64 a5 62 69 64 18 20 69 63 6f 6e 64 69 74 69 6f 6e 18 6c 67 62 61 74 74 65 [72 79 18 6f 65 73 74 61 74 65 18 74 69 74 69 6d 65 73 74 61 6d 70 1a 00 6e 39 20 a5 62 69 64 62 69 63 6f 6e 64 69 74 69 6f 6e 00 67 62 61 74 74 65 72 79 18 40 65 73 74 61 74 65 74 69 74 69 6d 65 73 74 61 6d 70 19 0f a0 a5 62 69 64 74 69 63 6f 6e 64 69 74 69 6f 6e 00 67 62 61 74 74 65 72 79 18 43 65 73 74 61 74 65 74 69 74 69 6d 65 73 74 61 6d 70 19 0f a1]

长度 471

Payload (String)= 72 79 18 6f 65 73 74 61 74 65 18 74 69 74 69 6d 65 73 74 61 6d 70 1a 00 6e 39 20 a5 62 69 64 62 69 63 6f 6e 64 69 74 69 6f 6e 00 67 62 61 74 74 65 72 79 18 40 65 73 74 61 74 65 74 69 74 69 6d 65 73 74 61 6d 70 19 0f a0 a5 62 69 64 74 69 63 6f 6e 64 69 74 69 6f 6e 00 67 62 61 74 74 65 72 79 18 43 65 73 74 61 74 65 74 69 74 69 6d 65 73 74 61 6d 70 19 0f a1

长度 119

0 投票
1 回答
61 浏览

arduino - 买哪个arduino?

arduino Duemilanove 和 arduino uno(或 arduino zero 或 sparkfun redboard)有什么区别?我知道 arduino Duemilanove 已不再销售,但目前销售的哪种型号与它最相似(并且功能都相同)?

0 投票
1 回答
480 浏览

timer - Arduino到期定时器崩溃

我正在尝试使用库 Due Timer 读取速度为 10KHz 的模拟输入 (A0),但是,当我增加它崩溃的向量的值时,目标是在 FFT 分析中使用该向量与 5000大小向量。我曾尝试直接使用 SAM3X83 定时器,但我遇到了同样的问题。这个问题让我发疯了!

请,我会很感激任何帮助。谢谢。

0 投票
1 回答
927 浏览

c++ - Arduino C++:QueueArray 不存储字符串对象?

将 Arduino String对象存储到QueueArray中是否有特定的问题?当我尝试以下代码时,Arduino 只是在“入队”功能处停止执行。

相同的代码适用于存储整数,甚至 (char *)。我错过了什么?