精华内容
下载资源
问答
  • 控制软件在VC++和TwinCAT的环境中开发,对于机械系统要求的特殊功能均编制成PLC功能模块,并在下位机中运行,包括电机上下电锁紧功能、自动上下电功能、某个运动轴的手动跟随功能、单向定位功能,其中单向定位控制...
  • 概述5G时代物联走入更多行业与领域,使用广和通的L610在模块,通过MQTT与中国移动onenet互联,也尝试搭建了本地MQTT服务器,适合内部布署,其再加入柿饼派两块,结合体感手套与机械臂,数据进行通讯,实现远程控制。...
  • 我将向您展示构建它的整个过程,从设计和3D打印机器人部件,连接电子组件和编程Arduino,到开发我们自己的Android应用程序来控制机械臂。 使用应用程序中的滑块,我们可以手动控制机械臂的每个伺服或轴的运动。同样...
  • 今天,我将向您介绍MPU-6050(加速度计+陀螺仪)传感器模块,以及如何通过它控制由微型伺服电机制成的简单2轴机械臂。 InvenSense MPU-6050是一款低成本,高精度,六自由度(DOF)的惯性测量单元(IMU )。IMU可以...
  • 面向对象的硬件是处理器、电子设备和机械的混合体,用于与物理世界中的事物进行交互、感知和控制。 每个硬件对象可以独立使用,也可以像软件对象一样组合使用,以创建更复杂的系统。 硬件对象可以以各种形式因素实现...
  • 从运动控制器到高动态响应的驱动器,皮尔磁开放的模块化驱动理念,使得用户可以轻松地将个性化组件或完整系统集成到现有的系统环境。皮尔磁的产品组合覆盖了从人机界面到伺服电机的各类产品,包括齿轮减速单元,完整...
  • 在这个简单的教程中学习如何控制...在本教程中,我们将构建一个项目,我们将使用Zio模块控制机械臂。 该项目将教您如何使机器人手臂爪打开和关闭。这个漂亮的教程适用于需要机器人执行简单的拾取和放置功能的项目。
  • 新型控制器结合了NI LabVIEW实时模块,是一种不规则模组件PXI平台,可提供确定性及实时处理。  NI PXI-8187 RT控制器是一款带2.5GHz奔腾4处理器,速度达到1GB双倍数据速率(DDR) RAM高性能控制器。利用这种新型...
  • 实施PID控制策略的软件控制模块。 内容 Arduino驱动程序 Accelerometer.cpp :从加速度计读取的驱动程序。 API: int take_sample(int average_points, Coord coord)对加速度计的输出进行采样。 double read_g(int ...
  • 即可编程逻辑控制器,是一种专用于工业控制的计算机,使用可编程存储器储存指令,执行诸如逻辑、顺序、计时、计数与计算等功能,并通过模拟或数字 I/O 组件控制各种机械或生产过程的装置。PLC 的出现代替了之前...
  •   直流电机是一种将直流电能转换为机械能的电动机,因其良好的调速性能而在电力拖动中得到广泛应用,用于驱动各种设备,如电风扇、遥控小车、电动车窗等,也非常适合作为机器人的行走机构。   L298N是ST公司生产...

    一、介绍

      直流电机是一种将直流电能转换为机械能的电动机,因其良好的调速性能而在电力拖动中得到广泛应用,用于驱动各种设备,如电风扇、遥控小车、电动车窗等,也非常适合作为机器人的行走机构。

      L298N是ST公司生产的一种高电压、大电流电机驱动芯片,内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端。该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。

    二、组件

    ★Raspberry Pi 3主板*1

    ★树莓派电源*1

    ★L298N模块*1

    ★DC3V-6V直流减速电机TT马达*1

    ★微型数字直流电压表头*1(可选)

    ★18650可充电锂电池*2

    ★面包板*1(可选)

    ★40P软排线*1

    ★跳线若干

    三、实验原理

    L298N模块

    直流减速电机TT马达

    直流电压表头

    18650可充电锂电池串联组

    (一)、L298N模块

    L298N模块解析图

    L298N双H桥直流电机驱动模块的引脚可以归纳成电源、控制和输出等三大类,下面是各类引脚的功能说明。

    1.电压类引脚

    VCC输入:L298N芯片的电源正极,范围可以是5V ~ 35V,如果需从模块内取电给树莓派供电,则其范围为7V~35V。

    GND:L298N芯片的电源地,使用的时候应该把树莓派的GND接到这里,即两者需要共地,否则电机不转。

    +5V输出:L298N芯片输出的5V电源,可以给外部设备供电,但要求VCC输入要达到7V以上。

    2.控制类引脚

    ENA、ENB:A、B通道的使能端,高电平有效,可以用PWM来实现调速,向使能端输入不同占空比的PWM脉冲信号就可以控制电机的转速。使用时,可以接到树莓派的GPIO上,实现用程序进行控制。

    INA、INB、INC、IND:INA、INB为A通道的控制输入,INC、IND为B通道的控制输入。

    控制方式及直流电机状态表如下:
    控制方式及直流电机状态表

    3.输出类引脚

    OUTA、OUTB为A通道输出,为直流电机等设备提供电源。

    OUTC、OUTD为B通道输出,为直流电机等设备提供电源。

    控制直流电机的转向和转速实际是通过给控制类引脚设置不同的值来实现的

    L298N模块参数

    (二)、直流减速电机

    在了解直流电机工作原理之前,先复习一下高中几个物理知识:
    第一.左手定则
    左手定则

    通电导线处于磁场中时,所受安培力 F (或运动)的方向、磁感应强度B的方向 以及通电导体棒的电流I三者方向之间的关系的定律。
    简而言之,让磁感线穿过手掌正面,手指方向为电流方向,大拇指方向为产生磁力的方向

    第二.右手定则
    右手定则

    右手定则,是产生感生电动势,也是发电机的原理
    让磁感线穿过掌心,大拇指方向为运动方向,手指方向为产生的电动势方向。

    1.直流电机的原理

    直流电机工作原理

    直流电机里边固定有环状永磁体,电流通过转子上的线圈产生安培力,当转子上的线圈与磁场平行时,再继续转受到的磁场方向将改变,因此此时转子末端的电刷跟转换片交替接触,从而线圈上的电流方向也改变,产生的洛伦兹力方向不变,所以电机能保持一个方向转动。

    2.直流电机的种类

    2.1有刷电机
    顾名思义,就是有刷子,主要作用就是让中间的转子与电源有电气连接,还可以转动。
    有刷电机原理

    为了让两者之间既有接触,能导电;又有转动,实现电流的变相,一般的常见做法是在碳刷加一个弹簧。这样,换向器与碳刷便有了频繁的摩擦。所以碳刷很容易磨损,必须经常进行更换。并且磨损掉的碳渣渣在电机里面形成了积碳,需要经常清理。

    早期电机都是有刷电机,后来为了解决磨损,有了无刷电机。

    2.2无刷电机
    无刷电机中,换相的工作交由控制器中的控制电路(一般为霍尔传感器+控制器,更先进的技术是磁编码器)来完成。

    无刷电机原理

    无刷电机采取电子换向,线圈不动,磁极旋转。无刷电机,是使用一套电子设备,通过霍尔元件,感知永磁体磁极的位置,根据这种感知,使用电子线路,适时切换线圈中电流的方向,保证产生正确方向的磁力,来驱动电机。消除了有刷电机的缺点。

    2.3直流减速电机
    一般直流电机的转速都是一分钟几千上万转的,所以一般需要安装减速器。减速器是一种相对精密的机械零件,使用它的目的是降低转速,增加转矩。减速后的直流电机力矩增大、可控性更强。按照传动级数不同可分为单级和多级减速器;按照传动类型可分为齿轮减速器蜗杆减速器行星齿轮减速器

    减速电机

    齿轮减速器:体积较小,传递扭矩大,但是有一定的回程间隙。
    蜗轮蜗杆减速机:具有反向自锁功能,可以有较大的减速比,但是一般体积较大,传动效率不高,精度不高。
    行星减速器:结构比较紧凑,回程间隙小、精度较高,使用寿命很长,额定输出扭矩可以做的很大,但价格略贵。

    (三)、直流电压表头

    用于监视18650电池组电压,及时掌握电池电压状态,便于及时充电。也可用于手机锂电池、镍氢电池组和其它电池组的电压,以及摩托车、汽车等电瓶的电压,也可用于其它电压测量用途。

    1、本电压表接线简单,常规用两根线,红接正,黑接负,内有反接保护,接反不烧。

    2、常规无需外接工作电源,可以用测量电压直接工作,测量电压范围二线2.4-30V。

    3、宽电压工作,红色最低测量电压2.4V,最大安全承压可达40V ,超过40V可能损坏。

    4、在测量10V以下电压时,小数点后显示两位;在测量10V以上电压时,小数点后显示一位。

    (四)、18650电池组

    由于电动机需要的电流远远大于树莓派GPIO的供电能力,所以必须使用外接电源,选用大容量的18650电池是个不错的选择,许多充电宝和电动车电池组都是使用的这个。

    同时,使用电动机的场景总是移动的情况,所以电池组可能还要给树莓派供电。以前购买套装时赠送的18650电池,每次充满电,只坚挺了10分钟,而且电压掉得非常快。这里我选用的某宝SupFire/神火电池,负极加了保护芯片的AB5-S,39元1颗,充电器还另算钱。不过效果好多了,充满电后串联两颗电池初始8.23V,一天一个电动机的实验做下来,还有7.6V。

    SupFire18650电池参数

    四、实验步骤

      第1步: 连接电路。

    树莓派(name) T型转接板(BCM) L298N模块
    GPIO4 G23 INA
    GPIO5 G24 INB
    GPIO1 G18 EMA
    GND GND GND
    L298N模块 电池组 电压表头 马达
    VCC + +
    GND - -
    OUTC +
    OUTD -

    L298N模块驱动直流电机电路图

    这里必须说一下,上面的电路图是使用电子设计自动化软件Fritzing画的,易学好用,但是必须要学习哈,光看是半天搞不懂滴!

    特别是元件库里找不到的电子元件,只能自己创建,就需要自己画SVG图(Scalable Vector Graphics,意思为可缩放的矢量图形),这里我用的是Inkscape,一款外国开发的开源矢量图形编辑软件。画图中的一个重要经验是:在Friting里找到并导出类似的元件SVG图,然后在Inkscape里修改,最后又导入Friting里合成。

    学会第一次虽慢,但是以后就难不倒你了,而且画得很快!

    Fritzing下载地址https://fritzing.org/download/
    Inkscape下载地址https://inkscape.org/release/inkscape-1.0/

    L298N模块驱动直流电机实物接线图

      第2步: 基础实验里我只用L298N的B通道控制了一个电机,控制命令也很粗糙,后面我会做智能小车的综合实验,会实现图形界面控制和自动循迹。
      当输入r0 ~ r9,速度由0到快;当输入f0 ~ f9,反方向速度由0到快;当输入b时,电机制动。

    #!/usr/bin/env python
    import RPi.GPIO as GPIO
    import time
    
    ENB = 18  #使能信号
    INC = 23  #信号输入1
    IND = 24  #信号输入2
    
    GPIO.setwarnings(False)  #关闭警告信息
    
    def setup(enable_pin,in1_pin,in2_pin):
        '''初始化引脚'''
        GPIO.setmode(GPIO.BCM)
        GPIO.setup(enable_pin, GPIO.OUT)
        GPIO.setup(in1_pin, GPIO.OUT)
        GPIO.setup(in2_pin, GPIO.OUT)
        
    def pwm(enable_pin): 
        '''初始化PWM(脉宽调制)'''   
        pwm = GPIO.PWM(enable_pin, 500)
        pwm.start(0)
        return pwm
    
    def changespeed(pwm,speed):
        '''通过改变占空比改变马达转速'''
        pwm.ChangeDutyCycle(speed)
        
    def clockwise(in1_pin,in2_pin):
        '''马达顺时针转的信号'''
        GPIO.output(in1_pin, 1)    
        GPIO.output(in2_pin, 0)
     
    def counter_clockwise(in1_pin,in2_pin):
        '''马达逆时针转的信号'''
        GPIO.output(in1_pin, 0)
        GPIO.output(in2_pin, 1)
        
    def brake(pwm,in1_pin,in2_pin):
        '''马达制动的信号'''
        GPIO.output(in1_pin, 0)
        GPIO.output(in2_pin, 0)
        changespeed(pwm,100) 
        #使能信号为高电平,IN1和IN2都为0或1时马达制动
    
    def loop():
        while True:
            '''通过输入的命令改变马达转动'''
            cmd = input("Command, f/r/b 0..9, E.g. f5 :")
            direction = cmd[0]
            if direction == "f":
                clockwise(INC,IND)
            if direction == "r":
                counter_clockwise(INC,IND)
            if direction == "b": #刹车制动,
                brake(ENB_pwm,INC,IND)
                continue
                
            speed = int(cmd[1]) * 10 #通过输入0~9的数字更改占空比0~90%
            changespeed(ENB_pwm,speed)
    
    def destroy():
        ENB_pwm.stop()
        GPIO.cleanup()                     # Release resource
    
    if __name__ == '__main__':     # Program start from here
        
        try:
            setup(ENB,INC,IND) #初始化引脚
            ENB_pwm=pwm(ENB)   #初始化PWM
            loop()
        except KeyboardInterrupt:  # When 'Ctrl+C' is pressed
            destroy()
        finally:
            destroy()
    

      实验结果示例:

    命令输入示例

    展开全文
  • 其原因是由于存在有较大惯性组件(环节)或有滞后组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在...
  • 14.4.2 流程控制和线程 14.4.3 游戏对象与对象管理 14.4.4 图形引擎 14.4.5 物理引擎 14.4.6 事件模块 14.4.7 工具模块 14.4.8 脚本引擎、音效模块、网络模块 14.5 小结 第15章 优化技术 15.1 优化的基本知识 15.1.1...
  • Assignment_Game-源码

    2021-02-15 03:40:08
    移除飞船和控制器之间的耦合(控制器是否向消防机械师退还布尔?)-使AI控制器可以放置在船上 添加所有组件都继承的通用组件(允许将来更大的模块化) 将每种主要组件类型的单独列表添加到对象管理器(需要弄清楚...
  • QY-JDYT19机电一体化组合实训平台由控制屏、实训桌、温度控制单元、直流小机组单元、机械手单元、变频器单元、交流伺服单元、小车运动控制单元、液位/流量控制单元、PLC控制系统、单片机控制系统、数据采集控制系统...

    机电一体化组合实训平台QY-JDYT19
    一、装置简介
    QY-JDYT19机电一体化组合实训平台由控制屏、实训桌、温度控制单元、直流小机组单元、机械手单元、变频器单元、交流伺服单元、小车运动控制单元、液位/流量控制单元、PLC控制系统、单片机控制系统、数据采集控制系统、计算机控制、工控组态软件等组成。所有实训均采用模块化设计、种类齐全、可组成不同的控制系统,能完成机电设备中的逻辑、运动、温度、压力、流量、液位等实训内容,控制对象均采用典型机电设备模型,接近工业现场环境,能提高学生的学习兴趣和实际动手能力。
    二、装置特点

    1. 平台采用组件式结构,更换便捷,如需要扩展功能或开发新实训,只需添加部件即可。
    2. 平台选取了工业现场中多种典型的机电一体化设备,它覆盖了工业现场中常见过程控制参数,例如:逻辑、运动、温度、压力、流量、液位等,根据不同的控制方案、组合连接,算法编程,完成不同的控制
    3. 控制方式多样性,有PLC控制、单片机控制、数据采集控制、计算机控制等。
      三、技术指标
    4. 输入电源:单相三线~380V±10% 50Hz
    5. 工作环境:温度-10℃~+40℃,相对湿度<85%(25℃) 海拔<4000m
    6. 装置容量:<0.6kVA
      四、装置配置
      (一) 控制屏
    7. 交流电源控制单元
      三相四线380V交流电源经空气开关后给装置供电,电网电压表监控电网电压,设有带灯保险丝保护,控制屏的供电由钥匙开关和启停开关控制、同时具有漏电告警指示及告警复位。
      提供三相四线380V、单相220V电源各一组,由启停开关控制输出,并设有保险丝保护。
    8. 定时器兼报警记录仪
      定时器兼报警记录仪,平时作时钟使用,具有设定时间、定时报警、切断电源等功能;还可自动记录由于接线或操作错误所造成的漏电告警次数。
    9. 直流电源、直流电压/电流表、逻辑电平输出及指示等
      直流电压:0~15V可调输出;直流电流:0~20mA可调输出;直流数字电压表/电流表:电压表量程0~200V、输入阻抗为10MΩ、精度0.5级,电流表量程0~200mA、精度0.5级;同时设有逻辑电平输出(点动、自锁)、逻辑电平指示等。
    10. PLC控制系统
      可选用西门子或三菱或欧姆龙系列的PLC:
      (1) 西门子主机为CPU224 DC/DC/DC 内置数字量I/O(14路数字量输入/10路数字量输出)+EM235模拟量模块(4路模拟量输入/1路模拟量输出)。
      (2) 三菱主机为FX1N-24MT 内置开关量I/O(14路开关量输入/10路晶体管输出)+FX0N-3A模拟量模块(2路模拟量输入/1路模拟量输出。
      (3) 欧姆龙主CP1E-N30DT内置开关量I/O(18路开关量输入/12路晶体管输出)+ CP1W-AD041 4路模拟量输入+CP1W-DA041 4路模拟量输出。
    11. 单片机控制系统
      CPU芯片引脚引出,可以连接机电设备构建实际的控制系统。通过编写算法完成对多种机电设备的控制,配有仿真器。
    12. 数据采集控制系统
      数据采集控制系统含有开关量输入/输出模块(自带RS485通讯接口)、模拟量输入模块和模拟量输出模块(自带RS485通讯接口)、RS232/485通讯转换器及上位PC机中安装MCGS工控组态软件等组成。通过MCGS工控组态软件编写上位控制软件运行算法,并可进行通讯参数修改及设定控制算法参数,被控参数实时曲线、历史曲线动态显示,实训流程图的显示及本实训相关的被控参数(动态变化显示)。
      (二) 实训桌
      为铁质双层亚光密纹喷塑结构,桌面为防火、防水、耐磨高密度板;中间设有一个大抽屉(带锁),用于放置工具及资料,电脑桌联体设计,造型美观大方。
      (三) 温度控制、直流小机组单元
      温度控制模块由加热器、温度变送电路、测温器及显示仪表等组成,直流小机组由直流电机、发电机及显示仪表等组成。通过编程,能完成温度PID控制,直流电机闭环调速。
      (四) 机械手控制单元
      由丝杠、步进电机及驱动器、电磁阀、气缸、磁性开关和手爪等组成。通过编程,能完成运动设备的定位控制,实现抓取动作。
      (五) 变频器调速控制单元
      由变频器、交流电动机、直线运动物体、旋转运动机构及相应的电气控制电路等组成,实现变频调速功能。
      (六) 交流伺服控制单元
      由伺服电机、驱动器、直线运动物体、旋转运动机构及相应的电气控制电路等组成,实现定位控制。
      (七) 小车运动控制单元
      由底座、运动小车、同步带轮传动机构、直流电机、光电传感器、电感式传感器、电容式传感器、超声波传感器、行程开关等组成,通过传感检测、PLC编程,实现运动距离测量、传动控制、键值优化比较行走控制、定向控制、定位控制、报警运行控制、点动控制、位置时时显示控制等,能实现小车的精确定位。
      (八) 液位/流量控制单元
      由底座、有机玻璃水箱、微型水泵、储水箱、手动阀门、超声波液位传感器、压力传感器、显示仪表、和电气控制箱组成。通过传感器信号采集,控制系统编程,实现各种模拟量输入、输出实训及压力、液位的位式和PID闭环控制,可作为研究各种工业算法控制的一个实训平台。
      五、实训项目
    13. 常见传感器的基本应用
    14. 机械手运动控制
    15. 温度PID控制
    16. 直流电机闭环调速
    17. 交流伺服控制
    18. 变频调速控制
    19. 传感器检测
    20. 小车定位控制
    21. 液位/流量过程控制
    22. 单片机控制系统
    23. PLC控制系统
    24. 计算机控制系统
    25. 工业组态监控
    展开全文
  • 文章目录存储系统架构存储组件存储组件介绍机械硬盘详细说明SAS盘介绍NL-SAS硬盘 介绍固态盘 介绍各类模块接口说明华为存储产品介绍 存储系统架构 写入数据在双控CACHE中各保存一份,避免单控故障导致数据丢失。 ...

    存储系统架构

    中低端SAN/NAS融合存储架构:双控制器

    在这里插入图片描述

    • 写入数据在双控CACHE中各保存一份,避免单控故障导致数据丢失。
    • 每个控制板的后端分别接入物理磁盘的环路——业务负载均衡,提升整体系统性能
    • 将多个LUN的负载或者同一个LUN的负载均衡在两个控制器上,避免性能瓶颈
    • 一控制器故障时,另一控制器在主机多路径软件配合下接管业务负载,确保不中断

    双控存储结构图

    在这里插入图片描述

    高端SAN阵列架构:多控制器

    在这里插入图片描述

    • 数据平面采用PCIe互联,引擎内4控通过背板PCIe通道互联,提供高达128GB/s的框内互联带宽。引擎间采用双交换组网,PCIe光缆互联,提供128GB/s的引擎间互联带宽。控制器间数据转发与镜像优先使用框内背板互联通道,背板互联通道不可达时,选择引擎间交换通道。系统总数据交换带宽(包括引擎内和引擎间)高达640GB/s。
    • 管理控制平面采用GE组网,SVP的两个网口形成两个管理平面,所有引擎和交换机都同时接入两个管理平面。在GE网络故障时,管理控制平面还可以复用数据平面的PCIe通道传输管理控制器消息。
    • 引擎内4个控制器共享后端SAS接口卡,引擎内任意控制器故障,对引擎剩余控制器到硬盘的连接无影响。引擎支持缓存持续镜像技术,有控制器故障故障时,系统对缓存镜像重新分布,保持所有缓存都仍有镜像,系统不转透写,业务也不会中断。

    高端SAN阵列架构:网格存储

    在这里插入图片描述

    • 网格存储被业内称为革命性的新一代存储架构,它是采用了大规模并行的分布式网格存储技术,使用了“Scale out”(横向扩展)的存储架构,利用多路网格模块并行分担存储负荷,并通过细粒度数据分布算法保证数据的恒定均衡分布,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
    • 在网格存储系统里面,没有任何主控的模块,系统由一个个的网格组成 的。每个网格叫数据模块,每个独立的数据模块包括紧耦合的CPU处理能力,缓存能力加上磁盘存储能力。
    • 网格存储系统的主要部分被称为modules(模块)。模块提供处理单元、缓存、主机接口和基于标准的英特尔和Linux系统。它们通过内部的冗余的以 太网交换机实现冗余连接。所有模块在一起形成一个网格体系结构的工作模式,因此,该系统可以基于本身具有的并行方式及其强大计算能力,适用于很多的整合、混合计算环境。
    • 从根本上说,接口模块其实和数据模块的结构基本相同,但是承担的功能略有不同:接口模块除承担数据模块的同等功能外,还包括FC接口和iSCSI接口的主机系统连接以及远程镜像的连接支持。在概念层面上,模块(Module)是系统架构的基本元素,提供物理容量空间、处理能力和缓存,各数据模块间的关系是平等的、无主次之分。
    • 网格体系架构利用“伪随机”的分布式方式,通过独特的算法,能够把一个特定的工作任务是进行战略性的分 离,使总的工作量分布在更多个模块上,系统的整体性能会通过增加更多的模块进一步提升。
    • 网格存储系统包含一个冗余的交换以太网络结构,负责进行数据之间的通信模块。包括两个接口模块之间的数据交换;接口模块和数据模块之间的数据交换;以及两个数据模块之间的数据交换。

    集群NAS存储架构

    在这里插入图片描述

    • 统一命名空间,全局共享
    • 高性能,多台阵列并发I/O
    • 在线扩容

    分布式存储架构:无中心节点

    在这里插入图片描述

    • 支持上百亿文件存储
    • 统一命名空间,全局共享
    • 高性能,多个对象存储节点并发I/O,提供上几十GB聚合I/O
    • 在线扩容

    分布式存储架构:有中心节点

    在这里插入图片描述

    • 支持EB级文件存储
    • 统一命名空间,全局共享
    • 在线扩容
    • 低成本:X86服务器

    分布式对象存储架构

    在这里插入图片描述

    • 支持上百亿文件存储
    • 统一命名空间,全局共享
    • 高性能,多个对象存储节点并发I/O,提供上几十GB聚合I/O
    • 在线扩容

    存储组件

    存储组件介绍

    在这里插入图片描述

    控制器是阵列的“大脑”,主要部件为处理器和缓存,最先主要实现简单IO操作、RAID管理功能,随着技术发展,能够提供各种各样的数据管理功能,如快照、镜像、复制等。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    • 桌面级硬盘主要针对家庭个人应用,应用在台式PC、笔记本等领域;企业级硬盘针对企业级应用,主要应用在服务器、存储磁盘阵列、图形工作站等。
    • 容量:相比桌面级硬盘,企业级硬盘具备更大的存储容量,当前单硬盘容量最大容量咳达4TB甚至更大。
    • 性能:主要体现在转速、缓存、平均寻道时间等。
    • 可靠性:企业级硬盘具有更高的平均无故障时间(MTBF),一般来说桌面级硬盘的平均无故障时间大部分都在50万左右小时,企业级的都在100万以上。

    机械硬盘详细说明

    在这里插入图片描述

    • 所有机械硬盘的原理相同。盘片被磁性材料覆盖,盘片上的磁性粒子被极化以表示一个二进制信息单元(或比特)。

    • 读/写磁头:负责读和写数据:

      • 磁头臂:带动读/写磁头,将磁头移动到指定位置
      • 盘片:保存写入的数据
      • 主轴:转动盘片,将盘片上的指定位置移动到读/写磁头下
      • 控制电路:控制硬盘的速度,磁头臂的移动,向磁头下发命令等。
    • 磁盘使用一个快速移动的读/写磁头臂带动磁头,从一个涂了磁性颗粒的扁平盘片上读写数据。数据从磁盘盘片上通过读写磁头向计算机传送。硬盘(HDD)就是由几个盘片、读写磁头 、控制电路、主轴等组合在一起的机械部件。磁盘盘片上的磁性颗粒可提供无限次的数据记录和擦除。本节我们将介绍磁盘的接口,磁盘上组织和存储数据的机制,并讨论影响磁盘性能的因素。

    • 一个典型的磁盘包含了一个或多个成为盘片的扁平圆盘。数据以二进制代码(0和1)的形式被记录在这些盘片上。这些盘片是刚硬的,两个表面上都涂覆有磁性材料(上下表面)。数据可被写入到货从该盘片上的两个表面(上下表面)读取,盘片的数目和每个盘片的存储容量确定了磁盘的总容量。

    • 如该图所示,主轴连接所有盘片,并连接到一个马达上。主轴电机以恒定的速度旋转。盘片转速以每分钟圈速(rpm)来衡量,常见的磁盘具有7200转、10000转或15000转的转速。目前的存储系统中使用的磁盘有直径为3.5寸(90毫米)的盘片。当盘片旋转在15000rpm时,盘片外边缘的移动可达到音速的25%左右。因此,随着技术的提高,随着盘片的转动速度有所增加,但是它能够改善的程度是有限的。

    • 读/写磁头负责向盘片写入或者从盘片读取数据。磁盘的每个盘片都有两个读写磁头,分别用于盘片的两个表面的数据的读写。当读/写磁头写入数据时,通过改变盘片上磁粒子的磁极来记录数据。读取数据时,读/写磁头通过检测盘片上磁粒子的磁极来读取数据。在读取和写入数据时,读/写磁头不用接触盘片表面就可以感应磁粒子的磁极。当主轴旋转时,读写W磁头和盘片之间有一个很微小的空气间隙,被称为磁头飞行高度。当主轴停止转动时,读/写磁头将停靠在盘片在主轴附近的一个特殊区域,此时,这个空气间隙被除去。磁头停放的这个区域被称为着陆区域。着陆区域涂有润滑剂,以减小头部和盘片之间的摩擦。磁盘逻辑会确保磁头在移动到着陆区之前不会接触盘片的表面。如果驱动器故障或者读/写磁头不慎接触到着陆区外的盘片表面,就会发生磁头碰撞。如果发生了磁头碰撞,盘片上的磁性涂层将会被刮伤,也可能会损坏读写头。磁头碰撞通常会导致数据丢失。

    • 读/写磁头被安装在磁头臂的顶端,磁头臂会带动磁头移动到需要被写入或读出的数据的盘片位置上方。

    • 控制电路是一个印刷电路板,安装在磁盘的底部。它由一个微处理器、内部存储器、电路和固件组成。由固件控制向主轴马达供电并控制主轴电机的速度。它还管理着磁盘与主机之间的通信。此外,它通过移动磁头臂控制不同的读/写磁头之间的切换,以获得数据的访问的最优化。
      在这里插入图片描述

    • 磁道是盘片上围绕在主轴周围的同心环,数据就被记录在磁道上。磁道的编号从零开始,从盘片的外边缘开始向内编号。我们用盘片上每英寸的磁道数(TPI)(也称为磁道密度)来衡量盘片上磁道排列的紧密程度。

    • 每个磁道被分成更小的单位,称为扇区。扇区是磁盘中可以单独寻址的最小存储单元。磁道和扇区结构是由硬盘制造商使用格式化硬盘的工具写在盘片上的。不同硬盘磁道的扇区数可以不同。第一台个人电脑的磁盘每个磁道有17个扇区。而如今的磁盘单个磁道上的扇区要多得多。根据物理磁盘的尺寸和盘片的记录密度不同,盘片上的磁道数可能有数千个之多。

    • 通常情况下,一个扇区可以保存512字节的用户数据,但也有一些磁盘被可以被格式化为更大的扇区大小,如4KB扇区。

    • 柱面:在同一个磁盘中所有盘片(包含上下两个盘面)具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。显然,磁盘的柱面数与一个盘面上的磁道数是相等的。不过,磁盘中磁头的位置由柱面号来说明的,而不是用磁道号来说明。

    SAS盘介绍

    在这里插入图片描述

    SAS为企业级数据中心提供了一种高效用、高可靠、可扩展而又容易操作的解决方案。
    在保持对并行SCSI逻辑兼容的同时,SAS在物理连接接口上提供了对串行ATA(Serial
    ATA)的统一支持。这就为服务器和网络存储等应用提供了很大的选择空间。

    NL-SAS硬盘 介绍

    在这里插入图片描述

    • NL SAS 是指采用了SAS接口和SATA盘体的综合体。即具有SAS接口、接近SAS性能的SATA盘。
    • NL 是Near Line的缩写,意为近线。所谓的近线存储,主要定位于客户在线存储和离线存储之间的应用。就是指将那些并不是经常用到,或者说数据的访问量并不大的数据存放在性能较低的存储设备上。但同时对这些的设备要求是寻址迅速、传输率高。(例如客户一些长期保存的不长用的文件的归档)。因此,近线存储对性能要求相对来说并不高,但又要求相对较好的访问性能。同时多数情况下由于不常用的数据要占总数据量的比较大的比重,这也就要求近线存储设备在需要容量相对较大。

    固态盘 介绍

    在这里插入图片描述

    • 虽然传统的机械硬盘在短时间不会消失,但是机械硬盘的代替者 SSD(Solid State Disk,固态硬盘)已被广泛采用,而且越来越受欢迎。SSD盘并不像传统硬盘那样采用磁性材料来存储数据,而是采用基础单位被称为cell(存储单元)的NAND flash来存储数据。NAND Flash是一种非易失性随机访问存储介质,其特点是断电后数据不消失,这种技术可以很快很紧凑存储数字信息。 SSD的另一大优势是,它们不会产生噪音,也不会像机械硬盘那样产生大量的热量。

    • SSD没有内部机械部件,但是,这并不意味着他们的生命周期是无限的。由于NANDFlash是非易失性介质,在写入新数据之前必须保证Block被擦除过,否则可能会出现数据误码。但是NAND Flash的擦写次数是有限的,即每个cell的内容可以改变的次数是有限的,一旦该Cell被擦写的数目已经达到极限,则该cell就不能保证能继续使用了(读或写)。不过,由于这种磨损容易监控和预测,因此我们可以准备好可更换的硬盘,以便及时替换。而机械硬盘的故障通常是没有任何预兆的,这意味着替换磁盘必须随时准备好。
      在这里插入图片描述

    • 每个单元(cell)中包括被称为NAND电路小型晶体管样成分。每个NAND电路传统上可以存储1位数据,一个“1”或“0”。新一代固态硬盘驱动器使用一种特殊的技术在一个cell中存储更多的信息。

    • 在MLC中,1个cell能够存储2位数据;TLC中,1个cell可以存储3位数据。两位的信息表示可以存储4种不同的数据模式:00,01,10和11。TLC的cell可以存储3比特数据,则可以存储8种不同的数据模式。

    • 3种不同的类型的cell,虽然存储的数据量不同,但是其物理大小却是相同的,这也是SSD的容量不断增大的一个原因。最初的SSD只有64GB或更小,而现在最大TLC型的SSD盘可以存储多达2TB的数据。

    • 不过,不同类型的SSD盘的抗磨损的能力不同,导致硬盘的可靠性不同。SSD盘的抗磨损能力也是选择SSD盘的一个重要参数。
      在这里插入图片描述
      在这里插入图片描述

    • NCQ(Native Command Queuing)与TCQ(Tagged Command Queuing)都是设计通过把计算机发向硬盘的指令做重新排序,从而提高硬盘性能的技术。NCQ技术在300MB/s的Serial ATA II规格中引入,针对的是主流的硬盘产品,而TCQ技术是在SCSI2规格中引入(ATA-4标准中也有采用),针对的是服务器以及企业级硬盘产品。

    • 要使用NCQ、TCQ技术,芯片组硬盘接口和硬盘产品本身都必须支持才行,也就是说,如果你购买的一款新硬盘并不支持NCQ,即使你的主板是最新的支持NCQ的,也不能够打开这个功能从而提高性能。
      在这里插入图片描述

    • 响应时间短
      传统硬盘的机械特性导致大部分时间浪费在寻道和机械延迟上,数据传输效率受
      到严重制约。而SSD硬盘内部没有机械运动部件,省去了寻道时间和机械延迟,
      可更快捷的响应读写请求。

    • 读写效率高
      机械硬盘在进行随机读写操作时,磁头不停地移动,导致读写效率低下。而SSD
      通过内部控制器计算出数据的存放位置,并进行读写操作,省去了机械操作时间,
      大大提高了读写效率。
      在这里插入图片描述

    随机读写频繁的应用,如OLTP(Online Transaction Processing),IOPS是关键衡量指标。另一个重要指标是数据吞吐量(Throughput),指单位时间内可以成功传输的数据数量。对于大量顺序读写的应用,如电视台的视频编辑,视频点播等则更关注吞吐量指标。

    各类模块接口说明

    在这里插入图片描述

    • 指示灯:
    1. 模块电源指示灯/热插拔按钮。
    2. link/speed指示灯。
      在这里插入图片描述
    • 10Gb FCoE接口模块提供2个传输速率为10Gbit/s的端口。
      10Gb FCoE接口模块(2端口)只支持直连组网。
    • 10Gb FCoE接口模块提供4个传输速率为10Gbit/s的FCoE端口。
      10Gb FCoE接口模块(4端口)只支持对接FCoE交换机组网。
    • 10Gb FCoE接口模块不建议同时运行iSCSI协议和FCoE协议,否则会导致性能降低且性能波动大。
    • 指示灯:
    1. 模块电源指示灯/热插拔按钮。
    2. link/speed指示灯。
      在这里插入图片描述
    • GE电接口模块提供4个传输速率为1Gbit/s的电端口。
    • 10GE电接口模块提供4个传输速率为10Gbit/s的电端口,10GE电接口模块支持10GE和GE速率自适应。
    • 指示器:
    1. 模块电源指示灯/热插拔按钮。
    2. 10GE电端口。
    3. 10GE电端口link/active指示灯。
    4. 10GE电端口speed指示灯。
    5. 模块拉手。
      在这里插入图片描述
    • 56Gb IB(InfiniBand)接口模块提供2个传输速率为4×14Gbit/s的IB端口。
    • 指示灯:
    1. 模块电源指示灯/热插拔按钮。
    2. 56Gb IB端口Link指示灯。
    3. 56Gb IB端口Active指示灯。
    4. 56Gb IB端口。
    5. 模块拉手。
      在这里插入图片描述
    • SmartIO接口模块支持16Gb,8Gb,10Gb三种光模块。
    • 指示灯:
      1.模块电源指示灯/热插拔按钮。
    1. SmartIO端口。
    2. 端口link/active/mode指示灯。
    3. 端口模式丝印图标。
    4. 模块拉手。

    在这里插入图片描述

    • 智能加速模块可同时提供定长重复数据删除、指纹计算、gzip压缩和解压的硬件加速功能,卸载CPU负荷,提高系统重删和压缩性能。
    • 指示灯:
    1. 模块电源指示灯/热插拔按钮。
    2. Active指示灯。
    3. 模块拉手/丝印。
      在这里插入图片描述
    • 12Gb SAS级联模块提供4个传输速率为4 × 12Gbit/s的mini SAS HD级联端口,用于级联硬盘框。
    • SAS级联模块通过mini SAS HD线缆与存储系统的后端硬盘阵列连接。
    • 当连接的设备传输速率低于级联端口速率时,级联端口将自动适应传输速率,以保证数据传输通道的连通性和数据传输速率的一致性。
    • 指示灯:
    1. 模块电源指示灯/热插拔按钮。
    2. mini SAS HD级联端口。
    3. mini SAS HD级联端口指示灯。
    4. 模块拉手。
      在这里插入图片描述
    • PCIe接口模块提供2个PCIe接口,是OceanStor 18000 V3引擎与数据交换机之间的业务接口,用于引擎之间交换控制流和数据流信息。
    • 指示灯:
    1. 模块电源指示灯。
    2. PCIe端口Link/Speed指示灯。
    3. PCIe端口。
    4. 模块拉手。
      在这里插入图片描述
      在这里插入图片描述
    • FC HBA卡:一般也叫光纤网卡。传输协议为光纤通道协议,一般通过光纤线缆与光纤通道交换机连接

    • iSCSI HBA卡:传输iSCSI协议,接口类型与以太网卡相同。将硬件iSCSI initiator集成到板卡上,利用 TCP/IP卸载引擎在适配卡上完成数据处理,作用在于减轻主机CPU负载,也提供了高可用环境下硬件多通道功能和服务器远程引导功能。
      在这里插入图片描述

    • FDR(Fourteen Data Rate)线缆是56Gb IB接口模块专用线缆。

    • 串口线缆用来连接设备的系统串口到维护终端。串口线缆一端为RJ-45接口,用于连接存储系统的串口;另一端为DB-9接口,用于连接维护终端端口。

    • Mini SAS HD电缆用来连接控制框到硬盘框或连接两个硬盘框。

    • 设备通过光纤与光纤交换机进行通信。光纤的一端可连接FC(Fibre Channel ) HBA(Host Bus Adapter)卡,另一端连接光纤交换机或应用服务器。光纤两端都为LC(Lucent Connector)连接器。

    • MPO-4*DLC光纤是8Gb FC高密接口模块专用线缆。

    • AOC(Active Optical Cable)线缆用来连接存储系统引擎控制器的PCIe接口至数据交换机。

    华为存储产品介绍

    在这里插入图片描述

    • OceanStor V3 存储系统具有高规格的硬件结构,块和文件一体化的软件架构,结合多种高级数据应用和数据保护技术,使存储系统具有高性能、高可扩展性、高可靠性和高可用性等特点,满足大中型企业对存储产品的各种要求。

    • OceanStor 2200 V3只提供块服务。
      在这里插入图片描述

    • 极快:500us稳定时延@百万IOPS,让数据库快20倍。

    • 极稳:多控全冗余架构保障系统无单点故障,所有部件可在线维护

    • 极省:融合互通、在线重删压缩节省空间3倍以上,TCO节省70%

    在这里插入图片描述

    在这里插入图片描述

    • FusionStorage软件定义的全融合云存储,基于标准X86硬件平台构建极致性能、极致扩展、开放兼容的存储资源池,为金融、运营商、政府公共事业的新兴云应用按需提供块、文件、对象多存储服务。
    • 产品既具备分布式架构的极致性能、弹性与灵活性,助力客户业务敏捷,又具有企业级产品的可靠性与可用性,从容应对互联网化、云化及大数据应用新挑战。一切新的产品与方案都是应需而生的,云存储产品也不例外。企业云数据中心几十甚至成百上千种应用,呈现不同的业务形态与数据构成,比如结构化数据、非结构化数据并存,传统应用与新兴云应用并存,高并发应用与大容量应用并存。
    • 华为FusionStorage6.0云存储系统,构建融合多类型存储服务的资源池,提供多协议接入访问支持,向上层应用按需提供块存储、文件存储与对象存储资源,资源供给更敏捷。
    • 如果您正在建设云数据中心,采用华为云存储不仅可以使您的云资源池架构满足现在和未来不断扩容需求,更重要的是满足未来存储资源池性能、容量和TCO的诉求。
    • 如果您的数据中心还有大量数据库应用,华为云存储资源池也可同时为数据库应用提供高效的数据存取服务。
    • 如果您的云数据中心有基于OpenStack及Hadoop相关应用,架构开放的华为云存储也能更好地适配。
    • 因此,基于软件定义的云存储,可以保护数据中心既有投资、实现资源最佳匹配。
    展开全文
  • 项目需求:本项目中为自己的毕设项目,其中有一个模块需要通过APP进行码垛设计,并将码垛的结果发送给机械手的控制器。该模块的需求具体如下: 可以从物料库中拖动项目的物料模块到码盘。 用户将对应的图形模块...

    项目需求:本项目中为自己的毕设项目,其中有一个模块需要通过APP进行码垛设计,并将码垛的结果发送给机械手的控制器。该模块的需求具体如下:

    1. 可以从物料库中拖动项目的物料模块到码盘。

    2. 用户将对应的图形模块在码盘上进行排列组合,APP将最终确定的组合的各图形的坐标进行保存

    3. 可以增加码垛层数

    4. 可以自定义生成不同大小的图形

    现有的Android组件无法满足这一需求,在Android中只能进行自定义View设计。于是展开了对自定义View的学习。

    自定义View的流程

    1.构造函数 View初始化
    2.onMeasure 测量View大小
    3.onSizeChanged 确定View大小
    4.onLayout 确定子View布局位置
    5.onDraw 实际绘制内容
    6.提供接口 监听View状态

    1 Android Graphics 图形库

    作为android的图形库提供了以下几个类
    1.Drawable

    通用的图形对象,
      用于装载常用格式的图像,可以是 PNG,JPG 这样的图像,也可以是前面学的 13 种 Drawable 类型的可视化对象. 
      可以理解为放画用的---画框
    

    2.位图:Bitmap 来保持(hold)那些像素

     可以简单的理解为 画架
      先把画放到上面,然后可以进行一些处理,比如获取图像文件信息,做旋转切割,放大缩小等操作
    

    3.画布:Canvas 来响应画画(draw)的调用(并将其写入 bitmap)

     就是可以上面作画(绘制),可以用 Paint(画笔) ,来画各种形状或者写字,又可以用 Path(路径) 来绘制多个点,然后连接成各种图形
    

    4.画笔:paint 描述画画的颜色和样式等

    5.Matrix(矩阵)

    用于图形特效处理的,颜色矩阵(ColorMatrix),还有使用 Matrix 进行图像的平移,缩放,旋转,倾斜等
      “颜料“:drawing primitive,比如矩形、路径、文字、位图等其他元素
    

    !!! Canvas(画布),Paint(画笔),Path(路径) 是 android.graphics 接口类下的三个绘图 API

    1.1 Paint 画笔

    Paint (画笔) 用于设置绘制风格,如 线宽(笔触粗细),颜色,透明度和填充风格

    获得一个 Paint 对象实例很简单

    Paint paint = new Paint();
    

    图形的形状由Canvas确定 当绘制出来的颜色效果由画笔Paint确定

    mPaint.setStyle(Paint.Style.FILL); //设置画笔模式为填充
    
    画笔有三种模式
    
    STROKE                //描边
    FILL                  //填充
    FILL_AND_STROKE      //描边加填充
    

    在这里插入图片描述

    1.2 Path 路径

    Path(路径) 简单点说就是描点,连线

    创建了 Path 的实例后,可以调用 Canvas 的 drawPath(path,paint) 将图形绘制出来

    Path (路径) 的常用方法如下
    在这里插入图片描述
    更高级的效果可以使用 PathEffect 类,常用方法如下
    在这里插入图片描述

    1.3 Canvas 画布

    android.graphics.Canvas类提供了很多“画“的方法,让这块画布具有了丰富多彩的画画能力。比如:画点、线、矩形、椭圆、圆、文字等等。下面的例子演示了这些方法的使用。
    创建Canvas画布的方法
    创建有一个空的画布,可以使用 setBitmap() 方法来设置绘制具体的画布
    Canvasc=Canvas();
    以 bitmap对象创建一个画布,将内容都绘制在 bitmap 上bitmap 不能 null
    Canvasc=Canvas(Bitmapbitmap);
    绘制方法
    drawXXX()方法族 ::以一定的坐标值在当前画图区域画图,另外图层会叠加, 即后面绘画的图层会覆盖前面绘画的图层
    在这里插入图片描述
    1.clipXXX() 方法族:在当前的画图区域裁剪 (clip)出一个新的画图区域,这个画图区域就是 canvas 对象的当前画图区域了
    比如:clipRect(new Rect()),那么该矩形区域就是 canvas 的当前画图区域
    2.save() 和 restore() 方法
    在这里插入图片描述
    !!!注意
    save() 和 restore() 要配对使用( restore 可以比 save 少,但不能多),若restore 调用次数比 save 多,会报错
    getXXX 方法族 获取Canvas相关的一些值
    translate() 平移
    translate(floatdx,floatdy)
    平移就是将画布的坐标原点向左右方向移动 x,向上下方向移动 y
    canvas 默认坐标原点位置为左上角 (0,0)
    在这里插入图片描述
    scale 缩放
    voidscale(floatsx,floatsy)finalvoidscale(floatsx,floatsy,floatpx,floatpy)

    对画布进行缩放
    参数说明
    在这里插入图片描述
    rotate(float degrees) 旋转,angle 指旋转的角度,顺时针旋转

    voidrotate(floatdegrees)finalvoidrotate(floatdegrees,floatpx,floatpy)

    围绕坐标原点或指定坐标旋转 degrees 度,值为正顺时针

    参数说明
    在这里插入图片描述
    skew 倾斜
    skew(floatsx,floatsy)
    倾斜一定的角度
    参数说明
    在这里插入图片描述
    两个参数都是 tan 值,比如要在 x 轴方向上倾斜 60 度,那么 sx 为
    tan(60) = 根号3=1.732
    Canvas 坐标系
    Canvas 以左上角为原点,向右为 X 轴正方向,向下为 Y 轴正方向
    Layer 图层
    画布Canvas给开发者提供了Layer支持。Layer是按照栈结构进行管理。
    当开发者带哦用Save方法时候,会保存当前Canvas的状态作为一个Layer 添加到Canvas栈。
    而当我们调用 restore() 方法的时候,会恢复之前 Canvas 的状态,而此时 Canvas 的图层栈 会弹出栈顶的那个 Layer,后继的 Layer 来到栈顶,此时的 Canvas 回复到此栈顶时保存的 Canvas 状态
    简单说就是 save()往栈压入一个 Layer,restore()弹出栈顶的一个Layer,这个Layer代表Canvas的 状态! 也就是说可以 save() 多次,也可以 restore() 多次,但是 restore() 的调用次数 不能大于** save()否则会引发错误

    OnDraw

    **创建画笔

    绘制常见的几何图形实例**

    绘制点
    drawPoint(floatx,floaty, Paint paint)//画点,参数一水平x轴,参数二垂直y轴,第三个参数为Paint对象。
    绘制直线
    绘制直线需要两个点,初始点和结束点,同样绘制直线也可以绘制一条或者绘制一组:

    canvas.drawLine(300,300,500,600,mPaint);// 在坐标(300,300)(500,600)之间绘制一条直线canvas.drawLines(newfloat[]{// 绘制一组线 每四数字(两个点的坐标)确定一条线100,200,200,200,    100,300,200,300},mPaint);
    

    绘制矩形
    确定一个矩形一般需要四个数据 :对角线的两个点的坐标值。通常我们次啊用左上角和右下角的两个点的坐标值
    关于绘制矩形,Canvas提供了三种重载方法,第一种就是提供四个数值(矩形左上角和右下角两个点的坐标)来确定一个矩形进行绘制。 其余两种是先将矩形封装为Rect或RectF(实际上仍然是用两个坐标点来确定的矩形),然后传递给Canvas绘制,如下:

    // 第一种canvas.drawRect(100,100,800,400,mPaint);// 第二种Rect rect =newRect(100,100,800,400);canvas.drawRect(rect,mPaint);// 第三种RectF rectF =newRectF(100,100,800,400);canvas.drawRect(rectF,mPaint)
    

    绘制圆角矩形

    // 第一种RectF rectF =newRectF(100,100,800,400);canvas.drawRoundRect(rectF,30,30,mPaint);// 第二种canvas.drawRoundRect(100,100,800,400,30,30,mPaint);
    

    绘制圆

    canvas.drawCircle(500,500,400,mPaint);// 绘制一个圆心坐标在(500,500),半径为400 的圆。
    

    绘制椭圆

    drawCircle(floatcx,floatcy,floatradius,Paint paint)// 绘制圆,参数一是中心点的x轴,参数二是中心点的y轴,参数三是半径,参数四是paint对象;
    

    绘制圆弧

    drawArc(RectF oval,float startAngle,float sweepAngle,boolean useCenter,Paint paint)//画弧参数一是RectF对象
    

    一个矩形区域椭圆形的界限用于定义在形状、大小、电弧,参数二是起始角(度)在电弧的开始, 参数三扫描角(度)开始顺时针测量的,参数四是如果这是真的话,包括椭圆中心的电弧,并关闭它

    https://shimo.im/docs/TG8PDh9D96WGTT8W

    展开全文
  • 该六足机器人采用超低成本的MDF框架结构,通过单片机与电子以及机械组件设计完成。该六足机器人可以通过XBee模块或者蓝牙模块进行远程控制,同时可以根据处理API学习基本的编程知识,总之该设计是一个可扩展的机器人...
  • 用LXI构建合成仪器

    2020-12-09 07:27:05
    PXI和VXI模块仪器是这类应用的最佳候选,但对SI设计人员亦有诸多限制,最终形成具有专用接口与控制模块包装的混合系统。SI体系结构和顶级要求乍一看,SI的基本要求和常规机柜式仪器十分相似。然而深入的调查研究后,...
  • Sain Smart 6轴机械桌面支臂已经配备了以下组件: Arduino Mega 2560 R3 控制板屏蔽 NRF24L01 +无线收发器模块 MPU6050 3轴陀螺仪和3轴加速度计 71 x M3X8螺丝 47 x M3螺母 2 x U支架 5个伺服支架 4 x 9kg伺服 2 x 20...
  • 概述 令人惊讶的是,您可以从 Adafruit Huzzah ESP8266 WiFi 模块运行强大的步进电机(通过电机控制器),从而通过浏览器或网络服务控制步进电机,将您的步进电机变成物联网 (IoT) 设备。 这使得紧凑,低成本的远程...
  • 存储介质与接口介绍

    千次阅读 2018-03-23 17:18:34
    一、存储介质 存储介质有:软盘、光盘、硬盘以及SSD硬盘。现在主要介绍机械硬盘和SSD硬盘。 1、机械硬盘 从内部结构上说是机械结构: ...主轴:主要是驱动盘片高速运转的...控制电路:更多的是供电模块 磁头组件...
  • 根据ADC数值发送转速控制数据,外部CAN设备接收到转速控制数据后,控制发动机转速,并将转速发出,系统接收外部CAN设备发送转速、水温、油位等数据,与ADC档位一起传输到LCD数据传输模块,LCD数据传输模块将档位、...
  • 工业自动化和过程控制中的监控需求日益增多,这种发展趋势要求采用高通道密度的输入模块。在这些应用中,24V直流数字输入(DI)是整个工业I/O市场中最大的一块,它们捕获来自众多机械接触和固态开关器件的双状态信号,...
  • cmoc:RF控制器的Verilog实现,可连接到真实世界的ADC或rtsim中的模拟组件 :结构中的实时以太网/ IP / UDP数据包响应器核心 fpga_family:几个特定于FPGA的约束文件 board_support:几个特定于主板的引脚映
  • 基于Arduino UNO和433Mhz模块设计了用于无线电遥控模型车的遥控器和接收器。 它基本上是两个独立的Arduino UNO使用一个简单而便宜的433Mhz链接在空中互相对话。他们使用Arduino UNO bootloader运行@ 16MHz和5V。 ...
  • 飞行控制器基于ATmega328(SMD),您可以从arduino nano和MPU6050模块(不是很难焊接的IC)上获得,这也可以在Miltiwii(开源平台)上使用。 射频接收器也基于ATmega328,对于射频通信,它使用NRF24模块。 PWM发生器...
  • 调节保安系统说明书

    2015-11-05 11:44:55
    动作转速为额定转速的110%~111%(3300 r/min~3330r/min),此时危急遮断器的飞环击出,打击危急遮断装置的撑钩,使撑钩脱扣,机械危急遮断装置连杆带动遮断隔离阀组件机械遮断阀动作,同时将高压安全油的排油口...
  • 手的机械结构由10个伺服器驱动,这些伺服器用于手指的铰接点,两个步进电机控制手腕运动和基臂运动。盒子的核心是Arduino Mega,它控制着所有的电子设备。 硬件组件: Arduino Mega 2560和Genuino Mega 2560× 1 Nema...
  • v2.0版本保留了v1.0版本并修复hh_ros的部分错误,此外添加和测试了CSDN博客专栏《ROS笔记》第二阶段中《ROS笔记(38) Xbox360手柄控制移动》到《ROS笔记(40) 通讯节点》共3篇博文对应的例程 更新说明: v2.0...

空空如也

空空如也

1 2 3 4
收藏数 69
精华内容 27
关键字:

机械组件控制模块