PB5
LCD datos DB6
QTR-RC
PC0
sensor reflexión
QTR-RC
PC1
sensor reflexión
QTR-RC
PC2
sensor reflexión
QTR-RC
PC3
sensor reflexión
QTR-RC
PC4
sensor reflexión
Entrada analogica
PC5
y I/O digital
Entrada dedicada
ADC6
analogica
Entrada dedicada
ADC7
analogica
reset
Boton de RESET
10. Información para su expansión
10.a Programa serie para esclavo.
La librería Pololu AVR (ver sección 5.a) viene con un ejemplo de programa esclavo-serie para
3pi en libpololu-avr\examples\3pi-serial-slave, y el correspondiente programa maestro de
comunicación serie en libpololu-avr\examples\3pi-serial-master Este ejemplo muestra cómo
utilizar un bucle anidado en modo SERIAL_CHECK para recibir e interpretar un conjunto
simple de comandos. Los comandos de control de diversas funciones del 3pi, por lo que es
posible utilizar el 3pi como "base tonta" controlada por otro procesador situado en la placa de
ampliación.
Es fácil añadir más comandos o adaptar la biblioteca a trabajar en una placa diferente.
La documentación completa de las funciones serie usadas se encuentra en Section 9 de la Pololu
AVR Library Command Reference.
Este programa esclavo recibes datos vía serie en el port PD0 (RX) del 3pi y transmite respuestas
(si es necesario) en el port PD1 (TX), a velocidad de 115.200 baudios , nivel de protocolo serie
TTL.
En este ejemplo, sin paridad, 8 bits de datos, y un stop bit (115200,N,8,1). Los comandos
ejecutados están compuestos de un solo byte de comando seguido por cero o más bytes de datos.
Para hacer más fácil la diferenciación entre byte de comando y byte de datos, los comandos
están todos en la gama de 0x80-0xFF (1xxxxxxx), mientras que los bytes de datos se encuentran
en la gama 0x00-0x7F (0xxxxxxx). Es decir, los comandos tienen el séptimo bit a 1 y los datos
están a 0.
Algunos comandos resultan del envió de datos para el control del 3pi. Para los comandos en
donde los enteros se envían de vuelta, el byte menos significativo es enviado primero (little
endian).
Si comandos o bytes de datos se detectan erróneos, el programa emite un pitido y muestra un
mensaje de error en la pantalla de la LCD. Esto significa que si estás utilizando el kit de
Botón de usuario (pulsando pulls pin low)
Cuidado: también como linea de programación ISP
(esta alto durante 10 us, espera entrada de linea para pasar a
bajo)
Sensor etiquetado como PC0 (sensor mas a izquierda)
(esta alto durante 10 us, espera entrada de linea para pasar a
bajo)
sensor etiquetado como PC1
(esta alto durante 10 us, espera entrada de linea para pasar a
bajo)
sensor etiquetado como PC2 (sensor central)
(esta alto durante 10 us, espera entrada de linea para pasar a
bajo)
sensor etiquetado como PC3
(esta alto durante 10 us, espera entrada de linea para pasar a
bajo)
sensor etiquetado como PC4 (sensor mas a derecha)
jumpered to sensors' IR LEDs (driving low turns off emitters)
ADC input channel 5 (ADC5)
jumpered to 2/3rds of battery voltage ADC input channel 6
(ADC6)
jumpered to user trimmer potentiometer ADC input channel 7
(ADC7)
internally pulled high; active low digital I/O disabled by default