terça-feira, 5 de novembro de 2019

ELK (mind music Labs) open-source



OPEN-SOURCE!!! Yes, today we have some great news that many of you have been asking for. In the upcoming weeks a beta version of the Elk Audio Operating System will be madeavailable under a Dual licensing model (open-source & commercial), but already today, the Elk Audio OS SDK & documentation is available and is free for anyone to start using.

DEVELOPMENT KIT: Available on elk.audio is also an Elk Audio OS Development Kit for Raspberry Pi that includes a custom Elk Pi Audio Hat. The Elk Pi Hat alone is one of the most advanced pro audio Hats in the markets with down to 1 ms latency, multichannel audio and support for Raspberry 4 coming up in the very near future.

FORUM: We would also like to welcome you to our new Elk Developer Forum - Your number 1 source of information on anything Elk Audio OS related! Please check it out and join in!

NEW NAME, NEW LOGO: MIND Music Labs goes Elk! This newsletter is the last you will receive from MIND Music Labs. The next will come from Elk. Same company, but with a "new" name. Please check out our new website and our brand new logo →

Como criar circuitos e equipamentos transparente

Você já viu nos filmes equipamentos ultramodernos que são transparentes, que dar para ver dos dois lados, isso é possível ?! Sim.

O sistema slide board pode ser feitos de diversas maneiras.

Aplicação de feixes de dados
Mudança dos componentes eletrônicos
A estruturação do equipamento eletrônico.

Criar uma bateria com TV de plasma

( TV LG 42PQ30R )

O primeiro passo para a nossa construção é analisar a situação da fonte de alimentação, se tem tensões e se não há componentes visivelmente defeituosos, como, capacitores estufados ou explodidos e semicondutores em curto.

 

Este sintoma tem como causa comum os transistores ( FETS ) de saída das tensões altas da fonte de alimentação em curto, ou, até mesmo, capacitores em curto ou estufados.

Devemos verificar a existência de tensões nos pinos dos conectores de saída da placa fonte.

 

Para isso utilizamos um multímetro ou multiteste.

Primeiro teste da fonte de alimentação

Com um multímetro em mãos, ligamos o televisor e encostamos a ponta de prova do teste em cada pino do conector de saída da fonte de alimentação e verificamos se há voltagem em cada um deles, mesmo momentaneamente ( teste válido também para defeitos na placa Y-SUS ). 

 

O primeiro teste se faz com o conector  que liga a placa Y-SUS há placa FONTE conectado, o segundo teste se faz com o conector desconectado da fonte.

Se com o conector conectado o relé continuar batendo e sem nenhum índice de voltagem no medidor, realize um segundo teste.

Retire o conector da fonte na placa fonte, faça o teste novamente. Se persistir o sintoma, o defeito está na placa FONTE.

 




 

 

Os valores de tensões para um televisor em funcionamento normal são

1)      Nos pontos de +VS tem de ter pelo menos 170V até 200V ou mais, dependendo do modelo do televisor.

2)      Em +VA tem de ter de 55V até 65V ou mais também, dependendo do modelo do televisor e etc.

3)      Nos +5V deve ter pelo menos de 4,9V a 5,5V  ou mais.

4)      Deve ser observado também se não há fusíveis queimados ou rompidos em qualquer uma das placas ( FONTE e Y-SUS ).

Um fusível rompido é um índice certeiro de que há um curto logo há frente, provavelmente algum semicondutor como um transistor ou diodo e até mesmo capacitores em curto total ou parcial.

 

 


 

A constante queima ou queima imediata de fusíveis indica defeito na Y-SUS de um televisor de plasma, e, tem como causa os FETS e Circuitos Integrados de saída em curto.

 

As placas Y-SUS em geral são semelhantes, mas, pode haver modelos diferenciados dos demais. Veja um exemplo de placa Y-SUS logo abaixo.

 

 

Os pontos circulados acima pode variar seus valores de tensão ( de um para outro ) e, não possui valores fixos,
alguns pontos podem ser positivos e outros negativos em relação ao terra do televisor.


Além dos pontos de testes mencionados acima, temos o ``VSC´´ que, em funcionamento normal, tem de ter pelo menos 70V  ( setenta volts ) de tensão contínua.

 

quinta-feira, 24 de outubro de 2019

Minerar Bitcoin com QRCode

Um modo de minerar Bitcoin com Qrcode
Está em análise .

QR code já está em tudo , em compras de supermercado ,vasilhas e até em equipamentos eletrônicos usando o QR Code

Código QR


tipo de código de barras bidimensional

Link para a página principal da Wikipédia (PT), em código QR.

Código QR (sigla do inglês Quick Response, resposta rápida em português) é um código de barras bidimensional que pode ser facilmente escaneado usando a maioria dos telefones celulares equipados com câmera. Esse código é convertido em texto (interativo), um endereço URI, um número de telefone, uma localização georreferenciada, um e-mail, um contato ou um SMS. [1][2]

Inicialmente empregado para catalogar peças na produção de veículos, hoje o QR Code é usado no gerenciamento de inventário e controle de estoque em indústrias e comércio. Desde 2003, foram desenvolvidas aplicações que ajudam usuários a inserir dados em telefone celular (telefone móvel) usando a câmera do aparelho. Os códigos QR são comuns também em revistas e propagandas, para registrar endereços e URLs, bem como informações pessoais detalhadas. Em cartões de visita, por exemplo, o código QR facilita muito a inserção desses dados em agendas de telefones celulares. Programas de captura ou PCs com interface RS-232C podem usar um escâner para capturar as imagens.

O padrão japonês para o código QR, JIS X 0510, foi lançado em janeiro de 1999 e corresponde ao padrão internacional ISO/IEC 18004, tendo sido aprovado em junho de 2000. Segundo o site da Denso-Wave, o "código QR é aberto para uso e sua patente, pela Denso-Wave, não é praticada".

PadrõesEditar

Estrutura de um código QR, destacando os elementos funcionais.

Existem diversos padrões de codificação QR:[3]

Outubro de 1997 — AIM (Association for Automatic Identification and Mobility) International[4]


Janeiro de 1999 — JIS X 0510


Junho de 2000 — ISO/IEC 18004:2000[5](presentemente retirado)
Define símbolos QR Code Model 1 e QR Code Model 2.


1 de setembro de 2006 — ISO/IEC 18004:2006[6]
Define QR Code 2005 symbols, uma extensão do QR Code Model 2. Não especifica como ler QR Code Model 1 symbols, ou requer ele para aderência ao padrão.


Na camada de aplicação, existem variadas formas de implementação. NTT DoCoMoestabeleceu um padrão para codificação de e-mails, URNs e URLs, informações de contatos e outros tipos de informação.[7] O projeto de código aberto "ZXing" mantém uma lista de tipo de código QR.[8]

Correção de errosEditar

Mesmo danificado o código QR pode ser lido, devido ao armazenamento de dados para correção de erros.

Além da informação desejada (por exemplo uma URL), o código QR armazena dados que garantem sua leitura mesmo se houve dano (ver ilustração) ou adquiriu ruído. Padrões:

no Nível L (Low) 7% dos dados é redundante, usada para correção de erros;


no Nível M (Medim) 15%;


no Nível Q (Quartile) 25%;


no Nível H (High) 30%.


Devido à correção de erros, a leitura do código QR pode ser feita a certa distância, sem muita preocupação com ângulo e foco, por câmeras simples (vinculadas a aplicativos adequados), tais como as câmaras de telefones celulares e tablets.

Quando a captura da imagem é precisa (ex. códigos usados apenas na fábrica), o nível de correção de erro pode ser menor. O uso de nível de correção de erro mais elevado permite a criação de códigos QR artísticos sem que percam a sua funcionalidade. Estes códigos personalizados podem ter várias cores e conter um logotipo e/ou uma imagem embutidos. Com códigos QR personalizados pode-se promover uma marca ou produto de forma simultaneamente criativa e interativa, captando a atenção dos consumidores, e não desperdiçando o espaço impresso.[9]

Capacidade de armazenamentoEditar

 

Navegando no celular por URL (link) obtida automaticamente do código QR impresso. Códigos de baixa capacidade, tais como versão 1 nivel L, já são capazes de expressar URLs.

O código QR indica o tipo de conteúdo que foi armazenado, por exemplo, se foi apenas um número, ou se foi uma frase. Para tanto o padrão estabelece diferentes modos de entrada no armazenamento. 
Possíveis caracteres conforme modo (e respectiva taxa de ocupação[10]):

Somente numérico (3⅓ bits/char): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9


Alfanumérico (5½ bits/char): 0–9, A–Z (maiúsculas apenas), espaço, $, %, *, +, -, ., /, :


Binário (8 bits/char): padrão ISO 8859-1


Kanji/kana (13 bits/char): padrão Shift JIS X 0208


A "capacidade em número de caracteres" depende das capacidades da versão("resolução" em número de módulos), do modo (tipo de caractere), e do nível de correção de erro.

Capacidade da versão 1 (imagem com 21×21 módulos)[11]:

Numérica - máx. 41 caracteres no nível L, 17 no nível H


Alfanumérica - máx. 25 caracteres no nível L (suficiente para URL curta), 10 no nível H


Binário (8 bits) - máx. 17 bytes no nivel L, 7 no nivel H


Kanji/Kana - máx. 10 caracteres no nivel L, 4 no nivel H


Capacidade máxima,[12] versão 40 nível L(imagem com 177×177 módulos)[11]:

Numérica - máx. 7089 caracteres


Alfanumérica - máx. 4296 caracteres


Binário (8 bits) - máx. 2953 bytes


Kanji/Kana - máx. 1817 caracteres


Ilustrando como poderiam ser códigos-QR resultantes conforme a versão:



Versão 1 (21×21)



Versão 2 (25×25)



Versão 40 (177×177)


Licença

Uso

Ver também

Referências

Ligações externas

Última modificação há 4 dias por Tetizeraz

PÁGINAS RELACIONADAS

Código Aztec


Código alfanumérico


Alfabeto latino básico ISO


Conteúdo disponibilizado nos termos da CC BY-SA 3.0, salvo indicação em contrário.

Privacidade


Versão desktop


Minerar Bitcoin através via E-mail

Para minerar Bitcoin via e-mail você precisa entender como funciona um e-mail

Gerando servidor: SBRPWCYD07VM05.nadc.sebrae.corp


***
#550 5.1.1 RESOLVER.ADR.RecipNotFound; not found ##

Cabeçalhos de mensagem originais:

Received: from NAM03-CO1-obe.outbound.protection.outlook.com (104.47.40.54) by correio.sebrae.com.br (10.33.0.90) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 24 Oct 2019 14:55:35 -0300 Received: from FR1PR80CA0138.lamprd80.prod.outlook.com (2603:10d6:202:2::28) by SC1PR80MB3693.lamprd80.prod.outlook.com (2603:10d6:4:7b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2367.24; Thu, 24 Oct 2019 17:55:31 +0000 Received: from SN1NAM01FT006.eop-nam01.prod.protection.outlook.com (2a01:111:f400:7e40::200) by FR1PR80CA0138.outlook.office365.com (2603:10d6:202:2::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2387.22 via Frontend Transport; Thu, 24 Oct 2019 17:55:31 +0000 Authentication-Results: spf=pass (sender IP is 209.85.167.43) smtp.mailfrom=gmail.com; sebrae.com.br; dkim=pass (signature was verified) header.d=gmail.com;sebrae.com.br; dmarc=pass action=none header.from=gmail.com;compauth=pass reason=100 Received-SPF: Pass (protection.outlook.com: domain of gmail.com designates 209.85.167.43 as permitted sender) receiver=protection.outlook.com; client-ip=209.85.167.43; helo=mail-lf1-f43.google.com; Received: from mail-lf1-f43.google.com (209.85.167.43) by SN1NAM01FT006.mail.protection.outlook.com (10.152.65.154) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA) id 15.20.2347.16 via Frontend Transport; Thu, 24 Oct 2019 17:55:30 +0000 Received: by mail-lf1-f43.google.com with SMTP id y127so19908478lfc.0 for <***>; Thu, 24 Oct 2019 10:55:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=LknAj5sZ1LHubXWHqJFQEoUBTZ3DiZQcxBFnMhlyipg=; b=NW/oj+LzCeNn5OnTdosm+VSdmeb3/yaxTHisMvDx8G1Uu4kigW+gi6hjuDy1IlRWpx XUiYLE5WmTLMIWk/WCQz3/DpxOcTUmXVe4oybHerhriJSK1Zqx6Hp6OnceqYwAUkc72B 0ZfU5ISsVeVSRo8ma5SiJ1IAZBZIYc2+rXiGNo2T4NOirCZH40g1v2Nl9vbxVEluXODF 42EU0cCZg1UGnxr9abiox2NSgqnSmnpOfEScqnByF0CelVc6z6Y/R1wcXwZLQIFr+aew vqxJzmXi/gHpH2GB3D0/fPm6bx+UMaGsi066IrLjhWEGtP2a5+SOsw1Oi1zN9lwcLiwF F2bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=LknAj5sZ1LHubXWHqJFQEoUBTZ3DiZQcxBFnMhlyipg=; b=Tq8iRFfuk5Bu+beSJi0ywre2oXvVl8pQmS4BgTkKEXQaFsT/HJV4GyJosLaLxZNlrL PqYfItjPgk717YRwqUYrqG9ZCqZLweiTaWdck6mU7f6gLqHiP8Tgh8Q5VRkHFTWY9HD6 UTby/6jgbeFrCyaIaDbfUv+K+nTuXDr+o0KncHEg4W+GkBxoxuM7k2tD4ap061D3Ky41 /Ihfjtpd9gbPQI8z3t8guXLRyWCM3cwlcnvJ8J+HYXn6udR2K7pfJSL6FoAYWZmVWzbg Nq3Yr3fJS8wHfTmlbPyFFRAGn51Pq3nkOOZCyuEYMMLBoSAkU/uN1CZiUcgu7N2TgSdO X/kw== X-Gm-Message-State: APjAAAX3G5wQF28s75etAq9maUUhR//JNC92DjWJsXvGtAFwOR7nzdea bY6LMEKUvWdPtijqF49jFhdmJnfCAQ8D4dLRmjEKwunj X-Google-Smtp-Source: APXvYqzTS9IEnL7D4IRuaczxJv0Uuutnfa3lZDcVmSc/oEhYZGy5L5Ws9DTk6xv2rwjiXA6Vvk3xqS1P8k3fTQ0raQc= X-Received: by 2002:a19:2356:: with SMTP id j83mr27225705lfj.103.1571939728689; Thu, 24 Oct 2019 10:55:28 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a2e:818e:0:0:0:0:0 with HTTP; Thu, 24 Oct 2019 10:55:28 -0700 (PDT) Received: by 2002:a2e:818e:0:0:0:0:0 with HTTP; Thu, 24 Oct 2019 10:55:28 -0700 (PDT) From: ***> Date: Thu, 24 Oct 2019 14:55:28 -0300 Message-ID: <CAMALEQ6Wr_n88uRbO2sgNyiU0WEqErTivb7rUQDc8N_z7zh+uA@mail.gmail.com> Subject: =?UTF-8?Q?_=F0=9F=8E=80?= To: <***> Content-Type: multipart/alternative; boundary="000000000000230d200595abbd4d" Return-Path: *** X-EOPAttributedMessage: 0 X-EOPTenantAttributedMessage: 97298271-1bd7-4ac5-935b-88addef636cc:0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:209.85.167.43;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(4636009)(189003)(199004)(8156004)(126002)(476003)(486006)(5660300002)(14444005)(7636002)(305945005)(7596002)(2361001)(2351001)(6916009)(356004)(66574012)(82202003)(55446002)(76482006)(86362001)(498394004)(336012)(26005)(73392003)(71190400001)(16003)(95326003)(16586007)(42186006)(59536001)(246002)(106002)(1096003)(8576002)(61266001)(2160300002)(33964004);DIR:INB;SFP:;SCL:1;SRVR:SC1PR80MB3693;H:mail-lf1-f43.google.com;FPR:;SPF:Pass;LANG:pt;PTR:mail-lf1-f43.google.com;MX:1;A:1; X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4a5b8a9d-ed88-4e76-1fa7-08d758ab5c26 X-MS-TrafficTypeDiagnostic: SC1PR80MB3693: X-MS-Exchange-AtpMessageProperties: SA X-MS-Oob-TLC-OOBClassifiers: OLM:619; X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: =?utf-8?B?ekxORjRwc2FRMEhOVlN1NnZMVnNkS1pZMmkvMFdQWG1HclBYdzFwVTBTSHRp?= =?utf-8?B?TEJqYmY0SGc3K05yT01yalpxYTdrdlpEM1d0bFB0aDJ6SGhGZ3RneXU5TWYz?= =?utf-8?B?cG1MMmw3RmdHNjVZRmJRTkRwOG40OU40c3BSRStVTGczUTFralFUK0xHaU0z?= =?utf-8?B?YlBvaUdyT2tMYURoT0ZUSGlTY2ZOQU1KckVvVnpyRlhsaUh3cUM3T3JqazVN?= =?utf-8?B?NGljNnFrc0l5SUUrUEp3eTRLTjg3emh5WGZYV0J6SmpzaWl6ME4vNk1CYjhu?= =?utf-8?B?ekQvdzB6OW84Q0p0ZXRYZmM0RGxHTEc1K01QelFMZjRRUlVaR3diTDU5ZFlE?= =?utf-8?B?ajlTVzZBZndYRWNZRmt5ZjlodXB0akRQcjlLb2IwY3N0dUh1MjFqOVljcmlt?= =?utf-8?B?Y2p0TU5MWDFBMjZLR2h3Wkg4YnlzVTdrb0NPTVZYM1Z4VStaTG9wOGNGSUhr?= =?utf-8?B?QkZ5T24zTHB3bHRkbUltVWR2cnQvWS9jVHlMTVZjVzJRSXFWclJ4V1V5U1VB?= =?utf-8?B?MnZtM1JCM0hmYkhXdUE5clIxUllXSmVSR01KcGNpaEtqaVJPaDBOOCtzTmpu?= =?utf-8?B?ZUd4OFRSQ0ZMMVdIL3hBUnZiRnlLQmtHNlBocjlKRTB4dFFRQk5TWFByL3lJ?= =?utf-8?B?QUZ3cUErSFdjdGZ6bFZWU21qYzJFM2JXb01FZWdrWlFtNU9DM3ZXTnpCZ0g0?= =?utf-8?B?eDNiNEI5Q3lLMzR6eUd4L3lpaGhMbnp0UEJHeTZMeXRqU1d4NFRqZzVtS2Zy?= =?utf-8?B?QnBkSmJhSmNVRmxWMUI4WkxKb1Q3STFXWFR4UEVCU09JSjZ6R2R6VXZiZTdY?= =?utf-8?B?eWJMbWp3cExuZ0toa3JBSS9VRzl1a1hwQ2hXTkJscEQ0Sno1RGRkNFFTQUpV?= =?utf-8?B?ekRFb2hVMUlpY3pHL0VWM0FnbEJGbm0zUzZORllIZlF1Ly9mNnRQZWJMU2oz?= =?utf-8?B?MUNLTDFoVGhFajFmdTVlUjBtcDBxazJyenYrMlpYYlRSVHNBQlc1TzExOFYw?= =?utf-8?B?dUVBNk1hakhwK1djZDVLM2FMZjRoN3ZDbjNYajFNNjN2Slg2ODVSbkFLLzNj?= =?utf-8?B?R2JJM2V4OU0zVFY4UlByK1ZmWTVKK3NsSkV6VzNqVTRjaUtHc2RUcWJHR2lq?= =?utf-8?B?c0lFZ2g2K2hvZWJnbkpkMXd2UzVIUTZmaGJiS0QxTFFYLzl4U0VZejZUaVFX?= =?utf-8?B?TloxTUpRYzAwaUtQd2JYaXloVnhWK3cxOEwrNkxxNGEzT2NnVGpWNC9iTzgw?= =?utf-8?B?YkZlZDV3aUxPU1JlNFc4ZkxFc2ExV2xtTGRMd0o3NEkzT1h0UzJsNkdSRHRZ?= =?utf-8?B?clRHcHNnUURUSkRadzc0TUs5WG83UU9DOVgvRE5mU25xUFdxTWcrNTZzVEp1?= =?utf-8?B?N2Z3NjRQTlU5UC9zMTFKbG1KR3gzZjRjQnlMRWIvK1p6UEp0bUtVS29qbDRZ?= =?utf-8?B?cHpTM21TNTBXSisxR21WMHluQjhIT01qL1A4TTNta0h6c1BDSjhpZ1BrKzFk?= =?utf-8?B?ZnpHYW5lcjBxL0lxNVRWNE10MGVxb0g4SFhoSDg1VkJnWDdVNXRPNjRwOElQ?= =?utf-8?Q?w2c6h3sZKxBowahv+NzRAdrAk=3D?= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Oct 2019 17:55:30.4828 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4a5b8a9d-ed88-4e76-1fa7-08d758ab5c26 X-MS-Exchange-CrossTenant-Id: 97298271-1bd7-4ac5-935b-88addef636cc X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-Transport-CrossTenantHeadersStamped: SC1PR80MB3693 X-OrganizationHeadersPreserved: SC1PR80MB3693.lamprd80.prod.outlook.com X-OriginatorOrg: sebraepr.onmicrosoft.com X-CrossPremisesHeadersPromoted: SBRPWCYD07VM05.nadc.sebrae.corp X-CrossPremisesHeadersFiltered: SBRPWCYD07VM05.nadc.sebrae.corp

Final-Recipient: rfc822;***
Action: failed
Status: 5.1.1
Diagnostic-Code: smtp;550 5.1.1 RESOLVER.ADR.RecipNotFound; not found

quarta-feira, 28 de março de 2018

mineradora de bit coin :Raspberry PI

Raspberry Pi 4

Raspberry Pi 4

Your tiny, dual-display, desktop computer

Find out more

mineradora de bit coin: MINDSTORMS

 MINDSTORMS ATRAVÉS DO GPIO

O LEGO Mindstorms é uma ótima ferramenta para ganhar experiência na compreensão da robótica, mas e se você quisesse criar seu próprio sensor de entrada? Neste guia, mostraremos como é simples construir um circuito para controlar um robô Mindstorms através do GPIO em Raspberry Pi.
Vamos mostrar cada passo desde conectar o robô até escrever o código. O resultado será um programa em Ch, um intérprete superconjunto de C / C ++, para controlar a direção do robô com um botão.

Você precisará

  • Robô LEGO Mindstorms (NXT ou EV3)
  • Tábua de pão
  • Fios para breadboard
  • 1 × LED
  • 1 × botão de pressão
  • 1 × 220 Ω resistor (vermelho-vermelho-marrom)
  • Resistor 1 × 10 kΩ (castanho-preto-laranja)
  • Código para este projeto

Programas

Para fazer uso das ferramentas de programação do C-STEM, você deve instalar o sistema operacional C-STEMbian, que contém o C-STEM Studio. Este sistema operacional gratuito e de código aberto contém todas as ferramentas necessárias para robótica e computação física. Além disso, é um superconjunto do Raspbian, então todos os recursos familiares ainda estarão lá. Se você já tiver o Raspbian instalado, os módulos C-STEM podem ser instalados separadamente na parte superior. Tudo isso está disponível na seção C-STEMbian do site C-STEM . Guias passo a passo irão ajudá-lo a configurar e acessar o Raspberry Pi, se necessário.

Conectando-se ao robô Mindstorms

Conectar-se ao seu robô Mindstorms é bastante simples com o software C-STEM.
Primeiro, você precisará abrir o C-STEM Studio e iniciar o Ch Mindstorms Controller. Encontre o grande 'C' no topo da tela depois de fazer o login no seu Raspberry Pi. Clique no 'C' e navegue até 'Ch Mindstorms Controller' no lado esquerdo do menu no C-STEM Studio. Clique em Launch para abri-lo.
O Controlador Ch Mindstorms pode conectar-se a robôs EV3 e NXT. Basta pressionar o botão Scan Robot e adicionar os robôs encontrados na lista do gerenciador de robôs. Siga as instruções na tela para emparelhar os robôs com o seu Raspberry Pi. Devido às limitações do Bluetooth, o Controlador Ch Mindstorms pode conectar-se a um máximo de sete robôs de cada vez.(Certifique-se de que os robôs estejam ligados e que o Bluetooth esteja ativado!)
Depois que os robôs forem digitalizados e adicionados à lista, selecione os que você gostaria de conectar e pressione Conectar. Os robôs aos quais você está conectado terão um ponto verde ao lado de seus nomes.

Construindo o circuito simples

O programa neste tutorial requer um circuito físico para funcionar. Nosso circuito consistirá de uma entrada de botão para controlar a direção do movimento do robô. Uma saída de LED dará uma indicação visual da mudança de direção ao pressionar o botão.
Olhando para o circuito, existem dois lados: entrada e saída. O lado da entrada, mostrado à direita, tem um botão em série com um resistor de 10 kΩ. O botão de pressão está conectado a 5 V para energia. O GPIO 18 é conectado entre eles para ler a entrada do botão.
O lado da saída, à esquerda, tem um LED em série com um resistor de 220.. O GPIO 4 controla essa luz.
Se você tiver um, use uma placa de fuga para tornar o processo de fiação mais claro. Caso contrário, ligue os pinos diretamente do Pi. Pegue um fio do GPIO 4 e conecte-o a uma linha vazia da breadboard. Em seguida, conecte a perna positiva (mais longa) de um LED a essa linha. Da perna negativa do LED, conecte um resistor de 220 Ω (vermelho-vermelho-marrom) ao terra.
Para o botão, insira-o sobre a calha da tábua de pão. Conecte 5 V a uma derivação e conecte um resistor de 10 kΩ (marrom-preto-laranja) do terra à perna adjacente.Por fim, conecte um fio do GPIO 18 à fileira da resistência e da perna do botão de pressão. Isso carregará o sinal de entrada quando o botão for pressionado.
Antes de programar, podemos usar o GPIOviewer, um recurso útil do sistema operacional C-STEMbian. Para usá-lo, navegue novamente para o grande 'C' na parte superior da janela da área de trabalho.
Uma vez aberto, navegue até Ch Raspberry Pi e clique em Launch no canto inferior direito. Isso abrirá o GPIOviewer, que permite o controle total de todos os pinos GPIO no Raspberry Pi. Nessa visualização, você pode alterar os modos de pinos entre entrada, saída e PWM (com um controle deslizante).
Para este circuito, encontre o GPIO 4 e configure-o para saída.
Certifique-se de que o LED esteja configurado e funcionando corretamente alternando entre as saídas altas e baixas. Se a luz acender, você pode passar para testar a entrada. Coloque o GPIO 18 no modo de entrada. Então, tente pressionar o botão. Se a entrada mudar, o circuito está pronto para programação.
 Abra mindstormsDirectionBot.ch na seção 'Código no currículo' do C-STEM Studio

Codificação em Ch

A programação no Ch inicia abrindo o C-STEM Studio novamente no seu Raspberry Pi. Na v4.0, navegue até Código no currículo> LearnPiprogram> mindstormsDirectionBot.ch. Se você quiser fazer alterações no arquivo, copie e cole em outro local antes de abrir! Para abrir o programa com o ChIDE, basta clicar duas vezes nele. O código para o projeto segue, que pode ser modificado dentro do painel de edição.
Ao executar o código, certifique-se de que o robô Mindstorms ainda esteja conectado por meio do CMC! Caso contrário, o IDE não reconhecerá que o bot está conectado e, portanto, não executará o código nele. O código deve conduzir o robô para frente ou para trás continuamente a uma velocidade constante. Quando o usuário dá entrada através de um botão, o robô deve mudar de direção negando sua velocidade. O LED também altera os estados pressionando um botão, verificando se a velocidade é positiva ou negativa. Vamos dar uma olhada no código Ch para entender como isso é feito ...
A primeira coisa a notar são os dois cabeçalhos, wiringPi.h e mindstorms.h.Usamos o cabeamento de cabeamento para obter entradas e saídas mais facilmente a partir dos pinos do GPIO. Ele permite que o código se assemelhe ao código do Arduino. Para usar a plataforma Mindstorms, incluímos mindstorms.h, que contém todas as funcionalidades do robô, como mover e girar.

CMindstorms robot;

Agora, o programa precisa declarar um robô. Em Ch, CMindstorms é uma classe que pode ser instanciada como uma variável. Para este programa, o robô Mindstorms é referido como 'robô'; todas as funções relacionadas a ele serão chamadas usando o formato robot.function.
The first variable holds the radius of the wheels on the Mindstorms robot in units of inches. Remember that the radius of a circle, or wheel, is the distance from its centre to the edge. After that, a variable for speed is set to 5 inches (12.5 cm) per second. Depending on the Mindstorms wheels attached, the radius may be different. By storing the value in a variable and passing it to functions, the code is easily adaptable to various sizes. If unsure, the radius of the physical wheel can be measured, especially if using a custom wheel.
Variables for the current switch value as well as the input/output pins are declared similarly to previous projects. Then, the pins are set up and initialised.

robot.driveForeverNB();

Before entering the while loop, the robot is set to continuously move using the driveForeverNB() function in the CMindstormsI class. It will drive forever in whatever direction it is currently facing. Forcing the robot to move constantly makes this code and physical circuit easier since the only input needed is the direction change. It is important not to use the driveForever() version without the ‘NB’ letters. For these functions, ‘NB’ stands for ‘non-blocking’, which allows the code to continue after the function has been called. Without the ‘NB,’ the code would stop at the function because it ‘blocks’ the program from continuing until it finishes.
The first section inside the infinite while loop checks the direction-changing pin. There is a delay(50), meaning wait 50 milliseconds, to ensure a clean reading of the pin. Without this, it may switch directions multiple times on a single press. If the pin reads a value of ‘HIGH’ or ‘1’, it will reverse the direction of movement. To accomplish this, the speed is set equal to its negative counterpart. For example, if the speed was 5 inches/second, this will change it to -5 inches/second. Therefore, the Mindstorms robot will move just as fast in either direction. Writing a new speed to the robot also requires the setSpeed() function in the CMindstormsI class. Notice that this function also requires the radius of the wheel because it uses this value to calculate how fast the wheel must spin to achieve the correct distance. Finally, one more robot.driveForeverNB() call is made to ensure the robot continues to move.
To end the while loop, an if statement controls the state of the LED. When the robot’s speed is greater than zero, it must be moving forward. In this case, the LED turns on. The LED turns off while the robot is moving backwards by checking if speed is less than zero.
If you want to take this project a step further, try connecting multiple robots and control them with the same circuit! Additionally, you can add LED traffic lights and make the robot move according to the lights. Or, come up with your own idea! Now you have the tools to make circuits that can interact with robots.