当前位置: 首页 > news >正文

重庆网站建设023kwwordpress MP4 flv

重庆网站建设023kw,wordpress MP4 flv,深圳设计师招聘,东莞横沥中学作者#xff1a;赖志彩、曹柳洲、王恩开、李雪儿、杨玉凯 单位#xff1a;华北科技学院 指导老师#xff1a;张伟杰、罗建国 一、作品简介 1. 场景调研 1.1项目目的 近年来#xff0c;全国多地疫情频发#xff0c;且其传染性极高#xff0c;食品接触是传播途径之一。…作者赖志彩、曹柳洲、王恩开、李雪儿、杨玉凯 单位华北科技学院 指导老师张伟杰、罗建国 一、作品简介 1. 场景调研 1.1项目目的 近年来全国多地疫情频发且其传染性极高食品接触是传播途径之一。疫情防控需要大量人员投入常常出现人力紧张的情况物资配送已经成为一大焦点问题。当前尚未有专门用于疫情送餐的机器人因此开发一款自动化、智能化的送餐机器人减少人员之间的接触不仅可以提高工作效率、减轻人工劳动强度而且可以有效减少交叉感染。 在高校校园学生外卖配送非常常见但校门口琳琅满目的外卖往往被摊放在路边甚至占用道路造成交通混乱因此急需一款高效便捷的送餐机器人来缓解这种情况。下图为校园人工送餐场景及外卖摊放情况。 疫情下校园送餐场景、学生点外卖场景 1.2市场调研       我国送餐机器人行业发展起步较晚大致经历了探索、起步、成长、爆发四个阶段。目前餐厅机器人距离真正意义上的智能化还存在技术门槛在公共餐厅这种应用场景中常规性的送餐、配菜需求机器人基本可以满足但是功能比较单一。2020年疫情爆发之后人们对于送餐机器人的需求很快上升市场认可度不断上升我国送餐机器人行业进入高速增长期现在国内外疫情依然严重送餐机器人的市场会还将不断提升扩大。 1.3项目意义       减少人与人之间的接触是防止疫情扩散的有效手段用机器人代替人工送餐不仅可以代替耗时耗力的流程化作业而且还可以避免工作人员在送餐过程中被感染的可能。而送餐机器人可以满足无接触送餐问题。       送餐机器人开启了餐饮经营新模式相较于传统的送餐方式送餐机器人在疫情下减少人员接触大大降低新冠传播率提高食物配送效率同时也可缓解因外卖造成的交通压力送餐机器人对于餐厅价值有了很大的自主发挥空间超越了传统餐饮消费的定义。 2. 创新点 2.1双工作模式 ① 正常模式       点餐者在与送餐机器人进行匹配的外卖App点餐后送餐机器人到达指定地点自助装取食物后正常模式下灰度循迹传感器处于关闭状态此时的机器人只基于终端路径来行进利用超声波与红外避障对途中行人与障碍物避障实现自助送餐。到达指定送餐地点后当车身人体红外模块检测到点餐者接近时解除安全锁定状态装载食物的升降平台从保温箱中升起点餐者取餐完成一次送餐任务。 ② 疫情模式       在疫情爆发学校处于静默期间时送餐机器人可以通过灰度循迹传感器沿着工作人员设置的黑色送餐路径行走。送餐机器人利用超声波、红外避障等进行循迹与避障。到达指定送餐地点后升降平台从保温装置升起食物机械臂自动将食物放置在隔离人员房间门口减少人员接触。 2.2高阻热保温箱       采用质量轻、加工性好、致密度高、保温隔热效果好的聚氨酯泡沫包裹整个升降平台达到阻热效果。保持食物原有温度保证食物口感。 2.3数据实时显示       机器人工作状态将在液晶显示屏右下角实时显示。小车底盘运行、机械臂与升降平台工作状态分别编号为1、2、3正常工作状态分别为#待机状态为。与障碍物之间的距离间隔一秒在屏幕左下角显示。       送餐信息实时显示在屏幕上方时间为12:38时从A地向B地执行送餐任务收餐者手机尾号为4404。送餐机器人在前方56厘米处有障碍物底盘正在工作机械臂与升降平台处于待机状态。送餐机器人整体工作正常无异常情况出现如下图所示。 显示屏工作数据记录 3. 难点及解决方案 3.1转向不流畅且稳定性差 原有机器人在循迹时因固定差速转弯时难以适应不同转弯半径常常因转弯半径过大导致左侧灰度传感器读取右侧灰度传感器或者右侧灰度传感器读取左侧灰度传感器容易因为传感器数据冲突导致整体不断抖动。 解决方案在初步的代码基础上利用蓝牙外加不断进行速度差调试同时将实时速度差利用显示屏显示出来找出最适宜的转向速度在程序内部进行优化。并将车轮间距进行缩小减小机器人转弯半径在此基础之上加入PID算法使得速度差根据不同转弯半径不断自行调整差速。 3.2循迹时容易撞上前方或侧方障碍物 解决方案利用舵机搭载超声波模块实现送餐机器人前方210度范围障碍物探测同时每隔三秒将信号返回值前方障碍物距离显示在显示屏上同时侧方和前方搭载红外避障模块与超声波共同构成完善的避障系统。在避障程序的编译中设置了两种代码根据各模块运动情况实施精准避障连续避障合理在小车行进中添加各种采集点、定位点实现各种不同程度的行走及障碍躲避。 在机器人四周也加上了红外测距模块将这些传感器与车身其他专用模块相结合辅助机器小车在拾取点位更精准寻迹运动更精确对四周障碍物做出灵敏的避障。 3.3机械臂稳定性差 原有机器人的四轴机械臂工作时因延展太长工作时稳定性较差容易抖动。 解决方案调整机械臂的结构将原有机械臂两段式结构缩短至一段并将驱动机械臂工作的四个舵机的偏移量设置为3大大提高机械臂的稳定性。 3.4循迹稳定性较差 由于对机器人的初期调试全部在室内完成使得送餐机器人在室外工作时因光线因素造成灰度传感器的返回值产生误差。 解决方案通过多次对室内外机器人循迹时灰度传感器的返回值进行串口读取并记录不断调整灰度传感的高度的间距使其因光线差造成的返回值误差降到最低。 3.5机器人工作时重心靠前 初期建模与组装时未考虑到机械臂工作时伸展及重量问题导致机械臂工作时机器人整体重心过于靠前容易侧翻。 解决方案通过solidwork进行运动算例分析调整机械臂的位置与高度并将车身适当加长如下图所示。 修改前后对比 4. 未来前景展望及应用 与校园或外卖等进行合作试点不断优化调整尽快投入市场改善应用方面不再局限于送餐增加功能通过搭载多频段红外传感器、热成像传感器、GPS定位系统等传感器将校园及周边环境信息导入机器人信息库辅以语音识别和检索系统送餐机器人将在校园送餐方面为消费者提供更加个性化、智能化的服务。 送餐机器人整体图 二、本体设计 1. 机械结构 首先利用solidwork建模软件开展机器人结构设计和建模然后根据建模图样进行组装在机构设计过程中为了保证机械结构设计合理使其拥有更加强大的承载力、拥有更大的内部空间本小组事先对重要机械零件步进电机底座进行了应力分析如下图所示通过不断对模型的改进和优化设计最后得到了承载能力强且结构合理的模型。 零件应力分析 送餐机器人整体构造图 1.1底盘 采用舵机转向、电机驱动的四轮组合结构。利用各种板块零件组合成三角稳定结构制作底盘。这种组合底盘具有稳固和灵敏两个特点一是对路况的适应能力强在各种复杂的路况下都可进行基本运动二是底盘结构稳固灵敏不限制舵机操控四轮转向位置也为其它机械结构运转提供了充足空间。底盘及所用电机如下图所示 送餐机器人底盘和电机 1.2机械臂 机械臂抓取装置为四轴机械臂抓取更加灵活同时在机械爪端部搭配热塑性弹性橡胶增大机械抓端部抓取餐盒时的摩擦力。 结构如下图所示 送餐机器人机械臂装置 1.3升降平台 用于放置餐盒或餐包的平台如下图所示利用步进电机控制其沿丝杆导轨的升降动作机械臂将食物放置在平台上后将食物降落到保温装置内当到达目的地后将食物从保温装置内升起让机械臂抓取对其要求是位置精准。 保温装置布置在升降平台的四周由聚氨酯泡沫包裹而成其质量轻、可加工性好、致密度高、保温隔热效果的特点对放入其中的食物起到保温功能。 送餐机器人升降平台与保温装置 1.4传感器与其它 送餐机器人除车身主体与底盘外还搭载超声波模块、红外避障模块、蓝牙模块、人体红外探测模块等多种传感器与模块各模块与车身之间有防护板材并进行多重加固增强了车身的稳定性。 2. 电路控制与设备调试 2.1循迹避障 循迹避障功能需要用超声波模块、灰度传感器、近红外传感器三者共同作用实现。 如下图所示 超声波测距模块 红外避障模块 灰度模块 在舵机的驱动下超声波模块实现对车头前210度范围进行实时探测将前方障碍物距离传给单片机再通过内部蚁群规划算法规划出合理的避障路线。 当灰度传感器未识别黑线返回值为0识别黑线后返回值为1将返回值传回机器人内部程序并进行判断。送餐机器人搭载四个灰度传感器当返回值为0000机器人前进只要有一个传感器返回值为1时通过PID算法对直流电机转速进行调整控制机器左右转进而实现循迹功能。 车头与车身两侧搭载了近红外传感器当监测到机器附近有人通过或存在障碍物则返回值为0控制送餐机器人停车。 红外探测模块探测范围为10cm超声波模块探测距离为3m-7m。 2.2警示装置 警示装置由蜂鸣器、车灯、显示屏三部分构成。 送餐机器人正常工作时显示屏显示“正常工作”字样车头指示灯显示绿色当超声波传感器测到障碍物距离值50cm时显示屏显示“行人请注意”字样同时蜂鸣器间隔性发出“滴滴”声车前指示灯进行闪烁提醒路人进行避让若距离值16cm时车灯加快闪烁蜂鸣器持续发出“滴滴”声最大程度提醒行人注意避让当送餐机器人左右转向时对应方向指示灯也会闪烁运行停止时车灯均变为红色机械臂与升降平台旁分别接一个工作指示灯配合显示屏使用工作状态下显示为绿色待机状态下为红色。 所用蜂鸣器和指示灯如下图所示 蜂鸣器模块 工作指示灯 2.3机械臂的运动控制 机械臂的运动包括旋转、上下移动、机械爪的张合。 为了实现机械臂的精准夹取与放置使用了五个舵机控制。底部舵机控制机械臂的左右旋转中间三个舵机控制机械臂上下移动末端舵机控制机械爪的张合如下图所示。在程序中设定偏移量为3度即舵机每次以3度转动减少了机械臂因为惯性所产生的误差保证了机械臂的平稳运行使精确性大大提高。 机械臂舵机位置与运动方向 2.4升降平台的控制 步进电机通过动力传输零件驱动丝杠旋转丝杠带动平台上的螺母移动移动过程中通过平台上的卡扣限制平台只能沿上下移动进而实现平台的升降功能。 卡扣装置与平台结构如下图所示 升降平台卡扣装置 升降平台装置 2.5人体红外感应 送餐机器人到达指定地点后通过人体红外检测模块检测人体后返回值为1升降平台开始运行。将送餐机器人携带的人体红外感应模块设置为可重复模式并且探测范围设定为3米内只要在探测范围内取餐者在活动其信号返回值始终为1。 人体红外探测传感器 2.6蓝牙无线通讯 基于蓝牙HC-05模块以及NRF905无线收发模块如下图所示实现送餐机器人的远距离通讯与控制。当遇到通过的障碍时通过终端对机器人输入指令控制机器人运行。 HC-05 蓝牙模块与NRF905模块 三、程序代码 1. 示例程序 ① 显示屏代码 #include Wire.h #include LiquidCrystal_I2C.h LiquidCrystal_I2C mylcd(0x27,16,2);byte d[]{0B00000,0B00000,0B11011,0B11011,0B00000,0B11011,0B11011,0B00000}; byte a[]{0B00000,0B00100,0B01000,0B11111,0B11111,0B01000,0B00100,0B00000}; byte b[]{0B00000,0B00000,0B00000,0B11111,0B11111,0B00000,0B00000,0B00000}; byte c[]{0B00000,0B00100,0B00010,0B11111,0B11111,0B00010,0B00100,0B00000}; byte g[]{0B00000,0B11111,0B00100,0B00100,0B00100,0B00100,0B11111,0B00000}; byte h[]{0B00000,0B01010,0B10111,0B01010,0B01011,0B01010,0B01011,0B01010}; byte e[]{0B00000,0B11111,0B00010,0B01011,0B01010,0B01010,0B11111,0B00000}; byte f[]{0B00100,0B01110,0B11111,0B01110,0B01110,0B11111,0B10101,0B00100};void setup(){mylcd.init();mylcd.backlight();mylcd.createchar(1, d);mylcd.createchar(2, a);mylcd.createchar(3, b);mylcd.createchar(4, c);mylcd.createchar(5, g);mylcd.createchar(6, h);mylcd.createchar(7, e);mylcd.createchar(0, f); }void loop(){mylcd.setCursor(1-1, 1-1);mylcd.print(1);mylcd.setCursor(2-1, 1-1);mylcd.print(2);mylcd.setCursor(3-1, 1-1);mylcd.write(1);mylcd.setCursor(4-1, 1-1);mylcd.print(3);mylcd.setCursor(5-1, 1-1);mylcd.print(8);mylcd.setCursor(7-1, 1-1);mylcd.print(A);mylcd.setCursor(8-1, 1-1);mylcd.write(2);mylcd.setCursor(9-1, 1-1);mylcd.write(3);mylcd.setCursor(10-1, 1-1);mylcd.write(4);mylcd.setCursor(11-1, 1-1);mylcd.print(B);mylcd.setCursor(13-1, 1-1);mylcd.print(4);mylcd.setCursor(14-1, 1-1);mylcd.print(4);mylcd.setCursor(15-1, 1-1);mylcd.print(0);mylcd.setCursor(16-1, 1-1);mylcd.print(4);mylcd.setCursor(1-1, 2-1);mylcd.print(5);mylcd.setCursor(2-1, 2-1);mylcd.print(6);mylcd.setCursor(3-1, 2-1);mylcd.print(c);mylcd.setCursor(4-1, 2-1);mylcd.print(m);mylcd.setCursor(6-1, 2-1);mylcd.write(5);mylcd.setCursor(7-1, 2-1);mylcd.write(6);mylcd.setCursor(8-1, 2-1);mylcd.write(7);mylcd.setCursor(9-1, 2-1);mylcd.write(0);mylcd.setCursor(11-1, 2-1);mylcd.print(1);mylcd.setCursor(12-1, 2-1);mylcd.print(√);mylcd.setCursor(13-1, 2-1);mylcd.print(2);mylcd.setCursor(14-1, 2-1);mylcd.print(#);mylcd.setCursor(15-1, 2-1);mylcd.print(3);mylcd.setCursor(16-1, 2-1);mylcd.print(x); } ② 底座代码 #includeSoftwareSerial.h SoftwareSerial LZC(A5,A4); int a80; int b220; int c250; int d220; int e250; void chaoshengbo(); int i0; void setup() {Serial.begin(9600);pinMode(7, INPUT);pinMode(8, INPUT);pinMode(3, INPUT);pinMode(4, INPUT);pinMode(A5, OUTPUT);pinMode(A4, OUTPUT);//右灯pinMode(2, OUTPUT);pinMode(A3, OUTPUT);//左灯 } void loop() {xunji(); } //封装小车前进动作子程序 void Forward() {analogWrite(5, 0);analogWrite(6, a); //5 6左前 6前 analogWrite(9, 0); analogWrite(10, a);//9 10右前 v 10前green(); } //封装小车后退动作子程序 void Backward() {analogWrite(5, a); //analogWrite(6, 0);analogWrite(9, a); //analogWrite(10, 0);green(); }//封装小车停止动作子程序 void Stop() {analogWrite(5, 0); //右轮后退analogWrite(6, 0);analogWrite(9, 0); //左轮后退analogWrite(10, 0);red(); }//封装小车自转动作子程序 void turn_Left() {analogWrite(5, d); analogWrite(6, 0);analogWrite(9, 0); analogWrite(10, b);green(); }//封装小车自转动作子程序 void turn_Right() {analogWrite(5, 0); analogWrite(6, b);analogWrite(9, d); analogWrite(10, 0);green(); }//封装小车大半径右转子程序 void turn_Right_1() {analogWrite(5, 0); analogWrite(6, c);analogWrite(9, e); analogWrite(10, 0);green(); }//封装小车大半径左转子程序 void turn_Left_1() {analogWrite(5, e); analogWrite(6, 0);analogWrite(9, 0); analogWrite(10, c);green(); }void xunji() {int num1, num2, num3, num4;num1 digitalRead(11);num2 digitalRead(8);num3 digitalRead(3);num4 digitalRead(4);delay(5);//1111 0000 1011 1101 if (num1 1 num2 1 num3 1 num4 1) { //1111Forward();delay(5);}else if (num1 1 num2 0 num3 1 num4 1 ) {turn_Left();delay(5);}else if (num1 1 num2 1 num3 0 num4 1 ) {turn_Right();delay(5);}else if (num1 0 num2 1 num3 1 num4 1 ) {turn_Left_1();delay(5);}else if (num1 1 num2 1 num3 1 num4 0 ) {turn_Right_1();delay(5);}else if (num1 0 num2 0 num3 1 num4 1 ) {turn_Left_1();delay(30);}else if (num1 1 num2 1 num3 0 num4 0 ) {turn_Right_1();delay(5);}else if (num1 0 num2 0 num3 0 num4 0) { //0000Stop();}} void red() {digitalWrite( A5 , HIGH );digitalWrite( A4, LOW );digitalWrite( A3, LOW );digitalWrite( 2 , HIGH ); } void green() {digitalWrite( A5 , LOW );digitalWrite( A4 , HIGH );digitalWrite( A3 , LOW );digitalWrite( 2 , HIGH ); } ③ 机械臂代码 #includeSoftwareSerial.h SoftwareSerial LZC(A5,A4); #include Servo.h #include AccelStepper.h // 定义电机控制用常量 const int enablePin 8; // 使能控制引脚 const int zdirPin 5; // z方向控制引脚 const int zstepPin 2; // z步进控制引脚 int trigPin A0; //Trig int echoPin A1; //Echo long duration, cm0, inches; const int STEPS_PER_REV 2800; AccelStepper stepper3(1,zstepPin,zdirPin);//建立步进电机对象 char X;volatile int sj25; volatile int jdu0; Servo servo_11; Servo servo_8; Servo servo_3; Servo servo_4; Servo servo_7; Servo servo_12; void setup() {LZC.begin(9600);pinMode(zstepPin,OUTPUT); // Arduino控制A4988z步进引脚为输出模式pinMode(zdirPin,OUTPUT); // Arduino控制A4988z方向引脚为输出模式pinMode(enablePin,OUTPUT); // Arduino控制A4988使能引脚为输出模式digitalWrite(enablePin,LOW); // 将使能控制引脚设置为低电平从而让pinMode(A3, OUTPUT);pinMode(2, OUTPUT); // 电机驱动板进入工作状态stepper3.setMaxSpeed(300.0); // 设置电机最大速度300stepper3.setAcceleration(20.0); // 设置电机加速度20.0servo_11.attach(11);servo_8.attach(8);servo_3.attach(3);servo_4.attach(4);servo_7.attach(7);servo_12.attach(12);LZC.begin(9600);servo_7.write(45);servo_11.write(135);delay(sj);delay(sj);digitalWrite(2,HIGH);digitalWrite(A3,LOW);for (int i 150; i 105; i i (-1)) {servo_4.write(i);delay(sj);servo_3.write(i-10);delay(sj);servo_8.write(305-i);delay(sj);}for (int i 105; i 70; i i (-1)) {servo_3.write(i-10);delay(sj);servo_8.write(325-i);delay(sj);} }void loop() {if( Serial.available()) {X Serial.read();LZC.print(X); } if(LZC.available()) {XLZC.read(); Serial.print(X);}switch(X){case a:digitalWrite(2,1);digitalWrite(A3,0);LZC.println(开始抓东西);servo_11.write(135);delay(sj);servo_8.write(135);delay(sj);servo_3.write(135);delay(sj);servo_4.write(135);delay(sj);servo_7.write(45);delay(sj);delay(1000);for (int i 45; i 110; i i (1)) {servo_7.write(i);delay(sj);}for (int i 135; i 110; i i (-1)) {servo_4.write(i);delay(sj);jdu i;servo_3.write(jdu/2);delay(sj);}for (int i 110; i 150; i i (1)) {servo_4.write(i);delay(sj);servo_8.write(255-i);delay(sj);}for (int i 150; i 190; i i (1)) {servo_4.write(i);delay(sj);servo_3.write(i-100);delay(sj);}servo_11.write(190);delay(sj);delay(1000);for (int i 190; i 150; i i (-1)) {servo_4.write(i);delay(sj);jdu i;servo_3.write(i-20);delay(sj);servo_8.write(310-i);delay(sj);}for (int i 150; i 125; i i (-1)) {servo_4.write(i);delay(sj);servo_3.write(i);delay(sj);servo_8.write(345-i);delay(sj);}for (int i 110; i 170; i i (1)) {servo_7.write(i);delay(sj);}servo_11.write(135);delay(sj);delay(1000);for (int i 170; i 42; i i (-1)) {servo_7.write(i);delay(sj);}for (int i 150; i 105; i i (-1)) {servo_4.write(i);delay(sj);servo_3.write(i-10);delay(sj);servo_8.write(305-i);delay(sj);}delay(10000);break;case b:digitalWrite(2,HIGH);digitalWrite(A3,LOW);LZC.println(开始放东西);servo_11.write(135);delay(sj);servo_8.write(135);delay(sj);servo_3.write(135);delay(sj);servo_4.write(135);delay(sj);servo_7.write(45);delay(sj);for (int i 45; i 170; i i (1)) {servo_7.write(i);delay(sj);}for (int i 135; i 105; i i (-1)) {servo_4.write(i);delay(sj);servo_8.write(i45);delay(sj);servo_3.write(i-10);delay(sj);}for (int i 135; i 260; i i (1)) {servo_8.write(i);delay(sj);}servo_11.write(190);delay(sj);for (int i 260; i 155; i i (-1)) {servo_8.write(i);delay(sj);}for (int i 170; i 110; i i (-1)) {servo_7.write(i);delay(sj);}for (int i 90; i 150; i i (1)) {servo_4.write(i);delay(sj);servo_8.write(i10);delay(sj);servo_3.write(i-40);delay(sj);}delay(1000);servo_11.write(135);delay(sj);delay(1000);for (int i 110; i 45; i i (-1)) {servo_7.write(i);delay(sj);}for (int i 150; i 105; i i (-1)) {servo_4.write(i);delay(sj);servo_3.write(i-10);delay(sj);servo_3.write(i-10);delay(sj);servo_8.write(305-i);delay(sj);}for (int i 105; i 70; i i (-1)) {servo_3.write(i-10);delay(sj);servo_8.write(325-i);delay(sj);}delay(10000);break; case c:{digitalWrite(2,0);digitalWrite(A3,1);LZC.println(步进电机开始运动);digitalWrite(zdirPin,LOW);// 电机慢速旋转for(int x 0; x STEPS_PER_REV; x) {digitalWrite(zstepPin,HIGH);delayMicroseconds(2000);digitalWrite(zstepPin,LOW);delayMicroseconds(2000);}// 等待一秒delay(10000);break;}case d:{ digitalWrite(2,0);digitalWrite(A3,1);LZC.println(步进电机开始运动);// 设置电机逆时针旋转digitalWrite(zdirPin,HIGH);// 电机快速旋转for(int x 0; x (STEPS_PER_REV * 2); x) {digitalWrite(zstepPin,HIGH);delayMicroseconds(1000);digitalWrite(zstepPin,LOW);delayMicroseconds(1000);}// 等待一秒delay(10000);break; } case e: {digitalWrite(2,0);digitalWrite(A3,1);LZC.println(云台开始运动);for (int i 0; i 90; i i (1)) {servo_12.write(i);delay(15);}for (int i 90; i 0; i i (-1)) {servo_12.write(i);delay(15);}break;} case f: {digitalWrite(2,0);digitalWrite(A3,1);for (int i 150; i 105; i i (-1)) {servo_4.write(i);delay(sj);servo_3.write(i-10);delay(sj);servo_8.write(305-i);delay(sj);}for (int i 105; i 70; i i (-1)) {servo_3.write(i-10);delay(sj);servo_8.write(325-i);delay(sj);}delay(15000);} }} 2. 资料下载 资料内容 ①程序源代码 ②模型3D文件 ③仿真渲染文件 ④关键零件应力分析图 资料下载地址送餐机器人
http://wiki.neutronadmin.com/news/146792/

相关文章:

  • 新网站百度收录要几天衡水购物网站制作
  • 网站备案密码修改wordpress 后台 谷歌字体
  • 公司做网站推广做图网站被告
  • 做网站建设上海网站建设百度推广公司
  • 百度知道网页版入口网站网络推广能优化
  • 自己建一个简单的网站孟村做网站价格
  • 用墨刀做网站首页如何做好阿里巴巴企业网站建设
  • 我要建个人网站优秀个人博客网站
  • 官方网站找oem做洗发水厂家什么网站可以做长图攻略
  • 做k线图网站新乡网站seo优化
  • 企业销售型网站是什么河南郑州房价
  • 网站开发 职业环境分析旅游网站界面设计
  • 法律网站建设wordpress 导入文章
  • 高端互联网网站宁波做企业网站公司
  • 用ps做网站尺寸wordpress 同步 博客园
  • 厦门免费网站建设最新电子产品网站模板
  • 做网站 的主要收获seo短视频发布页
  • 计算机网站开发背景保定网站制作
  • 免费发布租房信息网站企业网站优化包括哪三个层面
  • 建网站买的是什么流量推广平台
  • 怎么给网站做404wordpress主页广告
  • 做英文的小说网站有哪些wordpress公司官网主题
  • 网站投稿源码wordpress 正文替换
  • 品牌建设思维导图新网站前期seo怎么做
  • 文明网站建设管理培训心得古董做推广哪个网站好
  • 广东广东深圳网站建设网站后台如何用代码上传视频
  • 四海网络网站建设定制烟台网站网站建设
  • 网站开发与维修是什么意思广东网站开发哪家强
  • 济南网站搜索优化北京网站开发建设公司
  • 国内免费产品发布网站四川住房和城乡建设厅网站官网