Esp8266

引脚

TX连 UART-RX
RX连 UART-TX
GPIO0
GPIO1
EN/CH_PD使能 3v3
RST/
VCC3.3

VCC 可以连 5V,避免供电不足模块一直掉电重启。

CH_PD 可以连接高电平使能。

AT 指令

在使用 USB 转 TTL 模块与电脑连接之后,就可以使用串口调试助手进行 WIFI 模块的调试了。首先有一点,AT 指令不区分大小写,均以回车、换行结尾。下面介绍常用的 AT 指令:

常用 AT 指令

指令名响应含义
ATOK测试指令
AT+CWMODE=OK设置应用模式(需重启生效)
AT+CWMODE? +CWMODE:获得当前应用模式
AT+CWLAP:,,返回目前的 AP 列表
AT+CWJAP=,,OK加入某一 AP
AT+CWJAP?+CWJAP:返回当前加入的 AP
AT+CWQAPOK退出当前加入的 AP
AT+CIPSTART=,, OK 建立 TCP/UDP 连接
AT+CIPMUX= OK 是否启用多连接
AT+CIPSEND= OK 发送数据
AT+CIPMODE= OK 是否进入透传模式

2、什么是透传模式?

透传就是指不需要关心 wifi 协议是如何实现的。所需要做的就是 A 通过串口发数据,B 通过串口收数据,整个过程中 A 串口和 B 串口就像是用导线直接连接起来了一样。则对于开发人员来看,就是完全透明的。

模式

ESP8266 三种工作模式

ESP8266 模块支持 STA/AP/STA+AP 三种工作模式。

¨ STA 模式:ESP8266 模块通过路由器连接互联网,手机或电脑通过互联网实现对设备的远程控制。

¨ AP 模式:ESP8266 模块作为热点,实现手机或电脑直接与模块通信,实现局域网无线控制。

¨ STA+AP 模式:两种模式的共存模式,即可以通过互联网控制可实现无缝切换,方便操作。

进一步的说

STA 模式 <电脑——路由器——模块>

也就是路由器为中介实现电脑和模块之间的通信。

STA 模式下,模块也可以作为 TCP 服务器(Server)、TCP 客户端(Client)、UDP 三种模式。

透传模式

透传就是指不需要关心 wifi 协议是如何实现的。所需要做的就是 A 通过串口发数据,B 通过串口收数据,整个过程中 A 串口和 B 串口就像是用导线直接连接起来了一样。则对于开发人员来看,就是完全透明的。

//如果不开启透传,每次发送之前需要
AT+CIPSEND=X
    OK
    >XXX
//开启透传,只需要发送一次,就可以一直发送数据
//退出,"+++"
    
    //透传只能在单连接模式下进行,所以在建立连接之前一定要用(AT+CIPMUX=0 设置单连接)

网络使用

1.可以不加外设,通过两个网络助手,一个 server,一个 client,同一个 IP、端口,相互连接

netstat –ano 查看使用的端口

6)模块连接到 server

AT+CIPSTART=”TCP”,”192.168.1.115”,8080 //输入你自己的 IP 和端口号

响应:CONNECT

错误原因:1 防火墙;2 不是同一 wifi;

7)开启透传模式

AT+CIPMODE=1

响应:OK

8)开始透传

AT+CIPSEND

响应:OK

9)退出透传

+++(注意此时取消勾选“发送新行”选项)

发送完之后,没有任何显示,此时再次勾选“发送新行”选项,发送 AT,则返回 OK。

AT+RST
AT+CWMODE=1;2;3
1.客户端STATION
2.接入点AP
3.混合
 
AT+CWJAP="信号名","密码"
//测试客户端模式,连接路由器
AT+CIFSR
//查看模块的IP地址
//电脑上建立TCP服务器,
AT+CIPSTART="TCP","XXX.XXX.X.XXX",XXXX
 
AT+CIPSEND=X//发送字节数量
xxxx
 

Wifi 的一般使用

//ESP8266连接当前环境的热点,与服务器建立TCP连接,传输数据。
AT+CWMODE=1:设置工作模式(STA模式)
AT+RST:模块重启(生效工作模式)
AT+CWJAP="111","11111111":连接当前环境的WIFI热点(热点名,密码)
AT+CIPMUX=0:设置单路连接模式
    //注:下面的操作是以电脑作为服务器,即通过串口调试助手发送数据,电脑通过网络调试助手接收数据。(关闭防火墙,一定要关闭防火墙)电脑和模块连接的是同一个路由器。
	//在电脑上使用一个网络调试助手,创建一个server,(本地IP即你电脑的IP地址)
AT+CIPSTART="TCP","192.168.137.1",9999:建立TCP连接
AT+CIPMODE=1:开启透传模式
AT+CIPSEND:透传模式下,传输数据
+++:退出透传模式
 
 
//STA:通过路由器连接,远程控制
 1. AT+CWMODE=1                   设置模组为STA模式。(串口助手)
 2. AT+CWLAP                 	  查询附近 WIFI(串口助手)
 3. AT+CWJAP="123456","123456789"  连接 WIFI(串口助手)
 4. AT+CIFSR                      查看路由器分配给模组的IP地址,例如 192.168.43.104(串口助手)
 5. AT+CIPMUX=1                   打开多连接(串口助手)
 6. AT+CIPSERVER=1,8899           设置模块服务器端口(串口助手).
 7. 打开网络调试助手进行设置:请打开电脑去连接路由器的WIFI热点。并且打开网络调试助手,在网络调试助手上输入连接模块的 IP和设置的端口。
 8. AT+CIPSEND=0,11               进入数据发送模式为11个字节
 
    
//AP:模块作热点,局域网无线
 1.  AT+CWMODE=2        开启 AP 模式(串口助手)
  AT+RST
 2.  AT+CWSAP="ESP8266","12345678",4,3  设置模块的 wifi 和密码(串口助手)
    AT+CWLIF:查看已接入设备的IP
    AT+CIFSR:(AP模式无效)查看本模块IP
    AT+CWMODE?
 3.  AT+CIPSERVER=1,8800          设置模块服务器端口(串口助手),
 4.  打开电脑去连接模块建立的AP热点
      AT+CIPMUX=0
			AT+CIPMODE=1
 5.  打开网络调试助手,输入连接模块的 ip 和设置的端口。
 6.  AT+CIPSEND=0,11               进入数据发送模式为11个字节(串口助手)

Problem

串口打不开

有的串口可能是老的产品,在设备管理器,端口更新驱动为旧版本。

AT+CIOBAUD=115200,8,1,0,0?

AD8232

AD8232:sigle-lead, heart rate monitor front end

pin list

pindescription
+IN2 +IN Instrumentation Amplifier Positive Input. +IN is typically connected to the left arm (LA) electrode. 3 −IN Instrumentation Amplifier Negative Input. −IN is typically connected to the right arm (RA) electrode.
-INInstrumentation Amplifier Negative Input. −IN is typically connected to the right arm (RA) electrode.
RLDRight Leg Drive Output. Connect the driven electrode (typically, right leg) to the RLD pin.
LOD−Leads Off Comparator Output. In dc leads off detection mode, LOD− is high when the electrode to −IN is disconnected, and it is low when connected. In ac leads off detection mode, LOD− is always low. 12
LOD+Leads Off Comparator Output. In dc leads off detection mode, LOD+ is high when the +IN electrode is disconnected, and it is low when connected. In ac leads off detection mode, LOD+ is high when either the −IN or +IN electrode is disconnected, and it is low when both electrodes are connected
SDNShutdown Control Input. Drive SDN low to enter the low power shutdown mode
signal_outIA/OUT/OPAMP,

ALINX Dual ov5640_ddr_hdmi

VIDEO_1280_720

OV5640:?

  • II2_config + lut sys_clk

    datasheet 配置寄存器;IIC 时序

  • cmos_8_16bit_m0 pclk

    @ila cmos_h

​ input href/(行同步) , concat data(rgb 565), output data & data_en

数据格式和输出对应

  • cmos_write_req_gen pclk

    @ila ch0_write

input vsync(列同步), output write_req, update index of w&r

​ coms_vsync - rising2en write_req

​ write_index = read_index + 1

产生写一帧的触发信号

  • frame_wrtie_read pclk & mem_clk & video_clk
parameter MEM_DATA_BITS          = 64,
parameter READ_DATA_BITS         = 16,
parameter WRITE_DATA_BITS        = 16,
parameter ADDR_BITS              = 25,
parameter BUSRT_BITS             = 10,
parameter BURST_SIZE             = 64
 
.write_addr_0	(25'd0),
.write_addr_1	(25'd2073600),
.write_addr_2	(25'd4147200),
.write_addr_3	(25'd6220800),
.write_len	(25'd196608),
 
.read_addr_0	(25'd8294400), //The first frame address is 0
.read_addr_1	(25'd10368000), //The second frame address is 25'd2073600 ,large enough address space for one frame of video
.read_addr_2	(25'd12441600),
.read_addr_3	(25'd14515200),
.read_len	(25'd196608),	//frame size  1024 * 768 * 16 / 64
  1. camera ddr

dc/std fifo - write width 16 bits, depth 512; read width 64

fifo 的作用:不同时钟域之间的数据缓存 (mem_clk, coms_clk);匹配两侧短时数据率的差异 (pclk,行列同步时序 -axi4_full 高速高吞吐传输)

frame_write mem_clk

(内部有信号的缓存)

write_req 发出 burst 写 DDR 信号

一次 burst 写 64 个数 (64) 位,一行 160 个数(64)

分状态,

wr_burst_data_req 为 64 周期,说明写了 64 个

frame_read mem_clk

  1. ddr video

dc/std fifo - write width 64bits, depth 128; read width 16

  • mem_arbi

总线上有多个模块同时读写:两个摄像头分别的帧写,显示读出

依次 check,分配总线。

空会等待;同时占用会仲裁

正点原子 Ov7725

感光阵列 640*480,最快 60fps。感光阵列在 XCLK 驱动采样,模拟信号处理器在时序发生器控制下对数据处理,分为 RGB 转换,最后输出 10 位视频流。

SCCB 配置:三线、第九位不关心。配置参考 application notes。

输入时钟频率 10M-48Mhz,SIO_C 时钟频率最大 400Khz,配置复位等待 1ms,每次配置后 300ms(10 帧)稳定输出。输出多种分辨率和数据格式。

pin:

均为 LVCMOS33 电平

信号说明
pclk数据像素时钟
vsync
href
rst_n
sgm_ctrl摄像头时钟:低,外部时钟;高,内部时钟
data只引出
scl\sda
create_clock -period 20.000 -name pclk[get_ports pclk]

此次 cam_pclk 为 48Mhz,20.8ns

摄像头输入时钟 12Mhz,输出根据计算:12*8 倍频/2,为 24Mhz,帧率 30hz

  • i2c_ov7725_rgb565_cfg.v:640*480,

RBGLCD/HDMI

分辨率:1080p-1920*1080

像素格式:RGB888,RGB565

pin:rgb/de/vsync/hsync/pclk

时间参数:通过行、帧同步,两边需要反应时间。

屏幕参数:HSPW+HBP+HOZVAL+HFP;VSPW+VBP+LINE+VFP

DE 模式时 DE 为有效信号,VS/HS 为高电平;HV 模式为 VGA 时序。

像素时钟:根据时间参数计算,60 帧需要 50.2MHz

HDMI,向下兼容 DVI

物理层使用 TMDS(最小化传输差分信号)。

  • RBG2DVI.v

需要两个时钟,参考 XAPP460。

机械臂

电路组成

TBS2701 舵机、ZP15S 舵机,ZP15s 爪子舵机(ZX 转 PWM)、32 主控,蓝牙 4.0,PS2 手柄接收,3A 适配器。

Jibot1舵机安装型号位置图示

KPZ32引脚分布图

KPZ32 控制器

包含 UART 接口,手柄、总线、舵机、传感器、电源

PWM0-5 PB3/8/9/6/7/4

常规指令操作;

舵机

TBS2701*5:

规格

工作频率:50-330Hz

操作角度:270°(500-2500 usec)

虚位:3usec

方向:逆时针

脉冲宽度范围:500-2500usec

可转动角度:360°

DS5160

电机、伺服驱动、PWM

PWM 舵机的伺服系统由可变宽度的脉冲来进行控制,控制线是用来传送脉冲的。一般而言,舵机的基准信号都是周期为 20ms,占空比有限范围 0.5-2.5ms。1.5ms 这个基准信号定义为中位信号,当脉宽给 1.5ms 时对 270° 舵机来说就是控制其处于 135° 的位置。舵机一般都有最大转动角度和最小转动角度,中间位置的定义就是从最大角度到最小角度的中间位置。重要的一点是,不同舵机的最大转动角度可能不相同,但是其中间位置的脉冲宽度是一定的,那就是 1.5ms。

RDS516

PWM

19.91ms,50Hz,占空 18.41ms,92.5%

教程

清单包含诸多部件,

机械臂标注图

逆运动学解

需要更高效的方法满足实时运算

# 逆运动学调用指令
$KMS:x,y,z,time!  x/y/z:空间三维坐标
                           time:从当前位置运动到目标位置的时间