资讯分类
全部资讯
最新活动
商城公告
行业信息
新品推荐
元器件知识
资讯标签
艾迈斯欧司朗(96) 英伟达NVIDIA(70) 艾为awinic(45) 飞腾派V3(37) 萤火工场(30) 罗彻斯特电子(28) Jetson Orin Nano SUPER 开发套件(21) 资料下载专区(18) 艾为 awinic(15) 进迭时空(15) 兆易创新(14) 赛昉科技(StarFive)(12) 灵动微电子(11) 日清纺微电子(9) 小华半导体(9) 上海雷卯Leiditech(8) 赛昉科技(8) 微源半导体 LPSemi(8) NVIDIA(8) Seeed矽递科技(8) GD32VW553-IOT(7) 物奇WuQi(7) 龙芯中科(7) 开源口碑分享(5) 日清纺微电子Nisshinbo(5) 庆科(5) TROQ创捷电子(4) 航顺芯片(4) CEM5826-M11(4) Geehy极海半导体(4) 飞腾派(4) 创捷电子(4) 罗彻斯特(3) 飞腾派eMMC(3) iCEasy商城(3) MM32SPIN060G(3) 一件包邮专区(3) FTHR-G0001(3) NVIDIA品牌专区(2) 华润微电子(2) 口碑评测(2) EVB-L0130(2) 教育优惠申请链接(2) 启明云端(2) 弈安云(2) 飞腾官网飞腾派(2) 村田(2) 飞腾派下载专区(2) 英伟达初创加速计划(2) 极海(2) 中国星坤(2) 极海半导体(2) 小华EVB-HC32F4A0开发板(2) 国产开源硬件(2) 杭晶(HCI)(2) 野火(2) Mini-SPIN0230(2) 雷克沙(1) GD32VW553-IOT V2版本(1) QCS8550 SOM EVB开发板(1) 申请样片:高光效红光OSCONIQ® P 3030, GR QSSPA1.23(1) 台容积电(1) GD32VW553-IOT V2(1) CEM5881-M11(1) NVIDIA Jetson Orin Nano 开发套件(1) 萤火工场品牌专区(1) 商城下载专区(1) Jetson AGX Orin 64GB开发套件(1) 荣湃半导体(2Pai Semi)品牌专区(1) 进迭时空品牌页(1) 飞腾人才赋能(1) Jetson AGX Xavier(32GB)(1) BeagleBoard.org®(1) 社区评奖活动(1) Arduino UNO Rev 4 Minima开发板(1) 下载专区(1) B站风扇视频(1) 国产自主可控(1) 英伟达 NVIDIA(1) CEM5861G-M11(1) 赛昉科技9折活动券(1) NVIDIA Jetson Orin Nano 开发套件(1) Arduino品牌专区(1) NVIDIA DGX™ Spark:桌面级AI超级计算机(1) 品牌清仓(1) QCS8550 SOM EVB(1) Jetson AGX Orin 64GB开发套件(1) 24GHz毫米波雷达模块(1) 技术问答专区(1) 英特尔(1) NVIDIA Jetson Nano 模组(1) QCS6490 SOM EVB(1) 天微电子商家页(1) 国产毫米波雷达模块(1) 瑞隆源产品(1) 龙芯教育派(1) CEK8902-S905D3(1) EV Board (MM32L0136C7P)(1) 迈巨微电子品牌专区(1) 飞腾派专链(1) 世野(Khadas)(1) 618大促(1) 竞买活动(1) 雷卯(1) 飞腾派试用申请链接(1) BeagleBone Black快速入门指南(1) 样片申请(1) NVIDIA NIM(1) 微雪电子(1) 一件免邮专区(1) SFH 7018B(1) 极海半导体(Geehy)(1) Arduino品牌页(1) 飞腾派调研问卷链接(1) 小脚丫(1) 618大促专区(1) 艾为(AWINIC)(1) 英伟达 NVIDIA品牌专区(1) 8月7日竞拍竞买(1) 飞腾派V3版本上新(1) 飞虹半导体(1) MUSE Paper(1) 乐动机器人(1) 海凌科电子(Hi-Link)(1) VF202040-A0(1) 教育优惠(1) 萤火工场GD32VW553-IOT(1) 野火RK3566开发板(1) 润石(1) 格力新元(1) CEM5825F(1) COMBO模组 EMC3020-PZI5(1) 松科智能(1) Jetson AGX Thor 开发套件/模组(1) Mini-F5333(1) 微源半导体(1) 周年抽奖活动(1) 庆科信息(MXCHIP)品牌专区(1) 附件(1) 华大北斗(1) GD32无线生态专区(1) JETSON_AGX_ORIN_64GB_DEVELOPER_KIT(1) QCS6490 SOM EVB开发板(1) 附件下载地址(1) 迈巨微(1)

赛昉科技 |【新技能Get】小伙写了个Python脚本,用高性能RISC-V开发板监测B站未读消息

发布时间:2025-06-24

最近一直在折腾昉·星光VisionFive这块开发板,这是赛昉推出的可运行Linux的RISC-V单板计算机,处理器是赛昉的昉·惊鸿7100 SoC(JH7100),这是一颗RISC-V架构的处理器,工作频率1.0GHz,64位双核,内核性能对标ARM A55。


写入镜像


这块板子的系统运行和树莓派一样,需要先将系统镜像写入内存卡,再插到板子上来运行。目前官方提供的只有 Fedora 这个发行版,可以在GitHub上找到下载链接:https://github.com/starfive-tech/Fedora_on_StarFive

下载完是一个特殊的压缩格式,zst,当前这种zst格式是一种压缩文件,是由ZStandard研发的,作为一种ZStandard压缩文件使用,此文件流行程度是50分(0-100满分)。

需要使用专门的工具才能解压,稍微麻烦了点。工具在这里有提供:

https://rvspace.org/en/Product/VisionFive/Technical_Documents/VisionFive_Single_Board_Computer_Quick_Start_Guide

点击RVspace.org网页左侧的Flashing Fedora OS to a Micro-SD Card可以快速达到。

我是在win10进行操作的,将下载好的解压工具从压缩包里解压出来,和zst文件放在一起。

此时在这个文件夹里的空白处,一只手按住键盘上的Shift键,另一只手按一下鼠标的右键,在此处打开powershell,就可以快速在当前文件夹打开一个命令行窗口。(此处我的 powershell 是自己升级过的,系统自带的是没有带preview的)

执行这条命令就可以解压了,

./zstd.exe -d Fedora-riscv64-jh7100-developer-xfce-Rawhide-20211226-214100.n.0-sda.raw\.zst -o Fedora-riscv64-jh7100-developer-xfce-Rawhide-20211226-214100.n.0-sda.raw

解压出来的文件差不多 13G,可以使用写盘工具将它写入内存卡中,例如etcher。


开机


之后将内存卡插入开发板,使用HDMI线连接显示器,通电开机,便可进入Fedora了。

默认的用户名是riscv,密码是starfive。

由于没有GPU,且本身只是双核,所以桌面体验会有一些卡顿。于是我放弃用鼠标来控制它,而是选择在电脑上通过ssh来控制它。


通过GPIO控制LED灯


通过这个网页,我们可以了解到这块板子的GPIO信息;

https://rvspace.org/en/Product/General/StarFive_40-Pin_GPIO_Header_User_Guide

准备一颗LED灯,一头连接34号的GND,一头连接40号的GPIO0;

在终端里进行如下的操作(需要 root 身份来执行);

cd /sys/class/gpio
echo 448 > export
cd gpio448
echo out > direction
echo 1 > value

这样便能点亮LED灯;

如果想熄灭它,只需执行

echo 0 > value

官方文档里的这个表格非常重要,刚才我们控制 GPIO0,操作的是 448,如果现在我们想控制 GPIO4,从表格可以查到是 452,那么只需将刚才的 448 换成452 即可让 GPIO4 输出高电平。

用Python脚本监测B站未读消息

我写了一个Python脚本,作用是监测哔哩哔哩上面是否有人给我发私信,也就是我是否有未读消息,如果有的话,则点亮LED灯。而当我看我消息后,脚本检测到目前没有未读消息了,则会将LED灯熄灭。

脚本已放在GitHub 上面,有兴趣的朋友可以参考一下。

https://github.com/powersee/bilibili_unread/blob/master/bili-for-visionfive.py

import requests
import time
import os
# 使用time模块的sleep来控制亮灯熄灯时间间隔
# 使用哪一个针脚,例如 448、450、452 等
gpio = 452
led = '/sys/class/gpio/gpio' + str(gpio)

# 通过浏览器的 F12 获取 
cookiecookie = ""

url_mes = 'https://api.vc.bilibili.com/session_svr/v1/session_svr/single_unread?unread_type=0&build=0&mobi_app=web'
headers = {'cookie': cookie}

if os.path.exists(led):
pass
else:    
    os.system(f'echo {gpio} > /sys/class/gpio/export')
    
os.system(f'echo out > {led}/direction')
# 将引脚设置为输出端

# 获取未读消息数量
unread = requests.get(url_mes, headers=headers).json()
unfollow_unread = unread['data']['unfollow_unread']
follow_unread = unread['data']['follow_unread']
num = unfollow_unread + follow_unread
# 如果有未读消息,将未读数量打印出来
    if num:   
       print(num)
#GPIO.output(ioNum, GPIO.HIGH)    
    os.system(f'echo 1 > {led}/value')    
    print(time.asctime(time.localtime(time.time())))
# 引脚输出高电平,LED灯亮起
else:
#    print("No message.")
#GPIO.output(ioNum, GPIO.LOW)    
    os.system(f'echo 0 > {led}/value')
# 引脚设置为低电平,LED灯熄灭

此外,Powersee在RVspace.org和他的博客上分享了另外两篇使用心得,分别是VisionFive串口调试与编译内核RISC-V开源软件安装与编译内核,感兴趣的朋友可自行查看~



想要了解及购买赛昉科技(StarFive)产品,请前往iCEasy商城品牌专区:

https://www.iceasy.com/starfive

iCEasy商城欢迎您的到来!