佳能EF镜头SPI控制

原创 云深之无迹 2023-05-30 21:11
使用廉价的MCU,搭配SPI协议驱动你的佳能摄像头。

逆向Canon EF卡口镜头,这个是昨天的文章。

ASCOM EF Lens Controller – control unit for Canon EF/EF-S lenses. It allows you to control lens using the ASCOM platform tools.

Features (supported by driver):
 focus control;
 aperture value control;
 temperature measure (additional sensor required, e.g. popular
DS18B20).

This device uses SPI interface. Description of lens commands were taken from published articles about reverse engineered internal Canon protocol.

Connection to lens is easy. It is only necessary to know pinout of itscontacts. This information is available on the Web. Just «google» canon efpinout. I recommend to use a scheme, shown below.

This picture describes electric pins on lens or special macro-adapter which issuitable for soldering wires. You can buy adapters in any photo shop or onweb stores such as EBay. It looks something like this.

Next component – microcontroller, which support SPI interface. It may beATmega, STM32, PIC or board, based on its controllers. Factory PCB has allrequired components and will be easy for beginners while simplemicrocontroller allows you to make own custom device.

I used Arduino Nano based on ATmega328P controller. Its performance isenough for our purpose. Small size and low cost - its advantage.

Pinout diagram above shows the designations of Arduino Nano contacts. Sowe need:

Note: only huge lenses may require external power supply. I tested mylenses (EF-S 18-55, EF 50/1.8, EF200/2.8L) and measured their currentconsumption. It was less than 200 mA. It means that these lenses can bepowered directly from 5V Arduino pin. Entire system will be powered fromUSB, and there is no need for additional wires.

You can experiment on the breadboard but for the final design it is better touse a more respectable solution.

I want to point out one feature associated with Arduino. Now, these boardsuse the Automatic (Software) Reset, which is convenient for firmware uploadbut do not really need us. The fact is that:

One of the hardware flow control lines (DTR) of the FT232RL is connected to thereset line of the ATmega168 or ATmega328 via a 100 nanofarad capacitor. Whenthis line is asserted (taken low), the reset line drops long enough to reset the chip.

This means that each connection («Connect» button in MaximDL orFocusMax) to the device will cause it to reboot. Result is 3-5 sec delay. Ifyou are not satisfied, simplest solution is to unsolder DTR pin to preventtransfer of reboot signal. I used «ChinaDuino», it has CH340G as UART chip.Original Arduino uses FT232RL.

These schemes allow you to easily find the DTR pin. After making thesechanges, device connects immediately.

Software

Software consists of two main parts:

Arduino sketch (firmware) is responsible for interaction with lens;
ASCOM device driver.

Unit relations shown in the figure below:

The red highlighted functionality implemented in addition to the mainfunctions realized in driver pattern. Focuser driver has no iris controlfunctions by default. But aperture value control is important feature.

代码使用我就不写了,后面我会上代码:

Use P# to get current focus position (5000 by default)
Use Mxxxx# to move focus, e.g. M5270#
Use Axx# to change aperture value, where xx – count of steps (1/3
EV). 0 – wide open on your lens.

下载这个控制软件,有一种年老失修的美

ASCOM

Click «Properties», you can see driver setup dialog. Set requiredparameters:

COM Port Number – controller connection port;

Lens Model – choose your lens from drop-down list. In fact youcan use any lens. Just add it to lens.txt which is in driverinstallation folder and insert all aperture values of lens;

Aperture Value – select required aperture value. Changes will besaved in EEPROM of Arduino chip.

After all changes are saved, you can connect to the controller.

Temperature will be displayed only if you connect a sensor. I usedanalog KTS-1 sensor. GET TEMPERATURE section in my sketch work with this sensor. You can use any other. Do not forget to correct your sketch. If you do not need to measure temperature just comment this strings.

#include #include 
#include #include #include #define SCREEN_WIDTH 128#define SCREEN_HEIGHT 64#define OLED_RESET -1Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#define LED_SW 7#define CS 10 // Emurate CS of SPI for DEBUG#define F1 9 // Function SW#define ENC_A 2#define ENC_B 3#define LED_Red 14#define LED_Green 15
volatile byte pos;volatile int enc_count;boolean sw = false;boolean real_mode = false;
int mode = 0;int mode_counter[2];int focuserPosition, apValue, offset, apAddr, fpAddr, fpValue, x, y;boolean IsFirstConnect;
void InitLens(){ SPI.transfer(0x0A); delay(30); SPI.transfer(0x00); delay(30); SPI.transfer(0x0A); delay(30); SPI.transfer(0x00); delay(30);}
int ENC_COUNT(int incoming){ static int enc_old = enc_count; int val_change = enc_count - enc_old;
if (val_change != 0) { incoming += val_change; enc_old = enc_count; } return incoming;}
void ENC_READ(){ byte cur = (!digitalRead(ENC_B) << 1) + !digitalRead(ENC_A); byte old = pos & B00000011; byte dir = (pos & B00110000) >> 4;
if (cur == 3) cur = 2; else if (cur == 2) cur = 3;
if (cur != old) { if (dir == 0) { if (cur == 1 || cur == 3) dir = cur; } else { if (cur == 0) { if (dir == 1 && old == 3) enc_count++; else if (dir == 3 && old == 1) enc_count--; dir = 0; } } pos = (dir << 4) + (old << 2) + cur; }}
void setup(){ digitalWrite(13, LOW); // SPI Clock PIN pinMode(ENC_A, INPUT_PULLUP); pinMode(ENC_B, INPUT_PULLUP); pinMode(LED_Red, OUTPUT); pinMode(LED_Green, OUTPUT); pinMode(LED_SW, INPUT_PULLUP); pinMode(CS, OUTPUT); pinMode(F1, INPUT_PULLUP);
attachInterrupt(0, ENC_READ, CHANGE); attachInterrupt(1, ENC_READ, CHANGE);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay();
// Font size display.setTextSize(3); // Font color display.setTextColor(WHITE); display.setCursor(0, 10); display.println("EF-LensFocuser"); display.display(); delay(1000); mode = 0; // focus control mode apAddr = 0; // 1 byte memory for aperture value fpAddr = 1; // 2 byte memory for focus position focuserPosition = 5000; SPI.begin(); SPI.setBitOrder(MSBFIRST); SPI.setClockDivider(SPI_CLOCK_DIV128); SPI.setDataMode(SPI_MODE3); digitalWrite(12, HIGH); digitalWrite(LED_Red, HIGH); digitalWrite(LED_Green, LOW); InitLens(); SPI.transfer(0x05); // Focus Max delay(1000); apValue = EEPROM.read(apAddr); fpValue = EEPROM.read(fpAddr) * 256 + EEPROM.read(fpAddr + 1); // focus position offset = fpValue - focuserPosition; proc_lens(offset); // Move focus tot last position
Serial.begin(9600); Serial.print("FP:"); Serial.println(fpValue); Serial.print("AP:"); Serial.println(apValue); display.clearDisplay(); display.setCursor(0, 10); display.print("F:"); display.println(fpValue); display.print("A:"); display.println(apValue); display.display(); delay(1000);}
void loop(){ int sw_count; int tmp, last_offset; short counter_now; digitalWrite(CS, HIGH); sw_count = 0; while (digitalRead(LED_SW) == LOW) { sw_count++; if (sw_count > 50) { if (mode == 1) { // forcus control mode digitalWrite(LED_Red, HIGH); digitalWrite(LED_Green, LOW); } else { // aperture control mode digitalWrite(LED_Green, HIGH); digitalWrite(LED_Red, LOW); } } if (sw_count > 200) { digitalWrite(LED_Green, HIGH); digitalWrite(LED_Red, HIGH); } delay(10); } delay(100); if (sw_count > 50 && sw_count < 200) { mode == 0 ? mode = 1 : mode = 0; } if (mode == 1) { digitalWrite(LED_Green, HIGH); digitalWrite(LED_Red, LOW); } else { digitalWrite(LED_Red, HIGH); digitalWrite(LED_Green, LOW); } /* if (sw_count != 0) { Serial.print("mode: "); Serial.print(mode); Serial.print(", real: "); Serial.println(real_mode); } */ if (sw_count > 200) { real_mode = !real_mode; if (real_mode) { Serial.print("mode: "); Serial.println(mode); last_offset = mode_counter[mode]; } else { mode_counter[mode] = last_offset; } } if (sw_count != 0 && (sw_count < 50)) { proc_lens(tmp); }
counter_now = ENC_COUNT(mode_counter[mode]); tmp = counter_now - mode_counter[mode]; // encoder counter state if (mode_counter[mode] != counter_now) { tmp > 0 ? 1 : -1; if (real_mode) { mode_counter[mode] += tmp; proc_lens(tmp); } else { mode_counter[mode] = counter_now; } } if (sw_count != 0 || tmp != 0) disp_update(tmp, last_offset);}
void proc_lens(int tmp){ int ap; digitalWrite(CS, LOW); if (mode == 0) { // Send command to LENS フォーカス if (real_mode) { offset = tmp; } else { offset = mode_counter[mode]; } x = highByte(focuserPosition); y = lowByte(focuserPosition); EEPROM.write(fpAddr, x); // write to EEPROM last focus position EEPROM.write(fpAddr + 1, y); x = highByte(offset); y = lowByte(offset); Serial.print("FP:"); Serial.print(offset); Serial.print(", "); Serial.println(focuserPosition); InitLens(); SPI.transfer(0x44); delay(30); SPI.transfer(x); delay(30); SPI.transfer(y); delay(30); SPI.transfer(0); delay(100); focuserPosition += offset; } else { // 絞り apValue = mode_counter[mode]; ap = (apValue - EEPROM.read(apAddr)) * 3; Serial.print("APvalue:"); Serial.print(apValue); Serial.print(",SET ap:"); Serial.println(ap); if (apValue != EEPROM.read(apAddr)) { InitLens(); SPI.transfer(0x07); delay(10); SPI.transfer(0x13); delay(10); SPI.transfer((apValue - EEPROM.read(apAddr)) * 3); delay(100); SPI.transfer(0x08); delay(10); SPI.transfer(0x00); delay(10); EEPROM.write(apAddr, apValue); } }}
void disp_update(int tmp, int last_offset){ char sep; display.clearDisplay(); display.setCursor(0, 10); if (real_mode) { // Update when encoder rotated sep = '>'; switch (mode) { case 0: (tmp > 0) ? sep = '>' : sep = '<'; display.print("F"); display.print(sep); display.println(last_offset); display.print("P"); display.print(sep); display.println(focuserPosition); break; case 1: display.print("F"); display.print(sep); display.println(focuserPosition); display.print("A"); display.print(sep); display.println(mode_counter[mode]); break; } } else { // Update when switch pushed sep = ':'; switch (mode) { case 0: display.print("F"); display.print(sep); display.println(mode_counter[mode]); display.print("P"); display.print(sep); display.println(focuserPosition); break; case 1: display.print("F"); display.print(sep); display.println(focuserPosition); display.print("A"); display.print(sep); display.println(mode_counter[mode]); break; } } display.display();}
https://astromechanics.org/downloads/ascom_ef/en/manual/User%20Manual%20ASCOM.pdf
以上是代码,颜色好像有问题
https://github.com/crescentvenus/EF-Lens-CONTROL/blob/master/EF-Lens-control.ino
https://ascom-standards.org/Downloads/FocuserDrivers.htm

评论 (0)
  • Python3高级核心技术97讲,高级进阶的必学课程

    分享课程——Python3高级核心技术97讲,高级进阶的必学课程,附源码+PDF课件下载。

    Python3高级核心技术由97讲组成,涵盖了多个方面的内容。以下是其中一部分重要内容的概述:
    高级函数和闭包:
    介绍高阶函数的概念,如map、filter、reduce等;
    讲解闭包的原理和用法,展示闭包在实际项目中的应用。
    迭代器和生成器:
    解释迭代器和可迭代对象的概念;
    探讨生成器的原理和用法,并介绍协程的概念。
    并发编程:
    讲解多线程和多进程编程的基本概念;
    引入线程间通信、锁和条件变量等概念。
    数据库编程:
    介绍Python与关系型数据库的交互;
    演示如何使用Python操作数据库进行增删改查。
    异常处理和调试:
    讲解异常处理的基本概念和错误处理技巧;
    提供调试技巧,如断点调试、日志调试等。

  • FM2514规格书 USB 充电控制器
    FM2514 是一款 USB 快速充电控制 IC,符合 USB 电池充电规范 1.2 版本,它允许充电装置吸取的电流类似于 使用原装充电器。FM2514 可自动识别充电设备类型,支持多种智能手机,并通过对应的 USB 充电协议与设备握手, 使之获得最大充电电流,在保护充电设备前提下节省充电时间。
  • 基于51单片机的智能台灯覆铜板设计技术手册
    基于51单片机的智能台灯覆铜板设计技术手册
  • 基于CH340N的USB转TTL模块-MINI-A技术手册
    基于CH340N的USB转TTL模块-MINI-A技术手册
  • FM100规格书 FM101规格书 快速充电接口IC
    FM100/FM101 是一款支持 Quick Charge 2.0(QC 2.0)快速充电协议的充电接口控制器 IC,可自动
    识别快速充电设备类型,并通过 QC2.0 协议与设备握手,使之获得设备允许的安全最高充电电压,在保
    护充电设备的前提下节省充电时间。
    
  • 2023版全新高质量商业级小程序全栈项目实战(完结22章)
    2023版全新高质量商业级小程序全栈项目实战,前端小程序开发主要有原生开发、第三方框架开发、H5网页封装三种,从性能及体验上来看,原生开发 > 第三方框架 > H5封装。H5封装也就是把H5网页封装在小程序内,开发成本低,但是体验不太好、性能也不太好,大部分小程序功能无法使用;第三方框架开发小程序都主要目的是为了一次编写多端运行,然而实际上,使用第三方框架开发小程序会有很多兼容性需要去做处理,很多坑需要去踩,有时候开发成本反而比原生开发更高;原生开发实际上就是按照小程序官方文档中的描述去开发小程序,体验和性能是最好的。

    2023版全新高质量商业级小程序全栈项目实战(完结22章),开发小程序需要用到哪些技术:
    1、前端技术
    小程序的界面和交互都是通过前端技术实现的,包括HTML、CSS、JavaScript等。你需要熟练掌握这些技术,特别是JavaScript,因为小程序使用的是一种叫做“微信小程序框架”的JavaScript框架。

    2、后端技术
    小程序需要与后端服务器进行数据交互,所以需要熟悉后端技术,如Node.js、PHP、Python等。

    3、数据库技术
    小程序需要使用数据库存储数据,如MySQL、MongoDB等。

    4、微信小程序开发工具
    微信提供了一款小程序开发工具,它可以提供代码编辑、调试、预览和发布等功能。

  • 基于51单片机的智能台灯带坐姿矫正覆铜板设计技术手册
    基于51单片机的智能台灯带坐姿矫正覆铜板设计技术手册
  • 15、常规0608工字电感的电性能都一样吗
    15、常规0608工字电感的电性能都一样吗
  • 锂离子电池制造工艺原理与应用
    锂离子电池制造工艺原理与应用
  • 12、谷景电子为杭州客户亚运会期间电感供应保驾护航.
    12、谷景电子为杭州客户亚运会期间电感供应保驾护航.
  • 人人都能学的数据分析(16周完整版+源码+PDF课件)下载
    人人都能学的数据分析(16周完整版+源码+PDF课件),作为数据分析师, 清晰了解数据分析的步骤是非常重要的,有助于清楚把控整个数据分析的流程
    那么在日常工作中,这些上下游对接的部门同事自然是分析师的面向对象,除了这些工作的合作伙伴,还有大部分精力要拿来面对自己的领导和业务方的领导,他们可能会给你提一些有挑战性的工作,即使他们属于放手型的,那你也需要主动找机会与他们沟通,毕竟向上管理是每一个职场人必备的技能。
    作为想要学习数据分析的人员,了解整个数据分析的流程, 这样在面对一个数据分析问题的时候,知道如何去开展
    那么数据分析流程包含哪些环节呢?
    我将一次完整的数据分析流程主要分为六个环节,包括明确分析目的、数据获取、数据处理、数据分析、数据可视化、总结与建议。

    1、PEST分析法
    PEST,也就是政治(Politics)、经济(Economy)、社会(Society)、技术(Technology),能从各个方面把握宏观环境的现状及变化趋势,主要用户行业分析。

    2、5W2H分析法
    5W2H,即为什么(Why)、什么事(What)、谁(Who)、什么时候(When)、什么地方(Where)、如何做(How)、什么价格(How much),主要用于用户行为分析、业务问题专题分析、营销活动等。

    3、SWOT分析法
    SWOT分析法也叫态势分析法,S (strengths)是优势、W (weaknesses)是劣势,O (opportunities)是机会、T (threats)是威胁或风险。

    分析师需要面对的人
    分析师的岗位类似于文章中的过渡句,上面承接开发、埋点、数据仓库的同事,下面对接运营、产品,商业等业务人员,如果你想最快的了解整个公司的运营模式和现状,分析师的职位是不二之选。

    那么在日常工作中,这些上下游对接的部门同事自然是分析师的面向对象,除了这些工作的合作伙伴,还有大部分精力要拿来面对自己的领导和业务方的领导,他们可能会给你提一些有挑战性的工作,即使他们属于放手型的,那你也需要主动找机会与他们沟通,毕竟向上管理是每一个职场人必备的技能。
  • 14、谷景科普贴片电感坏了可用磁环代替吗
    14、谷景科普贴片电感坏了可用磁环代替吗
  • 一.项目背景: 目前医院固定资产管理通常采用人工管理方法和手段: 1. 医院仪器保养维修记录皆为人工手写常常因为工作忙而忘记填写或抄写错误。 2. 纸质的记录无法提供查询功能。 3. 医院内部科室搬迁时容易发生仪器遗失或闲置。 4. 无法详细记录仪器的使用周期。 这种管理手段效率低下,差错率高,且容易出现紧急情况下无法迅速找到特殊医疗设备的问题。改革旧的管理模式,提高固定资产管理水平,成了当前医院面临的刻不容缓的问题。 在当前这种状况下,改变原有的医疗资产管理方法刻不容缓,苏州新导
    新导智能 2023-09-26 10:28 125浏览
  • 一.项目实施概述 1.1项目概况 国家电投集团黄河上游水电开发有限责任公司(以下简称:黄河公司)是国家电力投资集团有限公司(以下简称:国家电投集团)控股的大型综合性能源企业,成立于1999年10月。目前主要从事电站的开发与建设;电站的生产、经营、测试及检修维护;晶硅产品和太阳能电池及组件的生产、销售;电解铝的生产、销售;矿产资源开发等业务。 为此,苏州新导特别研发出一套RFID仓库管理系统,结合黄河公司的特点,项目需求,功能需求等等. 二.项目需求 1)RFID仓库管理系统:系
    新导智能 2023-09-26 10:14 108浏览
  • 9月25日,华为一年一度的秋季全场景新品发布会举行,这可能是华为历史上最为特殊、关注度最高的一场产品发布会,众多官媒加持,被许多媒体认为是华为强势回归的“仪式”。最近一个月来,是独属于华为的高光时刻,从8月底华为Mate 60 pro手机“未发先售”,麒麟9000s芯片实现华为手机媲美5G上网速度,“遥遥领先”全网热议,任正非和孟晚舟先后发表“第四次工业革命”、“全面智能化时代”等讲话,华为正在全面回归。当然,在这场发布会上行,大家更期待的是,听到更多华为手机的声音。然而,并没有,华为 Mate
    传感器专家网 2023-09-26 11:34 126浏览
  • 1. SDK简介一个通用 Linux SDK 工程目录包含有buildroot、app、kernel、device、docs、external 等目录。其中一些特性芯片如RK3308/RV1108/RV1109/RV1126等,会有所不同。● app:存放上层应用 app,主要是 qcamera/qfm/qplayer/settings 等一些应用程序。● buildroot:基于 bu
    万象奥科 2023-09-26 16:15 102浏览
  • 在众多行业的数字化转型过程中,基于硬件的数据处理加速是构建高性能、高效率智能系统的关键之处,因而市场上出现了诸如FPGA、GPU和xPU等许多通用或者面向特定应用(如NPU)的硬件加速器。尽管它们的性能和效率都高于通用处理器,但是开发人员还是一直在为各种新兴应用寻找可重构的但性能又如ASIC一样的硬件加速器,同时还可以最大限度重用其开发成果。 高性能FPGA成为了诸多智能化应用的首选硬件加速器,相对于目前大热的GPU来进行数据加速,采用FPGA的实现方式通常可以带来更低的延迟和更高的能效;
    电子科技圈 2023-09-26 13:17 92浏览
  • 1. Kernel手动编译1.1       kernel查询帮助 使用./build.sh -h kernel查看kernel的详细编译命令如下所示。图1.1编译内核 上图表示,单独编译kernel固件分为三步,进入kernel目录,选择默认配置文件,编译镜像。 1.2       kernel默
    万象奥科 2023-09-26 17:14 88浏览
  •   智能仓库是近几年兴起的一个概念,仓库的货物繁杂,进出频繁,是很考验管理水平的随着新技术的不断发展 特别是近几年RFID技术的发展, 使仓库的管理更加自动化 人性化,苏州新导RFID仓库管理主要利用RFID技术,在每个物资上配上标签记录此物资的属性,再结合读写器做进出,分拣,盘点操作. RFID仓库管理系统中的电子标签RFID有的称射频标签、射频识别。它是一种非接触式的自动识别技术,通过射频信号识别目标对象并获取相关数据,识别工作无须人工干预,作为条形码的无线版本,RFI
    新导智能 2023-09-26 11:25 131浏览
  • 读报见文:我们的未来注定只有零和博弈吗? FT中文网更新于2023年9月22日 19:29 约翰•伯恩-默多克 经济增长放缓的背景可能正在影响人们对未来的态度,无论政治倾向。   第一想到的就是这些年个人好奇的一个说法:有得就有失,有失就有得,得而不喜失而不忧。 零和不就是没有输赢?得失均衡? 到底什么是零和博弈呢?百度看看。 零和博弈(社会学概念)_百度百科说: 零和博弈(zero-sum game),又称零和游戏,与非零和博弈相对,是博弈论的一个概念,属非合作博弈。
    自做自受 2023-09-26 13:13 121浏览
  • 随着现代汽车工业的发展,汽车内部电子电气架构复杂度增加,需要使用更高带宽的通信解决方案,这也成了车载以太网技术推动的动力。 什么是车载以太网?与传统以太网有什么区别? 车载以太网是一种用于连接车内电气设备的物理网络,它可以满足车载环境的特殊需求,如EMI/RF,同时也满足车载设备对于高带宽低延迟以及音视频同步的需求,满足车载网络对网络管理的需求。 而传统以太网不能够满足OEM对于EMI/RF的需求,抗干扰能力差,无法保证毫秒级的传输延迟和带宽分配。 车载以太网总线相对于其
    北汇信息 2023-09-26 11:28 129浏览
  • 红外线传感器是用红外线的物理性质来进行测量的传感器。红外线又称红外光,它具有反射、折射、散射、干涉、吸收等性质。是一种不可见光,其光谱位于可见光中红色以外,所以称红外线。工程上把红外线占据在电磁波谱中的位置分为:近红外、中红外、远红外、极远红外四个波段。任何物质,只要它本身具有一定的湿度,都能辐射红外线。 红外线传感器测量时不与被测物体直接接触,因而不存在摩擦,并且有灵敏度高,响应快等优点。可测量的物理量红外线传感器常用于无接触温度测量,气体成分分析和无损探伤,在医学、军事、空间技术和
    斯利通陶瓷电路板 2023-09-26 16:28 88浏览
  • 商户缺斤少两、虚报重量的欺诈行为频发,公平秤时不时就会损坏,消费者可以如何保护自己的合法权益呢?毕竟对于一些贵重商品,差一点可是不少钱的。 消费者可以通过电子秤了解所购买商品的真实重量和,更好地保护自己的合法权益。手提家用电子秤是一种方便实用的家居计量工具,它的主要用途是用于测量物体的重量,在日常生活的各个方面,手提家用电子秤都发挥着重要的作用。主要特点就是体积小巧,重量轻,便于携带,可以随时随地使用。 这次带来的商品如下: 从外观上来看,主要的操作模式就是两个按键,然后通过断码
    无言的朝圣 2023-09-26 12:07 115浏览
  • 一.项目背景: 人口老龄化加剧,老人日益增多,家庭养老功能的逐步弱化,养老院机构作为支撑。而养老院要维持健康、稳定的发展,离不开管理的信息化、服务的智能化、运营成本的合理化。新导智能为实现养老院的智慧化管理推出了一套基于蓝牙定位技术的数字化医院整体解决方案,是业内首创通过一套蓝牙网络实现室内精准定位、无线活动监测、生命体征监测、健康管理、护工管理、医疗设备数据采集等应用。数字医院整体解决方案通过应用移动计算、智能识别、数据融合、云计算、物联网等先进技术对医院临床业务和医院管理两个核心的应用进行
    新导智能 2023-09-26 10:57 107浏览
  • 一.项目背景: 当前大型化化工厂制造企业,人员管理除考勤管理外主要依靠监管人员进行现场管理的方式,这种方式不但需要监管人员亲临现场,而且并不能从根本上解决人员管理问题,比如车间分布较分散,监管人员需要不断巡视各车间;人员较多时,并不能对每个人员起到监管作用。随着企业规模扩大,人员的增多,随之而来的是如何提高监管人员的工作效率,管理好每个人员,对企业管理来说至关重要。 针对化工厂人员管理的难题,苏州新导结合了无线无线技术,开发出化化工厂人员定位系统,可以从根本上解决化工厂人员管理的问题
    新导智能 2023-09-26 10:25 108浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦