Tópicos em Tecnologias – Semáforo

Semáforo

Trabalho de Tópicos em Tecnologias - ADS3002D (UCS - Universidade de Caxias do Sul)

Aluno: Rafael Rossa

Instituição: Universidade de Caxias do Sul

Curso: Bacharelado em Ciência da Computação

Disciplina: Tópicos em Tecnologias

Professor: Ricardo Vargas Dorneles

Implementado em C

Repositório:
bomrafinha/MyCollegeJob-TopicosEmTecnologias-Semaforo

Simulação de Semáforo

Objetivo do Trabalho

Desenvolver um programa em C que realize em um Arduino (físico ou no Tinkercad) a simulação do funcionamento de um controlador de semáforos da esquina da Rua José do Patrocínio com a Av. Perimetral, mostrada no esquema abaixo:

O semáforo S1 controla o fluxo na José do Patrocínio (é uma rua de mão única). Os carros vindos da José do Patrocínio podem seguir em frente ou dobrar à direita ou esquerda da Av. Perimetral.

Os semáforos S2 e S3 controlam o fluxo em frente nos dois sentidos da Perimetral. Eles não permitem conversão para a José do Patrocínio.

O semáforo S4 permite a conversão à direita para a José do Patrocínio.

Os semáforos S5 e S6 são para pedestres.

Os botões B1 e B2 solicitam a ativação dos semáforos S5 e S6.

A sequência de estados é a seguinte:

  1. A simulação inicia com a sinaleira S1 em verde durante 10 segundos. Todas as outras sinaleiras estão em vermelho.
  2. S1 vai para amarelo e permanece por 3 segundos.
  3. S1 vai para vermelho durante 15 segundos e S2 e S3 vão para verde durante 12 segundos, após o qual vão para amarelo por 3 segundos. S4 vai para verde durante 10 segundos, após o qual, se alguém apertou o botão B1 ou B2, S4 vai para vermelho, e S5 e S6 vão para verde durante 5 segundos. Se ninguém apertou o botão, S4 continua verde até completar os 15 segundos.
  4. S1 vai para verde e todas as outras vão para vermelho, reiniciando o ciclo no estado 1. O controle dos semáforos deve ser feito através de shift registers 74HC595, de modo que 3 pinos sejam suficientes para controlar todos os semáforos.

Interface Humano Computador – Interface UCSfm

Projeto Interface UCSfm

Trabalho de Interface Humano Computador - FBI8002E (UCS - Universidade de Caxias do Sul)

Instituição: Universidade de Caxias do Sul

Curso: Bacharelado em Ciência da Computação

Disciplina: Trabalho de Interface Humano Computador

Professor: Elisa Boff

Implementado em Delphi

Repositório:
bomrafinha/MyCollegeJob-InterfaceHumanoComputador-UCSfm

Objetivo do Trabalho

As principais telas do aplicativo incluindo todas as funcionalidades solicitadas. Justificar as escolhas relativas ao design a partir das características da interface: utilização de imagem, layout, orientação, navegação, etc.
Identificar quantas personas primárias devem ser descritas;

Descrição:

Considere o cenário fictício: A Universidade de Caxias do Sul está lançando um novo aplicativo para a Rádio UCS FM. Este aplicativo para smartphones permite ouvir a programação ao vivo da rádio escolhida pelo usuário: Caxias 106.5, Bento Gonçalves 89.9 e Vacaria 106.1. A programação é a mesma nas 3 unidades, somente a publicidade é a da localidade.

O aplicativo é aberto ao público, não é necessário acessar com usuário e senha da universidade. O grupo deve decidir se desenvolverá os protótipos para iOS ou Android.

O aplicativo UCSfm oferecerá recursos como:

  • Ouvir a programação ao vivo da rádio;
  • Visualizar as informações da música que está tocando e criar uma playlist com as músicas favoritas (esta playlist deve armazenar nome da música e cantor/banda);
  • Acessar as principais notícias da rádio;
  • Ter opção de acessar as páginas complementares da rádio (Facebook, site e Twitter).
  • Fazer protótipos de interface para o aplicativo da UCSfm apresentando:



Programação Concorrente – Simulador Populacional

Simulação de Dinâmica de População

Trabalho de Programação Concorrente - SIS0564A (UCS - Universidade de Caxias do Sul)

Aluno: Rafael Rossa

Instituição: Universidade de Caxias do Sul

Curso: Bacharelado em Ciência da Computação

Disciplina: Programação Concorrente

Professor: André Luiz Martinotto

Implementado em Java com IDE Netbeans

Repositório:
bomrafinha/MyCollegeJob-ProgramacaoConcorrente-SimuladorPopulacional/

Objetivo do Trabalho

O objetivo do trabalho consiste na implementação de um pequeno ecossistema formado por sapos, moscas e por açúcar.

Descrição:

Depois de iniciar um programa, deverá ser apresentado um menu que permita adicionar moscas e sapos ao ambiente. O usuário poderá adicionar quantos sapos e moscas como desejar, sendo que esses indivíduos deverão ser gerados em posições aleatórias e deverão se movimentar aleatoriamente na tela, sem atravessar as bordas.
A quantidade de indivíduos e o tempo de simulação devem ser apresentados na tela. Os indivíduos deverão ser implementados como threads e compartilharão de um mesmo ambiente (como uma matriz, por exemplo).
A cada sapo é a associado um contador de calorias que é decrementado, sendo que o sapo morre quando o contador chegar a 0. Quando um sapo e uma mosca fizerem contato, a mosca morre e o contador de calorias do sapo é incrementado. O número de inicial calorias deverá ser fornecido pelo usuário no início do programa.
As moscas seguem o mesmo ciclo de vida de um sapo (mesmo número de calorias dos sapos), sendo que essas morrem de fome se não obterem comida (açúcar). Assim que uma mosca comer um lote de açúcar (ou seja, sua contagem de calorias exceder um limite pré-definido), ela irá se multiplicar automaticamente (ou seja, será gerado uma nova mosca). Já o açúcar deverá ser gerado aleatoriamente no ambiente e deverá ficar em posições fixas.

Observações:

  • Linguagens permitidas: Java, C#, C/C++, Python
  • Grupos de no máximo dois alunos
  • Trabalhos iguais serão zerados.



Sistemas Distribuídos – Super Trunfo

Super Trunfo

Trabalho de Sistemas Distribuídos e Programação Paralela - INF0213A (UCS - Universidade de Caxias do Sul)

Alunos: Rafael Rossa; Lucas Santos;

Instituição: Universidade de Caxias do Sul

Curso: Bacharelado em Ciência da Computação

Disciplina: Sistemas Distribuídos e Programação Paralela

Professor: André Luiz Martinotto

Implementado em C#

Repositório:
bomrafinha/MyCollegeJob-SistemasDistribuidos-SuperTrunfo

Jogo de Super Trunfo

Objetivo do Trabalho

O objetivo desse trabalho consiste na implementação distribuída de um jogo de cartas chamado Super Trunfo. A implementação deverá ser desenvolvida utilizando Sockets e deverá suportar de 2 a 8 jogadores. O tema do jogo poderá ser escolhido pelo grupo.

Observações:

  • Linguagens permitidas: Java, C#, C/C++, Python
  • Grupos de no máximo dois alunos
  • Trabalhos iguais serão zerados.
  • Data de entrega e apresentação: 07/07/2017

Super Trunfo (Fonte: Wikipedia)

Super Trunfo é um jogo de cartas distribuído no Brasil pela Grow, que consiste em tomar todas as cartas dos outros participantes por meio de escolhas de características de cada carta (exemplo: velocidade, altura, longevidade). O jogo comporta de dois a oito participantes.
Tradicionalmente, estão em disputa 32 cartas, divididas em oito grupos de quatro cartas (1A-1D, 2A-2D, … 8A-8D), sendo que uma delas é a carta "Super Trunfo", que ao entrar em disputa pode ser invocada para tomar as outras cartas na mão dos oponentes. O jogo começou a ser produzido no Brasil nos anos 70, voltado a automóveis e outros veículos, e se popularizou nos anos 80. Atualmente conta com vários temas, entre os tradicionais sobre carros e aviões até os mais novos como Cães de Raça e de super-heróis.
Regras do Jogo (Fonte: Grow Jogos e Brinquedos S. A.) O jogo comporta de dois a oito participantes e tem como objetivo ficar com todas as cartas do baralho. As cartas são distribuídas em número igual para cada um dos jogadores. Cada jogador formará seu monte e só poderá ver a primeira carta da pilha. (As cartas possuem uma série de informações, tais como: Potência, Km/h,
etc. e com essas informações que cada um vai jogar). Inicia o jogo quem estiver à esquerda do jogador que distribuiu as cartas
Se você é o primeiro a jogar, escolha, dentre as informações contidas em sua carta, aquela que você julga ser capaz de superar a que se encontra nas cartas que seus adversários têm em mãos, Por exemplo: você escolhe a informação potência. Imediatamente todos os outros jogadores abaixam a primeira carta de suas pilhas e conferem o valor da informação. Quem tiver o valor mais alto, ganha as cartas da mesa e coloca as embaixo de sua pilha. O próximo a jogar será o que venceu a jogada anterior. Assim prossegue o jogo, até que um dos participantes fique com todas as cartas do baralho, vencendo a partida. Se dois ou mais jogadores abaixarem cartas com o mesmo valor máximo, os demais participantes deixam suas cartas na mesa e os que empataram decidem a vitória. Para isso, aquele que cantou inicialmente dirá um novo item de sua próxima carta, e quem tiver o valor mais alto, ganha todas as cartas da rodada.
A carta SUPER TRUNFO é embaralhada com as demais. Seus dados técnicos superam todos os dados de cartas marcadas com B/C/D. Assim, se você tiver uma carta SUPER TRUNFO, sua chance de ganhar de seus adversários è muito grande. Você só vai perder se um deles lhe apresentar uma carta marcada com A (1A, 2A, 3A, 4A, etc.