挥舞的手臂(mixly+二次开发)

从vb6到vb.net,一路c#, java, c,对技术的切换早已经没有害怕的感觉了,一直有的是技术的热情和我所认为的技术信仰。

扯完,开始正文。

看看效果图:

挥舞的手臂(mixly+二次开发)

使用的是Arduino UNO+16 Servo Drive Board+2个SG90舵机(左右手分别1个舵机摇摆)

Arduino UNO:

挥舞的手臂(mixly+二次开发)

16 Servo Drive Board

挥舞的手臂(mixly+二次开发)

然后将这2块叠在一起插上引脚硬件就好了 

挥舞的手臂(mixly+二次开发)

连的是5和6引脚

挥舞的手臂(mixly+二次开发)

 

接下来就程序了,直接编码算是很简单的,就2步:

拷贝厂商的.h/.cpp文件夹到arduino的libraries目录

写代码如下:

#include <Adafruit_PWMServoDriver.h> #define SERVOMIN 200 #define SERVOMAX 540 #define SERVOMIN_Angle 0 #define SERVOMAX_Angle 112 Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(); void servo_goto_angle(int pinId, int angle) { int anglePwmValue=map(angle, SERVOMIN_Angle, SERVOMAX_Angle, SERVOMIN, SERVOMAX); pwm.setPWM(pinId,0, anglePwmValue); } void servo_init() { Serial.begin(9600); pwm.begin(); pwm.setPWMFreq(60); delay(200); } void setup(){ servo_init(); } void loop(){ for (int i = 1; i <= 112; i = i + (1)) { servo_goto_angle(5, i); delay(10); } for (int i = 112; i >= 1; i = i + (-1)) { servo_goto_angle(5, i); delay(10); } for (int i = 1; i <= 112; i = i + (1)) { servo_goto_angle(6, i); delay(10); } for (int i = 112; i >= 1; i = i + (-1)) { servo_goto_angle(6, i); delay(10); } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygpsg.html