问题标签 [raspberry-pi]

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 投票
4 回答
5349 浏览

java - 树莓派和 Java 安装

我正在尝试安装 Oracle 的 Java jdk 并在我的 Raspberry pi 上编译和运行 java 程序。基本上我得到一个错误:当我尝试运行java myfile.java时无法找到或加载主类错误。

我采取的步骤是:

  1. 从允许 java (soft float) 的 Raspberry Pi 网站下载“wheezy”
  2. 从 Oracle 网站下载 arm jdk
  3. 使用命令tar -zxvf jdk-7u6-linux-arm-sfp.gz解压jdk
  4. 编写、编译,然后尝试运行一个简单的 java 程序

附带说明一下,因为 wheezy 映像只有 2GB,所以我将 4GB SD 卡的另外 2GB 分区以获得一些额外的存储空间。那是我解压缩 jdk 的地方,现在当我想运行javajavac时,我必须使用完整路径。如何修改安装,以便您可以在没有完整路径的情况下简单地输入java。这与安装二进制文件的位置无关吗?

0 投票
2 回答
47522 浏览

database - 从 Linux shell 与 .db 文件交互

我最近在我的树莓派上安装了 minidlna,一个轻量级的 UPnP 服务器。由于它缺少其他程序(如 Mediatomb)的 Web 界面,我认为编写一个对我来说可能是一个有趣的项目。

我相信 minidlna 将库信息存储在一个名为“files.db”的文件中。


编辑:我被建议检查file files.db- 这是如下的输出:

files.db: SQLite 3.x database, user version 8


但是,我找不到可以让我从 shell 与 .db 文件交互的程序。我看过以下推荐的程序:

  • isql
  • 数据库访问
  • sql
  • SQLite3
  • db.util

在前四种情况下,sudo apt-get install找不到程序。

sudo apt-get install db.util似乎已安装,但在安装过程中会产生以下消息:

此后,which db-utilwhich db.utilwhich dbutil不产生任何结果。

db.util 是要安装以与 .db 文件交互的正确程序吗?如果是这样,如何使用 gcj-dbtool 修复报告的错误?如果没有,有人可以推荐一个更好的程序吗?

0 投票
1 回答
2628 浏览

python - Python keylistener - 树莓派

我刚拿到我的树莓派,让它成为一个扬声器:)。现在我希望它根据您按下的键发出不同的声音。如何在 python 中实现关键监听器?我知道如何在java中做到这一点,但不知道python:/。如果您想知道我使用的是 linux 发行版并且确实安装了 python 等,我无法想象它在任何其他 linux 系统上会有所不同(可能是 Windows 的不同库)。

另外我只是从 LXTerminal 运行它,所以当我输入时,因为焦点设置在终端上,我最终只是在终端窗口中输入。我试过这个,但没有运气:

有任何想法吗?我真的很感激:)

0 投票
1 回答
437 浏览

node.js - 为 Raspberry Pi 交叉编译的新版本 node.js 导致可执行文件大 5 倍

我为 Raspberry Pi 交叉编译了更新版本的 node.js (v0.8.14)。将新版本与通过 apt-get 安装的节点 v0.6.19 进行比较,我很惊讶可执行文件的大小从 1.2Mb 跃升至 6.2Mb。

尺寸增加 5 倍是因为

  • 较新版本的节点:v0.6.19 --> v0.6.19
  • GNU/Linux 版本:2.6.26 --> 3.5.0
  • 别的东西?
0 投票
1 回答
1078 浏览

gcc - Distro 提供的交叉编译器与自定义构建的 gcc

我打算为Raspberry Pi交叉编译,基本上是一台小型ARM计算机。主机将是一个运行 Arch Linux 的 i686 机器。

我的第一反应是使用 Arch Linux 提供的交叉编译器 arm-elf-gcc-base 和 arm-elf-binutils。但是,我阅读的每个 wiki 和帖子似乎都使用了某些版本的自定义 gcc 构建。他们似乎花费了大量时间来烹饪自己的 gcc。问题是他们从不说为什么使用他们的 gcc 比另一个重要。

  1. 库存发行版提供的交叉编译器能否用于在通用内核和应用程序中构建 Raspberry Pi 或 ARM?

  2. ARM架构是否需要多个编译器?如果是这样,为什么,因为单个 gcc 可以支持所有 x86 变体?

  3. 如果是 2),那么我如何推断特定版本的 gcc 支持的目标子集?

  4. 更一般的问题,什么一般用例需要自定义 gcc 构建?

请尽可能技术,我想知道为什么以及如何。

0 投票
2 回答
654 浏览

python - 检测python / pygame中图像之间的差异

我正在使用 Raspberry Pi(Running Rasbian Wheezy)进行艺术项目。我正在制作一个游戏中时光倒流,其中只有已更改的图像区域被替换。

当使用 alpha 通道从两个不同阵列的像素创建 PixelArray 以确定使用哪个像素时,处理器会被最大化并且运行速度非常慢:

pygame 中有没有办法比 for 循环更快地访问图像中的所有像素?

谢谢!-汤米

0 投票
1 回答
563 浏览

c# - python和c#函数中结果的区别

我正在使用 C#/Mono 和 Python 玩 Raspberry Pi。我目前正在将一些代码从 Python 转换为 C#,并且返回的值不同。

当调整电位器并重复采样这些函数时,我在 Python 中得到 0-1023,在 C# 中得到 0-2047。

造成这种差异的原因是什么?我对 Python 非常陌生。

在 python 中,此函数产生一个介于 0 和 1023 之间的值(调整电位计时)。

在 c# 中,它似乎返回 0 - 2047。

0 投票
2 回答
177 浏览

assembly - 调用函数后确定ARM堆栈上使用的绝对字节数?

我正在尝试使我的 c 代码免受 Raspberry Pi 上的堆栈溢出的影响。我是这方面的初学者,所以请耐心等待。有人告诉我,确定调用函数使用的字节量的一种方法是通过用已知值(例如 0xff)填充堆栈空间来初始化堆栈空间。然后运行该函数,然后向后搜索以查看有多少堆栈从已知值更改。通过获取原始堆栈深度和第一个未更改值之前的堆栈深度,我可以确定该函数使用的堆栈数量。对我来说听起来很合理。

我的问题是这个组装的东西让我很困惑。我一直在阅读我可以使用 asm() 将 ARM 汇编代码嵌入到我的 c 代码中,但我不确定如何初始化堆栈内存,然后返回并检查它。有没有我可以查看的资源会有所帮助?我对汇编知之甚少,以至于我什至不知道如何形成一个很好的搜索词。

谢谢。

0 投票
1 回答
226 浏览

python - 重复数据被存储到数据库中

当我运行我的脚本时,我在数据库中添加了重复的条目,我想知道我可能做错了什么。

硬件
我有一台仪器通过串行通信连接到我的 Raspberry Pi,频率为 115,200。仪器每秒输出一行数据,我想将这些数据存储到数据库中。每行以 \n 结束。

软件
Python 2.7.3rc2
PySerial
PostgreSQL 9.1
Debian Wheezy

该数据库有一个我创建的名为 wattsup 的表:

我的 Python 脚本如下所示:

它通常有效,但我在我不理解的数据中得到了一些重复。当我查询数据库时,我可以找到类似的数据。

注意有重复数据(A, 2012-11-04 18:00:05, 5.0)。我知道仪器只在 1 秒输出数据,所以我确定它不是仪器。我尝试对代码进行一些更改,以便每 10 个条目发生一次提交,这似乎改善了这种情况。

知道会发生什么吗?我难住了。

谢谢!

0 投票
2 回答
928 浏览

python - 在 python 脚本中运行 bash 命令 X 秒

我有一个 gps 连接到我的树莓派,并试图用它来对来自传入相机的照片进行地理标记。通过发出命令“gpsd -nND2 /dev/ttyUSB0”,我可以获得连续 gps 数据的 bash 回显输出,以后可以对其进行解析。但是,我只需要平均 10 个左右的数据点(在 10 秒内收集),然后想关闭 gpsd。

我的一般延时程序是用 python 编写的,所以这是我目前所拥有的:

不幸的是,这将向变量stdout 输出我无法解析的无限数量的数据点。输出很像一个永无止境的 ping 例程。如何停止数据收集以进行合理/可解析的数据转储?

感谢您的帮助。