8455澳门新_8455新葡萄娱乐【官网】

两个设备名会显示在终端里,关闭串口终端调试

1.  python 工具

OS: ubuntu 16.04

树莓派的串口默认为串口终端调试使用,如要正常使用串口则需要修改树莓派设置。关闭串口终端调试功能后则不能再通过串口登陆访问树莓派,需从新开启后才能通过串口控制树莓派。

转:

#coding = utf-8

import pty
import os
import select

def mkpty():
    master1, slave = pty.openpty()
    slaveName1 = os.ttyname(slave)
    master2, slave = pty.openpty()
    slaveName2 = os.ttyname(slave)
    print 'nslave device names: ', slaveName1, slaveName2
    return master1, master2

if __name__ == "__main__":
    master1, master2 = mkpty()
    while True:
        rl, wl, el = select.select([master1, master2], [], [], 1)
        for master in rl:
            data = os.read(master, 128)
            print "read %d data." %len(data)
            if master == master1:
                os.write(master2, data)
            else:
                os.write(master1, data)

ROS:kinetic

一、设置串口

 

使用方法:

1.安装arduino  sudo apt-get install arduino

要使用这个串口,必须先进行设置:

树莓派是否能够使用串口呢,答案是肯定的 ,以下是具体方法

 

1.树莓派的第一排的第三,四,五个分别,也就是下图的6,8,10三个端口分别是地,TX与RX,与被连接设备连接起来。注意树莓派的TX要连接从设备的RX,树莓派的RX要连接树莓派的TX8455澳门新 1

 

2.树莓派上只有一个串口,系统默认将它作为调试口,所以不能直接当成普通串口进行编程和使用,需要先将调试口的配置去掉,再使用。此处需要修改两处文件

  2.1  修改      在终端输入如下指令 

[plain] view plaincopyprint?8455澳门新 28455澳门新 3

  1. sudo nano /boot/cmdline.txt  

    sudo nano /boot/cmdline.txt

      打开后将红色部分删除

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

      删除后,变成如下结果保存退出

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

 

 2.2  修改 /etc/inittab

   在终端输入如下指令 

[plain] view plaincopyprint?8455澳门新 48455澳门新 5

  1. sudo nano /etc/inittab  

    sudo nano /etc/inittab

  打开后将最后一行注释掉 在前面加上一个#号即可

 #T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

 

 

3.修改完毕后,需要在树莓派上安装一个minicom,这里的minicom是Linux平台的串口调试工具,相当于Windows上的串口调试助手

   3.1  安装minicom,输入以下命令

 

[plain] view plaincopyprint?8455澳门新 68455澳门新 7

  1. sudo apt-get install minicom  

    sudo apt-get install minicom

 

   

  3.2  安装完毕后需要对minicom进行配置,此处配置文件需要root权限,不然无法保存配置的参数,那么在命令行中输入如下命令

 

[plain] view plaincopyprint?8455澳门新 88455澳门新 9

  1. sudo passwd root  

    sudo passwd root

   执行此命令后系统会提示输入两遍的root密码,输入你想设的密码即可,然后在执行

 

 

[plain] view plaincopyprint?8455澳门新 108455澳门新 11

  1. sudo passwd --unlock root  

    sudo passwd --unlock root

   这样就解锁了root账户

 

 

  3.3  切换到root账户,再次打开命令行,输入minicom参数配置命令

 

[plain] view plaincopyprint?8455澳门新 128455澳门新 13

  1. minicom -s  

    minicom -s

    在主菜单的第三项Serial Port Setup,进入下一级菜单,根据菜单项的提示字母选择,按A将串口设备修改为  /dev/ttyAMA0

 

   ,按E将波特率修改为9600或者自己需要的数值,设置好以后返回主菜单,选择Save Setup as Dfl 

    然后选择Exit,此时如果正常的话就可以进行串口收发了,这里我的树莓派是连接到一台PC上去的,我利用PC的串口调试软件成功进行了收发

 

   tips: 按CTRL+A,接着按Z可以查看minicom的帮助

  启动:在终端里运行“python mkptych.py&”,这样就可以生成一个基于pty(伪终端)的虚拟端口对,两个设备名会显示在终端里。然后就可以利用这两个设备名在本机上进行虚拟串口之类的调试。

2.安装ros包  sudo apt-get install ros-kinetic-rosserial-arduino

1.执行如下命令进入树莓派配置

  关闭:使用完后用ps查看这个python进程的pid号,然后kill掉即可。

sudo apt-get install ros-kinetic-rosserial

sudo raspi-config

8455澳门新 14

3.设置arduino的SketchBook,将ros_lib弄进去,关于SketchBook的文件目录,在File->Preferences

选择Advanced Options->Serial ->no关闭串口调试功能

 

8455澳门新 15

2.修改/boot/cmdline.txt

2.  Ubuntu下 cutecom 图像界面串口调试工具(参考:

也可以自己定义该目录.

输入下面指令:

  (1)终端下载命令:sudo apt-get install cutecom 

cd <sketchbook>/libraries 如果没有libraries目录,自己创建这个目录就可以啦,如果里面已经包含ros_lib目录,请使用rm -rf ros_lib ,防止发生冲突.

rosrun rosserial_arduino make_libraries.py .   用来生成ros_lib库,(注意使用.,当前目录)

sudo nano /boot/cmdline.txt

  (2)通过终端打开软件:sudo cutecom (需要root权限,否则无法打开串口)

8455澳门新 16

删除划线斜体部分:

  (3)在 Device 中填写上边生成的虚拟串口号  /dev/pts/24   和   /dev/pts/25,  Input  中输入文字 ,点击回车发送测试

 

dwc_otg.lpm_enable=0console=ttyAMA0,115200 kgdboc=ttyAMA0,115200console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

8455澳门新 17

 由于ubuntu下截图不怎么好用,就用了官网的图,道理是一样的。可以依据这些demo来制作ardunio下的节点,和服务。

最终变为

 

关于arduino IDE的串口链接,在 Tools->Serial Port下,选材/dev/ttyACM×(× 可能是0,1,2,3...)

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

3.  python 编写测试程序

关于brltty和Arduino之间冲突,但在unbuntu 16.04下没什么影响,在Tools->Serial Port 依然可以看到/dev/ttyACM*,并且成功烧入。

3.修改/etc/inittab

  (参考   ,

并不是一定要卸载brltty,这个我觉得要实际试过才可以这么说.

输入下面指令:

  (1)1.安装pyserial(安装 serial module)

rosrun rosserial_python serial_node.py /dev/ttyACM* 用来启动rosserial节点。

跑的时候,如果arduino 串口监听,rosserial一起启动,经常导致串口异常,导致串口插拔,才可以重新使用。
这个问题,比较不好理解,linux串口非独占的。目前还在解决中。

由于linux串口的跳动,必须固定串口。

sudo nano /etc/inittab

     这里区分python2和 python3:

8455澳门新 18

注释掉最后一行内容:

    

 

#8455澳门新,T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

1 sudo apt install python-pip //python2
2 sudo apt install python3-pip    //python3
lsusb 可以查看当前的usb口。

当然也可以用dmesg

OK、重启下raspberry pi现在就可以自己编写程序测试串口了。我是把TXD与RXD短接,实现自发自收的。

  (2)然后通过:

8455澳门新 19

二、使用minicom调试串口

1 pip install pyserial    //python2
2 pip3 install pyserial   //python3

可以查看具体的设备。我觉得用arduino 的serial port看起来更合理点。

设置完之后串口便可以正常使用了,便可测试一下树莓派的UART是否正常工作,Pioneer600扩展板带有USB转UART功能,用USB线连接到电脑。minicom便是一个简单好用的工具。minicom是linux平台串口调试工具,相当于windows上的串口调试助手。

本文由8455澳门新发布于新闻资讯,转载请注明出处:两个设备名会显示在终端里,关闭串口终端调试

相关阅读