tag:blogger.com,1999:blog-23995323196963069902024-02-06T18:54:08.332-08:00LinuxElectrónicoBlog sobre electrónica y el sistema operativo LinuxAstaroth86http://www.blogger.com/profile/03504822653197650455noreply@blogger.comBlogger13125tag:blogger.com,1999:blog-2399532319696306990.post-76307393070629015282012-01-26T12:44:00.000-08:002012-01-26T12:44:41.315-08:00ChipKit<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.digilentinc.com/Data/Products/CHIPKIT-MAX32/chipKIT-Max32-obl-500.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="234" src="http://www.digilentinc.com/Data/Products/CHIPKIT-MAX32/chipKIT-Max32-obl-500.jpg" width="320" /></a></div>
Bueno, pues estas navidades me han regalado una placa ChipKit MAX32. Esta placa es un "Arduino" pero en lugar de utilizar un micro Atmel, lo que lleva es un micro MicroChip de 32 bits.<br />
<br />
Esta placa equivale al arduino mega pero el ChipKit tienes mas pines y mas memoria RAM y mas memoria de programa, esa fué la razon principal por la que me decidí por esta placa.<br />
<br />
El IDE que utiliza es un clon del IDE de Arduino, solo que tiene unas modificaciones para poder funcionar con estas placas ademas de ser compatible con las placas de Arduino. El codigo y librerias hechas para Arduino son compatibles con la placa ChipKit peeeeeeerooo no del todo, hay librerias que no son totalmente compatibles, sobre todo las que llevban codigo que utilizan registros o claves especificas de los micros Atmel, ya se sabe que no todo el monte es orégano. De todas formas si eres un poco curioso puedes adaptar las librerias y en el futuro se desarrollaran librerías para estas placas, ten en cuenta que no hace ni un año que han salido en el mercado y este está totalmente absorbido por las placas Arduino con micros Atmel.<br />
<br />
Yo por ahora he probado algunas cosas y han funcionado en un Arduino UNO y en mi placa ChipKit Max32.<br />
<br />Astaroth86http://www.blogger.com/profile/03504822653197650455noreply@blogger.com0tag:blogger.com,1999:blog-2399532319696306990.post-33093171424136677352012-01-26T12:26:00.000-08:002012-01-26T12:26:37.892-08:00Arduino<div class="separator" style="clear: both; text-align: center;">
<a href="http://arduino.cc/en/uploads/Tutorial/Arduino_bb.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://arduino.cc/en/uploads/Tutorial/Arduino_bb.png" /></a></div>
Bueno, después de mucho tiempo vuelvo a escribir una entrada. Esta vez voy ha hablaros de la plataforma Arduino.<br />
<br />
Arduino es una plataforma de hardware libre que utiliza un microcontrolador de marca Atmel (no confundir con ACME) y básicamente lo que tiene es un pin-out con las entradas y salidas digitales y analógicas del micro, además, añade un puerto USB y los pines de alimentación.<br />
<br />
Después en el ordenador tienes que instalar un software (totalmente libre también) que es un IDE para programar el microcontrolador. El lenguaje que utiliza se denomina processing/Wiring, a mi se me parece mucho a C, al menos las pruebas que he hecho. Es una plataforma con muchas posibilidades y realmente su éxito consiste en que acerca mucho el mundo de la electrónica y la programación a la gente que apenas tiene conocimientos, permitiéndoles tener en una sola placa un programador y unos pines ya preparados, además de miles de ejemplos y librerías ya desarrolladas en la red.<br />
<br />
Yo estoy asistiendo a un taller en el media-lab prado y me parece muy interesante, ya os iré contando mas cosas.Astaroth86http://www.blogger.com/profile/03504822653197650455noreply@blogger.com0tag:blogger.com,1999:blog-2399532319696306990.post-28010866972388566252011-10-26T15:13:00.000-07:002011-10-26T15:13:20.996-07:00Nuevo proyectoPues si, ya voy a empezar a la vez que me preparo matemáticas e ingles un nuevo proyecto y va a consistir en una estación meteorológica que va a medir humedad, temperatura y presión. Después como segundo paso, enviara los datos recogidos a un PC con una pequeña aplicación gráfica recojo esos datos y los muestro en pantalla.<br />
<br />
A ver que tal me va, ya iré publicando las dificultades que me encuentro.Astaroth86http://www.blogger.com/profile/03504822653197650455noreply@blogger.com0tag:blogger.com,1999:blog-2399532319696306990.post-45637340018747998972011-10-26T15:05:00.000-07:002011-10-26T15:07:00.732-07:00Código fuente del proyectoAquí pongo los enlaces a los dos archivos .C del proyecto, si tienes alguna duda no dudes en decírmelo.<br />
<br />
Código fuente del pic de los motores:<br />
<a href="http://dl.dropbox.com/u/2108267/CodigoFuenteProyecto/motores.c">motores.c</a><br />
<br />
Código fuente del pic de los sensores:<br />
<a href="http://dl.dropbox.com/u/2108267/CodigoFuenteProyecto/sensores.c">sensores.c</a><br />
<br />
Y ya por fin he publicado todo el proyecto. Espero que puedas montarlo tu mism@ y aprendas tanto como he aprendido yo diseñándolo y construyéndolo.Astaroth86http://www.blogger.com/profile/03504822653197650455noreply@blogger.com0tag:blogger.com,1999:blog-2399532319696306990.post-5633766290561672982011-10-26T14:59:00.000-07:002011-10-26T14:59:08.717-07:00En esta entrada termino de publicar la parte de hardware de mi proyecto, estas son las caras de pistas y de componentes de las dos placas:<br />
<br />
Placa de motores:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI-BUZOuf7uhfwA9j4OvxgS3WGCChcKhYmFj5acHOdodB9hIIhXo_EcYlBvyCPsiQTUrGO6OiLuVk6-VhaDZbfyLDvw3HbrrqIxr3VBP7PbnmRUrJgFaOI9lUPlHxNbZfBuXWebkeJT3k/s1600/layaut+motores.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI-BUZOuf7uhfwA9j4OvxgS3WGCChcKhYmFj5acHOdodB9hIIhXo_EcYlBvyCPsiQTUrGO6OiLuVk6-VhaDZbfyLDvw3HbrrqIxr3VBP7PbnmRUrJgFaOI9lUPlHxNbZfBuXWebkeJT3k/s320/layaut+motores.jpg" width="232" /></a></div>
<br />
<br />
<br />
<br />
<br />
Placa de Sensores:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggxNqOUzYemHtL1AcBY8aiJeNnag2UNLk7v9X0JrZRJZ3b9DVnCxU0w6cJViQ9W2DTg11KZDQzWaWdrGCLwffHG4Ow8-Vp1AP7A5BFavyFDeZ2xLFTF3vsae76q_X1hb7JXaD8mLllJCA/s1600/layaut+sensores.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggxNqOUzYemHtL1AcBY8aiJeNnag2UNLk7v9X0JrZRJZ3b9DVnCxU0w6cJViQ9W2DTg11KZDQzWaWdrGCLwffHG4Ow8-Vp1AP7A5BFavyFDeZ2xLFTF3vsae76q_X1hb7JXaD8mLllJCA/s320/layaut+sensores.jpg" width="232" /></a></div>
<br />
<br />
<br />
<br />
Se que se podria haber diseñado mucho mejor, pero es mi primer proyecto serio y espero poder realizarle mejoras pronto.<br />Astaroth86http://www.blogger.com/profile/03504822653197650455noreply@blogger.com0tag:blogger.com,1999:blog-2399532319696306990.post-6935644588405380092011-10-26T14:39:00.000-07:002011-10-26T14:40:33.181-07:00Esquema de la placa de sensoresDespués de un tiempo de descanso, ya publico el esquema de la placa que controla los sensores.<br />
<br />
En esta placa, tengo un puerto auxiliar que servirá para futuras ampliaciones.<br />
El bus PIC es el bus por el que le llega a la placa la alimentación y la comunicación con el PIC que controla los motores.<br />
Tiene 8 botones para iniciarlo, pararlo, o elegir como queremos que resuelva el camino. También tenemos un botón auxiliar por si queremos añadir alguna opción más.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLT-M_XVSw0IHjwRiEMF26d41qQ7RnO2L7HoA6ziiFLfl3AV4d8x2lxs-5VYpgOexWmke20C4aff1bPLUD5JMAdBcKQidsB7VghA0GQj90IMQB5fPAibvpNO1nKtxQ_vAPrNAj_aOZqEg/s1600/Esquema+Sensores.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLT-M_XVSw0IHjwRiEMF26d41qQ7RnO2L7HoA6ziiFLfl3AV4d8x2lxs-5VYpgOexWmke20C4aff1bPLUD5JMAdBcKQidsB7VghA0GQj90IMQB5fPAibvpNO1nKtxQ_vAPrNAj_aOZqEg/s320/Esquema+Sensores.jpg" width="320" /></a></div>
<br />Astaroth86http://www.blogger.com/profile/03504822653197650455noreply@blogger.com0tag:blogger.com,1999:blog-2399532319696306990.post-67415540121541174222011-08-31T14:58:00.000-07:002011-08-31T14:58:59.176-07:00Esquema de la placa de motoresAqui muestro el esquema de la placa de los motores.<br />
<br />
El puerto A lo dejo libre para futuras expansiones.<br />
El bus PIC es el bus por el que le llega a la placa la alimentacion y la comunicacion con el PIC que controla los sensores.<br />
Las otras conexiones son para los LEDs que se encienden en función de lo que haga el robot.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiw4oA_fJODRoQ0_DYwpqw1h-iCz3lmsuRKEKcWWAZrluavTlOMCzC12XouumS_RBhV9iOQ0mdmAJwHClUnnEGvTV31HLgJv_LfEJAowblmCLGCcLfX3imQS2EnYXKAiEBAjx0wpijPO0/s1600/esquema+motor.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="235" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiw4oA_fJODRoQ0_DYwpqw1h-iCz3lmsuRKEKcWWAZrluavTlOMCzC12XouumS_RBhV9iOQ0mdmAJwHClUnnEGvTV31HLgJv_LfEJAowblmCLGCcLfX3imQS2EnYXKAiEBAjx0wpijPO0/s320/esquema+motor.jpg" width="320" /></a></div><br />
Astaroth86http://www.blogger.com/profile/03504822653197650455noreply@blogger.com0tag:blogger.com,1999:blog-2399532319696306990.post-50348460238234679852011-05-30T12:03:00.000-07:002011-05-30T12:03:27.638-07:00Sensores Infrarrojos<div class="separator" style="clear: both; text-align: center;"><a href="http://upload.wikimedia.org/wikipedia/commons/thumb/d/d8/Fotoelectricos_clases.jpg/220px-Fotoelectricos_clases.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://upload.wikimedia.org/wikipedia/commons/thumb/d/d8/Fotoelectricos_clases.jpg/220px-Fotoelectricos_clases.jpg" /></a></div><div style="text-align: justify;">Existen varios tipos de sensores los hay para emitir y/o recibir información, medir distancias, para medir temperatura... Existen muchos tipos y usos. Yo me voy a centrar en su utilizacion para medir distancias ya que es lo que necesito para el proyecto.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"> <style type="text/css">
p { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.ctl { font-family: "FreeSans"; }h4 { margin-bottom: 0.21cm; }h4.ctl { font-family: "FreeSans"; }
</style> <style type="text/css">
p { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.ctl { font-family: "FreeSans"; }h4 { margin-bottom: 0.21cm; }h4.ctl { font-family: "FreeSans"; }
</style> </div><h3 class="western" style="text-align: justify;"><span style="font-size: large;">Sensores reflexivos</span></h3><div> </div><div style="text-align: justify;">Este tipo de sensor presenta una cara frontal en la que encontramos tanto al LED como al fototransistor. Debido a esta configuración el sistema tiene que medir la radiación proveniente del reflejo de la luz emitida por el LED.</div><div style="text-align: justify;"> </div><div style="text-align: justify;">Se tiene que tener presente que esta configuración es sensible a la luz del ambiente perjudicando las medidas, pueden dar lugar a errores, es necesario la incorporación de circuitos de filtrado en términos de longitud de onda, así pues será importante que trabajen en ambientes de luz controlada. Otro aspecto a tener en cuenta es el coeficiente de reflectividad del objeto, el funcionamiento del sensor será diferente según el tipo de superficie.</div><div style="text-align: justify;"> </div><h4 class="western" style="text-align: justify;"><a href="" name="Sensores_de_ranura.28Sensor_Break-Beam.29"></a> <span style="font-size: large;">Sensores de ranura(Sensor Break-Beam)</span></h4><div style="text-align: justify;"> </div><div style="text-align: justify;">Este tipo de sensor sigue el mismo principio de funcionamiento pero la configuración de los componentes es diferente, ambos elementos se encuentran enfrontados a la misma altura, a banda y banda de una ranura normalmente estrecha, aunque encontramos dispositivos con ranuras más grandes. Este tipo se utiliza típicamente para control industrial. Otra aplicación podría ser el control de las vueltas de un volante.</div><div style="text-align: justify;"> </div><h3 class="western" style="text-align: justify;"><a href="" name="Sensores_modulados"></a><span style="font-size: large;">Sensores modulados</span></h3><div style="text-align: justify;"> </div><div style="text-align: justify;">Este tipo de sensor infrarrojo sigue el mismo principio que el de reflexión pero utilizando la emisión de una señal modulada, reduciendo mucho la influencia de la iluminación ambiental. Son sensores orientados a la detección de presencia, medición de distancias, detección de obstáculos teniendo un cierta independencia de la iluminación.</div><div style="text-align: justify;"> </div><h3 class="western" style="text-align: justify;"><a href="" name="Sensores_de_barrido"></a><span style="font-size: large;">Sensores de barrido</span></h3><div style="text-align: justify;"> </div><div style="text-align: justify;">La diferencia con los anteriores reside en que el sensor realiza el barrido horizontal de la superficie reflectante utilizando señales moduladas para mejorar la independencia de la luz, el color o reflectividad de los objetos. Normalmente estos sistemas forman parte de un dispositivo de desplazamiento perpendicular al eje de exploración del sensor, para poder conseguir las medidas de toda la superficie.</div><a name='more'></a><br />
<div style="text-align: justify;"> </div><ul><li><h4 class="western" style="text-align: justify;"><span style="font-size: small;">Configuración óptica</span></h4><h4 class="western" style="text-align: justify;"><span style="font-size: small;"><span style="font-weight: normal;">Esta configuración se basa en un único sensor enfrentado a un cristal, el cual genera la imagen de una sección de la región a medir. Dicho cristal solidario con un motor de rotación con el objetivo de lograr el barrido de toda el área. Tiene la ventaja que adquiere un secuencia continua de la región de barrido. Resulta una sistema lento en términos de exploración.</span></span></h4></li>
</ul><div style="text-align: justify;"> </div><ul><li><h4 class="western" style="text-align: justify;"><a href="" name="Configuraci.C3.B3n_en_array_de_sensores"></a> <span style="font-size: small;">Configuración en array de sensores</span><span style="font-size: small; font-weight: normal;"> </span></h4><h4 class="western" style="text-align: justify;"><span style="font-size: small; font-weight: normal;">En este caso la configuración del sistema de medida está formado por un array de sensores infrarrojos, por tanto no es necesario la utilización de ningún sistema de cristales, únicamente necesita un conjunto de lentes ópticas de enfoque (concentración de la radiación) a cada uno de los sensores. Esta configuración es más compleja pero permite mayor velocidad de translación y mejor protección contra errores de captación.</span></h4></li>
</ul><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Para el proyecto voy a utilizar sensores modulados, 4 para distancia corta y uno que me mida distancias mas largas. </div>Astaroth86http://www.blogger.com/profile/03504822653197650455noreply@blogger.com0tag:blogger.com,1999:blog-2399532319696306990.post-24010661094482656662011-03-14T15:58:00.000-07:002011-03-14T15:58:32.752-07:00EL MICROCONTROLADOR PIC16F876<div class="separator" style="clear: both; text-align: center;"><a href="http://www.robotnando.com/f876.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="188" src="http://www.robotnando.com/f876.jpg" width="320" /></a></div><br />
<br />
En esta entrada voy a contaros la informacion del PIC que voy a utilizar en mi proyecto:<br />
<br />
Características principales:<br />
<ul><li>CPU tipo RISCC de altas prestaciones.</li>
</ul><ul><li>Repertorio de 35 instrucciones de una palabra.</li>
</ul><ul><li>Todas las instrucciones son de un único ciclo, excepto las de salto, que llevan dos.</li>
</ul><ul><li>Velocidad de trabajo de 20 Mhz, con un ciclo de instrucción de 200 ns.</li>
</ul><ul><li>Memoria de programa tipo flash de 8 K palabras.</li>
</ul><ul><li>Memoria de datos de 368 bytes.</li>
</ul><ul><li>Memoria EEPROM de datos de 256 bytes.</li>
</ul><ul><li>Patillaje compatible con PIC16C73B/74B/76/77.</li>
</ul><ul><li>Hasta 14 fuentes de interrupción.</li>
</ul><ul><li>Pila por hardware de 8 niveles.</li>
</ul><ul><li>Modos de direccionamiento directo, indirecto y relativo.</li>
</ul><ul><li>Reset de conexión (POR).</li>
</ul><ul><li>Temporización de conexión y temporización de inicio de oscilación.</li>
</ul><ul><li>Circuito supervisor (watchdog).</li>
</ul><ul><li>Código de protección programable.</li>
</ul><ul><li>Tecnología de alta velocidad y bajo consumo en la memoria CMOS EEPROM/FLASH.</li>
</ul><ul><li>Programación in-situ vía serie con dos patillas.</li>
</ul><ul><li>Posibilidad de programación in-situ, vía serie, mediante tensión simple de 5 voltios.</li>
</ul><ul><li>Acceso para lectura o escritura a la memoria de programa.</li>
</ul><ul><li>Gran margen de alimentación entre 2 y 5,5 voltios.</li>
</ul><ul><li>Corriente de salida de 25 mA.</li>
</ul><ul><li>Bajo consumo:</li>
</ul> - Menor de 2 mA a 5V y 4 Mhz.<br />
- 20 A a 3V y 32 Khz.<br />
- Menor de 1 A en reposo.<br />
<br />
Prestaciones de periféricos:<br />
<br />
<ul><li>Timer0: Temporizador-Contador de 8 bits, con Predivisor también de 8 bits.</li>
</ul><ul><li>Timer1: Temporizador-Contador de 16 bits con Predivisor, que puede trabajar con reloj externo en el modo reposo (sleep).</li>
</ul><ul><li>Timer2: Temporizador-Contador de 8 bits con registro de período de la misma longitud, con Predivisor y Postdivisor.</li>
</ul><ul><li>Dos módulos de Captura y Comparación y uno PWM (modulación por ancho de impulso:</li>
</ul> - La captura es de 16 bits, con resolución máxima de 12,5 ns.<br />
<br />
- La comparación es de 16 bits, con resolución máxima de 200 ns.<br />
<br />
- El bloque PWM tiene una resolución máxima de 10 bits.<br />
<ul><li>Convertidor multicanal analógico digital de 10 bits.</li>
</ul><ul><li>Puerto serie síncrono (SSP), con modo Maestro (SPI) e I2C (maestro/servidor).</li>
</ul><ul><li>Transmisor Receptor Universal Síncrono Asíncrono (USART/SCI) con detección de 9 bits y de dirección.</li>
</ul><ul><li>Circuito de detección de BROWN-OUT (bajada de tensión).</li>
</ul>Astaroth86http://www.blogger.com/profile/03504822653197650455noreply@blogger.com0tag:blogger.com,1999:blog-2399532319696306990.post-53869373661309345342011-03-13T04:35:00.000-07:002011-03-13T04:35:48.353-07:00Protocolo I2C<div class="separator" style="clear: both; text-align: center;"><a href="http://upload.wikimedia.org/wikipedia/commons/thumb/3/3e/I2C.svg/350px-I2C.svg.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="113" src="http://upload.wikimedia.org/wikipedia/commons/thumb/3/3e/I2C.svg/350px-I2C.svg.png" width="320" /></a></div><b></b><br />
<b>I²C</b> es un bus de comunicaciones en serie. Su nombre viene de <i>Inter-Integrated Circuit</i> (Circuitos Inter-Integrados). La versión 1.0 data del año 1992 y la versión 2.1 del año 2000, su diseñador es Philips. La velocidad es de 100Kbits por segundo en el modo estándar, aunque también permite velocidades de 3.4 Mbit/s. Es un bus muy usado en la industria, principalmente para comunicar microntroladores y sus periféricos en sistemas integrados (<i>Embedded Systems</i>) y generalizando más para comunicar circuitos integrados entre si que normalmente residen en un mismo circuito impreso.<br />
La principal característica de <b>I²C</b> es que utiliza dos líneas para transmitir la información: una para los datos y por otra la señal de reloj. También es necesaria una tercera línea, pero esta sólo es la referencia (masa). Como suelen comunicarse circuitos en una misma placa que comparten una misma masa esta tercera línea no suele ser necesaria.<br />
Las líneas se llaman:<br />
<ul><li>SDA: datos</li>
<li>SCL: reloj</li>
<li>GND: tierra</li>
</ul>Las dos primeras líneas son drenador abierto, por lo que necesitan resistencias de pull-up.<br />
Los dispositivos conectados al bus <b>I²C</b> tienen una dirección única para cada uno. También pueden ser <i>maestros</i> o <i>esclavos</i>. El dispositivo <i>maestro</i> inicia la transferencia de datos y además genera la señal de reloj, pero no es necesario que el <i>maestro</i> sea siempre el mismo dispositivo, esta característica se la pueden ir pasando los dispositivos que tengan esa capacidad. Esta característica hace que al bus <b>I²C</b> se le denomine bus multimaestro.<br />
Las transacciones en el bus I2C tienen este formato:<br />
| start | A7 A6 A5 A4 A3 A2 A1 | R/W | ACK | ... DATA ... | ACK | stop | idle |<br />
<ul><li>El bus esta libre cuando SDA y SCL están en estado lógico alto.</li>
<li>En estado bus libre, cualquier dispositivo puede ocupar el bus <b>I²C</b> como maestro.</li>
<li>El maestro comienza la comunicación enviando un patrón llamado "start condition". Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción.</li>
<li>El maestro se dirige al dispositivo con el que quiere hablar, enviando un byte que contiene los siete bits (A7-A1) que componen la dirección del dispositivo esclavo con el que se quiere comunicar, y el octavo bit (A0) de menor peso se corresponde con la operación deseada (L/E), lectura=1 (recibir del esclavo) y escritura=0 (enviar al esclavo).</li>
<li>La dirección enviada es comparada por cada esclavo del bus con su propia dirección, si ambas coinciden, el esclavo se considera direccionado como esclavo-transmisor o esclavo-receptor dependiendo del bit R/W.</li>
<li>El esclavo responde enviando un bit de ACK que le indica al dispositivo maestro que el esclavo reconoce la solicitud y está en condiciones de comunicarse.</li>
<li>Seguidamente comienza el intercambio de información entre los dispositivos.</li>
<li>El maestro envía la dirección del registro interno del dispositivo que se desea leer o escribir.</li>
<li>El esclavo responde con otro bit de ACK</li>
<li>Ahora el maestro puede empezar a leer o escribir bytes de datos. Todos los bytes de datos deben constar de 8 bits, el número máximo de bytes que pueden ser enviados en una transmisión no está restringido, siendo el esclavo quien fija esta cantidad de acuerdo a sus características.</li>
<li>Cada byte leido/escrito por el maestro debe ser obligatoriamente reconocido por un bit de ACK por el dispositivo maestro/esclavo.</li>
<li>Se repiten los 2 pasos anteriores hasta finalizar la comunicación entre maestro y esclavo.</li>
<li>Aun cuando el maestro siempre controla el estado de la línea del reloj, un esclavo de baja velocidad o que deba detener la transferencia de datos mientras efectúa otra función, puede forzar la línea SCL a nivel bajo. Esto hace que el maestro entre en un estado de espera, durante el cual, no transmite información esperando a que el esclavo esté listo para continuar la transferencia en el punto donde había sido detenida.</li>
<li>Cuando la comunicación finaliza, el maestro transmite una "stop condition" para dejar libre el bus.</li>
<li>Después de la "stop condition", es obligatorio para el bus estar idle durante unos microsegundos.</li>
</ul>Astaroth86http://www.blogger.com/profile/03504822653197650455noreply@blogger.com0tag:blogger.com,1999:blog-2399532319696306990.post-594341602161736032011-03-12T16:04:00.000-08:002011-03-13T04:43:50.699-07:00Proyecto fin de curso<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgFGdAe-Ro0AbfIxJQisHte9WDi1C_uJ5HphFwNpM1YwWufG_vrbIwyNIorcim6BL-dsQGtNXccFyptHA-mefC-Ov30La0K1pArJEu4s88eoF6t0piKOOvS9c-nIhpUE5lfBOP2XyOR5E/s1600/Laberinto+2006.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgFGdAe-Ro0AbfIxJQisHte9WDi1C_uJ5HphFwNpM1YwWufG_vrbIwyNIorcim6BL-dsQGtNXccFyptHA-mefC-Ov30La0K1pArJEu4s88eoF6t0piKOOvS9c-nIhpUE5lfBOP2XyOR5E/s320/Laberinto+2006.gif" width="309" /></a></div><br />
Bueno, voy a presentaros lo que va a ser mi proyecto de fin de curso.<br />
Consiste en un robot que tiene que salir de un laberinto conocido, pero que no se sabe cual es la entrada y cual es la salida. El laberinto es el del concurso MadridBot 2011.<br />
<br />
Lo que me exigen es que utilice 2 PIC y estos se comuniquen por el protocolo I2C. <br />
<br />
Los Pics que voy a utilizar son los 16F876 ya que tienen un modulo I2C, conversor A/D, PWM (Que en principio no voy a usar) y 3 puertos de E/S.<br />
<br />
Uno de los PIC se va ha encargar del control de los motores y por I2C el otro PIC le indicará que tiene que hacer (Adelante, atrás, izquierda o derecha). De esta manera con una cabecera se puede utilizar además de para mi proyecto, para cualquier otro que necesite movimiento. Como motores utilizaré dos servos que ya tienen la reductora hecha y pueden mover hasta 6 Kg.<br />
<br />
El otro PIC va a controlar 4 o 5 sensores de distancia por infrarrojos. Los sensores convierten la distancia en tensión que es leída por el conversor A/D del PIC y transforma a través de una función la tensión en la distancia detectada, sobre esa información actúa indicando al otro PIC que deben hacer los motores.<br />
<br />
<br />
Pronto iré subiendo mas información del proyecto y las fotos de construcción.Astaroth86http://www.blogger.com/profile/03504822653197650455noreply@blogger.com0tag:blogger.com,1999:blog-2399532319696306990.post-25405033206726527802011-01-14T02:54:00.000-08:002011-01-14T02:54:25.463-08:00PresentaciónHola.<br />
<br />
Bienvenido a mi blog. Aqui pondre todas las noticias que vea interesantes y los proyectos que vaya realizando relacionados con el mundo de linux y de la electronica.<br />
<br />
Soy técnico en electronica y programador java y ademas estoy terminando el grado superior de desarrollo de productos electronicos y trabajo de informatico.<br />
<br />
Espero que te resulte interesante y disfrutes leyendolo tanto como yo escribiendolo.Astaroth86http://www.blogger.com/profile/03504822653197650455noreply@blogger.com1tag:blogger.com,1999:blog-2399532319696306990.post-15756576203364294492004-11-21T20:24:00.000-08:002012-05-21T15:02:19.832-07:00Mi CUMPLE!!!!!!!!Hoy día 21-11-2004 he cumplido los 18 años, es decir, la mayoría de
edad, y bueno ha estado muy bien, me han regalado un multifunción
impresora, escaner y fotocopiadora, el Gran Turismo 4 "PROLOGUE", una
camiseta de TUX, una tarjeta y 65€s y aun kedan algunas cosillas mas, a
si que nada mas, ya tengo lo de PYTHON y pronto empezaré a colgar mis
programillas, y muchas gracias a tod@s los que me habéis felicitado.
SALU2Astaroth86http://www.blogger.com/profile/03504822653197650455noreply@blogger.com0