16461| 40
|
[3D模型] 3D打印,可定义动画徽章 |
本帖最后由 Mingming.Zhang 于 2018-7-24 13:23 编辑 ![]() 大 家 是 否 喜 欢 徽 章 ? 同 样 喜 欢 简 单 的 T 恤 和 帽 子 ,那 再 适 合 不 过 了 它 有 哪 些 玩 法 ? 自 定 义 编 辑 属 于 自 己 的 个 性 动 画 ; ![]() 配 合 相 关 表 带 变 身 ⌚️ 心 率 什 么 的 一 手 掌 握 ; 蓝 牙 配 对 mp3 等 等 这 些 就 是 我 对 它 的 想 象. 硬 件 篇 : ![]() 准备一下: . Beetle控制器 . Thomas Rabbitson Led Matrix Board V1.0 灯板 . FPC0.5-10P反向连接线长6cm . 4.2v锂电池 . 锂电池充电板. 三角开关 . 磁吸胸针 . 3D打印外壳 ![]() 想 到 夏 天 了,整 个 外 壳 部 分 也 很 清 新 、简 单。 图 上 有 2 出 小 开 口 分 别 是 :micro usb 编 程 充 电 接 口 ;电 源 开 关 接 口 实际演示效果,给自己做了一个小动画;感觉还可以持续挖掘它的其他玩法 ![]() 外 壳 绘 制 好 后 导 入 比 较 常 用 的 cura,配 置 好 自 己 的 机 器 设 置 就 好 了 , 整 个 打 印 30 分 钟 左 右( 材 料 我 选 择 的 带 有 点 木 质 感 觉 的 pla,当 然 可 以 尝 试 其 他 材 质 ) ![]() 整 个 完 成 的 效 果 很 小 巧、自 己 配 戴 出 去 玩 实 测 续 航 3 小 时。 续 航 不 是 很 长 ,因 为 led 酷 酷 的 闪 动 动 画 太 耗 电 了;充 电 的 话 大 约 30 分 钟 就 好,随 身 充 电 宝 也 是 可 以 充 电 的 ![]() 1.连接白色排线 蓝色接口朝外;连接fpc转接板与beetle 2.连接电池到充电板B+/B-;注意正负极 不要连错❌ ![]() 第 一 次 用 这 么 小 巧 的 圆 形 led 灯 板,还 是 非 常 喜 欢的。箭 头 标 识 着 显 示 的 正 方 向 首先,我们需要理解我们是如何通过代码发送的数据来控制任意LED灯的。 以字母“R”为例,我们可以看到,ASC_II_table_R[] 数组里面的数据,依次按一定顺序写入到LED_RAM_ADDR[] 地址中就可以实现对特定的LED的亮灭控制啦! [C] 纯文本查看 复制代码 unsigned char LED_RAM_ADDR[]= { 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e, 0x20, 0x22, 0x24, 0x26, 0x28, 0x2a, 0x2c, 0x2e }; const unsigned char ASC_II_table_R[]= {0x00,0x00,0x00,0x00,0x78,0x00,0x90,0x00,0x90,0x00,0x70,0x00, 0x50,0x00,0x90,0x00,0x90,0x00,0xB8,0x01,0x00,0x00,0x00,0x00};/*"R",0*/ ![]() 先了解下二进制与十六进制的转换,如上面表格。 接下来我们来分析是如何点亮“R”区域的LED灯, 由上图我们可以看到,当数据为“1”时LED被点亮,相当于我们给了此处的LED灯一个高电平,同样的道理,当数据为0时,LED为熄灭状态。那么我们是如何控制各个单元的电平高低的呢? 我们以图中红色方框的数据为例,从右至左看二进制码为“0111 1000”,转换为十六进制为“78”,根据上图中各单元的LED单元地址,我们可以看出此单元地址是0x08,对比代码中的数据,“R”字符字模的第5个数据是0x78。一次类推我们就可以很好的控制各个LED的亮灭啦,大家可以动手试试,写一个爱心的字模,再对比代码,看看是否是一样的。 大家也可以借用“字模软件”帮助取模,对于软件的应用,可以自行学习下,多尝试几个图形你就会发现其中的奥妙啦!
![]() 打开PCtoLCD2002,像素大小设置为12x12; 如图左击鼠标点一个像素(右击鼠标清楚一个像素), 点击生成字模加入到代码里即可; ![]() 点开设置:1.取模方式--逐行式 2.每行显示数-12/1 3.取模走向-逆向 4.自定义格式-C51 [C] 纯文本查看 复制代码 const unsigned char hartTable_left[]= {0x00,0x00,0x00,0x00,0x8C,0x01,0xDE,0x03,0xFE,0x03,0xFE,0x03, 0xFC,0x01,0xF8,0x00,0x70,0x00,0x20,0x00,0x00,0x00,0x00,0x00};/*"Left heart",0*/ 将自动输出的数据粘贴到代码里 软 件 篇 : Show_bitmap函数: 该函数用于将图形字模依次写入相应的单元地址以显示图形效果。 loop函数: 修改该函数,可以实现不同的功能。 跳动的心: [C] 纯文本查看 复制代码 void loop() { Show_bitmap(hartTable_left); //跳动的心 delay(400); Show_bitmap(hartTable_right); delay(400); } 呼吸的心: 闪烁的心: |
MonsterYan 发表于 2018-7-23 14:32 哦哦,好的。 我补出来了,您看一下吧(直接插入microusb,打开arduinoide软件看到端口 下载更改即可)附件是字模软件 [C] 纯文本查看 复制代码 #define CMD_ID 0x80 //command 命令码100 0x80(1000 0000) #define WRITE_ID 0xa0 //write 命令码101,0xa0(1010 0000) #define SYS_DIS 0x00 //关闭系统震荡 #define SYS_EN 0x01 //打开系统震荡 #define LED_OFF 0x02 //关闭LED显示 #define LED_ON 0x03 //打开LED显示 #define BLINK_OFF 0x08 //关闭闪烁 #define BLINK_ON 0x09 //打开闪烁 #define SLAVE_MODE 0x10 //从模式 #define RC_MASTER_MODE 0x18 //内部RC时钟 #define COM_OPTION 0x24 //16COM n-mos模式 ab=01 #define PWM_DUTY 0xAE //PWM亮度控制 最亮 #define PWM_DUTY_MIN 0xA0 //PWM亮度控制 最暗 #define CS_LOW() digitalWrite(CS_pin,LOW) //CS置低 #define CS_HIGH() digitalWrite(CS_pin,HIGH) //CS置高 #define WR_LOW() digitalWrite(WR_pin,LOW) //WR置低 #define WR_HIGH() digitalWrite(WR_pin,HIGH) //WR置高 #define DATA_LOW() digitalWrite(DATA_pin,LOW) //DATA置低 #define DATA_HIGH() digitalWrite(DATA_pin,HIGH) //DATA置高 int powerEn = 9; int CS_pin = 11; int RD_pin = A2; int WR_pin = 10; int DATA_pin = A1; unsigned char LED_RAM_ADDR[]= { 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e, 0x20, 0x22, 0x24, 0x26, 0x28, 0x2a, 0x2c, 0x2e }; const unsigned char ASC_II_table_R[]= {0x00,0x00,0x00,0x00,0x78,0x00,0x90,0x00,0x90,0x00,0x70,0x00, 0x50,0x00,0x90,0x00,0x90,0x00,0xB8,0x01,0x00,0x00,0x00,0x00};/*"R",0*/ const unsigned char ASC_II_table_L[] = {0x00,0x00,0x00,0x00,0x38,0x00,0x10,0x00,0x10,0x00,0x10,0x00, 0x10,0x00,0x10,0x00,0x10,0x01,0xF8,0x01,0x00,0x00,0x00,0x00};/*"L",0*/ const unsigned char hartTable_left[]= {0x00,0x00,0x00,0x00,0x8C,0x01,0xDE,0x03,0xFE,0x03,0xFE,0x03, 0xFC,0x01,0xF8,0x00,0x70,0x00,0x20,0x00,0x00,0x00,0x00,0x00};/*"Left heart",0*/ const unsigned char hartTable_right[]= {0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x03,0xBC,0x07,0xFC,0x07, 0xFC,0x07,0xF8,0x03,0xF0,0x01,0xE0,0x00,0x40,0x00,0x00,0x00,};/*"Rihgt heart",0*/ const unsigned char r[]= {0x00,0x00,0x00,0x00,0x78,0x00,0x90,0x00,0x90,0x00,0x70,0x00, 0x50,0x00,0x90,0x00,0x90,0x00,0xB8,0x01,0x00,0x00,0x00,0x00,};/*"Rihgt heart",0*/ const unsigned char face[]= {0xF0,0x00,0x0C,0x03,0x06,0x06,0x02,0x04,0x0B,0x0D,0x0B,0x09, 0x01,0x08,0x93,0x0C,0xF2,0x04,0x06,0x06,0x0C,0x03,0xF0,0x00,};/*"Rihgt heart",0*/ const unsigned char Z[]= {0x00,0x00,0x00,0x00,0xFC,0x03,0x00,0x01,0x80,0x00,0x40,0x00, 0x20,0x00,0x10,0x00,0x08,0x00,0xFC,0x03,0x00,0x00,0x00,0x00,};/*"Rihgt heart",0*/ const unsigned char a1[]= {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00, 0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*"Rihgt heart",0*/ const unsigned char a2[]= {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x90,0x00, 0x90,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*"Rihgt heart",0*/ const unsigned char a3[]= {0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x01,0x08,0x01,0x08,0x01, 0x08,0x01,0x08,0x01,0xF8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,};/*"Rihgt heart",0*/ const unsigned char a4[]= {0x00,0x00,0x00,0x00,0xFC,0x03,0x04,0x02,0x04,0x02,0x04,0x02, 0x04,0x02,0x04,0x02,0x04,0x02,0xFC,0x03,0x00,0x00,0x00,0x00,};/*"Rihgt heart",0*/ const unsigned char a5[]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,};/*"Rihgt heart",0*/ unsigned char a6[]= { 0x00,0x00,0x08,0x00,0x1C,0x00,0x3E,0x00,0x63,0x00,0x63,0x00, 0x7F,0x00,0x7F,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x00,0x00};/*"A",0*/ const unsigned char a7[]= { 0x00,0x00,0x00,0x00,0xF8,0x01,0x60,0x00,0x60,0x00,0x60,0x00, 0x60,0x00,0x60,0x00,0xF8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,};/*"I",0*/ //tx_moode为数据读取的方式,data为输入的数据,cnt为读取数据位数 const unsigned char a8[]= { 0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x88,0x00,0x88,0x00, 0x88,0x00,0x88,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*"U",0*/ const unsigned char a9[]= { 0x00,0x00,0x00,0x00,0xFC,0x00,0x04,0x01,0x04,0x02,0x04,0x02, 0x04,0x02,0x04,0x02,0x04,0x02,0x04,0x01,0xFC,0x00,0x00,0x00,};/*"D",0*/ const unsigned char a10[]= { 0x00,0x00,0x04,0x04,0x08,0x02,0x10,0x01,0xA0,0x00,0x40,0x00, 0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x00,0x00};/*"Y",0*/ const unsigned char a11[]= { 0x00,0x00,0x00,0x01,0x80,0x03,0xC0,0x07,0x60,0x0C,0x60,0x0C, 0xE0,0x0F,0xE0,0x0F,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x00,0x00};/*"Y",0*/ const unsigned char a12[]= { 0x00,0x00,0x80,0x00,0xC0,0x01,0xE0,0x03,0x30,0x06,0x30,0x06, 0xF0,0x07,0xF0,0x07,0x30,0x06,0x30,0x06,0x30,0x06,0x00,0x00};/*"Y",0*/ const unsigned char a13[]= { 0x00,0x00,0x40,0x00,0xE0,0x00,0xF0,0x01,0x18,0x03,0x18,0x03, 0xF8,0x03,0xF8,0x03,0x18,0x03,0x18,0x03,0x18,0x03,0x00,0x00};/*"Y",0*/ const unsigned char a14[]= { 0x00,0x00,0x20,0x00,0x70,0x00,0xF8,0x00,0x8C,0x01,0x8C,0x01, 0xFC,0x09,0xFC,0x09,0x8C,0x09,0x8C,0x09,0x8C,0x01,0x00,0x00};/*"Y",0*/ const unsigned char a15[]= { 0x00,0x00,0x10,0x00,0x38,0x00,0x7C,0x00,0xC6,0x00,0xC6,0x08, 0xFE,0x04,0xFE,0x04,0xC6,0x04,0xC6,0x04,0xC6,0x08,0x00,0x00};/*"Y",0*/ const unsigned char a16[]= { 0x00,0x00,0x08,0x00,0x1C,0x00,0x3E,0x00,0x63,0x00,0x63,0x0C, 0x7F,0x02,0x7F,0x02,0x63,0x02,0x63,0x02,0x63,0x0C,0x00,0x00};/*"Y",0*/ const unsigned char a17[]= { 0x00,0x00,0x04,0x00,0x0E,0x00,0x1F,0x00,0x31,0x00,0x31,0x0E, 0x3F,0x01,0x3F,0x01,0x31,0x01,0x31,0x01,0x31,0x0E,0x00,0x00};/*"Y",0*/ const unsigned char a18[]= { 0x00,0x00,0x02,0x08,0x07,0x08,0x0F,0x08,0x18,0x08,0x18,0x0F, 0x9F,0x08,0x9F,0x08,0x98,0x08,0x98,0x08,0x18,0x07,0x00,0x00};/*"Y",0*/ const unsigned char a19[]= { 0x00,0x00,0x02,0x08,0x07,0x08,0x0F,0x08,0x18,0x08,0x18,0x0F, 0x9F,0x08,0x9F,0x08,0x98,0x08,0x98,0x08,0x18,0x0F,0x00,0x00};/*"Y",0*/ const unsigned char a20[]= { 0x00,0x00,0x01,0x04,0x03,0x04,0x07,0x04,0x0C,0x04,0x8C,0x07, 0x4F,0x04,0x4F,0x04,0x4C,0x04,0x4C,0x04,0x8C,0x07,0x00,0x00};/*"Y",0*/ const unsigned char a21[]= { 0x00,0x00,0x00,0x02,0x01,0x02,0x03,0x02,0x06,0x02,0xC6,0x03, 0x27,0x02,0x27,0x02,0x26,0x02,0x26,0x02,0xC6,0x03,0x00,0x00};/*"Y",0*/ const unsigned char a22[]= { 0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x03,0x01,0xE3,0x01, 0x13,0x01,0x13,0x09,0x13,0x09,0x13,0x09,0xE3,0x01,0x00,0x00};/*"Y",0*/ const unsigned char a23[]= { 0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x03,0x01,0xE3,0x09, 0x13,0x01,0x13,0x09,0x13,0x09,0x13,0x09,0xE3,0x01,0x00,0x00}; const unsigned char a24[]= { 0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x81,0x08,0xF1,0x04, 0x89,0x08,0x89,0x04,0x89,0x04,0x89,0x04,0xF1,0x08,0x00,0x00}; const unsigned char a25[]= { 0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x0C,0x78,0x02, 0x44,0x0C,0x44,0x02,0x44,0x02,0x44,0x02,0x78,0x0C,0x00,0x00}; const unsigned char a26[]= { 0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x0E,0x3C,0x01, 0x22,0x0E,0x22,0x01,0x22,0x01,0x22,0x01,0x3C,0x0E,0x00,0x00}; const unsigned char a27[]= { 0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x07,0x9E,0x08, 0x11,0x0F,0x91,0x08,0x91,0x08,0x91,0x08,0x1E,0x07,0x00,0x00}; const unsigned char a28[]= { 0x00,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x88,0x03,0x4F,0x04, 0x88,0x07,0x48,0x04,0x48,0x04,0x48,0x04,0x8F,0x03,0x00,0x00}; const unsigned char a29[]= { 0x00,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0xC4,0x01,0x27,0x02, 0xC4,0x03,0x24,0x02,0x24,0x02,0x24,0x02,0xC7,0x01,0x00,0x00}; const unsigned char a30[]= { 0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0xE2,0x00,0x13,0x01, 0xE2,0x01,0x12,0x01,0x12,0x01,0x12,0x01,0xE3,0x00,0x00,0x00}; const unsigned char a31[]= { 0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x71,0x00,0x89,0x00, 0xF1,0x00,0x89,0x00,0x89,0x00,0x89,0x00,0x71,0x00,0x00,0x00}; const unsigned char a32[]= { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x44,0x00, 0x78,0x00,0x44,0x00,0x44,0x00,0x44,0x00,0x38,0x00,0x00,0x00}; void Write_HT1632C(unsigned char tx_mode , unsigned char data, unsigned char cnt) { unsigned char i,temp; switch (tx_mode){ case 0: temp = 0x01;//从右至左依次写入 若输入数据为0000 0001,则写入为1000 0000 for(i = 0; i < cnt; i++) { WR_LOW(); //低电平写入 if(data & temp) DATA_HIGH(); else DATA_LOW(); temp <<= 1; WR_HIGH(); //高电平完成写入保存 } break; case 1: temp = 0x80; //从左至右,若输入数据为0000 0001,则写入仍为0000 0001 for(i = 0; i < cnt; i++) { WR_LOW(); if(data & temp) DATA_HIGH(); else DATA_LOW(); temp >>= 1; WR_HIGH(); } break; default : break; } } void Write_CMD_HT1632C(unsigned char cmd) { CS_LOW(); Write_HT1632C(1,CMD_ID, 3); //command 命令码100 0x80(1000 0000) Write_HT1632C(1,cmd, 9); //命令数据,第9位为0 CS_HIGH(); } void Clr_HT1632C(unsigned char bk_mode) //(1:点亮,0:熄灭) { unsigned char i; CS_LOW(); //Successive Address Writing Write_HT1632C(1,WRITE_ID, 3); //write 命令码101,0xa0(1010 0000) Write_HT1632C(1,0x00,7); //Memory address for(i = 0; i < 24; i++) //点阵由24个区域组成 { if(bk_mode) //如果bk_mode为1 Write_HT1632C(0,0xff,8); //点亮一个区域 else Write_HT1632C(0,0x00,8); // 熄灭一个区域 } CS_HIGH(); } void Init_HT1632C(void) { CS_HIGH(); WR_HIGH(); DATA_HIGH(); Write_CMD_HT1632C(SYS_DIS); //关闭系统震荡 Write_CMD_HT1632C(COM_OPTION); //16COM n-mos模式 ab=01 Write_CMD_HT1632C(RC_MASTER_MODE); //内部RC时钟 Write_CMD_HT1632C(SYS_EN); //关闭系统震荡 Write_CMD_HT1632C(PWM_DUTY); //PWM亮度控制 最亮 Write_CMD_HT1632C(BLINK_OFF); //关闭LED闪烁 Write_CMD_HT1632C(LED_ON); //打开LED显示 } void Write_Data_HT1632C(unsigned char addr, unsigned char data) //addr数据需写入的地址,data需写入的数据 { CS_LOW(); Write_HT1632C(1,WRITE_ID, 3); //write 命令码101,0xa0(1010 0000) Write_HT1632C(1,addr << 1, 7); //写入地址 Write_HT1632C(0,data ,8); //写入数据 CS_HIGH(); } void setBrightness(unsigned char duty) //通过设置PWM来设置LED灯的亮度 { if(duty > 15) //duty的有效范围为0-15 duty = 15; Write_CMD_HT1632C(PWM_DUTY_MIN | duty); } void ledSwitch(bool state) //LED的状态选择,如果state=1则LED亮 { if(state) Write_CMD_HT1632C(LED_ON); else Write_CMD_HT1632C(LED_OFF); } void Show_bitmap(const unsigned char *p) //形状显示,*p:要显示形状的字模 { unsigned char i; for(i = 0; i < 24; i++) //依次写入24个单元 { Write_Data_HT1632C(LED_RAM_ADDR[i], *p); p++; } } void Show_roll(const unsigned char *p) { unsigned char i,j; for(j =0; j <8;j++) { for(i = 0; i < 24; i++) //依次写入24个单元 { Write_Data_HT1632C(LED_RAM_ADDR[i], *p); p++; } delay(500); } } void setup() { pinMode(powerEn,OUTPUT); //输出模式 pinMode(CS_pin, OUTPUT); pinMode(WR_pin, OUTPUT); pinMode(DATA_pin, OUTPUT); digitalWrite(powerEn, HIGH); //置高 digitalWrite(CS_pin,HIGH); digitalWrite(WR_pin,HIGH); digitalWrite(DATA_pin,HIGH); Init_HT1632C(); //初始化函数调用(运行) setBrightness(0.4); } void loop() { Show_bitmap(a11); delay(100); Show_bitmap(a12); delay(100); Show_bitmap(a13); delay(100); Show_bitmap(a14); delay(100); Show_bitmap(a15); delay(100); Show_bitmap(a16); delay(100); Show_bitmap(a17); delay(100); Show_bitmap(a18); delay(100); Show_bitmap(a20); delay(100); Show_bitmap(a21); delay(100); //Show_bitmap(a22); //delay(100); Show_bitmap(a23); delay(100); Show_bitmap(a24); delay(100); Show_bitmap(a25); delay(100); Show_bitmap(a26); delay(100); Show_bitmap(a27); delay(100); Show_bitmap(a28); delay(100); Show_bitmap(a29); delay(100); Show_bitmap(a30); delay(100); Show_bitmap(a31); delay(100); Show_bitmap(a32); delay(100); Show_bitmap(face); delay(2000); Show_bitmap(a7); delay(400); Show_bitmap(hartTable_left); delay(400); Show_bitmap(hartTable_right); delay(400); /*Show_bitmap(hartTable_left); //跳动的心 delay(400); Show_bitmap(hartTable_right); delay(400); Show_bitmap(a1); delay(50); Show_bitmap(a2); delay(50); Show_bitmap(a3); delay(50); Show_bitmap(a4); delay(50); //Write_CMD_HT1632C(BLINK_ON); Show_bitmap(Z); delay(1000); Show_bitmap(face); delay(1000); Show_bitmap(a7); delay(400); Show_bitmap(hartTable_left); delay(400); Show_bitmap(hartTable_right); delay(400); */ } |
1.13 MB, 下载次数: 48, 下载积分: 创造力 -1
售价: 30 创造力 [记录]
Emp~少年 发表于 2018-8-2 11:14 等等,晚点回复你的所有问题。在回复里 记得看 |
© 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed