如何编程CAN-BUS arduino屏蔽来控制车窗?

时间:2014-04-07 20:12:41

标签: arduino voice-recognition can-bus

我的项目是使用语音识别来控制车窗。我已成功使用EasyVR arduino屏蔽和arduino MEGA控制了一些LED。现在我想使用CAN-BUS arduino防护罩来控制窗户。

因为我拥有的汽车没有OBD-II连接器,所以我使用两个带有两个CAN-BUS arduino屏蔽的arduinos,一个是发送器,另一个是接收器。现在我不知道如何编程CAN-BUS arduino防护罩来模拟汽车的窗户?

我正在使用的CAN-BUS屏蔽:https://www.sparkfun.com/products/10039

Arduino mega:https://www.sparkfun.com/products/11061

3 个答案:

答案 0 :(得分:1)

  1. CAN总线是一种通信协议(如RS485,但更可靠)。它本身并不控制任何东西。
  2. 如果使用I / O控制窗户,前大灯或其他设备,并且I / O正在与CAN总线通信,那么您可以控制窗户,大灯等。
  3. Arduino的CAN总线屏蔽具有Microchip MCP2515 CAN控制器和MCP2551 CAN 收发器,因此您不需要其中2个。
  4. 我们与同事一起工作电动车项目,我们可以使用Arduino和CAN总线屏蔽进行监控。

    如果你想控制窗口,我会考虑尝试这种设置:

    1. 从按钮和电源断开窗口。
    2. 放2个继电器,使H桥(上下移动)控制车窗电机http://www.ebay.com/itm/1pcs-5V-2-Channel-Relay-Module-for-Arduino-PIC-ARM-DSP-AVR-Electronic-/261099571172?pt=LH_DefaultDomain_0&hash=item3ccabf47e4
    3. 放置一些限位开关,在窗户关闭或完全打开时转动继电器。
    4. 使用Arduino控制这些继电器。
    5. 在我看来,这是最简单的方法。而且您不必抛弃CAN总线。

      修改 还提供一些汽车规格。如果它没有OBD II插座可能它不是新的,所以窗口将用按钮控制,我猜。

答案 1 :(得分:0)

CAN屏蔽既可以是接收器也可以是发射器,您不需要其中两个(除非您将两个网络连接在一起。

不幸的是,操作窗口不是有标准消息的东西。实际上,窗口控制器实际上可能位于LIN总线(不是CAN)上。我不确定是否有LIN屏蔽,但它是relatively simple physical layer芯片和UART,所以你应该可以装备一些东西。

然后你必须对消息进行反向工程......

如果您可以从车间手册中找到CAN / LIN总线的外观,您应该可以找到适合公共汽车的地方。

然后监视总线并操作窗口开关以查看是否出现新消息,或者常规消息中是否有某些特定位发生变化。在消息中经常会有序列计数器和校验和,您还必须了解它们才能正确重放相应的消息。

答案 2 :(得分:0)

Windows由LIN BUS(它是CAN SUB BUS)控制。这是串行单线通信。最简单的方法是将lin收发器芯片与Arduino一起使用,以免打扰自己检测中断,只需在Rx中接收并在tx中发送即可。然后,您需要收听LIN总线并检测打开窗口或关闭窗口时使用的ID,一旦检测到ID和数据包数据,就可以重播它。