版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
[20]。然后,我们研究了儿童在HS入学时的学术和社会情绪技能是否与他们的学术成长轨迹相关。这项研究是由两个关于早期护理和教育(ECE)项目有效性的竞争性理论指导的,即“技能产生技能假说”和“补偿假说”使用三级增长曲线模型分析了2006年开端计划家庭和儿童经历调查队列(FACES2006)的样本。接受性词汇技能较低的儿童在接受性词汇技能方面表现出较快的增长。这一结果支持了补偿性假设,即高质量的儿童早教项目对弱势儿童有更大的影响。对于数学和阅读技能,没有发现儿童的入门级技能和他们的增长率之间的联系。HS入学时的社会情绪技能与同时基线学术技能或其随时间的增长率正相关,部分支持技能-生育-技能假说,该假说认为儿童在干预前拥有的技能允许他们更好地获得计划的好处。1.3主要研究内容本课题研究的内容为智能儿童成长记录仪的设计。该套系统主要由按键、摄像头、超声波测距、重力感应模块、STM32单片机、SD卡、LCD1602等部分组成;采用STM32单片机作为主控芯片LCD1602显示屏显示时间、身高、体重,通过按键可以设置当前时间、年龄、拍照;系统根据儿童的身高判断当前体重是偏胖、偏瘦、标准并显示。系统可检测儿童是否高低肩,若儿童有高低肩以及检测到儿童当前测得身高比上次低,则判断孩子有驼背可能,文字显示提醒;系统可记录儿童注射疫苗状况,并可查看。第2章系统的总体结构2.1设计方案第一:理论知识准备阶段,了解掌握设计课题,认真研究课题所涉及到的内容,能够较好的掌握有关题目的知识;第二:确定系统各个模块,对各个模块关系进行整理,收集相关得到软硬件资料;第三:对课题进行整体规划,确定系统组成结构,确定大体系统框架并在结构框架的基础上提出原理框图;第四:利用软件完成硬件电路部分设计并画出各部分电路图,将系统部件通过接口电路集合在一起,并画出电路图;第五:根据系统控制过程完成软件设计部分,绘制出主流程图;第六:进行模拟仿真,检查系统是否能够按照要求实现控制功能,根据功能进行论文整理。2.2功能需求分析2.2.1技术路线(1)硬件部分需要按键、摄像头、超声波测距、重力感应模块、STM32单片机、SD卡、LCD1602。(2)软件平台程序用keil5;(3)画原理图用AD;(4)编程语言用C语言;2.2.2预期结果作品展示,完成一个智能儿童成长记录仪的设计,并且该设计能实现的功能如下:该套系统主要由按键、摄像头、超声波测距、重力感应模块、STM32单片机、SD卡、LCD1602等组成;采用STM32单片机作为主控芯片LCD1602显示屏显示时间、身高、体重,通过按键可以设置当前时间、年龄、拍照;系统根据儿童的身高判断当前体重是偏胖、偏瘦、标准并显示。系统可检测儿童是否高低肩,若儿童有高低肩以及检测到儿童当前测得身高比上次低,则判断孩子有驼背可能,文字显示提醒;系统可记录儿童注射疫苗状况,并可查看,根据身高相对应的正常体重,如果体重超过正常设定的体重,系统认为偏胖,少于正常体重,系统认为偏瘦。1.系统可设定当前系统时间;2.系统可实时显示当前系统时间;3.系统可设置儿童当前年龄;4.系统可实时检测儿童身高,并显示,按键可记录身高到SD卡中;5.系统可实时检测儿童体重,并显示,按键可记录体重到SD卡中;6.系统根据儿童的身高,判断当前体重是偏胖/偏瘦/标准,并显示;7.系统可实时采集摄像头的画面,并显示,按键可拍照定格当前时光到SD卡中;8.系统可查看儿童成长过程中的定格的时光、身高、体重。9.系统可检测儿童是否高低肩,若儿童有高低肩,文字显示提醒;10.若检测到儿童当前测得身高比上次低,则判断孩子有驼背可能,文字显示提醒;11.系统可记录儿童注射疫苗状况,并可查看;结构框图如图2-1:图2-1结构框图保定理工学院本科毕业设计2.3单片机型号选择主控制芯片选择STM32F103ZET6,STM32F103ZET6是由意法半导体集团基于STM32系列ARM
Cortex-M内核开发的一款具有64KB的程序存储器的32位微控制器。其工作时需要2V~3.6V的电压和-40℃~85℃环境温度。
STM32系列单片机是一款高性能,功能强大的系列单片机。该系列单片机常被用于要求低成本、高性能和低功耗的嵌入式应用程序,其在功耗和集成方面也展现出良好的性能。由于其便捷的工具和简单的结构并且结合了强大的功能性,在业界很受欢迎。本实验采用的最小系统如下图。图2-1单片机最小系统原理图2.4超声波测距传感器选择超声波传感器选型应考虑四个方面:1.被测物能运用超声波传感器进行检测的最理想的物体应该是大型、平坦、高密度的物体,垂直放置面对着传感器感应面。最难检测的是那些面积非常小,或者是可以吸收声波的材料制作的,比如泡沫塑料,或者是角面对着传感器的。在Retrosonic模式下使用超声波传感器使得探测不规则物体也成为可能,在Retrosonic模式下,超声波传感器可以先探测一个平整的背景,如一面墙,当任何物体通过传感器和墙之间的时候,就会阻碍声波,传感器感应到了中断,便会意识到出现了物体。2.振动方面无论是传感器本身还是周围机械的振动,都会影响距离测量的精确度。这时可以考虑采取一些减震措施,例如:用橡胶的抗震设备给传感器做一个底座,可以减少振动,用固定杆也可以消除或者最大程度的减少振动。3.衰减方面当周围环境温度缓慢变化的时候,有温度补偿的超声波传感器可以做出调整,但是如果温度变化过快,传感器将无法做出调整。4.误判方面声波可能会被附近的一些物体反射,比如导轨或者固定夹具,为了确保检测的可靠性,必须减少或者排除周围物体对声波反射的影响,为了避免对周围物体的错误检测,许多超声波传感器都有一个LED指示器来引到操作人员进行安装,来确保这个传感器被正确的装好,减少出错的风险。本模块采用的为HC-SR04·超声波传感器模块,可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。HC-SR04超声波距离传感器的核心是两个超声波传感器。一个用作发射器,将电信号转换为40KHz超声波脉冲。接收器监听发射的脉冲。如果接收到它们,它将产生一个输出脉冲,其宽度可用于确定脉冲传播的距离。该传感器体积小,易于在任何机器人项目中使用,并提供2厘米至400厘米(约1英寸至13英尺)之间出色的非接触范围检测,精度为3mm。由于它的工作电压为5伏,因此可以直接连接到Arduino或任何其他5V逻辑微控制器。2.5重量传感器选择本设计采用HX711重量传感器,参数如下:表3-1重量传感器参数型号参数HX711重量传感器满额度差分输入范围Y(inp)-y(irn)+0.5(AVDD/GAIN)V输入共模电压范围AGND+0.6AVDD-0.6V使用片内振荡器RATE=010使用片内振荡器RATE=DVDD80;外部时钟或晶振RATE=0fclk/1,105,920外部时钟或晶振RATE=DYDDfclk/138,240Hz输出数据编码二进制补码8000007FFFFF(HEX)RATE=0400输出参考电压(VBG)1.25V外部时钟或晶振频率111.059230M0Hz模拟电源电流(含稳压电路)1600电0.3AHX711压力传感器是一种高精度、高分辨率的模拟-数字转换器,可用于测量压力、重量等物理量。它采用24位Σ-ΔADC,具有内部低噪声放大器和可编程增益放大器,可实现高精度的模拟信号转换。HX711压力传感器广泛应用于工业自动化、医疗设备、智能家居等领域。hx711对比AD7791HX711和AD7791都是用于重量测量的芯片,但是它们的工作原理和性能略有不同。HX711是一种高精度的模拟-数字转换器,适用于低成本的电子秤和压力传感器等应用。而AD7791则是一种高精度的24位ΔΣ模数转换器,适用于需要更高精度的重量测量和传感器应用。hx711对比MCP3421HX711和MCP3421都是用于重量测量的芯片,但它们的工作原理和性能略有不同。HX711是一种高精度、低成本的模拟-数字转换器,适用于小型电子秤和压力传感器等应用。而MCP3421是一种高精度、低功耗的24位模拟-数字转换器,适用于需要更高精度的应用,如医疗设备和科学仪器等。第3章系统的硬件部分设计3.1系统总体设计本课题研究的内容为智能儿童成长记录仪的设计。该套系统主要由按键、摄像头、超声波测距、重力感应模块、STM32单片机、SD卡、LCD1602等部分组成;采用STM32单片机作为主控芯片LCD1602显示屏显示时间、身高、体重,通过按键可以设置当前时间、年龄、拍照;系统根据儿童的身高判断当前体重是偏胖、偏瘦、标准并显示。系统可检测儿童是否高低肩,若儿童有高低肩以及检测到儿童当前测得身高比上次低,则判断孩子有驼背可能,文字显示提醒;系统可记录儿童注射疫苗状况,通过按键模块来模拟注射疫苗,疫苗分为疫苗1和疫苗2,通过显示模块来查看疫苗注射的具体时间以及疫苗种类。图3-1系统总体原理图3.2系统的主要功能模块设计3.2.12.4寸LCD显示屏模块设计液晶显示屏LCD,用于数字型钟表和许多便携式计算机的一种显示器类型。LCD显示使用了两片极化材料,在它们之间是液体水晶溶液。电流通过该液体时会使水晶重新排列,以使光线无法透过它们。因此,每个水晶就像百叶窗,既能允许光线穿过又能挡住光线。在便于携带与搬运为前题下,传统的显示方式如映像管显示器及板等等,皆受制于体积过大或耗电量甚巨等因素,无法达成使用者的实际需求。而液晶显示技术的发展正好切合信息产品的潮流,有着直角显示、低耗电量、体积小、还是零辐射等优点,都能让使用者享受最佳的视觉环境。图3-22.4寸LCD显示屏原理图3.2.2重量传感器模块设计重量传感器实际上是一种将质量信号转变为可测量的信号输出的装置。用传感器首先要考虑传感器所处的实际工作环境,这点对正确选用重量传感器至关重要,它关系到传感器能否正常工作以及它的安全和使用寿命,乃至整个衡器的可靠性和安全性。在重量传感器主要技术指标的基本概念和评价方法上,新旧国标有质的差异。(下简称仪表)、感器(下简称传感器)、连接件、限位装置及接线盒等零部件组成,还可以选配打印大屏幕显示器、计算机和稳压电源等外部设备。被称重物或载重汽车置于承载器台面上,在重力作用下,通过承载器将重力传递至称重传感器,使称重传感器弹性体产生变形,贴附于弹性体上的应变计桥路失去平衡,输出与重量数值成正比例的电信号,经线性放大器将信号放大。再经A/D转换为数字信号,由仪表的微处理机(CPU)对重量信号进行处理后直接显示重量数据。配置打印机后,即可打印记录称重数据,如果配置计算机可将计量数据输入计算机管理系统进行综合管理。在称重的弹性体上粘贴有应变计,组成桥。在无负荷时,电桥处于平衡状态,输出为零。当弹性体承受载荷时,各应变计随之产生与载荷成比例的应变,由输出电压即可测出外载重量,通过仪表的通讯接口可以与上位机连接。传感器的信号电缆,不和强电电源线或控制线并行布置(例如不要把传感器信号线和强电电源线及控制线置于同一管道内)。若它们必须并行放置,那么,它们之间的距离应保持在50CM以上,并把信号线用金属管套起来。不管在何种情况下,电源线和控制线均应绞合起来,合程度50转/米,若传感器信号线需要延长,则应采用特制的密封电缆接线盒。若不用此种接线盒,而采用电缆与电缆直接对接(锡焊端头),则应对密封防潮特别予以注意,接好后应检验绝缘电阻,且需达到标准(2000~5000M),必要时,应重新标定传感器。若信号电缆线很长,又要保证很高的测量精度,应考虑采用带有中继放大器的电缆补偿电路。所有通向显示电路或从电路引出的导线,均应采用屏蔽电缆。屏蔽线的联接及接地点应合理。若未通过机械框架接地,则在外接地,但屏蔽线互相联接后未接地,是浮空的。注意:有3只传感器是全并联接法,传感器本身是4线制,但在接线盒内换成6线制接法。传感器输出信号读出电路不应和能产生强烈干扰的设备(如可”控硅,接触器等)及有可观热量产生的设备放在同一箱体中,若不能保证这一点,则应考虑在它们之间设置障板隔离之,并在箱体内安置风扇。用以测量重量传感器输出信号的电子线路,应尽可能配置独立的供电变压器,而不要和接触器等设备共用同一主电源。重量传感器要轻拿轻放,尤其是由合金铝制作弹性体的小容量传感器,任何冲击、跌落,对其计量性能均可能造成极大损害。对于大容量的电阻应变式重量传感器,一般来说,它具有较大的自重,故而要求在搬运、安装时,尽可能使用适当的起吊设备(如手拉葫芦、\t"/item/%E9%87%8D%E9%87%8F%E4%BC%A0%E6%84%9F%E5%99%A8/_blank"电动葫芦等)。安装传感器的底座安装面应平整、清洁,无任何油膜,胶膜等存在。安装底座本身应有足够的强度和刚性,一般要求高于传感器本身的强度和刚度。水平调整:水平调整有两个方面的内容。一是单只传感器安装底座的安装平面要用水平仪调整水平,另一方面是指多个传感器的安装底座的安装面要尽量调整到一个水平面上(用水准仪),尤其是传感器数多于三个的称重系统中,更应注意这一点,这样做的主要目的是为了使各传感器所承受的负荷基本一致。每种重量传感器的加载方向都是确定的,而我们使用时,一定要在此方向上加载负荷。横向力、附加的弯矩、扭矩力应尽量避免。尽量采用有自动定位(复位)作用的结构配件,如球形轴承、轴承、定位紧固器等。他们可以防止某些横向力作用在传感器上。要说明的是:有些横向力并不是机械安装引起的,如热膨胀引起的横向力,风力引起的横向力,及某些容器类衡器上的搅拌器的振动引起的横向力即不是机械安装引起的。某些衡器上有些必须接到秤体上的附件(如容器秤的输料管道等),我们应让他们在传感器加载主轴的方向上尽量柔软一些,以防止他们“吃掉”传感器的真实负荷合而引起误差。重量传感器周围应尽量设置一些“挡板”,甚至用薄金属板把传感器罩起来。这样可防止杂物玷污传感器及某些可动部分,而这种“沾污”往往会使可动部分运动不爽,而影响称量精度。系统有无运动不爽现象,可以用以下方法判别。即在秤台上加或减大约千分之一额定负荷看看称重显示仪是否有反映,有反映,说明可动部分未受“沾污”。重量传感器虽然有一定的过载能力,但在称重系统安装过程中,仍应防止传感器的超载。要注意的是,即使是短时间的超载,也可能会造成传感器永久损坏。在安装过程中,若确有必要,可先用一个传感器等高度的垫块代替传感器,到最后,再把传感器换上。在正常工作时,传感器一般均应设置过载保护的机械结构件。若用螺杆固定传感器,要求有一定的紧固力矩,而且螺杆应有一定的旋入螺纹深度。一般而言,固定螺杆因采用高强度螺杆。传感器应采用铰合铜线(截面积约50mm2)形成电气旁路,以保护它们免受电焊电流或雷击造成的危害。重量传感器的使用中,必须避免强烈的热辐射,尤其是单侧的强烈热辐射。图3-3重量传感器软件设计3.2.3TF内存卡模块设计MicroSDCard,原名Trans-flashCard(TF卡),2004年正式更名为MicroSDCard,由SanDisk(闪迪)公司发明,主要用于移动电话。在MicroSD面市之前,手机制造商都采用嵌入式体,虽然这类模组容易装设,然而有着无法应实际应潮流需求的困扰——容量被限制住了,无法再有升级空间。MicroSD仿效SIM卡的应用模式,即是同一张卡可以应用在不同型号的电话内。MicroSD卡足以堪称可移动式的储存IC。Micro卡是一种极细小的快闪存储器卡,其格式源自SanDisk创造,原本这种记忆卡称为T-h,及后改称为TransFlash;而重新命名为MicroSD的原因是因为被SD协会(SDA)采立。另一些被SDA采立的记忆卡包括MiniSD和SD卡。其主要应用于移动电话,但因它的体积微小和储存容量的不断提高,已经使用于设备、便携式放器和一些盘中。它的体积为15mmx11mmx1mm,是现时最细小的。它也能通过SD转接卡来接驳于SD卡插槽中使用。现时MicroSD卡提供128MB、256MB、512MB、1G、2G、4G、8G、16G、32G、64G、128G的容量。图3-4TF内存卡模块原理图3.2.4摄像头模块设计摄像头(CAMERA或WEBCAM)又称为电脑相机、脑眼、电子眼等,是一种视频设备,被广泛的运用于视频会议、医疗及等方面。摄像头的工作原理大致为:景物通过镜头(LENS)生成的投射到感器表面上,然后转为号,经过AD转换后变为像信号,再送到数字(DSP)中加工处理,再通过口传输到电脑中处理,通过显示器就可以观看图像。GC0328具有640Vx480H分辨率,1/6.5英寸光学格式,以及4晶体管像素结构,用于高图像质量和低噪声变化。它通过强大的10位模数转换器芯片上的设计和嵌入式图像信号处理器提供优越的图像质量.高性能和低功耗功能的全面集成使得GC0328更加适合设计。图3-5摄像头模块原理图3.2.5超声波传感器模块设计超声波可以穿过各种介质(气体、液体、固体)来检测声阻抗不匹配的物体声速是声波在弹性介质中传播时每单位时间的距离。空气中的超声波衰减随着频率和湿度的增加而增加。因此,由于过度的路径损耗/吸收,空气耦合超声波通常被限制在500kHz以下的频率。超声波避障原理:超声波其实就是声波的一种,因为频率高于20kHz,所以人耳听不见,并且指向性更强。超声波测距的原理相比计较红外线来说更加简单,因为声波遇到障碍物会反射,因为声波的速度已知,所以只需知道从开始发射到接收到的时间差,就能轻松计算出测量距离再结合发射器和接收器的距离,就能算出障碍物的实际距离。由于需要主动发射声波,精度也会随着声波的衰减而降低,此外,对于海绵等吸收声波的物体或者在大风干扰的情况下,超声波将无法工作。其工作原理为:采用IO口TRIG触发测距,给最少10us的高电平信呈;模块自动发送8个40khz的方波,自动检测是否有信号返回;有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间测试距离=(高电平时间*声速(340M/S))/2。图3-6超声波传感器模块原理图第4章系统的软件设计4.1软件的主要流程首先接通电源后,单片机进行系统初始化,初始化完成后进入到设定的程序运行,传感器开始采集数据,采集的数据传入到我们的单片机中进行数据的处理,处理完的数据会通过显示屏显示出来,通过两个超声波传感器检测是够有驼背情况和身高状况,通过重量传感器来检测孩子体重状况,同时也会在SD卡中进行一个保存,可以记录成长的数据。通过按键模块来实现模式切换和注射疫苗功能,在注射疫苗情况先按下按键,实现注射疫苗的功能,再按下其他按键来记录疫苗注射的情况。图4-1主系统流程图4.2显示屏软件设计首先接通电源后,单片机进行系统初始化,初始化完成后进入到设定的程序运行,通过传感器摄像头采集的数据传入到我们的单片机中进行数据的处理,处理完会通过显示屏显示出来。图4-2显示屏软件设计4.3重量传感器软件设计首先接通电源,单片机进行系统初始化,初始化完成后进入到设定的程序运行,传感器摄像头开始采集数据,采集的数据传入到片机中进行数据的处理。图4-3重量传感器软件设计4.4TF卡软件设计将采集处理好的数据通过显示屏显示出来,同时也会在SD卡中进行一个保存。图4-4TF卡软件设计第5章系统测试5.1系统实物图图5-1系统实物图5.2测试原理图图5-2测试原理图首先接通电源后,单片机进行系统初始化,初始化完成后进入到设定的程序运行,传感器开始采集数据,采集的数据传入到我们的单片机中进行数据的处理,处理完的数据会通过显示屏显示出来,通过测试传感器,可以从显示屏上看到重量、身高等数据。 第6章总结与展望6.1总结通过这次设计,可以实现对于儿童成长过程的监测,以方便家长更好了解孩子的成长情况。在孩子的成长的不同阶段下,可以由家长去记录孩子的身高,体重,以及可以对孩子进行拍照记录,根据当时记录的身高和上次记录的身高比较可以判断孩子是否存在驼背的问题,通过两个超声波测距的差距判断高低肩的情况。根据前面记录身高、体重判断偏瘦还是偏胖。在整体设计过程中也存在着问题,在老师的帮助下,及时做出了修正。在整个设计过程中学到了许多的知识。6.2展望现在对于儿童的关注度逐渐增大,儿童成长记录仪也将会有助于提高人民群众的生活质量。本设计实现了对儿童基本信息的记录,在未来可以增加记录内容的全面性,不仅是只限于是对简单信息的记录。未来前景可以将产品连入物联网平台,进行云端的控制和监测。未来也可以运用到更多领域,可以让全社会共同关注到儿童的成长情况。参考文献李杰,王婷,邢笑笑.基于单视几何的身高测量算法的设计与实现[J].电脑知识与技术,2022,18(24):80-81+84.一种用于身高测量的毫米波雷达传感器[J].传感器世界,2021,27(07):45.周佐霖,袁家宝,潘学文,杨振南.基于STM32的智能儿童成长记录仪的设计[J].大众科技,2021,23(04):9-12+28.潘亚良.安全可信的儿童成长发育评测系统的设计与实现[D].杭州电子科技大学,2021.杨瑞.智慧幼儿成长记录系统构建研究[J].软件导刊,2020,19(09):155-158.王李凯.基于Android的儿童成长发育管理系统开发与实现[D].杭州电子科技大学,2018.陈万达.基于iOS的人体成长参数管理系统开发与实现[D].杭州电子科技大学,2018.葛杨婷.传之以形晓之以理动之以情——运用成长记录仪“奏响”动态信息家园共育之歌[J].中国科教创新导刊,2013(27):115.胡兴才.数码相机成长记录仪PC机端软件的设计与实现[J].计算机与现代化,2012(05):201-203+206.王晓晨,高鸽,李玉顺,黄荣怀.移动计算技术在儿童成长家庭记录方面的应用前景研究[J].现代教育技术,2008(12):67-70.谢晓玲,梁宁.基于SSH的儿童成长管理系统设计[J].计算机技术与发展,2021,31(04):187-191.张园园.儿童成长档案的记录与管理问题探讨[J].档案管理,2021(02):59-60.陈婷.幼儿园随班就读儿童成长档案袋评价研究[D].云南师范大学,2020.张明芳.基于用户体验的儿童成长记录产品设计研究[D].沈阳航空航天大学,2019.贺雅君.儿童成长档案建档管理的实践思考[J].档案管理理论与实践-浙江省基层档案工作者论文集,2016(00):175-178.王祉默.基于iOS的儿童成长系统的设计与实现[D].北京林业大学,2016.KempsShirley,SoleymanMostafa,HulsHarmen,LabotsMariette,CrulMirjam.Frequencyofmeasuringbodyweightin(sub)populationsofpatientswithcancertreatedwithchemotherapy.[J].Europeanjournalofhospitalpharmacy:scienceandpractice,2022.LeslieWD,SchousboeJT,MorinSN,MartineauP,LixLM,JohanssonH,McCloskeyEV,HarveyNC,KanisJA.MeasuredheightlosspredictsincidentclinicalfracturesindependentlyfromFRAX:aregistry-basedcohortstudy.[J].Osteoporosisinternational:ajournalestablishedasresultofcooperationbetweentheEuropeanFoundationforOsteoporosisandtheNationalOsteoporosisFoundationoftheUSA,2020,31(6).DesaniÂAChauham,ModiÂNisargY.Astudyofstatureestimationfromfacialanthropometricmeasurementsinadultofbhavnagarregion,Gujarat[J].JournalofForensicMedicineandToxicology,2019,36(1).JiYoungChoi,JamesElicker,SharonL.Christ,JenniferDobbs-Oates.Predictinggrowthtrajectoriesinearlyacademiclearning:EvidencefromgrowthcurvemodelingwithHeadStartchildren[J].EarlyChildhoodResearchQuarterly,2016,36.FakharzadehLeila,JavaherizadehHazhir,SabetiFahimeh,CheraghianBahman.AregrowthcurvesforIranianschool-agedchildrendifferentfromtheNCHSstandards?[J].TheJournaloftheEgyptianPublicHealthAssociation,2011,86(5-6).注释电路图源代码classHC_SR04:def__init__(self,uart):self.uart=uartdefInit(self):self.uart.init(9600,timeout=1000,read_buf_len=10240)#重新设置串口波特率defRece_Data_Handle(self):distance_f_cm_err=0.0distance_f_cm_min=3.0distance_f_cm_max=55.0temp=[0.0,0.0,0.0,0.0,0.0,0.0]distance_f_cm_temp=distance_f_cm_errself.uart.write(b'\xA0')forrece_delay_countinrange(len(temp)):distance_f_cm_temp=0.0rece_data=self.uart.read()ifnotrece_dataisNone:#if(notrece_data[0]isNone)and(notrece_data[1]isNone)and(notrece_data[2]isNone):iflen(rece_data)==3:print('[0]:',rece_data[0])print('[1]:',rece_data[1])print('[2]:',rece_data[2])distance_f_cm_temp=(rece_data[0]*255*255+rece_data[1]*255+rece_data[2])/10000if0<distance_f_cm_temp<distance_f_cm_min:distance_f_cm_temp=distance_f_cm_minelifdistance_f_cm_temp>distance_f_cm_max:distance_f_cm_temp=distance_f_cm_maxelse:passtemp[rece_delay_count]=distance_f_cm_tempforcount_temp_1inrange(len(temp)):ifdistance_f_cm_errintemp:temp.remove(distance_f_cm_err)iflen(temp)==0:returndistance_f_cm_erreliflen(temp)==1:returntemp[0]else:forcount_temp_2inrange(len(temp)):ifdistance_f_cm_minintemp:temp.remove(distance_f_cm_min)iflen(temp)==0:returndistance_f_cm_mineliflen(temp)==1:returntemp[0]else:forcount_temp_3inrange(len(temp)):ifdistance_f_cm_maxintemp:temp.remove(distance_f_cm_max)iflen(temp)==0:returndistance_f_cm_maxeliflen(temp)==1:returntemp[0]eliflen(temp)==2:returnsum(temp)/2else:return(sum(temp)-max(temp)-min(temp))/(len(temp)-2)importKPUaskpuimportsensorimportlcdfromMaiximportGPIOfromfpioa_managerimportfmimporttimeimportgcfrommicropythonimportconst#导入constfromboardimportboard_infofrommachineimportUARTfrommachineimportTimer,PWM#Servoimportmath#导入数学importimage#拍照importHC_SR04_DriveimportWeight_HX711_Driveimportuos#导入文件系统#########################################全局参数################################################SYS_Status='END'#系统状态可设置Year_Type=0#0是平年1是闰年Moths_30=[4,6,9,11]Moths_31=[1,3,5,7,8,10,12]Sys_Time={'YY':2000,'MM':1,'DD':1,'H':00,'M':00,'S':00}#系统时间:年、月、日、时、分、秒可设置Age=1#年龄:1-18Distance_cm_fixed_position=150#固定位置THR_HL=3#高低肩THR_BMI={'L':18,'H':24}#测量Cur_Hight=0.0#mLast_Hight=0.0#mHeight_State=0#身高状态--0正常,1驼背HL_CM=0.0#cmHL_State=0#高低肩状态--0正常,1高低肩Cur_Weight=0.0#kgLast_Weight=0.0#kgWeight_State=0#体重状态--0正常,1偏瘦,2偏胖BMI=0.0##实时转换Trans_Hight_tmp=0.0#m临时的身高Trans_HL_tmp=0.0#m临时的高低肩Trans_Wight_tmp=0.0#m临时的重量BMI_tmp=0.0#临时的BMI###文件操作Picture_Max_Num_In_SD=100000#照片读取File_Picture_Read_Index=0#当前读取索引(已保存的照片最大索引)#读取最大索引#获取所有图片文件名try:Picture_List_With_Suffix=uos.listdir("/sd/SYSTEM_RUN/PICTURE")except:Picture_List_With_Suffix=[]print('Picture_List_With_Suffix',Picture_List_With_Suffix)iflen(Picture_List_With_Suffix)==0:Picture_List_No_Suffix=[]#无后缀Picture_List_No_Suffix_Init=[]#无后缀转intFile_Picture_Read_Index=0#获取读取索引else:Picture_List_No_Suffix=[file_name_with_suffix.split(".")[0]forfile_name_with_suffixinPicture_List_With_Suffix]#获取无后缀Picture_List_No_Suffix_Init=[int(file_name_no_suffix)forfile_name_no_suffixinPicture_List_No_Suffix]#获取无后缀转intFile_Picture_Read_Index=max(Picture_List_No_Suffix_Init)#获取读取索引print('Picture_List_No_Suffix:',Picture_List_No_Suffix)print('Picture_List_No_Suffix_Init:',Picture_List_No_Suffix_Init)#照片存取File_Picture_Save_Index=1#当前存取索引#随后从文件读取后+1File_Picture_Save_Index=File_Picture_Read_Index+1#随后从文件读取后+1#读txt文件#FILE_01_VACCINE.txtVACCINE_Line_Sum=0#读SD,获取出总行数try:VACCINE_Line_Sum=0withopen("/sd/SYSTEM_RUN/FILE_01_VACCINE.txt","r")asfile_01:forlineinfile_01:VACCINE_Line_Sum=VACCINE_Line_Sum+1except:VACCINE_Line_Sum=0VACCINE_Line_Read_Index=VACCINE_Line_SumVACCINE_Line_Read_Content=''VACCINE_Line_Len_Char=0#每一行--字符个数#FILE_02_HIGHT.txtHIGHT_Line_Sum=0#读SD,获取出总行数try:HIGHT_Line_Sum=0withopen("/sd/SYSTEM_RUN/FILE_02_HIGHT.txt","r")asfile_02:forlineinfile_02:HIGHT_Line_Sum=HIGHT_Line_Sum+1except:HIGHT_Line_Sum=0HIGHT_Line_Read_Index=HIGHT_Line_SumHIGHT_Line_Read_Content=''HIGHT_Line_Len_Char=0#每一行--字符个数#FILE_03_WEIGHT.txtWEIGHT_Line_Sum=0#读SD,获取出总行数try:WEIGHT_Line_Sum=0withopen("/sd/SYSTEM_RUN/FILE_03_WEIGHT.txt","r")asfile_03:forlineinfile_03:WEIGHT_Line_Sum=WEIGHT_Line_Sum+1except:WEIGHT_Line_Sum=0WEIGHT_Line_Read_Index=WEIGHT_Line_SumWEIGHT_Line_Read_Content=''WEIGHT_Line_Len_Char=0#每一行--字符个数#########################################HC_SR041################################################fm.register(board_info.PIN_DIS_RXD_MCU_TX_1,fm.fpioa.UART1_TX,force=True)fm.register(board_info.PIN_DIS_TXD_MCU_RX_1,fm.fpioa.UART1_RX,force=True)uart_1=UART(UART.UART1,9600,read_buf_len=10240)HC_SR04_1=HC_SR04_Drive.HC_SR04(uart_1)HC_SR04_1.Init()Distance_1_f_cm=0.0#Distance_1_f_cm_THR=30.0#阈值#Distance_1_f_cm=HC_SR04_1.Rece_Data_Handle()#############################################################################################################################################HC_SR042################################################fm.register(board_info.PIN_DIS_RXD_MCU_TX_2,fm.fpioa.UART2_TX,force=True)fm.register(board_info.PIN_DIS_TXD_MCU_RX_2,fm.fpioa.UART2_RX,force=True)uart_2=UART(UART.UART2,9600,read_buf_len=10240)HC_SR04_2=HC_SR04_Drive.HC_SR04(uart_2)HC_SR04_2.Init()Distance_2_f_cm=0.0#Distance_2_f_cm_THR=30.0#阈值#Distance_2_f_cm=HC_SR04_2.Rece_Data_Handle()##############################################################################################################################################WEIGHT##################################################fm.register(board_info.PIN_W_SCK,fm.fpioa.GPIO1)#注册IO-W_SCKW_SCK=GPIO(GPIO.GPIO1,GPIO.OUT)fm.register(board_info.PIN_W_DAT,fm.fpioa.GPIO2)#注册IO-W_DATW_DAT=GPIO(GPIO.GPIO2,GPIO.IN)Weight=Weight_HX711_Drive.Weight_HX711(W_SCK,W_DAT)#构建对象Weight.Init()#初始化Weight_Value=0#Weight_Value=Weight.Read_Weight_g()#Set_THR_Choose=0;#阈值设置:选择#THRL_WEIGHT=200#重量阈值下限#THRH_WEIGHT=400#重量阈值上限#Weight_Value=0#Weight_State="0"##############################################################################################################################################KEY######################################################Init_Value_Select=1#选择初值Key_1_Value_Select_Set=0#END选择设置Num_Select_Set=7#需要选择设置的数量:1-7总共7个设置Key_1_Value_Select_Fun=0#RUN选择功能:无选择Num_Select_Fun=7#需要选择功能的数量:1-7总共7个功能Key_2_Value=0#Key_2_ValueKey_3_Value=0#Key_3_Value'''globalKey_1_Value_Select_Set#END选择设置globalKey_1_Value_Select_Fun#RUN选择功能globalKey_2_Value#Key_2_ValueglobalKey_3_Value#Key_3_Value'''#KEY_BOOT--未使用#KEY_SYSfm.register(board_info.PIN_KEY_SYS,fm.fpioa.GPIOHS1)#注册IO-KEY_SYSKEY_SYS=GPIO(GPIO.GPIOHS1,GPIO.IN,GPIO.PULL_UP)#构建KEY_SYS对象defexit_KEY_SYS_fun(KEY_SYS):#KEY_SYS中断回调函数globalSYS_StatusglobalKey_1_Value_Select_Set#END选择设置globalKey_1_Value_Select_Fun#RUN选择功能globalKey_2_Value#Key_2_ValueglobalKey_3_Value#Key_3_Valuetime.sleep_ms(10)#消除抖动ifKEY_SYS.value()==0:#确认按键被按下ifSYS_Status=='END':#ENDSYS_Status='RUN'Key_1_Value_Select_Set=0#END选择设置:无设置Key_1_Value_Select_Fun=0#RUN选择功能Key_2_Value=0#Key_2_ValueKey_3_Value=0#Key_3_Valueelse:#RUNSYS_Status='END'Key_1_Value_Select_Set=0#END选择设置Key_1_Value_Select_Fun=0#RUN选择功能:无选择Key_2_Value=0#Key_2_ValueKey_3_Value=0#Key_3_ValueKEY_SYS.irq(exit_KEY_SYS_fun,GPIO.IRQ_FALLING)#开启中断,下降沿触发#KEY1fm.register(board_info.PIN_KEY1_IN,fm.fpioa.GPIOHS2)#注册IO-KEY1KEY1=GPIO(GPIO.GPIOHS2,GPIO.IN,GPIO.PULL_UP)#构建KEY1对象defexit_KEY1_fun(KEY1):#KEY1中断回调函数globalSYS_StatusglobalKey_1_Value_Select_Set#END选择设置globalKey_1_Value_Select_Fun#RUN选择功能globalKey_2_Value#Key_2_ValueglobalKey_3_Value#Key_3_Valuetime.sleep_ms(10)#消除抖动ifKEY1.value()==0:#确认按键被按下ifSYS_Status=='RUN':#若:RUNKey_1_Value_Select_Fun=Key_1_Value_Select_Fun+1ifKey_1_Value_Select_Fun>Num_Select_Fun:Key_1_Value_Select_Fun=1Key_2_Value=0#Key_2_ValueKey_3_Value=0#Key_3_Valueelse:#若:ENDKey_1_Value_Select_Set=Key_1_Value_Select_Set+1ifKey_1_Value_Select_Set>Num_Select_Set:Key_1_Value_Select_Set=1Key_2_Value=0#Key_2_ValueKey_3_Value=0#Key_3_ValueKEY1.irq(exit_KEY1_fun,GPIO.IRQ_FALLING)#开启中断,下降沿触发#KEY2fm.register(board_info.PIN_KEY2_IN,fm.fpioa.GPIOHS3)#注册IO-KEY2KEY2=GPIO(GPIO.GPIOHS3,GPIO.IN,GPIO.PULL_UP)#构建KEY2对象defexit_KEY2_fun(KEY2):#KEY2中断回调函数globalSYS_StatusglobalKey_1_Value_Select_Set#END选择设置globalKey_1_Value_Select_Fun#RUN选择功能globalKey_2_Value#Key_2_ValueglobalKey_3_Value#Key_3_Valuetime.sleep_ms(10)#消除抖动ifKEY2.value()==0:#确认按键被按下ifKey_3_Value==0:Key_2_Value=1KEY2.irq(exit_KEY2_fun,GPIO.IRQ_FALLING)#开启中断,下降沿触发#KEY3fm.register(board_info.PIN_KEY3_IN,fm.fpioa.GPIOHS6)#注册IO-KEY3KEY3=GPIO(GPIO.GPIOHS6,GPIO.IN,GPIO.PULL_UP)#构建KEY3对象defexit_KEY3_fun(KEY3):#KEY3中断回调函数globalSYS_StatusglobalKey_1_Value_Select_Set#END选择设置globalKey_1_Value_Select_Fun#RUN选择功能globalKey_2_Value#Key_2_ValueglobalKey_3_Value#Key_3_Valuetime.sleep_ms(10)#消除抖动ifKEY3.value()==0:#确认按键被按下ifKey_2_Value==0:Key_3_Value=1KEY3.irq(exit_KEY3_fun,GPIO.IRQ_FALLING)#开启中断,下降沿触发#########################################################################################################################################文字显示######################################################defdraw_string(img,x,y,text,color,scale,bg=None):ifbg:img.draw_rectangle(x-2,y-2,len(text)*8*scale+4,16*sc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度汽车销售合同补充协议书
- 2024年度智能供应链管理系统实施合同
- 学校现场管理
- 2024年度材料供应与质量保证合同
- 2024年度品牌推广与广告发布合同
- 2024年度林地出售条款
- 2024年度技术开发合同:某互联网企业与技术团队关于新产品研发协议
- 2024年度外墙保温工程分包合同
- 武汉建筑合同模板
- 2024年度智能办公系统建设项目合同
- 中国世界遗产欣赏智慧树知到期末考试答案章节答案2024年浙江农林大学
- 岩层控制模拟技术智慧树知到期末考试答案2024年
- MOOC 实验室安全学-武汉理工大学 中国大学慕课答案
- 学校危险化学品安全教育
- MOOC 计量经济学-西南财经大学 中国大学慕课答案
- 2024年上海公安系统人民警察招聘笔试参考题库附带答案详解
- 地理滑坡泥石流省公开课一等奖全国示范课微课金奖课件
- 2024年中储粮质检中心有限公司招聘笔试参考题库附带答案详解
- 三维存储器堆叠与异构集成
- 2023-年2月山东公务员录用考试《申论B》考试真题
- 小学语文教育职业生涯规划
评论
0/150
提交评论