客户让我用 c#给开发一个红外检测距离的小工具,不知道如何下手。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
longmeier90
V2EX    C#

客户让我用 c#给开发一个红外检测距离的小工具,不知道如何下手。

  •  
  •   longmeier90 2023-04-17 15:23:04 +08:00 2825 次点击
    这是一个创建于 944 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1.目的是通过左右移动设备,红外模块输出高低电平。 2.开发的 c# 程序根据输出的高电平、低电平进行相关的操作。

    开发过这方面的大佬,有没有什么相关的 SDK 。

    红外模块(拼多多上买的,不提供 sdk ,是主板上插的那种 红外避障传感器) 3 块多钱

    13 条回复    2023-05-09 10:19:32 +08:00
    ilovey482i
        1
    ilovey482i  
       2023-04-17 15:24:37 +08:00
    这得看你那设备有无提供 SDK 文档了
    longmeier90
        2
    longmeier90  
    OP
       2023-04-17 15:29:43 +08:00
    @ilovey482i 红外避障传感器,不能直接使用,需要往主板上插的。拼多多上 3 块钱
    Eiden
        3
    Eiden  
       2023-04-17 15:37:56 +08:00
    买个带串口输出的模块
    Armor
        4
    Armor  
       2023-04-17 15:49:18 +08:00
    测距离还是要雷达精准一些,红外的买欧姆龙的
    xyfan
        5
    xyfan  
       2023-04-17 17:04:48 +08:00
    3 块钱的传感器能得到什么高精度结果,都不值得花时间写代码。
    找一找嵌入式方面的代码,根据红外信号测距应该有很多 C 代码可供参考,把整体逻辑改成 C#实现,不过 IO 驱动这部分得用板卡的 SDK 实现。
    aureole999
        6
    aureole999  
       2023-04-17 17:13:31 +08:00
    3 块钱的传感器是啥,就是有三个针脚的那种?
    你得有个树莓派或者 arduino 或者 esp 之类的开发板才能接吧,接上就很简单了,一条线供电,一条 GND ,一条输入读数就行。C#一般不行吧,用 C 或者 Micro python 之类的。
    longmeier90
        7
    longmeier90  
    OP
       2023-04-17 18:16:15 +08:00
    @aureole999 是的,我能不能用 USB-TLL 模块*1 、杜邦线*1 连接电脑进行测试
    aureole999
        8
    aureole999  
       2023-04-17 18:34:31 +08:00
    @longmeier90 我也不是专业的,但红外模块本身应该是不具备串口通讯的功能,所以我觉得不行。买个 NodeMCU 或者 D1 mini ,最好是焊好了引脚的,然后加 3 根杜邦线就行。再接电脑用 wifi 或者 usb 都可以了。
    l1ve
        9
    l1ve  
       2023-04-17 18:34:47 +08:00
    红外模块什么样的? TTL 协议还是电平输出还是 Modbus ?
    但看起来三块多钱我觉得就是个高低电平,如果你平台能读 IO 的话就直用平台的 SDK ,不行的话就要单独找个 AD 模块了。
    businessch
        10
    businessch  
       2023-04-17 19:21:33 +08:00 via iPhone
    有没这样一种工具,检测显示器前面有没有人,没人锁屏。
    aureole999
        11
    aureole999  
       2023-04-17 19:53:23 +08:00
    @businessch 人在传感器呗,毫米波,小贵。接入智能家居可以实现人走关屏。
    红外的话就很不准了,我曾经有一台显示器就带这个功能。
    LXGMAX
        12
    LXGMAX  
       2023-04-18 09:40:03 +08:00
    几块钱没什么协议,三个脚的就是一个红外接收三极管输出模拟信号,后面跟着一个电压比较器,达到一个电平就输出信号;要连接电脑就得再加一个小单片机识别然后转串口之类的,如果要识别具体数值就得引出模拟量接口或者换模块
    ybs123
        13
    ybs123  
       2023-05-09 10:19:31 +08:00
    首先,你需要准备一个能够读取红外模块输出信号的硬件设备,比如一块 Arduino 、一块树莓派等等。根据设备的型号,你需要相应的红外接收器模块和电路连接。

    接着,你需要编写一段 C# 程序,与硬件设备进行通信,并获取红外模块输出的信号。以下是一个简单的 C# 程序示例,可供参考:

    ```csharp
    using System;
    using System.IO.Ports;

    namespace IRDistanceDetector
    {
    class Program
    {
    static void Main(string[] args)
    {
    // 初始化串口
    SerialPort serialPort = new SerialPort("COM3", 9600);
    serialPort.Open();

    while (true) // 循环读取数据
    {
    string data = serialPort.ReadLine(); // 读取数据
    if (data.Contains("HIGH")) // 判断输出电平为高电平
    {
    // 进行操作
    Console.WriteLine("发现距离变化,当前距离为:xx cm");
    }
    }
    }
    }
    }
    ```

    在这个示例程序中,我们通过 SerialPort 类打开串口 COM3 ,并通过 ReadLine() 方法读取串口数据。每次读取到数据后,我们通过 Contains() 方法判断是否为高电平信号,如果是,就执行相关操作,比如输出当前距离。

    你需要根据自己的硬件设备和电路连接,调整程序中串口的参数。此外,你还需要找到红外模块输出信号的电平变化与实际距离的关系,以便将信号转换为距离值。

    希望这些信息能对你有所帮助。如果你还有任何问题,欢迎继续提问。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3967 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 05:12 PVG 13:12 LAX 21:12 JFK 00:12
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86