标签: raspberry-pi

Raspberry Pi,Arduino,Node.js和串口

我试图从node.js服务器脚本与我的arduino交谈.

这是我的代码:

var app = require('express')()
, server = require('http').createServer(app)
, io = require('socket.io').listen(server)
, SerialPort  = require('serialport').SerialPort;

//SERIAL
var portName = '/dev/ttyACM0';
var sp = new SerialPort(); // instantiate the serial port.
sp.open(portName, { // portName is instatiated to be COM3, replace as necessary
   baudRate: 115200, // this is synced to what was set for the Arduino Code
   dataBits: 8, // this is the default for Arduino serial communication
   parity: 'none', // this is the default for Arduino serial …
Run Code Online (Sandbox Code Playgroud)

usb debian serial-port node.js raspberry-pi

11
推荐指数
1
解决办法
2万
查看次数

为Raspberry Pi交叉编译C++ 11代码

我正在尝试向Raspberry Pi移植一个大型项目,该项目大量使用C++ 11特性.该项目使用CMAKE,我使用crosstool-ng进行交叉编译.我在Pi上安装了依赖项并在本地复制它们,我设法让CMAKE找到它们.一些代码正确构建并生成ARM输出.但是,大多数代码都因令人困惑的GCC输出而失败,我非常肯定与C++ 11 /模板支持有关.例如,我得到这样的错误:

  • error: 'mutex' in namespace 'std' does not name a type (有问题的文件包含<thread>,如果我还包含<mutex>,则此错误消失,而不是x86 Ubuntu的要求)

  • error: expected class-name before '{' token(前{的行是:template<typename _Res> class __basic_future : public std::__future_base)

  • error: '__result_type' does not name a type (这可能是由于上面的错误而发生的)

这些错误看起来像ARM g ++编译器不太喜欢模板.正在使用的g ++版本是arm-unknown-linux-gnueabi-g++ (crosstool-NG 1.18.0) 4.7.3 20130102 (prerelease).

谁能指出我正确的方向?

编辑:以下是其中一个文件的g ++外观ps:

arm-unknown-linux-gnueabi-g++ -DprojectCore_EXPORTS -fPIC
-I/home/sagar/workspace/RaspberryPi/target_env/usr/include
-I/home/sagar/workspace/RaspberryPi/target_env/usr/include/freetype2
-I/home/sagar/workspace/RaspberryPi/target_env/usr/include/glib-2.0
-I/home/sagar/workspace/RaspberryPi/target_env/usr/lib/arm-linux-gnueabihf/glib-2.0/include
-I/home/sagar/workspace/RaspberryPi/target_env/usr/include/gdk-pixbuf-2.0
-I/home/sagar/workspace/RaspberryPi/target_env/usr/include/gtk-2.0
-I/home/sagar/workspace/RaspberryPi/target_env/usr/lib/arm-linux-gnueabihf/gtk-2.0/include
-I/home/sagar/workspace/RaspberryPi/target_env/usr/include/cairo
-I/home/sagar/workspace/RaspberryPi/target_env/usr/include/pango-1.0
-I/home/sagar/workspace/RaspberryPi/target_env/usr/include/atk-1.0
-I/home/sagar/workspace/RaspberryPi/target_env/usr/local/include
-I/home/sagar/workspace/RaspberryPi/target_env/usr/include/eigen3
-I/home/sagar/workspace/RaspberryPi/target_env/usr/include/flann
-I/home/sagar/workspace/project/include -std=c++0x -Wall -Werror -Wno-deprecated -fPIC -g -O4 …
Run Code Online (Sandbox Code Playgroud)

cross-compiling raspberry-pi

11
推荐指数
1
解决办法
3017
查看次数

是否可以在Windows 8上模拟ARM?

我想在Windows 8上的虚拟机中运行Raspbian.它是为Raspberry Pi上的ARM处理器而构建的.

这可能吗?

arm hyper-v emulation windows-8 raspberry-pi

11
推荐指数
1
解决办法
2万
查看次数

为什么在拥有RTOS时需要可编程实时单元(PRU)?

beaglebone Black处理器包括两个独立的可编程实时单元(PRU).业余爱好者和专业人士对可能将这些单元用于实时应用感到兴奋,这是可以理解的.但是,如果您可以使用RTOS(无论是beaglebone还是Rasberry pi),为什么还需要PRU?

编辑 - 有关信息,BBB的ARM Cortex A8运行频率为1 GHz,频率为1.9 DMIPS/MHz.PRU是以200 MHz运行的简单RISC.

embedded rtos raspberry-pi beagleboneblack

11
推荐指数
2
解决办法
8466
查看次数

Raspberry Pi NoIR相机挂起

背景资料:

我用RPi B +(Raspbian)构建了智能门解决方案,该解决方案使用了三个传感器(PIR,陀螺仪[I2C]和超声波).根据Python脚本管理的传感器状态,我开始使用raspivid命令录制视频和/或在蓝牙扬声器上播放声音.我还有一个连接到RPi的USB WIFI加密狗.

这就是我在.sh文件中调用Pi NoIR相机的方法:

raspivid -w 800 -h 600 -t 15000 -o file.h264 -n -rot 270
Run Code Online (Sandbox Code Playgroud)

问题描述:

相机工作正常一段时间(我不能确切地知道多长时间[也许是2个小时]也不会触发问题)但是它会停止工作.有趣的是,我没有收到任何错误消息.

我做了什么来确定根本原因:

  • 我试图手动杀死子进程(Raspivid),但它根本不起作用.如果我终止父进程(.sh文件),那么我的子进程将被分配给PID 1(init.d).

  • 我尝试在新的终端窗口中录制新视频,但新过程也会挂起.

  • 重新启动Pi也不起作用.它说它正在重启,但它没有(甚至没有-f选项).

  • 我安装了一个新的Pi Camera,确保它不是硬件或色带问题.

  • 相机有足够的内存可用.

  • Pi有足够的力量(红色LED始终打开)

  • -v不返回错误

  • 我安装了V4L2-CTL,但我遇到了同样的问题

我怎样才能修好它?谢谢!

**编辑**

dmesg的:

[   90.555578] ------------[ cut here ]------------
[   90.555698] WARNING: CPU: 0 PID: 3593 at drivers/media/v4l2-core/videobuf2-core.c:2135 __vb2_queue_cancel+0xf4/0x160 [videobuf2_core]()
[   90.555715] Modules linked in: evdev uinput rfcomm bnep bcm2835_v4l2 videobuf2_vmalloc videobuf2_memops videobuf2_core v4l2_common videodev media snd_bcm2835 snd_pcm snd_seq snd_seq_device snd_timer snd spi_bcm2708 i2c_bcm2708 i2c_dev ecb btusb 8192cu …
Run Code Online (Sandbox Code Playgroud)

python linux raspberry-pi raspbian

11
推荐指数
1
解决办法
1883
查看次数

如何在QEMU上模拟Raspberry Pi 2?

前段时间我在本文后仿效了Raspberry Pi ,但这种方法有几个问题:

  1. 这很慢.
  2. 显示解决方案限制为800x600.
  3. 你无法模仿超过256mb的ram.

此外,在Qemu中没有新的Broadcom BCM2836或任何其他基于arm7的CPU的仿真.但是,有几个原因,为什么模仿Raspberry Pi会很有趣.因此,我感兴趣的任何提示都可以帮助我在正确的方向上使用Qemu或Linux下的任何其他仿真软件来获得可用的Raspberry Pi 2仿真.

linux qemu emulation raspberry-pi raspberry-pi2

11
推荐指数
3
解决办法
2万
查看次数

如何在Raspberry Pi上安装最新版本的node.js?

我想在Raspberry Pi 3上安装最新的稳定版本的Node.js.我该如何做到这一点a)我总是能够更新到最新的LTS版本b)可以在版本之间轻松切换

node.js raspberry-pi raspbian

11
推荐指数
1
解决办法
2万
查看次数

如何在Mac上安装Raspbian到SD卡

如何在我的Mac上安装Raspbian OS到我的SD卡而无需安装任何其他软件或应用程序.谷歌上发现的大多数教程都需要安装SD Formatter或者没有提供详细步骤.

macos install sd-card raspberry-pi raspbian

11
推荐指数
1
解决办法
9032
查看次数

Python flask-cors ImportError:没有名为“flask-cors”的模块Raspberry pi

我正在关注此处文档中的flask-cors教程:https ://pypi.python.org/pypi/Flask-Cors

但是当我将它安装在我的树莓派上并运行我的 python 应用程序时,我收到了这个错误

Traceback (most recent call last): File "app.py", line 3, in <module> from flask_cors import CORS, cross_origin ImportError: No module named 'flask_cors'

这是我的python脚本:

from flask import Flask
from Main import main
from flask_cors import CORS, cross_origin    
app = Flask(__name__)
CORS(app)
main = main() 

@app.route('/turn' ,methods=['GET', 'OPTIONS'])
def index():
  return main.turn()

if __name__ == '__main__': 
  app.run(debug=True, host='0.0.0.0')
Run Code Online (Sandbox Code Playgroud)

python flask raspberry-pi flask-cors

11
推荐指数
2
解决办法
4万
查看次数

无法通过Raspberry Pi Python SMBus接收的I2C字节

我正在设置Raspberry Pi来记录Sensirion SCD30传感器的数据(CO2,湿度和温度).我的代码在python3中,使用SMBus库通过Pi的GPIO中的I2C引脚与传感器通信.有一个命令可以确定传感器是否准备好发送数据.

链接到SCD30接口数据表

通过Sparkfun链接到arduino的SCD30库

该值0x0202通过I2C发送,并返回3个字节​​的数据:

0x00 0x00 0x81 for data not ready
0x00 0x01 0xB0 for data ready
Run Code Online (Sandbox Code Playgroud)

前两个字节是MSB和数据就绪值的LSB.正确结合他们应该0x00000x0001.第三个字节是前两个字节的CRC8.这是用多项式0x31和初始化计算的0xFF.

大约一半的时间,字节以错误的顺序发送.而不是MSB LSB CRC发送MSB CRC LSB.例如,如果数据准备就绪,则可能发送0x00, 0xB0, 0x01而不是0x00, 0x01, 0xB0.我无法弄清楚为什么会发生这种情况,我担心发送数据时会出现一些损坏或问题.我可以更改代码以识别CRC是否是第二个字节,但我想找到潜在的问题.

我正在使用smbus库发送和接收I2C数据.这是我发送命令和读取数据的代码:

bus = smbus.SMBus(0)
I2C_ADDRESS = 0x61

def sendCommand(self, cmd):  # sends a 2 byte command (cmd)
    data = [0]*2
    data[0] = cmd >> 8  # splits 2 byte command into MSB and …
Run Code Online (Sandbox Code Playgroud)

python sensor i2c raspberry-pi smbus

11
推荐指数
1
解决办法
1058
查看次数