【赛昉·星光2】开发系统安装及 GPIO 点灯
分享作者:lijinlei
作者昵称:无垠的广袤
评测品牌:赛昉科技
评测型号:VF202040-A0
申请理由(产品应用):本人是华东师范大学精密光谱科学与技术国家重点实验室的博三研究生,专业为光学,主要从事光学器件和设备的开发和维护,熟练掌握和使用各种软硬件开发环境,具有丰富的实验仪器操控和数据采集经验,依托超净实验室丰富的软硬件资源,实现各种多设备联动及数据采集需求。 实验室现具备的相关实验设备包括Light Conversion公司生产的宽带可调激光器,飞秒和皮秒光学参量放大器,Newport公司生产的高精密光学延迟平台、Thorlabs公司生产的旋转光学平台、功率计和平衡差分探测器、锁相放大器、真空低温恒温器、Andor Solis公司生产的三光栅光谱仪、示波器、信号发生器、电光调试器(EOM)等。 因此申请该开发板,期望能高效率实现多设备联合调用、数据采集,并与LabVIEW、MATLAB、Fortran等科学计算软件结合,充分释放开发板性能,在数据的采集和处理过程中发挥更大作用,为实验与科研提供更高效、更有力的支持。
发布时间:2024-10-09 09:13:23
0
前言
昉·星光2 开发板 Debian 系统安装及 GPIO 点灯
开源口碑分享内容

【赛昉·星光2】开发系统安装及 GPIO 点灯

开发板将安装和使用 Debian 操作系统,并基于此系统控制开发板 GPIO 输出高低电平和 LED 的亮灭。

所需硬件包括赛昉·星光 2 开发板、电源适配器(5V 3A)、Micro-SD 卡(32GB)一张、读卡器x1、电脑。

1.下载 Debian 镜像 文件,并选择更新日期最新的 SD 版本;

Debian 是一个广泛用于各种设备的基于 Linux 的操作系统,由免费和开放源代码的软件组成,并将始终保持 100% Free .

2.使用解压软件或代码

bzip2 -d <filename>.img.bz2

解压下载的 *.img.bz2 文件;

3.下载并安装 BalenaEtcher 烧录软件,用以将系统镜像写入 SD 卡;

4.运行 BalenaEtcher 软件,加载解压后的镜像 *.img 文件,选择目标 SD 卡,烧录至 SD 卡。

5.烧录完成后将 SD 卡插入开发板卡槽,连接 HDMI 与显示器,USB 转 TTL 串口工具连接 GPIO 接口(TX 和 RX)如下图所示

6.打开串口助手连接对应端口,电源适配器通过 Type-C 数据线给开发板上电,此时串口输出安装系统的相关信息,并弹出登录提示

7.输入默认用户名 user 或 root,密码 starfive 即可进入 Debian 系统。

8.同理 HDMI 显示器显示登录界面,输入密码进入系统,桌面如下图所示

视频展示如下

从视频中可以获得开发板的硬件信息、CPU模组信息、内存信息等。 系统运行稳定,较为流畅,操作存在略微延迟,系统动画柔和顺畅,UI界面和配色非常舒适,整体的体验感受不错。


分区

对于 fdisk 不可用的情况,需要将 fdisk 路径添加到检索路径中,首先通过如下代码获取检索路径

echo $PATH

再搜索目标命令 fdisk 的路径

whereis fdisk

fdisk 命令的路径添加至检索路径

ln -s /usr/bin/sbin/fdisk /usr/local/bin

调整分区大小

通过命令 resize2fs 实现分区大小的调整

安装 pip

apt-get install python3-pip

执行 pip 命令,首先安装依赖包

apt install libxml2-dev libxslt-devpython3 -m pip install requests wget bs4

脚本安装

通过 nano 编辑器新建 py 脚本

1.安装 nano

通过如下代码

apt-get install -y nano

sudo apt install nano

检查系统上安装的 nano 版本

nano --version

2.使用时调用 nano 命令,后面添加目标文件名路径即可

nano /home/user/Documents/Install_VisionFive_gpio.py

若目标路径不存在文件,可先编辑之后 Ctrl + X 保存并退出 nano 即可。

Install_VisionFive_gpio.py 脚本代码如下

import requestsimport wgetimport sysimport osfrom bs4 import BeautifulSoup​def parse_data(link_addr, class_type, key_str):    req = requests.get(url=link_addr)    req.encoding = "utf-8"    html=req.text    soup = BeautifulSoup(req.text,features="html.parser")    package_version = soup.find(class_type,class_=key_str)    dd = package_version.text.strip()    data = dd.split()    return data​def parse_link(link_addr, class_type, key_str):    req = requests.get(url=link_addr)    req.encoding = "utf-8"    html=req.text    soup = BeautifulSoup(req.text,features="html.parser")    search_data = soup.find(class_type,class_=key_str)    search_data_2 = search_data.find("a")    dl_link_get = search_data_2.get("href")     return dl_link_get​def get_dl_addr_page():    link_address = "https://pypi.org/project/VisionFive.gpio/#history"    key_str = "release__version"    class_key = "p"    data_get = parse_data(link_address, class_key, key_str)    latest_version = data_get[0]​    dl_addr_page = "https://pypi.org/project/VisionFive.gpio/{}/#files".format(latest_version)​    return dl_addr_page​def get_dl_addr_of_latest_version(link_addr):    key_str = "card file__card"    class_key = "div"    addr_get = parse_link(link_addr, class_key, key_str)​    return addr_get​def main():    dl_addr_p =  get_dl_addr_page()    whl_dl_addr = get_dl_addr_of_latest_version(dl_addr_p)​    whl_name = whl_dl_addr.split("/")[-1]    whl_name_suffix = os.path.splitext(whl_name)[-1]    whl_name_prefix = os.path.splitext(whl_name)[0]    whl_name_prefix_no_platform = whl_name_prefix[0: len(whl_name_prefix) - 3]    new_platform = "linux_riscv64"​    rename_whl_name = "{}{}{}".format(whl_name_prefix_no_platform, new_platform, whl_name_suffix)​    wget.download(whl_dl_addr, out=rename_whl_name)​    os.system("pip install " + rename_whl_name)    os.system("rm -rf " + rename_whl_name)​​if __name__ == '__main__':    sys.exit(main())

此外还可以新建文档再进行编辑

touch /home/user/new.txt

若文档权限是只读,则需要修改权限,通过如下代码

sudo chmod a+w /home/user/new.txt

运行脚本代码命令如下

python3 Install_VisionFive_gpio.py

执行点灯代码

获取 VisionFive.gpio 所在目录

pip show VisionFive.gpio

进入目录并运行 led.py 脚本

cd /usr/local/lib64/python3.9/site-packagescd ./VisionFive/sample-code/sudo python3 led.py

led.py 脚本代码如下

import VisionFive.gpio as GPIOimport timeled_pin = 22#Configure the direction of led_pin as output.GPIO.setup(led_pin, GPIO.OUT)def light(delay):     #Configure the voltage level of led_pin as high.    GPIO.output(led_pin, GPIO.HIGH)    time.sleep(delay)     #Configure the voltage level of led_pin as low.    GPIO.output(led_pin, GPIO.LOW)    time.sleep(delay)if __name__ == '__main__':     try:        delay_s = input("Enter delay(seconds): ")        delay = float(delay_s)                 while True:            light(delay)      finally:        GPIO.cleanup()



全部评论
暂无评论
0/144