Vincent2012

  • 2025-02-10
  • 回复了主题帖: 【Luckfox Pico Max评测】音频测试

    小麦克 发表于 2025-2-10 13:06 芯片都一样,只是为了测试音频,原理都一样。 买现成的,不需要自己焊接。 但是摄像头可以跑AI示例你还没做呢

  • 2025-02-09
  • 回复了主题帖: 【Luckfox Pico Max评测】音频测试

    可以算MAX的评测吗?这不是MAX啊

  • 回复了主题帖: 【年终回炉:Luckfox幸狐 RV1106 Linux 开发板评测连载】5.PWM点亮LED灯

    秦天qintian0303 发表于 2025-2-9 08:48 这摄像头看着不错啊    对啊

  • 2025-02-08
  • 发表了主题帖: 【年终回炉:Luckfox幸狐 RV1106 Linux 开发板评测连载】6.AI示例+点灯

    本帖最后由 Vincent2012 于 2025-2-8 19:45 编辑 # 前言 感谢幸狐和电子工程世界论坛提供的这次机会让我有机会体验Luckfox幸狐 RV1106 Linux 开发板这款开发板,希望可以借这个机会好好学习一下。而前几篇慌忙补了AI示例,点灯,就是要综合这一篇。 # 项目简介 这个项目结合了YOLOv5目标检测算法和前面文章的两种点灯方式,实现了一个智能照明系统。具体来说: 1.**GPIO控制的智能电灯**:通过YOLOv5检测摄像头画面中是否有人。如果检测到人,GPIO控制的LED灯会亮起;如果没有检测到人,LED灯会熄灭。这种方式实现了基本的智能照明功能,可以根据人的存在与否自动开关灯。 2.**PWM控制的LED可视化**:除了简单的开关灯功能,项目还模拟了检测到的人的“可视化”效果。通过PWM控制的LED灯,根据检测到的人的匹配度(confidence score)动态调整LED灯的亮度。匹配度越高,LED灯的亮度越高;匹配度越低,LED灯的亮度越低。这种方式不仅提供了照明功能,还能直观地展示检测到的人的置信度。 # 项目实现 整个项目的难度在于python运行YOLOV5的示例,以及如何实时获取日志,这里使用内置库`subprocess`进行运行YOLOV5的示例,以及实时获取日志。而第二个还需要获取日志的匹配度,这里使用内置库`re`实现。 GPIO版,参考代码如下: ```python from periphery import GPIO import subprocess import time def run_command(command):     """     使用subprocess运行命令并实时读取输出     """     process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)     while True:         output = process.stdout.readline()         if output == '' and process.poll() is not None:             break         if output:             yield output.strip()     process.stdout.close()     process.wait() def main():     # 创建GPIO对象     led = GPIO(55, "out")     try:         # 设置开发板的文件路径和示例程序名称         example_folder = "luckfox_pico_rtsp_yolov5_demo"  # 替换为实际的示例文件夹名称         example_executable = "luckfox_pico_rtsp_yolov5"  # 替换为实际的示例可执行文件名称         # 构造完整的命令         command = f"cd {example_folder} && chmod a+x {example_executable} && ./{example_executable}"         # 运行命令并实时处理输出         print("正在运行示例程序...")         for output in run_command(command):             print(output)  # 打印输出内容             if "person" in output.lower():                 print("检测到人,点亮LED灯")                 led.write(True)  # 点亮LED             else:                 led.write(False)  # 熄灭LED             time.sleep(0.1)  # 防止过快切换导致闪烁     finally:         # 确保LED灯熄灭并释放GPIO资源         led.write(False)         led.close()     print("finish") if __name__ == "__main__":     main() ``` PS:整份代码不难理解,就是先初始化LED灯,接着运行示例,实时监听日志输出,当日志中含有`person`时点亮LED灯,反之熄灭LED灯。 PWM版,参考代码如下: ```python from periphery import PWM import subprocess import re import time def run_command(command):     """     使用subprocess运行命令并实时读取输出     """     process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)     while True:         output = process.stdout.readline()         if output == '' and process.poll() is not None:             break         if output:             yield output.strip()     process.stdout.close()     process.wait() def main():     # 初始化PWM     pwm = PWM(10, 0)  # PWM芯片号和通道号     pwm.frequency = 1000  # 设置频率为1000 Hz     pwm.duty_cycle = 0  # 初始占空比为0     pwm.polarity = "normal"  # 设置极性为正常     pwm.enable()  # 启用PWM     try:         # 设置开发板的文件路径和示例程序名称         example_folder = "luckfox_pico_rtsp_yolov5_demo"  # 替换为实际的示例文件夹名称         example_executable = "luckfox_pico_rtsp_yolov5"  # 替换为实际的示例可执行文件名称         # 构造完整的命令         command = f"cd {example_folder} && chmod a+x {example_executable} && ./{example_executable}"         # 运行命令并实时处理输出         print("正在运行示例程序...")         for output in run_command(command):             print(output)  # 打印输出内容             # 使用正则表达式匹配匹配度             match = re.search(r"person @ \(\d+ -\d+ \d+ \d+\) (\d+\.\d+)", output)             match1 = re.search(r"person @ \(\d+ \d+ \d+ \d+\) (\d+\.\d+)", output)             if match:                 confidence = float(match.group(1))  # 提取匹配度                 print(f"检测到人,匹配度:{confidence}")                 pwm.duty_cycle = confidence  # 设置PWM占空比为匹配度                 pwm.duty_cycle = round(pwm.duty_cycle, 2)  # 保留两位小数             elif match1:                 confidence = float(match1.group(1))  # 提取匹配度                 print(f"检测到人,匹配度:{confidence}")                 pwm.duty_cycle = confidence  # 设置PWM占空比为匹配度                 pwm.duty_cycle = round(pwm.duty_cycle, 2)  # 保留两位小数             else:                 pwm.duty_cycle = 0  # 如果没有检测到人,占空比设为0             #time.sleep(0.05)  # 防止过快切换导致闪烁     except KeyboardInterrupt:         pass     finally:         pwm.duty_cycle = 0  # 确保PWM占空比为0         pwm.disable()  # 禁用PWM         pwm.close()  # 释放PWM资源     print("示例程序运行完成。") if __name__ == "__main__":     main() ``` PS:整份代码也不难理解,就是先初始化PWM LED灯,接着运行示例,实时监听日志输出,当日志中含有`person`时提取匹配度,设为PWM的占空比即可。 # 效果 [localvideo]529de55ea9259472c1b00b961099baa1[/localvideo] 效果不错但是还是有点小问题的还需要大佬的指导和改进。

  • 发表了主题帖: 【年终回炉:Luckfox幸狐 RV1106 Linux 开发板评测连载】5.PWM点亮LED灯

    本帖最后由 Vincent2012 于 2025-2-8 11:44 编辑 # 前言 感谢幸狐和电子工程世界论坛提供的这次机会让我有机会体验Luckfox幸狐 RV1106 Linux 开发板这款开发板,希望可以借这个机会好好学习一下。 # 连接 不多说了,参考我上一篇即可。 # PWM介绍 PWM(Pulse Width Modulation,脉冲宽度调制)是一种常见的信号调制技术,广泛应用于电子电路、电机控制、通信等领域。 基本原理 PWM信号是一种特殊的方波信号,其周期固定,但高电平(脉冲)的持续时间(即脉冲宽度)可以变化。通过改变脉冲宽度占整个周期的比例(占空比),可以实现对信号幅值的等效调节。例如,当占空比为50%时,信号的平均幅值相当于最大幅值的一半;占空比为25%时,平均幅值为最大幅值的四分之一。 主要应用 1. 电机调速 • PWM是直流电机调速的常用方法。通过改变PWM信号的占空比,可以调节电机的输入电压,从而实现对电机转速的精确控制。例如,在无人机的电机控制中,PWM信号根据飞行姿态和动力需求动态调整电机转速,确保飞行稳定。 • 对于交流电机,PWM技术也常用于变频器中,通过调制逆变器的开关信号,改变电机的供电频率和电压,实现电机的变速运行。 2. 电源管理 • 在开关电源中,PWM控制器根据输出电压和电流的反馈信号,调整开关管的导通时间,从而调节电源的输出功率。这种调制方式可以提高电源的转换效率,降低功耗,并且能够快速响应负载变化。 • 例如,笔记本电脑的电源适配器通常采用PWM控制,将交流电转换为稳定的直流电,为电脑提供高效、稳定的电源。 3. 照明控制 • PWM可用于控制LED灯的亮度。通过改变PWM信号的占空比,可以调节LED的平均电流,从而实现无级调光。这种方式不仅能够实现精确的亮度控制,还可以避免传统调光方式(如电阻分压)带来的功耗增加和发热问题。 4. 通信与信号处理 • 在通信领域,PWM可以作为一种调制方式,将数字信号或模拟信号转换为脉冲宽度变化的信号进行传输。接收端通过解调脉冲宽度,恢复原始信号。例如,在一些简单的无线通信模块中,PWM信号可以用于传输低速数据。 优点 1. 高效率:PWM信号通过控制开关元件的导通和截止来调节输出功率,开关元件在导通和截止状态下功耗较低,因此整个系统的能量转换效率较高。 2. 精确控制:通过精确调节占空比,可以实现对输出信号或功率的精确控制,适用于需要高精度调节的场合。 3. 简单易实现:PWM信号的生成和控制相对简单,可以通过简单的数字电路或微控制器实现,成本较低。 缺点 1. 电磁干扰:PWM信号的快速开关特性会产生高频电磁干扰,可能对周围的电子设备造成干扰。因此,在实际应用中需要采取适当的电磁屏蔽和滤波措施。 2. 谐波问题:PWM信号中包含丰富的谐波成分,可能对电源质量产生影响。在一些对电源质量要求较高的场合,需要进行谐波滤波处理。 PWM技术因其高效、精确和易于实现的特点,在现代电子系统中得到了广泛应用,是电子工程师常用的工具之一。 # PWM点灯 官方文档一看好像就只有Python的方法较为简单,所有本评测使用Python进行PWM的控制。 ## 1.启用PWM 这个比较简单,官方文档也有说明,使用以下命令进行配置: ```shell luckfox-config ``` 进入配置页面后,选择 Advanced Options: ![](https://wiki.luckfox.com/zh/assets/images/luckfox-advanced-d7f7de423fbe04c62148ae37632ed445.png) 选择 PWM: ![](https://wiki.luckfox.com/zh/assets/images/Luckfox-config-pwm-771fd368a5018289119868e48618c989.png) 选择想要打开的 PWM 接口,这里以 PWM7_M1 为例: ![](https://wiki.luckfox.com/zh/assets/images/Luckfox-config-pwm7-f16974a974be531a76699cf2e4c13659.png) 选择enable,当选择回车确认后,按esc退出: ![](data:image/png;base64,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) 官方在最后一步似乎重启了一次,但我这边实测不用重启可以使用,如果后面无法使用的话先重启试试看。 ## 2.呼吸灯 这里因为shell的方法也较为麻烦所有使用Python进行开发,注意pwm对应接口要打开否则无法使用,参考PWM10接口代码如下: ```python from periphery import PWM import time pwm = PWM(10, 0)   try:     pwm.frequency = 1000     pwm.duty_cycle = 0     pwm.polarity = "normal"     pwm.enable()     direction = 1       while True:         pwm.duty_cycle += 0.1 * direction         pwm.duty_cycle = round(pwm.duty_cycle, 2)         if pwm.duty_cycle == 1.0:             direction = -1         elif pwm.duty_cycle == 0.0:             direction = 1                      time.sleep(0.05) except KeyboardInterrupt:     pass finally:     pwm.close() ``` 此时LED灯渐渐的从暗到亮,再从亮到灭。 ## 3.流水呼吸灯 这个是上一篇和这一篇的一个融合,参考代码如下: ```python from periphery import PWM import time pwm1 = PWM(10, 0)   pwm2 = PWM(9, 0)   try:     pwm1.frequency = 1000     pwm1.duty_cycle = 0     pwm1.polarity = "normal"     pwm1.enable()     pwm2.frequency = 1000     pwm2.duty_cycle = 0     pwm2.polarity = "normal"     pwm2.enable()     direction = 1       while True:         pwm1.duty_cycle = 0         for _ in range(0,20,1):             pwm1.duty_cycle += 0.1 * direction             pwm1.duty_cycle = round(pwm1.duty_cycle, 2)             if pwm1.duty_cycle == 1.0:                 direction = -1             elif pwm1.duty_cycle == 0.0:                 direction = 1                            time.sleep(0.05)         pwm2.duty_cycle = 0         for _ in range(0,20,1):             pwm2.duty_cycle += 0.1 * direction             pwm2.duty_cycle = round(pwm2.duty_cycle, 2)             if pwm2.duty_cycle == 1.0:                 direction = -1             elif pwm2.duty_cycle == 0.0:                 direction = 1                            time.sleep(0.05)          except KeyboardInterrupt:     pass finally:     pwm1.close()     pwm2.close() ``` # 效果 [localvideo]049ba5b6361bee41f1aa5059b8b03079[/localvideo]

  • 2025-02-07
  • 回复了主题帖: 【年终回炉:Luckfox幸狐 RV1106 Linux 开发板评测连载】4.点亮LED灯

    本帖最后由 Vincent2012 于 2025-2-7 19:50 编辑 想凑个新年花灯的热闹,但是不允许  

  • 回复了主题帖: 【年终回炉:Luckfox幸狐 RV1106 Linux 开发板评测连载】4.点亮LED灯

    lugl4313820 发表于 2025-2-7 09:24 点上灯,说明工程已搞好了99%了,接着可以欣赏大佬更加精彩的作品了。 嗯,加油

  • 2025-02-06
  • 回复了主题帖: 【年终回炉:Luckfox幸狐 RV1106 Linux 开发板评测连载】4.点亮LED灯

    流水灯: [localvideo]5093d6731cf140fc03795189e1fe67e1[/localvideo]  

  • 发表了主题帖: 【年终回炉:Luckfox幸狐 RV1106 Linux 开发板评测连载】4.点亮LED灯

    本帖最后由 Vincent2012 于 2025-2-7 19:49 编辑 # 前言 感谢幸狐和电子工程世界论坛提供的这次机会让我有机会体验Luckfox幸狐 RV1106 Linux 开发板这款开发板,希望可以借这个机会好好学习一下。 # 连接 很简单,用一个LED灯正极连接1K电阻再接到引脚上,负极接上GND即可,这篇文章以接在GPIO1_C7_d引脚上为示例。 # 点亮LED灯 官方文档中提zai供三种点亮方法,其中Shell和Python的方法较为简单,所以我们使用两种方法进行点亮LED灯: ## 1.GPIO 编号计算 以我们接的引脚为例说明,其中: `bank` :1 `group` :2 (A=0, B=1, C=2, D=3) `X` :7 所以 GPIO1_C7_d 的引脚编号为:1 x 32 + ( 2 x 8 + 7 ) = 55 ## 2.Shell点亮LED灯 首先,我们的引脚并没有导入到用户空间中,所以我们使用以下命令导入: ```shell echo 55 > /sys/class/gpio/export ``` 接着,我们设置引脚为输出模式: ```shell echo out > /sys/class/gpio/gpio55/direction ``` 最后,我们可以使用命令点亮LED灯了: ```shell echo 1 > /sys/class/gpio/gpio55/value ``` 点亮后要把GPIO解除了使用以下命令即可: ```shell echo 0 > /sys/class/gpio/gpio55/value echo 55 > /sys/class/gpio/unexport ``` 这样我们完成了再Shell中的点亮LED灯 ## 3.Python点亮LED灯 Python就很简单了,我们的系统中自带`python-periphery`库,而`python-periphery` 是一个用于与Linux外围设备交互的Python库,支持GPIO、I2C、SPI等硬件接口的编程。 所以使用这个库我们可以轻而易举的点亮LED灯,参考代码如下: ```python from periphery import GPIO import time led = GPIO(55,"out")#创建GPIO对象 try:     while True:         led.write(True)         time.sleep(1)         led.write(False)         time.sleep(1) finally:     led.write(False)     led.close() ``` 整个代码步骤和上面的Shell点亮LED灯差不多,理解起来挺简单的不多说了。 ## 4.Python点亮流水灯 流水灯也是很简单的东西,多接几个LED灯就行,这时Shell点亮就变得麻烦多了所以我们还是使用Python点亮,作者这里接了三个,GPIO编号分别为55,54,53,参考点亮流水灯代码如下: ```python from periphery import GPIO import time led1 = GPIO(55,"out")#创建GPIO对象 led2 = GPIO(54,"out")#创建GPIO对象 led3 = GPIO(53,"out")#创建GPIO对象 try:     while True:         led3.write(False)         led1.write(True)         time.sleep(1)         led1.write(False)         led2.write(True)         time.sleep(1)         led2.write(False)         led3.write(True)         time.sleep(1) finally:     led1.write(False)     led1.close()     led2.write(False)     led2.close()     led3.write(False)     led3.close() ``` # 效果 [localvideo]7c700c6a1b148f56d9e209412e99a9a1[/localvideo][localvideo]b6403ba184ec822c070064a37f04995b[/localvideo]

  • 回复了主题帖: 祝福2025!回帖即有奖!选取最有心的送5块国产开发板!

    我想要玩micropython板子

  • 2025-02-05
  • 回复了主题帖: 【年终回炉:Luckfox幸狐 RV1106 Linux 开发板评测连载】3.刷buildroot跑AI示例

    编译后的程序:

  • 2025-02-02
  • 回复了主题帖: 有没有在RV1106开发板的buildroot上安装opencv-python的大佬,教我安装?

    qiao--- 发表于 2025-2-2 12:03 把opencv的库安装在其他外扩存储空间上,加上软链接,看我往期测评 在哪里呢?

  • 发表了主题帖: 有没有在RV1106开发板的buildroot上安装opencv-python的大佬,教我安装?

    有没有在RV1106开发板的buildroot上安装opencv-python的大佬,教我安装?我一直提示空间不够Luckfox幸狐 RV1106 Linux 开发板问题求助 https://bbs.eeworld.com.cn/thread-1305427-1-1.html

  • 2025-01-27
  • 回复了主题帖: 【年终回炉:Luckfox幸狐 RV1106 Linux 开发板评测连载】1.开箱及烧录官方固件

    lugl4313820 发表于 2025-1-27 15:12 强呀,这AI有这么智能了吗?可不可帮你烧固件? 烧固件一般文档就有,有问题才问AI的

  • 回复了主题帖: Luckfox幸狐 RV1106 Linux 开发板问题求助

    lugl4313820 发表于 2025-1-27 15:15 那是不是权限不够,不给你往卡里写东西?修改一下权限看看。 怎么操作啊,我不太会

  • 回复了主题帖: Luckfox幸狐 RV1106 Linux 开发板问题求助

    walker2048 发表于 2025-1-27 12:51 SD卡的话,先做rootfs扩容(网上很多教程,自己搜吧),然后再装大型软件。查看剩余空间可以用df -h命令。 ... [root@luckfox root]# df -h Filesystem                Size      Used Available Use% Mounted on /dev/root                 5.8G    244.8M      5.4G   4% / devtmpfs                 90.6M         0     90.6M   0% /dev tmpfs                    90.7M         0     90.7M   0% /dev/shm tmpfs                    90.7M    164.0K     90.5M   0% /tmp tmpfs                    90.7M    564.0K     90.1M   1% /run /dev/block/by-name/userdata                         237.9M     74.0K    228.6M   0% /userdata /dev/block/by-name/oem                         487.6M     19.6M    452.0M   4% /oem 我的SD卡空间够但是,就会报错

  • 回复了主题帖: Luckfox幸狐 RV1106 Linux 开发板问题求助

    lugl4313820 发表于 2025-1-27 11:13 这个提示是磁盘空间没有了,是不是换个大点的闪存,或者指定位置安装。 具体怎么做,能不能示范下

  • 回复了主题帖: 【年终回炉:Luckfox幸狐 RV1106 Linux 开发板评测连载】1.开箱及烧录官方固件

    lugl4313820 发表于 2025-1-27 11:21 他们家族的下载器都是一样,跟RK3568等的界面一样,不知道对数据要求高不高。 ai生成: RV1106和RK3568的下载器界面和功能较为相似,都支持基本的文件选择和烧录进度显示。在数据要求方面,RK3568支持更多种类的内存和存储接口,适合对内存和存储有较高要求的应用场景。RV1106则更适合对成本敏感且对内存和存储要求不高的应用场景

  • 回复了主题帖: 【年终回炉:Luckfox幸狐 RV1106 Linux 开发板评测连载】2.联网使用SSH

    lugl4313820 发表于 2025-1-26 22:33 这个是接USB,还是接网线进行连接的,接路由器不是方便一些吗? 反正怎么方便怎么来嘛,路由器离得比较远懒得弄了

  • 2025-01-26
  • 发表了主题帖: Luckfox幸狐 RV1106 Linux 开发板问题求助

      本人因为要安装oencv库,但是SPI NAND和SD卡刷入系统都是遇到同一个问题,请问各位玩过的大佬怎么解决?

最近访客

< 1/2 >

统计信息

已有12人来访过

  • 芯积分:81
  • 好友:--
  • 主题:8
  • 回复:23

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言