ETRD

Electronic Technology Research&Development


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

在嵌入式终端上基于本地大模型实现的离线语音聊天机器人

发表于 2024-11-10 | 分类于 大模型 | | 阅读次数:

引言

今年上半年,我曾在基于RK3566的嵌入式开发板上本地部署并运行大模型,当时仅能在终端界面使用文字进行交互,而我的进一步目标是实现本地的大模型语音交互。但限于我手里的开发板内存不足,无法加载本地的语音识别模型,同时经费有限,只能暂时搁置。下半年,遇到电源网和得捷举办DIY活动,提供600元的经费报销,使得该项目得以继续。

本文将介绍在嵌入式终端上,基于本地大模型实现的多语言离线语音聊天机器人。其中,语音识别、大模型推理、文字转语音(TTS)都是在嵌入式终端基于本地模型实现的,无需接入互联网环境。

特点

  • 基于嵌入式终端实现
  • 无需联网,完全离线运行
  • 多语言支持(中、英)
  • 代码开源,推理模型易部署及更换

硬件环境

  • Raspberry Pi 5(quad-core Arm Cortex A76 processor @ 2.4GHz, 8GB RAM)
  • WM8960 音频模块
  • 2寸LCD主屏+ 0.96寸OLED双副屏

rasp

阅读全文 »

在基于RK3566的嵌入式开发板上本地部署并运行大模型

发表于 2024-05-05 | 分类于 大模型 | | 阅读次数:

概述

当前,在大模型开源的大背景下,我们已不再满足于通过在线网页、API调用等方式使用大模型,而是希望在本地个人计算机部署运行。众所周知,本地运行大模型,对CPU/GPU有极大的算力要求,个人计算机显得遥不可及。但大模型中也逐渐出现了一些”小”体积的模型,如微软最近开源的phi3mini,这让普通个人计算机离线运行成为可能。而我希望在性能更加局限的嵌入式设备上运行离线大模型,本文将基于RK3566嵌入式开发板(lubancat),介绍离线运行qwen1.5大模型的步骤。

嵌入式环境

  • 处理器:RK3566(4核A55,1.8GHz)
  • 存储:2G RAM + 8G eMMC(可SD卡扩展)
  • 系统:debian 10.13
  • uname信息:Linux lubancat 4.19.232 #5 SMP Sat May 20 08:56:33 CST 2023 aarch64 GNU/Linux

运行框架

本文使用Ollama作为运行框架,Ollama 是一个便于本地部署和运行大型语言模型的工具,它有如下特性:

  • 支持本地运行多种大模型,包括Llama 3、Phi-3、Gemma等
  • 支持跨平台:Linux/macOS/Windows
  • 支持通过GGUF导入模型
阅读全文 »

当前几种使用ChatGPT的方式汇总推荐

发表于 2023-06-24 | 分类于 ChatGPT | | 阅读次数:

引言

自2022年,OpenAI发布基于大语言模型的ChatGPT以来,真正让普通人感受了到人工智能的魅力。此前人工智能可能多用于图像识别、大数据处理等领域,但这些领域门槛太高,普通人难以切身体验。而已存在多年的智能聊天机器人(如微软小冰)、智能音箱(小爱、小度、天猫精灵等),只能识别特定关键词语和命令,堪称智障。作为21世纪的打工人,应该要了解一下当前几种使用ChatGPT的方式方法。

官方原版

官方的ChatGPT,我将其归类为官方网页版及官方KEY版,其中官方网页版应该是门槛最高的。

  1. 官方网页版

    官方网页版,需要在openai.com官网注册一个账号,然后在官网发起对话。这需要两个门槛:特别的科学上网节点以打开网页(如:非亚洲节点)+特别的手机号码以接收注册验证码(如:sms-activate.org)+可能还需要特别的浏览器配合(如:Chrome或Edge)。这意味着普通的科学上网和普通的国外手机号不一定能解决上述两个问题。优点:一旦成功后,可以一直免费使用;缺点:门槛高,由于网络环境问题,会话稳定性比较低。

阅读全文 »

树莓派上基于Python编写按键驱动程序

发表于 2023-05-14 | 分类于 树莓派 | | 阅读次数:

引言

手里一直有两块RaspberryPi ZeroW板子闲置,最近想玩起来,但最基本的一台微型电脑,除了主板之外,还需要输入输出设备。我对于微型掌机(MINI型的显示/输入)比较感兴趣,于是干脆买了一款基于树莓派的游戏机的配件Game_HAT。该配件配有3.5寸液晶屏可用于输出显示,有一个4方向的遥感按键以及N个独立按键可用于基本输入。配件提供的是游戏系统,我不感兴趣,我希望在官方RaspberryPi的系统中,编写一个驱动程序,将4向摇杆按键和2个独立按键模拟成鼠标的功能。而编写内核驱动稍微复杂,于是决定使用Python来实现。

硬件准备

根据Game_HAT资料,其屏幕是HDMI接口,因此将RaspberryPi ZeroW插到套件排座上,然后通过MINI HDMI转标准HDMI直接连接屏幕即可。至于按键连接的管脚编号,Game_HAT也已给出,本驱动目前只用到四向摇杆+Y/B按键。

排针引脚编号 功能 对应引脚编号(BCM和WiringPi两种)
29 UP BCM=5,WPI=21
31 DOWN BCM=6,WPI=22
33 LEFT BCM=13,WPI=23
35 RIGHT BCM=19,WPI=24
38 Y BCM=20,WPI=28
37 A BCM=26,WPI=25

硬件

阅读全文 »

基于WioTerminal的联网天气预报仪

发表于 2021-12-25 | 分类于 物联网 | | 阅读次数:

概述

本项目基于Wio Terminal开发平台,通过板载WIFI模块联网,使用和风天气提供的免费API获取实时天气、空气质量及未来三天的变化情况,然后通过LVGL GUI在屏幕上进行显示。本文将对该项目的实现思路及关键技术细节进行描述。

项目来源

Funpack 第12期,任务二:

制作一个自动联网的天气预报仪,在设计界面显示温湿度、天气情况、空气质量以及未来三天内的天气变化。

本项目完成效果如下:

tab12

Wio Terminal平台

高度集成的设计

MCU, LCD, WIFI, BT, IMU, 麦克风, 蜂鸣器, microSD Card, 光传感器, 五向开关, 光传感器和红外发射器 (IR 940nm), 加密验证

由Microchip ATSAMD51P19提供支持
  • ARM Cortex-M4F运行速度 120MHz (最高可达200MHz)
  • 4 MB 外置闪存, 192 KB RAM
强大的无线连接
  • 双频 2.4Ghz / 5Ghz Wi-Fi (802.11 a/b/g/n)
  • BLE / BLE 5.0
软件支持
  • Arduino
  • MicroPython
阅读全文 »

当代电子工程专业学生应该知道的几个宝藏网站

发表于 2021-12-19 | 分类于 随笔/感悟 | | 阅读次数:

引言

随着互联网及时代的飞速发展,不得不感慨,现在的学习环境和学习条件实在太好了。在电子学专业方向,很多企业/团队推出了一系列活动,使得我们几乎可以0成本的获得学习资源。但这些活动参与方式及大门钥匙可能不少人还不知道,所以我在此将多年来收集的宝藏网站汇总列出,或许可以给到部分学生以帮助。

背景

大学是时间最多,但也是人生中最穷的阶段。在电子工程专业上,如果要进行一些自主学习,不可避免的需要一定的资金支出。例如,手工制作一块简单的PCB板,就需要购买铜板、转印纸、腐蚀溶液,元件另算;购买一块单片机开发板,可能就是半个月的生活费。我作为一个曾经靠国家助学贷款完成学业的学生,体会颇深,毫不夸张的说贫穷会可能限制我们的学习能力。好在,那个需要省吃俭用来买元件、买开发板的时代已经过去了。

免费福利网站

  1. 免费PCB打样
    • 首选:深圳嘉立创;官网:https://www.jlc.com/;

      单层、双层、四层PCB全免费打样,每月2次,详细说明:https://www.jlc.com/portal/q7i28704.html

    jlc

    • 备选:杭州捷配;官网:https://www.jiepei.com/

      单层、双层、四层PCB全免费打样,每月2次,详细说明:https://www.jiepei.com/Activity/newfree.html

    jppcb

    是的,做PCB不再需要自己买铜板转印腐蚀钻孔了,直接免费工业打板,还是顺丰包邮,与未来入职企业工作无缝衔接。按我们读书时候的经验,每月2次额度完全足够。

    提醒:企业运营有成本,抱着感恩的心态,理性合理使用免费额度。

阅读全文 »

WinHex快速生成指定大小随机数组的方法

发表于 2021-11-21 | 分类于 C语言 | | 阅读次数:

概述

在某些场景下,我们的嵌入式C代码中需要插入一个较大的随机数组,此时可以使用WinHex软件快速生成,而无需做很多额外的重复工作,本文即对这种方法进行介绍。

步骤

  1. 使用WinHex新建一个目标大小(如128K)的文件

    新建文件

    此时已生成一个初始值为0的,大小为128KB的文件

阅读全文 »

USB设备万能通用测试工具及使用方法

发表于 2021-10-24 | 分类于 USB | | 阅读次数:

概述

对于Windows机器环境而言,要实现一个完整的USB设备功能,通常需要“USB嵌入式设备+对应的USB驱动”,以实现Windows应用与USB设备的交互。因此在涉及USB的嵌入式设备开发工作中,可能对应的USB驱动还没有完整实现,或者还未开发,或者驱动开发工作是另外的部门/公司去完成的。这种情况下,我们需要对嵌入式的USB设备进行自测验证,或者澄清问题,这时候需要一个USB通用的测试工具以及对应的万能通用驱动来实现。本文将介绍一种USB设备万能通用测试工具及通用驱动生成方法。

动机

为何需要这样一个万能通用的测试工具,结合以往工作,总结有以下几种情况:

  • USB设备是A公司/部门开发的,USB驱动是B公司/部门开发的,两者合作并行开发。A公司/部门USB设备开发,需要USB驱动来配合验证调试通信协议,但此时B公司驱动端还未完成,A公司/部门的调试验证工作被阻塞。
  • USB设备是A公司/部门开发的,USB驱动是B公司/部门开发的。两者开发完成进行联调,发现有问题,相互甩锅,A公司/部门认为驱动端有问题,B公司/部门认为设备端有问题,两者僵持,问题定位困难。
  • 应客户要求,配合客户协议使用端点0的供应商请求类型传输一些简单指令。

因此,对于USB设备开发方来说,需要一套万能通用的测试工具和一个通用的驱动来模拟验证通信协议,或者澄清相关问题。

阅读全文 »

为联发科Linkit-Smart-7688编译openwrt的方法

发表于 2017-05-11 | 分类于 linux | | 阅读次数:

引言:

​ 正式接触linux实际上是今年年初,因为有个项目需要将程序运行在嵌入式平台,而在此之前我大学四年及工作两年几乎都游走在基于Cortex-M单片机的周边。在我印象中ARM开发板都是一块很臃肿很庞大的电路板,然而前阵子我偶然找到了联发科联合seed出的一款开源硬件Linkit Smart 7688平台,非常的小巧精致,然而它仍然可以运行一个Linux系统-openwrt。这篇文章给出了详细的为Linkit Smart 7688平台编译openwrt系统的方法,及可能遇到的问题的解决办法。

Linkit Smart 7688 简介

​ Linkit Smart 7688 基于联发科MT7688AN芯片设计,MT7688AN芯片核心为 MIPS24KEc,主频580MHz。Linkit Smart 7688 拥有32MB Flash,128MB DDR2 RAM,这个Flash和RAM的大小使得我们可以做很多普通单片机平台无非完成的工作。它还板载wifi、USB、SD卡接口,使得其可以进行丰富的扩展,它被称为一台可以放进口袋的linux机器。

QQ截图20170511191531

编译openwrt系统的动机

​ 实际上,联发科官方已经提供了一套现成 boot镜像、系统镜像、以及Linux和OS X上使用的交叉编译工具链。因此对于普通的应用来讲,既然已经有了现成的可运行的系统、我们只要通过交叉编译工具开发我们的应用程序就可以了,为什么还需要重新去花大量的时间去重新编译一次系统。我Google了很多linkit Smart 7688的入门资料,我们发现很多朋友一上来就是要重新编译系统,我就非常不能理解。我主张尽量使用现成的东西,因此拿到这款板子之后,我做的第一件事情是烧录官方提供的最新的系统镜像文件让板子运行起来,接着便开始使用交叉编译工具编译我项目的应用程序,我验证发现,这个项目的应用程序经过交叉编译后可以运行在这个板子上。因此我决定将它作为这个项目的一款首选平台,但是它的硬件串口数量似乎太少了,只有3个串口,有一个串口还默认是调试功能,但还好它有USB,完全可以通过CP210x进行串口扩展,然而我发现USB识别不了CP210x USB转串口芯片。实际上linux内核是已经包含了CP210x的驱动的,只是联发科提供的系统没有将其编译进去,因此我需要重新配置系统编译选项,将USB转串口的驱动程序编译到系统中,这是我要为MT7688重新编译openwrt系统的动机。

阅读全文 »

ISOEBBS发布袖珍型Jlink仿真器

发表于 2017-03-11 | 分类于 MCU | | 阅读次数:

近日,ISOE论坛官方发布了一款精致的J-link仿真器,仅仅只有U盘大小,该款仿真器经过了近半年的稳定性测试,不掉固件,抗干扰能力强,现正式对外销售,售价仅30元(购买链接),旨在为广大电子发烧友提供一款轻便、功能强大的仿真调试利器。

QQ截图20170313115428

该款仿真器特性:

  • 支持三线SWD接口(SWDCLK,SWDIO,GND)
  • 支持所有基于Cortex-M内核的单片机,Cortex-M0、Cortex-M0+、Cortex-M3、Cortex-M4F ……
  • 支持ST(stm32系列)、Cypress(FM系列)、NXP ……各大厂家基于Cortex-M内核的芯片
  • 抗干扰能力强,不丢固件
  • 兼容J-Link-V8的驱动及软件
  • ISOE论坛官方提供强大的技术支持
  • 批量购买可开具正规发票

ISOEBBS团队拥有多年Cortex-M MCU开发及技术支持经验,可以助你解决在仿真和调试过程中遇到的问题,使您可以专注于产品研发而无需浪费时间在开发环境的搭建上。

12
微信公众号

微信公众号

R&D

18 日志
10 分类
49 标签
新浪微博 新浪博客 优酷视频 邮箱登陆 Twitter Facebook
友情链接
  • ISOE官方论坛
  • DD的博客
  • 水番林
  • 美丽应用
  • 张大侠
  • OKDCC
© 2024 微信公众号
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4