【研究开源机器臂】(2):在Linux 上面使用便宜的3d打印机芯片 ESP32,成功上传数据,并可以控制led2灯进行闪烁,价格18.8元,选择这个主要比8266性能好,4MB闪存

本文主要是介绍【研究开源机器臂】(2):在Linux 上面使用便宜的3d打印机芯片 ESP32,成功上传数据,并可以控制led2灯进行闪烁,价格18.8元,选择这个主要比8266性能好,4MB闪存,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1,这个主控是ESP32 但是超级便宜

Wemos D1 R32 ESP32开发板简介
只有 18.8 元!

https://detail.1688.com/offer/656424665619.html

在这里插入图片描述
然后配合之前的项目:
在这里插入图片描述
在这里插入图片描述

2,有人说是需要重新安装驱动

https://blog.csdn.net/wangmj_hdu/article/details/110528620
下载驱动:
https://www.wch.cn/downloads/CH341PAR_LINUX_ZIP.html

3,我的linux 上不能加载模块:

https://blog.csdn.net/qq_43135204/article/details/118547385
关闭 bios 安全启动
在这里插入图片描述

4,找不到设备,brltty驱动占用问题

https://blog.csdn.net/weixin_49513223/article/details/127068065

sudo dmesg | grep brltty
若果出现[ 7033.078452] usb 1-13: usbfs: interface 0 claimed by ch341 while ‘brltty’ sets config #1 这样的结果,则意味着是驱动占用问题;
运行

sudo apt remove brltty  

5,永久解决ttyUSB0权限问题

https://blog.csdn.net/qq_52102933/article/details/126839474

一般使用USB口,启动时容易出现 /dev/ttyUSB0 permission denied.
因为一般情况下不是root用户,对端口没有权限.

sudo chmod 777 /dev/ttyUSB0

6,然后在arduino上设置 ESP32 设备

在这里插入图片描述

然后就可以编程了,先来个hello world
编译一个Blink程序

#include <dummy.h>/*Wemos D1 ESP32 WiFi蓝牙4MB4闪存UNO R32
一:编译一个Blink程序*/void setup() {// initialize digital pin LED_BUILTIN as an output.Serial.begin(115200);  // 初始化串口通信,波特率为115200pinMode(2, OUTPUT);
}void loop() {digitalWrite(2, HIGH);   // turn the LED on (HIGH is the voltage level)delay(500);                       // wait for a seconddigitalWrite(2, LOW);    // turn the LED off by making the voltage LOWdelay(500);                       // wait for a second
}

运行成功,需要找到主板的说明:

7,还真有使用这个方案的:Wemos D1 R32 ESP32 +Arduino CNC Shield v3

https://zhuanlan.zhihu.com/p/619773089

但是购买的步进电机还没有到呢。
到了就可以供电然后连调下了。

这个讲的超级详细。

http://www.taichi-maker.com/homepage/reference-index/motor-reference-index/arduino-cnc-shield/

然后就是项目,
源代码是:source: http://reprap.org/wiki/RAMPS_1.4
但是,这个项目是改造的机械臂。

8,然后就是把相关的PIN 修改下,就可以进行控制使用了

参考这个文章:
http://www.taichi-maker.com/homepage/reference-index/motor-reference-index/arduino-cnc-shield/#other-pins

以wemos 为坐标,左面的线路和对接图:

Arduino Uno CNC ShieldD1 R32 - ESP32
D14 AbortIO02
D15 HoldIO04
D16 ResumeIO36
D17 CoolEnIO34
D18 SDAIO38
D19 SCLIO39

在这里插入图片描述

以wemos 为坐标,右面的线路和对接图:

Arduino Uno CNC ShieldD1 R32 - ESP32
D0 RXRX0
D1 TXTX0
D2 X-STEPIO26
D3 Y-STEPIO25
D4 Z-STEPIO17
D5 X-DIRIO16
D6 Y-DIRIO27
D7 Z-DIRIO14
D8 ENIO12 拆掉CNC板子上的10K上拉电阻
D9 X-、X+IO13
D10 Y-、Y+IO05
D11 Z-、Z+IO23
D12 A-STEP、SpinEnIO19
D13 A-DIR、SpinDirIO18

在这里插入图片描述

9,然后修改 arduino 配置

#ifndef PINOUT_H_
#define PINOUT_H_/** pinout of RAMPS 1.4** source: http://reprap.org/wiki/RAMPS_1.4*///RAMPS 1.4 PINS
#define X_STEP_PIN         54
#define X_DIR_PIN          55
#define X_ENABLE_PIN       38
#define X_MIN_PIN           3
#define X_MAX_PIN           2#define Y_STEP_PIN         60
#define Y_DIR_PIN          61
#define Y_ENABLE_PIN       56
#define Y_MIN_PIN          14
#define Y_MAX_PIN          15#define Z_STEP_PIN         46
#define Z_DIR_PIN          48
#define Z_ENABLE_PIN       62
#define Z_MIN_PIN          18
#define Z_MAX_PIN          19#define E_STEP_PIN         26
#define E_DIR_PIN          28
#define E_ENABLE_PIN       24#define Q_STEP_PIN         36
#define Q_DIR_PIN          34
#define Q_ENABLE_PIN       30#define SDPOWER            -1
#define SDSS               53
#define LED_PIN            13#define FAN_PIN             9#define PS_ON_PIN          12
#define KILL_PIN           -1#define HEATER_0_PIN       10
#define HEATER_1_PIN        8
#define TEMP_0_PIN         13   // ANALOG NUMBERING
#define TEMP_1_PIN         14   // ANALOG NUMBERING//RAMPS AUX-1
#define STEPPER_GRIPPER_PIN_0 40
#define STEPPER_GRIPPER_PIN_1 59
#define STEPPER_GRIPPER_PIN_2 63
#define STEPPER_GRIPPER_PIN_3 64#endif

好像没有对上,需要根据实际的板子写代码。

这篇关于【研究开源机器臂】(2):在Linux 上面使用便宜的3d打印机芯片 ESP32,成功上传数据,并可以控制led2灯进行闪烁,价格18.8元,选择这个主要比8266性能好,4MB闪存的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/554422

相关文章

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-