POLOLU manual-programing

85
1. Introducción El orangután de LV-168 conectado a un soporte de la batería de 3 AA. Orangután del bebé B con pines de cabecera incluidos soldado en la instalación de tablero. Arduino es una plataforma de prototipado popular, de código abierto que hace que sea fácil para las personas con poca experiencia en la electrónica para entrar en el mundo de los microcontroladores y programación embebida. El entorno Arduino consiste en un entorno de código abierto de desarrollo integrado (IDE) y el compilador, librerías de software, y placas de hardware programable basado en el ATmega168 potente y microcontroladores Atmega328. Debido a que nuestro Orangután SV-xx8 , orangután LV- 168 , y de bebé orangután B controladores de robots usan estos mismos microcontroladores, tienen un alto grado de solapamiento con Arduino. Por tanto,

description

Manual de la programación de pololu

Transcript of POLOLU manual-programing

1.Introduccin

El orangutn de LV-168 conectado a un soporte de la batera de 3 AA.

Orangutn del beb B con pines de cabecera incluidos soldado en la instalacin de tablero.

Arduinoes una plataforma de prototipado popular, de cdigo abierto que hace que sea fcil para las personas con poca experiencia en la electrnica para entrar en el mundo de los microcontroladores y programacin embebida.El entorno Arduino consiste en un entorno de cdigo abierto de desarrollo integrado (IDE) y el compilador, libreras de software, y placas de hardware programable basado en el ATmega168 potente y microcontroladores Atmega328.Debido a que nuestroOrangutn SV-xx8,orangutn LV-168, yde beb orangutn Bcontroladores de robots usan estos mismos microcontroladores, tienen un alto grado de solapamiento con Arduino.Por tanto, nuestros controladores de robots orangutn pueden ser una alternativa atractiva a hardware oficial de Arduino para aquellos que ya estn familiarizados con el entorno Arduino, y el medio ambiente pueden ser una alternativa amigable para los principiantes a AVR Studio para aquellos que buscan para empezar con los orangutanes.Nota:Elrobot 3pi Pololutiene efectivamente un orangutn SV-xx8 como su ncleo, por lo que esta gua y las bibliotecas orangutn Arduino aplica al 3pi tambin.Para obtener ms informacin sobre el 3pi, consulte lagua del usuario 3pi.

La oferta orangutanes y robot 3pi hardware que Arduinos no lo hacen, como controladores de motor doble de a bordo integrado.Esto los hace muy adecuados para aplicaciones que implican el control de pequeas y medianas robots.El orangutn SV-xx8, orangutn LV-168, y el robot 3pi tambin han integrado pulsadores, un zumbador piezo, y un LCD extrable, todas las cuales son caractersticas adicionales que no se encuentran en Arduinos oficiales.Con algunos cambios menores en los archivos de configuracin de software de Arduino, se hace posible programar nuestros orangutanes y robot 3pi usando el Arduino IDE y bibliotecas.Esta gua le guiar a travs del proceso de reconfiguracin de la Arduino IDE, y ofrecer una serie de bibliotecas personalizadas que harn ms fcil para hacer interfaz con todo el hardware a bordo del orangutn / de 3pi.Una diferencia clave entre las tablas estndar de Arduino y los controladores de robots orangutn es que la mayora vienen con Arduino USB a serial adaptadores integrados, que permiten conectar a su computadora y el programa a travs de gestores de arranque pre-cargado, mientras que los orangutanes carecen integrado USB- a serie adaptadores.Como tal, para el Orangutn SV-xx8, LV-168 y el robot 3pi, le recomendamos que programe los orangutanes o robot 3pi usando un ISP AVR (denominado ICSP en el mundo Arduino) programador como nuestroUSB AVR Programmer.Al adoptar este enfoque y dejando fuera el gestor de arranque, se obtiene un 2 KB extra de espacio del programa.Tambin evitar el retraso del gestor de arranque al encender o reiniciar el tablero.

Pololu programador AVR USB con cable incluido ISP seis pines.

Nota:Este documento se aplica slo alrobot 3piyOrangutn SV-xx8,orangutn LV-168, y elbeb orangutn Bcontroladores de robots.Para simplificar, los tres ltimos dispositivos se denominarn a partir de ahora como"orangutanes", a menos que una distincin debe hacerse entre los modelos Orangutn especficos.Este documento hacenosolicitar a la originalorangutn,orangutn del beb,orangutn X2, oSVP Orangutnde control del robot.2.ATmega168 Mapping / 328-Pin ArduinoEn nuestra documentacin estndar orangutn y 3pi, utilizamos la misma convencin que Atmel utiliza en su ATmega168 / 328 hoja de datos, en referencia a las patillas de sus puertos asociados.Por ejemplo, el pin PD7 es el pin 7 del puerto D. Se utiliza esta convencin, ya que cada puerto es controlado por sus propios registros AVR, y los bits de estos registros corresponden a los pines individuales.El Arduino asla al usuario de este nivel de detalle, en referencia a los pines de E / S como pines digitales 0-13 y entradas analgicas 0 - 7. Tenga en cuenta que esta terminologa puede ser un poco engaoso ya que las entradas analgicas 0-5 tambin se puede utilizar como yo digital de propsito general pines E / S (referido como pines digitales 14-19).Usted puede visitarhttp://www.arduino.cc/en/Hacking/PinMapping168para ver exactamente cmo los mega168 / 328 pines se asignan a los pines de Arduino.Tenga en cuenta que esta pgina muestra un chip encapsulado DIP de 28 pines, mientras que los orangutanes llevan pequeos paquetes de 32 pines del FML que contienen dos entradas analgicas dedicadas adicionales: ADC6 y ADC7.En el entorno de Arduino, estas patillas se convierten en entradas analgicas Arduino 6 y 7, respectivamente.El diagrama siguiente proviene de la pgina vinculada anteriormente:

2.a.Orangutn SV-xx8 y BT-168 Pin Asignaciones

Orangutn SV-168 vista desde abajo con dimensiones (cartografa pin de Arduino).

Orangutn LV-168 vista desde abajo con dimensiones (cartografa pin de Arduino).

Tabla Asignacin Pin Ordenado por funcinFuncinArduino Pinmega168 Pin

digital de E / S (x8)pines digitales 0 y 1entradas analgicas 0-5PD0, PD1,PC0 - PC5

entradas analgicas (x8)entradas analgicas 0-7PC0 - PC5, ADC6, ADC7

1 de control del motor (A y B)pines digitales 5 y 6PD5 y PD6

2 de control del motor (A y B)pines digitales 3 y 11PD3 y PB3

LED rojo de usuariopin digital 1PD1

LED verde usuariopin digital 7PD7

pulsadores de usuario (x3)entradas digitales 9, 12 y 13PB1, PB4 y PB5

zumbadorpin digital 10PB2

Control LCD (RS, R / W, E)pines digitales 2, 8 y 4PD2, PB0, y PD4

Datos LCD (4 bits: DB4 - DB7)pines digitales 9, 12, 13 y 7PB1, PB4, PB5, y PD7

trimmer de usuario potencimetroentrada analgica 7(a travs de puente)ADC7

sensor de temperatura (slo LV-168)de la batera del monitor de tensin (SV-168 solamente)entrada analgica 6(a travs de puente SMT)ADC6

Lneas de programacin ICSP (x3)pines digitales 11, 12 y 13PB3, PB4, PB5

pulsador de rearmereajustarPC6

UART (RX y TX)pines digitales 0 y 1PD0 y PD1

I2C / TWI (SDA y SCL)entradas analgicas 4 y 5PC4 y PC5

SPIinaccesible para el usuario

Tabla Asignacin Pin Ordenado por PinArduino PinFuncin orangutnNotas / Funciones Alternos

pin digital 0E / S digitalUSART pin de entrada (RXD)

pin digital 1E / S digitalconectado al LED rojo de usuario(altas vueltas LED encendido)pin de salida USART (TXD)

pin digital 2De control LCD de lnea RSinterrupcin externa 0 (INT0)

pin digital 3Lnea de control M2Timer2 salida PWM B (OC2B)

pin digital 4Lnea de control LCD EUSART entrada de reloj externa / salida (XCK)contador externo Timer0 (T0)

pin digital 5Lnea de control M1Timer0 salida PWM B (OC0B)

pin digital 6Lnea de control M1Timer0 PWM de salida A (OC0A)

pin digital 7Lnea de datos LCD DB7conectado al LED verde usuario(altas vueltas LED encendido)

pin digital 8LCD lnea de control R / WTimer1 captura de entrada (ICP1)salida de reloj del sistema dividido (CLK0)

pin digital 9Lnea de datos LCD DB4pulsador de usuario(pulsando tira pin baja)Timer1 salida PWM A (OC1A)

pin digital 10zumbadorTimer1 salida PWM B (OC1B)

pin digital 11Lnea de control M2Salida Timer2 PWM A (OC2A)lnea de programacin ISP

pin digital 12Lnea de datos LCD DB5pulsador de usuario(pulsando tira pin baja)Precaucin: tambin una lnea de programacin ISP

pin digital 13Lnea de datos LCD DB6pulsador de usuario(pulsando tira pin baja)Precaucin: tambin una lnea de programacin ISP

entrada analgica 0entrada analgica y E / S digitalADC canal de entrada 0 (ADC0)

entrada analgica 1entrada analgica y E / S digitalCanal de entrada ADC 1 (ADC1)

entrada analgica 2entrada analgica y E / S digitalCanal de entrada ADC 2 (ADC2)

entrada analgica 3entrada analgica y E / S digitalCanal de entrada ADC 3 (ADC3)

entrada analgica 4entrada analgica y E / S digitalCanal de entrada ADC 4 (ADC4)I2C / TWI lnea de datos de entrada / salida (SDA)

entrada analgica 5entrada analgica y E / S digitalCanal de entrada ADC 5 (ADC5)I2C / TWI lnea de reloj (SCL)

entrada analgica 6de entrada analgica dedicadaSMT puenteado a sensor de temperatura(slo LV-168)SMT puenteado de supervisar voltaje de la batera(SV-168 solamente)canal de entrada ADC 6 (ADC6)

entrada analgica 7de entrada analgica dedicadapuenteado a recortador usuario potencimetrodel canal de entrada ADC 7 (ADC7)

reajustarpulsador de rearmetirado internamente alta;activo bajoE / S digital desactivado por defecto

2.b.beb orangutn B Pin Asignaciones

Tabla Asignacin Pin Ordenado por funcinFuncinArduino Pinmega168 Pin

digital de E / S (x16)pines digitales 0-2, 4, 7-10, 12, 13entradas analgicas 0-5PD0 - PD2, PD4, PD7,PB0 - PB2, PB4, PB5,PC0 - PC5

entradas analgicas (x8)entradas analgicas 0-7PC0 - PC5, ADC6, ADC7

1 de control del motor (A y B)pines digitales 5 y 6PD5 y PD6

2 de control del motor (A y B)pines digitales 3 y 11PD3 y PB3

LED rojo de usuariopin digital 1PD1

trimmer de usuario potencimetroentrada analgica 7ADC7

Lneas de programacin ICSP (x3)pines digitales 11, 12 y 13PB3, PB4, PB5

REINICIOreajustarPC6

UART (RX y TX)pines digitales 0 y 1PD0 y PD1

I2C / TWI (SDA y SCL)entradas analgicas 4 y 5PC4 y PC5

SPIinaccesible para el usuario

Timer1 salidas PWM (A y B)pines digitales 9 y 10PB1 y PB2

Tabla Asignacin Pin Ordenado por PinArduino PinFuncin orangutnNotas / Funciones Alternos

pin digital 0E / S digitalUSART pin de entrada (RXD)

pin digital 1E / S digitalconectado al LED rojo de usuario(altas vueltas LED encendido)pin de salida USART (TXD)

pin digital 2E / S digitalinterrupcin externa 0 (INT0)

pin digital 3Lnea de control M2Timer2 salida PWM B (OC2B)

pin digital 4E / S digitalUSART entrada de reloj externa / salida (XCK)contador externo Timer0 (T0)

pin digital 5Lnea de control M1Timer0 salida PWM B (OC0B)

pin digital 6Lnea de control M1Timer0 PWM de salida A (OC0A)

pin digital 7E / S digital

pin digital 8E / S digitalTimer1 captura de entrada (ICP1)salida de reloj del sistema dividido (CLK0)

pin digital 9E / S digitalTimer1 salida PWM A (OC1A)

pin digital 10E / S digitalTimer1 salida PWM B (OC1B)

pin digital 11Lnea de control M2Salida Timer2 PWM A (OC2A)lnea de programacin ISP

pin digital 12E / S digitalPrecaucin: tambin una lnea de programacin ISP

pin digital 13E / S digitalPrecaucin: tambin una lnea de programacin ISP

entrada analgica 0entrada analgica y E / S digitalADC canal de entrada 0 (ADC0)

entrada analgica 1entrada analgica y E / S digitalCanal de entrada ADC 1 (ADC1)

entrada analgica 2entrada analgica y E / S digitalCanal de entrada ADC 2 (ADC2)

entrada analgica 3entrada analgica y E / S digitalCanal de entrada ADC 3 (ADC3)

entrada analgica 4entrada analgica y E / S digitalCanal de entrada ADC 4 (ADC4)I2C / TWI lnea de datos de entrada / salida (SDA)

entrada analgica 5entrada analgica y E / S digitalCanal de entrada ADC 5 (ADC5)I2C / TWI lnea de reloj (SCL)

entrada analgica 6de entrada analgica dedicadaCanal de entrada ADC 6 (ADC6)

entrada analgica 7de entrada analgica dedicadaconectado al recortador de usuario potencimetrocanal de entrada ADC 7 (ADC7)

reajustarREINICIOpintirado internamente alta;activo bajoE / S digital desactivado por defecto

2.c3pi Robot Pin Asignaciones

Caractersticas generales del robot 3pi Pololu, vista desde arriba.

Etiquetada vista inferior del robot 3pi Pololu.

Caractersticas especficas del robot 3pi Pololu, vista desde arriba.

Tabla Asignacin Pin Ordenado por funcinFuncinArduino Pinmega168 Pin

Me digital gratuito / Os (x3)(Quite el puente PC5 al pin digital gratuito 19)pines digitales 0, 1, 19PD0, PD1, PC5

entradas analgicas libres (si se quita los puentes, x3)entradas analgicas 5-7PC5, ADC6, ADC7

motor 1 (motor izquierdo) de control (A y B)pines digitales 5 y 6PD5 y PD6

motor 2 (motor derecho) de control (A y B)pines digitales 3 y 11PD3 y PB3

Sensores de reflectancia de QTR-RC (de izquierda a derecha, x5)pines digitales 14-18PC0 - PC4

rojo (izquierda) LED usuariopin digital 1PD1

verde (derecha) LED usuariopin digital 7PD7

pulsadores de usuario (de izquierda a derecha, x3)entradas digitales 9, 12 y 13PB1, PB4 y PB5

zumbadorpin digital 10PB2

Control LCD (RS, R / W, E)pines digitales 2, 8 y 4PD2, PB0, y PD4

Datos LCD (4 bits: DB4 - DB7)pines digitales 9, 12, 13 y 7PB1, PB4, PB5, y PD7

sensor de reflectancia IR LED de control(conducir bajo para encender LEDs IR apagado)pin digital 19(a travs del puente)PC5

trimmer de usuario potencimetroentrada analgica 7(a travs de puente)ADC7

2 / 3rds de voltaje de la bateraentrada analgica 6(a travs de puente)ADC6

Lneas de programacin ICSP (x3)pines digitales 11, 12 y 13PB3, PB4, PB5

pulsador de rearmereajustarPC6

UART (RX y TX)pines digitales 0 y 1PD0 y PD1

I2C / TWIinaccesible para el usuario

SPIinaccesible para el usuario

Tabla Asignacin Pin Ordenado por PinArduino PinFuncin orangutnNotas / Funciones Alternos

pin digital 0Me digital gratuito / SUSART pin de entrada (RXD)

pin digital 1Me digital gratuito / Sconectado al LED rojo de usuario(altas vueltas LED encendido)pin de salida USART (TXD)

pin digital 2De control LCD de lnea RSinterrupcin externa 0 (INT0)

pin digital 3Lnea de control M2Timer2 salida PWM B (OC2B)

pin digital 4Lnea de control LCD EUSART entrada de reloj externa / salida (XCK)contador externo Timer0 (T0)

pin digital 5Lnea de control M1Timer0 salida PWM B (OC0B)

pin digital 6Lnea de control M1Timer0 PWM de salida A (OC0A)

pin digital 7Lnea de datos LCD DB7conectado al LED verde usuario(altas vueltas LED encendido)

pin digital 8LCD lnea de control R / WTimer1 captura de entrada (ICP1)salida de reloj del sistema dividido (CLK0)

pin digital 9Lnea de datos LCD DB4pulsador de usuario(pulsando tira pin baja)Timer1 salida PWM A (OC1A)

pin digital 10zumbadorTimer1 salida PWM B (OC1B)

pin digital 11Lnea de control M2Salida Timer2 PWM A (OC2A)lnea de programacin ISP

pin digital 12Lnea de datos LCD DB5pulsador de usuario(pulsando tira pin baja)Precaucin: tambin una lnea de programacin ISP

pin digital 13Lnea de datos LCD DB6pulsador de usuario(pulsando tira pin baja)Precaucin: tambin una lnea de programacin ISP

pin digital 14Sensor de reflectancia de QTR-RC(Unidad de alta para el 10 de nosotros, y luego esperar a la entrada de lnea para ir bajo)sensor marcado PC0 (sensor ms a la izquierda)

pin digital 15Sensor de reflectancia de QTR-RC(Unidad de alta para el 10 de nosotros, y luego esperar a la entrada de lnea para ir bajo)sensor marcado PC1

pin digital 16Sensor de reflectancia de QTR-RC(Unidad de alta para el 10 de nosotros, y luego esperar a la entrada de lnea para ir bajo)sensor marcado PC2 (sensor central)

pin digital 17Sensor de reflectancia de QTR-RC(Unidad de alta para el 10 de nosotros, y luego esperar a la entrada de lnea para ir bajo)sensor marcado PC3

pin digital 18Sensor de reflectancia de QTR-RC(Unidad de alta para el 10 de nosotros, y luego esperar a la entrada de lnea para ir bajo)sensor marcado PC4 (sensor ms a la derecha)

pin digital 19entrada analgica y E / S digitalpuenteado con LEDs IR sensores '(conducir bajo apaga emisores)canal de entrada ADC 5 (ADC5)

entrada analgica 6de entrada analgica dedicadapuenteado a 2 / 3rds de voltaje de la bateradel canal de entrada ADC 6 (ADC6)

entrada analgica 7de entrada analgica dedicadapuenteado a recortador usuario potencimetrodel canal de entrada ADC 7 (ADC7)

reajustarpulsador de rearmetirado internamente alta;activo bajoE / S digital desactivado por defecto

3.Configuracin del Arduino Medio AmbienteLas instrucciones de configuracin de esta seccin explican cmo alterar el Arduino IDE para que programe su orangutn o un robot 3pi usando la configuracin correcta, utilizando un programador AVR ISP que soporte el protocolo avrispv2 (como elprogramador AVR Pololu USB) o un Arduino bootloader.1. Ir ahttp://www.arduino.cc/en/Main/Softwarey descargar el software ms reciente para su plataforma Arduino (Arduino 1.0.1 partir de este escrito).2. Agregue lo siguiente al final de laboards.txtarchivo en elarduino-1.0.1 / hardware / Arduinodirectorio:3. ################################################## ############4. 5. orangutan48pgm.name = Pololu Orangutn del beb B-48 a travs del programador6. 7. orangutan48pgm.upload.using = avrispv28. orangutan48pgm.upload.maximum_size = 4,0969. 10. orangutan48pgm.build.mcu = ATmega4811. orangutan48pgm.build.f_cpu = 20000000L12. orangutan48pgm.build.core = arduino13. orangutan48pgm.build.variant = estndar14. 15. ################################################## ############16. 17. orangutan168pgm.name = Pololu Orangutn o robot 3pi w / ATmega168 va programador18. 19. orangutan168pgm.upload.using = avrispv220. orangutan168pgm.upload.maximum_size = 1638421. 22. orangutan168pgm.build.mcu = atmega16823. orangutan168pgm.build.f_cpu = 20000000L24. orangutan168pgm.build.core = arduino25. orangutan168pgm.build.variant = estndar26. 27. ################################################## ############28. 29. orangutan328pgm.name = Pololu Orangutn o robot 3pi w / ATmega328P travs Programador30. 31. orangutan328pgm.upload.using = avrispv232. orangutan328pgm.upload.maximum_size = 3276833. 34. orangutan328pgm.build.mcu = ATmega328P35. orangutan328pgm.build.f_cpu = 20000000L36. orangutan328pgm.build.core = arduinoorangutan328pgm.build.variant = estndarEsto agregar tres opciones para laHerramientas> Juntamen del IDE de Arduino.Si prefiere utilizar un programador diferente que no admite el protocolo avrispv2, a continuacin, cambiar losupload.usinglneas para que coincida con el nombre de su programador / protocolo, y omita el paso 3 (si el programador ya est definido por el entorno Arduino) o aadir la entrada correspondiente para su programador enprogrammers.txt.Estas dos entradas siguientes son opcionales, pero le permiten usar un gestor de arranque Arduino en lugar de un programador externo:################################################## ############

orangutan168.name = Pololu Orangutn o robot 3pi w / ATmega168 a travs del cargador de arranque

orangutan168.upload.protocol = arduinoorangutan168.upload.maximum_size = 15872orangutan168.upload.speed = 144000

orangutan168.bootloader.low_fuses = 0xF6orangutan168.bootloader.high_fuses = 0xddorangutan168.bootloader.extended_fuses = 0x04orangutan168.bootloader.path = optibootorangutan168.bootloader.file = optiboot_atmega168.hexorangutan168.bootloader.unlock_bits = 0x3Forangutan168.bootloader.lock_bits = 0x0F

orangutan168.build.mcu = atmega168orangutan168.build.f_cpu = 20000000Lorangutan168.build.core = arduinoorangutan168.build.variant = estndar

################################################## ############

orangutan328.name = Pololu Orangutn o robot 3pi w / ATmega328P a travs del cargador de arranque

orangutan328.upload.protocol = arduinoorangutan328.upload.maximum_size = 32256orangutan328.upload.speed = 144000

orangutan328.bootloader.low_fuses = 0xF6orangutan328.bootloader.high_fuses = 0xDEorangutan328.bootloader.extended_fuses = 0x05orangutan328.bootloader.path = optibootorangutan328.bootloader.file = optiboot_atmega328.hexorangutan328.bootloader.unlock_bits = 0x3Forangutan328.bootloader.lock_bits = 0x0F

orangutan328.build.mcu = ATmega328Porangutan328.build.f_cpu = 20000000Lorangutan328.build.core = arduinoorangutan328.build.variant = estndarSi desea utilizar el gestor de arranque, usted todava tendr que utilizar un programador AVR cargar inicialmente el gestor de arranque en su orangutn o 3pi, y usted tambin tendr que obtener un adaptador serie USB-a-o RS-232-a-TTL adaptador de serie a travs del cual el software Arduino puede hablar con el bootloader de Arduino en su dispositivo.El Pololu USB AVR programador puede servir como su programador AVR ISP y de USB a serial adaptador.Tenga en cuenta que tendr que o bien restablecer el orangutn / 3pi manualmente cuando se programa con el gestor de arranque o modificar el hardware para permitir que la seal de control DTR a auto-reset del microcontrolador.Tenga en cuenta que el beb orangutn B-48tiene un microcontrolador ATmega48, que carece de una seccin del gestor de arranque, es decir, la versin B-48 slo se puede programar utilizando un ICSP.37. Si est utilizando un programador AVR ISP como nuestro USB AVR programador, aadir lo siguiente al final de laprogrammers.txtarchivo en elarduino-1.0.1 / hardware / Arduinodirectorio:38. avrispv2.name = AVR ISP v239. avrispv2.communication = serialavrispv2.protocol = avrispv2Esto permitir que el Arduino IDE para programar con el protocolo avrispv2 utilizado por nuestro USB AVR Programmer.. 4Utilizando el Arduino IDE: un LED parpadeanteAhora es el momento de dar el Arduino IDE para dar una vuelta.Nuestro primer objetivo ser cargar un boceto LED parpadeante sencillo (programa de Arduino) en nuestra orangutn o 3pi.Abra el Arduino IDE y crear el siguiente bosquejo:?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25/ * * Blink * * El ejemplo bsico Arduino, modificado para trabajar para los orangutanes. * Se enciende un LED durante un segundo, y luego se apaga durante un segundo, * y as sucesivamente ... Nos usar el pin 1 porque orangutanes tienen un LED * en PD1, que corresponde a Arduino pin 1. * * http://www.arduino.cc/en/Tutorial/Blink * / int ledPin = 1; // LED conectado al pin digital 1 (PD1) en orangutanes void setup () // ejecutar una vez, cuando se inicia el croquis { pinMode (ledPin, OUTPUT); // establece el pin digital como salida } void loop () // ejecutar una y otra vez { digitalWrite (ledPin, HIGH); // establece el LED el retardo (1000); // espera un segundo digitalWrite (ledPin, LOW); // establece el LED apagado retardo (1000); // espera un segundo }

O copie el texto anterior en un nuevo boceto en blanco, o descargar este bosquejo comoOrangutanBlinkExample.pde(pde 1k) y abrirlo en el IDE de Arduino.Selecciona una de nuestras tablas especialmente creados utilizando el men Herramientas> Junta:

Seleccione el programador:

Si est utilizando un Pololu USB AVR programador, seleccione "AVR ISP v2" en el men Programador.De lo contrario, consulte la documentacin de su programador para averiguar qu opcin para seleccionar.Seleccione el puerto serie del programador:

Si est utilizando un Pololu USB AVR programador, asegrese de que ha instalado los controladores adecuados (vase lagua del usuario del programador) y conectarlo a su ordenador.Una vez hecho esto, usted debera ser capaz de ver su puerto COM aparece en lasHerramientas> Serial Portmen.Si usted no sabe qu puerto COM su programador est activada, se puede determinar esto crianza de administrador de dispositivos de su equipo y la ampliacin de losPuertos (COM & LPT)lista.Para abrir el administrador de dispositivos, haga clic en "Mi PC" y seleccioneAdministrar, haga clic en elAdministrador de dispositivos deopcin que aparece en el lado izquierdo, enHerramientas del sistema.Busque el puerto que dice "Pololu USB AVR Programmer Puerto de programacin".

Si est utilizando un verdadero programador USB (es decir, uno que no emula un puerto serie), que no es necesario para seleccionar un puerto serie.Programa tu o 3pi Orangutn con el boceto:Conecte el programador con el orangutn o 3pi a travs de su jefe de la ISP de seis pines, asegurndose de que el pin 1 de las lneas programador hasta con el pin 1 del conector de programacin del objetivo.El Orangutn SV-xx8, orangutn LV-168, y 3pi cada uno tiene una cabecera envuelta que har cumplir la orientacin pin correcto, pero el beb orangutn B no lo hace.Pin 1 del orangutn del beb est marcado por una flecha de cobre en el PCB y el pin 1 en nuestro USB AVR Programmer est marcada por un tringulo de plstico en relieve en el conector IDC.Con el programador conectado a su ordenador y su orangutn o 3pi, haga clic en elSubir al Consejo Directivo del I / Obotn (en el crculo en la siguiente captura de pantalla) o pulse Ctrl + T para compilar el boceto y lo cargue en el dispositivo de destino.La barra de estado en la parte inferior de la ventana dir "Subida a la I / O Board ...", mientras que la carga est en curso y se leer "uploading Done." Cuando la carga est completa.Si todo ha funcionado correctamente ahora debera ver usuario roja del blanco LED parpadeante y apaga cada segundo.Tenga en cuenta que si est utilizando un 3pi y an no ha soldado en los LED opcionales a travs de hoyos, usted tendr que mirar en la parte inferior del robot para ver el parpadeo del LED.

5.Arduino Bibliotecas para el orangutn y el robot 3piNota:Debido a que los orangutanes no fueron diseados como placas Arduino oficiales, no todo el cdigo de la biblioteca Arduino existente ser directamente compatible con ellos.Por ejemplo, ciertas funciones Arduino comodelayMicroseconds ()ypulseIn ()estn diseados para funcionar a 16 MHz y por lo tanto su comportamiento se ve alterada por el reloj del orangutn de 20 MHz.En otros casos, las bibliotecas-orangutn especfica pueden entrar en conflicto con las libreras de Arduino existentes, si los dos estn compitiendo por los mismos perifricos de hardware mega168 (por ejemplo, dos bibliotecas que intentan utilizar Timer1 de diferentes maneras no ser compatible).Visin de conjuntoEn esta seccin se ofrece una serie de bibliotecas-orangutn especfica que le permiten hacer interfaz con facilidad con el hardware / 3pi orangutn desde el entorno Arduino.Es importante tener en cuenta que el beb orangutn B es un subconjunto de hardware de la mayor orangutn SV-xx8 y LV-168, y estos orangutanes son (casi) un subconjunto de hardware del robot 3pi.Lo que esto significa es que cualquier cdigo de la biblioteca que funciona en el beb orangutn B tambin trabajar en el robot orangutn y 3pi, y (casi) cualquier cdigo de la biblioteca que funciona en el orangutn tambin trabajar en el 3pi.Las siguientes subsecciones contienen documentacin detallada de cada biblioteca orangutn Arduino.Todas las bibliotecas que se aplican al orangutn va a trabajar para el hardware correspondiente en el robot 3pi.La nica clase biblioteca para lo cual es significativo tener varias instancias es PololuQTRSensors.Todas las otras clases consisten enteramente en mtodos estticos, por lo que no tiene sentido para crear instancias de ellos varias veces.Desde la versin 101 215, las versiones C de las funciones de la biblioteca tambin estn disponibles para su uso en sus programas de Arduino.Esto significa que hay tres formas posibles para que usted pueda llamar a los mtodos de la biblioteca:?1 2 3 4 5 6 7 8 9 10 11unsigned int x; // C ++ a travs de la funcin objeto instanciado OrangutanAnalog analgica; // esta lnea se coloca generalmente por encima de setup () x = analog.readTrimpot (); // C ++ funcin a travs mbito de clase x = OrangutanAnalog :: readTrimpot (); / / funcin C x = read_trimpot ();

Las nicas clases de biblioteca que necesitan ser inicializado explcitamente antes de que se utilizan son PololuQTRSensors y Pololu3pi, ya que estos objetos se inicializan con los parmetros especificados por el usuario.Ninguno de los restantes objetos de la biblioteca Orangutn debe inicializar explcitamente en suconfiguracin ()funcin que la inicializacin se realiza automticamente cuando sea necesario.Instrucciones de descargaLos Pololu Arduino Bibliotecas estn dentro de un archivo comprimido, que se puede descargar desde el siguiente enlace: Pololu Arduino Bibliotecas versin 120914(107k postal), probado con Arduino 1.0.1Si est utilizando una versin anterior del entorno Arduino, le recomendamos que actualice a Arduino 1.0.1 y utilizar la ltima versin de los Pololu Arduino Bibliotecas.Sin embargo, las versiones anteriores de las bibliotecas se proporcionan para garantizar la compatibilidad con los entornos Arduino mayores: PololuArduinoLibraries-111221(107k zip), probados con Arduino 1.0 PololuArduinoLibraries-101215(107k zip), probados con Arduino 0021 PololuArduinoLibraries-080929(86k zip), probados con Arduino 0012 PololuArduinoLibraries-080826(80k zip), probados con Arduino 0011InstalacinNota:Si actualmente tiene una versin ms antigua de nuestras Pololu Arduino Bibliotecas, el primer paso debe ser el de eliminar todos los directorios Orangutan___ y Pololu___ desde el directorio de bibliotecas.Si no realiza este paso, la versin ms reciente de las bibliotecas no puede ser compilado.Descomprimir el archivo y mover cada uno de los directorios Orangutan___ y Pololu___ dentro de la carpeta-libpololu avr en labibliotecassubdirectorio dentro de su cuaderno de dibujo Arduino.Usted puede ver su ubicacin cuaderno de dibujo seleccionandoArchivo> Preferenciasen el entorno Arduino;si no hay ya una carpeta "bibliotecas" en ese lugar, usted debe crear usted mismo.La captura de pantalla muestra donde los directorios de libreras deben aparecer una vez que se extraen:

Despus de instalar la biblioteca, reinicie el entorno de Arduino para que pueda encontrar las libreras y sus ejemplos.Ahora debera ser capaz de utilizar estas bibliotecas en sus bocetos.Por ejemplo, si desea utilizar la biblioteca OrangutanBuzzer, puede seleccionarSketch> Importar biblioteca> OrangutanBuzzerdesde tu Arduino IDE, o simplemente puede escribir#include en la parte superior de su dibujo.Tenga en cuenta que puede que tenga que reiniciar el Arduino IDE antes de ver las nuevas bibliotecas.Si usted no necesita la funcionalidad de una biblioteca especfica, debe dejarlo fuera de su dibujo (simplemente elimine el# includelnea asociada a ella desde la parte superior de su esquema si ya has agregado l).Bibliotecas incluidas ocuparn espacio del programa, incluso si estos no se utilicen en su programa.

Ejemplos de usoLa mayora de las bibliotecas cuentan con al menos un ejemplo boceto que muestra cmo se puede utilizar la biblioteca.Para cargar un boceto ejemplo, abra el Arduino IDE y vaya aArchivo> Ejemplos> Orangutan____.

La biblioteca Pololu3pi viene con varios bocetos de seguimiento de lneas y ejemplo laberinto de resolucin detallados que se pueden cargar medianteArchivo> Ejemplos> Pololu3pi.5.aOrangutanAnalog - Analog Biblioteca entradaVisin de conjuntoEsta biblioteca proporciona un conjunto de mtodos que se pueden utilizar para leer las entradas de tensin analgicas, as como las funciones especficamente diseadas para leer el valor del potencimetro de ajuste (en elrobot 3pi,Orangutn SV-xx8,orangutn LV-168, y elbeb orangutn B), el nivel de voltaje de la batera en milivoltios (robot 3pi, SV-xx8), y el valor del sensor de temperatura en dcimas de grado F o C (en el orangutn slo LV-168).Esta biblioteca le da ms control de las funciones de entrada analgica Arduino existentes.No es necesario para inicializar el objeto OrangutanAnalog antes de su uso.Toda la inicializacin se realiza automticamente cuando sea necesario.Todos los mtodos de esta clase son estticos;nunca se debe tener ms de una instancia de un objeto OrangutanAnalog en su dibujo.Mtodos OrangutanAnalogLa documentacin completa de los mtodos de esta biblioteca se puede encontrar enla seccin 2de laPololu AVR Library Command Reference.Ejemplos de usoEsta biblioteca cuenta con dos bocetos de ejemplo que se pueden cargar por ir aArchivo> Ejemplos> OrangutanAnalog.Los ejemplos de bocetos que vienen con elOrangutanMotorsbiblioteca tambin hacen uso limitado de esta biblioteca.1. OrangutanAnalogExampleMuestra cmo puede utilizar los mtodos en esta biblioteca para leer el voltaje analgico del potencimetro de ajuste en el fondo, mientras que el resto de su cdigo se ejecuta.Si el ADC es libre, el programa se inicia una conversin en elpotencimetro deentrada analgica (canal 7), y luego se procede a ejecutar el resto del cdigo en bucle (), mientras que las obras de hardware ADC.Sondeo del mtodo isConverting () permite que el programa para determinar cundo se completa la conversin y para actualizar su nocin del valor trimpot en consecuencia.Se da retroalimentacin a travs del LED rojo de usuario, cuyo brillo se hace a escala con la posicin trimpot.?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55#include #include / * * OrangutanAnalogExample para el 3pi, Orangutn SV-xx8, * orangutn LV-168, o Orangutn del beb B * * Este bosquejo utiliza la biblioteca OrangutanAnalog para leer la salida de tensin * del potencimetro de ajuste en el fondo mientras que el resto del bucle principal ejecuta. * El LED destella de manera que su brillo aparece proporcional a la * trimpot leds; analgica OrangutanAnalog; unsigned int suma; sin firmar int ; avg sin firmar Char muestras; void setup () // Se ejecuta una vez, cuando se inicia el croquis { analog.setMode (MODE_8_BIT); // 8 bits analgica-digital conversiones suma = 0; muestras = 0; avg = 0; analog.startConversion (ajuste); // inicia conversin inicial } void loop () // ejecutar una y otra vez { si (! analog.isConverting ()) // si la conversin es hecho ... { suma + = analog.conversionResult (); // obtener resultar analog.startConversion (ajuste); // y comenzar la prxima conversin si (++ muestras == 20) { avg = suma / 20; // compute promedio de 20 muestras de resultado ADC muestras = 0; suma = 0; } } // cuando avg == 0, el LED rojo est casi totalmente fuera // cuando avg == 255, el LED rojo est casi totalmente de brillo // debe escalar de forma lineal entre leds.red (LOW); // LED apagado rojos delayMicroseconds (256 - avg); leds.red (HIGH); // LED rojo en delayMicroseconds (avg + 1); }

2. OrangutanAnalogExample2Previsto para el uso en el orangutn LV-168.Tenga en cuenta que se ejecutar en el robot 3pi y Orangutn SV-xx8, pero la temperatura mostrada ser incorrecta como la entrada analgica conectada a la sonda de temperatura en el orangutn LV-168 est conectado a 2 / 3rds de la tensin de la batera en el 3pi y 1/3 de la tensin de la batera en el Orangutn SV-xx8.Se muestra en la pantalla LCD de la salida potencimetro de ajuste en milivoltios y la salida del sensor de temperatura en grados Fahrenheit.Si mantiene el dedo en la parte inferior del PCB del orangutn de LV-168, cerca del centro de la tabla, debera ver la lectura de temperatura lentamente comenzar a subir.Tenga cuidado de no zap la tarjeta con descargas electrostticas si intenta esto!?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49#include #include / * * OrangutanAnalogExample2: el orangutn de LV-168 * * Este bosquejo utiliza la biblioteca OrangutanAnalog para leer la salida de voltaje * del potencimetro (en milivoltios) y leer la Orangutn de LV-168 * Sensor de temperatura en grados Farenheit. Estos valores se imprimen a * la pantalla LCD 10 veces por segundo. Este ejemplo es para uso con el * orangutn LV-168, a pesar de todo, pero la porcin de medicin de temperatura * funcionar en el robot 3pi (en el 3pi, entrada analgica 6 se conecta a 2 / 3rds * de la tensin de la batera en lugar de una sensor de temperatura) y el * Orangutn SV-xx8 (en el SV-xx8, entrada analgica 6 se conecta a 1/3 de * el voltaje de la batera). * * Usted debe ver el cambio de voltaje trimpot como usted le da vuelta, y usted puede * obtener la lectura de temperatura para aumentar poco a poco mediante la celebracin de un dedo en el * inferior del PCB del orangutn de LV-168, cerca del centro de la tabla. * Tenga cuidado de no zap la tarjeta con descargas electrostticas si * Intntelo! * / OrangutanLCD lcd ; OrangutanAnalog analgica; void setup () // ejecuta una vez, cuando se inicia el croquis { analog.setMode (MODE_10_BIT); // 10 bits analgica-digital conversiones } void loop () // ejecutar una y otra vez { lcd .gotoXY (0,0); // cursor del LCD a la posicin inicial (arriba a la izquierda) lcd.print (analog.toMillivolts (analog.readTrimpot ())); // salida trimpot en mV lcd.print ( "mV" ) ; // espacios aadidos son sobrescribir sobra caracteres lcd.gotoXY (0, 1); // LCD cursor al inicio de la segunda lnea // obtener la temperatura en dcimas de grado F unsigned int temp = analog.readTemperatureF (); lcd.print (temp / 10); // obtener el nmero total de grados lcd.print ( '.' ); // imprime el punto decimal lcd.print (temp - (temp / 10) * 10); // impresin el dcimas dgitos lcd.print (( Char ) 223); // imprime un smbolo de grado lcd.print ( "F" ); // espacios aadidos son sobrescribir la izquierda sobre caracteres de retardo (100); // Espera a 100 ms ( reduce el parpadeo LCD) }

5.bOrangutanBuzzer - de Alto Nivel Buzzer Control LibraryVisin de conjuntoEsta biblioteca le permite controlar fcilmente el zumbador piezo en elrobot 3pi,Orangutn SV-xx8yorangutn LV-168.Te da la opcin de jugar ya sea una nota o una frecuencia para una duracin especificada en un volumen determinado, o puede utilizar eljuego ()mtodo para reproducir una meloda entera en el fondo.Control Zumbador se logra utilizando una de las salidas PWM Timer1, y la duracin de tiempo se realiza mediante una alarma de desbordamiento Timer1, por lo queesta biblioteca estar en conflicto con otras bibliotecas que dependen de o reconfiguran Timer1.Por ejemplo, la funcin de ArduinoanalogWrite ()no funcionar en los pines de salida PWM Timer1 una vez que han comenzado a utilizar esta biblioteca en su dibujo.La ventaja de este enfoque es que se puede jugar notas sobre la bocina, dejando la CPU sobre todo libre para ejecutar el resto de tu cdigo.Esto significa que puede tener un juego meloda de fondo mientras su 3pi orangutn o hace su tarea principal.Usted puede sondear elisPlaying ()mtodo para determinar cuando el timbre se termin de tocar.No es necesario para inicializar el objeto OrangutanBuzzer antes de su uso.Toda la inicializacin se realiza automticamente cuando sea necesario.Todos los mtodos de esta clase son estticos;nunca se debe tener ms de una instancia de un objeto OrangutanBuzzer en su dibujo.Mtodos OrangutanBuzzerLa documentacin completa de los mtodos de esta biblioteca se puede encontrar enla seccin 3de laPololu AVR Library Command Reference.Ejemplos de usoEsta biblioteca cuenta con tres bocetos de ejemplo que se pueden cargar por ir aArchivo> Ejemplos> OrangutanBuzzer.1. OrangutanBuzzerExampleDemuestra una forma de utilizar de esta bibliotecaPlayNote ()mtodo para tocar una meloda sencilla almacenada en la memoria RAM.Se debe comenzar inmediatamente a tocar la meloda, y se puede utilizar el botn de usuario superior para detener y reproducir la meloda.El ejemplo est estructurado de modo que usted puede aadir su propio cdigo paraloop ()y la meloda todava jugar normalmente en el fondo, asumiendo que su cdigo se ejecuta con la suficiente rapidez para evitar la insercin de los retrasos entre las notas.Puede utilizar esta misma tcnica para tocar melodas que se han almacenado en la EEPROM (la mega168 tiene suficiente espacio en la memoria EEPROM para almacenar 170 notas).?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115#include #include #include / * * OrangutanBuzzerExample: para el Orangutn SV-xx8, orangutn LV-168, * y 3pi robot * * En este ejemplo se utiliza la biblioteca OrangutanBuzzer para jugar una serie de notas sobre * el timbre. Tambin utiliza la biblioteca OrangutanLCD para mostrar las notas que es * de juego, y utiliza la biblioteca OrangutanPushbuttons para permitir al usuario * STOP / RESET la meloda con la parte superior MELODY_LENGTH 95 // Estas matrices ocupan un total de 285 bytes de RAM (de un lmite 1k) sin firmar carbn nota [MELODY_LENGTH] = { NOTE_E (5), SILENT_NOTE, NOTE_E (5), SILENT_NOTE, NOTE_E (5), SILENT_NOTE , NOTE_C (5), NOTE_E (5), NOTE_G (5), SILENT_NOTE, NOTE_G (4), SILENT_NOTE, NOTE_C (5), NOTE_G (4), SILENT_NOTE, NOTE_E (4), NOTE_A (4), NOTE_B (4 ), NOTE_B_FLAT (4), NOTE_A (4), NOTE_G (4), NOTE_E (5), NOTE_G (5), NOTE_A (5), NOTE_F (5), NOTE_G (5), SILENT_NOTE, NOTE_E (5), NOTE_C (5), NOTE_D (5), NOTE_B (4), NOTE_C (5), NOTE_G (4), SILENT_NOTE, NOTE_E (4), NOTE_A (4), NOTE_B (4), NOTE_B_FLAT (4), NOTE_A (4) , NOTE_G (4), NOTE_E (5), NOTE_G (5), NOTE_A (5), NOTE_F (5), NOTE_G (5), SILENT_NOTE, NOTE_E (5), NOTE_C (5), NOTE_D (5), NOTE_B ( 4), SILENT_NOTE, NOTE_G (5), NOTE_F_SHARP (5), NOTE_F (5), NOTE_D_SHARP (5), NOTE_E (5), SILENT_NOTE, NOTE_G_SHARP (4), NOTE_A (4), NOTE_C (5), SILENT_NOTE, NOTE_A (4), NOTE_C (5), NOTE_D (5), SILENT_NOTE, NOTE_G (5), NOTE_F_SHARP (5), NOTE_F (5), NOTE_D_SHARP (5), NOTE_E (5), SILENT_NOTE, NOTE_C (6), SILENT_NOTE, NOTE_C (6), SILENT_NOTE, NOTE_C (6), SILENT_NOTE, NOTE_G (5), NOTE_F_SHARP (5), NOTE_F (5), NOTE_D_SHARP (5), NOTE_E (5), SILENT_NOTE, NOTE_G_SHARP (4), NOTE_A (4) , NOTE_C (5), SILENT_NOTE, NOTE_A (4), NOTE_C (5), NOTE_D (5), SILENT_NOTE, NOTE_E_FLAT (5), SILENT_NOTE, NOTE_D (5), NOTE_C (5) }; unsigned int duracin [MELODY_LENGTH] = { 100, 25, 125, 125, 125, 125, 125, 250, 250, 250, 250, 250, 375, 125, 250, 375, 250, 250, 125, 250, 167, 167, 167, 250, 125 , 125, 125, 250, 125, 125, 375, 375, 125, 250, 375, 250, 250, 125, 250, 167, 167, 167, 250, 125, 125, 125, 250, 125, 125, 375 , 250, 125, 125, 125, 250, 125, 125, 125, 125, 125, 125, 125, 125, 125, 250, 125, 125, 125, 250, 125, 125, 200, 50, 100, 25 , 500, 250, 125, 125, 125, 250, 125, 125, 125, 125, 125, 125, 125, 125, 125, 250, 250, 125, 375, 500 }; OrangutanLCD del LCD; OrangutanPushbuttons botones; zumbador OrangutanBuzzer ; sin firmar carbn currentIdx; void setup () // ejecutar una vez, cuando se inicia el croquis { currentIdx = 0; lcd.print ( "Msica!" ); } void loop () // ejecutar una y otra vez { // si no han terminado de jugar la cancin y // el zumbador est listo para la siguiente nota, reproducir la siguiente nota si (currentIdx