Intel® tablero de Edison: Clap activado reloj (5 / 6 paso)

Paso 5: código

El siguiente es código de C++ para el IDE Eclipse * para Intel® Edison, para instalar y cómo empezar: https://software.intel.com/en-us/installing-the-e...

/*

* Autor: Dirk Roziers

* Copyright (c) 2015 Intel Corporation.

*

* Permiso se concede por la presente, de forma gratuita, a cualquier persona obtener

* una copia de este software y archivos de documentación asociados (el

* "Software"), en el Software sin restricción, incluyendo

sin la limitación los derechos para utilizar, copiar, modificar, fusionar, publicar,

* distribuir, sublicenciar, y/o vender copias del Software y a

* permitir que las personas a quienes el Software se suministra para ello, sujeto a

* las siguientes condiciones:

*

* El aviso de copyright y este aviso de permiso deberán ser

* incluido en todas las copias o partes importantes del Software.

*

* EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO,

* EXPRESA O IMPLÍCITA, INCLUYENDO PERO SIN LIMITARSE A, LAS GARANTÍAS DE

* COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO EN PARTICULAR Y

* FALTA DE INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O LOS TITULARES DEL COPYRIGHT SERÁN

* RESPONSABLE DE CUALQUIER RECLAMACIÓN, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN

DE LA RESPONSABILIDAD CONTRACTUAL, EXTRACONTRACTUAL O DE OTRO TIPO, QUE SE PRESENTA, FUERA DE O EN CONEXIÓN

* CON EL SOFTWARE O EL USO U OTRAS OPERACIONES EN EL SOFTWARE.

*/

#include "mraa.h"

#include

#include

#include

int main (int argc, char ** argv)

{

time_t current_time;

struct tm * time_info;

timeString Char [9]; espacio para "HH:MM:SS\0"

int horas, minutos, segundos;

unsigned int temp_value, light_value, sound_value;

int contador = 1;

int display_on = 0;

unsigned int sound_threshold = 400;

Float max_light_value = 800.0;

int number_of_sec_to_display_time = 10;

int number_of_sec_to_display_temp = 3;

resistencia de flotador;

Float temp_celcius;

int temp_celcius_int;

int temp_celcius_decimal_1;

int brillo;

temp_pin de mraa_aio_context;

light_pin de mraa_aio_context;

sound_pin de mraa_aio_context;

/ * valor de cada segmento según la representación binaria en hoja de datos

64

------

| |

2 | | 32

| 1 |

------

| |

4 | | 16

| |

------

8

Índice de matriz = valor del dígito,

es decir digit_value [5] = muestra 5 LED,

digit_value [7] = 7 pantallas en LED,

digit_value [10] = LED en blanco

*/

int digit_value [] = {}

126, / * 2 + 4 + 8 + 16 + 32 + 64 * /

48, / * 16 + 32 * /

109, / * 1 + 4 + 8 + 32 + 64 * /

121, / * 1 + 8 + 16 + 32 + 64 * /

51, / * 1 + 2 + 16 + 32 * /

91, / * 1 + 2 + 8 + 16 + 64 * /

95, / * 1 + 2 + 4 + 8 + 16 + 64 * /

112, / * 16 + 32 + 64 * /

127, / * 1 + 2 + 4 + 8 + 16 + 32 + 64 * /

115, / * 1 + 2 + 16 + 32 + 64 * /

0

};

/*

* valor binario enviará sobre SPI para visualización valor vvvv vvvv en LED número nnnn es: 0000 nnnn vvvv vvvv

* por ejemplo, si 5 º LED de la izquierda (= 4 LED de la derecha) en valor 5 (= 91, véase arriba = 10011011)--> pass 0000 0100 1001 1011

* decimal = 1024 (0000 0100 0000 0000) + 91 (0000 0000 1001 1011) = 1115

*/

int digit_position [] = {}

256, / * digit_position [0] = 8 dígitos = dígito de la derecha, 256 = 0100 hexagonal = 0000 0001 0000 0000 binario * /

512, / * digit_position [1] = 7 dígitos = 2 º de derecho, 512 = 0200 hex = 0000 0010 0000 0000 binario * /

768, / * digit_position [2] = 6 dígitos * /

1024, / * digit_position [3] = 5 dígitos * /

1280, / * digit_position [4] = 4 dígitos * /

1536, / * digit_position [5] = 3 dígitos * /

1792, / * digit_position [6] = 2 dígitos * /

2048 / * digit_position [7] = 1er dígito = dígito más a la izquierda * /

/ * Índice de matriz = 8 - posición de dígito en pantalla; dígito a la izquierda = posición 1 * /

};

sensor de temperatura en analógico Pin0 (Aio0), sensor de luz analógico Pin1 (Aio1) y sensor de sonido analógica Pin2 (Aio2)

temp_pin = mraa_aio_init(0);

light_pin = mraa_aio_init(1);

sound_pin = mraa_aio_init(2);

mraa_spi_context spi;

SPI = mraa_spi_init(1);

Si (spi == NULL)

{

printf ("inicialización de spi no, verificación Registro del sistema para más detalles, salida... \n");

Exit(1);

}

Conjunto, haga clic en frecuencia a 400 kHz)

mraa_spi_frequency (spi, 400000);

mraa_spi_lsbmode (spi, 0);

El Chip MAX7219/21 necesita los datos de tamaño de palabra

Si (mraa_spi_bit_per_word (spi, 16)! = MRAA_SUCCESS)

{

printf ("puede no configurar dispositivo SPI para modo de 16 bits, salida... \n");

Exit(1);

};

mraa_spi_write_word (spi, 0x0900); No decodifican bits

mraa_spi_write_word (spi, 0x0a0f); Brillo de LEDs - 0xa00 menor, 0xa0f más alto - establecer más alto para comenzar con

mraa_spi_write_word (spi, 0x0b07); Mostrar todas las líneas de exploración

mraa_spi_write_word (spi, 0x0c00); Mostrar apagado--empezar con pantalla.

mraa_spi_write_word (spi, 0x0f00); Testmode apagado

mientras {}

mientras que (display_on == 0) {}

detectar el sonido para activar la pantalla

sound_value = mraa_aio_read(sound_pin);

Si (sound_value > sound_threshold) {}

display_on = 1;

mraa_spi_write_word (spi, 0x0c01); Mostrar en

}

usleep(1000);

}

mientras que (display_on == 1)

{

temp_value = mraa_aio_read(temp_pin);

light_value = mraa_aio_read(light_pin);

Convertir la lectura en grados Celsius utilizando datashaeet - Bvalue del sensor de temp_value = 3975

resistencia = (1023 - temp_value) * 10000 / temp_value; Obtener la resistencia del sensor de

temp_celcius = (1 / (log(resistance / 10000) / 3975 + 1 / 298.15) - 273.15); Convertir a la temperatura a través de la hoja de datos

separar más fácil entero y decimal para mostrar efectos

temp_celcius_int = temp_celcius;

temp_celcius_decimal_1 = temp_celcius * 10 - temp_celcius_int * 10;

Time(¤t_time);

time_info = localtime(¤t_time);

strftime (timeString, sizeof(timeString), "% H: % m: %S", time_info);

horas = time_info -> tm_hour;

minutos = time_info -> tm_min;

segundos = time_info -> tm_sec;

/ * XxTT.txxx de disposición de la pantalla TEMP * /

uint16_t TEMPdata [] = {}

/ * 8 dígitos * / digit_position [0] + digit_value [10],

/ * 7 dígitos * / digit_position [1] + 78, / / 78 = valor del carácter C (Clecius)

/ * 6 dígitos * / digit_position [2] + digit_value [10],

/ * 5 dígitos * / digit_position [3] + digit_value [temp_celcius_decimal_1],

/ * 4 dígitos * / digit_position [4] + digit_value [temp_celcius_int % 10] +128,

/ * 3 dígitos * / digit_position [5] + digit_value [(temp_celcius_int-temp_celcius_int%10)/10],

/ * 2 dígitos * / digit_position [6] + digit_value [10],

/ * 1er dígito * / digit_position [7] + digit_value [10]};

/ * TIEMPO DECOATIVE diseño 1 xxHH.MMxx * /

uint16_t TIMEdata [] = {}

/ * 8 dígitos * / digit_position [0] + digit_value [10],

/ * 7 dígitos * / digit_position [1] + digit_value [10],

/ * 6 dígitos * / digit_position [2] + digit_value [minutos % 10] + (%2 segundos) * 128,

/ * 5 dígitos * / digit_position [3] + digit_value [(minutos - minutes%10)/10],

/ * 4 º dígito * / digit_position [4] + digit_value [horas % 10] +128,

/ * 3 º dígito * / digit_position [5] + digit_value [(hours-hours%10)/10],

/ * 2 dígitos * / digit_position [6] + digit_value [10],

/ * 1er dígito * / digit_position [7] + digit_value [10]};

/ * TIEMPO DECOATIVE DISEÑO 2 HH. MM. SS *

/ uint16_t TIMEdata [] = {}

/ * 8 dígitos * / digit_position [0] + digit_value [10],

/ * 7 dígitos * / digit_position [1] + digit_value [segundos % 10],

/ * 6 dígitos * / digit_position [2] + digit_value [(segundos - seconds%10)/10],

/ * 5 dígitos * / digit_position [3] + digit_value [minutos % 10] +128,

/ * 4 dígitos * / digit_position [4] + digit_value [(minutos - minutes%10)/10],

/ * 3 dígitos * / digit_position [5] + digit_value [horas % 10] +128,

/ * 2 dígitos * / digit_position [6] + digit_value [(hours-hours%10)/10],

/ * 1er dígito * / digit_position [7] + digit_value [10]};

/ * TIEMPO DECOATIVE DISEÑO 3 HH MM SS *

/ uint16_t TIMEdata [] = {}

/ * 8 dígitos * / digit_position [0] + digit_value [segundos % 10],

/ * 7 dígitos * / digit_position [1] + digit_value [(segundos - seconds%10)/10],

/ * 6 dígitos * / digit_position [2] + digit_value [10],

/ * 5 dígitos * / digit_position [3] + digit_value [minutos % 10],

/ * 4 dígitos * / digit_position [4] + digit_value [(minutos - minutes%10)/10],

/ * 3 dígitos * / digit_position [5] + digit_value [10],

/ * 2 dígitos * / digit_position [6] + digit_value [horas % 10],

/ * 1er dígito * / digit_position [7] + digit_value [(hours-hours%10)/10]};

brillo = 2560 + (light_value/max_light_value) * 15; comando de 0 a 15, nivel brillo 0x0a00--> 0x0a0f / / 2560--> 2575

mraa_spi_write_word (spi, brillo); Brillo de LED

Si (contador == number_of_sec_to_display_time + 1)

{

mraa_spi_write_buf_word (spi, TEMPdata, 2);

mraa_spi_write_buf_word (spi, TEMPdata, 4);

mraa_spi_write_buf_word (spi, TEMPdata, 6);

mraa_spi_write_buf_word (spi, TEMPdata, 8);

mraa_spi_write_buf_word (spi, TEMPdata, 10);

mraa_spi_write_buf_word (spi, TEMPdata, 12);

mraa_spi_write_buf_word (spi, TEMPdata, 14);

mraa_spi_write_buf_word (spi, TEMPdata, 16);

usleep(number_of_sec_to_display_temp*1000000); / * Mostrar la temp number_of_sec_to_display_temp segundos * /

contador = 1;

display_on = 0;

mraa_spi_write_word (spi, 0x0c00); La exhibición de

}

otra cosa

{

mraa_spi_write_buf_word (spi, TIMEdata, 2);

mraa_spi_write_buf_word (spi, TIMEdata, 4);

mraa_spi_write_buf_word (spi, TIMEdata, 6);

mraa_spi_write_buf_word (spi, TIMEdata, 8);

mraa_spi_write_buf_word (spi, TIMEdata, 10);

mraa_spi_write_buf_word (spi, TIMEdata, 12);

mraa_spi_write_buf_word (spi, TIMEdata, 14);

mraa_spi_write_buf_word (spi, TIMEdata, 16);

usleep(1000000);

contador ++;

}

}

}

}

Artículos Relacionados

Intel Edison, proximidad activados, calendario de habla

Intel Edison, proximidad activados, calendario de habla

(Encima es un Video - pero no puede mostrar en un teléfono móvil. Haga clic aquí para ver en youtube. )Este proyecto fue planeado como un Dispositivo de tecnología asistiva para cuidadores de personas con trastornos de la memoria. Es un calendario de
#MyoCraft: brazalete de Myo con node.js en tablero de Edison de Intel

#MyoCraft: brazalete de Myo con node.js en tablero de Edison de Intel

En este insctructable, le mostrará cómo controlar su tablero de Edison de Intel con los movimientos de la mano y el brazo, gracias a su brazalete de Myo.Los diferentes pasos que se describen a continuación utilizan Protocolo de bluetooth que conecta
Intel 3WD Seeed/Edison/Nexus OmniRover

Intel 3WD Seeed/Edison/Nexus OmniRover

Ultimamente he estado trabajando en un kit simple, respetuosa del hackathon para robótica móvil basado en el módulo Intel Edison. Mis metas son un robot capaz de navegación autónoma y movimiento omnidireccional para menos de $250, todo incluido (el p
MONTAJE del tablero de EDISON INTEL® con el INTEL® EDISON MINI BREAKOUT Junta

MONTAJE del tablero de EDISON INTEL® con el INTEL® EDISON MINI BREAKOUT Junta

En este instructable, te conectas el módulo Intel® Edison a una Junta de arranque mini Intel® Edison.Requisitos> módulo de Edison Intel> Intel Edison mini breakout Junta> 2 micro B para cables de tipo A USBNota que la Junta de arranque tiene dos
Robot de Telepresencia de Edison de Intel

Robot de Telepresencia de Edison de Intel

Este año tuve la suerte de encontrarme en Internet de cosas Roadshow de INTEL en Pune en el hotel VITS. Fue de los momentos más sorprendentes de este año y llegué a aprender mucho. Tiene que ver muchos proyectos, prototipos y productos. El Roadshow h
Agricultura inteligente con Edison de Intel (Intel IoT Roadshow)

Agricultura inteligente con Edison de Intel (Intel IoT Roadshow)

En este proyecto voy a explicar acerca de cómo controlar la humedad, temperatura y humedad nivel de suciedad de la tierra de agricultura uso de Edison de Intel. Aquí he utilizado sensor de humedad/temperatura DHT11 y sensor de humedad del suelo.Los d
ASPIRADORA autónoma (Intel IOT)

ASPIRADORA autónoma (Intel IOT)

Este proyecto funciona en unaexcelente oferta de mecanismo reflejo. Se trata de una idea básica de desarrollo de una "aspiradora autónoma", que ayuda a reducir las tareas diarias de trabajo en casas, oficinas etc...Paso 1: IdeaEste proyecto func
IoT Aqua (Intel IoT)

IoT Aqua (Intel IoT)

El proyecto "IoT Aqua" tiene en cuenta el problema de mantenimiento nivel de oxígeno en los acuarios en el hogar en caso de apagón o ausencia de personas en el hogar durante mucho tiempo. También se encarga de nivel adecuado de luminosidad tras
Ayuda para la tercera edad! (Intel IoT)

Ayuda para la tercera edad! (Intel IoT)

El miedo a caerse o cambios en el funcionamiento del corazón tiene importantes consecuencias en el bienestar de las personas mayores. Esto puede disminuir su calidad de vida y degradan la capacidad de realizar las actividades cotidianas. El proyecto
Jukebox holográfica (Intel IoT)

Jukebox holográfica (Intel IoT)

¿Qué es? -El más esperado de la experiencia de proyección holográfica 3D en casa. Con sólo el nombre de la canción o el video escrito en tu móvil, conectado a un dispositivo portátil, un dispositivo holográfico básicamente, con su 3-d 'asombro' - pro
Sistema de alertas para niños o mascotas atrapadas dentro de vehículos de motor.

Sistema de alertas para niños o mascotas atrapadas dentro de vehículos de motor.

En promedio, 38 niños en coches calientes cada año mueren de muertes calor-relacionadas después de quedar atrapado dentro de los vehículos de motor. Este sistema está destinado a alertar a los padres si se olvidan de sus hijos en el coche, mis criter
IChair

IChair

¿Pasas la mayor parte de su tiempo sentado y preocupados por su salud? Tenemos una solución para usted, el iChair!El iChair es uno de tipo it´s, que vigilar su comportamiento estar y mantener un registro adecuado de la misma y mantenerte informado qu
PCBot

PCBot

PCBot es una impresora conectada de internet que te ayuda con la electrónica.Puede chatear con ella y pedir que imprimir un diseño de circuito de protoboard o pedir ayuda en la construcción de su proyecto electrónico.PCBot se basa en Intel Edison hos
Las agujas del reloj - despertador inteligente Powered by Intel Edison

Las agujas del reloj - despertador inteligente Powered by Intel Edison

Las agujas del reloj es su próximo despertador inteligente: despierta diciendo en voz alta las condiciones del clima y sus eventos de Google Calendar para el día en un altavoz Bluetooth.La base de este proyecto es una secuencia de comandos de python: