我正在使用python代码控制远程玩具车.截至目前,代码如下
def getkey():
fd = sys.stdin.fileno()
old = termios.tcgetattr(fd)
new = termios.tcgetattr(fd)
new[3] = new[3] & ~TERMIOS.ICANON & ~TERMIOS.ECHO
new[6][TERMIOS.VMIN] = 1
new[6][TERMIOS.VTIME] = 0
termios.tcsetattr(fd, TERMIOS.TCSANOW, new)
c = None
try:
c = os.read(fd, 1)
finally:
termios.tcsetattr(fd, TERMIOS.TCSAFLUSH, old)
return c
def car():
while True:
key = getkey()
if key == 's': #Down arrow
print "Down"
Backward()
elif key == 'w': #Up arrow
print "Up"
forward()
elif key == 'a':
print "left"
Left()
elif key == 'd':
print "Right" …Run Code Online (Sandbox Code Playgroud) 在pandaboard OMAP4中,GPIO_39每隔10ms产生一次中断.我在Linux驱动程序代码中为此注册了一个处理程序,但由于未检测到中断,因此未调用处理程序.
我确保在硬件级别(通过探测gpio引脚)确实正在生成中断.只是软件无法检测到它.
我在驱动程序代码中有以下内容.
#define GPIO_NO 39
iowrite16(0x3, gpio_39_address + 2); /* Configured the pin 22 to be used as gpio. */
ret = gpio_request(GPIO_NO, "Claiming GPIO");
if(ret < 0)
{
printk(KERN_ALERT "%s: Claiming GPIO_%d failed\n", __func__, GPIO_NO);
return -1;
}
else
{
printk(KERN_INFO "%s: Claiming GPIO_%d successful\n", __func__, GPIO_NO);
}
ret = gpio_direction_input(GPIO_NO);
if(ret < 0)
{
printk(KERN_INFO "%s: Setting GPIO direction to input failed\n", __func__);
return -1;
}
else
{
printk(KERN_INFO "%s: Direction of …Run Code Online (Sandbox Code Playgroud) 我正在使用Raspberry pi和java来使LED闪烁使用pi4j,一切都清除并且工作正常,LED按照代码闪烁但是当我第二次运行它会导致以下错误,我有搜索很多有很多相同的问题没有明确的答案如何解决它,任何帮助将不胜感激
final GpioController gpio = GpioFactory.getInstance();
final GpioPinDigitalOutput pin = gpio.provisionDigitalOutputPin(
RaspiPin.GPIO_01, "PinLED", PinState.HIGH);
System.out.println("light is: ON");
Thread.sleep(2000);
pin.low();
System.out.println("light is: OFF");
Thread.sleep(1000);
System.out.println("light is: ON for 1 second");
pin.pulse(1000, true);
pin.setShutdownOptions(true, PinState.LOW, PinPullResistance.OFF);
gpio.shutdown();
Run Code Online (Sandbox Code Playgroud)
这是我得到的完整错误
com.pi4j.io.gpio.exception.GpioPinExistsException: This GPIO pin already exists: GPIO 1
com.pi4j.io.gpio.impl.GpioControllerImpl.provisionPin(GpioControllerImpl.java:507)
com.pi4j.io.gpio.impl.GpioControllerImpl.provisionDigitalOutputPin(GpioControllerImpl.java:645)
com.pi4j.io.gpio.impl.GpioControllerImpl.provisionDigitalOutputPin(GpioControllerImpl.java:672)
com.pi4j.io.gpio.impl.GpioControllerImpl.provisionDigitalOutputPin(GpioControllerImpl.java:684)
com.restFulService.Controller.LedControl.ledTestFun(LedControl.java:52)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:483)
org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:202)
net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:180)
org.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:439)
org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:178)
Run Code Online (Sandbox Code Playgroud) 我最近正在浏览pi2的GPIO驱动程序,我发现用户空间pi2 GPIO lib(如python的RPi.GPIO 0.5.11)/dev/mem用于BCM2708(从0x20000000开始,GPIO从0x200000开始相对)来mmap用户空间内存区域为了处理GPIO.但是我drivers/gpio在linux中发现源码树是专门为处理而设计的/sys/class/gpio/*.我发现没有像I/O端口映射喜欢request_io_region和__io_remap.我的问题是BCM2708的GPIO如何映射到内存中?还有其他司机吗?我可以通过R&W来处理GPIO /sys/class/gpio/*吗?
我是覆盆子Pi的GPIO部分的新手.当我需要引脚时,我通常只使用Arduino.但是如果可能的话,我真的希望将这个项目合并到一个平台上,我想在PI上完成所有这些工作.
所以我有三(3)个MAX31855板和K型热电偶.我只是不知道在哪里连接其他两个.我不知道我是否可以使用任何其他引脚(电源和接地引脚除外)用于MISO,CSO和SCLK引脚.这可能听起来像一个菜鸟问题,但就像我说我习惯使用arduino这个东西.任何输入都表示赞赏.提前致谢.
我正在使用https://github.com/Tuckie/max31855中的代码
from max31855 import MAX31855, MAX31855Error
cs_pin=24
clock_pin=23
data_pin=22
unit="f"
thermocouple1=MAX31855(cs_pin, clock_pin, data_pin, units)
print(thermocouple.get())
thermocouple.cleanup()
Run Code Online (Sandbox Code Playgroud) 我是Raspberry Pi的新手,我想知道我们如何模拟/模拟传感器(或GPIO),这样我就可以测试我的python代码,模拟引脚的高点和低点?
提前致谢!
这是我第一次尝试对 Raspberry Pi 和面包板上的硬件按钮进行编码。程序很简单,当检测到按下按钮时,打开面包板上的 LED 1 秒钟。我的代码似乎有效,但奇怪的是,每隔一个按钮就会触发回调函数两次。我是一个完全的编程菜鸟,所以我不确定问题是否出在我的代码上,或者硬件或按钮是否实际上以某种方式掉落了两次。我希望这里有人能帮助我解决这个奇怪的问题。这是我的代码:
#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
LedPin = 11 # pin11 --- led
BtnPin = 12 # pin12 --- button
def setup():
GPIO.setmode(GPIO.BOARD) # Numbers GPIOs by physical location
GPIO.setup(LedPin, GPIO.OUT) # Set LedPin's mode is output
GPIO.setup(BtnPin, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Set BtnPin's mode is input, and pull up to high level(3.3V)
GPIO.output(LedPin, GPIO.HIGH) # Set LedPin high(+3.3V) to off led
def Light(ev=None):
print 'A button press was detected'
GPIO.output(LedPin, 0) …Run Code Online (Sandbox Code Playgroud) 是否存在用于编程需求的虚拟GPIO驱动程序?
我必须在我的Linux PC上开发一个软件,然后在一些带有物理GPIO的嵌入式系统上试用它(CHIP,OpenWRT等等)?
谢谢!
有谁知道有一家公司销售适用于普通非物联网 Windows 10 PC 的 USB 电缆,该电缆可以将 USB 转换为 40 针 Raspberry pi 接头上的所有以下总线?示例:USB->GPIO、I2C、SPI、UART 等。
我能找到的最接近的是:
这可以将 PC USB 转换为 GPIO/I2C/SPI 等...除了我正在寻找更小、电线更少的东西...只有 40 针接头或更少...类似于树莓派 40 针接头,除了被驱动从连接到 PC 的 USB 改为...有人见过这种类型的待售产品,它可以通过所有列出的总线从 PC-USB 转换为 40 针接头吗?
另外,我希望能够使用“Windows.Devices”Api 而不是专有驱动程序 DLL API 通过Windows UWP对该 USB 转换设备进行编程...还没有真正找到...示例:
// C# Program GPIO connected to USB dongle of regular PC...
using Windows.Devices.GPIO;
...
private void InitGPIO()
{
var gpio_ctrl = GpioController.GetDefault();
// Check GPIO state
if (gpio_ctrl == null)
{
this.pin = null; …Run Code Online (Sandbox Code Playgroud) 我在raspberry pi 3上安装了lineage os 14我连接了一个带有UART端口的gps模块,然而,GPS的波特率是9600但是/ dev/ttyS0的波特率是115200我想改变ttyS0的波特率以便读取GPS数据我试过stty命令
stty -F /dev/ttyS0 9600
Run Code Online (Sandbox Code Playgroud)
但是,当我再次使用此命令检查
stty -F /dev/ttyS0速度值为115200 时,这不会改变波特率.如何更改/ dev/ttyS0的波特率我也找到了一些带有串行命令的解决方案serial /dev/ttyS0 9600但是它不存在于adb shell.任何帮助都会感激不尽
gpio ×10
raspberry-pi ×5
python ×4
linux ×2
android ×1
c ×1
c# ×1
emulation ×1
gps ×1
i2c ×1
interrupt ×1
ioports ×1
java ×1
mmap ×1
mocking ×1
pandaboard ×1
python-3.x ×1
raspbian ×1
simulation ×1
spi ×1
temperature ×1
uart ×1
windows ×1