昨晚在一个投资群里和大家闲聊,其中一个朋友提起了Arduino以及相关的硬件,他接触Arduino相对较晚,但是却用Arduino解决了矿场的很多实际问题,没错,他就是传说的矿业大佬。
聊着聊着,我就也说起一些我玩Arduino的事情,然后聊到大家都有什么成果时,就比较尴尬了。我都玩出哪些成果呢?
我弄过用光驱做激光雕刻机,步进电机驱动各种控制啥的都搞定了,最后发现没法实现机械部分,做出来的东西左摇右晃,最后失败了。
用公牛插排加继电器加esp8266做过智能插座,完全自己从头打造,代码都写完了,控制也没问题,但是后来发现这些东西一堆一堆的,都比我的好。
尝试DIY自平衡车,什么电机驱动,编码器,PID姿态调整啥的都研究得老透彻了,最后做出来的东西摇摇摆摆几秒后就会倒地,没错,相当于死活站不起来。
还有一堆大大小小乱七八糟的东西,不过没有一样能算得上成功的或者拿得出手的作品,真是惭愧。
最终我觉得arduino这块,我唯一算是成功的事情,就是有几个国外大学生找过来,让我帮他们做作业,每个作业我收2K到5K左右不等,这算是把知识转换成收入了。
说到这块,其实我真不想赚他们钱,甚至真不想接他们的作业,他们找过来之后,我给他们推荐了圈里专门做小项目的朋友,结果那些朋友都没法接他们的作业,因为太过于深奥了。
他们的老师要求他们不允许用Arduino的函数来实现一些功能,而是必须用功能寄存器来完成,所以必须去读数据手册,然后找到对应的寄存器,了解如何操控寄存器并实现代码完成。
void setup() {
pinMode(9 , OUTPUT);
TCCR1A = _BV(COM1A1) | _BV(COM1B1) | _BV(WGM11);
TCCR1B = 0;
TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS12) | _BV(CS10);
// Set the value of TOP, which generate 50HZ frequency (20ms per cycle)
ICR1 = 39060 - 1;
OCR1A = 50;
}
(上边这段代码只是为了完成作业而实现的一个小功能,现在回头再看我都一点也看不懂了。)
有一次我感冒发烧头疼欲裂,有个学生找到我,我断然拒绝,然而如果不是有网络阻隔而是在我面前的话,他一定会下跪求我的,总之就是他找了好多人都没人给他弄,只好求我了。
哎,原来玩Arduino,我竟然真的一事无成。不过还好,我觉得玩Arduino开拓了我的视野,增长了我的见识,并且结识了好多圈子里的好友(比如前些天找我要蓝牙模块的),所以也算是没白玩吧。