Archive for the ‘ Meus projetos ’ Category

Uma retomada nas atividades

E ai galera!!! Tudo beleza? Faz tempo que não posto conteúdo para vocês né? Sei que estou em dívida com vocês. Mas pretendo voltar aos poucos a alimentar o blog com conteúdos novos. Continue lendo

Estamos Retornando!!!

Olha só!!! Quase um ano sem escrever!!!

Pois é… a partir de hoje vou tentar, aos poucos, retornar às atividades do blog.

Confesso que escrever aqui me faz muita falta e que estou super surpresa pelo fato dos acessos só terem aumentado mesmo durante a minha ausência. Num único dia da semana passada cheguei a ter mais de 1250 acessos!!!! Continue lendo

Introdução ao CodeWarrior IDE V6.3 – Mais básico impossível!

Infelizmente sempre fui uma péssima autodidata. Mas, depois de ingressar no mestrado, não tive outra alternativa; a maior parte do conhecimento adquirido durante a pós-graduação é mérito único e exclusivo seu. Então o negócio é arregaçar as mangas e ir a luta.

A minha batalha no momento tem sido aprender a programar os micros da Freescale. Mais especificamente os da família Flexis. Para isso, como já comentei com vocês em outros posts, eu acabei adquirindo o kit de desenvolvimento DEMOQE128.

Quando procuramos informações à respeito do processador que esse kit possui, percebemos que para alguém que está engatinhando no assunto o começo é bem complicado!

Pensando nisso e, como sempre, com aquela ânsia de disseminar meus conhecimentos, decidi a partir de hoje ir colocando passo-a-passo minhas descobertas e avanços com este kit. Meu intuito é ajudar aqueles que, assim como eu, estão partindo do zero.

Bom, então vamos lá.

O que é mais trivial do que apertarmos um botãozinho e um led acender?!!! Vamos aprender a fazer isso então?

A DEMOQE128 dispõe de 7 leds e 4 chavinhas que podemos habilitar ou não no hardware via alguns jumpers. Mas não vou ficar me atentando à parte física da minha placa. Quero focar no CodeWarrior para que assim, seja qual for o seu processador ou kit, você consiga reproduzir a programação descrita aqui.

O primeiro passo é iniciarmos um novo projeto. Para isso, ao abrirmos o CodeWarrior IDE aparecerá a seguinte tela. Caso você não consiga visualizar esta tela basta acessar o menu “File” e em seguida a opção “Startup Dialog…” e então ela aparecerá.:

clip_image002

Nela clique em “Create New Project”. A seguinte tela aparecerá:

clip_image004

Nela você deve escolher o processador que está utilizando. No meu caso tenho um MC9S08QE128. Escolho também o modo de comunicação. Como estou utilizando a interface USB do meu kit, escolho a opção “P&E Multilink / Cyclone Pro” e dou “Avançar”. A próxima tela será a seguinte:

clip_image006

Nela damos um nome ao nosso projeto (por pura falta de criatividade o chamei de ChaveLed.mcp) e através do botão “Set…” dizemos onde queremos que ele seja salvo. E mais uma vez, damos “Avançar”.

Na tela seguinte, o CodeWarrior nos dá a possibilidade de adicionarmos ao nosso projeto algum arquivo que queiramos com uma função já existente, por exemplo. Como não tenho nenhum arquivo à acrescentar, vou apenas dar “Avançar”.

clip_image008

A próxima tela é essa mostrada abaixo. Ela é bastante importante. Nela escolheremos a opção “Device Initialization” que é uma ferramenta do CodeWarrior que torna mais simples a inicialização do micro e seus periféricos. E desta vez, substituímos o avançar por “Concluir”.

clip_image010

O software criará todo o básico para o seu projeto. A seguinte tela deverá se abrir:

clip_image012

Vamos então ao botão “Select CPU Package” para definir o processador quanto ao seu encapsulamento. No meu caso é um MC9S08QE128CLH.

Bom, a chavinha que eu usarei no meu programa está ligada à porta PTA2 do processador. Então precisamos configurar o bit 2 da porta A como entrada. Apertando o botão “PTA” que está desenhado dentro do esquema do nosso processador como mostra a imagem acima, a seguinte tela de configuração da porta será apresentada:

clip_image014

Devemos apertar o botãozinho roxo que fica ao lado de “Entire I/O port” para que possamos configurar cada bit separadamente. A seguinte tela será mostrada:

clip_image016

Clique no “+” ao lado de “Pin2”. Abrirão algumas opções:

clip_image018

Habilite o bit 2 da porta clicando no botãozinho roxo que fica ao lado de “Disabled”. Verifique se em “Direction” está dizendo que este pino é de entrada (Input) e dê “Ok”. A tela de configurações deverá estar assim antes do Ok:

image

Agora vamos configurar o led. O que eu vou utilizar está ligado ao bit 0 da porta PTC. Então, da mesma maneira que já fizemos antes, clicamos no botão PTC do processador esquematizado na tela principal, e novamente clicaremos no botãozinho roxo que fica ao lado de “Entire I/O port” para que possamos configurar cada bit separadamente. Em seguida clicamos no “+” ao lado de “Pin0”. Habilite o pino clicando no botãozinho roxo que fica ao lado de “Disabled”. Em “Direction” mude Input para “Output” e em “Pull resistor” selecione a opção “Pull up” e dê “Ok”. A tela de configurações deverá estar assim antes do Ok:

image

Feito isso, as configurações já estão prontas. Basta agora gerarmos os códigos em C. Para isso, basta clicarmos no botão “Generate Code”.

A seguinte tela aparecerá. Então, clique em “Generate”.

image

Na tela seguinte basta clicar em “Ok”.

image

Bom, olhando o manual do processador, veremos que o “nome” do registrador referente a chavinha é PTAD_PTAD2 e o referente ao led é PTCD_PTCD0.

Na árvore que fica do lado esquerdo da tela principal, dentro da pasta “Sources” estará um arquivo chamado main.c. Você deve abrí-lo. É nele que você colocará o seu programa principal e definiremos uma variável para cada um dos registradores que citei no parágrafo anterior.

O código já existente em main.c é:

#include <hidef.h> /* for EnableInterrupts macro */

#include “derivative.h” /* include peripheral declarations */

#ifdef __cplusplus

extern “C”

#endif

void MCU_init(void); /* Device initialization function declaration */

void main(void)

{

MCU_init(); /* call Device Initialization */

/* include your code here */

for(;;)

{

/* __RESET_WATCHDOG(); by default, COP is disabled with device init. When enabling, also reset the watchdog. */

} /* loop forever */

/* please make sure that you never leave main */

}

Você deverá então acrescentar as linhas em vermelho:

#include <hidef.h> /* for EnableInterrupts macro */

#include “derivative.h” /* include peripheral declarations */

#define CHAVE PTAD_PTAD2 /* Chama de “CHAVE” o bit 2 da porta PTA*/

#define LED PTCD_PTCD0 /* Chama de “LED” o bit 0 da porta PTC*/

#ifdef __cplusplus

extern “C”

#endif

void MCU_init(void); /* Device initialization function declaration */

void main(void)

{

MCU_init(); /* call Device Initialization */

/* include your code here */

for(;;)

{

LED = CHAVE; /* Toda mudança na porta PTA2 será transferida para a porta PTC0*/

/* __RESET_WATCHDOG(); by default, COP is disabled with device init. When enabling, also reset the watchdog. */

} /* loop forever */

/* please make sure that you never leave main */

}

Pronto. Nosso programa está feito.

Para compilá-lo e carregá-lo no seu processador aperte a tecla “F5” do teclado. A seguinte tela aparecerá:

image

Com o kit devidamente ligado e conectado ao PC, clique em “Conect (Reset)”.

Na próxima tela clique em “Yes”. (Observe que clicando em “Yes” você estará autorizando o reset da memória do seu processador. Vai apagar tudo, hem… :))

image

Na tela que abrir, na barra de ferramentas na parte de cima da tela tem um botão com uma seta verde. É ele que coloca a CPU em RUN. Clique nele e pronto!!! É só sair apertando o seu botãozinho para o led acender!!! 😉

image

Bom, antes de encerrar gostaria de agradecer publicamente a três pessoas que me ajudaram e ainda têm me ajudado muito nessa minha jornada!!! São eles os professores Marcelo Barros, Henrique Del Bianco e Roberto Quini. Meninos, muito obrigada mesmo por todo apoio, paciência e tempo despendido em me ajudar. Sempre serei grata a vocês.

Bom pessoal, por hoje é só. Espero ter ajudado.

Abraços!!!

Kit de desenvolvimento Freescale: Demoqe128

Quando fui aceita na Unicamp para o mestrado, na primeira reunião com o meu orientador, ele me aconselhou a utilizar o kit da Freescale que tínhamos disponíveis em nosso laboratório.

Como 90% do desenvolvimento do meu projeto está sendo desenvolvido fora da universidade, surgiu a necessidade de eu adquirir um dos kits mencionados. Por uma questão de custo X benefício resolvi comprar a Demoqe128.

0000000000173739_2

Este kit vem com dois processadores: um de 8 bits (plaquinha verde) e outra de 32 bits (plaquinha vermelha).

Além disso já vem com alguns periféricos como 8 leds, 4 chaves, um potenciômetro e, entre outros, um dos mais interessantes: um acelerômetro triaxial.

Ela é programada pelo CodeWarrior. Sinceramente tenho apanhado um pouquinho pra aprender a trabalhar com este software. Mas aos poucos estou aprendendo. 🙂

Nos próximos posts estarei falando um pouquinho melhor deste kit e colocando alguns exemplos de programação.

Espero ajudar a todos que estão começando a programar os processadores da Freescale.

Quem quiser saber mais a respeito da plaquinha, pode acessar a página da Freescale clicando aqui.

Um abraço a todos e até os próximos posts.

Foco do meu mestrado: Mobilização Passiva Contínua

Estou sempre comentando aqui a respeito do meu mestrado, mas nunca deixei claro o que estou desenvolvendo. Então resolvi acabar com o mistério.

É de nosso conhecimento, já há algum tempo, que a imobilização de articulações, seja ela de origem temporária, provocada por uma fratura, por exemplo, ou permanente como conseqüência de lesão irreversível em algum ponto do sistema motor somático, dá origem a uma série de prejuízos às estruturas envolvidas nessa imobilização. Como prova disso, estudos apontam que músculos esqueléticos de membros imobilizados apresentam, entre outros efeitos, diminuição do tamanho das fibras musculares, alteração do comprimento do músculo em repouso, redução do tamanho e da quantidade das mitocôndrias presentes nos miócitos, diminuição do peso total do músculo e perda de força muscular. Já a cartilagem articular apresenta diminuição do tamanho e alteração funcional dos condrócitos (células responsáveis pela formação da cartilagem), aderência de tecido conjuntivo fibrogorduroso nas superfícies da cartilagem articular e necrose de pressão nos pontos de contato cartilagem-cartilagem. Em ligamentos evidenciou-se a diminuição da área transversal da fibrila ligamentar, reduzindo o tamanho e a densidade da fibrila, alteração do arranjo paralelo do colágeno, diminuição da capacidade de absorção de carga e de energia do complexo ósteoligamentar além da reabsorção óssea na junção ósteo-ligamentar. Todos esses efeitos fazem com que a recuperação do paciente se torne bastante penosa e demorada.

Obs.: Estudar toda essa parte de fisiologia, ortopedia e fisioterapia não é nada fácil para nós engenheiros!!! Mas nós conseguimos… é claro… 😉

Em 1970, o Dr. Robert Bruce Salter deu inicio a diversas pesquisas onde buscava descobrir se a movimentação passiva de membros lesionados amenizaria ou não os efeitos maléficos causados pela imobilização (coitados dos pacientes!!! Rsrs). Nascia, então, a idéia da técnica fisioterápica conhecida até hoje como Mobilização Passiva Contínua (MPC). Pesquisas realizadas pelo próprio Dr. Salter, assim como por outros profissionais da área, revelaram que, realmente, o uso precoce da mobilização passiva em pacientes com lesões articulares, extinguiu os efeitos deletérios na estabilidade do ligamento e apresentaram diminuição do edema e da efusão articulares, além da diminuição da atrofia muscular. Outra questão importante é que pacientes submetidos a MPC recuperaram sua mobilidade antecipadamente e sofreram bem menos dor se comparados àqueles pacientes não tratados com essa técnica (retiro meu comentário anterior… sorte dos pacientes… :)).

Outro passo importante para o avanço da MCP foi o desenvolvimento do primeiro equipamento de mobilidade passiva pelo Dr. Salter em parceria com o Engº John Saringer em 1978. Desde então, diversos outros equipamentos foram sendo criados e aperfeiçoados, atendendo, mesmo que com algumas restrições, lesões tanto em membros inferiores como em superiores, assim como, em maxilar e clavícula. No entanto poucos equipamentos disponíveis hoje apresentam grande flexibilidade de utilização, ou seja, eles não abrangem todos os graus de liberdade do membro a que são destinados, tornando possível um número restrito de movimentos durante a fisioterapia. E mesmo aqueles que atendem razoavelmente aos graus de liberdade, apresentam parametrização não trivial.

Existe então a necessidade do desenvolvimento de equipamentos de operação simples e intuitiva e que sejam flexíveis o bastante para atender a maior diversidade possível de lesões levando em conta a singularidade de cada paciente. E aí que eu entro!!!

Estou desenvolvendo um equipamento para a realização de MCP em membros inferiores.

Meu intuito é, principalmente, divulgar e reforçar esta técnica que ainda é tão pouco explorada no Brasil. As vezes paro e fico pensando em quantas pessoas com as mais diversas doenças (lesões ortopédicas, esclerose múltipla, lesões medulares e nervosas, etc.) este meu equipamento poderá ajudar. Espero que estes sonhos se concretizem. 😀

Bom, pessoal, é isso. Acabou o mistério. Rsrsrs.

Quem tiver interesse em conhecer o site do Dr. Salter falando sobre a MCP pode acessá-lo aqui.

Estou disponibilizando também abaixo a bibliografia que utilizei para consultar as pesquisas citadas no texto.

Abraços e até a próxima.

Bibliografia

Booth, F.W., and Kelso, J.R. (1973): Effect of hindlimb immobilization on contractile and histochemical properties of skeletal muscle. Pflugers Arch., 342:231-238.

MacDougall, J.D., Elder, G.C.B., and Sale, D.G. (1980): Effects of strength training and immobilization on human muscle fiber. Eur. J. Appl. Physiol., 43:25- 34.

Rifenberick, D.H., and Max, S.R. (1974): Substrate utilization by disused rat skeletal muscles. Am. J. Physiol., 226:295-297.

Appell, H.J. (1986): Morphology of immobilized skeletal muscle and the effects of a pre- and postimmobilization training program. Int. J. Sports Med., 7:6-12.

MacDougall, J.D., Ward, G.R., Sale, D.G., and Sutton, J.R. (1977): Biochemical adaptation of human skeletal muscle to heavy resistence training and immobilization. J. Appl. Physiol., 43:700-703.

Wester, B.M. (1982): Review of the repair of defects in articular cartilage: Part I. J. Orthop. Sports Phys. Ther., 3:186-192.

Videman, T. (1981): Changes of compression and distances between tibial and femoral candyles during immobilization of rabbit knee. Arch. Orthop. Trauma Surg., 98:289-294.

Noyes, F.R., Mangine, R.E., and Barber, S. (1974): Biomechanics of ligament failure. II. An analysis of immobilization, exercise, and reconditioning effects in primates. J. Bone Joint Surg. [Am.]., 56:1406-1418.

Salter, R.B. (1989): The biologic concept of continuous passive motion of synovial joints. Clin. Orthop., 242:12-15.

Salter, R.B., and Field, P. (1960): The effects of continuous compression on living articular cartilage. J. Bones Joint Surg. [Am.], 42:31-49.

Loitz, B.J., Zernicke, R.F., and Vailas, A.C. (1989): Effects of short-term immobilization versus continuous passive motion on the biomechanical and biochemical properties of the rabbit tendon. Clin. Orthop., 244:265-271.

McCarthy, M.R., Buxton, B.P., and Yates, C.K. (1993): Effects of continuous passive motion on anterior laxity following ACL reconstruction with autogenous patellar tendon grafts. J. Sports Rehab., 2:171-178.

Dehert, W.J., O’Driscoll, S.W., van Royen, B.J., and Salter, R.B. (1988): Effects of immobilization and continuous passive motion on postoperative muscle atrophy in mature rabbits. Can. J. Surg., 31:185-188.

Saringer, J., Bridging theory with practice: practical considerations in the design of CPM machines. Disponível em: <http://www.continuouspassivemotion.org&gt;. Acesso em: 17 out. 2008.