Gemini V2的配置流程-CAN

 全程参考官网:Fly Klipper Docs

参考文件:为qq群:786561979中的pdf教程

文件提供时间:2022.5.1

 本文中的相关软件镜像,以及编译好的klipper固件,方便一次性下载

百度网盘:https://pan.baidu.com/s/1V6gni_IzDXY6-8wLxWOtpg?pwd=fb6b 提取码:fb6b 

阿里网盘:「GeminiV2_CAN」https://www.aliyundrive.com/s/FY1KDXQxaiS 提取码: 8y0b 

1.物品准备

硬件类:

Gemini v2

utoc

sht42

线材类:

18awg x 5m 黑色,

18awg x 5m 红色

叉型冷压端子(如图)若干

(长度按需求)

线材主要用于:

a.UTOC的CAN头供电2根线(24V/GND

b.SHT42与UTOC 的CAN通讯的4根线(CAN L / CAN H / 24V / GND

工具类:

4.2mm 5557 端子 压线钳

ot 冷压端子 压线钳

2.电气接线部分

接线方式有很多种,这里仅仅展示一种情况,其他都可以根据CAN的功能进行类比。

2.1 制作can的4线通讯线(以utoc和sht42 为例)

2x2p的5557 端子,在购买的sht板已经附带了如图:

5557 一定要压好,不要让vcc虚连 

 VCC 和 GND,CAN H 和 CAN L 分别对应好位置

 接线端子的实际效果:

 连线的实际效果:

 线序一定不要接错

 2.2 CAN的VCC取电

连接can工具头需要有vcc接入,这里以utoc 取电为例

 2.3 UTOC 与Gemini 连接

接线部分至此完成

3.固件刷写

对于购买sd卡套餐的朋友,请直接看3.2

3.1 linux镜像的刷入

一定要根据官网提供的最新固件如图:

镜像下载链接:Fly Klipper Docs

 下载后的镜像文件:

通过工具balenaEtcher给sd卡刷入镜像:

 下载链接:  balenaEtcher - Flash OS images to SD cards & USB drives

 等待5分钟后拔下,并直接插入linux的sd卡接口。

windows 提示的格式化不要管,直接拔出就行。

至此linux带有klipper 的系统镜像已经全部搞定

3.2 通电测试

插入内存卡

上电测试:注意这里采用的是usb( ch340 )连接的方式。

如果使用12~24V 的vcc 取电方式,usb 连接一定要断开。

有些朋友不从事嵌入式开发,可能需要:windows下的ch340驱动,要单独下载,在文章开头的软件包中提供。

终端连接gemini:

下载MobaXterm:MobaXterm Xserver with SSH, telnet, RDP, VNC and X11 - Download

通过MobaXterm 的session里面的serial连接,首先确保没有接入vcc

具体步骤:

Windows 设备管理器:记住com号 COM3

打开MobaXterm 添加新的session,选择serial

 配置波特率115200,连接端口号为刚在设备管理器记住的端口

 

 这个效果就ok了。

配置wifi

输入

nmtui

激活一个连接

 

 输入密码连接,带星号表示连接成功,退出

 配置好WiFi后建议通过ssh ip连接获得更好的体验

MobaXterm 可以更简单的设置好字体,如图:

 ps:由于MobaXterm的特殊性,需要单独为每一个session设置字体和配置相关的设置

 如果想使用ohmyzsh的外观状态务必和我这个设置成一样。

ohmyzsh的美观参考-以gemini为例:给mobaXterm通过ssh的linux 开发板美化ohmyzsh_KeyBordkiller的博客-优快云博客

3.3 下位机和CAN头的配置

3.3.1下位机固件制作+刷写

MobaXterm为例,如果使用putty 还需要winscp,所以这里推荐MobaXterm

连接ssh,以Mobaxterm为例:

新建一个session,ip在路由器查看,用户名fly 密码mellow (都是小写)

 连接

下面开始编译klipper的固件

在linux 命令行中输入(复制后在终端中右键即可粘贴)

依次执行下面的3条命令, 

cd ~/klipper/

回车

make clean

回车

make menuconfig

 出现klipper 的编译界面下面直接按照我途中所示进行设置:

总共有5个选项通过上下左右键 和回车键进行选择,最后的配置页面和图中所示完全一致。

输入

Q

输入 

Y

 输入

make -j4

 开始编译

首先看到hex file 通过左边的sftp 后进入相应目录

右键klipper.bin 文件 download 到电脑上,建议对这个固件所在文件夹命名为Gemini_stm32f405,用于区分和can头不一样的固件。

 准备好一个内存卡,将其格式化为FAT32 

推荐使用DiskGenius的格式化功能(windows下不能直接格式化为FAT32)

将文件拖入到内存卡中,并且重命名为firmware.bin

将内存卡从电脑拔下,将gemini断电,插入内存卡,

 通电等待1min后,断电拔下内存卡插入到电脑中

这样Gemini板载的STM32F405 的klipper固件也烧录成功了

 

 最后重要的一步:拨码 3.4

 断电插入内存卡,重新通电后 登录fluidd 也就是ssh的ip

在没有接入任何一种热敏电阻的情况下,这就是正常状态,继续配置 can头固件

 3.3.2 CAN头固件制作+刷写

 和配置板载下位机固件的方式一样进入klipper 编译界面

输入

cd ~/klipper/
make clean
make menuconfig

 更改配置为图中圈出的状态

输入

Q

输入

Y

输入

make -j4

 下载klipper.bin 到文件夹中

下载软件 STM32CubeProgrammer

下载地址:STM32CubeProg - 用于STM32产品编程的STM32CubeProgrammer软件 - STMicroelectronics

 准备1个跳线帽

 确保插入后 typec 连接电脑

打开软件

 usb刷写方式,打开刚刚在Gemini上编译好的用于can工具头的固件 

 

 

 这样才是成功了。

注意klipper.bin 的目录中不能有中文,防止刷写失败

 务必务必务必将跳线帽拔下,并且将上面的两个条线帽安上

 务必务必务必将跳线帽拔下,并且将上面的两个条线帽安上

 务必务必务必将跳线帽拔下,并且将上面的两个条线帽安上

如图:

 接下来进行接线,一定要断电操作。确保每个端子和螺丝都是牢靠的,没有虚连的状态

如图:


 至此硬件电气接线和固件都已经弄好了

4. klipper的can部分的软件的设置

进入fluidd 如果有如图报错,可以这样解决

 打开ssh输入

cd ~/moonraker/scripts
./set-policykit-rules.sh
sudo service moonraker restart

 进入你ssh  ip中的9999端口,如图:

 分别查看串口的id 以及can的id

复制到 print.cfg文件中如图所示:

MCU部分


[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32f405xx_320029000450314335393220-if00


[mcu sht42]
canbus_uuid: d43795f92c3e

can部分的配置本文以sht42 为例

示例具体可以参考官网:Fly Klipper Docs 

 手动屏蔽掉没有温度传感器的错误

[extruder]
step_pin: sht42:PB4
dir_pin: sht42:PB3
enable_pin: !sht42:PA15
microsteps: 256
rotation_distance: 33.5
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: sht42:PA8
sensor_pin: sht42:PB0
sensor_type: ATC Semitec 104GT-2
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: -273  ###手动屏蔽温度ADC错误
max_temp: 350
[heater_bed]
heater_pin: BED_OUT
sensor_pin: BED_TEMP
sensor_type: ATC Semitec 104GT-2
control: watermark
min_temp: -273 ##手动屏蔽温度ADC错误
max_temp: 200

 fluidd的全部状态都可以显示

 配置klipper限位的时候建议大家拔掉wifi,通过usb 进行配置,如果配置有误wifi容易烧掉

完结 

<think>我们正在讨论的是gemini-fullstack-langgraph-quickstart项目,该项目使用Gemini 2.5和LangGraph来构建全栈智能体。用户的问题是如何修改该项目中的AI模型和Web search模型。 根据项目结构,通常模型中相关的配置会在代码的配置部分或环境变量中设置。由于没有具体的代码片段,我们可以根据常见的做法进行推测: 1. **AI模型**:通常是指大语言模型(LLM),在项目中可能是Gemini模型,也可能是其他模型(如通过LangChain接入的模型)。修改模型可能涉及更改模型名称、API密钥或基础URL(如果使用本地模型)等。 2. **Web search模型**:这可能指的是项目中用于执行网络搜索的组件,可能是集成了某个搜索API(如SerpAPI、DuckDuckGo搜索等)的工具。 修改这些模型的步骤通常如下: - 在项目代码中找到模型配置的地方。这可能是配置文件(如`.env`文件、`config.yaml`等)或代码中直接设置的地方。 - 对于AI模型,可能需要更换模型名称(例如,从`gemini-pro`换成`gemini-1.5-pro`或其他的模型),或者更换为完全不同的模型(如OpenAI的模型),这需要相应的API密钥。 - 对于Web search模型,可能需要更改搜索API的提供商,或者修改搜索参数。 由于项目具体结构未知,以下提供通用的修改思路: **修改AI模型(以Gemini模型为例)**: 在代码中,如果使用了LangChain的`ChatGoogleGenerativeAI`类,那么创建模型实例的地方可能会类似这样: ```python from langchain_google_genai import ChatGoogleGenerativeAI model = ChatGoogleGenerativeAI(model="gemini-pro", temperature=0.7) ``` 如果要修改模型,可以更改`model`参数,比如换成`gemini-1.5-pro-latest`。如果要换成其他模型,比如OpenAI,则可能需要使用OpenAI的类,例如: ```python from langchain_openai import ChatOpenAI model = ChatOpenAI(model="gpt-4-turbo", api_key="your-api-key") ``` **修改Web search模型**: 通常,Web search功能是通过一个工具(Tool)实现的,这个工具调用搜索API。例如,使用LangChain的`DuckDuckGoSearchRun`工具: ```python from langchain_community.tools import DuckDuckGoSearchRun search = DuckDuckGoSearchRun() ``` 如果要更换为其他搜索工具,比如SerpAPI,可以这样: ```python from langchain_community.tools import SerpAPIWrapper search = SerpAPIWrapper(serpapi_api_key="your-api-key") ``` **注意**:以上代码示例仅为示意,具体项目中的代码可能有所不同。 因此,用户需要: 1. 在项目中搜索相关代码,找到模型初始化的地方。 2. 根据想要更换的模型,修改对应的模型名称和API密钥。 此外,项目可能使用了环境变量来配置模型参数,因此检查项目中的`.env`文件或类似配置文件也是必要的。 由于用户提供的引用中没有具体代码,建议用户查看项目文档或代码中关于配置的部分。 最后,我们生成相关问题: </think>要修改`gemini-fullstack-langgraph-quickstart`项目中的AI模型和Web搜索模型,请按照以下步骤操作: ### 一、修改AI模型核心步骤 1. **定位模型配置文件** 在项目目录中找到`config/`或`src/config/`文件夹,通常包含: ```plaintext model_config.yaml # 或 model_config.json ``` 这是模型参数的主配置文件[^1]。 2. **修改模型标识符** 打开配置文件,找到类似字段: ```yaml llm: model_name: "gemini-1.0-pro" # 修改为其他模型如"gemini-1.5-flash" api_key: ${GOOGLE_API_KEY} # 确保API密钥正确 ``` 3. **支持多模型切换** 若需接入OpenAI等第三方模型,参考`src/agents/model_providers.py`: ```python from langchain_openai import ChatOpenAI def get_model(model_type="gemini"): if model_type == "openai": return ChatOpenAI(model="gpt-4-turbo") ``` ### 二、修改Web搜索模型步骤 1. **搜索工具配置文件** 查找`tools/search_tool.py`或`src/tools/`目录: ```python from langchain_community.tools import DuckDuckGoSearchRun search_tool = DuckDuckGoSearchRun() ``` 2. **更换搜索引擎** 例如改用SerperAPI: ```python from langchain_community.utilities import GoogleSerperAPIWrapper search = GoogleSerperAPIWrapper(serper_api_key="YOUR_KEY") ``` 3. **配置搜索参数** 在`.env`文件添加新服务的环境变量: ```env SERPAPI_API_KEY=your_key_here SERPER_API_KEY=your_key_here ``` ### 三、验证修改 1. 运行测试脚本: ```bash python tests/test_model_integration.py ``` 2. 检查日志输出中的模型标识: ```log [INFO] Loaded model: gemini-1.5-flash [DEBUG] Search tool: GoogleSerperAPI ``` > **重要提示**:修改模型后需重新初始化LangGraph工作流,因为节点依赖模型实例[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值