python led

编程入门 行业动态 更新时间:2024-10-09 23:22:31

<a href=https://www.elefans.com/category/jswz/34/1770869.html style=python led"/>

python led

原标题:Python on Zynq - 手把手教你如何在Zybo上跑Python制作一个LED呼吸灯

来源: www.DIGILENT/community

作者: Michael080808

导读

继 Xilinx 联合 DIGILENT 推出世界上第一款支持 Python 的 FPGA 嵌入式计算系统 后,通过 “Python + 开源硬件” 加速创新,正成为时下开源软硬件爱好者的一股全新关注热潮。

既然同样是 ZYNQ 开发板,“小粉” PYNQ(Zynq-7020)可以跑 Python 进行控制,那么作为经典 Zynq 开发板,有“小 Zedboard 之称” 的 Digilent Zybo(Zynq-7010)是否也可以呢?

这不,DIGILENT 中文技术社区用户 Michael080808 近日就在社区内就发布了一篇全新教程,手把手教你如何「在 Zybo 上跑 Python 制作一个LED呼吸灯项目」吧~

01

作者感言

ZYBO上运行Python,对于有开发经验的同学来说,设计PL部分和配置安装Python并不是非常难,主要的难度还是在Linux的选择和配置上。大家对于Linux的Kernel、U-boot、Rootfs编译,Linux驱动开发不熟悉,会对Python的使用构成影响。一旦解决这些问题,使用Python进行调用将变得非常轻松,提供给他人进行二次开发也更容易,更方便。希望这个教程可以给大家一点帮助。

02

Demo视频

03

材料清单

硬件准备:

一块 Digilent Zybo 开发板;

一张 8GB 以上的 Micro SD 卡;

一个 SD 卡读卡器;

一根 Micro USB 数据线;

一根以太网线;

软件准备:

Vivado 2015.4

xillinux-1.3.img.gz

xillinux-eval-zybo-2.0a.zip

PuTTY或者Xshell(Windows系统)

Win32DiskImager(Windows系统)

04

实现步骤

Vivado 2015.4:.html

xillinux-1.3.img.gz:.3.img.gz

xillinux-eval-zybo-2.0a.zip:.0a.zip

Win32DiskImager(Windows系统):/

* 实际测试中,Xillybus制作的Vivado工程可以在2017年以前的版本,即除2017.1和2017.2版本上进行综合、布线、生成比特流(Bitstream)文件(*.bit)。Digilent官方提供的支持是以2015.4为基础的。因此在这里使用2015.4版本

2.解压xillinux-1.3.img.gz,得到xillinux-1.3.img文件

3.将MicroSD卡进行格式化成FAT32文件系统格式

4.将镜像烧写到SD卡中:选定xillinux-1.3.img镜像,选定SD卡盘符,进行烧写

5.解压xillinux-eval-zybo-2.0a.zip,将bootfiles文件夹内的boot.bin和devicetree.dtb拷贝到SD卡第一个分区

6.打开Vivado,选择Tools -> Run Tcl ,选择解压xillinux-eval-zybo-2.0a.zip目录下blockdesign中的xillydemo-vivado.tcl生成工程

7.点击生成bitstream,等待生成bitstream后,在工程目录下找到xillydemo.bit,同样拷贝到SD卡第一个分区

8.将SD卡插入Zybo开发板上,确认VGA旁边的JP5跳线连接在SD上,连接网线到路由器上,连接Micro USB线到电脑上,打开Zybo

9.查看设备管理器以确定Zybo使用的串口端口号,使用PuTTY或者Xshell进行连接

10.对文件系统部分进行扩展,以防止下边使用过程中SD卡空间不够用:

重启之后,使用resize2fs扩展文件系统

11.在确定联网的情况下使用sudo apt-get update; sudo apt-get upgrade; 对Xillinux(Ubuntu 12.04 LTS)进行更新

如果遇到身边没有路由器,只有电脑能够上网,怎么办?

将网线连接在笔记本电脑上

Windows上:

1)将以太网的TCP/IPv4协议IP地址设置成192.168.137.1,子网掩码设置成255.255.255.0

2)设置好自己常用的DNS服务器地址,例如

阿里云DNS:223.5.5.5,223.6.6.6;

360DNS:123.125.81.6,101.226.4.6

114DNS:114.114.114.114,114.114.115.115

Google DNS:8.8.8.8,8.8.4.4

3)将能够连接Internet的连接共享给连有Zybo的以太网连接

4)确保网络防火墙允许192.168.137.0~192.168.137.255网段的数据能够通过

5)在Zybo上设置/etc/network/interfaces文件如下:

6)在Zybo上设置/etc/resolv.conf,添加常用的DNS服务器,同时将网关192.168.137.1添加到其中

7)重启网络服务,这样,就可以使用Windows为Zybo共享网络了

Linux上:Zybo保持默认设置,Linux上编辑有线连接,将IPv4设置中的方法改成与其它计算机共享,保存即可共享网络

*实际测试还是与路由直接连接的时候速度最快,所以尽量使用路由进行连接

除了串口连接,还有什么方法可以连接Zybo上的Linux

可以使用OpenSSH通过网络进行Linux的访问:首先先安装OpenSSH的服务器端,sudo apt-get install openssh-server(如果Zybo需要访问其他Linux,需要安装OpenSSH的客户端,sudo apt-get install openssh-client)

OpenSSH访问必须需要密码,所以需要passwd命令设置密码:

然后使用PuTTY或者Xshell通过输入IP地址,输入用户名和密码,通过OpenSSH进行访问

12.安装python:sudo apt-get install python3 python3-dev python3-dbg(在Ubuntu 12.04 LTS上,Python最高支持3.2版本)

13.创建一个python脚本,添加以下内容:

#!/usr/bin/python3

#-*- coding:utf-8 -*-

import time

import sys

import os

dir = 0

pwm = 0

try:

while True:

os.system('echo 1 > /sys/class/leds/mmc_led/brightness')

time.sleep(0.01 * pwm / 100)

os.system('echo 0 > /sys/class/leds/mmc_led/brightness')

time.sleep(0.01 * (100 - pwm) / 100)

if dir == 0:

pwm = pwm + 10

else:

pwm = pwm - 10

if pwm > 100:

dir = 1

pwm = 100

if pwm < 0:

dir = 0

pwm = 0

except KeyboardInterrupt:

os.system('echo 0 > /sys/class/leds/mmc_led/brightness')

exit()

*对于Linux系统下设备的读写控制,可以参考这篇博客:.html

*Linux系统下所有的设备都是基于Linux树状结构进行设备挂载,基于文件读写的方式进行操作。向控制结点通过pipe管道写入数据,使得LED被点亮

*下面是测试的时候的视频:WP_20170805_00_36_34_Pro.mp4

*python通过os.system('')调用系统命令进行LED的控制

14.执行脚本,可以观察到,MIO7对应的LED呈现呼吸灯状态

责任编辑:

更多推荐

python led

本文发布于:2024-02-13 14:15:09,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1759184.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:python   led

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!