[MOC] Motorized Vestas Wind Farm

As nossas criações: MOCs, MODs, técnicas de construção.
Responder
Avatar do Utilizador
Conchas
Direcção
Direcção
Mensagens: 15891
Registado: 26 jan 2007, 15:20
Localização: Feijó (Almada)
Contacto:

[MOC] Motorized Vestas Wind Farm

Mensagem por Conchas »

Há muito tempo (anos...) que tinha ideia de fazer uns geradores eólicos motorizados, com base no modelo dos sets Vestas da LEGO.

Pretendia que estes tivessem dois movimentos: a rotação das blades como que por acção do vento, e a rotação do gerador no topo como que por acção da mudança da direcção do vento.
Pretendia também que tendo 2 ou mais eólicas, os movimentos entre si não fossem exactamente idênticos, mas que houvesse sim uma certa aleatoriedade, no arranque, paragem, velocidade, duração de movimentos, momento de alteração da direcção dos geradores e a própria direcção para que não estivesse todos apontados exactamente para o mesmo sítio. Pretendia assim com estes efeitos, simular o mais possível as condições reais, em que nem tudo é determinístico e perfeito.

Começei por pensar em fazer isto com um EV3 a controlar os diversos motores, e também pretendia inicialmente ter apenas um nmotor por eólica que fizesse os dois movimentos e implementasse a tal aleatoriedade. Não seria tarefa fácil e cheguei a pensar se conseguiria implementar um trigger mais ou menos aleatório por acção de algum mecanismo mecânico. Confesso que nunca tive nenhuma ideia brilhante sobre como implementar este mecanismo, mesmo sem ter dedicado nenhum tempo a pensar exclusivamente no assunto...

Com o advento do PUP e Control+, mais concretamente com a versão 3.0 da app achei que poderia fazer tudo com PUP ao mesmo tempo que simplificava o problema utilizando dois motores por eólica...

Certamente não conseguiria meter isto tudo dentro do espaço do "gerador" presente nos sets Vestas, mas com algum engenho conseguiria fazê-lo num espaço não muito maior. E assim foi feito!...
O processo de construção e soluções adoptadas pode ser visto neste outro tópico, dedicado ao WIP deste MOC.

Finalmente decidi fazer um parque eólico com três eólicas e os espaço necessário para todas elas rodarem livremente e mudarem de direcção, sem tocarem umas nas outras.
A respectiva aplicação foi desenhada para controlar estas mesmas três eólicas independentemente e ligadas por bluetooth. Esperaria que a aplicação pudesse ter sido mais compacta e com um desenho mais elegante, não fossem alguns problemas encontrados com esta versão da app, nomeadamente no que toca à execução de blocos comuns com passagem de parâmetros (a coisa não correu muito bem...).

Em baixo uma fotografia e dois videos demonstrativos desta construção,

Imagem







Dimensões:
96 x 192 studs, apesar das duas baseplates castanhas no canto inferior direito que não foram colocadas por mim.
Se possivelmente maior se contabilizasse-mos a altura, e certamente se entrássemos em linha de conta com o espaço que as pás das eólicas ocupam para fora da área da base, aquando dos seus movimentos. ;D
Mas não compliquemos!!... :whistle:
FCorreia

#EUusoOmeuLUGBULKnosEVENTOSdaPLUG

We are working to build a better :plug:
LEGO Fan, a lifelong experience - Play Well (Leg Godt)

Oeiras :brincka: 2024, 25-28 de Abril
Avatar do Utilizador
Jorge Reis
Sócio
Sócio
Mensagens: 5776
Registado: 26 jul 2006, 22:54
Localização: Braga

Re: [MOC] Motorized Vestas Wind Farm

Mensagem por Jorge Reis »

@Conchas

Será que consegues dar uma ajuda?

Depois de ver as tuas “Vestas” a trabalhar em Oeiras fiquei a magicar umas coisas para os comboios. Agora com mais tempo ando a tentar resolver.

Assim sendo precisava de uma dica em como colocar dois hubs, Powered Up em funcionamento ao mesmo tempo.

Por outras palavras, consigo colocar um a arrancar, mas para o segundo arrancar preciso de ir selecionar no botão de bluetooth e passar o dois para cima. É este o procedimento que usas na app?

Já agora consigo colocar dois hubs a comunicar entre si? Se sim sabes ajudar?

Quando usas os 3 hubs eles arrancam um de cada vez, começa a correr o programa de cada um, depois os outros arrancam. É de forma manual ou automática.

Desde já muito obrigado, se poderes dar a dica agradeço :)
Avatar do Utilizador
Conchas
Direcção
Direcção
Mensagens: 15891
Registado: 26 jan 2007, 15:20
Localização: Feijó (Almada)
Contacto:

Re: [MOC] Motorized Vestas Wind Farm

Mensagem por Conchas »

Olá @Jorge Reis ,


Primeiro faço o emparelhamento dos Hubs um a um e só depois é que arranco o programa.
Eventualmente poderia emparelhar um, arrancar o programa e depois emparelhar os seguintes, mas nunca experimentei e portanto teria de testar para ver se funciona. De qq das formas não é isso que pretendo.

O emparelhamento do primeiro é automático (inicia-se assim que o ligo), e o dos restantes faço no mesmo botão que mencionas. Ligo o segundo, ele aparece na app e toco para emparelhar, depois faço o mesmo com o terceiro. Faço assim para garantir qual é o #2 e o #3, embora no meu caso a posição até seja indiferente. Seja como for o assignment dos hubs a cada posição pode ser alterado arrastando-o na mesma janela.
É mais ou menos o que descreves, sendo que não é obrigatório passar nada para cima nem para baixo (apenas tocar).

Não existe comunicação entre este tipo de hubs (pelo menos para já, mas também duvido que venha a haver).
O MicroPython (Pybricks) tem na versão 2 essa funcionalidade para o EV3. Sendo a API partilhada, quando for released para os diversos hubs PUP não sei se estes a suportarão. Por acaso gostaria que viesse a ser possível para conseguir implementar tudo o que fiz, sem Tablet ou Smartphone, sem Scratch, e com tudo a trabalhar de forma totalmente autónoma. A ver vamos...

Portanto para já implementei tudo em Scratch num único programa e no meu caso tenho duas threads separadas a correr para cada Hub. Tenho o controlo das três Vestas (podiam ser até quatro) "sincronizado" no que respeita à orientação das mesmas (tirando uma pequena componente aleatória individual que adiciono a cada uma para dar um efeito mais realista), feito através de uma variável externa que vai mudando com pequenos incrementos também eles aleatórios.

No Scratch sempre que pretendo dar uma instrução a um motor ou sensor, posso indicar qual o hub (1..4) e o porto (A..B) ou (A..D) que pretendo endereçar e é portanto isso que eu faço no programa.

Penso que respondi às tuas questões. Se persistirem dúvidas podes ligar!
FCorreia

#EUusoOmeuLUGBULKnosEVENTOSdaPLUG

We are working to build a better :plug:
LEGO Fan, a lifelong experience - Play Well (Leg Godt)

Oeiras :brincka: 2024, 25-28 de Abril
Avatar do Utilizador
Jorge Reis
Sócio
Sócio
Mensagens: 5776
Registado: 26 jul 2006, 22:54
Localização: Braga

Re: [MOC] Motorized Vestas Wind Farm

Mensagem por Jorge Reis »

Antes de mais muito obrigado pelas dicas :fixe:

Percebi, é mais ou menos como pensava.

Mas só falta aqui uma peça do puzzle, quando a #2 ou #3 Vestas arrancam não precisas de ir indicar qual o hub. Porque no scratch já indicaste o número ou nome do Hub, é assim?

Se é assim, só preciso de saber qual o comando de scratch que devo usar.

Obrigado uma vez mais, qualquer coisa mais ainda ligo
Avatar do Utilizador
Conchas
Direcção
Direcção
Mensagens: 15891
Registado: 26 jan 2007, 15:20
Localização: Feijó (Almada)
Contacto:

Re: [MOC] Motorized Vestas Wind Farm

Mensagem por Conchas »

Quando o programa arranca as threads arrancam também todas ao mesmo tempo.
Não tem de ser necessariamente assim, pois existem "símbolos" próprios para fazer arrancar threads com base em condições. Mas normalmente não deverá ser necessário complicar demasido.

Tu vistes a minhas Vestas a arrancar separadamente, porque mais uma vez para dar um ar mais realista, começo cada uma das threads com um delay de duração aleatória (entre 0 e X segundos).

Contudo na realidade e conforme referi antes, a threads arrancam todas em simultâneo.
Cada conjunto de threads que uso para cada Vestas, endereçam sempre dois motores específicos.

Identificas os motores que estás a endereçar com base no pictograma ou comandos em baixo (Hub #02, Porto B).

Imagem


Tudo isto não tem de ser necessariamente estático. Poderão ser utilizadas variáveis se necessário (presumo, pois não experimentei).
FCorreia

#EUusoOmeuLUGBULKnosEVENTOSdaPLUG

We are working to build a better :plug:
LEGO Fan, a lifelong experience - Play Well (Leg Godt)

Oeiras :brincka: 2024, 25-28 de Abril
Avatar do Utilizador
Jorge Reis
Sócio
Sócio
Mensagens: 5776
Registado: 26 jul 2006, 22:54
Localização: Braga

Re: [MOC] Motorized Vestas Wind Farm

Mensagem por Jorge Reis »

Conchas Escreveu: 09 mai 2020, 21:30 Quando o programa arranca as threads arrancam também todas ao mesmo tempo.
Não tem de ser necessariamente assim, pois existem "símbolos" próprios para fazer arrancar threads com base em condições. Mas normalmente não deverá ser necessário complicar demasido.

Tu vistes a minhas Vestas a arrancar separadamente, porque mais uma vez para dar um ar mais realista, começo cada uma das threads com um delay de duração aleatória (entre 0 e X segundos).

Contudo na realidade e conforme referi antes, a threads arrancam todas em simultâneo.
Cada conjunto de threads que uso para cada Vestas, endereçam sempre dois motores específicos.

Identificas os motores que estás a endereçar com base no pictograma ou comandos em baixo (Hub #02, Porto B).

Imagem


Tudo isto não tem de ser necessariamente estático. Poderão ser utilizadas variáveis se necessário (presumo, pois não experimentei).
Era mesmo isto que me estava a faltar, excelente obrigado.

Já posso testar tudo
Responder