Fandom

Scratchpad

PPI09 Assignment 06 Pepe Luckstone

216,002pages on
this wiki
Add New Page
Discuss this page0 Share

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

De forma a dar continuidade ao trabalho iniciado nas sessões anteriores, foi proposto neste assignment que se continuasse a aplicar scripts de forma a animar vários objectos no Second Life. Como resposta a essa proposta, o presente trabalho vem demonstrar a aplicação de scripts para controlo dos equipamentos projectados nos assignments 3 e 4.

O presente trabalho terá, então, a seguinte ordem de tarefas:


  • Programação da abertura da escotilha de manutenção do reactorde mistura;
  • Aperfeiçoamento da animação do moinho.

Abertura e fecho de escotilhas

A abertura das escotilhas pode ser programada pela introdução de um comando de rotação no script associado à dobradiça da escotilha. Pretende-se que as escotilhas possam ser abertas para que seja possível visualizar o interior do equipamento, e também dar um aparente aspecto funcional à escotilha do doseador que tem de ser aberta sempre que se põe a funcionar o moinho.

No presente projecto existem, actualmente, três equipamentos com escotilhas: o doseador, o reactor de mistura e o reactor de cozimento.

Começando pelo reactor de mistura, as escotilhas existentes neste equipamento situam-se no topo e na parte lateral. A escotilha do topo tem a função de inspeccionar o interior do reactor, e a escotilha lateral permite realizar tarefas de inspecção, manutenção e limpeza do reactor. Para nós, a escotilha que interessa abrir e fechar é a escotilha lateral, visto que nos vai permitir futuramente observar as pás em funcionamento do reactor.

A construção do script de abertura é simples. Pela introdução de um comando de rotação no script podemos definir uma posição de abertura e uma posição de fecho e, reagindo ao toque sobre a escotilha, a escotilha abre ou fecha.


O script construído para esta função foi o seguinte:

default
{
    touch_start(integer total_number)
    {
        rotation rot = llGetLocalRot();
       
        if (rot.z == 0)
        {
            rot.z = 0.819152;
            rot.s = 0.573576;
    }
    else
    {
        rot.z = 0;
        rot.s = 1;
    }
    llSetLocalRot(rot);   
    }}


O resultado da aplicação deste script pode ser visualizado na Figura 1 e na Figura 2.




RM 003

Figura 1. Escotilha fechada.

RM 002

Figura 2. Escotilha aberta

Aperfeiçoamento da animação do moinho

Rectificação da velocidade de rotação

Para efectuar a correcção da velocidade de rotação do motor e das mós, é necessário recorrer a conhecimentos aplicados em mecânica. As velocidades que se pretendem estimar são as velocidades do motor e da primeira polia, pois a segunda polia terá a mesma velocidade que a primeira pois o diametro é igual.

Assumindo que a ligação entre as duas polias não é elástica e não há escorregamento, as duas polias giram em sincronia com velocidade igual, logo:

V_1=V_2

Sendo que a velocidade da polia é dada por:

V_1=\omega_1 \times R_1 \Leftrightarrow
V_1=2 \times \pi \times f_1 \times R_1

Então podemos calcular a frequência da segunda polia através de:

\frac{f_1}{f_2}=\frac{R_2}{R_1}

Considerando que a frequência a que se pretende que as mós rodem é de 40 rpm, a frequência do motor será dada por:

\frac{40}{f_2}=\frac{0.073}{0.03} \Leftrightarrow f_2=97,3 rpm

Modificação do script de rotação

No assigment anterior foi criado um script para a rotação das mós a partir de valores arbitrários. Neste assignment pretende-se corrigir a velocidade para um valor calculado de forma a dar coerência ao projecto e introduzir no script funções de controlo do motor e das polias. Ou seja, pretende-se que quando for digitado um comando de inicio de processo "start_moinho" o motor e as mós se movam à velocidade calculcada e, quando for inroduzido o comando "stop_moinho", estes parem.

Desta forma, o script para o motor será:

default
{
    state_entry()
    {
        llListen(0, "", NULL_KEY, "" );
    }
    listen(integer channel, string name, key id, string message)
    {
        if (llToLower(message) == "start_moinho")
        {
            llTargetOmega(<1.62222,0,0>,TWO_PI,1.0);
        }
        else
        {
            if (message == "stop_moinho")
            {
                llTargetOmega(<0,0,0>,TWO_PI,1.0);
            }
        }
    }}

A codificação do comando llTargetOmega traduz a velocidade angular da rotação de um objecto. Resulta da multiplicação de uma frequência, definida sobre o eixe cartesiano x, y, z, em Hz (rotações por segundo) multiplicado por duas vezes pi. No caso do motor e das mós só nos interessa a rotação sobre o eixo do xx.

Depois de aplicado o mesmo script às peças das mós, modificando o valor da velocidade, foi possível testá-lo como pode ser observado no Video 1.


File:PPI 09 Assignment 06 Moinho

Also on Fandom

Random wikia