PyMOL的轮子越来越不好找了?

       PyMOL是由 Warren Lyford DeLano 创建的开源分子可视化系统,后由他本人创建的一家私营软件公司(DeLano Scientific LLC)尝试进行商业化实验。DeLano去世后,该软件被世界上著名的生物医药软件巨头“薛定谔公司(Schrödinger)”收购并维护。https://pymol.org/

        目前PyMOL已基本商业化(收费),但也同时提供开源版(提供python语言编写的源代码安装包,即whl文件)。二者界面、功能和支持等区别可参看PyMOL的开源版和商业版如何选择

        对于没有条件购买商业版,且觉得试用版的30天有效期太短的用户,可以在官网以在校师生身份申请教育版(申请链接——https://pymol.org/edu/ 可使用一年左右,但一些功能和界面细节有一定区别)。而希望长期免费使用的更喜欢下载源码自己编译安装。

        不过,自从加州大学尔湾分校(University of California-IrvineUCI)荧光动力学实验室(Laboratory for Fluorescence DynamicsLFD)的前成员(Former Members)之一Christoph Gohlke下线了在该实验室官网上发布的页面( https://www.lfd.uci.edu/~gohlke/pythonlibs/#pymol-open-source )后,再找PyMOLwhl源码文件好像就比较难了,因为搜索引擎给出的结果大多指向薛定谔公司放在github上的源码地址( https://github.com/schrodinger/pymol-open-source ),版本较单一。

        其他一些whl资源大多也是只有Windows平台适用的(比如 Pymol 适用于python3.9和3.10的whl文件_pymol对应的python3.10-优快云博客 ),包括Gohlke本人的个人主页( https://www.cgohlke.com/ )上给出的链接( https://github.com/cgohlke/pymol-open-source-wheels/ )也注明是Windows版的。

        这里推荐两个版本相对比较多样的地址以供收藏备用——

1、免费开源版(非Edu版)PyMOL安装教程 纽普生物 ,虽然也都是Windows版的,但来自国内地址,下载速度应该比从github快或者稳定;

2、成都大学生物信息学与整合基因组学课题组杜联明老师在github上分享的 https://github.com/lmdu/pymol-wheel/releases ,其中包含了分别对应硬件架构、种操作系统(MacOS、Linux和Windows)的个版本的wheel文件。

dac09872192b463c98ba65c363462cc0.png

在ESP32控制平衡车上,通常会根据传感器数据(如陀螺仪或编码器)以及车辆当前状态(例如倾斜角、行驶方向)来判断哪一侧的轮子应该启动。下面是一个简化的示例: ```c #include <T Esp32.h> // ESP32库 // 定义一个结构体来存储左右轮的状态 typedef struct { bool left_active; // 左轮是否激活 bool right_active; // 右轮是否激活 } WheelState; // 初始化轮子状态 WheelState wheel_state = {false, false}; // 更新函数,这里假设我们有倾斜角theta和方向flag(0左转,1右转) void update_wheel(WheelState* state, float theta, int direction) { if (direction == 0 && theta > THRESHOLD_LEFT) { // 当向左倾并且超过某个阈值 state->left_active = true; state->right_active = false; } else if (direction == 1 && theta > THRESHOLD_RIGHT) { // 同理,向右倾 state->left_active = false; state->right_active = true; } else { // 正常行驶或两侧都保持激活 state->left_active = true; state->right_active = true; } } // 在主循环里调用这个函数并根据结果控制电机 void loop() { float angle = read_angle_from_sensor(); // 读取传感器数据 int direction = get_steering_direction(); // 获取车辆行驶方向 update_wheel(&wheel_state, angle, direction); if (wheel_state.left_active) { // 控制左侧电机 } else if (wheel_state.right_active) { // 控制右侧电机 } } ``` 在这个例子中,`update_wheel`函数负责根据当前状况更新轮子的状态,然后在`loop`函数中根据轮子状态控制相应的电机。具体的条件(如阈值)和电机控制部分你需要根据实际硬件连接和平衡车设计调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值