Arduino IO
Arduino IO
Arduino IO
Arduino):
-------------------------------------------------- -------------------------
DETALLES DE ARDUINO:
Arduino es una placa electronica de código abierto de gran alcance y bajo costo,
Una extensa lista de sitios donde se puede comprar un Arduino está aquí:
http://www.arduino.cc/en/Main/Buy
Mientras que la versión anterior de este paquete se dirige a tablas más pequeñas, como
La ONU y Nano, desde agosto de 2012 (ver 3.3) el paquete también trabaja a la derecha
fuera de la caja en los tablones de Mega, sin que sea necesario ningún ajuste relacionados con
Mega.
Sin embargo en cuenta que para el propósito de utilizar este paquete sólo se necesita tener
Tenga en cuenta que el paquete funciona bien con las placas de ChipKit32 (Uno32, Max32):
http://www.digilentinc.com/Products/Catalog.cfm?NavPath=2,892&Cat=18
Así, por lo servos y los codificadores no podría funcionar exactamente como en las placas
Arduino.
Desde sep 2012, cuando la biblioteca AFMotor se ha actualizado para apoyar PIC32,
El Cerebot MX7ck también funciona bien con el paquete. Tenga en cuenta que con el fin de
se accede a la MPIDE que necesita para tiro corto JP11, ajuste el interruptor en ON,
-------------------------------------------------- -------------------------
Es una buena idea para ir trought todos los 9 pasos, aunque después de que haya
instalado los controladores, tal vez la biblioteca escudo, y verificado que el IDE
INSTALACIÓN DEL MOTOR SHIELD adafruit BIBLIOTECA (hay que hacer sólo una vez):
Si desea utilizar este paquete con el protector del motor adafruit, (ya sea
http://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino), es necesario
(Siga las instrucciones dadas en los sitios anteriores, que ascienden a descargar
Como se explica mejor en el siguiente paso, esto también tendrá que cargar
Tenga en cuenta que si usted no tiene el protector del motor adafruit y no planificar
También tenga en cuenta que el Arduino "oficial" (no Adafruit) protector del motor:
(Http://arduino.cc/it/Main/ArduinoMotorShieldR3)
-------------------------------------------------- -------------------------
SUBIR A ADIOES.PDE la placa Arduino (hay que hacer sólo una vez):
la memoria flash del controlador. Mientras ningún otro archivo se carga después,
Tenga en cuenta que si desea utilizar la biblioteca escudo adafruit entonces necesita
el boceto adioes.pde.
presentar en su interior).
Se sugiere cerrando el IDE, por lo que puede estar seguro de que la conexión serial
a la placa Arduino no es tomada por el IDE cuando MATLAB tiene que usarlo.
-------------------------------------------------- -------------------------
importante que los usuarios tienen derecho a acceder al puerto serie y modificar
el archivo pathdef.m.
En Linux:
---------
Para asegurarse de que el archivo se puede escribir pathdef.m, emitir un comando como este:
sudo chmod 777 usr / local / MATLAB / R2012a / caja de herramientas / local / pathdef.m
En Windows:
-----------
MATLAB ejecutar como administrador (solo una vez con el propósito de instalar
"Ejecutar como administrador". Esto permitirá que la ruta actualizada para ser salvado.
-------------------------------------------------- -------------------------
El uso típico:
Asegúrese de que la placa está conectada al ordenador a través del puerto USB, asegúrese
usted sabe qué puerto serie del Arduino está conectado a (este es el mismo
asegúrese de que el puerto no es utilizado por el IDE (en otras palabras, el IDE debe
ser cerrado o desconectado), de manera que MATLAB puede utilizar la conexión en serie.
puerto COM al que el Arduino está conectado a, por ejemplo, 'COM5' o 'COM8' en Windows,
o '/ dev / ttyS101' en Unix (uso '/ dev / ttyUSB0' para las versiones de Arduino antes de Uno)
o 'Demo' (ver más abajo para el modo DEMO) y asegúrese de que caduque la función
exitosamente.
A continuación, utilice el a.pinMode comandos, a.digitalRead, a.digitalWrite, a.analogRead,
Consulte la ayuda de los archivos para obtener más información acerca de su uso.
para fijar respectivamente un servo a un pin PWM, obtener su estado (conectado / individual)
NOTA que desde agosto de 2012 (ver 3.8) los servos ya no se hace referencia a
por los números 1 y 2, pero no por el número pin PWM al que están
separarlo cuando haya terminado. Las direcciones de giro positivos para codificadores
si necesita una gama más grande todo lo que tiene que hacer es ir en el codificador
del puerto serie), a.flush (el lavado del lado de entrada de serie del PC
-------------------------------------------------- -------------------------
EJEMPLO:
% Conectar la placa
a = Arduino ( 'COM5')
valor% ouptput en digital (pwm) pin 5 (de nuevo, diferente de pin digital 5)
de serie (a)
flush (a);
servoStatus (a);
encoderRead (a, 0)
encoderRead (a, 2)
encoderReset (a, 2)
encoderStatus (a);
% De separación codificador # 0
% Cerrar la sesión
borrar (a)
NOTA: En caso de que por alguna razón el puerto serie no se relaesed después de borrar
el objeto Arduino, puede utilizar los siguientes comandos para forzar la liberación
ot la conexión en serie:
se puede pasar también antes de cualquier nombre de la función (método), por lo tanto, un
típico
funciones tales como: la función (a, arg2, arg3, ...) también se puede llamar así:
-------------------------------------------------- -------------------------
SKETCHES prestados:
En la mayoría de los casos el adioes.pde cubrirá todo lo que necesita. Los dos últimos bocetos
Los 2 primeros bocetos se proporcionan sobre todo en caso de que su plataforma específica
punto para las personas que desean personalizar un boceto para sus propios fines.
-------------------------------------------------- -------------------------
MODO DE DEMOSTRACIÓN:
cualquier hardware. Esto permite tratar el paquete sin necesidad de tener una
placa Arduino. En este modo, todos los "leen" las funciones devuelven valores aleatorios
en función de su rango de salida. Asimismo, los retrasos se utilizan internamente de modo que
Tenga en cuenta que el mismo comportamiento (valores de salida al azar) se produce cuando
el boceto
leer, pero se emite el boceto que se ejecuta en el tablero, por ejemplo adio.pde) no
servos de apoyo.
-------------------------------------------------- -------------------------
RETO BLINK:
Cuenta que la ejecución de este applicaton sólo tiene sentido si es la placa Arduino
como salidas y conectado a leds, pin digital # 2 está configurado como entrada y
conectado a un botón que tira de la tensión hacia abajo cuando se presiona, y analógico
-------------------------------------------------- -------------------------
para el control de motores de corriente continua y paso a paso. El paquete Arduino IO permite
el uso de la
Adafruit primitivas biblioteca protector del motor (además de los otros básica
http://learn.adafruit.com/adafruit-motor-shield
y la versión 2:
http://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino
(Ver también la sección "Instalación de la biblioteca protector del motor de" arriba).
Si estaba utilizando el boceto adioes.pde entonces usted necesita para cargar cualquiera
proteger a las instrucciones relacionadas. Ambos bocetos necesario que el motor adafruit
relacionados
BIBLIOTECA escudo (véase el paso por encima de la instalación relacionada) para trabajar, sin
tener en cuenta
Ambos bocetos de motor son los más completos, es decir que puede utilizar
ellos también para E / S básicas, servos, codificadores y así sucesivamente, incluso cuando el
motor
escudo no está montado en el Arduino. Sin embargo, tenga en cuenta que el adafruit
V1 protector del motor utiliza una gran cantidad de los pasadores, (ver el manual) así que si
usa tanto
Por lo tanto, el mejor enfoque está usando ya sea las instrucciones IO o las
HACER ESCUDOS SWAP no caliente. Antes de montar el protector del motor de eliminar la
Arduino objeto del espacio de trabajo, desconectar, a continuación, montar el protector del
motor
% Conectar la placa
a = Arduino ( 'COM5')
MotorSpeed (a);
% Cerrar la sesión
borrar (a)
Tenga en cuenta que todas las demás funciones relacionadas con clavijas analógicas y digitales
IO
así como para servos, todavía se puede utilizar como se describe en la anterior
ejemplo anterior.
También tenga en cuenta que las instrucciones paso a paso están bloqueando, que es la junta
comando previo paso a paso ha llegado hasta su finalización (que puede tardar varios
http://arduino.cc/en/Reference/Stepper?from=Tutorial.Stepper).
línea 61: reemplazar "# include <AFMotor.h>" con "# include <Stepper.h>"
"Stm1 paso a paso (200, 8,9,10,11);" suponiendo que desea conectar el primer
paso a paso a los pines 8,9,10,11 (por supuesto, usted puede elegir los pasadores que desee).
"STM2 paso a paso (200, 3,4,5,6);" asumiendo que desea conectar el segundo
paso a paso a los pines 8,9,10,11 (de nuevo, puede elegir los pasadores que desee).
Si usted no tiene un segundo paso a paso, puede utilizar números de los pines no utilizados
borrar el código de las líneas 79 a 82 (que define los objetos de motor de corriente continua)
borrar el código de las líneas 374 (caso 170 a 440 :) (romper; / * s = 181 ... * /)
eliminar código de las líneas 499 y 500 (que llaman stm1.release y stm2.release)
eliminar código de las líneas 518, 523, 528, y 533 (ajuste de estilo en SINGLE,
DOBLE, INTERLEAVE DE, y MicroStep)
la línea 547: sustituir stm1.step (val, dir, pocilga); con stm1.step (val * dir);
la línea 548: sustituir stm2.step (val, dir, pocilga); con stm2.step (val * dir);
Ahora puede guardar el archivo (necesita estar en una carpeta separada que tiene el mismo
Esta será reconocido por MATLAB como el boceto afmotor_v1, y que será
capaz de utilizar las principales instrucciones paso a paso (tenga en cuenta sin embargo que el
estilo
Gracias a Gianmarco Errico para sus entradas iniciales y a Luca para Dalbosco
-------------------------------------------------- -------------------------
SIMULINK BIBLIOTECA
Desde la versión 3.0 de este paquete también viene con una biblioteca que Simulink
tiene bloques de analógico y digital IO, así como servo de lectura y escritura,
espacio de trabajo, o se puede crear una instancia de un objeto de forma automática Arduino
temporal
borrada después de la simulación ha terminado. Usted tiene que utilizar este bloque (el
bloque de configuración) con el fin de utilizar los otros, y hay que utilizar una
bloque diferente configuración para cada variable Arduino diferente que utilice
en la simulación.
Los ejemplos que ilustran cómo utilizar analógicas IO bloques son los archivos
Tenga en cuenta que estos bloques, que se basan en objetos de MATLAB (y confiar en el
http://www.mathworks.com/academia/arduino-software/arduino-simulink.html
http://www.mathworks.com/matlabcentral/fileexchange/30277
puede tanto ser utilizado para generar automáticamente, a partir de Simulink, Arduino
-------------------------------------------------- -------------------------
SOLUCIÓN DE PROBLEMAS
versiones anteriores a R2010a, por lo que sugieren para obtener al menos R2011a (o posterior)
si puedes.
el objeto Arduino se comparte entre los bloques de las características modelo utilizando
introducido desde R2010a). En cualquier caso, este software utiliza el nuevo MATLAB
sistema de objetos, y que sin duda no puede trabajar en las versiones anteriores a R2008a.
Me he encontrado en el pasado para los casos (usando el tablero Duemilanove) en
sin éxito, por favor asegúrese de que el Arduino se enciende ... "),
Creo que esto se resuelve ahora, ya que era probable que se deba a una combinación de
para i = 1: 12,
pausa (1);
fin
Tenía algunos casos en los que el error anterior se presentó cuando el motor_v2
circuito de abrir y cerrar desafío estaba enchufado en la parte superior de la Arduino Uno.
Extracción
que el consejo específico (y / o conectar el protector del motor de uno), parecido a resolver
ese problema (no he sido capaz de reproducir esto con la junta Mega).
o:
o:
entonces es probable que significa que algo salió mal con su conexión en serie,
sucede mucho cuando se utilizan los servos sin una buena fuente de energía) y su
1) asegurarse de que ningún otro programa (por ejemplo, el IDE se utiliza el mismo puerto
COM)
3) borrar (instrfind ({ 'Puerto'}, { 'COM9'}))%, por supuesto, utilizar el puerto COM correcto
-------------------------------------------------- -------------------------
Utilizando el paquete SIN MATLAB (EG IDE o HYPETERMINAL)
Tenga en cuenta que si bien este paquete fue diseñado para ser utilizado con MATLAB, puede
puede utilizar con cualquier programa que le permite comunicarse a través del puerto serie.
La manera más fácil de hacer esto es usar el Monitor de serie IDE (en la parte superior
esquina derecha de la IDE) para enviar y recibir mensajes de resultados. Una vez tú
iniciar el monitor de serie y seleccione 115200 como velocidad de transmisión, que se puede
escribir
mensajes en la fila superior y los envían a través del puerto serie haciendo clic en "Enviar"
botón.
Por ejemplo el comando "1c" lee pin digital # 2, como "1" representa
4JZ: establece pin digital # 9 (j) a 122 = ascii (z) sobre 255
A1z: establece la velocidad de motor # 1 para 122 sobre 255 (122 = ascii (z))
C12: conjuntos de velocidad de motor paso a paso # 1 a 50 rpm (50 = ascii (2))
C2Z: establece la velocidad de motor paso a paso # 2 a 90 rpm (90 = ascii (Z))
D1fsz: hacer 122 pasos en el motor # 1 hacia adelante en el modo simple (s)
D2fdz: hace 122 pasos en motor # 1 hacia adelante en el modo doble (d)
compilado y cargado en el tablero con éxito, entonces uno debe ser capaz de
para comunicarse con la junta a través del puerto de serie como se describe anteriormente.
115.200 como "bits por segundo", y también seleccionar "None" como control de flujo.
No se puede ver lo que escribe, sino que debe ver los resultados, por lo que escribir
"99" deben devolver el tipo sript (1,2 o 3) de inmediato. Esto le da una forma
para probar el paquete de una manera independiente de IDE, que también podría ser
importante
en la solución de un problema.
-------------------------------------------------- -------------------------
Personalización:
Para las personas que desean personalizar el paquete o simplemente añadir su propio código
anteriormente, que está provisto específicamente como un ejemplo para este propósito.
del "caso 400:", uno puede tomar el parámetro, realizar alguna potencialmente
-------------------------------------------------- -------------------------
ARCHIVOS E HISTORIA:
Ver contents.m para obtener información sobre los archivos y el historial de versiones.
-------------------------------------------------- -------------------------
Giampiero Campa, junio de 2014, Derechos de autor 2014, The MathWorks, Inc.