• 从胡红岩到王天荣,还有多少人在无辜背案底 2019-09-17
  • 英国政治家威廉·皮特说得好:百姓的茅草房,风可以进,雨可以进,国王不可以随便进。 2019-09-17
  • 事件 —频道 春城壹网 七彩云南 一网天下 2019-08-30
  • 《辉煌中国》第一集《圆梦工程》 2019-08-30
  • 建党精神,从这八个字学起——访中国史学会原会长金冲及 2019-08-26
  • "生死"淘汰赛启动 中国私募股权行业加速洗牌 2019-08-15
  • 国际锐评:美方反复无常,中方洞若观火,同等反制! 2019-08-03
  • 中美贸易战,让更多的中国人醒悟过来:美国是靠不住的。 2019-08-03
  • 中国电视剧诞生60周年盛典 老中青三代主创齐聚一堂 2019-07-25
  • 探寻南极之境 送给世界尽头的一封情书 2019-07-25
  • 抓住了!云南文山脱逃嫌疑人七小时后在城内被抓获 2019-07-22
  • “埃夫特·栋梁杯”全国工业机器人技术应用技能大赛落幕 2019-07-22
  • 应战美国贸易战中国跟500亿 同等力度、同日开征关税 2019-07-12
  • 专家谈当前市场预期 信心持续攀升预期比较乐观 2019-07-02
  • SNH48年度总决选速报结果公布 李艺彤登顶 2019-07-02
  • 查看: 34812|回复: 49
    打印 上一主题 下一主题

    [项目分享] 用Arduino来看看快递的暴力程度!

    [复制链接]
    本帖最后由 果壳实验室 于 2015-2-4 19:48 编辑

    前些日子,玉溪同学为了试着打开快递大叔的内心世界(啧啧。。。详情请点击)而DIY了暴力快递测试设备,取得众多网友的热烈反响,遂在经过千万场内心戏之后,开始了下一次更完备的暴力测试计划。(截至发帖,玉溪同学已经远在美帝,这次把他都供出来了,希望美帝能确保他人身安全!( ′ ▽ ` )? ……至少小编我很安全,嗯?。?/font>

    极速赛车预测 www.260lu.com 由于果壳实验室的小伙伴DFRobot对快递大叔内心世界也颇感兴趣(误,这句划掉),由于果壳实验室的小伙伴DFRobot对这项拯救人类世界的计划颇为感兴趣,决定与果壳试验一起进行项目,于是,我们这项搞机计划便轰轰烈烈开始啦!

    本次测试区域仍选择在北京市内,快递路线大致为朝阳区到海淀区。因此我们的设备功能需求是:能够测量包裹撞击时加速度的强度,并将数值连同撞击时间记录在SD卡内??悸堑奖本┦心诳斓菀话隳苁迪执稳沾?,因此我们将设备续航时间设定在24小时。

    综合了功能和设备小型化的需求,我们最终选择的设备构成包括:DFRduino nano+BMA220加速度传感器+MiscroSD ???DS1307时间???,同时采用一块3.7V 2000MA的锂电池+直流升压??椋ㄊ涑?V)给设备供电。


    DFRduino nano


    BMA220加速度传感器


    MiscroSD ???/font>


    DS1307时间???/font>




    3.7V 2000MA的锂电池与直流升压???/font>

    选好器材之后,果壳实验室与@DFRobot 就开始愉快地撸起来了……ˊ_>ˋ

    首先把这些器材用杜邦线连接起来。铛铛铛~瞬间就接好了……


    喔喔,好像节奏快了一点点……再贴张连接图吧!

    接着,给RTC设置时间。将DS1307RTC的例程SetTime烧写入Arduino中,打开串口监视器,看到Arduino返回的时间数据为当前时间,时间设置完成!


    然后开始写代码,点击一下upload,哇,好了?。ㄔ趺纯赡芤淮尉秃?!写代码……改代码……写代码……改代码……写代码……改代码……写代码……upload,再改……这个过程我们就略过吧?。?/font>


    终于,设备调试完了(ˊ_>ˋ这回真的好了) 。



    装上电池后用信封包起来,装进盒子里。


    然后就愉快地让内心世界丰富的快递大叔来把快递取走了!

    磕磕碰碰,中间遇到其他事情,好几天才完成了包裹寄出和回收任务,然后就开始处理数据了……(别说了,这是最痛苦难受地好不好),然后,就出结果啦……来看看快递大叔的心情……






    其实快递的磕磕碰碰,汽车在快加速,或者急刹车的过程,产生的加速度也记录在设备上了。因此我们试着做一个比较好的比较,让同事带着设备走回家。 从公司到家,来回大约十三公里的路途,主要靠走路和地铁。我们获得的数据如下:


    这个实验样本产生了11个数据点,对照时间,基本上是地铁加速减速产生的加速度,加速度大小主要在5~6m/s^2。

    在我们试验的几个快递样本上,超过15m/s^2的加速度出现次数不少,也有几次超过20m/s^2,甚至达到27m/s^2??斓荽笫宓男那椤踹酢?/font>

    实验至此,快递大叔的心情大家也看了,想说的道理其实大家也都懂,易碎的该包严实,贵重的要买保险……喔不,公司的同事说了,如果万一快递大叔明天心情不好了,你们几个就去给同事收发快递吧……别说了,让我先去厕所哭会……


    等等……要代码?再此之前记得先安装一下RTC的库喔!


    1. <font color="rgb(51, 51, 51)"><font face="Arial, Helvetica, sans-serif">#include <Wire.h>
    2. #include <math.h>
    3. #include <SD.h>
    4. #include <DS1307RTC.h>
    5. #include <Time.h>
    6. #include <Wire.h>


    7. byte Version[3];
    8. int8_t x_data;
    9. int8_t y_data;
    10. int8_t z_data;
    11. byte range=0x03;
    12. float divi=16;
    13. float x,y,z;

    14. File myFile;

    15. void setup()
    16. {
    17.   Serial.begin(9600);
    18.   Wire.begin();
    19.   Wire.beginTransmission(0x0A); // address of the accelerometer
    20.   // range settings
    21.   Wire.write(0x22); //register address
    22.   Wire.write(range); //can be set at"0x00""0x01""0x02""0x03", refer to Datashhet on wiki
    23.   // low pass filter
    24.   Wire.write(0x20); //register address
    25.   Wire.write(0x05); //can be set at"0x05""0x04"......"0x01""0x00", refer to Datashhet on wiki
    26.   Wire.endTransmission();
    27.   
    28.   Serial.println("Initialization SD card...");
    29.   pinMode(10,OUTPUT);

    30.     if (!SD.begin(4)) {
    31.     Serial.println("initialization failed!");
    32.     return;
    33.   }
    34.   Serial.println("initialization done.");
    35.   
    36.   
    37.   
    38. }
    39.    
    40. void AccelerometerInit()// get accelerated
    41. {
    42.   Wire.beginTransmission(0x0A); // address of the accelerometer
    43.   // reset the accelerometer
    44.   Wire.write(0x04); // Y data
    45.   Wire.endTransmission();
    46.   Wire.requestFrom(0x0A,1);    // request 6 bytes from slave device #2
    47.   while(Wire.available())    // slave may send less than requested
    48.   {
    49.     Version[0] = Wire.read(); // receive a byte as characte
    50.   }
    51.   x_data=(int8_t)Version[0]>>2;
    52.    
    53.   Wire.beginTransmission(0x0A); // address of the accelerometer
    54.   // reset the accelerometer
    55.   Wire.write(0x06); // Y data
    56.   Wire.endTransmission();
    57.   Wire.requestFrom(0x0A,1);    // request 6 bytes from slave device #2
    58.   while(Wire.available())    // slave may send less than requested
    59.   {
    60.     Version[1] = Wire.read(); // receive a byte as characte
    61.   }
    62.   y_data=(int8_t)Version[1]>>2;
    63.    
    64.   Wire.beginTransmission(0x0A); // address of the accelerometer
    65.   // reset the accelerometer
    66.   Wire.write(0x08); // Y data
    67.   Wire.endTransmission();
    68.   Wire.requestFrom(0x0A,1);    // request 6 bytes from slave device #2
    69.    while(Wire.available())    // slave may send less than requested
    70.   {
    71.     Version[2] = Wire.read(); // receive a byte as characte
    72.   }
    73.    z_data=(int8_t)Version[2]>>2;
    74.    
    75.    x=(float)x_data/divi;
    76.    y=(float)y_data/divi;
    77.    z=(float)z_data/divi;
    78.    Serial.print("X=");  
    79.    Serial.print(x);         // print the character
    80.    Serial.print("  ");
    81.    Serial.print("Y=");  
    82.    Serial.print(y);         // print the character
    83.    Serial.print("  ");
    84.    Serial.print("Z=");           // print the character
    85.    Serial.print(z);  
    86. }
    87.    
    88. void loop()
    89. { double accelerated_speed;
    90.   switch(range)  //change the data dealing method based on the range u've set
    91.   {
    92.   case 0x00:divi=16;  break;
    93.   case 0x01:divi=8;  break;
    94.   case 0x02:divi=4;  break;
    95.   case 0x03:divi=2;  break;
    96.   default: Serial.println("range setting is Wrong,range:from 0to 3.Please check!");while(1);
    97.   }
    98.   AccelerometerInit();
    99.   accelerated_speed=sqrt(x*x+y*y+z*z);
    100.   Serial.print("accelerated_speed=");
    101.   Serial.println(accelerated_speed);
    102.   if(accelerated_speed>=1)
    103.   {
    104.     //get time
    105.      tmElements_t tm;
    106.      RTC.read(tm);
    107.     //write data
    108.       myFile = SD.open("test.txt", FILE_WRITE);
    109.        if (myFile) {
    110.       Serial.print("Writing to test.txt...");
    111.       //recoder time and data
    112.       myFile.print("accelerated_speed=");
    113.       myFile.print(accelerated_speed);
    114.       myFile.print("    ");
    115.       myFile.print("time=");
    116.       myFile.print(tm.Hour);//
    117.       myFile.print(':');
    118.       myFile.print(tm.Minute);//
    119.       myFile.print(':');
    120.       myFile.print(tm.Second);//
    121.       myFile.print(':');
    122.       myFile.print(", Date (D/M/Y) = ");
    123.       myFile.print(tm.Day);
    124.       myFile.write('/');
    125.       myFile.print(tm.Month);
    126.       myFile.write('/');
    127.       myFile.print(tmYear);
    128.       // close the file:
    129.       myFile.close();
    130.       
    131. Serial.println("done.");
    132.   } else {
    133.     // if the file didn't open, print an error:
    134.     Serial.println("error opening test.txt");
    135.   }
    136.       
    137.   }
    138.   delay(100);
    139.   
    140. }
    141. void print2digits(int number) {
    142.   if (number >= 0 && number < 10) {
    143.     Serial.write('0');
    144.   }
    145.   Serial.print(number);
    146. }
    147. </font></font>
    复制代码







    iCl6H3OJnQ8F0yYfYlo9_7JOmhVhBQw_bGBzJhgXuFogCgAAkAcAAEpQ.jpg (173.92 KB, 下载次数: 151)

    iCl6H3OJnQ8F0yYfYlo9_7JOmhVhBQw_bGBzJhgXuFogCgAAkAcAAEpQ.jpg

    kvncut800IUQ2ka1UyWOBGU84wyzlgMv3gjqv_XKXwEgCgAAkAcAAEpQ.jpg (100.04 KB, 下载次数: 126)

    kvncut800IUQ2ka1UyWOBGU84wyzlgMv3gjqv_XKXwEgCgAAkAcAAEpQ.jpg

    MbgT17P91UqjVdr974hSeFyGZY_pwLcBaE9WA9bwKd4gCgAAkAcAAEpQ.jpg (127.61 KB, 下载次数: 121)

    MbgT17P91UqjVdr974hSeFyGZY_pwLcBaE9WA9bwKd4gCgAAkAcAAEpQ.jpg
    来自 32#

    Ash  管理员

    发表于 2015-11-12 11:51:54

    ↓ ↓ ↓ 看这里 看这里 ↓ ↓ ↓
    广告时间,想自己DIY一个小伙伴看这里啦~ 项目用到的硬件我们打包放心愿单啦!
    //www.dfrobot.com.cn/wishlist.php

    来自 33#

    luna  管理员

    发表于 2015-11-12 12:00:36

    Ash 发表于 2015-11-12 11:51
    ↓ ↓ ↓ 看这里 看这里 ↓ ↓ ↓
    广告时间,想自己DIY一个小伙伴看这里啦~ 项目用到的硬件我们打包放心愿 ...

    还差一个直流升压??閪可以某宝购买~其他只需要一键购买~~~
    推荐

    Ricky  NPC

    发表于 2015-2-5 20:05:05

    图标很清晰,数据更好。最基本的可以做中值平均,看看这个快递的平均指数如何,再进行极值分析,看看谁家瞬间暴力指数最高。再高级一点可以做特征值比对,将标准运输,上下电梯的加速度做特征拟合,过滤掉常见特征以后,可以反应出运输过程中驾驶员的驾驶习惯,分拣员的手势,快递员的暴力指数。

    加上陀螺仪后,分析维度更多,通过对物品的roll,pitch,yaw的均值,可以看出物品做了多少次托马斯回旋和自由体操。再来进行一个快递奥运版。;P
    推荐

    果壳实验室  见习技师
     楼主|

    发表于 2015-2-4 22:24:21

    Rockets 发表于 2015-2-4 21:49
    不错啊,感觉后面的数据分析很有意思。
    用电子的方法来记录运输的过程很有意思,并且图形化数据,是个有意 ...

    一点一点画出来的{:3_41:}

    点评

    这是……偶遇熟人的节奏?  发表于 2015-12-11 08:21
    Ash
    哈哈哈哈哈 ( ̄▽ ̄")  发表于 2015-2-5 10:30
    沙发

    hnyzcj  超级版主

    发表于 2015-2-4 20:42:50

    牛叉,顶一个。也学习了
    板凳

    Ash  管理员 来自手机

    发表于 2015-2-4 20:58:28

    ??(???ω?? ?)? 想看SF的~
    地板

    tyjjr  中级技匠

    发表于 2015-2-4 21:16:01

    Ash 发表于 2015-2-4 20:58
    ??(???ω?? ?)? 想看SF的~

    +1         
    5#

    大连林海  初级技神

    发表于 2015-2-4 21:43:39

    这个项目应用 在好久前看过,做个快递暴力程度大探究吧。来个数据分析。 也是很好的Arduino 应用哦
    6#

    Rockets  NPC

    发表于 2015-2-4 21:49:20

    不错啊,感觉后面的数据分析很有意思。
    用电子的方法来记录运输的过程很有意思,并且图形化数据,是个有意思的玩法。
    其实可以在各种领域来跨界使用。
    有点像神秘旅客的感觉。
    8#

    cj2q  中级技匠

    发表于 2015-2-5 02:21:33

    前天看到欢迎新用户 过客实验室 就知道要出大事 嘻嘻
    9#

    Rockets  NPC

    发表于 2015-2-5 09:49:05


    啊,画出来的啊,你们好厉害?。?!
    10#

    Rockets  NPC

    发表于 2015-2-5 09:50:37


    欢迎果壳实验室玩出更多的花样来,我们拭目以待啊。
    最近百度不是做了个自行车吗?
    你们要不要也copy一下?
    11#

    Ash  管理员

    发表于 2015-2-5 10:31:32

    cj2q 发表于 2015-2-5 02:21
    前天看到欢迎新用户 过客实验室 就知道要出大事 嘻嘻

    耶嘿  被发现了 (⊙o⊙)  眼尖哦~
    12#

    luna  管理员

    发表于 2015-2-5 11:12:10

    Ash 发表于 2015-2-4 20:58
    ??(???ω?? ?)? 想看SF的~

    我也是:D
    13#

    celine  初级技师

    发表于 2015-2-5 11:17:47

    有趣的实验!
    14#

    zhanglj  初级技师

    发表于 2015-2-5 11:25:54

    超有趣的实验
    17#

    Jane  管理员

    发表于 2015-2-6 10:20:44

    有意思~
    18#

    KinFu  高级技师

    发表于 2015-2-6 13:13:06

    学习了,拜读
    19#

    lisper  版主

    发表于 2015-2-6 15:52:32

    有饼状图吗?
    20#

    gckulo  高级技师

    发表于 2015-2-6 18:44:09

    Ricky 发表于 2015-2-5 20:05
    图标很清晰,数据更好。最基本的可以做中值平均,看看这个快递的平均指数如何,再进行极值分析,看看谁家瞬 ...

    这方案碉堡了啊,就是好贵 (*/ω\*)
    21#

    Eric  版主

    发表于 2015-2-6 23:19:15

    有我亲自设计的MicroSD卡槽,看着好情切啊~
    123下一页
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    为本项目制作心愿单
    购买心愿单
    心愿单 编辑
    wifi气象站

    硬件清单

    btnicon
    我也要做!
    点击进入购买页面
    关于楼主
    上海智位机器人股份有限公司 沪ICP备09038501号-4

    © 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

    极速赛车预测
  • 从胡红岩到王天荣,还有多少人在无辜背案底 2019-09-17
  • 英国政治家威廉·皮特说得好:百姓的茅草房,风可以进,雨可以进,国王不可以随便进。 2019-09-17
  • 事件 —频道 春城壹网 七彩云南 一网天下 2019-08-30
  • 《辉煌中国》第一集《圆梦工程》 2019-08-30
  • 建党精神,从这八个字学起——访中国史学会原会长金冲及 2019-08-26
  • "生死"淘汰赛启动 中国私募股权行业加速洗牌 2019-08-15
  • 国际锐评:美方反复无常,中方洞若观火,同等反制! 2019-08-03
  • 中美贸易战,让更多的中国人醒悟过来:美国是靠不住的。 2019-08-03
  • 中国电视剧诞生60周年盛典 老中青三代主创齐聚一堂 2019-07-25
  • 探寻南极之境 送给世界尽头的一封情书 2019-07-25
  • 抓住了!云南文山脱逃嫌疑人七小时后在城内被抓获 2019-07-22
  • “埃夫特·栋梁杯”全国工业机器人技术应用技能大赛落幕 2019-07-22
  • 应战美国贸易战中国跟500亿 同等力度、同日开征关税 2019-07-12
  • 专家谈当前市场预期 信心持续攀升预期比较乐观 2019-07-02
  • SNH48年度总决选速报结果公布 李艺彤登顶 2019-07-02
  • 东方6十1走势图带连线 重庆快乐十分网上购买 重庆福彩主题店二维码 11五选5助手 破解时时彩 极速赛车5码精准计划 三排毒胆 2个骰子单多还是双多 数字规律分析器 北京pk10龙虎玩怎么玩 老时时彩360走势 电子游戏的利与弊100字 20192019法甲 时时彩龙虎洗返水 安徽十一选五的走势图带连线