Instalando Dependências do Ionic – Aplicativos Híbridos

Para você que desenvolve aplicativos híbridos e deseja instalar o Ionic, segue o passo a passo:

 

1 – Instalar Java SE Development Kit 8

Instalar Java SE Develop em:  http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2 – Instalar Android Studio

To install Android Studio on Windows, proceed as follows:

  1. Launch the .exe file you downloaded.
  2. Follow the setup wizard to install Android Studio and any necessary SDK tools.On some Windows systems, the launcher script does not find where the JDK is installed. If you encounter this problem, you need to set an environment variable indicating the correct location.

    Select Start menu > Computer > System Properties > Advanced System Properties. Then open Advanced tab > Environment Variables and add a new system variable JAVA_HOME that points to your JDK folder, for example C:\Program Files\Java\jdk1.8.0_77.

Link em:  http://developer.android.com/sdk/installing/index.html

3 – Instalar Ionic

Ionic comes with a convenient command line utility to start, build, and package Ionic apps.

To install it, simply run:

$ sudo npm install -g ionic

4 – Crie o Projeto

Now, we need to create a new Cordova project somewhere on the computer for the code for our app:

$ ionic start todo blank

That will create a folder called todo in the directory the command was run. Next, we will go into that directory and list the contents. Here is what the outer structure of your Ionic project will look like:

$ cd todo && ls

├── bower.json     // bower dependencies
├── config.xml     // cordova configuration
├── gulpfile.js    // gulp tasks
├── hooks          // custom cordova hooks to execute on specific commands
├── ionic.project  // ionic configuration
├── package.json   // node dependencies
├── platforms      // iOS/Android specific builds will reside here
├── plugins        // where your cordova/ionic plugins will be installed
├── scss           // scss code, which will output to www/css/
└── www            // application - JS code and libs, CSS, images, etc.

If you are planning on using any version control system, you can go ahead and set it up in this new folder.

5 – Configure Platforms

Now, we need to tell ionic that we want to enable the iOS and Android platforms. Note: unless you are on MacOS, leave out the iOS platform:

$ ionic platform add ios
$ ionic platform add android

If you see errors here, make sure to follow the platform guides above to install necessary platform tools.

6 – Test it out

Just to make sure the default project worked, try building and running the project (substitute ios for android to build for Android instead):

$ ionic build ios
$ ionic emulate ios

 

7 – Java JDK

Install the most recent Java JDK (NOT just the JRE).

Next, create an environment variable for JAVA_HOME pointing to the root folder where the Java JDK was installed. So, if you installed the JDK into C:\Program Files\Java\jdk7, set JAVA_HOME to be this path. After that, add the JDK’s bin directory to the PATH variable as well. Following the previous assumption, this should be either %JAVA_HOME%\bin or the full path C:\Program Files\Java\jdk7\bin

8 – Apache Ant

To install Ant, download a zip from here, extract it, move the first folder in the zip to a safe place, and update your PATH to include the bin folder in that folder. For example, if you moved the Ant folder to c:/, you’d want to add this to your PATH: C:\apache-ant-1.9.2\bin.

9 – Android SDK

Installing the Android SDK is also necessary. The Android SDK provides you the API libraries and developer tools necessary to build, test, and debug apps for Android.

Cordova requires the ANDROID_HOME environment variable to be set. This should point to the [ANDROID_SDK_DIR]\android-sdk directory (for example c:\android\android-sdk).

Next, update your PATH to include the tools/ and platform-tools/ folder in that folder. So, using ANDROID_HOME, you would add both %ANDROID_HOME%\tools and %ANDROID_HOME%\platform-tools.

 

10 – Install Ionic

Ionic comes with a convenient command line utility to start, build, and package Ionic apps.

To install it, simply run:

$ sudo npm install -g ionic

11 – Create the project

Now, we need to create a new Cordova project somewhere on the computer for the code for our app:

$ ionic start todo blank

That will create a folder called todo in the directory the command was run. Next, we will go into that directory and list the contents. Here is what the outer structure of your Ionic project will look like:

$ cd todo && ls

├── bower.json     // bower dependencies
├── config.xml     // cordova configuration
├── gulpfile.js    // gulp tasks
├── hooks          // custom cordova hooks to execute on specific commands
├── ionic.project  // ionic configuration
├── package.json   // node dependencies
├── platforms      // iOS/Android specific builds will reside here
├── plugins        // where your cordova/ionic plugins will be installed
├── scss           // scss code, which will output to www/css/
└── www            // application - JS code and libs, CSS, images, etc.

If you are planning on using any version control system, you can go ahead and set it up in this new folder.

Configure Platforms

Now, we need to tell ionic that we want to enable the iOS and Android platforms. Note: unless you are on MacOS, leave out the iOS platform:

$ ionic platform add ios
$ ionic platform add android

If you see errors here, make sure to follow the platform guides above to install necessary platform tools.

Test it out

Just to make sure the default project worked, try building and running the project (substitute ios for android to build for Android instead):

$ ionic build ios
$ ionic emulate ios

Let’s go!

Now we are ready to start building our app, so continue on to the next chapter:

Link em: http://ionicframework.com/docs/guide/installation.html

Mais de 600GB de material para estudo em TI: Cursos, vídeo aulas, livros, apostilas de todas as variantes da Tecnologia da informação:

 60 GB em vídeos aulas de Java 16 DVDS – Senha = pr0mp7.torrent

Tamanho:153 KB
https://mega.co.nz/#!JRgjRLBT!nNg8JO31WWskPXH96xn1efu9mZqfgM%20jVZo24v6CAiLg

Livro Python para Pentester e Hackers

https://mega.nz/#!atQHACib!jff1wMGqCDMq1s8CjGWcbLDAcgol53DXvWYrwehV6tE

Curso de PHP

https://mega.nz/#F!WJVmQI4K!oosRA55mOWFMGR5qu9ssJg

Curso DreamWeaver

https://mega.nz/#F!AUhkiSpK!HlSxR0lexLecXjCowGG3AQ

Curso de Redes

https://mega.co.nz/#F!hZxDHLIZ!Pw8xfRmJirbL9Jvvip_iKw

Segurança em Redes

https://mega.co.nz/#F!cdQWjA5S!cX1sn4-sDpl1iWTH2b8-8w

Banco de Dados

https://mega.co.nz/#F!4R4ywJYb!-QLSTcDQ7GyhLeauC9HOlA

Curso de Eletrônica

https://mega.co.nz/#F!EYplFZRJ!Hd3g53t4SWuZ_ocF1fGLaw

Curso de JOOMLA completo

https://mega.co.nz/#F!kAohEChQ!C0XDspJDpw7tVxAgZizcaw

Curso de Linux

https://mega.co.nz/#F!YNI3kS5R!VsbYhu0sYIidqlKwwnH14Q

Curso Hardware

https://mega.co.nz/#F!EBAUCBDC!M2L3z07ypj05HtAQSeXkGA

Mega pacote de cursos Alura

https://mega.nz/#!FhxXwK7K!-Kzt-IDBs-rhVWC1_DgaULd7vSkZG7dWULCi_99kiOY

Curso Wireless Hacking

https://mega.co.nz/#F!AFJm2TLK!I6f4pZSX2ltoGBs0b1ztsQ

Curso WordPress

https://mega.co.nz/#F!cBIUBDTZ!Qtx1ahx-YeXUPdzIghwatA

Engenharia de software

https://mega.co.nz/#F!gUAmjbpD!BW7cylJHD_rcO1rryJ1sVQ

Hacking

https://mega.co.nz/#F!ER53kboI!H2RKhe5oMegv0APK2cQoFQ

https://mega.co.nz/#F!9QhWHbTI!oarMp7t3tzyY_yu08KHoEQ

Hardware

https://mega.co.nz/#F!oIZW3AzQ!LqcZV5fNLLmsxKfXAl6EtA

Introdução aos Sistemas Operacionais

https://mega.co.nz/#F!oZpVgbTR!MnX35yBQTexHPm4J8nIP2A

Linux

https://mega.co.nz/#F!YNg3xYhY!KQxsOV5rOF4ZhZm5LaiTwQ

Linux Essentials

https://mega.co.nz/#F!sBZhXDAI!NCWJslFznUXBaymdg_kmuA

Lógica de Programação Usando Python

https://mega.co.nz/#F!QAZ31aYY!JtCs0a5who41VK3jNsBa4Q

OYS pentest – Curso Teste de Invasão em Redes e Sistemas

https://mega.co.nz/#F!dVQkDTIQ!MLNKb5ZELHuIarpqHA0HxQ

Programação WEB

https://mega.co.nz/#F!AQQU3LYI!MIYAsxFZtfFTxpIqfHfIBg

Redes

https://mega.co.nz/#F!NMh1SZQC!5CKtEXGJy2JrIafPhvUuew

Segurança

https://mega.co.nz/#F!MN402QIb!_S4Jg-opFAFQVtl3lR4yJQ

Sistemas Operacionais

https://mega.co.nz/#F!JJAVwQAC!FB-jqhynRl_3CUuNzt7oMw

Software Livre

https://mega.co.nz/#F!EMgUkKxI!Wmv2SRC5bQNiLaZdbNBa9w

Teste de Invasão em Redes Sem Fio

https://mega.co.nz/#F!AUQwgIpa!NFW83TBeph3-7A7-LZqy4Q

Apostila HTML CSS

https://mega.co.nz/#!8FpXjbKB!11EMXK2wdfH3OC5BseR0PMbT9MYSGO%20tMtJrfiv5umEE

Artigo – wireshark

https://mega.co.nz/#!pc43VIpR!qy50wLU0yM7TsaeJtNu7RdaFw88BId%20VmDxCqd_E7ouQ

Curso Android Básico

https://mega.co.nz/#!pRAglZqB!hxJ9kG6dvUVukuT5tKQFMzf7_2jKdx%20V4SjM-IFzl2ns

Curso Banco de dados SQL e Modelagem

https://mega.co.nz/#!QYZSlCLB!FudRrApaiBV1oshkcHo2Rm38KeKSk1%20i_WN_0G84Q41M

Curso completo de Python

https://mega.co.nz/#!pEwA1IBL!REq1z_rnrc-ttqhEI-aGnxHcxc__0x%20gix5F98CwCkKI

Curso Linux

https://mega.co.nz/#!JIxVgYTZ!2aVR4SMtttlGoaEbTl7NGXa8n_VuhE%20K9XzjrlchSqss

Curso ipv6

https://mega.co.nz/#!xd50wAjA!sXt5m6tdZkZ_0ppNw7RKAw9gWgNYsM%20qVR12tr9FoTvM

Hackeando Mentes

https://mega.co.nz/#!kIBzmYAQ!VEYe_yI1Q6xBBsq_m5yvv_eIG3DH3n%20Xbp2AKkqLly88

Hacker inside

https://mega.co.nz/#!9ZgSyCCY!sBTV9Mva-fCYw5QKF0TkJfolcDsuox%20KqadjDqrjQTIM

Kevinmitnick a arte de enganar

https://mega.co.nz/#!INJglDRQ!H1KGBLTP9pEWtfZrp5VAbspu0Uo_Me%20_hkvtNh4B3Dm0

Banco de dados

https://mega.nz/#F!edRGmCIC!RS7TIjy7Krd4blcpLk2_hw

Computação Forense

https://mega.nz/#F!LVZgyKxT!0UEl9uphWKK5XN2iHo2ZTg

Curso inglês

https://mega.nz/#F!rMQW2CiD!nUNJvZ1nIeRHBMx33Vw8oQ

DeepWeb

https://mega.nz/#F!SdACSJSL!ck9c2S2FvjdI-L1ji-8JkQ

Edição de imagens

https://mega.nz/#F!vFIGFBpI!eRnEOpNziIS_mZx4IAIUsg

Engenharia de software

https://mega.nz/#F!ScwiGDhY!mFZz6mdkPMGVs5_6ZPOQeQ

Hacking

https://mega.nz/#F!vVoUhSrY!CCRwM3BC7U31BaAFZHl5SQ

Introdução a sistemas operacionais

https://mega.nz/#F!3doigIaC!pbDI81QC_3K2sD-Y08i1_g

Microsoft office

https://mega.nz/#F!KE4h2KQJ!ARugbDhPAqm9WWet6R606g

Normas para a apresentação de trabalhos acadêmicos

https://mega.nz/#F!2YpWWYrQ!njzFN2wdEjcL-n48ouCwvA

Programação WEB

https://mega.nz/#F!Lc4jwILR!YjIOrB8spSKjbwHmNvP8hQ

Redes

https://mega.nz/#F!vdIXgCRB!LpBx2GGbuthGu7FLHL5CsA

Segurança

https://mega.nz/#F!bFgHiBZB!XHC6bDoVYO3JEMJzf3pPmg

Sistemas operacionais

https://mega.nz/#F!fBxDULYK!g6jOZV3cjXwLYzuWhqCUnA

Software Livre

https://mega.nz/#F!HFABDDgQ!eH-cL2wdBu5y_fbY8yV78A

Teoria da computação

https://mega.nz/#F!rRwjTSiC!QOCkako5vL8sIarKYrZHPA

Vídeo aulas

https://mega.nz/#F!iJgkhDRI!LcvTfLA5rRUe1fwdqa1BUA

São tantos cursos que não dá nem pra mencionar aqui do que eles tratam, mas tem coisa muito boa lá, e grande parte deles são bem atuais, tratando sobre Web, Deepweb, Programação, Pentest, Hacker, Linux. Office, Idiomas, e muitos mais.

+BONUS DE MAIS 380GB em cursos ainda não catalogados:

https://mega.co.nz/#F!98cg2TSR!1q1OctEo3sOq25J11JAbOg

https://mega.nz/#F!V55BFDbD!3cBs3zMuk168LXfhfRmm-g
https://mega.nz/#F!wVsCjS7A!K7jrAMW6b7RX_AC6TT3msA!tZcAXCrK
https://mega.nz/#F!mIcTSRgJ!or6uaG2MJdh4jEKuHPYo_g!SAEDHBbB
https://mega.nz/#F!wVsCjS7A!K7jrAMW6b7RX_AC6TT3msA!ARcBlRhZ
https://mega.nz/#F!WJVmQI4K!oosRA55mOWFMGR5qu9ssJg
https://mega.nz/#F!wVsCjS7A!K7jrAMW6b7RX_AC6TT3msA
https://mega.nz/#F!WcBzgZhK!pJ1WsYkq8Evo1EhJi5oiJA
https://mega.nz/#F!mBB1BSrJ!RPojuKs757rJAIk-hVo4vw

https://mega.nz/#F!khhRAbwa!W5xZdG5Yat_y10Em_rmCng

https://mega.nz/#F!AE9GlDRT!mQQ1laUDxLw52-q1DljDsg

https://mega.nz/#F!CV9WFJYK!cjNuwXYg5wm6rc0YZTqaIg

https://mega.nz/#F!YF12iJ6B!933zM4O_EAxQWR16jC7I3Q

https://mega.nz/#F!ml8xGDYT!8LXsPyDMvQj8jWaM1k4rYQ

https://mega.nz/#F!tsNijbTR!Qj–39YrI4RsIwu6NTrfTQ

http://suporteninja.com/mais-de-300gb-de-cursos-em-ti-para-download-no-mega/

( Na verdade tem mais de 600GB de conteúdo)

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/

Mensagens do Google Cloud (GCM)

O Mensagens do Google Cloud (GCM, na sigla em inglês) é um serviço gratuito que ajuda os usuários a enviar mensagens em várias plataformas: Android, iOS e Google Chrome. Por exemplo, um servidor pode enviar mensagens diretamente para um dispositivo, para grupos ou para dispositivos inscritos em tópicos. Além disso, o app em um dispositivo pode enviar mensagens diretamente para um servidor e para dispositivos que pertençam ao mesmo grupo.

O GCM substitui a versão Beta do C2DM (Cloud to Device Messaging). O uso do C2DM foi suspenso, e novas assinaturas não são permitidas. Saiba como migrar do C2DM para o GCM

Adicionar o Mensagens do Google Cloud

Para adicionar o GCM ao seu app, acesse o site do Google Developers. O GCM está incluído em “Cloud Messaging”.

ADICIONAR O GCM AO SEU APP

Estatísticas do GCM

É possível assinar o GCM para apps do Google Play e de outras fontes. No entanto, as estatísticas do GCM estarão disponíveis somente para apps publicados no Google Play. Para ver as estatísticas do GCM no seu Console do desenvolvedor do Google Play, associe a chave de amostra da API do GCM ou o token do C2DM ao seu app. Para isso:

  1. Faça login no Console do desenvolvedor do Google Play.
  2. Selecione um app.
  3. No menu à esquerda, clique em Serviços e APIs.
  4. Clique no botão Vincular um código de remetente.
  5. Digite sua chave da GCM API ou o token de login do cliente do C2DM.
  6. Clique em Vincular.

Também é possível revogar sua chave ou seu token por meio do console da API do Google. Após a revogação da chave ou do token, ainda será possível ver a página Estatísticas do seu app no Console do desenvolvedor do Google Play até que você remova o código de remetente do GCM.

Status da mensagem do GCM

  • Aceita: a mensagem chegou ao GCM.
  • Armazenada: a mensagem foi armazenada no GCM (novo envio pendente) até que a mensagem expire ou seja recolhida.
  • Entregue: a mensagem foi enviada ao dispositivo.
  • Recebida: o dispositivo confirmou o recebimento da mensagem.
  • Recolhida: a mensagem com uma chave de recolhimento foi substituída por outras mensagens com a mesma chave.
  • Expirada: a mensagem alcançou o time to live (TTL) e expirou.
  • Solicitação inválida: a mensagem chegou ao GCM, mas é inválida. O GCM a rejeitou devido a algum processamento adicional. É possível encontrar detalhes sobre esses erros nas Referências da API do servidor (em inglês).
  • Enviada com atraso após reconectar: a mensagem foi enviada ao dispositivo com certo atraso após nova conexão aos servidores do GCM.
  • Enviada ao reconectar: a mensagem foi enviada ao dispositivo quando esse foi reconectado ao GCM.
  • Aceita, enviada ao APNS: a mensagem chegou ao GCM e foi enviada ao APNS para ser entregue ao dispositivo iOS.
  • Falha no envio ao APNS: a mensagem chegou ao GCM, mas houve um erro ao ser encaminhada ao APNS para ser entregue ao dispositivo iOS.

Diagnósticos do GCM

Com os diagnósticos do GCM, é possível resolver problemas com mensagens enviadas por meio do GCM. Para procurar uma mensagem, use o token de registro ou o código da mensagem.

Veja como acessar a página Diagnósticos do GCM:

  1. Faça login no Console do desenvolvedor do Google Play.
  2. Selecione um app que usa o GCM.
  3. No menu à esquerda, clique em Diagnósticos do GCM.

Veja como procurar mensagens enviadas pelo Mensagens do Google Cloud:

  • Token de registro: a identidade do GCM do app cliente no dispositivo. O token poderá ser encontrado quando o app cliente for registrado com o GCM. Essa também é a identidade que você usará ao enviar uma mensagem do GCM para um dispositivo.
    • Procure somente um token de registro de cada vez.
  • Código da mensagem: o identificador único de mensagens do GCM. O código pode ser encontrado na mensagem de resposta que o GCM envia para o servidor cliente quando o GCM confirma o recebimento da mensagem.
    • É possível procurar vários códigos de mensagem de uma só vez, mas todos eles devem estar relacionados ao mesmo token de registro.
    • Para aprender sobre os diferentes status de mensagens, consulte a seção de status de mensagem do DCM.

Visão geral das mensagens recolhidas

Se a mensagem for enviada com a opção collapse_key e não tiver sido entregue ao dispositivo quando chegar outra mensagem com a mesma opção, a original terá o status “Recolhida”.

A visão geral das mensagens recolhidas mostra uma sequência de mensagens com a mesma chave de recolhimento até que a última mensagem da sequência alcance um status sem recolhimento (por exemplo, “Entregue”, “Recebida”, “Armazenada” ou “Expirada”).

Veja exemplos e referências da API collapse_key no site dos desenvolvedores.

Fonte: https://support.google.com/googleplay/android-developer/answer/2663268?hl=pt-BR

Usando Telegram API

O IPA é 100% aberto para todos os desenvolvedores que desejam criar aplicativos Telegrama na  plataforma. Sinta-se livre para estudar a aberto o código-fonte de aplicações Telegrama existentes para exemplos de como as coisas funcionam aqui. Não se esqueça de registrar sua candidatura no nosso sistema.

mtproto

Começando

Criação de um aplicativo

Como obter o seu identificador de aplicação e criar um novo aplicativo Telegram

Autorização do usuário

Como registrar o telefone de um usuário para começar a utilizar a API.

Manipulação de erro

Como lidar com erros de retorno API corretamente.

Lidar com diferentes centros de dados

Como o centro de dados mais próxima é selecionada para a interação mais rápido com a API e as coisas para tomar cuidado com no desenvolvimento de um cliente.

Manipulação de atualizações

Como se inscrever para atualizações e lidar com as mensagens recebidas.

Manipulação de notificações push-

Como se inscrever para e lidar com notificações.

Chamando métodos

Opções adicionais para chamar métodos.

Upload e download de arquivos

Como a transferência de grandes quantidades de dados corretamente.

Segurança

Chats secretos, end-to-end encryption

Novo recurso para mensagens end-to-end-criptografada.

Diretrizes de segurança

Importante verificar exigido em seu aplicativo cliente.

Perfect Forward Secrecy

Encadernação chave de autorização temporária para os permanentes.

Otimização

Otimização de cliente

Maneiras de aumentar a interação da API.

Métodos de API

Disponível lista método

Lista completa dos métodos de alto nível disponíveis.

API TL-esquema , como JSON

Texto e JSON-apresentação de tipos e métodos utilizados na API.

Lista de camadas disponíveis

Lista completa das versões de esquema disponíveis.

Log Atualizações

29 de outubro de 2014 Reorganizada documentação secretos Bate-papo: mudou-se Handling números de seqüência para um documento separado, secção adicionado em actualização camadas de chat secretos .
09 de outubro de 2014 Adicionado Camada 18 .
26 de setembro de 2014 Adicionado Camada 17 .
29 de agosto de 2014 Novo artigo sobre Perfect Forward Secrecy . Adicionado camada 15 e da camada 16 .
04 de abril de 2014 Adicionado camada 13 e da camada 14 .
15 de março de 2014 Adicionado Camada 12 .
21 de dezembro de 2013 Adicionado a camada 11 .
30 de novembro de 2013 Adicionado camada 10 .
30 de outubro de 2013 Adicionado Camada 9 .
08 de outubro de 2013 Novo artigo em chats secretos . Adicionado Camada 8 .
06 de setembro de 2013 Novo artigo em camadas TL-esquema , geochats , novos pedidos . Adicionado camadas 2-4 .
27 de agosto de 2013 Novo artigo sobre otimizações do cliente .
03 de agosto de 2013 Atualizações para documentos sobre polimorfismo e vetores em TL. Agora vectors undersal ae utilizados em todos os casos, a linguagem obsoleto em teemplates foi removido.
02 de agosto de 2013 Adicionado construtor atualização updateMessageID .
01 de agosto de 2013 Descrição para atualizações conjuntas , construtor adicionado updatesCombined
31 de julho de 2013 Descrição para upload de arquivos / lógica de download
29 de julho de 2013 Descrição gzip-compressão utilização lógica para os clientes
28 de julho de 2013 Novo artigo no mecanismo de teste para o encaminhamento entre os centros de dados

Repositório: https://github.com/niltonfelipe/Telegram

Protocolo MTProto

Descrição Geral

O protocolo é projetado para acesso a um servidor de API de aplicativos executados em dispositivos móveis. Deve ser enfatizado que um navegador da web não é um tal pedido.

O protocolo é subdividido em três componentes praticamente independentes:

  • Componente de alto nível (linguagem de consulta API): define o método pelo qual as consultas de API e as respostas são convertidas em mensagens binárias.
  • Camada Criptográfica (autorização): define o método pelo qual as mensagens são criptografados antes de serem transmitidos através do protocolo de transporte.
  • Componente de transporte: define o método para o cliente e o servidor para transmitir mensagens sobre algum outro protocolo de rede existente (como, http, https, TCP, UDP).

mtproto_encryptacao

Nota 1

Cada mensagem de texto sem formatação para ser criptografados em MTProto sempre contém os seguintes dados a ser verificado quando decifrando a fim de tornar o sistema robusto contra problemas conhecidos com os componentes:

  • sal servidor (64-Bit)
  • identificação de sessão
  • número de seqüência de mensagem
  • comprimento da mensagem
  • tempo

Resumo breve dos componentes

Componentes de Alto Nível (RPC Query Language / API)

Do ponto de vista do componente de alto nível, o cliente e o servidor trocam mensagens dentro de uma sessão. A sessão está ligada ao dispositivo cliente (a aplicação, para ser mais exato) em vez de uma ligação de HTTP / HTTPS / TCP específico. Além disso, cada sessão está ligada a uma chave de identificação de utilizador, através da qual a autorização é efetivamente realizada.

Várias ligações a um servidor podem ser abertas; mensagens podem ser enviadas em qualquer direção através de qualquer uma das conexões (a resposta a uma consulta não é necessariamente devolvida pela mesma conexão que realizou a consulta original, embora na maioria das vezes, esse é o caso, no entanto, em nenhum caso pode ser uma mensagem devolvida através de uma ligação pertencente a uma sessão diferente). Quando o protocolo UDP é utilizado, uma resposta pode ser retornada por um endereço de IP diferente do que aquele a que a consulta tinha sido enviada.

Existem vários tipos de mensagens:

  • Chamadas RPC (cliente para servidor): chamadas para métodos de API
  • Respostas RPC (servidor para cliente): resultados de chamadas RPC
  • Confirmação de mensagem recebida(ou melhor, notificação de status de um conjunto de mensagens)
  • Consulta de status Mensagem
  • Mensagem concatenada ou recipiente (um recipiente que contém várias mensagens, necessário para enviar várias chamadas RPC de uma só vez através de uma conexão HTTP, por exemplo, também, um recipiente pode apoiar gzip).

Do ponto de vista dos protocolos de nível mais baixo, uma mensagem é um fluxo de dados binários alinhados ao longo de um limite de 4 ou 16 bytes. Os primeiros vários campos da mensagem são fixos e são utilizados pelo sistema de criptografia / autorização.

Cada mensagem, quer individualmente ou dentro de um recipiente, composto por um identificador de mensagem (64 bits, ver abaixo), um número de sequência de mensagem dentro de uma sessão (32 bits), o comprimento (do corpo da mensagem em bytes, 32 bits), e um corpo (qualquer tamanho que é um múltiplo de 4 bytes). Além disso, quando um recipiente ou uma única mensagem é enviada, um cabeçalho interno é adicionado no topo (ver abaixo), então a totalidade da mensagem é criptografada, e um cabeçalho exterior é colocada na parte superior da mensagem (um de 64 bits identificador de chave e uma chave de mensagem de 128 bits).

corpo da mensagem consiste normalmente em um tipo de mensagem 32-bit seguido por parâmetros dependentes do tipo. Em particular, cada função de RPC tem um tipo de mensagem correspondente. Para mais detalhes, ver dados binários serialização , Protocolo Celular: Mensagens de Serviço .

Todos os números são escritos no formato little endian. No entanto, um número muito grande (2048 bits) usados ​​na RSA e DH estão escritos no formato big endian porque é isso que a biblioteca OpenSSL faz.

Autorização e criptografia

Antes que uma mensagem (ou uma mensagem de várias vias) inicie a transmissão através de uma rede que utiliza um protocolo de transporte, que é criptografada de uma certa forma, um cabeçalho exterior é adicionado no topo da mensagem que é um identificador de chave de 64-bits ( que identifica de forma única uma chave de autorização para o servidor, bem como o utilizador) e uma chave de mensagem de 128 bits. Uma chave de usuário junto com a chave da mensagem define uma chave de 256 bits real que é o que criptografa a mensagem usando a criptografia AES-256. Note-se que a parte inicial da mensagem a ser encriptada contém dados variáveis ​​(sessão de mensagem, ID, número de sequência, salt server) que, obviamente, influencia a chave de mensagem (e, portanto, a chave AES e iv). A chave de mensagem é definido como os 128 bits de ordem inferior do SHA1 do corpo da mensagem (incluindo sessão, mensagem de identificação, etc). Mensagens de várias partes são criptografadas como uma única mensagem.

Para uma especificação técnica, ver Protocolo Celular: Descrição Detalhada
A primeira coisa que um aplicativo cliente deve fazer é criar uma chave de autorização que normalmente é gerado quando é executado pela primeira vez e quase nunca muda.

O inconveniente principal do protocolo é que se um intruso interceptar passivamente as mensagens e, em seguida, de alguma forma, apropriando-se da chave de autorização (por exemplo, por roubar um dispositivo) será capaz de decifrar todas as mensagens interceptadas a posteriori. Isso provavelmente não é um grande problema (por roubar um dispositivo, também se poderia ter acesso a todas as informações armazenadas em cache no dispositivo sem descriptografar qualquer coisa); no entanto, podem ser tomadas as seguintes medidas para superar este problema:

  • As chaves de sessão gerada utilizando o protocolo de Diffie-Hellman, e usado em conjunto com a autorização das chaves de mensagem e para seleccionar parâmetros de AES. Para criar estes, a primeira coisa que um cliente deve fazer depois de criar uma nova sessão é enviar uma consulta RPC especial ao servidor (“gerar chave de sessão”) ao qual o servidor irá responder, após o que todas as mensagens subsequentes dentro da sessão são criptografados usando o chave de sessão também.

 

  • Protegendo a chave armazenada no dispositivo cliente com um (texto) de senha; esta senha nunca é armazenado na memória e é inserido por um usuário ao iniciar a aplicação ou com maior frequência (dependendo das configurações de aplicativos).

 

  • Os dados armazenados (em cache) no dispositivo do usuário também pode ser protegido por criptografia usando uma chave de autorização que, por sua vez, é para ser protegido por senha. Em seguida, uma senha será necessária para obter acesso ainda a esses dados.

Sincronização de Tempo

Se o tempo do cliente diverge amplamente do horário do servidor, um servidor pode começar a ignorar mensagens de clientes, ou vice-versa, por causa de um identificador de mensagem inválido (que está intimamente relacionado com o tempo de criação). Sob estas circunstâncias, o servidor envia ao cliente uma mensagem especial contendo a hora correta e um determinado sal de 128 bits (quer explicitamente fornecido pelo cliente num pedido de sincronização RPC especial ou igual a chave da última mensagem recebida do cliente durante a sessão atual). Esta mensagem pode ser o primeiro em um recipiente que inclui outras mensagens (se a diferença de tempo é significativa mas ainda não resultar em mensagens do cliente a ser ignorado).

Tendo recebido tal uma mensagem ou um recipiente contendo-lo, o cliente efetua primeiro uma sincronização de tempo (na verdade, simplesmente armazenar a diferença entre a hora do servidor e as suas próprias para ser capaz de calcular o tempo “correta” no futuro) e, em seguida, verifica que os identificadores de mensagem para correção.

Onde tem sido negligenciada uma correção, o cliente terá que gerar uma nova sessão para assegurar a monotonia de identificadores de mensagem.

Transporte

Permite a entrega de contêineres criptografados juntamente com o cabeçalho externo (a seguir, Payload) do cliente para o servidor e para trás. Existem três tipos de transporte:

  • HTTP
  • TCP
  • UDP

Examinaremos os dois primeiros tipos.

Transporte HTTP

Implementado através de HTTP / 1.1 (com keepalive) que funciona sobre o tradicional porta TCP 80. HTTPS não é utilizado; o método de criptografia acima é usado em vez disso.

Uma conexão HTTP está ligado a uma sessão (ou melhor, a sessão + identificador de chave) especificado na consulta mais recente do usuário recebido; normalmente, a sessão é o mesmo em todas as consultas, mas proxies HTTP astutos que pode corromper. Um servidor não pode retornar uma mensagem em uma conexão HTTP, a menos que ele pertence à mesma sessão, ea menos que seja a vez do servidor (uma solicitação de HTTP foi recebido do cliente para que uma resposta não foi enviada até o momento).

A disposição geral é como se segue. O cliente abre uma ou mais conexões HTTP keepalive para o servidor. Se uma ou mais mensagens necessitam de ser enviados, eles são feitos numa carga que é seguido por um pedido POST para o URL / API para que a carga é transmitida como dados. Além disso, Content-Length , Keepalive e Host são cabeçalhos HTTP válidos.

Tendo recebido a consulta, o servidor pode ou esperar um pouco (se a consulta exige uma resposta após um curto tempo de espera) ou imediatamente devolver uma resposta fictício (apenas reconhecendo o recebimento do container). Em qualquer caso, a resposta pode conter qualquer número de mensagens. O servidor pode, ao mesmo tempo enviar outras mensagens que poderia estar segurando para a sessão.

Além disso, existe uma consulta RPC longo sondagem especial (válido somente para conexões HTTP) que transmite a máxima T. tempo limite Se o servidor tiver mensagens para a sessão, eles são devolvidos imediatamente; caso contrário, um estado de espera é inserido até que o servidor tem uma mensagem para o cliente ou T segundos se passaram. Se há eventos ocorrem no período de t segundos, uma resposta manequim é devolvido (mensagem especial).

Se um servidor deve enviar uma mensagem para um cliente, ele verifica para uma conexão HTTP que pertence à sessão e é necessária na “responder a um pedido de HTTP” estado (incluindo a longo sondagem) após o que a mensagem é adicionada ao recipiente de resposta a conexão e enviados para o usuário. Em um caso típico, há algum tempo de espera adicional (50 milissegundos) contra a eventualidade de que o servidor terá em breve mais mensagens para a sessão.

Se nenhuma conexão HTTP adequado estiver disponível, as mensagens são colocadas em fila de envio da sessão atual. No entanto, eles encontram seu caminho lá de qualquer maneira até que o recebimento é explícita ou indiretamente confirmada pelo cliente. Para o protocolo HTTP, enviar a consulta seguinte na mesma conexão HTTP é considerado como um reconhecimento implícito (não mais, do protocolo HTTP também requer que as confirmações explícitas ser enviados); em outros casos, o cliente deve retornar um reconhecimento expresso dentro de um tempo razoável (que pode ser adicionado a um recipiente para o pedido seguinte).

Importante: se a confirmação não chegar a tempo, a mensagem pode ser reenviado (possivelmente, em um recipiente diferente). As partes devem autonomamente estar pronto para isso e deve armazenar os identificadores das mensagens mais recentes recebidos (e ignorar tais duplicatas, em vez de ações de repetição). Para não ter os identificadores armazenados para sempre, existem mensagens especiais de coleta de lixo que se aproveitam de identificador de mensagem monotonicity.

Se a fila de envio transborda ou se as mensagens permanecem na fila por mais de 10 minutos, o servidor esquece-los (ou envia-los para trocar, nenhum gênio necessário). Isso pode acontecer ainda mais rápido, se o servidor está funcionando fora do espaço de buffer (por exemplo, por causa de problemas de rede graves, resultando em um grande número de conexões de tornar-se cortadas).

Transporte TCP

É muito semelhante ao transporte HTTP. Também pode ser implementada através da porta 80 (para penetrar todos os firewalls) e até mesmo usar os mesmos endereços IP do servidor. Nesta situação, o servidor de HTTP ou se entende protocolo TCP deve ser usado para a ligação, a partir dos primeiros quatro bytes de entrada (para HTTP, é POST).

Quando uma conexão TCP é criada, ela é atribuída à sessão (e a chave de autorização) transmitida na primeira mensagem do usuário e, posteriormente, utilizada exclusivamente para esta sessão (arranjos de multiplexação não são permitidos).

Se uma carga (maço) tem de ser transmitida a partir do servidor para o cliente ou do cliente ao servidor, ele é encapsulado como se segue: 4 bytes de comprimento são adicionados na parte da frente (para incluir o comprimento, o número de sequência, e CRC32; sempre divisível por 4) e 4 bytes com o número de sequência de pacote dentro desta ligação TCP (o primeiro pacote enviado é numerado 0, a próxima 1, etc.), e 4 CRC32 bytes no fim (comprimento, número de sequência, e carga útil em conjunto).

Há uma versão resumida do mesmo protocolo: se o cliente envia 0xef como o primeiro byte (** importante: ** Apenas antes de o primeiro pacote de dados), em seguida, tamanho do pacote é codificada por um único byte (0x01..0x7e = comprimento de dados dividido por 4, ou 0x7f seguido de 3 bytes de comprimento (pouco endian) dividido por 4), seguido pelos dados de si mesmos (número de seqüência e CRC32 não adicionado). Neste caso, as respostas do servidor de olhar o mesmo (o servidor não envia 0xef como o primeiro byte).

No caso de ser necessário o alinhamento de 4 bytes de dados, pode ser utilizada uma versão intermediária do protocolo original: se o cliente envia 0xeeeeeeee como o primeiro int (quatro bytes), em seguida, o comprimento do pacote é sempre codificada por quatro bytes como na versão original, mas o número de sequência e CRC32 são omitidos, diminuindo assim a dimensão total do pacote por 8 bytes.

O cheia, o intermediário e os versões abreviadas do protocolo tem suporte para reconhecimento rápido. Neste caso, o cliente coloca o bit de ordem mais alta comprimento no pacote de consulta, e o servidor responde com um especial de 4 bytes como um pacote separado. Eles são os 32 bits SHA1 de ordem superior da parte cifrada do pacote com o bit mais significativo definido para tornar claro que isto não é o comprimento de um pacote de resposta regular do servidor; se a versão resumida é usado, bswap é aplicada a esses quatro bytes.

Não há reconhecimentos implícitos para o transporte TCP: todas as mensagens devem ser reconhecidos de forma explícita. Na maioria das vezes, as confirmações são colocados num recipiente com a seguinte resposta de consulta ou se for transmitido em pouco tempo. Por exemplo, este é quase sempre o caso de mensagens de cliente que contêm consultas RPC: o reconhecimento chega normalmente com a resposta RPC.

No caso de um erro, o servidor pode enviar um pacote cuja carga consiste de quatro bytes como o código de erro.Por exemplo, o código de erro 403 corresponde às situações em que o erro HTTP correspondente teria sido devolvidos pelo protocolo HTTP.

 

Arduino: Conexão à Internet sem Ethernet Shield

Arduino Ethernet

Veremos uma maneira alternativa de enviar dados do nosso arduino para um Servidor Web (Web Server) sem a necessidade de Shields.

Antes de iniciar, gostaria de falar um pouco das vantagens e desvantagens deste processo.

Vantagens

1- Conforme dito acima, não é necessário nem um shield especifico para Ethernet poupamos por 1 lado.

2- Não haverá a necessidade de se preocupar com bibliotecas especificas de Ethernet shield.

“O que muitas vezes pode nós dar uma grande dor de cabeça, dependendo do modelo de seu shield”

3- Os dados recebidos por essa aplicação pode ser tratados e usados em algum outro modulo para gerar gráficos, planilhas etc.

Desvantagens

1- Para que seu projeto funcione perfeitamente, terá que hospedar seu arduino em um computador com acesso a internet.

2-  Nesta maquina terá uma aplicação desktop que irá gerenciar a comunicação arduino e Servidor, se por acaso tiver que usar essa maquina apenas para o arduino se comunicar sem outros serviços. Vai encarecer a longo prazo está técnica.

Se for o seu caso é recomendado o uso de shield.

 

Montagem

Vamos a montagem do exemplo feita no arduino, com 1 sensor de temperatura LM35 e 1 led

 

Esquema_bb

 

O led está ligado no pino 3 digital.

O LM35 ligamos da segunite forma (a parte reta do sensor deverá estar para frente).

Da Esquerda para direita

Pino 1 –  5 volts do arduino.

Pino 2 – entrada analogica A0 do arduino.

Pino 3 – Ground.

Código

Para entender melhor o código e como funciona o LM35, é bem simples.

Em determinada temperatura o LM35 emite um mili voltagem que através de uma simples conversão matemática é possível encontrar a temperatura aproximada lida.

Veja a explicação passo a passo no comentário do código.

 

/*
Conversor Analógico->Digital de 10 bits (1024).

O valor máximo que pode entrar no A/D é 5V.
Sendo assim, quando entrar:
-> 5V o valor lido será 1023
-> 2.5V o valor lido será 511 ou (1023/2)
-> 0V o valor lido será 0
Resumindo, é uma regra de três normal onde:
5V – 1023
X  – Y
*/
int pinoSensor = 0; //pino que está ligado o terminal central do LM35 (porta analogica 0)
int valorLido = 0; //valor lido na entrada analogica
float temperatura = 0; //valor Lido convertido para temperatura
int led =3; //pino do led

void setup() {
Serial.begin(9600); //Inicializa comunicação Serial
pinMode(led, OUTPUT); //Seta como saída
}

void loop() {
valorLido = analogRead(pinoSensor); //lê a porta analogica do LM35
temperatura = (valorLido * 0.00488);  // 5V / 1023 = 0.00488 (precisão do A/D)
temperatura = temperatura * 100; //Converte milivolts para graus celcius, lembrando que a cada 10mV equivalem a 1 grau celcius
valorLido =temperatura;
Serial.println(temperatura);//imprime na serial
char c =Serial.read();      //espera um char na serial

//se for 1 liga o led

if(c == ’1′){

digitalWrite(led,HIGH);

//se for 0 desliga ou mantém desligado
}else if(c==’0′){
digitalWrite(led,LOW);

}

delay(5000); //espera 5 segundos para fazer nova leitura
}

Veja o vídeo:

 

Os fontes da aplicação java e do Servidor web, deixarei no link abaixo.

Para proceder com este exemplo você terá que ter as seguintes instalação na sua maquina e/ou no Servidor:

Java JDK

NetBeans ou Eclipse configurado com Apache TomCat (Preferível).

MySQL 1.5 ou Superior

Bibliotecas Apache HTTP e RXTX do Arduino (Já inclusa no download).

Observação : A aplicação local e o servidor Java estão apenas configurados para  receber apenas 1 parâmetro do arduino (temperatura do LM35).

Lembre-se que ao copiar a aplicação Desktop Java não esquecer de copiar a dll rxtxSerial, essa dll que fará a aplicação Java mapear o arduino através do Windows.

Para enviar mais de um parâmetro de seu arduino será necessário modificar algumas linhas de código na aplicação Desktop , Servidor e adicionar os Campos no Banco de dados.

Existe várias formas de resolver está solução, sinta-se a vontade para modificar os fontes.

Este exemplo poderá ajudar na montagem do servidor web e banco de dados:

www.tecnologiaeciencia.com.br/projeto-arduino-com-ethernet-shield-sensor-aplicacao-web-java

Link dos Fontes

http://www.mediafire.com/download/316tpi2g1vwckbd/fontes.rar

 

Leia mais em: http://tecnologiaeciencia.com.br/arduino-conexao-a-internet-sem-ethernet-shield-javaino/#sthash.Uq3boCrD.dpuf

Pesquisadores desenvolvem controle remoto de movimentos de humanos

 Alunos da Universidade de Hannover, na Alemanha, desenvolveram um dispositivo capaz de controlar remotamente os movimentos das pernas das pessoas enquanto elas caminham. O aparelho utiliza uma pequena estimulação elétrica no corpo para indicar quando alguém deve virar à esquerda ou à direita e poderia ser utilizado em games, para impulsionar regimes de exercício, conduzir pessoas em espaços e até ajudar vítimas de derrame.

O aparelho fixa eletrodos no músculo sartório, que são conectados a um dispositivo de estimulação elétrica semelhante aos utilizados pelos fisioterapeutas para ajudar os atletas de reabilitação de feridos, além de um painel de controle sem fio na cintura.

Jogos e realidade virtual 

Os inventores explicam que a princípio desenvolveram a ideia para que as pessoas pudessem jogam com o smartphone sem esbarrar em coisas na vida real.  “A ideia é ajudar as pessoas a navegar sem que saibam disso”, disse Max Pfeiffer, um dos responsáveis pelo projeto. “O usuário começa a andar, relaxa e acabam no local sem perceber que você foi guiado até ele”.

Por enquanto, o projeto está em fase inicial. “A principal coisa a melhorar é que a navegação ainda não é perfeita”, explica Pfeiffer. “O usuário precisa medir onde está o tempo todo. A segunda coisa é calibrar a pessoa para o dispositivo, uma vez que todos são diferentes. A terceira coisa é que é preciso ver os obstáculos na frente da pessoa”.

Roberta Klatsky, professora de interação humano-computador na Universidade Carnegie Mellon afirma que o trabalho é interessante, mas ainda tem um longo caminho a percorrer, já que alguns dos usuários não foram afetados pela estimulação e ela provavelmente não vai funcionar em calçadas estreitas. Além disso, o controlador humano precisa estar por perto para que tudo funcione corretamente.

Use as ferramentas Intel para maximizar o desempenho do seu aplicativo

ProductGraphic_INDE_110x115_grey

 

Intel® INDE ›

Um suíte de plataforma cruzada de ferramentas de desenvolvimento nativas para a criação de aplicativos destinados a Android* e Microsoft Windows*

 

Intel® Mobile Dev Kit ›

Obtenha um dispositivo com permissão de raiz e o Intel System Studio para desenvolvimento de aplicativos Android* de sistema e middleware.

 

Intel® XDK ›

Desenvolva, emule, teste no dispositivo e construa aplicativos de plataforma cruzada.

 

Intel® HAXM ›

Também um recurso do Intel INDE. Aumente a velocidade de emulação do seu aplicativo Android na máquina de desenvolvimento.

 

Compilador Intel® C++ para Android ›

Um recurso do Intel® INDE Melhore a responsividade do aplicativo e aumente a duração da bateria.

 

Projeto Anarchy* ›

Expanda os limites do seu aplicativo com este mecanismo de jogos gratuito de plataforma cruzada da Havok™.

 

Intel® IPP ›

Uma extensa biblioteca de funções de software para Windows*, Linux*, Android e OS X*.

 

Blocos de construção threading Intel® ›

Crie aplicativos de alto desempenho, escalonáveis e paralelos com o Módulo de sub-rotinas Intel®.

 

Graphics Performance Analyzer ›

Um recurso do Intel® INDE Faça os seus aplicativos de gráficos intensos rodarem mais facilmente. Analisar, otimizar, depurar.

 

Driver Intel® USB ›

Conecte a sua máquina Windows* a dispositivos com os processadores Intel® Atom™.

 

Intel® System Studio >

Aumente a produtividade e diminua o tempo de lançamento de sistemas móveis embarcados e da Internet das Coisas de hoje para o mercado de amanhã.

 

Imagens de sistemas Android x86

Teste seus aplicativos Android em um dispositivo virtual baseado na arquitetura Intel®.

REMOÇÃO DE ARTEFATOS DE EOG E EMG EM REGISTROS ELETROENCEFALOGRÁFICOS

openeeg

Resumo: O sinal de eletroencefalograma (EEG) necessita de um pré-processamento para eliminação de artefatos. Os artefatos fisiológicos contaminam o registro de EEG, dificultando sua análise, devido a possuir maior amplitude que o sinal em estudo. Este trabalho teve por objetivo desenvolver e utilizar técnicas para detectar e eliminar artefatos fisiológicos referentes a movimento ocular (eletrooculograma, EOG) e muscular (eletromiograma, EMG). Os algoritmos usam a Transformada Discreta Wavelet e outros métodos matemáticos para detecção de envoltória do sinal processado. Foi realizada a detecção e eliminação desses artefatos, de forma automática, em todos os 80 EEGs adquiridos. Os pontos classificados como artefato são eliminados do registro, aumentando a relação sinal ruído, sem a eliminação de um trecho completo do sinal.

Palavras-chave: Artefatos, EEG, EOG, EMG e ICM.

Link:   http://www.canal6.com.br/cbeb/2014/artigos/cbeb2014_submission_550.pdf

Biopotential Technology – EEG

[Please note that this is a cached copy from the Wayback Engine as Doug's site apparently dropped off the 'net in 2003; hopefully he'll show up again some day! Until then, enjoy his research. --Jim]

Biopotential Technology

This is a collection of resources on biopotential measurement
and next generation human-computer interfacing.

 

 


Biofeedback Device Schematics

EEG – Electroencephalograph Schematics

  • Biosemi


  • Brainmaster

    • Brainmaster Schematics – These are Tom Collura’s freeware build specs for the Brainmaster EEG. These specs are based on the Motorola 68HC11EVBU evaluation board which is no longer available and difficult to find. I have heard that Axiom 68HC11 boards can be used as an alternative. The amplifier is based on AD620 instrumentation amps and OP90 op-amps. Frequency response is 1.7-34 Hz and CMMR is 110 dB. Unfortunately the firmware and PC software is no longer available.


  • OpenEEG Project – This is a project to develop a low-cost EEG for < $100. There is a discussion group about this project here.

    • ModularEEG – This design is a 2-channel EEG with RS232 PC interface. It uses an AT90S4433 microcontroller for ADC and a differential amp based on INA114 instrumentation amps andTLC277 op-amps. The input stage is modeled after (or influenced by) the Biosemi designs, with some modifications. Data is sent to the PC over the RS232 data lines (RX/TX). This is the most recent and sophisticated of the OpenEEG designs.
    • RS232EEG – This is an older version of a 2-channel EEG with RS232 PC interface. It uses an AT90S4433 microcontroller for ADC and a differential amp based on INA114 instrumentation amps and TLC272 op-amps. Data is sent to the PC over the RS232 data lines (RX/TX). The firmware rom image and source code are included in the download file.
    • ComEEG – This is a lower cost 1-channel EEG with RS232 PC interface. This one uses no microcontroller, it sends pulses to the PC over the RS232 handshake lines (RTS/CTS). It uses a differential amp based on INA114 instrumentation amps and OPA2604 op-amps. ADC is implemented with 555 timers. It includes a 7555 timer for calibration circuit. The PC must be run in DOS only mode to disable interrupts in order to achieve proper timing.
    • ComADC – This is another low cost 1-channel EEG with RS232 PC interface. It also uses no microcontroller and sends pulses to the PC over the RS232 handshake lines (RTS/CTS). There is no differential amp, signals are fed into a 555 timer based PWM circuit. The PC must be run in DOS only mode to disable interrupts in order to achieve proper timing.
    • GamePortEEG – This is another low cost EEG that sends signals to the PC via the game port. It uses a differential amplifier. There doesn’t seem to be much info about this design.
    • Joerg’s Home Page – This is Joerg Hansman’s home page for download of the OpenEEG schematics and firmware. Joerg is the designer of all of this fancy OpenEEG hardware.
    • Design of a multi-purpose biofeedback machine – This document describes an multi-parameter biofeedback system based on a Texas Instruments MSP430F149 microcontroller and ADS1252analog/digital converters. There are no schematics in this document.
    • ElectricGuru EEG Software – This is Rob Sachs’ Windows software that uses FFT to do spectral analysis of the EEG data. It apparently works with the RS232EEG and ModularEEG designs above. This is binary executable only, the source code is not available.
    • Eagle Layout Software – You need this software to look at the OpenEEG schematics above. Low volume orders of boards can be done at PCBexpress, they accept Eagle format CAD files.
    • Atmel DevTools – These are the development tools for Atmel AVR 8-bit RISC microcontrollers. Atmel microcontrollers and flash tools can be ordered online from Digikey. They also have most of the instrumentation amps, operational amps, and other parts. A schematic for a programmer’s cable is here if you want to make your own.


  • Circuit Cellar

    • HAL-4 EEG – Circuit Cellar designed a low cost EEG using the ubiquitous 8031 microcontroller. The amp section is built using six TL084 op-amps. Singals are digitized using ADC08008 A/D converters. Frequency response is 4-20 Hz and the firmware is set up with 64 Hz sampling. There used to be a kit for sale at Creative Concepts, but it’s no longer available. Apparently the original PCB design file was lost. There is a manual that shows the schematics, and there is a newsgroup for HAL-4 fans. Some people have improved on this design to achieve better band width and sampling rates.


  • Other EEG Schematics

    • Meissner Research – Jim Meissner improved on the HAL-4 design and was able to achieve better frequency band width and sampling rates. He used a 68HC11 board from New Micros. There are tons of free development tools and info about 68HC11 on the web. Jim posted his EEG firmware source and some sample EEG recorded data here. Jim also invented the Brain State Synchronizer and some interesting meditation speakers.
    • Bernd Porr – Here’s an EEG preamp and filter circuit that uses AMP01 instrumentation amp and NE5532 op-amps. He uses a TIL111 opto-coupler. He also has an interesting Java-based EEG viewer that connects to a C++ server via socket connections.
    • Two-channel data logger for quantitative EEG recording while driving – This document describes a 2-channel portable EEG built using an 87C552 microcontroller and AD620instrumentation amps. Band width is 0.1-40 Hz, sampling is 128 Hz, and it does 10-bit resolution A/D conversion. There are no schematics in this document. There is another document describing this system here.
    • How to Build a Lie Detector, Brain Wave Monitor and Other Secret Parapsychological Electronics Projects – This book has plans for a simple EEG that uses 741C and N5556 (signetics) op-amps. The brain wave signals feed into an audio tone generator, and thresholds can be set with a potentiometer. It also has an auxilliary output for a chart recorder. The book seems to be out of print, but the plans and schematics are here.
    • A CMOS IC for Portable EEG Acquisition Systems – This short document describes the design of a an EEG into a single CMOS IC that consumes 520 uA power. This single IC contains 16 instrumentation amplifiers, analog multiplexer, programmable gain amplifier, auto-calibration circuitry, and a digital computer interface.

ECG – Electrocardiogram Schematics

  • Electrocardiogram Amplifier – This document contains schematics for an EKG amplifier using AD621 instrumentation amp and LM6484 op-amps. Another circuit shows addition of a common ground. There is a circuit for evaluation of common mode rejection ratio (CMMR). It further describes how to add a low-pass butterworth filter using MF4 switched capacitor, and how to digitize the EKG signals using ADC0848.
  • Scientific American: Home is where the ECG is – This article from “The Amateur Scientist” column describes how to build an ECG using just an AD624 instrumentation amp, 5 resistors, and 4 capacitors, and a potentiometer for “zero adjust”.
  • Sima’s ECG Project Page – This is a good description of Sima’s experimentation with the simple ECG described in the above Scientific American article. He includes a revised schematic, and provides more detail on safety, grounding, and noise reduction. Sima used the Pico Technologies DrDAQ data logger to digitize the ECG signals and chart them on a PC.
  • EKG Happy – This page describes a home brew EKG system. It includes a schematic for an EKG amplifier using TL082 op-amp, diagrams showing how to wire the leads, and some notes on safety considerations.
  • Electrocardiogram Lab – These are student lab instructions from an EE course. They include a schematic for an ECG that uses an AD620 instrumentation amp and 741 op-amps, and discusses adding a low-pass and high-pass filters.
  • Texas Instruments ECG Schematic – The data sheet for the Burr-Brown (Texas Instruments) INA121 instrumentation amp includes a schematic for an ECG amplifier with right-leg drive. It also has schematics for low-pass and high-pass filters, galvanic isolation, and multiplexed-input data acquistion.
  • Real Time Portable Heart Monitoring Using Lown Power DSP – This docment describes an ECG system that uses a TMS320C5410 DSP to do real-time analysis of ECG signals. It describes how the DSP is used to do QRS complex detection using an adaptive threshold technique. The portable system has small keypad, LCD, and audio output, and also an RS232 interface for connection to a PC. There are no schematics, just block diagrams.
  • Portable System for High Resolution ECG Mapping – This document describes a multi-channel portable ECG with parallel port connection to a PC. It’s a brief document with not much technical information.
  • Lego Mindstorms ECG Sensor – Lego has changed a lot since my childhood days. Now they have lego bricks containing programmable microcontrollers. This page describes a lego ECG sensor. It includes schematics, cabling info, and shows photos of the ECG circuitry attached to lego bricks. There is also a program called MindScope which downloads ECG data from the lego brick and charts it on a PC. I think the big kids are enjoying mindstorms more than the little ones.
  • Optical Heart Monitoring – This page describes projects that measure pulse using light transmitted and reflected through the finger. One method uses a super bright LED, light penetrating the finger is detected by a TSL230 light to frequency converter. Another methods uses an infrared LED, light is detected with a PIN photo diode.
  • ChipCenter Question: Heart Monitor – This is a response to a question submitted to ChipCenter on how to make a heart monitor. It talks about instrumentation amplifier choices, isolation methods, and usage of 60 Hz notch filters. It has links to some useful technical briefings and data sheets, but all of the links are broken, so I have included fixed links below:

EMG – Electromyrograph Schematics

GSR – Galvanic Skin Response Schematics

Respiration Monitor Schematics

Mind Machine (Light and Sound) Schematics

Other Miscellaneous Schematics


Portable Biofeedback Devices

Sensors for Biopotential Measurement

Mobile Biofeedback Monitors

Portable Neurofeedback Devices

Clinical/Research Instrumentation


Biopotential Measurement Theory

Biopotential Measurement Theory


EEG Signal Measurement


ECG Signal Measurement


EMG Signal Measurement


GSR Signal Measurement


Respiration Measurement


Digital Signal Processing

General DSP Theory


Fourier Transform


Wavelet Transform


Digital Filtering


EEG Signal Processing


EMG Signal Processing


Biofeedback/Neurofeedback Theory

General Biofeedback Resources


EEG – Neurofeedback Resources


ECG – Electrocardiography Resources


EMG – Electromyography Resources


GSR – Galvanic Skin Response Resources


Biofeedback Journals and Reference

Biofeedback Discussion Groups


Brainwave Entrainment Resources

Brainwave Entrainment Articles


Brainwave Entrainment Mind Machines


Brainwave Entrainment CD-ROMs


Brainwave Entrainment Software


Human Computer Interfacing Resources

Computer Control Techniques


EEG Computer Interfaces

EMG Computer Interfaces

Multi-Sensor Computer Interfaces


Neural Computer Interfaces

 


Affective Computing Resources

Affective Computing Concepts


Affective Research Systems


Affective Signal Processing


Affective Computing Research Groups


Other Emotion Related Sites


Context-Aware Computing Resources


Electromagnetics Resources


ESP and PSI Resources


WearcompAccessibilityBiopotentialGalleriaI like to make clothing do interesting tricks from remote destinations.What I’d like is to have you to call me and my jacket answers.


this page is best viewed using a computer connected to the internet 

Eye Tracking

O Eye Tracking é uma das ferramentas mais modernas e eficientes que existem hoje para a realização de pesquisas de neurobusiness. Com extrema rapidez e perfeita precisão, o Eye Tracking monitora o movimento ocular das pessoas, permitindo ao pesquisador saber exatamente para onde a pessoa olhou, quanto tempo e quantas vezes olhou, qual foi o caminho percorrido por seus olhos e muito mais.

Devido à gama de informações geradas pela ferramenta, as análises são infinitas. O Eye Tracking pode ser utilizado em diversos trabalhos, como: comunicação, embalagem e gôndola, psicolinguística, interação humano-máquina, psicologia, etc.

Além disso, pode ser trabalhado com o complemento de outras ferramentas, como o EEG – Eletroencefalograma, Leitura Facial, entre outras, que enriquece ainda mais a análise, proporcionando um profundo entendimento do comportamento real das pessoas, ponto falho nas atuais pesquisas tradicionais ao consumidor, principalmente nas abordagens quantitativas.

Ambientes do mundo real e de produtos físicos
Testes de usabilidade
O Eye Tracking, pode ser utilizado, também, para analisar a usabilidade de objetos físicos, como caixas eletrônicos, máquinas de refrigerantes, painéis de carros e aviões, e muito mais.
Leia mais…

 

Aplicativos de celulares e tablets
Testes de usabilidade
Devido à recente explosão de popularidade dos smartphones e tablets, muitos aplicativos foram, e vêm sendo criados, mas, poucos conseguem examinar de forma eficaz o desempenho dos mesmos.
Leia mais…

 

Desenvolvimento de jogos
Testes de usabilidade
Os games estão cada vez mais perfeitos em termos de gráficos e jogabilidade, mas podem ser melhorados quanto à usabilidade.
Leia mais…

 

Sites e softwares
Testes de usabilidade
A internet, mesmo tão nova, é fundamental para nossas vidas e, consequentemente, para as empresas. Toda empresa, hoje em dia, independentemente do mercado de atuação, precisa ter um website, seja ele utilizado como canal de venda, institucional, comunicação com o cliente, divulgação de produtos e campanhas, etc.
Leia mais…

 

Propagandas, Filmes e Vídeos em Geral.
Análise de Comunicação de Marketing
Na análise de vídeos, existem duas metodologias de estudo do resultado, a Bee Swarm (enxame de abelhas) e o Heat Map (mapa quente). A Bee Swarm mostra através de círculos coloridos, os pontos exatos para onde cada pessoa olhou.
Leia mais…

 

Comerciais de TV
Análise de Comunicação de Marketing
Os anunciantes têm o conhecimento de quantas televisões estão ligadas no momento em que seus comerciais estão passando, mas, não sabem se as pessoas estão efetivamente assistindo a estes comerciais, e, se estão atentas a eles.
Leia mais…

 

Marketing Esportivo e merchandising na TV
Análise de Comunicação de Marketing
Com o método de rastreamento ocular, é possível confirmar se as pessoas, ao assistirem eventos esportivos, realmente olham e prestam atenção nas marcas dos patrocinadores, geralmente inseridas em uniformes, bolas e placas laterais.
Leia mais…

 

Propaganda móvel – Tablets e Celulares
Análise de Comunicação de Marketing
Há algum tempo os celulares vêm se tornando muito mais do que apenas celulares, principalmente com a chegada dos smartphones e, mais recentemente, dos tablets.
Leia mais…

 

Merchandising e mídia externa de loja
Análise de Comunicação de Marketing
Além de mídias digitais, o Eye Tracking também pode ser utilizado para a análise de objetos e ambientes reais. Entre os estudos mais comuns estão: análise de layout de lojas e estabelecimentos, a fim de identificar os elementos que mais chamam a atenção e influenciam nas decisões de compra, e, verificar a efetividade no que tange a distribuição dos produtos na loja.
Leia mais…

 

Comunicação impressa
Análise de Comunicação de Marketing
Com a precisão do Eye Tracking, as empresas e agências de propaganda conseguem mensurar a efetividade de seus anúncios impressos, sejam eles em jornais, revisas, etc. Diferentes análises podem ser geradas deste estudo.
Leia mais…

 

Estudos de marketing online
Análise de Comunicação de Marketing
Com a saturação das mídias de massa, o marketing online vem ganhando cada vez mais espaço e se tornando muitas vezes a estratégia principal de comunicação de uma empresa.
Leia mais…

 

Atividade Emocional do Consumidor
Eye Tracking em Psicologia
A ferramenta de Ativação Emocional mede o envolvimento do entrevistado em relação ao estímulo apresentado. Quanto maior for o nível de envolvimento, maior será a chance de a comunicação receber a atenção desejada por parte dos consumidores. Esta medição é feita com base em uma escala de 0 a 10, onde 0 representa uma fraca resposta emocional e 10 uma forte resposta emocional.
Leia mais…

 

Estudar representação de objetos
Eye Tracking em Psicologia
Muitas pesquisas vêm sendo realizadas, com o intuito de desvendar como as crianças lembram ou representam objetos que estão temporariamente ocultos ou oclusos.
Leia mais…

 

Estudos de desenvolvimento cognitivo social
Eye Tracking em Psicologia
Através do uso do Eye Tracking, pesquisadores são capazes de estudar como as crianças percebem a interação social entre adultos, e pessoas realizando ações orientadas por metas.
Leia mais…

 

Dados detalhados de acompanhamento espacial e temporal dos olhos
Eye Tracking em Psicologia
O monitoramento dos olhos de crianças fornece valorosas informações a respeito de como elas distribuem sua atenção e interesse diante de diferentes estímulos.
Leia mais…

 

Estudos do mundo real do consumidor
Design de embalagem e investigação do consumidor
Com o Eye Tracking móvel, que é semelhante a um par de óculos, torna-se possível estudar o comportamento de compra do consumidor, deixando-o livre na loja, para movimentar-se como preferir. Isto enriquece muito a análise, pois permite que o entrevistado se descontraia e aja normalmente, como se estivesse fazendo suas compras sem ser monitorado.
Leia mais…

 

Estudo de embalagem e testes de gondolas
Design de embalagem e investigação do consumidor
Estudos revelam que, mais de 70% das compras são definidas na “hora H”, ou seja, no ponto de venda. Este dado só vem a homologar a disputa nas gôndolas, travada por dezenas de diferentes embalagens.
Leia mais…

 

Estudar o aprendizado da linguagem
Psicolingüística e leitura
Através da análise de para onde as crianças olham, o Eye Tracking ajuda na compreensão de como elas entendem o que ouvem e o que vêem.
Leia mais…

 

Estudos do comportamento de ler
Psicolingüística e leitura
O Eye Tracking é utilizado para identificar padrões de movimentos oculares, gerando informações sobre as percepções visuais, e características destes movimentos.
Leia mais…

 

Livros, Apostilas, Textos Publicitários, etc
Psicolingüística e leitura
A ferramenta de análise de leitura mensura precisamente o comportamento das pessoas quanto à leitura dos textos contidos nas comunicações. Ela faz isso de duas formas, mensuração por mapas de intensidade e por contadores de leitura.
Leia mais…

Construindo Dispositivos Controlados pelo Cérebro

Projetos Open-Source

O projeto OpenEEG oferece um caminho para construir seu próprio dispositivo EEG. O custo estimado de construção de de U$200,00 e exige alguns fins de semana. Foi o primeiro método para pessoas que queriam um dispositivo EEG de baixo custo para uso pessoal.

Emokit é uma biblioteca open-source em Python para leitura de dados nos sensores do Emotiv EPOC (feito por Cody Brocious). Foi construída utilizando engenharia-reversa do protocolo criptografado.

EEGLAB é uma ferramenta do GNU Matlab para o processamento de dados de eletroencefalografia (EEG).

OpenVibe é uma plataforma de software LGPL (C++) para projetar, testar e utilizar a interface cérebro-máquina. O software vem com um servidor de aquisição que é compatível com muitos dispositivos EEG incluindo NeuroSky, Emotiv EPOC e OpenEEG.

Conectando Wearable ao arduino e mapeando atividade cerebral:

 

    Robô básico controlado por cérebro. Usou Mindwave móvel combinada com LabVIEW para implementar o controle. O controle para parar e iniciar o movimento é o valor “atenção” do fone de ouvido, que se relaciona com o quão forte você se concentrar em um objeto. A fim de mudar de direção, foi utilizada detecção de olhos fechados rudimentar. Este vídeo é apenas uma demonstração rápida da detecção de olhos fechados.

 

Sites para Consulta

Wikipedia – Comparison of consumer brain–computer interfaces
Emotiv – EPOC neuroheadset
Dangerous Prototypes – Brain wave monitor with Arduino + Processing
Frontier Nerds – How to Hack Toy EEGs
Ben Farahmand – Tutorial: Using the Emotiv headset with Processing and the Arduino
Arduino Assisted Mind-Controlled TV Using EEG
Projeto: Controlando Servo Motor com Emotiv Epoc (Interface Cérebro-Computador)
Emotiv EPOC + Processing/Arduino – Mindmeister Mapa Mental
EPOC-to-Arduino “Goodbye, World” | hyperRitual

 

openeeg

Magnitude Quadrática da Coerência na Detecção da Imaginação do Movimento para Aplicação em Interface Cérebro-Máquina

       “…A interface cérebro-máquina é um sistema que permite que uma pessoa possa controlar um dispositivo – como um teclado de computador, uma cadeira de rodas, ou até mesmo uma prótese – utilizando, por exemplo, padrões do eletroencefalograma (EEG). A identificação destes padrões (potenciais relacionados ao evento – PRE), em meio à atividade elétrica cerebral espontânea, tem sido o grande desafio dos pesquisadores. Enquanto que a amplitude do PRE é de alguns microvolts, a atividade elétrica espontânea pode ser de algumas centenas de microvots…”

emotiv_epoc_boy

 

Fonte da tese de doutorado:  http://www.cpdee.ufmg.br/defesas/293D.PDF

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()