与pyBoard兼容的电动自行车控制器 pyEC

创意展示、DIY分享、经验交流
回复
头像
shaoziyang
帖子: 1083
注册时间: 2019年 10月 21日 13:48

与pyBoard兼容的电动自行车控制器 pyEC

#1

帖子 shaoziyang » 2020年 2月 26日 09:18

图片

pyEC是一种与pyBoard兼容的多功能板,能够与您的电动自行车上的任何东西进行对话。事实上,它更像是一个通用板,能够完成大量的数字电子任务。如果您不熟悉pyBoard,它是一个基于STM32的板,可以在微控制器上运行micropython。

pyEC背后的想法是,有许多板相互连接,只提供您需要的功能,而没有您不需要的功能。主板,或者我称之为“层”的主板是与PYBOardv1.1兼容的主板。它是一个4厘米×4厘米的大小,层间通信使用50pin接口,包含CAN、运算放大器、蜂鸣器、led、SD卡插座、用户开关和复位开关,当然还有用于调试和加载新程序的USB。大多数连接性已转移到其他“层”。“控制层”就是,它控制所有的层,并且有MCU。没有任何额外的功能,它基本上可以只是闪灯和发声。

Layer
  • 控制层–带有USB,SD卡,蜂鸣器,USR / RST开关和RGB LED的pyBoard v1.1兼容板
  • 串行层–暴露4个带有RX / TX LED的串行端口,便于调试和3.3V / 5V电平转换器
  • 输入层–提供5个开关输入和2个模拟输入,所有这些都带有可选的分压器以缩放输入
  • 电源层–电源输入(12V),5V输出,2个高功率和3个低功率数控输出
  • Kelly 层 – 24V升压转换器,DAC输出,数字输出和UART。专为Kelly KLS-S控制器而设计
  • 电池备用层–提供LiPo充电以及LiPo的5V稳定输出
  • IMU层–通过I2C或串行提供WIT Motion IMU。提供GPS输入和直接IMU访问端口。
  • 测试层–控制层的所有引脚以及IO引脚和ADC电位计上的按钮/ LED
控制层

图片

控制层是pyEC的心脏,而我设计的那块电路板也很有趣。这是一个1毫米4层PCB,带有黑色丝印和镀金触点,因为谁不喜欢黑色和金色?设计和引脚排列与pyBoard V1.1兼容,但有一些小的更改。它与固件兼容,因此您可以添加所需的任何固件,而无需重新编译。我卸下了原来的机载IMU,转而使用外部9 DOF IMU。我还删除了1个LED,这使该LED成为一个紧凑的RGB RGB LED,并应提供足够的输出以用于调试和用户消息。我添加了一个蜂鸣器输出,可以将其配置为3.3V,5V或12V的板载或外部蜂鸣器。如果需要,它甚至可以用作警报输出。USB端口,SD卡,用户和 重置开关与pyBoard保持一致。有一个运算放大器可将3.3V DAC输出缩放至5V,以与诸如节气门输入之类的E-Bike配件更兼容。也可以将其配置为输出3.3V。

电源层

图片

尽管标准配置为12V,但“电源层”被设计为支持多种输入电压,并为其余电池组提供5V。高电压也提供给其余的堆叠。除了提供5V电压外,还有用于大灯和喇叭等附件的高压输出。有几个较低电流的高压输出,用于刹车灯,转向信号灯和其他配件。所有输出均由“控制层”进行数字控制,并且某些支持PWM,尽管我没有发现这很有用。我的灯使用具有宽电压输入范围的恒流驱动器,PWM不会变暗或影响输出。但是,它是可能的,并且对于大电流警报或蜂鸣器等很有用。

Kelly层

图片

“ Kelly层”旨在与Kelly Controls KLS控制器连接。该层具有一个12V至24V的升压转换器,因此它可以控制Kelly控制器的开/关。还有一个串行端口,高/低速开关和2个DAC输出(油门和再生)。DAC输出默认为5V,但可以通过“控制层”上的跳线配置为3.3V。

串行层

图片

“串行层”提供了4个串行接口。每个接口都有一个可配置的电平转换器,以实现5V兼容性。虽然STM32可以承受5V的电压,但它们使5V串行通信更可靠。电平转换基于SparkFun上的BSS138 mosfets 。根据IMU层的配置方式,一个串行端口可以被两个层共享。串行输出配置为仅提供5V,尽管信号可以是3.3V或5V。将来,我将添加一个跳线,以便可以将每个输出配置为3.3V或5V输出。目前,我所有的串行设备都是5V兼容的,所以这还不是问题。

备用电池

图片

“电池备用层”提供了一种可靠的方法来防止断电时数据丢失或其他损坏。如果由于过电流或其他故障情况导致BMS关闭,在这种情况下,如果存在打开的日志文件或正在进行写入,则SD卡可能被损坏。默认状态为电池充电,如果断电,MCU可以激活5V升压转换器。“控制层”具有12V检测功能,可以检测电源损耗。还有许多电容器连接到3.3伏,以便给MCU足够的时间来检测功率损耗并通过激活升压转换器做出反应。充电和升压电路互斥,防止不必要的操作。当前仅支持单节锂电池,但18650电池或聚合物电池都可以。

输入层

图片

“输入层”具有5个数字输入和2个ADC输入。数字输入具有可配置的分压器和可选的电容器。ADC输入也具有分压器。ADC端口支持5V电压,以与标准电动自行车油门或电位器兼容。如果需要,还可以将ADC配置为数字输入。具有两个ADC输入的想法是连接到电动自行车油门和再生制动输入以进行记录,以便它们可以缩放或应用任何类型的油门曲线。

测试层

图片

“测试层”引出所有引脚。这提供了一种对新层进行原型设计或监视特定引脚以进行调试的方法。还有连接到ADC的电位器,连接到DAC的LED,连接到开关输入的按钮以及“电源层”输出的LED。这是我尝试帮助调试软件/硬件问题。它也可以用于在软件开发期间提供稳定的输入值。

IMU层

图片

“ IMU层”提供了WIT Motion  JY901B 10轴IMU。这是一个很小的单元,还可以从连接的GPS提供信息。这可以减轻控制层的GPS字符串解析负担。也可以配置多个数字/ PWM输出。有一个用于直接连接到IMU进行配置的连接,一个复位跳线,GPS端口和IMU io端口。默认情况下,该层使用串行与IMU通信,但也可以配置为使用I2C。


图片
图片
图片
图片
图片
图片
图片
图片
图片
图片
图片

项目网站

回复

  • 随机主题
    回复总数
    阅读次数
    最新文章