Python 控制舵机

2023-11-03

原理:

  • UNO R3中写入控制舵机转动度数的程序,该程序一直检测:serial是否又数据,有则操作舵机。
  • python程序负责向 serial 写入数据,并可以通过serial读取 舵机角度的信息。

1、硬件连接

说明:示例中的信号线接的是10号引脚。

 2、通过usb数据线,上传控制舵机的程序到UNR R3

说明:这里的舵机引脚 是10 

/*
  舵机的控制
*/

//导入舵机的库
#include <Servo.h>

Servo servo_pin_1;

int state=0; //初始状态
int t=10; //延时毫秒
void setup()
{
  Serial.begin(9600);//这个一定要设置为9600 否则乱码  python也要保证一致
  servo_pin_1.attach(10);//使用第10号引脚为信号输出
}

void loop()
{
  while(!Serial)//检测是否有串口接通
  {} 
  if(Serial.available()>0) //判断是否具有输入
  {
    state=Serial.parseInt(); //接收数据
    servo_pin_1.write( state ); //定义舵机的转动角度
    delay( 30 );//延时1000毫秒
    Serial.print(state);
  }
}

 

3、执行python程序 

# -*- coding: utf-8 -*-
"""
Created on Sat Feb  6 16:44:35 2021

@author: Admin
"""

"""
    python:tkinter控制舵机的角度

"""
# 导入模块
import serial
import tkinter as tk
import time

# 建立串口连接
ser = serial.Serial('COM5', 9600, timeout=0.5)


# 创建一个按钮的窗体
class ButtonsApp(tk.Tk):
    def __init__(self):
        super().__init__()
        # 开灯按钮 resolution=50 表示步长为50
        self.scale = tk.Scale(self, from_=0,
                              tickinterval=30,
                              resolution=30,
                              to=180, length=800,
                              width=50,  orien=tk.HORIZONTAL,
                              cursor="hand2",
                              command=self.on)
        self.scale.pack(padx=40, pady=10)

    # 控制函数,特别注意event参数的使用
    def on(self, event):
        val = str(self.scale.get())
        ser.write(val.encode('utf-8'))
        print(val,ser.read())


if __name__ == '__main__':
    app = ButtonsApp()
    app.title('滚动条控制舵机')
    app.mainloop()
    ser.close()

参考博客:python与arduino结合控制舵机_张一根的博客-CSDN博客 

下一步:检测 物体偏移多少度,并让舵机也执行多少度。CSDN

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 控制舵机 的相关文章

随机推荐

  • Python开发工具PyCharm的web开发教程:创建并运行 Python 项目

    在你开始前 要确定以下两点 PyCharm下载 已完成 安装了 Python PyCharm官方正版下载 要开始使用PyCharm 让我们编写一个 Python 脚本 创建一个 Python 项目 1 如果您在欢迎屏幕上 请单击新建项目 如
  • 关于 “定义_sys_exit()以避免使用半主机模式”的问题

    今天编译一个STM32程序的时候 遇到了一个问题 编译通不过 定义 sys exit 以避免使用半主机模式 void sys exit int x x x 输出的错误信息是 SYSTEM usart usart c 41 error 260
  • MySQL第二讲 MySQL主从架构搭建

    主从架构意义 通过搭建MySQL主从集群 可以缓解MySQL的数据存储以及访问的压力 1 数据安全 给主服务增加一个数据备份 基于这个目的 可以搭建主从架构 或者也可以基 于主从架构搭建互主的架构 2 读写分离 对于大部分的JAVA业务系统
  • python创意小作品-全国青少年创意编程与智能设计大赛Python创意编程比赛

    全国青少年创意编程与智能设计大赛Python创意编程比赛 一 作品类型 1 数字艺术 通过程序生成和展示视觉艺术 具备创意 美感和互动性 2 互动游戏 各种竞技类 探险类 角色扮演类 球类 棋牌类游戏等等 3 实用工具 有实用价值 能解决学
  • vscode js文件没有代码提示

    原因是 产生问题的原因可能是关闭了单纯的js文件中的javascript的提示 1 右下角设置 2 在上边输入 javascript suggest enabled 效果图
  • VBA:对Excel单元格进行合并操作

    Sub hb Dim n n 3 For i 3 To 18 If Range b i lt gt Range b i 1 Then Range b n b i Merge n i 1 End If Next End Sub
  • 自动化测试和性能测试的异同

    对于那些刚刚接触软件测试行业的小白来说 都会有这样一种错觉 觉得性能测试和自动化测试是差不多的 但是如果深入了解 会发现这两者的区分还是很大的 接下来我们就来详细了解一下自动化测试和性能测试的异同之处 首先两者都有一个共同点 那就是在处理脚
  • mysql 投影,MySQL —— select

    select语句使用详解 select语句是基础操作中比较复杂的部分 我们单拿出来详细解析一下 还是以上一篇文章里的student表为例 select from student 查询student表中所有记录 create table st
  • Clion 使用自己编写的 Makefile编译

    Clion 目前支持使用 cmake 来编译代码 如果习惯了自己写 makefile 那么还需要通过 cmake 的 add custom target 来调用make 命令来实现编译了 参考了http stackoverflow com
  • LoadRunner参数化详解

    LoadRunner参数化详解 距离上次使用loadrunner 已经有一年多的时间了 初做测试时在项目中用过 后面项目中用不到 自己把重点放在了工具之外的东西上 认为性能测试不仅仅是会用工具 最近又想有一把好的利器毕竟可以帮助自己更好的完
  • 明天全国哀悼日,小程序只需三行代码秒变黑白

    明天全国哀悼日 小程序只需三行代码秒变黑白 打开你的 app wxss 文件 在第一行加上 page filter grayscale 100
  • postgresql Insert插入的几个报错

    postgresql Insert插入的几个报错 1 org postgresql util PSQLException 未设定参数值 2 的内容 2 postgresql column reference is ambigious 参考
  • GD32的ADC模块简介

    ADC模块简介 驱动板所使用的主控芯片为GD32C103CB 该芯片总共有2个ADC单元 即ADC0 ADC1 因为驱动板上使用的是LQFP48封装 所以该芯片的每个ADC单元只有10个外部模拟输入通道 并且共用相同的GPIO口 这10个外
  • 第1关:用Bison构建逆波兰计算器

    任务描述 相信大家通过flex的实验已经掌握了如何构建一个词法分析器 但是为了创建一个完整的编译程序 我们还需要一个语法分析器 同样的 我们可以使用现有的工具来节省开发的时间 也就是Unix下的YACC和GNU Linux下的Bison 相
  • AV1:为互联网提供开放、免费的视频编解码工具

    从学术研究到进入工业界 Zoe Liu一直在算法和音视频领域 目前在谷歌编解码团队为编解码器AV1做开发支持 Zoe畅谈了评定编解码器的标准 以及AV1的最新进度 本文是 下一代编码器 系列采访之一 欢迎自荐或推荐技术人加入 下一代编码器
  • 《我的眼睛--图灵识别》第九章:训练:制作识别字库

    我的眼睛 图灵识别 第九章 训练 制作识别字库 为什么要做字库 做字库就好比我们要上学念书一样 学习储备知识 这样才能认识文字不是吗 好好学习 1 像素点阵 什么是点阵 对于一个屏幕显示屏来说 就是利用无数个点组成的矩形平面 通过设置每个点
  • vue项目 Network: unavailable的解决办法

    vue项目 Network unavailable 问题 问题描述 使用vue3 0 的版本 在自己电脑上开发项目 启用项目后 只能用localhost访问项目 十分不便 不能使用手机浏览器或其他人访问 如下图所示 解决方案 在devSer
  • The reference to entity "useSSL" must end with the ';' delimiter.

    在搭建测试环境的hive的时候 发现启动的时候 经常报以下警告信息 Thu May 14 09 52 26 CST 2020 WARN Establishing SSL connection without server s identit
  • 51单片机ROM和RAM

    文章目录 TOC 文章目录 一 51单片机的程序存储器结构 1 内部结构 2 程序存储器的7个特殊地址 二 51单片机的数据存储器 1 片内数据存储器 2 片外数据存储器 提示 以下是本篇文章正文内容 下面案例可供参考 一 51单片机的程序
  • Python 控制舵机

    原理 UNO R3中写入控制舵机转动度数的程序 该程序一直检测 serial是否又数据 有则操作舵机 python程序负责向 serial 写入数据 并可以通过serial读取 舵机角度的信息 1 硬件连接 说明 示例中的信号线接的是10号