Jetson TX2 – Plaquinha da Nvidia voltada para inteligência artificial

Não é um drone, um robô pequeno ou uma câmera com reconhecimento facial. Mas pode ser: a Nvidia está lançando o Jetson TX2, um computadorzinho que lembra o Raspberry Pi, mas que oferece o grande diferencial de ser focado em inteligência artificial. O dispositivo pode ser empregado em diversos tipos de projetos que precisam de alguma sofisticação, portanto.

Para tanto, o Nvidia Jetson TX2 sai de fábrica uma combinação bastante respeitável de recursos que, por sinal, representa uma grande evolução em relação ao Jetson TX1 (anunciado no final de 2015): processador de 64 bits com dois núcleos Cortex-A57 e outros dois Nvidia Denver 2, GPU de 1,3 GHz com arquitetura Pascal de 256 núcleos, 8 GB de RAM e 32 GB para armazenamento interno.

No aspecto da conectividade, o dispositivo vem com Wi-Fi 802.11ac e Bluetooth 4.1, além de suportar portas USB 2.0, USB 3.0, HDMI 2.0, Gigabit Ethernet, entre outros padrões.

Segundo a Nvidia, o Jetson TX2 tem praticamente o dobro da potência do Jetson TX1. E isso tudo vem acompanhado de mais eficiência no consumo de energia: são 7,5 W contra 10 W da geração anterior.

Com tamanho poder de fogo, essa plaquinha de 50 x 87 mm pode ser empregada em projetos de automação industrial, câmeras inteligentes, drones para filmagens profissionais, sistemas de monitoramento auxiliados por sensores e por aí vai. A Nvidia destaca que o Jetson TX2 consegue, por exemplo, decodificar imagens de duas câmeras trabalhando com 4K e 60 frames por segundo.

Na apresentação do produto, a Nvidia ressaltou que o Jetson TX2 pode atingir a taxa de 1,5 teraflop. De modo geral, a ideia é permitir que o equipamento baseado na placa execute tarefas de inteligência artificial, redes neurais, reconhecimento de voz e afins in loco, ou seja, sem depender exclusivamente de servidores externos ou serviços nas nuvens.

Não é por acaso que a Nvidia também anunciou o JetPack 3.0, um SDK para desenvolvimento de aplicações de inteligência artificial que traz suporte aos drivers gráficos mais recentes e a APIs para redes neurais, como TensorRT 1.0 e cuDNN 5.1.

É lógico que tudo isso faz o Jetson TX2 ser bem mais caro que outras plaquinhas que encontramos por aí: o kit do dispositivo entrou em pré-venda nos Estados Unidos pelo preço de US$ 599. As entregas começam neste mês.

Sistemas Operacionais de Tempo Real – Timers

Introdução

Estava desenvolvendo algumas idéias para um novo artigo técnico, quando encontrei perdida, no fundo de uma gaveta virtual, uma biblioteca de rotinas em C que desenvolvi há algum tempo. É uma preciosidade!!! Eu mesmo já utilizei essas funções em vários projetos. Estou aqui disponibilizando esse material para você.

Vou contar um pouco a história dessa biblioteca. Houve uma época em que o meu trabalho era focado em projetos de desenvolvimento de sistemas dedicados baseados em processadores da família 8051. Desenvolvemos uma célula de carga digital, um sistema de monitoramento ambiental, um mini CLP, um sistema de monitoramento e controle de um processo químico, sistema de controle de elevadores etc. Daí surgiu a ideia de elaborar funções e rotinas padronizadas, pois quase todos esses sistemas tinham alguma coisa em comum, como por exemplo teclas, displays etc. e deveriam operar em tempo real. O objetivo foi diminuir o tempo gasto para o desenvolvimento de um novo projeto. Antes de prosseguir, recomendo a leitura do artigo Sistemas Operacionais de Tempo Real – Introdução, onde são abordados alguns conceitos que serão aplicados neste artigo.

É necessário apresentar aqui alguns esclarecimentos a respeito da filosofia usada na elaboração dessas rotinas. Eu parti do princípio de que os nossos sistemas são de tempo real e que realizam periodicamente algumas funções rotineiras, tais como verificar um teclado, atualizar displays, administrar LEDs de sinalização, realizar medidas, etc. Outras ações são tomadas por demanda, ou seja, apenas quando ocorrem. Essas demandas podem ser periódicas ou assíncronas (aleatórias). Daí já reconhecemos o primeiro elemento a ser implementado no nosso Sistema Operacional: um temporizador (Timer). Para quem não sabe, os processadores tradicionais da família 8051 têm apenas 2 temporizadores, enquanto outras versões oferecem pelo menos mais um. Antes de continuar, acho interessante recordarmos a arquitetura dos microcontroladores da família MCS-51 e os modos de operação dos seus temporizadores. Na parte final desse artigo será desenvolvido um pequeno exemplo prático, cujo código poderá ser compilado e simulado.

TIMERS da família MCS-51

Para ilustrar o que será abordado aqui, vamos nos referenciar aos microcontroladores de fabricação da ATMEL, com a arquitetura baseada no 8051, cujo documento completo você pode consultar aqui: ATMEL 8051 Microcontrollers Hardware Manual. Na Figura 1 podemos observar a arquitetura interna de um microcontrolador AT89S8253, que continua sendo produzido, mostrando em destaque o bloco dos temporizadores.

Timers - Diagrama em blocos da arquitetura interna de um microcontrolador
Figura 1: Diagrama em blocos da arquitetura interna de um microcontrolador AT89S8253

 

Sem entrar nos detalhes referentes aos contadores / temporizadores Timer 0 e Timer 1 dessa família de microcontroladores, basta dizer que eles podem ser programados para funcionarem em 4 modos distintos de operação:

  • Modo 0: O temporizador é configurado como um contador de 13 bits, que pode receber um valor inicial e conta para cima. Na transição do valor limite superior 0x1FFF para  0x0000, é acionado um flag de sinalização;
  • Modo 1: Similar ao modo 0, porém é configurado o contador para 16 bits;
  • Modo 2: O temporizador é configurado como um contador de 8 bits, com um registro de 8 bits associado para recarregar o valor inicial automaticamente. Na transição, é acionado um flag;
  • Modo 3: Nesse modo de operação, o Timer 0 opera como 2 contadores distintos de 8 bits, enquanto o Timer 1 nesse modo de operação permite que se congele a contagem.

Convenções para o uso dos Timers

Para o objetivo de projetar uma biblioteca com rotinas padronizadas, foi definido que o Timer 0 seria o temporizador padrão do sistema e o Timer 1 também poderia ser usado para isso, se acaso não fosse necessário usá-lo para gerar baud-rate da comunicação serial.

O período de interrupção do temporizador deve ser o maior possível e baixo o suficiente para atender às necessidades prioritárias do sistema. Para que se entenda o motivo disso, observe o seguinte exemplo:

Suponhamos que:

  • Um microcontrolador que, por restrições de sua arquitetura e do oscilador (clock) utilizado, possa executar no máximo 10.000 instruções por segundo;
  • Uma rotina de interrupção provocada pelo temporizador execute 20 instruções na média a cada interrupção.

Se numa hipótese absurda o temporizador for dimensionado para gerar 500 interrupções por segundo, a rotina de interrupção vai consumir todo o tempo disponível para executar as instruções do microcontrolador (500 x 20 = 10.000)! Se por exemplo esse número puder cair para 50 interrupções por segundo, sem prejudicar a operação do sistema, a rotina de interrupção vai consumir apenas 10% do total disponível (1.000), deixando os outros 90% para as demais atividades do microprocessador.

A compreensão do que foi ilustrado nesse exemplo é fundamental. As rotinas que são executadas com maior frequência devem ser otimizadas para serem executadas no menor tempo possível e na menor frequência possível também. Voltando ao exemplo das 500 interrupções, se acaso a rotina de interrupção executasse apenas 18 instruções ao invés das 20, já sobrariam 1.000 instruções por segundo que poderiam ser executadas por outras atividades. Em muitos casos isso é suficiente. Note que para esse exemplo em particular, só analisamos uma das soluções possíveis para viabilizar a operação do sistema. Poderia-se também lançar mão de outros recursos, como por exemplo aumentar a frequência do oscilador do microcontrolador.

Assim a frequência da interrupção do nosso timer deve ser dimensionada de modo que:

  • A função que deverá ser executada com maior frequência possa ser atendida pelas interrupções do timer no menor tempo necessário para isso (e maior possível), definindo assim as especificações do timer de referência do sistema;
  • Outras temporizações mais lentas sejam realizadas como múltiplos da interrupção do timer e implementadas por meio de temporizadores virtuais de software.

Um temporizador virtual de software é uma estrutura no programa em que a cada temporizador é associado um valor inicial, que se traduz num número inteiro de interrupções do Timer 0, e um flag de sinalização. A cada interrupção do Timer 0, o temporizador de software é decrementado e testado se zero. Se for zero, é ligado o flag para avisar que a contagem de software foi terminada e o temporizador é reinicializado para o seu valor inicial. O tratamento do final de contagem é realizado no programa principal, testando-se o flag e reinicializando-o depois.

O timer de referência deverá funcionar no modo 2 de operação. Observe que a programação do Timer 0 depende da frequência de clock do microcontrolador, do fator de divisão do clock, que nas CPUs tradicionais do MCS-51 é de 12 vezes, e da frequência requerida de interrupção. Um último limitante é que o valor inicial do Timer nessa configuração é de no máximo 255 (8 bits). Na biblioteca também foi desenvolvido um padrão para a programação do Timer 1, especialmente se não for usado para gerar baud-rate.

Detalhes da Biblioteca em C

O código em C a seguir foi desenvolvido para o compilador KEIL C51 μVision, na versão de avaliação. Se você quiser testar o programa exemplo que desenvolveremos no final deste artigo, recomendo que você baixe e instale esse programa.  O arquivo de biblioteca com os trechos de código em C para a utilização dos timers de forma padronizada está dividido em segmentos. O primeiro segmento define uma série de constantes, que podem ser ajustadas conforme as especificações do projeto. Veja o trecho do código a seguir.

Nesse código há alguns parâmetros que precisam ser alterados, conforme o projeto:

  • #define   FREQUENCIA_DO_CLOCK_DA_CPU 12.0e+6 // Hz —->  12 MHz, por exemplo.

Inicializar essa constante com o valor do clock do seu microcontrolador.

  • #define   FATOR_DE_ESCALA_CLOCK_TIMER    12.0f     // Divide o clock por 12

Valor do pre-scaler.

  • #define   FREQUENCIA_DE_INTERRUPCAO_TIMER_0 5e+3  // Hz —- > 5 kHz, por exemplo.

Define a frequência da interrupção do timer.

São apenas esses três parâmetros que devem ser inicializados. Não é necessário alterar outras partes do código!

O segundo segmento da biblioteca refere-se às inicializações dos timers, conforme o modo de operação, e os comandos para iniciar a operação do temporizador. Observe que nesse segmento é mostrada a rotina principal (void main(void)) e indicado onde devem ser inseridos os trechos do código.

O terceiro segmento mostra como são definidas as rotinas de interrupção.

EXEMPLO

A seguir vamos desenvolver o nosso programa de exemplo. Nesse programa, será programado o Timer 0 no modo 2 de operação, com o microcontrolador operando com um clock de 4 MHz e uma frequência de interrupção de 1,5 kHz. Confira o código no quadro abaixo.

Se você quiser simular o programa exemplo acima e explorá-lo um pouco mais, siga os seguintes passos:

  • Instale o KEIL C51 μVision;
  • Baixe o arquivo Testa_Timer.zip;
  • Instale os arquivos de Testa_Timer.zip num diretório para testes;
  • Navegue até o diretório de testes e acione o arquivo Testa_Timer.uvproj (2 “clickes”)  (Figura 2).

Timers - Arquivos no diretório de teste
Figura 2: Arquivos no diretório de teste

Nesse instante deverá abrir o programa Keil e a tela deverá ser a retratada na Figura 3. Esse painel permite navegar no código em C, editá-lo e compilá-lo. Não é necessário fazer isso para realizar a simulação, mas você poderá posteriormente alterar alguns parâmetros do código e testar o programa com as novas alterações.

Timers - Programa Keil pronto com o programa exemplo carregado
Figura 3: Programa Keil pronto com o programa exemplo carregado

A seguir coloque o programa no modo de Debug (Figura 4, Figura 5 e Figura 6) para que se possa iniciar a simulação.

timers - Selecionando o modo Debug do programa
Figura 4: Selecionando o modo Debug do programa

Antes de entrar no modo de depuração, aparece na tela a mensagem da Figura 4. “Clicke” no  “OK” para continuar.

Timers - Aviso de que no modo de avaliação, o código fica limitado a 2K
Figura 5: Aviso de que no modo de avaliação, o código fica limitado a 2K

timers - Modo Debug de operação
Figura 6: Modo Debug de operação

 

Observe que já estão destacados os painéis de monitoramento do Timer 0 e do Port 3, cujo bit 1 deverá ser alternado a cada término de contagem do temporizador de software. As duas variáveis principais (bFlagTimerDeSoftware e nTimerDeSoftware) poderão ser monitoradas na janela Watch 1 durante a simulação.

É possível utilizar as teclas de função F11 para executar o programa passo a passo ou F5 entrar em execução. Recomendo que você inicie a simulação utilizando o passo  a passo para poder observar detalhadamente como que funciona o mecanismo de operação desse programa.

Resumo

Neste artigo técnico foram apresentados alguns conceitos relativos à utilização de temporizadores de hardware de um microcontrolador associados a temporizadores de software para a implementação de arquiteturas de software típicas de  sistemas operacionais de tempo real. Também foi apresentada e explicada uma biblioteca padronizada para a utilização dos timers de microcontroladores da família MCS-51, codificada em C, para ser compilada no programa da Keil. Depois foi desenvolvido um programa exemplo para que você possa simular o que foi apresentado e observar os detalhes dessa implementação.

Este artigo é o segundo da série de artigos que abordam algumas funções comuns em projetos de sistemas embarcados de tempo real. Confira os demais artigos (em breve).

Sistemas Operacionais de Tempo Real

Bibliotecas de funções e rotinas padronizadas em linguagem C para MCS-51

  • Timers (este artigo) – É apresentada uma biblioteca desenvolvida em linguagem C para a inicialização e o uso dos Timers do MCS-51;
  • Displays de 7 segmentos – É apresentada uma biblioteca desenvolvida em linguagem C para a inicialização e o uso em displays de 7 segmentos;
  • Teclados Matriciais – É apresentada uma biblioteca desenvolvida em linguagem C para varredura, leitura, debounce, identificação da tecla acionada e desvio para a rotina de tratamento. A forma como as rotinas foram escritas, permitem sua fácil reutilização em outros projetos;
  • Periféricos – É apresentada uma biblioteca desenvolvida em linguagem C para a inicialização e o uso de alguns periféricos, tais como conversores A/D, sensor de temperatura e memórias seriais.

Fonte: https://www.embarcados.com.br/rtos-timers/

Atualizando Firmware ESP8266

Encontrei estes vídeos muito simples e gostaria de compartilhá-lo com vocês. Não tem voz com sotaque, nem baboseira que nos faz perder tempo.

ESP8266 ESP-01 WiFi IOT Module Flashing or Re-flashing Firmware Update Ai Thinker version Tutorial 1. How to update or re-flashing ESP8266 ESP-01 Ai Thinker version firmware using ESP Flash Download Tool.

Default Version (Jun 5 2015):
SDK 0.9.5 (Ai-Thinker)
AT 0.21.0.0 (Ai-Thinker)

Re-flashing firmware (512KB/4Mbits flash size board version):
– The latest firmware is SDK 1.3.0 but we will flash it the same version as it is the only version that support this ESP-01 with 4Mbit of flash size. You may use the latest version if you have larger flash size.
SDK 0.9.5 (Ai-Thinker)
AT 0.21.0.0 (Ai-Thinker)

Required Firmware file and address (no 4Mbits/512kByte version support version 1.0 and above):
ai-thinker-0.9.5.2.bin (0x00000)

Item Required:
1. ESP8266 ESP-01 4Mbit/512kB version (Hardware) – http://www.aliexpress.com/wholesale?S…
2. FTDI USB to Serial UART Adapter (Hardware) – http://www.aliexpress.com/wholesale?S…
3. Jumpers (Hardware) – http://www.aliexpress.com/wholesale?S…
4. Breadboard (Hardware) – http://www.aliexpress.com/wholesale?S…
5. PuTTY (Software) – http://www.chiark.greenend.org.uk/~sg…
6. ESP Flash Download Tool (Software) – http://bbs.espressif.com/viewtopic.ph…
7. Ai-Thinker Firmware (Firmware) – http://wiki.aprbrother.com/wiki/Firmw…

Extra (For external Power Supply):
1. 3.3V 1A Voltage Regulator (AZ1117T) – http://www.aliexpress.com/wholesale?S…
2. Mini/Micro USB Breakout Board – http://www.aliexpress.com/wholesale?S…
3. Power Bank

NOTE: External power supply is required if the PuTTY or Serial Monitor unable to give response or always show an error.

Steps:
1. Prepare all the hardware required.
2. Build up all connection between ESP8266 ESP-01 and FTDI.
3. Download PuTTY Terminal Program.
4. Download ESP Flash Download Tool.
5. Download the Ai Thinker firmware.
6. Connect and check the current version of firmware using PuTTY.
7. Upload the firmware using ESP Flash Download Tool.
8. Check the uploaded version of firmware using PuTTY.

IMPORTANT NOTE:
1. External power supply is required if the PuTTY or Serial Monitor unable to give response or always show an error.
2. Ai-Thinker firmware version 1.0 and above requires at least 1MB (8Mbit) of Flash. 512kB (4Mbit) of Flash has to use older version (v0.9.5.2 – refer to alternative link below)

Official Download Link for Latest Ai-Thinker firmware:
http://bbs.ai-thinker.com/forum.php?m…

Alternative Download Link for Latest Ai-Thinker firmware:
http://www.electrodragon.com/w/ESP826…

Alternative Download Link for older version Ai-Thinker firmware:
http://wiki.aprbrother.com/wiki/Firmw…

SUBCRIBE Youtube for Channel for more Tutorial Videos:
Youtube Channel: https://www.youtube.com/channel/UCcod…

Soundtrack credits:
Jahzzar – betterwithmusic.com – CC BY-SA
Rainy_Day_Games – YouTube Audio Library

Publicado em 29 de out de 2016

ESP8266 ESP-01 WiFi IOT Module Flashing Firmware Update Espressif Version Tutorial 2. How to update ESP8266 ESP01 Espressif version firmware using ESP Flash Download Tool.

————————————–
I N F O :
————————————–
Default Version (Jun 5 2015):
SDK 0.9.5 (Ai-Thinker)
AT 0.21.0.0 (Ai-Thinker)

Upgrade to latest supported (4Mbit Flash of ESP-01) Espressif version (Sep 18 2015) – Refer Important NOTES for details:
SDK 1.4.0 (Espressif Non-OS no-boot)
AT 0.50.0.0 (Espressif Non-OS no-boot – Sep 18 2015)

ESP-01 Board Flash size: 4Mbit/512KByte version

————————————–
F I R M W A R E :
————————————–
Required Firmware file and address (4Mbit/512KB version):
1. esp_init_data_default.bin (0x7c000)
2. at\noboot\eagle.flash.bin (0x00000)
3. at\noboot\eagle.irom0text.bin (0x10000)
4. blank.bin (0x3e000)
5. blank.bin (0x7e000)

————————————–
P R E P A R A T I O N :
————————————–
Item Required:
1. ESP8266 ESP-01 (Hardware) – http://www.aliexpress.com/wholesale?S…
2. FTDI USB to Serial UART Adapter (Hardware) – http://www.aliexpress.com/wholesale?S…
3. Jumpers (Hardware) – http://www.aliexpress.com/wholesale?S…
4. Breadboard (Hardware) – http://www.aliexpress.com/wholesale?S…
5. PuTTY (Software) – http://www.chiark.greenend.org.uk/~sg…
6. ESP Flash Download Tool (Software) – http://bbs.espressif.com/viewtopic.ph…
7. NON-OS ESP8266 SDK Firmware (Firmware) – http://bbs.espressif.com/viewtopic.ph…

Extra (For external Power Supply):
1. 3.3V 1A Voltage Regulator (AZ1117T) – http://www.aliexpress.com/wholesale?S…
2. Mini/Micro USB Breakout Board – http://www.aliexpress.com/wholesale?S…
3. Power Bank

————————————–
S T E P S :
————————————–
1. Prepare all the hardware required.
2. Build up all connection between ESP8266 ESP-01 and FTDI.
3. Download PuTTY Software.
4. Download ESP Flash Download Tool.
5. Download the latest Espressif Non-OS ESP8266 SDK firmware (use this SDK 1.4.0 version since this is the only version applicable for 4Mb of flash size – refer IMPORTANT NOTES below).
6. Connect and check the current version of firmware using PuTTY.
7. Upload the latest Espressif firmware using ESP Flash Download Tool.
8. Check the latest version of firmware using PuTTY.

————————————–
I M P O R T A N T N O T E S :
————————————–
1. External power supply is required if the PuTTY or Serial Monitor unable to give response or always show an error.
2. 4Mbit of Flash is not supported for SDK v1.5.0 (15_11_27) and above for both boot and non-boot mode due to large size of AT firmware (Starting ESP8266_AT_v0.51). Please use 8Mbit Flash or larger.
3. 4Mbit of Flash is only support non-boot mode for SDK v1.1.0 (15_05_22) until SDK v1.4.0 (15_09_18).
4. Please refer to README file in bin/at/ folder for another flash size.
5. If you have an upgraded version of ESP-01 with 8Mbit of flash size (Black Color), Please refer ESP-201 (8Mbit Flash size) tutorial video on how to download latest SDK firmware. Link here: https://www.youtube.com/watch?v=U8ubG…

————————————–
S U B S C R I B E :
————————————–
SUBCRIBE MakerStream YouTube Channel for more Tutorial Videos:
YouTube Channel: https://www.youtube.com/channel/UCcod…

Soundtrack credits:
Jahzzar – betterwithmusic.com – CC BY-SA – intro sound (cropped)
Rainy_Day_Games – YouTube Audio Library

Projeto Valkyrie

Você pode usá-lo para automação residencial, bem como controlar dispositivos como braço robo, robôs etc. Valkyrie está ligado à IOT usando Wi-Fi, BLE, Bluetooth clássico, UHF RF Transceiver e XBee, usando o protocolo universal chamado V-API. Este é Valkyrie o caminho futuro do gesto e voz controle.

Características do projeto Valkyrie:

  • processamento de movimento em tempo real inovadora
  • serviço de controle de voz
  • detecção de controle por gestos inteligentes
  • aplicações para smartphones
  • funcionalidade de Bem-Estar
  • API aberta para desenvolvedores
  • Várias interfaces de comunicação

Luva: Projeto Valkyrie é destinado a completar o desafio “SpaceGlove”. Para os 2 dias que trabalharam nesse projeto nós fizemos uma luva de couro e material elástico que é confortável para o uso diário e trabalha cerca de 70 horas em modo de transmissão de energia integral.

Com essa luva, fizemos experiências para controlar muitos dos dispositivos domésticos padrão (lâmpadas, luzes, aquecedor de fã, tiras de luz LED, TV, caixa de configuração) com gestos baseados tais como slide, de cima para baixo, para baixo-up etc Depois que fizemos um serviço que está transmitindo dados a partir da luva a um iPhone, e nós temos modificado a base de dados gesto, e acrescentou gestos personalizados. Com precisão de 10% que têm distinguido com sucesso 16 gestos diferentes e adicionou suporte para mais de 60.

Centro de controle: . Para controlar muitas interfaces precisamos de um centro de controle que está repetindo sinais recebidos a partir de qualquer das interfaces de comunicação e enviá-lo para as outras interfaces
As seguintes interfaces são suportados:

  • Wi-fi
  • Bluetooth Low Energy
  • Classi Bluetooth
  • XBee (ZigBee)
  • 433 MHz transceptor de rádio, e
  • comunicação USB

 Nós integramos muitas bibliotecas e de comunicação único e universal e implementou-lo em um V-API (Valkyrie API). A ideia na V-API é que é pode ser usado com qualquer tipo de dispositivos e usando o protocolo universal você pode facilmente escrever os códigos para a comunicação. O V-API é explicado em detalhes no slide 17 da documentação de hardware e firmware incluídos nos recursos.

Luva das posições dos sensores e descrições:

AccGyro

force-sensor graphic

heart-rate-sensor

As aplicações móveis: Nós desenvolvemos 2 aplicações de interface com o centro de comando (e a luva) – uma para Android e um para iOS. O aplicativo Android usa apenas o serviço de detecção de voz usando o google agora pesquisar e se o comando é reconhecido que envia a solicitação HTTP POST para o nosso serviço on-line (imp elétrica). O serviço Android está trabalhando no telefone, bem como no relógio Android. O aplicativo iOS suporta serviço feito sob encomenda Reconhecimento de voz, controle de automação residencial usando a voz ou entrada directa na aplicação, e informações da estação meteorológica. O nosso serviço de bem-estar está verificando a sua frequência cardíaca automaticamente a cada 30 minutos ou continuamente enquanto você está treinando. Ele também pode contar seus passos e detectar sua qualidade de sono. O aplicativo também pode ser usado para upload de novo firmware para a luva e para criar mais gestos de ser reconhecidos pela luva e ligá-los para executar uma variedade de ações.

iPhoneScreens

No momento, temos uma luva totalmente funcional, a aplicação iOS com todas as propriedades que precisamos, controles remotos para computadores (luva agindo como dispositivo HID), controle de telefone embora o serviço HID BLE, controle de casa inteligente com os hábitos e gestos já implementadas, controle robo braço, controle de jogo de computador, controle rover / carro gesto, controle remoto da TV inteligente e muitos mais por causa do protocolo V-API universal que pode ser usado em muitos lugares.

Q & A:

  • Não há gravidade no espaço aberto – podemos usar um transmissor magnético para determinar o ponto “zero” no espaço e usá-lo para calibrar e sentir a gravidade pseudo e velocidade angular.

  • É difícil usar a maioria dos dispositivos de comunicação GHz no espaço – É por isso que nós temos transceptores de 433 MHz  no Centro de Controle. As bandas de VHF e UHF são capazes de penetrar na atmosfera terrestre e transmitir a comunicação de baixo ruído da terra para o espaço. Isto é usado pelos radioamadores para fazer QSOs utilizando as estações espaciais internacionais como repetidor.

  • velocidade de dados de baixo se o dispositivo controlado é muito longe da terra – não há muito que possamos fazer sobre isso, então decidimos fazer macros personalizadas (por exemplo, se você está controlando braço robótico), você faz o movimento uma vez com a mão então este é enviado para o braço robótico, que memoriza o movimento e fazê-lo pelo comando. Por exemplo no vídeo temos usado este sistema para agarrar a caixa e movê-lo algumas polegadas atrás.
  • Conexão cai enquanto controla algo – Se não há nenhuma conexão para 300 ms, a operação pára até que a ligação não for retomada.
  • Carregar – estamos considerando o carregamento sem fio, porque com as novas tecnologias no carregamento sem fio é possível cobrar 800 mAh por menos de 40 min.
  • Consumo de energia – é 13 – 15 mA no modo de transmissão.
  • você pode usar dispositivos externos (como celulares com Android, Bluetooth Joystic) para controlar dispositivos periféricos Control Center – Sim, pode-V API é um protocolo universal para comunicação, todos os relatórios recebidos são repetidos para as outras interfaces de comunicação.

Imagens da luva feita durante os 2 dias do desafio Apps Space: sistema de sensor de pressão real.

IMG_2025_photoshop

 

Desenvolvimento futuro

  • Para tornar totalmente funcional Aplicativo para Android
  • Para adicionar mais sensores para a estação de controle
  • Para melhorar e tornar as bibliotecas V-API claramente legíveis para C, C ++, C #, Java, Java Script, Objective C
  • A cooperar com muitas universidades e outras instituições de ciência em todo o worlд
  • Para tornar a placa de circuito impresso flexível para a luva
  • Para desenvolver personalizados Bluetooth Serviços de Energia baixa para ser fácil de usar por desenvolvedores Android / iOS
  • Para adicionar mais documentação e estabelecer centro de suporte para suportar os desenvolvedores usando o nosso V-API
  • Para fazer algumas variações a luva por exemplo, negócios, esporte, casual e fazer o hardware para ser fácil mutável
  • Testes oficiais
  • Lançamento do projeto (Se começarmos em 2015/06/01 até o final de setembro ’15 teremos um produto)

 

https://open.nasa.gov/innovation-space/valkyrie/

Código em Python para PI (Segunda Anotação)

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
#!/usr/bin/python
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)

# init list with pin numbers

pinList = [17, 23]

# loop through pins and set mode and state to 'low'

for i in pinList: 
    GPIO.setup(i, GPIO.OUT) 
    GPIO.output(i, GPIO.HIGH)

# time to sleep between operations in the main loop

SleepTimeL = 0.2

# main loop

try:
  while True:
   
    for i in pinList:
        GPIO.output(i, GPIO.HIGH)
        time.sleep(SleepTimeL);
        GPIO.output(i, GPIO.LOW)

    pinList.reverse()

    for i in pinList:
        GPIO.output(i, GPIO.HIGH)
        time.sleep(SleepTimeL);
        GPIO.output(i, GPIO.LOW)

    pinList.reverse()

# End program cleanly with keyboard
except KeyboardInterrupt:
  print "  Quit"

  # Reset GPIO settings
  GPIO.cleanup()

 

Calculando os Materiais para o Projeto dos Berçários

http://www.zhitov.ru/pt/zabor/

zabor

Serviço gratuito de cálculo de materiais de construção

Calcular Quantidade de Tijolos

http://www.clickreforma.com.br/calculadoras.php?calcula_tijolos

Calcular Quantidade de Tinta

http://www.clickreforma.com.br/calculadoras.php?calcula_tintas

Calcular Capacidade do Ar Condicionado

http://www.clickreforma.com.br/calculadoras.php?calcula_ar

Site com diversas dicas

http://www.cimentoeareia.com.br/quantparedes.htm

http://www.meiacolher.com/2014/03/aprenda-calcular-quantidade-de-tijolo.html

http://www.calcularaarea.com/