树莓派通过串口与arduino mega 2560通信

来源:互联网 发布:制作假营业执照软件 编辑:程序博客网 时间:2024/05/15 13:35

树莓派通过串口与arduino mega 2560通信

树莓派通过串口给arduino mega 2560发送文件保存在内存卡上的所有操作,也没准不是所有

  • 我的树莓派3装的官方镜像Raspbian
  • 选用arduino mega 2560是因为我的作品需要的引脚比较多,这只是其中一部分
  • 据说SD.h库支持的内存卡最好不要超过2G,但是我用的8G,此处指的arduino所连接的内存卡
  • Linux串口是用minicom
  • 内存卡读卡器买某宝带了电平转换的5v的使用spi总线
  • arduino与树莓派直接通过usb串口,把arduino的usb直接插到树莓派上,靠树莓派来供电
  • 全文Linux指的是树莓派板上系统

树莓派准备

我用三代B是因为自带wifi,我的作品需要wifi,3代之前的不带wifi,需要下载镜像http://www.raspberrypi.org/,我向来下载最新的,什么新特性自己感悟才是硬道理,找个读卡器装上内存卡,推荐Class10及更好,c4卡卡到爆深有体会,在2代B+相当明显,山寨卡更是不行!把下载的镜像解压使用Win32DiskImager把img镜像写入到内存卡,成功之后你的fat32部分只有几十兆,上电开机,推荐2A的适配器,二代时候就这么说了,照做就是。刚好我的三星带的是2A充电器,从2代开始我就是这个,毕竟我是穷逼,s4用到现在,都快毕业了,也不是说打广告,我就是喜欢三星功能多,咱们理工的就应该这种,倒腾个NFC,人家有,没事开可以给公交卡充点钱(我可没干过);热了开个空调,要红外,人家有,你别跟我说用个红外管焊在耳机插头上用音频载波38k也可以,你这就是抬扛了。
上电之后你用一百种方法让对它操作(夸张夸张),我最先二代时候用的hdmi转vga,vga还要额外供电,毕竟不能回家用hdmi接上大彩电(倒是试过),我当初是因为转所谓的win10 IOT版,不过看过之后觉得大失所望,而且hdmi转vga为了省钱我买的一共四五十那种,质量垃圾的一比,玩玩就坏了,usb还要开焊(提一下我这个带音频输出,其实我是想让店家送个音频线插在音箱和笔记本之间放歌的。。。)。当然你可以给他买个屏幕,说实话不值得。最实用当然最吊丝的是最传统的远程(然而我就是这种吊丝),远程需要什么?ip啊!账户啊!密码啊!树莓派的作者有先见之明帮你把普通用户的账户密码的创建好了,账户:pi密码:raspberry 其实也是多好记的,简单粗暴;但是上电一般来说不好确定他的ip,毕竟镜像是你自己安装的,但是你还没有对它操作,那么现在咱们开始:1.最穷逼:直连。只需要一条网线,树莓派和pc用网线直接连,你说你没有网线,那你可以要饭去了(除非你有路由器,多天线、穿墙,信号好,牛逼,哈哈,推荐个极路由,主要是可折腾,当然你说你普通你一可以装个openwrt那你就是抬扛了),网线直连也是互相看不到的,你别看到这里直接连好了arp -a了半天没找到大骂我骗人,这时候你把树莓派断电取下内存卡插到pc上,打开里面有个cmdline.txt,这个文件名字起的我感觉是怪的不行,令人费解,打开之后:

 dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

把你的ip填写进去,这样方便我们连接的时候填写host,添加后的效果:

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes ip=192.168.4.100 rootwait

这时候把pc的ip也填写一个同一网段的,我一般直接192.168.4.99,离得近,心理上感觉亲近,哈哈
,这时候你可以用putty啦、SecureCRT啦、WinSCP(winscp里可以调用putty)啦都可以,我一般习惯winscp传文件,SecureCRT控制台,毕竟当时我们嵌入式的老师用这俩,老师的影响还真是意义深远。账户:pi密码:raspberry,再说一次,当然你想看见xwindow,也是可以的,就远程嘛、这时候你可以在控制台输入:

sudo apt-get install tightvncserver

出现y/s按y,这傻子也会,比如说我这种,但是你不会出现,因为你没联网!所以要么你自己pc上下载好,传到树莓派上,但是你总不能缺啥还得提前下载一个吧,咱们学it就是为了让复杂的东西简单化,所以,这里使用第二种连接方式。2,通过路由器。第一种方法我之所以ip段是4,因为我这个路由器自动分配的4,(说我可以改啊,那你又是抬扛了),连到同一路由器,这个时候咱们就可以同时上网啦,不过在学校的话可以能会碰到校园网,有的学校是城市热点的dr.com或者锐捷,我们学校的城市热点的dr.com,可以把你的ip填写到路由器之后pc和树莓派都连到路由器上,pc登录dr.com之后两者就都可以上网啦(pc最最好自动寻找ip,然后分配之后再给树莓派分配同一ip段的ip),这时候你就可以尽情的安装啦,安装了tightvncserver之后他会提示你输入密码,输入两次八位的后面要用到,配置成功后,输入命令:

sudo raspi-config

这时候进入了树莓派的配置菜单,是个理论上的图形化界面,哈哈,翻到ssh,enable开启ssh,退出之后,直接输入

tightvncserver

他就会提示你啥啥啥,已经建立了一个xwindow,其实就是开启了vnc服务,你可以访问啦。那么你这时候在pc上下载一个tightvncview,安装时候不用安装server部分、也就是服务端,我当时就是傻的点的快,给装上了,到输密码那里我才反应过来(跟树莓派上安装要密码那一个意思),多了个安全风险,(就我这彩也没啥提安全的资格),安装完之后启动tightvncviewer,输入ip,你的密码就是你刚刚树莓派安装时输入的八位数字【注意:这里直接就可以登录,不会用到系统密码!所以你的服务器最好不要用这个】,图形化界面就有了,说实话没啥卵用,只是用来看看里面啥样的,满足一下好奇心。
下面安装minicom,(minicom只是用来调试串口,可装可不装),看名字就知道是个弄串口的(实际上是公司的名字),上来就是在线安装:

sudo apt-get install minicom

安装完之后进入配置:

minicom -s

里面有个Serial port setup,就是串口设置,有个abcd为序号的啥啥啥,(之前我的桌面centos 7没有B,也就那个文件锁的条目,直接空出来),按几就会跳到几

             A — Serial Device : /dev/ACM0  arduino串口             B — lockfile Location : /var/lock 我理解的是文件锁,防止出现同时读写             C — Calling Program :              D — Callout Program:              E — Bps/par/Bits : 115200 8N1 波特率             F — Hardware Flow Control : NO 我把硬件流控制这个关了             G — Software Flow Control : NO 

保存Save setup as df1。

查看arduino相关串口

因为linux下设备是当做目录来看的,我们直接

ls -l /dev/ttyS*

一般来说arduino的串口是AMA0,有时候也会是1或者等等,前提是你必须把arduino插上,才会在控制台看到这个串口的名字,这个时候为了方便调试,你可以在树莓派的系统上安装一个arduino ide(可以通过vnc从图形界面里面的安装程序功能添加),与windows的界面是一模一样的,自带的串口监视器也是可以用的
先写到这里吧,因为到这里我已经离开了这个开发,linux上用java写的服务端,安卓上也得客户端,把文件发送到linux上之后,python写的脚本检测特定目录下文件,然后把文件通过串口发送到mega(前提示文件不能太大,串口通信带宽有限的很,我发的是二进制文件,比较好出处理)mega使用sd.h库存储到内存卡上。。

0 0
原创粉丝点击