ATTiny USI I2C introducción - una interfaz de comunicación de gran alcance, rápido y conveniente para sus proyectos ATTiny! (4 / 8 paso)

Paso 4: Implementación de código abierto I2C ATTiny USI - Resumen

En este momento en el tutorial, debe estar por lo menos básicamente familiarizado con el protocolo I2C.  Ahora voy a entrar en detalle en la real implementación del protocolo I2C para el hardware de USI ATTiny.

Para este prefacio, la tabla que se muestra en la imagen principal de este paso es un regulador del motor personalizado paso a paso unipolar que diseñé como parte de mi proyecto esta primavera.  La Junta es capaz de controlar un motor paso a paso unipolar solo con PWM, velocidad variable y tres modos de escalonamiento (single-stepping, poder caminar y caminar por el medio).  También opera en ráfagas, como el controlador sólo ejecutará el motor para el número determinado de pasos.  Para un funcionamiento continuo, el contador de paso a paso debe ser recargado por lo que está impulsando la junta antes de que llegue a cero.  Nada de esto es importante para el tutorial.

Lo importante aquí es que el robot estos poder tableros tiene tres ruedas (las ruedas omnidireccionales, dispuestas en un patrón triangular).  Quería construir tres tableros idénticos pero sólo utilizar una única interfaz serial RS-232 de la computadora principal del robot (una laptop) para el control de los tres.  La idea que se me ocurrió fue utilizar el puerto serie para la interfaz de la computadora y el bus I2C para conectar todos los tableros de tres.  En esta configuración, la placa conectada a la PC toma la función de maestro además de ser un nodo esclavo.  La PC envía que I2C mensajes en el bus de las tres juntas operar sobre el formato.

Para esta tarea, mi consejos tendría que apoyar modos tanto I2C, siendo capaces de funcionar como un esclavo y un amo dependiendo de las operaciones del puerto serie.  Sabiendo muy poco sobre el hardware de la USI y sólo un poco más sobre el protocolo I2C en general, set para dominar el protocolo I2C, para hacerlo mi esclavo y mando a mi las transmisiones de datos.  Y que lo hice, y funcionó bien para el proyecto.

Todo hasta que me dieron mi frambuesa Pi por lo menos, porque cuando finalmente consiguió alrededor a jugar con la IP, he intentado conectar mi I2C motor placas al puerto I2C en un intento de tener un robot Pi-powered.  Por desgracia, no importa qué comandos me envió, el Pi podría no lograrás comunicación.  Ya que nunca había validado mi protocolo más allá de mi propio código maestro hablando con mi propio código de esclavo, pensé no aplicar el derecho sólo de protocolo y se sentó abajo para hacer que todo funcione correctamente.  Que hice con el nuevo código mucho más ágil, organizado y comprensible (abundancia para todo aquel que quiera aprender!).  Puesto que mi viaje en el mundo de I2C era áspera, me decidí a publicar aquí para que ver y entrar en tanto detalle como pude para aclarar la funcionalidad de I2C.

En los próximos pasos se hablo sobre el hardware de la USI y funciona como un maestro y un esclavo.  También he adjuntado mi archivos de código USI.  Quiero gente para una buena implementación de USI y también quiero que lea cómo funciona, sabiendo exactamente lo que está sucediendo es crucial cuando trata de un sistema complejo, de bajo nivel, así que he comenté mis archivos bien.

Artículos Relacionados

Cómo hacer una ballesta de madera extremadamente de gran alcance!

Cómo hacer una ballesta de madera extremadamente de gran alcance!

Helloen este video le estoy mostrando cómo hacer una ballesta muy potente compuestoDisfruta!: )
Shield Arduino Solar - una fuente solar DIY para sus proyectos, sin esperar a PCB

Shield Arduino Solar - una fuente solar DIY para sus proyectos, sin esperar a PCB

este instructable es una versión básica de Bley Joel ("es 9:00 en sábado, la muchedumbre regular baraja en") Protector Solary deberían funcionar para la mayoría arduinos.  Lo he probado con Arduino Pro de SparkFun y el nuevo Leonardo.Yo y los ot
PC controlado por Bluetooth Robot (con una interfaz gráfica de usuario!)

PC controlado por Bluetooth Robot (con una interfaz gráfica de usuario!)

En este Instructable le mostrará cómo construir un robot que se controla vía Bluetooth con un teclado, tiene una interfaz gráfica de usuario construida con el proceso que muestra la entrada del teclado y realmente convierte la opción todo en una gran
Cubecube: Una interfaz Tangible de CAD.

Cubecube: Una interfaz Tangible de CAD.

Cubecube - un proyecto de hardware open source - es una interfaz táctil y tangible para CAD (diseño asistido por ordenador). Diseño de código abierto plataformas siguen apareciendo, hay una oportunidad para explorar nuevas posibilidades en lo que cre
TapTunes - una interfaz Tap a iTunes

TapTunes - una interfaz Tap a iTunes

como parte de mi proyecto de término de interacción persona-ordenador, yo montada encima de un pequeño programa que permitiría a los usuarios controlar iTunes pulsando varios patrones en un sensor piezoeléctrico.  La Fundación de este proyecto fue el
Casa calefacción VSCP y una interfaz web

Casa calefacción VSCP y una interfaz web

Mis padres están jubilados y viven en el sur de Francia. Cálido en verano pero también puede ser frío durante el invierno.Que utilizan para viajar por varias semanas durante el invierno para visitar amigos y familiares, y como calientan la casa con m
DIDI: Una interfaz usable MIDI para aplicaciones de DJ

DIDI: Una interfaz usable MIDI para aplicaciones de DJ

FondoDIDI fue mi proyecto final de carrera para mi Licenciatura en música tecnología y electrónica aplicada en la Universidad de York. Mi reto era crear una pieza de tecnología portátil de música. Haber tenido experiencia con DJ ' s en el pasado, pen
Introducción: Una noche de intercambios de aprendizaje

Introducción: Una noche de intercambios de aprendizaje

Este es un taller de aprendizaje creativo inspirado y adaptado de clase semana 4 "compañeros" actividad de MIT MediaLab aprendizaje creativo de aprendizaje (LCL) masivo abierto en línea curso (MOOC).Más información aquí: http://discuss-learn.med
Interfaz de comunicación 1-wire

Interfaz de comunicación 1-wire

¿Qué es la tecnología 1-Wire?La base de la tecnología 1-Wire es un protocolo serial usando una referencia de línea y tierra única de datos para la comunicación. Master 1-Wire inicia y controla la comunicación con uno o más dispositivos 1-Wire esclavo
Utilizando powertool baterías como una fuente de alimentación genérica para otros proyectos

Utilizando powertool baterías como una fuente de alimentación genérica para otros proyectos

En este proyecto, voy a mostrar cómo aprovechar Ryobi baterías de powerpack para otros usos.¿Por qué hacer esto? Powertool batteires vienen con protección integrada de calidad, buena calidad cargadores, piezas son fácilmente disponible (es decir, más
Soporte de pintura conveniente para una escalera

Soporte de pintura conveniente para una escalera

Aquí es una manera muy barata, muy conveniente, para pintar en la parte superior de una escalera sin tener que sostener un cepillo y un bote de pintura. Puede instalarse en una escalera en 2 minutos y utiliza una taza de cerveza desechables extraíble
Pegar una rayita falsa para sus pelucas

Pegar una rayita falsa para sus pelucas

Hola chicos y Bienvenidos a mi tutorial paso a paso sobre cómo pegar una rayita de pelucas :D* Esta alteración de la peluca es para Sakura de Gate 7 (por abrazadera).¡ Disfrute!Paso 1: referencias! Como de costumbre: conseguir algunas buenas referenc
Cómo hacer una batería de gran alcance del agua

Cómo hacer una batería de gran alcance del agua

en este Instructable voy a explicar cómo hacer una batería de gran alcance que funciona con agua de la lluvia!Esta batería es ambientalmente amigable porque puede funcionar en el agua de lluvia. Todavía necesita los metales. Agua destilada no va a fu
Cómo hacer una pistola de nerf baratas y de gran alcance

Cómo hacer una pistola de nerf baratas y de gran alcance

este es mi primer instructivo, por lo que traté de hacerlo simple.El propósito de este instructivo es hacer una pistola de dardos Nerf barata que lleva 25 cartuchos y dispara más rápido que una pistola de Nerf promedio.La idea principal es hacer un s