Junio de 2017
Esta obra está sujeta a una licencia de
Reconocimiento-NoComercial-CompartirIgual
3.0 España de Creative Commons
FICHA DEL TRABAJO FINAL
i
Abstract (in English, 250 words or less):
ii
Índice
1. Introducción .................................................................................................... 1
1.1 Contexto y justificación del Trabajo ........................................................... 1
1.2 Objetivos del Trabajo................................................................................. 1
1.3 Enfoque y método seguido ........................................................................ 2
1.4 Planificación del Trabajo ........................................................................... 3
1.5 Breve sumario de productos obtenidos ..................................................... 4
1.6 Breve descripción de los otros capítulos de la memoria............................ 4
2. Microcontrolador vs microprocesador ............................................................ 5
3. Robot .............................................................................................................. 7
3.1 Módulo Bluetooth ...................................................................................... 8
3.1.1 Diferentes estándares de Bluetooth .................................................. 9
3.1.2 Otras alternativas inalámbricas ....................................................... 10
3.2 Sensórica ................................................................................................ 10
3.2.1 Sensores integrados en la placa ..................................................... 10
3.2.2 Sensores equipados al robot conectados por RJ25 ........................ 12
3.2.3 Otros tipos de sensores en el mercado .......................................... 15
3.3 Actuadores .............................................................................................. 20
3.3.1 Actuadores integrados en la placa .................................................. 20
3.3.2 Actuadores equipados al robot ....................................................... 20
3.3.3 Otros tipos de actuadores en el mercado ....................................... 21
3.4 Puertos de expansión .............................................................................. 21
3.5 Puerto serie ............................................................................................. 22
4. Entorno de programación ............................................................................. 25
4.1 mBlock..................................................................................................... 25
4.2 Makeblock ............................................................................................... 26
4.3 Arduino .................................................................................................... 28
4.3.1 Código Arduino ............................................................................... 29
5. Obtención y procesamiento de datos ........................................................... 33
6. Valoración económica del trabajo ................................................................ 34
7. Conclusiones ................................................................................................ 35
8. Glosario ........................................................................................................ 36
9. Bibliografía ................................................................................................... 37
10. Anexos ....................................................................................................... 38
iii
Lista de figuras
iv
Lista de ecuaciones
Lista de tablas
v
1. Introducción
1
Implementar una aplicación capaz de controlar sus movimientos
de forma pasiva/preventiva o activa.
2
1.4 Planificación del Trabajo
A continuación se presenta la planificación mediante diagrama de Gantt del Trabajo Fin de Grado:
3
1.5 Breve sumario de productos obtenidos
4
2. Microcontrolador vs microprocesador
Microprocesador Microcontrolador
(Raspberry Pi 3) (Arduino MEGA 2560)
CPU 4× ARM Cortex-A53, 1.2GHz ATmega2560. 16MHz
1GB LPDDR2 (900 MHz) en 8KB en el propio circuito
Memoria RAM
un circuito integrado aparte integrado
Arquitectura 64 bits 8 bits
Velocidad de
Rápida Lenta en comparación
Operación
Propósito Propósito general Propósito más específico
Entradas/Salidas E/S digitales: 54, de las
40 GPIO pins
digitales cuales 15 PWM
Salidas
0 16
analógicas
Broadcom VideoCore IV
Video N/A
HDMI
Sistema Raspberry: Raspbian,
N/A
Operativo Windows CE…
Consumo
Mayor Menor
eléctrico
Coste Mayor Menor
Más susceptibles a la El alto nivel de
interferencia electromagnética integración reduce la
Interferencias
debido a su tamaño y a su interferencia
menor nivel de integración electromagnética
Tabla 1: Microprocesador vs microcontrolador
5
encargados a procesar la cantidad de información de entrada suelen ser
microprocesadores.
6
3. Robot
Según la Real Academia Española (RAE), un robot es una “máquina o
ingenio electrónico programable, capaz de manipular objetos y realizar
operaciones antes reservadas solo a las personas”.
7
Figura 3: Placa ME Auriga [5]
Las características del módulo son válidas para las necesidades del
proyecto. Además Bluetooth es un estándar ampliamente extendido y
compatible con los otros dispositivos que se utilizan (portátil y
smartphone) con lo que facilita la compatibilidad. Alternativas como
Zigbee son descartadas por este motivo.
8
3.1.1 Diferentes estándares de Bluetooth
9
3.1.2 Otras alternativas inalámbricas
3.2 Sensórica
10
Este tipo de componentes puede ser de gran utilidad en un amplio
número de campos en donde se requiera saber el nivel de luz
existente para, por ejemplo, encender o no luminaria. Así, dentro del
concepto de “Smart Cities” este tipo de elementos ayudan a controlar
el apagado o encendido del alumbrado público en función de la luz
ambiente (y otros factores como la presencia de gente), ayudando a
ahorrar energía (lo que supone también ahorro económico) y
mejorando el descanso y bienestar de los vecinos.
11
Figura 4: MPU-6050. Orientación de ejes
12
alta frecuencia no audibles por el oído humano. Su fundamenta en el
tiempo que transcurre desde que se emite hasta que se recibe la
señal, al ser conocida la velocidad del sonido en la atmósfera:
13
Figura 6: Limitaciones en el sensor de ultrasonidos
14
objetos enfrente de él como en los típicos detectores de los
ascensores, o usarse como sensor de posición en encoders rotatorios
[11].
15
Una de las posibles aplicaciones que se le puede dar es la de la
gestión de parques y jardines públicos, haciendo que el regado
sea cuando realmente la tierra lo necesite y durante el tiempo
justo. Cuando el sensor detecte la humedad adecuada de la tierra,
los aspersores dejarán de regar el espacio. Estos sensores
pueden ajustar el riego y así ahorrar un bien tan preciado como el
agua.
Sensor de llama: en determinados escenarios industriales es
factible que determinadas máquinas puedan generar llamas, y por
tanto, son elementos ampliamente usados en la industria como
dispositivos de seguridad haciendo posible detener cualquier
proceso en caso de detectar algún indico de combustión. La
elección del dispositivo en la industria debe determinarse en
función de la seguridad que se requiera, la sensibilidad y fiabilidad
necesaria. Por ello, en entornos industriales se necesitarán
sensores más profesionales que eviten falsas alarmas que puedan
parar procesos (con el coste que eso conlleva) o no detecten
rápidamente el fuego (con el coste y peligro que ello conlleva).
Algunas de las especificaciones a tener en cuenta son (entre
paréntesis valores típicos de en sensores Arduino):
o Banda espectral que detecta (840-1200nm). Se debe
asegurar que se cubren todos los tipos de fuegos que se
pueden causar en el proceso.
o Ángulo de detección (60º).
o Tiempo de respuesta (15μs). Este tiempo de respuesta es
vital en seguridad. Cuanto menor es el tiempo más rápido
se detecta y mejor puede ser la respuesta.
o Temperatura de operación (-25º a 80º y se recomienda no
estar muy cerca de la llama para evitar deterioros). Este
rango de operaciones puede no ser suficiente en industrias
con elevadas temperaturas, como pueden ser fundiciones.
Sensor de gas: de la misma forma que una llama, la detección de
determinados gases puede ser vital para la seguridad en entornos
industriales y domésticos. Existen diferentes sensores de este tipo
que generalmente dan como salida una señal analógica. Su
sensibilidad puede ser modificada en función de las necesidades.
Cada dispositivo puede detectar ciertos tipos de gases. Dentro de
la familia de sensores de gas MQ existen diferentes tipos
dependiendo del gas al que sean sensibles: MQ-2 (metano,
butano, LPG, humo), MQ-3 (alcohol, etanol, humo), MQ-4 (metano,
gas CNG), MQ-5 (gas natural, LPG), MQ-6 (LPG, gas butano),
MQ-7 (monóxido de carbono), MQ-8 (gas hidrogeno), MQ-9
(monóxido de carbono, gases inflamables), MQ131 (ozono),
MQ135 (benceno, alcohol, humo), MQ136 (gas de sulfuro de
hidrógeno), MQ137 (amoniaco), MQ138 (benceno, tolueno,
alcohol, acetona, propano, gas formaldehído, gas hidrógeno),
MQ214 (metano, gas natural), MQ216 (gas natural, gas de
carbón), MQ303A (alcohol, etanol, humo), MQ306A (GLP, gas
butano), MQ307A (monóxido de carbono), MQ309A (monóxido de
carbono, gases inflamables.), MG811 (dióxido de carbono CO 2),
16
AQ-104 (calidad del aire), AQ-2 (gases inflamables, humo), AQ-3
(alcohol, benzina), AQ-7 (monóxido de carbono).
Sensor de movimiento PIR: se trata de un sensor de movimiento
que mide la luz infrarroja radiada por los objetos situados en su
campo de visión.
Todos los seres vivos y la mayoría de máquinas eléctricas o
mecánicas que se mueven desprenden calor, y ese calor se emite
a la atmósfera en forma de radiación infrarroja. La variación en el
tiempo y/o espacio de esa radiación puede ser detectada por los
sensores PIR dando una salida.
Características de estos elementos que se deben tener en cuenta
a la hora de diseñar un sistema dependiendo del uso que se le
quiera dar y el entorno en donde se instalan, y que se podrán
consultar en las especificaciones, son (con valores típicos entre
paréntesis para sensores PIR Arduino):
o Tensión nominal (5V).
o Temperatura de trabajo (-20º a 70º)
o Niveles de tensión de salida (5V – 0V)
o Tiempo de respuesta (2s). Puede que en sistemas más
críticos se deba rebajar este tiempo.
o Ángulo de detección (120º). Si fuera insuficiente se podrían
instalar más sensores para que de esta forma abarquen un
mayor ángulo: instalando dos con un determinado ángulo
haría que se doblase ese ángulo de detección.
o Distancia de detección máxima (6m).
17
Aplicaciones típicas se dan en domótica, haciendo encender luces
al paso de personas.
18
Finales de carrera: en el mundo de la sensórica industrial
tradicional, los finales de carrera son de los elementos más
utilizados históricamente. Son interruptores que operan mediante
accionamiento mecánico. Dan una señal dependiendo de si se
producía contacto físico o no dependiendo la configuración en la
que se diseñasen:
o Normalmente abierto: cuando no se actúa sobre él (posición
de reposo) el circuito está abierto.
o Normalmente cerrado: cuando no se actúa sobre él
(posición de reposo) el circuito está cerrado. Un caso típico
de esta configuración son los paros de emergencia o setas
de seguridad: abren el circuito si son pulsados para que se
detenga todo el proceso con un reset.
Dependiendo de la forma en que sean atacados por el objeto
(puertas, compuertas...), pueden ser de diverso tipo y determinar
presencia, ausencia, posicionamiento del elemento...
19
Quizá no sean elementos con mucha utilidad en un robot Arduino,
pero se veía la necesidad de citar estos elementos tan presentes
en sistemas de automatización.
3.3 Actuadores
20
3.3.3 Otros tipos de actuadores en el mercado
Figura 15: Arduino Mega (izq.) & ME Auriga (der.) pinout [5]
21
Además, a simple vista se puede conocer el uso que se puede dar a
cada puerto según su color, sabiendo así de forma rápida qué dispositivo
se debe conectar en qué puerto. La correspondencia se recoge en la
tabla 3:
22
funciones no se pueden usar también los pines 0 y 1 para conexiones
de entradas y salidas digitales.
23
Figura 17: Conexión Bluetooth con el robot
24
4. Entorno de programación
El fabricante dispone de un entorno de programación (IDE) propietario
llamado mBlock basado en Scratch 2.0 y muy similar al propio Scratch
donde se puede programar con este lenguaje. Además también se da la
posibilidad de seleccionar un modo Arduino.
4.1 mBlock
25
En el código de la figura 19 también se puede comprobar que las
mediciones se han guardado en una lista donde se puede comprobar, de
ser necesario, el registro de mediciones.
4.2 Makeblock
26
Los diferentes tipos de bloques (visualizadores, paletas de printado,
interruptores, pulsadores…) se pueden eliminar o incluir en el programa
de forma muy intuitiva desde una paleta que está habilitada para ello.
Para cada objeto asociado a un puerto, se puede seleccionar de forma
muy visual en cuál se está conectado (en esta imagen el puerto 10):
27
Se describen las opciones que hay en cada elemento de la barra:
Begin: Se indica cuándo se ejecuta el código: Al empezar, cuando
se presione una tecla, cuando se deslice la barra…
Move: Acciones asociadas al movimiento del robot propio de la
placa: avanzar, girar, parar… Con la velocidad a la que se
indique. También es posible actuar sobre motores en otros
puertos.
Display: Ejecuta acciones sobre actuadores visuales o acústicos
de los que se tendrá que definir el puerto en el que están y el
valor que se les quiere dar.
Event: Eventos que pueden generar acciones: se agita el
Smartphone, el Smartphone se inclina hacia algún lado, se
detecta un evento del tipo indicado en el puerto indicado, se
activa interruptor o botón indicado en el proyecto en curso…
Detect: Captura el valor de algún sensor del tipo que se le indique
en el puerto que se le indique o el valor indicado en algún objeto
que se haya incluido en el proyecto.
Math: Operaciones matemáticas:
o Sumas, restas, multiplicaciones…
o Igual a, diferente, mayor, mayor igual…
o AND, OR.
o Negar
o Números aleatorios
o Redondear
o Manipulación de elementos: añadir, establecer…
o Operaciones trigonométricas
o …
Controls: Controles de flujo:
o Condicionales: if, if else…
o Bucles infinitos, bucles de repetición de X veces, repetir
hasta, for…
o Delays
4.3 Arduino
28
Además Github es un repositorio para el control de versiones con
lo que periódicamente se cuelgan nuevas revisiones con mejoras
o correcciones de bugs.
2. Copiar la carpeta “makeblock” a la ruta de librerías de Arduino. De
esta forma la carpeta de librerías de Arduino debe tener la
siguiente forma en Windows:
[directorio de instalación de Arduino]\libraries\makeblock\src
3. Abrir el IDE Arduino.
4. Incluir la librería correspondiente a la placa que se vaya a utilizar
en la parte superior del código. En nuestro proyecto se deberá
incluir #include <MeAuriga.h>
#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>
//Encoder Motor
MeEncoderOnBoard Encoder_1(SLOT1);
MeEncoderOnBoard Encoder_2(SLOT2);
29
void isr_process_encoder1(void)
{
if(digitalRead(Encoder_1.getPortB()) == 0){
Encoder_1.pulsePosMinus();
}else{
Encoder_1.pulsePosPlus();
}
}
void isr_process_encoder2(void)
{
if(digitalRead(Encoder_2.getPortB()) == 0){
Encoder_2.pulsePosMinus();
}else{
Encoder_2.pulsePosPlus();
}
}
30
{
Encoder_1.move(-degrees,(float)speed_temp);
Encoder_2.move(-degrees,(float)speed_temp);
}
else if(direction == 4)
{
Encoder_1.move(degrees,(float)speed_temp);
Encoder_2.move(degrees,(float)speed_temp);
}
}
void sensor_ultrasonidos()
{
if((ultrasonic_10.distanceCm()) > (50)){
move(1,100);
}else{
if((ultrasonic_10.distanceCm()) < (20)){
if(((random(1,(2)+1))==(1))){
move(4,50);
}else{
move(3,50);
}
}else{
move(2,50);
buzzer.tone(262, 500);
delay(20);
}
}
}
void sensur_luz()
{
rgbled_0.setColor(0,0,0,0);
rgbled_0.show();
_delay(0.1);
if((lightsensor_12.read()) < (300)){
rgbled_0.setColor(0,255,255,255);
rgbled_0.show();
_delay(1);
}else{
if((lightsensor_12.read()) < (500)){
rgbled_0.setColor(0,0,255,0);
rgbled_0.show();
_delay(1);
}else{
31
rgbled_0.setColor(0,20,0,0);
rgbled_0.show();
_delay(1);
}
}
void setup(){
attachInterrupt(Encoder_1.getIntNum(), isr_process_encoder1,
RISING);
attachInterrupt(Encoder_2.getIntNum(), isr_process_encoder2,
RISING);
buzzer.setpin(45);
rgbled_0.setpin(44);
//Set Pwm 8KHz
TCCR1A = _BV(WGM10);
TCCR1B = _BV(CS11) | _BV(WGM12);
TCCR2A = _BV(WGM21) | _BV(WGM20);
TCCR2B = _BV(CS21);
BT.begin(9600);
Serial.begin(9600);
void loop(){
sensur_luz();
sensor_ultrasonidos();
Serial.print("Distance : ");
Serial.print(ultrasonic_10.distanceCm() );
Serial.println(" cm");
delay(100); /* the minimal measure interval is 100
milliseconds */
_loop();
}
void _loop(){
Encoder_1.loop();
Encoder_2.loop();
}
32
5. Obtención y procesamiento de datos
Los datos que se envían desde el Arduino pueden ser recogidos a través
de un software de escaneo y captura de datos como RealTerm. Este
programa permite leer los datos del puerto serie y capturarlos
almacenándolos en un archivo.
33
Figura 25: Software de trazado y visualización de datos Kst
Producto PVP
Robot Makeblock Ranger 169 €
Pilas AA (pack de 6) 4,95 €
IDE mBlock 0€
IDE Arduino 0€
PVP TOTAL 173.95€
Tabla 4: Presupuesto del Proyecto
34
7. Conclusiones
Por otra parte, con este proyecto se han conseguido de una manera o de
otra los objetivos inicialmente marcados. En lugar de haberse
implementado un código que englobase todas las funciones y depurarlo
hasta dar con un programa a la medida, se ha optado por explorar más a
fondo cada una de las alternativas que se disponían. En internet hay
infinidad de código que se puede aprovechar para la aplicación concreta
con la que se vaya a trabajar, por ello se ha decidido por conocer mejor
las herramientas que se disponen para poder aprovechar la plataforma.
Las líneas que se abren son muchas y en muchas de las ocasiones solo
falta la idea de qué es lo que se pretende obtener, ya que las
herramientas y el conocimiento en el mundo maker están al alcance de
toda la comunidad.
35
8. Glosario
36
9. Bibliografía
37
10. Anexos
38
1 2 3 4 5 6 7 8
COD0
D0
COC40
C4+
COR0
R0 100nF
GND 1
80C78
PIC7COC78 01
9C79
PIC7COC79 PIR002 PIR001
PID001 PID002 GND PIC4001 PIC4002
COJP1
JP1
V-BAT PID801 AOD4185
COQ2
Q2 20k
COF1 LED_RED
F1 1
COU50
U5+
PIU5001 BOOT PH PIU5008
8
COL3
PIL301
L3 6.8uH 5V
PIL302
2
PIC78010uF 02
PIC7910uF COD8 COC11
PIJP101
PIJP102
1
2
D8
PID802
1N4148 501
PIC7C75
COC75
3
PIQ203
PIR1902COR19
4
PIQ204
PID0501 PID0502
PIF102 1.5A
PIF101
PIC2801
2
PIU5002
3
PIU5003 EN
VIN GND PIU5007
7
6
COMP PIU5006COC280PIC280 1 COC290 P I C 2 9 0 1 COD10
PID10 2
C11
470uF/16V
PIC1 01 PIC1301
PID702 COD7
D7
3
PIJP103 R19 SS34 COD05
D05 4
PIU5004 SS 5 C28+ C29+ D10
502
PIC71uF COC28PIC2802
C28 COC2
C2 PIC201 VSENSE PIU5005 COC13
10K
PIQ201 加二极管防反向 SS34
PID10 PID701
C13
470uF/16V
COD5
D5 PIR1901 COC31
C31PIC3102 TPS54331 120pF PIC280 2 68pF
PIC290 2 PIC1 02 PIC1302 100nF
PIS201 NLKEY
KEY PID502
PIS202PID501 加电容 PIR40 2 COC80 10nFPIC202 PIR2501 SMAJ5.0A
PIR4 02 C80
PIC8001 PIC8002 GND 100nFPIC3101 COR25
COS2
S2 COR40
R40 10uF COR17
R17 COR35 5V 29.4k
R35
R25
PID1702 1N4148 COR44
R44
30K
PIR40 1 1K COF02
F02
PIR1702 PIR1701
PIR3502
1.91k
PIR3501
10k
PIR2502
GND
PIR4602 PIR4 01
A
PIQ403 PID0601 PID0602PIF0202 3.5A
PIF0201 V-M A
3
COD17PID170
COR46
SMAJ13A
R46 GND
D17
A4/VOL_BAT
PIR4601
5.1M
PIQ503
PIQ401 1 COQ4
Q4
S9013
SS54 COD06
D06
3
PIC4801 PIC4802
COQ5
Q5
PIQ402
2
PIQ501 1 S9013 PIC7601 PIR03 02 COR58
R58
1uF
COR59
R59
COR030
R030 COF2 0.5A COQ6
Q6 CJ3401 5V
PIR5801 PIR5802
PIR5901 PIR5902 GND F2
PIQ502 10uFPIC7602 C76
COC76 10K 100k 51k VBUS 3 2
2
PIF202 PIF201PIQ603 PIQ602
PIR4702 PIR03 01 COC37PIC3702
C37 COC38PIC3802
C38 PIR4802
COC35
C35PIC3501 COR48
COR47
R47 加电容 R48
100nF
PIC3701 PIC3801
PIQ601
10uF
20k
PIR4701 1.1M COR49
R49
1
10uFPIC3502 PIR4902 PIR4901
PIR4801
5.1k PIC3902 PIR50 1
COC39
C39 COR50
R50
GND 20K COD19
D19
此部分为下面 RGB_SCREEN的位号说明 1uFPIC3901 PIR50 2
COPRGB
PRGB PID1902 PID1901
LED_RED
在导出 BOM中有体现 PIPRGB01 1
PIPRGB02 2 GND
PIPRGB03
3
COPG1
PG1
4 COPG2
PG2 PIPRGB04
PIPRGB05 5
PIPG101 1 PIPG201 1
PIPG102 PIPG202
PIPRGB06 6
2 2 PIPRGB07
7
Female_Header Female_Header COR1
R1
板载传感器和蜂鸣器 5V CORGB1RGB1
Female_Header 7
GND 510K
PIR101 PIR102
5V Vout=Vp+(Vp-Vin)R1/R2 PIU108 5V
8
5V
1
PIRGB101 D5V 11
GND PIRGB1011 COMK1
MK1 PIU108
8
NCP18XH103F03RB 0603 1%
2 10 100nF 6
5V GND PIRGB102 GND GND PIRGB1010 PIMK102
COC1 COR2
R2 10k PIU106
NLA10SOUND
D44/RGB PIRGB103
3 C1 PIC101
Vin 2 7 A1/SOUND
PID20 COD2
COLS1
LS1
BUZZER
PIR1202 A3/LIGHT1PIRGB104
4
A2/LIGHT2PIRGB105
5
RGB
LIGHT1 MIC
PIMK101
PIR502
COR5
R5
PIC102 PIR201 PIR202 PIU102
V+ 3
1
1
PIU101 PIR402
COR4
R4
PIR401
PIC302 PIR702 PIU105 5 2 PIU107
LM2904DR
D2 COR12
R12 LIGHT2 PIR801 PIU103
PIR901 51R
PID2011N4148
PILS101
10K
KEY 6
PIRGB106 KEY
9
GND PIRGB109
10k COU1A
COU1B
U1A COC3
C3 COR7
R7
PIU104 U1B
4
PIR501 PIC301
A0/TEMP PIR1201 7
PIRGB107
D12V
8
GND PIRGB108
声音 COR8
R8 COR9
R9
PIU104
LM2904DR 10uF 10k
4
PILS102
PIR10 2 51k 10k PIR701
COR10
R10
PIRT10 CORT1
RT1
V-BAT RGB_SCREEN
GND
5V PIR802 PIR902
GND GND
t?
RGB灯效板
51R
PIR10 1 501C5
PICCOC5 5V GND
PIC502100nF PRGB 取代
B COR13
D45/BEEP PIR1301R13 PIR1302PIQ101
1 COQ1
Q1 PIRT102 V-M
B
S9013
1k
蜂鸣器 PIQ102 COJ1
J1 COJ2
J2 COJ3
J3 COJ4
J4 COJ5
J5
2
PIU204 PIU206
COPPower
PPower 5V 2 PIC06100nF
PIC6010uF 2 10k
5 NLDTR0BLE
DTR PIU205
DTR_BLE COC7
C7
PIC701 PIC702
PIR1801
PIR20 1
PIR1802 1
PIQ301
Q3
COQ3 GND
PIC801C8
PIPPower01 1 100nF COR18
R18 1k COR21
PIR2102 S8550 COC8
PIPPower02 2 R21
PIQ30 GND GND
100nFPIC802 PIC902 2
0C10
PIC1COC10 GND
A4 A4/VOL_BAT
3
A1 A1/SOUND
A2 A2/LIGHT2
A3 A3/LIGHT1
C9
COC9
A0 A0/TEMP
Female_Header 3 100nF PIC901 10uF PIC10 1 P_SERVO V-M
COP0SERVO GND
COCpi PICpi02 02
PIC12100nF 5V
87 A10 A10/RJ
86 A11 A11/RJ
85 A12 A12/RJ
84 A13 A13/RJ
83 A14 A14/RJ
82 A15 A15/RJ
U2部分不参与 BOM ,被PRT 和PPower取代 Cpi
A5 A5/RJ
A6 A6/RJ
A7 A7/RJ
A8 A8/RJ
A9 A9/RJ
98 AREF AREF
GND COC12
C12 4 PIP0SERVO04
GND COR22
R22 5V
pi01 COL2
PICPIL201L2 PIC1201
PIL202
3 PIP0SERVO03
D16/TX2/RJ
5V PIR2201 PIR2202 2 PIP0SERVO02
PIMCU10 PIMCU109 PIMCU1098 PIMCU1097 PIMCU1096 PIMCU1095 PIMCU1094 PIMCU1093 PIMCU1092 PIMCU109 PIMCU109 PIMCU1089 PIMCU108 PIMCU1087 PIMCU1086 PIMCU1085 PIMCU1084 PIMCU1083 PIMCU1082 PIMCU108 PIMCU108 PIMCU1079 PIMCU1078 PIMCU107 PIMCU1076
78 D22
77 D23
76 D24
10k D17/RX2/RJ
1 PIP0SERVO01
5V COMCU1
MCU1
100
复位按键 MEGA2560
99
97
96
95
94
93
92
91
90
89
88
81
80
79
PIRup02
CORup
Rup GND PIS101 PIS102
10k
GND COU3
U3 CH340G PIC1502 02 COS1S1
6C16
PIC1COC16
AVCC
VCC
GND
PF4/ADC4/TCK
GND
PF0/ADC0
PF1/ADC1
PF2/ADC2
PF3/ADC3
PF6/ADC6/TD0
PF7/ADC7/TD1
PK0/ADC8/PCINT16
PK1/ADC9/PCINT17
PK2/ADC10/PCINT18
PK3/ADC11/PCINT19
PK4/ADC12/PCINT20
PK5/ADC13/PCINT21
PK6/ADC14/PCINT22
PK7/ADC15/PCINT23
PJ7
PA0/AD0
PA1/AD1
PA2/AD2
AREF
PF5/ADC5/TMS
GND C15 COC15
PIRup01D0/RX0 1 COD010
D010
2
VCC PIU3016 PIC1501 01
PIC16100nF
C PID01001K PID01002
A 1 16 10uF C
1N4148 PIU301 GND
GND 2 15
PIUSB106 PIU302 TXD R232 PIU3015
COUSB1
USB1 D1/TX0 3
PIU303 RXD
14
RTS# PIU3014NLDTR0CH340
VBUS
4 USB-B 4 13 DTR_CH340 RESET D4/RJ
NLD40RJ D4/PWM 1 75 D25
- PIUSB104NLD0 NLDP PIU304 V3 DTR# PIU3013 PIC1701 PIC1702
COC17 NLD00RX0 PIMCU101 PG5/OC0B PA3/AD3 PIMCU1075
3 D+ DP 5 12 C17 100nF D0/RX0 D0/RX0 2 74 D26 5V
D+ PIUSB103 PIU305 UD+ DCD# PIU3012 PIMCU102 PE0/RX0/PCINT8 PA4/AD4 PIMCU1074
2 NLD0
D- NLDN
DN PIU306 6 11 NLD10TX0
D1/TX0 D1/TX0 3 73 D27
D - PIUSB102
1 7 UD- RI# PIU3011
10
PIMCU103
4 PE1/TX0 PA5/AD5 PIMCU1073
72 D28 GND PIC2102 802
PIC1C18 P1
+ PIUSB101 Y1
COY1 PIU307 XI DSR# PIU3010 PIMCU104 PE2/XCK0/AIN0 PA6/AD6 PIMCU1072 COC18 COP1
COC21
C21
PIR30 2 PIR3102 1 3 PIU308
8 9 D5/RJ
NLD50RJ D5/PWM 5 71 D29
RL0603E005M
RL0603E005M
R31
COR31 C22
GND
COC19
C19 COC20
C20
PIMCU1010
10
VCC PJ3/PCINT12
66
PIMCU1066
Header 4
GND
PIC1901 10uF PIC20 1 100nF
PIMCU1011
11
GND PJ2/XCK3/PCINT11
65
PIMCU1065
D17/RX2/RJ COR033R033 51R D17/RX2 12 64 D14/TX3 R029
COR029 51R
PIR03301 PIR03302 PIMCU1012 PH0/RX2 PJ1/TX3/PCINT10 PIMCU1064 PIR02901 PIR02902
D16/TX2/RJ COR032R032 51R D16/TX2 13 63 D15/RX3 COR028
R028 51R
PIR03201 PIR03202 PIMCU1013
14 PH1/TX2 PJ0/RX3/PCINT9 PIMCU1063
62
PIR02801 PIR02802
ENCODER_编码电机驱动
PIMCU1014 PH2/XCK2 GND PIMCU1062 GND
5V D6/RJ D6/PWM 15 61 PIC2302 PIC2402
NLPGND
PGND PIRG01
CORG
RG
PIRG02 GND PIUM103 D7/RJ
D8/RJ
PIMCU1015
D7/PWM 16
PIMCU1016
D8/PWM 17
PH3/OC4A
PH4/OC4B
VCC
PC7/A15
PIMCU1061
60
PIMCU1060
59
D30
D31
D30
D31 PIC2301
COC23
C23
10uF PIC2401
COC24
C24
10uF
3
COL001
L001 BEAD,2A 0K PIMCU1017 PH5/OC4C PC6/A14 PIMCU1059 5V
D9/RJ GND D9/PWM 18 58 D32 D32
PIL00101 PIL00102 UM1
COUM1 PIMCU1018 PH6/OC2B PC5/A13 PIMCU1058
VIN
PGND ICSP1
COICSP1 D53/SS
NLD530SS D53/SS 19 57 D33 D33
R34
COR34 NLD520SCK
PIMCU1019 PB0/SS/PCINT0 PC4/A12 PIMCU1057
COP0DIGITAL
RESET D52/SCK D52/SCK 20 56 D34 D34 P_DIGITAL
XC6206P332MR
30
PID1COD13
D13 COD12
D12
PID120 D52/SCK 4 PIICSP104NLD510MOSI
D51/MOSI D51/MOSI D51/MOSI 21 55 D35 D35 NLD31
D31 NLD30
2 PIP0DIGITAL02D30
PB7/PCINT7/OC1C/OC0A
LED_BLUE
PD3/TX1/INT3
5 PIM105 PIU402 AO1 PWMA PIU4023 PIMCU1025 PB6/OC1B/PCINT6 PG0/WR PIMCU1051 PIP0DIGITAL09 9
GND PIL0 20 COL002
3 22 EN_DIRA2 5V GND
PG3/TOSC2
PG4/TOSC1
PD4/ICP1
接口引出
3 PIM103 5V BEAD,2A PGND PGND1 AIN1 PIU4021
PL0/ICP4
PL1/ICP5
PIU404
COR36
R36 51R ENA_A 5 20 COC29
C29 COC30
C30 PIC2902 PIC30 2 COCM4
CM4 100nF
PH7/T4
XTAL2
XTAL1
PD6/T1
PD7/T0
PL2/T5
RESET
COF4 7 18 P I C 2 9 0
10uF1 1
PIC30100nF COP0PWM
P_PWM COP0ANALOG
P_ANALOG
F4 1A PIU407 BO2 GND PIU4018 MPU6050
NLM20 NL4 NLA100RJ
GND
VDD
PICM501 PICM502
MHDR1X6 PIL00302 PIL00301PIF401 PIF402 PIU408 BO2 BIN1 PIU4017 CM5
COCM5
9 16 EN_DIRB2 5 A15/RJ
9 PIP0PWM09NL5 9 PIP0ANALOG09NLA150RJ
L003BEAD,2A
COL003 PGND2 BIN2 PIU4016 10uF GND
PIMCU1026 PIMCU1027 PIMCU1028 PIMCU1029 PIMCU103 PIMCU103 PIMCU1032 PIMCU103 PIMCU1034 PIMCU1035 PIMCU1036 PIMCU1037 PIMCU1038 PIMCU1039 PIMCU104 PIMCU104 PIMCU1042 PIMCU1043 PIMCU104 PIMCU1045 PIMCU1046 PIMCU1047 PIMCU1048 PIMCU1049 PIMCU105
D13/PWM 26
27
28
29
30
31
32
33
34
35
36
37
EN_DIRB2 D46/PWM 38
D45/BEEP D45/PWM 39
D44/RGB D44/PWM 40
41
42
51R D21/SCL 43
51R D20/SDA 44
D19/RX1 45
D18/TX1 46
47
48
49
50
PIU409
PGND
10
PGND2
15 EN_PWMB
PWMB PIU4015
GND
PID1402 8 PIP0PWM08
2NL2
8 PIP0ANALOG08
A9/RJ
NLA90RJ
2
PIU4010
11 14 V-M 19 12NLMPU0INT
MPU_INT 100nF PICM202 PIY202 3NL3 NLA140RJ
A14/RJ
COR43
R43 20k PIU4011 BO1 VM3 PIU4014 CM1 2.2nF 20
PIUM9019 RESV INT PIUM9012 7 PIP0PWM07 7 PIP0ANALOG07
XTAL2
XTAL1
12 13 COCM1 11 6 PIP0ANALOG06NLA80RJ
RESET RESET
PIR4301 PIR4302 PIU4012 BO1 VM2 PIU4013 PICM102 PICM101 PIUM9020 CPOUT FSYNC PIUM9011 6 PIP0PWM06 D17/RX2/RJ A8/RJ
2
PIC340100nF 1 PIC10610uF
PIC10510uF 01 PIC10710uF
1 PIC108 10uF
1 CM2PICM201
PID1601 PID1502 21 10 COCM2 D3.3V Y2
COY2
PID1COD1440 D16/TX2/RJ A13/RJ
5 PIP0ANALOG05NLA130RJ
LED_BLUE
D14
EN_DIRA2 D49
EN_DIRA1 D48
EN_DIRB1 D47
D43
D42
D38
D15
COD15 PIUM9021 RESV REGOUT PIUM9010 10K 5 PIP0PWM05
D MTR2+ LED_RED TB6612 22 9 NLMPU0AD0
MPU_AD0 PIRM301 3 1 6NL6 A7/RJ
NLA70RJ D
PIUM9022 RESV AD0 PIUM909 PIRM302 PIY203 PIY201 4 PIP0PWM04 4 PIP0ANALOG04
COM2
M2 01
PIC32100nF LED_BLUE 1
40C34
PIC3COC34 PIC105 2 PIC10602 COC105 COC106 COC107
C105 C106 C107COC108 PIC107 2 PIC108 2
C108 CORM1
RM1 1K 23 8 COCM3
CM3 10nF PIR3901 7NL7 NLA120RJ
A12/RJ
PIRM101 PIRM102 PIUM9023 SCL VLOGIC PIUM908 PICM301 PICM302 CORM3
RM3
NLRESET PIR01402 PIR01502 3 PIP0PWM03 3 PIP0ANALOG03
D001
D002
D003
D004
NLE0DIRA2NLE0DIRA1NLE0DIRB1NLE0DIRB2NLD450BEPNLD40RGB 8
2 PIP0PWM02NL8
A6/RJ
2 PIP0ANALOG02NLA60RJ
R014
R015
PIC3202
ENA_B
AUX_DA
ENB_B
MTR2- M2-
NLM20 D3.3V 10K 9NL9 A11/RJ
NLA110RJ
NLENB0BNLENA0B COR014COR015
D13
SMAJ12A
SMAJ12A
SMAJ12A
3 PIM203 5V
ENA_A
ENB_A
R41
COR41 51R ENB_A MTR1+ MTR1- MTR2+ MTR2- XTAL1
NLXTAL1
2 PIM202PIR4101
R42
COR42
1 PIM201PIR4201
PIR4102
51R ENB_B GND 01
PIC101100nF PIC102 1100nF PIC10100nF
31 41
PIC10100nF
PIUM901 PIUM902 PIUM903 PIUM904 PIUM905 PIUM906 NLENA0ANLENB0A
RSCL
PIR4202
MHDR1X6 02
PIC101C101
COC101 PIC102 C102 32
0C103
COC102 PIC1COC103 42
0C104
PIC1COC104 GND
10K 10K
PIRSCL01 PISCL01
PGND
1 2 3 4 5 6 7 8
TM +5V
CD1206-S01575
+5V
RN5A 10K
8
D3
RN1B 10K
RN1C 10K
X1
+5V
1
RESET
6
POWERSUPPLY_DC21MMX
IC1 +5V
3 3 NCP1117ST50T3G C1
VIN GREEN
3
3 4 ON
1
IN OUT
GND
D1 2 1 8 22p +5V
M7 RN3A 1k ICSP SCL
1
GND
100n 2 L13 7 2 RESET 5 6
LMV358IDGKR
GND GND GND 3x2M GND
4
2
2x2M - NM
GND GND IC3
RESET 30 RESET 71 PA7
(AD7)PA7
JP5
3
1
Y1 72 PA6
(AD6)PA6 PA5
XTAL2 33 XTAL2 (AD5)PA5 73
GND
R1 74 PA4
(AD4)PA4 PA3
1M XTAL1 34 75
8PB7
8PB6
8PB5
8PB4
XTAL1 (AD3)PA3 PA2
(AD2)PA2 76
XTAL1 16MHZ
CSTCE16M0V53-R0 AREF 98 AREF 77 PA1 JP6
(AD1)PA1 PA0
100 AVCC (AD0)PA0 78 SCL 1
+5V 99 SDA 2
AGND +5V
AREF (OC0A/OC1C/PCINT7)PB7 26 PB7 pwm AREF 3
C3 (OC1B/PCINT6)PB6 25 PB6 pwm GND 4
C4 C5 10 VCC (OC1A/PCINT5)PB5 24 PB5 pwm 5 13
100n C6 31 23 PB4 pwm 6 12 ICSP1
VCC (OC2A/PCINT4)PB4
100n 100n 61 VCC (MISO/PCINT3)PB3 22 PB3 (MISO) 7 11 MISO2 1 2
100n 80 21 PB2 (MOSI) 8 10 SCK2 3 4 MOSI2
VCC (MOSI/PCINT2)PB2
CD1206-S01575
GND 11 GND (SCK/PCINT1)PB1 20 PB1 (SCK) PH6 pwm 9 9 RESET2 5 6
7 RN5B
32 19 PB0 PH5 pwm 10 1 2
2
GND (SS/PCINT0)PB0 8
GND
D2
62 GND 3x2M
18x2F-H8.5 81 60 PC7 10x1F-H8.5 RESET-EN
GND (A15)PC7 GND IC4
10K
36 35 59 PC6 GND
53 PB0 (SS) (A14)PC6
34 33 (SCK) PB1 52 GND (A13)PC5 58 PC5
(PCINT7/OC0A/OC1C)PB7 21
51 PB2 (MOSI) 32 31 (MISO) PB3 50 57 PC4 20
(A12)PC4 (PCINT6)PB6
22p
49 PL0 30 29 PL1 48 56 PC3 C8 RESET2 24 19 DTR RESET
C15
47 PL2 PL3 46 (A11)PC3 PC2 RESET(PC1/DW) (PCINT5)PB5
28 27 55 USB-B_TH 100n 18
100n
C7
45 PL4 PL5 44 (A10)PC2 PC1 (T1/PCINT4)PB4
26 25 (A9)PC1 54 XT2 (PD0/MISO/PCINT3)PB3 17 MISO2
X2 F1
16MHz
Y2
43 PL6 24 23 PL7 42 PL7 42 53 PC0 XVCC USBVCC 2 16 MOSI2
1
PL7 (A8)PC0 8x1F-H8.5 22R RN2A XTAL2(PC0) (PDI/MOSI/PCINT2)PB2
GND
41 PG0 22 21 PG1 40 PL6 41 PL6 1 MF-MSMF050-2 500mA 8 1 R2 15 SCK2
39 PG2 PD7 38 PL5 (SCLK/PCINT1)PB1
50 PD7 TXD3 8 14
USB
20 19 pwm 40 PL5(OC5C) (T0)PD7 2 D- RD- 1M 1 XTAL1 (SS/PCINT0)PB0 14
37 PC0 PC1 36 PL4 RXD3 7 15
2
18 17 pwm 39 49 3 D+ RD+
P$2
P$1
PL4(OC5B) (T1)PD6 22R
35 PC2 16 15 PC3 34 PL3 pwm 38 48 TXD2 6 16 4 5 RN2D
4 XT1
CG0603MLC-05E
33 PC4 PC5 32 PL2 PL3(OC5A) (XCK1)PD5 RXD2 +5V
14 13 37 47 5 17 2 7 32 22
CG0603MLC-05E
USB boot En
C14
PL2(T5) (ICP1)PD4 AVCC (INT4/ICP1/CLK0)PC7
22p
31 PC6 PC7 30 PL1 TXD1 4 18 COMMUNICATION
UGND
12 11 36 PL1(ICP5) (TXD1/INT3)PD3 46 RN2B 22R (OC1A/PCINT8)PC6 23
USHIELD P$2
P$1
1k RN3D
29 PA7 10 9 PA6 28 PL0 35 45 RXD1 3 19 3 6 25 GND
5
27 PA5 PA4 26 8x1F-H8.5 PL0(ICP4) (RXD1/INT2)PD2 SDA (PCINT9/OC1B)PC5
8 7 (SDA/INT1)PD1 44 2 20 RN2C 22R 4 VCC (PCINT10)PC4 26
Z1
Z2
25 PA3 6 5 PA2 24 8 ADC15 82 PK7(ADC15/PCINT23) 43 SCL 1 21 3 GND 5
23 PA1 PA0 22 ADC14 (SCL/INT0)PD0 8x1F-H8.5 (AIN2/PCINT11)PC2
4
4 3 7 83 PK6(ADC14/PCINT22)
2 1 6 ADC13 84 9 PH4 pwm 8 7 13
+5V ADC12 PK5(ADC13/PCINT21) (CLKO/ICP3/INT7)PE7 PH3 pwm (CTS/HWB/AIN6/TO/INT7)PD7
5 85 PK4(ADC12/PCINT20) (T3/INT6)PE6 8 7 6 VUCAP 27 UCAP (RTS/AIN5/INT6)PD6 12
XIO ADCH 4 ADC11 86 7 PE5 pwm PE3 pwm 6 5 6 3 USBVCC 31 11 TXL 3 6 +5V
ADC10 PK3(ADC11/PCINT19) (OC3C/INT5)PE5 PE4 PG5 pwm BLM21 UVCC (XCK/AIN4/PCINT12)PD5
3 87 PK2(ADC10/PCINT18) (OC3B/INT4)PE4 6 pwm 5 4 RD- 30 D- (INT5/AIN3)PD4 10 RXL RN4C 1k
2 ADC9 88 5 PE3 pwm PE5 pwm 4 3 PWML 1k RN3C RD+ 29 9 M8RXD
ADC8 PK1(ADC9/PCINT17) (OC3A/AIN1)PE3 PE4 pwm L1 1u D+ (TXD1/INT3)PD3
1 89 PK0(ADC8/PCINT16) (XCK0/AIN0)PE2 4 3 2 C10 UGND 28 UGND (RXD1/AIN1/INT2)PD2 8 M8TXD
3 PE1 (TX0) PE1 2 1 7
(TXD0)PE1 PE0 PE0 100n (AIN0/INT1)PD1 TX
79 PJ7 (RXD0/PCIN8)PE0 2 (RX0) 1 0 33 PAD (OC0B/INT0)PD0 6 YELLOW
69 8x1F-H8.5 C9
+5V+3V3 PJ6(PCINT15) ADC7
68 PJ5(PCINT14) (ADC7/TDI)PF7 90 8 1 2 ATMEGA16U2-MU
1 67 91 ADC6 7 GND
PJ4(PCINT13) (ADC6/TDO)PF6 ADC5 GROUND
2 66 PJ3(PCINT12) (ADC5/TMS)PF5 92 6 1 8 4 5
3 65 93 ADC4 5 ADCL RN1A 10K 2 7 RX RN4D 1k
PJ2(XCK3/PCINT11) (ADC4/TCK)PF4 ADC3
4
POWER
TXD3
RXD3
64 PJ1(TXD3/PCINT10) (ADC3)PF3 94
ADC2
4 4 5 GND PE0 RN4B 1k M8RXD YELLOW
5 63 PJ0(RXD3/PCINT9) (ADC2)PF2 95 3 RN1D 10K
6 96 ADC1 2
(ADC1)PF1 ADC0 M8TXD
7 27 PH7(T4) (ADC0)PF0 97 1 PE1
8 pwm PH6 18 1 8
VIN pwm PH5 PH6(OC2B) PG5 pwm
17 PH5(OC4C) (OC0B)PG5 1 RN4A 1k
GND 8x1F-H8.5 pwm PH4 16 29
pwm PH3 PH4(OC4B) (TOSC1)PG4
15 PH3(OC4A) (TOSC2)PG3 28
14 PH2(XCK2) 70 PG2
TXD2 (ALE)PG2 PG1
13 PH1(TXD2) (RD)PG1 52
RXD2 12 PH0(RXD2) 51 PG0
(WR)PG0
ATMEGA2560-16AU
5
Reference Designs ARE PROVIDED "AS IS" AND "WITH ALL FAULTS. Arduino DISCLAIMS ALL OTHER WARRANTIES, EXPRESS OR IMPLIED,
GND
RESET 4 2
3 1
REGARDING PRODUCTS, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
TS42031-160R-TR-7260
RESET Arduino may make changes to specifications and product descriptions at any time, without notice. The Customer must not
1 5
+3V3 rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Arduino reserves
+5V IN OUT
+5V 3
these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them.
VIN ON/OFF
C13+3V3
CMP The product information on the Web Site or Materials is subject to change without notice. Do not finalize a design with this information.
RN5D 10K RN5C 10K
5 IC7B 2 4
6
GND NC/FB
7 GATE_CMD
+3V3 6 ARDUINO is a registered trademark.
8
LMV358IDGKR
1u
C11
5
100n C12
100n
4
GND GND
+5V
4
GND GND
USBVCC +5V
T1
FDN340P