Como criar um navegador de hardware para um randonauta

Randonavting ( randonauting ) - é quando usando um gerador de números aleatórios, encontre e explore lugares próximos. É assim: primeiro, a latitude e a longitude são escolhidas aleatoriamente e, em seguida, eles visitam o local correspondente na Terra.



Essa atividade tem um fundo metafísico: presume-se que as intenções do randonauta afetam o processo de escolha aleatória de um ponto no mapa. Isso é melhor afirmado no artigo do NY Times: "Pense: a lei da atração encontra o geocaching."





Navegador de Dujour Randonaut



Por que isso seria possível? O fato é que há pessoas que acreditam que usando números aleatórios derivados de processos quânticos, por exemplo, usando um Hardware Random Number Generator (HRNG), pode-se usar o poder do pensamento para influenciar quais são as coordenadas que serão escolhidas. Como resultado, você pode encontrar algumas consequências surpreendentes, informativas ou mesmo desagradáveis. Um vídeo escuro do TikTok de adolescentes randomauts encontrando uma mala cheia de partes do corpo é uma boa ilustração dessa ideia .



A ideia de que os controles da mente são importantes pode não ser tão incrível quanto parece à primeira vista. Há alguns estudos , cujos resultados surpreendentes parecem indicar a possibilidade do pensamento influenciar os números aleatórios gerados pela dependência de processos quânticos.



O que acontece se você se concentrar em uma intenção específica exatamente quando as coordenadas geográficas aleatórias são geradas? Essa é a essência do randonauting.



Existem várias diferenças entre meu dispositivo para randonautas e outros projetos de foco semelhante.



Em primeiro lugar, expandi os recursos do meu dispositivo em detrimento do controle do tempo. Ele não apenas fornece coordenadas geográficas aleatórias, mas também indica um tempo aleatório para viajar até o local proposto. Essa melhoria é baseada na ideia de que pode fazer mais sentido selecionar aleatoriamente um ponto no tempo e no espaço. Como resultado, o Randonauta pode viajar para um local específico viajando em um horário especificado, o que deve ajudar a extrair o melhor da ideia do Randonauta.



Em segundo lugar, meu projeto difere de outros na forma como as coordenadas são selecionadas nele. Eu só uso dois números aleatórios para encontrar coordenadas geográficas. Outras implementações têm os conceitos de "vazios" e "atratores" que usam algoritmos estatísticos para determinar os pontos apropriados no mapa. Os atratores são essencialmente coleções de valores que representam coordenadas geográficas. E os vazios são, ao contrário, a ausência de tais aglomerados. Acredito que isso complica as coisas apenas desnecessariamente.





Voids and Attractors ( fonte )



Este é um dos meus projetos mais difíceis . Você precisará de algum hardware e habilidades de programação Python para reproduzi-lo. Eu chamo esse dispositivo de "Dujour" (em homenagem a um dos personagens de Matrix ). Para se tornar o mesmo dispositivo, você precisa do seguinte:





Você pode estar se perguntando por que usar um gerador de números aleatórios de hardware quando os números aleatórios também podem ser gerados no software. Essa é uma boa pergunta. Em HRNG para gerar verdadeiros números aleatórios usando processos físicos quânticos. E os programas usam alguns algoritmos. Na verdade, os programas geram o que chamamos de números pseudo-aleatórios. Esses números, na maioria dos casos, são bons para aqueles que os usam, mas os números gerados por processos quânticos são verdadeiramente (pelo menos em teoria) imprevisíveis. Além disso, se você acredita em que randonautting é baseado , ou seja, na interação da consciência e da matéria, então acontece que há pesquisascujos resultados indicam que o esforço mental afeta apenas números aleatórios gerados usando processos quânticos.



Você pode criar um pouco do meu projeto usando apenas uma placa Raspberry Pi conectando o HRNG a uma porta USB local, mas eu prefiro usar um dispositivo separado. Eu experimentei muito com geradores de números aleatórios e cheguei à conclusão de que é útil usar um servidor RNG remoto que pode ser acessado por vários dispositivos clientes.



Abaixo está um diagrama que mostra uma visão de alto nível do processo no qual o randonautting é baseado. O script principal tem um nome rabbit.py



e é executado na primeira placa Raspberry Pi, que chamo de Dujour1



... Quando é iniciado, ele (1) faz uma solicitação REST para o segundo dispositivo - Dujour2



(para o host do gerador de números aleatórios do hardware) e recebe (2) alguns números de ponto flutuante aleatórios dele. Esses números são usados ​​(3) para selecionar um local próximo para explorar e indicar quando visitar esse local. O script então coleta (4) a URL para o serviço Google Maps e a envia (5) para o telefone como uma mensagem de texto usando o serviço Twilio.





Diagrama do projeto de alto nível



Aqui está um videoclipe do meu dispositivo em operação.









Raspberry Pi's Navigator em ação Em uma placa Raspberry Pi chamada Dujour1



, o Linux precisa ser instalado e configurado . Você precisa conectar um monitor a ele ( aqui estão as instruções para o Matrix Orbital VK204-25). A imagem a seguir mostra a conexão do meu monitor com a placa.





Conectando o Matrix Orbital VK204-25 ao Raspberry Pi



, coloquei o Raspberry Pi e o monitor sob uma tampa de vidro e conectei um fio de LED aos pinos 5V e GND GPIO. A tampa de vidro me pareceu uma "caixa" conveniente na qual cabia tudo o que você precisa. Além disso, adoro a aparência.



Para fazer o script funcionar, você rabbit.py



precisa do Python e das seguintes bibliotecas:



  • matemática
  • entorpecido
  • subprocesso
  • sys
  • Tempo
  • json
  • urllib2


Se você receber um erro relacionado às dependências ao executar o script, significa que você precisa instalar o módulo ausente.



Várias variáveis ​​precisam ser definidas antes de executar o script. Eles estão todos na seção de script User Defined Variables



. Aqui está uma descrição de alguns deles:



  • loghandle



    : caminho para um arquivo de texto no qual todos os scripts iniciados são registrados
  • window_secs



    : O número máximo de segundos a ser usado para encontrar tempo para visitar o local selecionado.
  • meters_out



    : A distância máxima, em metros, da localização atual do Randonaut a ser usada ao escolher o local a ser visitado.
  • latitude1



    , longitude1



    : as coordenadas atuais, que são usadas como ponto de partida ao pesquisar as coordenadas do alvo.
  • lcd_addr



    : endereço hexadecimal do display LCD ao usar a interface I2C.
  • HWRNG



    : IP- HRNG- XXX.XXX.XXX.XXX:YYYY



    .


O projeto depende de vários scripts externos. sendSMS.py é usado para enviar mensagens de texto com coordenadas. orbitalWrite.py é usado para manipulação de exibição. Ambos os scripts devem ser colocados na mesma pasta do quadro Dujour1



onde o script está localizado rabbit.py



. Observe que meu script foi projetado para funcionar com um monitor Matrix Orbital (VK204-25) específico. Se você decidir usar algum outro monitor, precisará editar o código de acordo. Existem comentários no script sobre as seções de código responsáveis ​​por interagir com o display.



Para fazer o script sendSMS.py funcionarprecisa de algumas variáveis ​​de ambiente que permitirão a autenticação no serviço Twilio: TWILIO_ACCOUNT_SID



e TWILIO_AUTH_TOKEN



. Aqui estão as instruções para definir essas variáveis. Além disso, a biblioteca auxiliar Twilio Python deve ser instalada .



Na placa Raspberry Pi, que eu chamo de Dujour2



, desempenhando o papel de um servidor, você também precisa instalar e configurar o Linux . É a esta placa que o gerador de números aleatórios de hardware é conectado. Eu usei um dispositivo USB OneRNG, as instruções sobre como configurá-lo podem ser encontradas aqui .



Meu servidor é mostrado abaixo.





Servidor HRNG usando OneRNG



Após a configuração inicial do servidor ser concluída, você precisa executar um script nele rngrestserver.py



que é usado para transmitir números aleatórios para o dispositivo Dujour1



. Detalhes sobre como funciona o script do servidor REST podem ser encontrados aqui .



Resultado



Se você criou seu próprio dispositivo usando meu tutorial, significa que agora você tem tudo de que precisa para navegação aleatória. Basta executar o script a partir do terminal ./rabbit.py



, após o qual uma mensagem com um link para o mapa será enviada para o seu telefone (o que você verá ao abrir o link será algo como o mostrado abaixo).





Localização encontrada com gerador de números aleatórios de hardware Ao



testar meu dispositivo, encontrei várias sincronicidades estranhas. Mas, mesmo que nada de extraordinário aconteça, a randomonáutica pode pelo menos te ajudar a ver algo incrível, localizado bem perto de você, que você não prestava atenção antes.



Talvez um dia eu faça uma habilidade especial para a Amazon Alexa. Isso me permitiria usar meu servidor Randonautical do meu telefone.



Você já experimentou uma fantasia de rundonauta?






All Articles