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

MeArm机械臂(Arduino)

打算搞点小项目,于是打算拿MeArm机械臂入手,主要就是舵机控制机械运动

于是先试验了舵机的功能,由以下代码实现:

#include <Servo.h>

//Servo myservo;

Servo base,fArm,rArm,claw;

int pos = 0;

//二维数组

int data[4][5]=

{

0,45,90,135,180,

45,90,135,180,0,

90,135,180,0,45,

135,180,0,45,90,

};

//一维数组

int infor[5]={0,45,90,135,180};

void setup()

{

base.attach(6);

fArm.attach(9);

rArm.attach(10);

claw.attach(11);

Serial.begin(9600);

Serial.println("send a datd");

}

//控制四个舵机向相同角度运动

/*

void loop()

{

for(int i = 0;i<5;i++)

{

base.write(infor[i]);

delay(15);

fArm.write(infor[i]);

delay(15);

rArm.write(infor[i]);

delay(15);

claw.write(infor[i]);

delay(15);

}

for(int i = 4;i>=0;i--)

{

base.write(infor[i]);

delay(15);

fArm.write(infor[i]);

delay(15);

rArm.write(infor[i]);

delay(15);

claw.write(infor[i]);

delay(15);

}

}

*/

//控制四个舵机自动向不同的角度运动

/*void loop()

{

for(int i = 0;i<5;i++)

{

base.write(data[0][i]);

delay(15);

fArm.write(data[0][i]);

delay(15);

rArm.write(data[0][i]);

delay(15);

claw.write(data[0][i]);

delay(15);

}

for(int i = 4;i>=0;i--)

{

base.write(data[0][i]);

delay(15);

fArm.write(data[0][i]);

delay(15);

rArm.write(data[0][i]);

delay(15);

claw.write(data[0][i]);

delay(15);

}

}*/

//分别控制四个舵机各角度运动

/*void loop()

{

if(Serial.available())

{

char name=Serial.read();

Serial.print("Name:");

Serial.print(name);

Serial.print(',');

pos=Serial.parseInt();

switch(name)

{

case'b':

base.write(pos);

Serial.print("data:");

Serial.println(pos);

delay(15);

break;

case'f':

fArm.write(pos);

Serial.print("data:");

Serial.println(pos);

delay(15);

break;

case'r':

rArm.write(pos);

Serial.print("data:");

Serial.println(pos);

delay(15);

break;

case'c':

claw.write(pos);

Serial.print("data:");

Serial.println(pos);

delay(15);

break;

}

}

}*/

//四个舵机自动

/*

void loop()

{

for(pos=0;pos<=180;pos++)

{

base.write(pos);

delay(10);

fArm.write(pos);

delay(10);

rArm.write(pos);

delay(10);

claw.write(pos);

delay(100);

}

for(pos=180;pos>=0;pos--)

{

base.write(pos);

delay(10);

fArm.write(pos);

delay(10);

rArm.write(pos);

delay(10);

claw.write(pos);

delay(100);

}

}*/

//四个舵机同时驱动

/*void loop()

{

if(Serial.available())

{

pos=Serial.parseInt();

Serial.print("Received:");

Serial.println(pos);

if(pos>=0&&pos<=180)

{

base.write(pos);

delay(10);

fArm.write(pos);

delay(10);

rArm.write(pos);

delay(10);

claw.write(pos);

delay(100);

}

}

}*/

//单个舵机驱动

/*void setup() {

myservo.attach(9);

Serial.begin(9600);

Serial.println("Ready. Send a number (0-180)");

}

void loop() {

if (Serial.available()) {

pos = Serial.parseInt();

// 打印接收到的值,看是否为0

Serial.print("Received: ");

Serial.println(pos);

// 只处理有效范围内的值

if (pos >= 0 && pos <= 180) {

myservo.write(pos);

delay(15);

}

}

}

*/

http://www.jsqmd.com/news/605648/

相关文章:

  • OpenClaw硬件要求解析:千问3.5-27B在不同配置电脑的运行表现
  • so-vits-svc的使用声音克隆
  • OpenClaw配置优化指南:提升Qwen2.5-VL-7B图文任务执行效率30%
  • 如何为LSTM时间序列预测项目编写单元测试:终极完整指南
  • 如何快速启用Go-RESTful的Gzip和Deflate压缩:终极配置指南
  • Harmony-Music设置优化:动态主题、均衡器和睡眠定时器配置
  • 别再傻傻分不清了!IM和RTC到底差在哪?从微信聊天到视频会议的技术选择
  • BC7215红外编解码芯片:协议无关的物理层信号处理方案
  • 2023终极指南:OctoSQL vs DataFusion vs q三大SQL查询引擎性能深度对比与选择攻略
  • Windows自动化安装终极指南:UnattendedWinstall与其他工具全面对比
  • OpenClaw成本优化:Kimi-VL-A3B-Thinking自部署与API调用对比
  • Markdown转PDF常见坑点排查:VSCode+Prince字体乱码/缩进异常解决指南
  • pix2pix-tensorflow超参数调优终极指南:学习率与损失权重优化技巧
  • OpenClaw多模型切换:Qwen3-32B与本地小模型的任务分配策略
  • 抗辐照MCU芯片在激光雷达领域的适配性分析
  • 10分钟快速部署ThreatMapper:云原生安全监控的终极指南
  • Kubernetes 集群优化实战:面向 30+ 集群、万级 Pod 与高并发场景的生产级架构升级指南
  • OpenClaw环境隔离:千问3.5-9B沙盒部署的安全实践
  • 《用 AI 赋能医药研究实战》目录(持续更新)
  • 图解Linux DRM框架:手把手带你理解plane结构体与API(以4.14内核为例)
  • 单片机开发:C语言与汇编的实战选择指南
  • 从BOM到MES:制造业核心系统全解析,新手也能看懂
  • 从零到一:手把手教你用ADCIRC+SWAN模拟风暴潮与海浪耦合(附完整输入文件配置)
  • Cerberus邮件可访问性终极指南:如何使用role属性优化屏幕阅读器体验
  • 如何快速掌握Postgres Language Server的PL/pgSQL支持:存储过程开发的终极指南
  • OpenClaw会议纪要助手:Qwen3-14b_int4_awq实时转录与要点总结
  • 2026金华市区固定矫正全解析:适配人群与技术管理要点 - 优质品牌商家
  • 如何用OHHTTPStubs彻底改变iOS网络测试:从入门到精通的完整指南
  • Polr数据可视化终极指南:用图表洞察短链接点击趋势的完整教程
  • CGM远程监控故障排除终极指南:10个常见问题与解决方案