Pesquisar aqui

sábado, 1 de fevereiro de 2020

Melhores robôs industriais de 2019 (parte 2)




3. SPOT MINI
Image result for spot mini





O Spot Mini, um robô já discutido no passado por mim, é o primeiro robô da empresa Boston Dynamics que se está tornando disponível comercialmente. Este robô foi projetado para ser usado em uma variedade de funções, incluindo segurança, fabricação e entrega. O Spot Mini é notável por sua capacidade de gerenciar em terrenos irregulares em ambientes internos e externos, e uma qualidade impressionante e útil para um robô moderno.


4. HRP-5P
Related image

HRP-5P é um robô humanóide avançado. Criado pelo AIST (o instituto nacional da indústria avançada da ciência e tecnologia) o HRP-5P é um robô de pesquisa projetado para ajudar nos processos de construção e fabricação. É capaz de usar ferramentas eléctricas e manipular grandes objetos, como folhas de drywall. Só no Reino Unido o setor de construção representa 7% do PIB, isto quer dizer que este robô pode criar uma grande mudança para pequenas e grandes empresas. Até a próxima!

iOS 6 - v.6.1.6


iOS 6.1.6



 Esta atualização do sistema operativo foi lançada no dia 21 de fevereiro de 2014 e foi exclusiva para o iPod Touch de 4ª geração e iPhone 3GS, sendo também a última atualização lançada para estes dispositivos. 
 As únicas modificações/ atualizações que esta versão trouxe foi um correção para a verificação da conexão SSL(Secure Sockets Layer) e agora ultrapassada pela TSL(Transport Layer Security).

Efeitos Especiais (Parte 1)

Efeitos Especiais (Parte 1)

Os efeitos especiais são provavelmente o tema mais vasto na criação de vídeo. Com efeitos especiais criamos o que quisermos, com o quisermos, quando e onde quisermos.
Num momento podemos aparentar estar nas Caraíbas, no outro na China.
Isto claro, com a ajuda dos panos verdes. Na verdade, nem muita gente sabe mas não temos de usar panos verdes obrigatoriamente mas também panos azuis, amarelos, rosas, qualquer cor dá o mesmo efeito.
Panos verdes não servem só para fundos mas também para uso nos atores. Acham mesmo que o Arnold Shwarzenegger tinha braços metálicos no Exterminador? Claro quer não...vejam a realidade senhoras e senhores:

E vejam os cabos! A sério, será que só Missão Impossível se passa de facto na realidade e não só em estúdio? Talvez. A verdade é que em estúdio é tudo muito mais facilitado, se quisermos gravar uma cena de perseguição numa cidade conhecida o que dá mais trabalho: gravar nessa mesma rua com a necessidade de ter autorizações ou gravar em estúdio de forma mais rápida com o tempo todo à nossa disposição? A resposta é óbvia.

sexta-feira, 31 de janeiro de 2020

O que é MQTT e como funciona

MQTT é um protocolo de mensagens bastante simples, projetado para dispositivos restritos e com bandas de frequência baixa. É um sistema que usa a publicação e subscrição de mensagens. Tudo isto torna-o no protocolo perfeito para aplicações que utilizem internet of things. Com este tipo de protocolo é possível enviar um comando para controlar um OUTPUT ou ler e publicar informação proveniente de um sensor.
É preciso que entendam que neste protocolo o envio de mensagens diz-se publicar uma mensagem e que todas as mensagens têm um tópico, que pode ser interpretado como o título, e um corpo propriamente dito, que consiste na informação e/ou nos comandos. Para que um dispositivo receba uma mensagem de outro tem que estar subscrito no tópico da mensagem que pretende receber. Ou seja, tem que demonstrar o seu interesse em receber mensagens com aquele título. Fazendo uma analogia, assim como nós temos que subscrever o netflix, HBO e outros serviços de streaming para termos acesso aos seus conteúdos, também os dispositivos têm que subscrever um determinado tópico para receber as mensagens que são publicadas no mesmo. Os tópicos são representados por strings separadas por "/", este símbolo é usado para indicar o nível hierárquico. Vou demonstrar, como exemplo, como pode ser criado um tópico para a uma lâmpada na sua casa: "casa/escritório/lâmpada". Como pode ver, qualquer dispositivo que queira ligar a lâmpada que se encontra no seu escritório que por sua vez se encontra na sua casa, tem que publicar uma mensagem cujo conteúdo seja "ligar a lâmpada" e com o tópico demonstrado anteriormente. É importante referir que os tópicos são sensíveis a maiúsculas e minúsculas, "casa/escritório/lâmpada" é diferente de "casa/escritório/lÂmpada".
Sistemas que utilizam este protocolo de mensagens possuem "Brokers" que são responsáveis por receber todas as mensagens, filtrá-las por tópicos e enviá-las a todos os dispositivos subscritos nesses tópicos. Uma espécie de gestor de contas. Existem diferentes tipos de Brokers que podem ser instalados em diversos dispositivos, mas não vale a pena entrar em detalhe.


imagem:
  • URL
  • consultada no dia 04/01/2020

fontes:

C++ - rand() e srand() explicados


Para gerarmos números inteiros aleatórios usamos o rand, e é necessária aquela linha de código do srand() para conseguirmos gerar valores verdadeiramente aleatórios usando o rand().

srand(time(NULL));

Mas porquê?

Os números gerados pelo rand não são completamente aleatórios, são pseudo-aleatórios (pseudorandom).

Existe tem várias "sequências" de algarismos, como por exemplo
1804289383
que é a "primeira" sequência.

O rand() sozinho, em si, gera só esse número (ou sequência). Claro que depois colocamos o '%', que irá criar outros valores.

O srand() decide qual a sequência que o rand vai utilizar, ao qual chamamos a seed (semente).
Se colocarmos
srand(1);
Será gerada essa mesma sequência que já vos mostrei, a primeira seed.

A seed 0 também é a mesma: StackOverflow - Diferença entre srand(0) e srand(1)

Se colocarmos outra seed (que não 0 ou 1), outra sequência será gerada pelo srand.

Como queremos uma seed diferente sempre, nada melhor que usar o tempo, que está constantemente a mudar. Por isso colocamos dentro do srand o time(NULL).

srand(time(NULL));

Referências

Python - Classes (Parte 2)

NA PUBLICAÇÃO ANTERIOR DEI ALGUMAS BASES DE CLASSES, AGORA PASSEMOS A EXEMPLOS MAIS PRÁTICOS!

Função __init __ ():

Para entender o significado das classes, precisamos entender a função interna __init __ (). Todas as classes têm uma função chamada __init __ (), que é sempre executada quando a classe é iniciada. Usa-se a função __init __ () para atribuir valores às propriedades do objecto ou outras operações necessárias quando o objecto está a ser criado. Por exemplo:

class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age

p1 = Person("Nyck", 17)

print(p1.name)
print(p1.age)

No exemplo acima, criamos a classe Person(pessoa em português), em que cada objeto tem duas propriedades, o nome(name) e idade(age). Neste caso criámos o objeto p1 através dessa Classe, que tem como propriedades: nome- Nyck; idade- 17. Assim se executar-mos o código acima o output seria:

Nyck
17


Métodos em Objetos:

Objectos também podem conter métodos que são funções que pertencem ao objecto, seguindo o exemplo acima:

class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age

  def myfunc(self):
    print("Hello my name is " + self.name)

p1 = Person("Nyck", 17)
p1.myfunc()

Assim, criámos uma função 'myfunc', em que sempre q for usada, vai utilizar a propriedade 'name' do objecto que pretendemos, assim quando executarmos o código o resultado será:


Hello my name is Nyck


Nesta publicação já vos dei conhecimentos suficientes para começar a trabalhar com classes, contudo ainda faltaram alguns métodos secundários que ainda são úteis saber que estão explicados e exemplificados na próxima publicação, até lá: Boa programação!


Referências:




quinta-feira, 30 de janeiro de 2020

Melhores robôs industriais de 2019 (parte 1)


OS MELHORES ROBÔS INDUSTRIAIS


Os robôs industriais exigem uma hierarquia própria porque, embora as suas qualidades e capacidades possam rivalizar com a robótica social em 'impressionabilidade', eles são tão diferentes na sua funcionalidade que considerá-los juntos no mesmo grupo seria certamente uma crítica injusta.

1. Robô Valkyrie
Image result for Robô Valkyrie

O primeiro robô da lista foi desenvolvido em colaboração com a NASA e a Universidade de Edimburgo. A Valkyrie é um dos robôs humanóides mais avançados do mundo. Foi projetada com a capacidade de um dia auxiliar a instalação de habitats em Marte antes da chegada humana. Desta forma ela foi designada para conseguir trabalhar em ambientes perigosos, que poderá ser muito útil no futuro.

2. ATLAS
Image result for atlas robo


O Atlas, desenvolvido pela Boston Dynamics, é o robô mais recente da linha de robôs humanóides avançados que eles estão desenvolvendo. Este é extremamente móvel e tem a capacidade de se equilibrar enquanto executa tarefas como transportar itens, mesmo quando empurrado. O hardware da Atlas aproveita a impressão 3D. Isso é significativo não apenas porque economiza peso e espaço, mas porque resulta em um robô notavelmente compacto com alta relação em a sua resistência e peso. Até à proxima!

Movimentos de Câmara

Movimentos de Câmara

Na publicação passada falei dos gimbals para termos uma imagem estabilizada. Agora, com essa imagem estabilizada (ou mesmo sem imagem estabilizada) vamos aprender alguns movimentos de câmara para as transições dos nossos vídeos!
O mais básico é seguir uma pessoa quando esta se desloca, podendo não seguir sempre o mesmo plano, ou seja, andar à volta da pessoa, torna o vídeo mais atrativo.
Em entrevistas, em vez de um setup de duas câmaras também pode ser boa ideia mover a câmara de pessoa para pessoa o que torna o ambiente mais natural para o espectador.
Em termos de transições deixo em baixo uma imagem muito esclarecedora.
Tenham apenas atenção que em alguns dos movimentos é necessário um slider para movimentos na horizontal.

quarta-feira, 29 de janeiro de 2020

Sensores para os seus projetos de IoT

Toda a gente gosta de desenvolver um projeto pessoal e de ver o seu trabalho, esforço e dedicação culminar numa criação útil ou engraçada. Estamos numa era ode é muito fácil e barato começar a desenvolver os nossos projetos. Com ferramentas como o Arduino, CHIP ou Raspberry Pi juntamente com sensores e shields possuímos muitas possibilidades para deixar a nossa imaginação fluir e praticar os nossos conhecimentos e raciocínio. Mas o que torna cada projeto tão diferente de todos os outros não costuma ser os microcontroladores, mas sim os diversos sensores utilizados, por isso, vou dar 7 exemplos de sensores muito úteis para projetos sobre internet of things.

Sensor de temperatura:

Este sensor possui capacidade para medir uma temperatura entre -55 a 125 graus celsius. É um sensor digital, o que significa que é possível ver a leitura dos seus valores já em graus celsius em vez de ter que fazer conversões de valores analógicos.É muito preciso, com uma margem de erro de apenas 0,5ºC e caso esteja bem protegido (numa cápsula, por exemplo) funciona em líquidos. 

Sensor de vibração:

Qualquer toco físico neste sensor é transformado em energia elétrica que é transmitida ao microcontrolador na forma de uma anotação analógica. Podendo ser usado, por exemplo, para enviar alertas quando as vibrações são superiores a valor definido por programação.

Sensor de luminosidade (LDR):

Neste sensor, à medida que a intensidade da luz emitida sobre ele aumente, a sua resistência diminui. Dando uma indicação numéirca deste acontecimento para o microcontrolador, começando no 0 (quando há ausência de luz) crescendo até ao 1023 (sinal analógico).

Sensor de ultrasson:

Este sensor é capaz de medir distâncias através da variação do tempo percorrido por ondas sonoras por ele emitidas. Tem um alcance que varia entre 2cm e 4m, possuindo uma margem de erro de apenas 3mm.

Sensor do nível de água:

Neste sensor, conforme o nível de água for aumentando, também a tensão aumenta. Quanto maior for o recipiente em que este está inserido, maior deve ser o sensor, pois este funciona com contacto direto com a água.

Sensor de humidade do solo:

Para este sensor, quanto maior a quantidade de água presente no solo em que este está espetado, maior será o valor numérico por ele transmitido. É necessária calibração do nível de humidade a partir do qual queremos que este gere um alerta ou mande executar uma função (como regar). É um sensor de extrema importância para a agricultura.

Sensor de gás:

Este sensor consegue identificar gases inflamáveis como metano, hidrogénio ou propano. Para isso usa dióxido de estanho, um material de baixa condutividade que quando possui algum gás inflamável próximo do sensor, a condutividade do mesmo aumento conforme esse gás fica mais denso. É um ótimo sensor para segurança, inclusive acionando atuadores que controlem a fuga de gás.


Aconselho a quem estiver a planear fazer projetos com o conceito de internet of things que usa a Arduino IoT Cloud para controlar o seu projeto pela internet, no seu telemóvel ou computador. Podendo até ver em tempo real o valor dos sensores.

imagens:


fonte:

C++ - rand() - Gerar números aleatórios


Muitos programas requerem alguma forma de gerar valores aleatórios.
No C++ existe a função rand que gera números inteiros.

Escrevendo:
rand(), seguido do operador módulo e o número "máximo".

int random = rand() % 100;
É gerado um inteiro entre 0 e 99 e é guardado na variável random.

Como por exemplo, o valor 83.

O mínimo do rand é 0, por isso se eu quiser de 1 a 100, tenho de colocar + 1.

int random = rand() % 100 + 1;

srand
Mas na próxima vez que o rand for chamado, vai ter o mesmo valor. Não vai ser aleatório. Isto porque não colocamos uma seed. Esta é nos permite receber valores completamente aleatórios.

Escrevendo:
srand(time(NULL));

Como estamos a utilizar a função time, temos de incluir a "biblioteca" time.h:
#include <time.h>

Programa exemplo
#include <iostream>
using namespace std;

int main()
{
    int min, max;
    
    srand(time(NULL));
    
    cout<< "Gerador de números aleatórios!" << endl << "Escolhe um mínimo: ";
    cin >> min;
    cout << "Escolhe um máximo: ";
    cin >> max;
    cout << "O número gerado foi: " << min + rand() % max << endl;

    return 0;
}
Este programa pede dois inputs, um número máximo e um número mínimo; e gera um número aleatório entre o máximo e o mínimo.

Exemplo:

Gerador de números aleatórios!
Escolhe um mínimo: 7
Escolhe um máximo: 25673
O número gerado foi: 442

Referências

Python - News 5


O MALWARE PyXie: UM NOVO RAT NEFASTO EXCRITO EM PYTHON!


Pesquisadores da empresa BlackBerry Cylance descobriram recentemente um RAT (Remote Administrator Tool) em Python, que foi batizado de PyXie. As amostras mais antigas do PyXie mostram o malware no ambiente virtual desde pelo menos 2018, sem chamar muita atenção da indústria de segurança cibernética.

O PyXie faz parte de uma campanha em andamento que tem como alvo uma ampla variedade de indústrias. Os analistas da BlackBerry Cylance também observaram evidências de tentativas de ataque de ransomware com o PyXie nos setores de saúde e educação.

A BlackBerry Cylance conduziu vários episódios de resposta a incidentes (IR) nos quais o PyXie foi identificado nos hosts do ambiente da vítima.

Os principais destaques da campanha do PyXie incluem:
· binários legítimos do LogMeIn e do Google usados para descarregar payloads;
· um aplicativo Tetris “trojanizado” para carregar e executar os suportes do Cobalt Strike a partir de compartilhamentos internos de rede;
· uso de um downloader que tem semelhanças com o Shifu, chamado “Cobalt Mode”;
· uso do Sharphound para recolher informações do directório activo das vítimas;
· um interpretador Python compilado e personalizado que usa opcodes codificados para dificultar a análise;
· uso de um algoritmo RC4 modificado para criptografar payloads com uma chave exclusiva para cada host infectado.

A imagem abaixo (em inglês) mostra de forma sintetizada como funciona o ataque por passos:



Referências:


segunda-feira, 27 de janeiro de 2020

Gimbals

Gimbals

Imagem tão tremida que nem software a disfarça? A resposta para esse problema é: Gimballs.

Nos últimos anos uma marca da qual já aqui falei nas últimas publicações deste blog muito conhecida no mundo dos drones lançou o seu primeiro gimball. DJI é o seu nome.

DJI Osmo Mobile
Com esta jogada também a famosa marca no mundo da fotografia e vídeo lançou a sua versão deste gadjet. A GoPro deu um passo à frente e implementou um gimbal do género no seu drone, o Karma Drone, gimbal esse que pode ser retirado e ser utilizado tal como o da DJI.
No entanto se quisermos usar um Gimbal numa DSLR ou até mesmo numa máquina compacta não havia muitas opções a não ser gastar rios de dinheiro em algo como isto:
A DJI no entanto já lançou a sua versão de um gimbal para uma máquina DSLR ou compacta a um preço bastante mais acessível ao consumidor.
Mas será que justifica usar um gimbal em qualquer tipo de filmagem? A minha resposta é sim. Se tens um gimbal então usa-o porque não te vais arrepender. Indo buscar o exemplo que dei à umas publicações atrás: o da entrevista. Pode dar jeito usar um gimbal para fazer movimentos mais suaves por exemplo em vez de se comprar um slider.
Em exterior diria que um gimbal é mesmo essencial a não ser que se seja uma pessoa que pouco ou nada treme ou que o software de estabilização de imagem seja muito bom.

O que é o CHIP e como ele é excelente para os seus projetos de IoT

CHIP ou C.H.I.P é um microcontrolador/computador desenvolvido pela Next Things Co. qu começou por ser um projeto do kickstarter em 2015. É um género de fusão entre um Arduino e um Raspberry Pi, porém, custa apenas 9$! Incrível!
Possui 1GHz de capacidade de processamento, 512 MB de memória ram e 4GB de espaço de armazenamento. Possui bluetooth e Wifi já embutidos. Esta é a razão pela qual eu trago o CHIP ao blog. Este dispositivo é excelente para projetos, por ter diversas entradas para cabos, sensores, leds, etc... Sendo depois possível usar o wi-fi para tornar qualquer projeto num projeto da internet das coisas. Para além disso, por 19$ é nos enviado com ele uma bateria, para que este não tenha que estar sempre conectado a um computador.
Caso seja preferível para si utilizar este dispositivo como um hub de IoT também o pode fazer. Por 19$ é possível ter o CHIP mais um adaptador para VGA e por 24$ com um adaptador para HDMI. Sendo assim, temos um computador com Linux e diversas aplicações que pode ser usado para monitorar os diversos dispositivos da sua smart home (que podem ser criados por si usando outros CHIP ou Arduinos), por exemplo, podendo até mesmo controlá-los. Usando uma Cloud apropriada, claro.
Como pode ver, por um preço mínimo é capaz de ter um dispositivo com diversas funções. Já não há desculpa para não meter as mãos na massa!


imagem:
  • URL
  • consultada no ida 04/01/2020


fontes:

C++ - Funções - Overloading



Funções diferentes podem ter o mesmo nome mas diferentes parâmetros.
.
int printNum(int num){
    cout << num << endl;
}

float printNum(float num){
    cout << num << endl;
}

int printNum(int num, int num2){
    cout << num << endl;
    cout << num2 << endl;
}

Então quando for chamada, o compiler tem em atenção o tipo de dado do argumento e o número de argumentos.

Temos de ter atenção para que não haja discrepâncias quando formos chamar a variável, isto é, não podemos ter duas funções iguais mas uma delas tem mais um parâmetro que é padrão. O compiler não vai saber qual utilizar.

Programa exemplo completo
#include <iostream>
using namespace std;

int printNum(int num){
    cout << num << endl;
}

float printNum(float num){
    cout << num << endl;
}

int printNum(int num, int num2){
    cout << num << endl;
    cout << num2 << endl;
}

int main(){
    printNum(6, 9);
}

A função printNum foi chamada. Como existe overloading, dependendo dos argumentos usados, um código diferente será executado. Neste caso, os dois argumentos foram 6 e 9, dos inteiros, logo correspondem à terceira função.

O output será:
6
9


Referências

Python - Classes (Parte 1)

PYTHON É UMA LINGUAGEM ORIENTADA A OBJETOS, ASSIM, UMA CLASSE É COMO UM CONSTRUTOR DE OBJETOS OU UMA 'BLUEPRINT' PARA OS CRIAR!

Para mais informações sobre classes oficiais: docs.python.org/3/tutorial/classes.html

Na imagem acima podemos perceber as classes de uma maneira bastante simples, neste caso a classe é uma construção e os objetos dessa classe podem ser casas, igrejas ou arranha-céus, sendo eles todos construções.

Criar uma classe:
Criar uma classe é bastante fácil usando apenas o método 'class nome da classe:', como no exemplo a seguir:

class MyClass:
  x = 5

No exemplo acima criamos uma classe chamada MyClasse com uma propriedade x, assim podemos criar um objecto através dessa classe.

Criar um objecto:
A seguir, criamos um objeto chamado p1 e que imprima o valor de x:


p1 = MyClass()
print(p1.x)

Nesta publicação dei apenas algumas bases sobre classes, na próxima irei desenvolver muito mais de forma a poderem começar a usá-las em problemas práticos!


Referências:



domingo, 26 de janeiro de 2020

Logitech ERGO K860

Logitech ERGO K860

Resultado de imagem para ergo k860

Logitech anunciou o lançamento de um novo teclado ergonómico: o ERGO K860. Embora tenha um aspeto tremendamente estranho, desde o lançamento que explican que é capaz de oferecer uma experiência de escrita mais natural com a qual quem o utilizar irá sentir-se mais confortável.
O ERGO K860 também vem acompanhado con um apoio almofadado, que em combinação com o teclado, conseguirá reduzir a tensão muscular do pulso e dos antebraços. Em concreto, reduz a flexão do pulso num 25%, além de oferecer um 54% mais de suporte para os pulsos.

Como curiosidade, o teclado também integra dois suportes que permitirão elevá-lo, o que resulta mais confortável a alguns utilizadores, mais ainda se estiverem a trabalhar de pé ou preferirem uma posição mais elevada para escrever.

iOS 6 - v 6.1.5


iOS 6.1.5


  Esta penúltima atualização do sistema operativo foi lançada no dia 14 de novembro de 2013, tendo sido uma atualização específica para um dispositivo que foi o iPod Touch de 4ª geração.  Esta atualização veio com uma correção para as chamadas do FaceTime que tinham falhas.

Melhores robôs Sociais não Humanóides de 2019 (parte 3)

Robôs Sociais não Humanóides

5. AIBO

Originalmente desenvolvido em 1998, o Aibo é o cachorro-robô da Sony. No entanto, foi recentemente remodelado para estar mais avançado do que nunca! O Aibo tem expressões realistas e uma variedade dinâmica de movimentos. O seu comportamento adorável traz calor e prazer para a vida quotidiana dos seus proprietários, sem pelos para aspirar!

6. PIAGGIO 'GITA' CARGO BOT


O Piagiio 'Gita' cargo bot foi projetado para ser a mão que todos precisam. O Gita foi projetado para ajudar os utilizadores a carregar as suas coisas, ajudando a libertar as suas mãos para continuar com o que é importante. Ele foi projetado para corresponder aos níveis de mobilidade humana, de forma que possa ir a quase qualquer lugar. Além da capacidade de seguir os seus movimentos, o Gita também tem a capacidade de navegar autonomamente em um ambiente mapeado. Este é certamente um robô que vale a pena ficar atento pois poderia um dia revolucionar o humilde carrinho de compras. Até a próxima!