collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Braço robotico  (Lida 7965 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline Pressure1

  • Mini Robot
  • *
  • Mensagens: 8
Braço robotico
« em: 02 de Julho de 2012, 23:36 »
Boa noite, vim aqui pedir ajudar pois estou um pouco enrascado com um projecto final de curso, um braço robotico, o qual tem 2 tipos de movimentos, manual através de potenciómetros (o qual já consegui efectuar, sem ser os tremeliques que da de vez em quando aos servos) e também o modo automático... que não consigo fazer um ciclo automático (pouco andei de volta disto), outro meu problema e mesmo a mudança entre os 2 ciclos com um botão de 2 posições, eu sei que devia fazer rotinas, se fosse BASIC seria mais fácil a parte das sub-routinas, mas tenho um arduino, que foi fornecido pela escola um arduino uno. se alguém me poder ajudar... vou deixar em baixo o meu material do braço, esqueci-me de referir que o braço tem 4 eixos mais a garra

material:
5 potenciómetros lineares de 100k
2 motores hitec hs-422 deluxe
3 motores hitec hs-311 standart ( queimei 2 com um pequeno erro do meu devido ao meu estendal de fios. estou a procura de 2 urgentemente( já mandei mensagem ao njay visto que ele tem uma mini loja)

se poderem ajudar agradecia

cumprimentos
pressure1

Offline c3dr1c

  • Mini Robot
  • *
  • Mensagens: 854
Re: Braço robotico
« Responder #1 em: 02 de Julho de 2012, 23:54 »
O modo auto utilizas cinemática directa e inversa, para calcular as rotações/translacções das juntas e/ou a posição final do braço robotico?
"O único modo de descobrir os limites do possivel é aventurarmo-nos um pouco para além deles em direcção ao impossivel."

Uma das Três Leis de Arthur C. Clarke

Offline Pressure1

  • Mini Robot
  • *
  • Mensagens: 8
Re: Braço robotico
« Responder #2 em: 03 de Julho de 2012, 00:03 »
bem se queres seja sinsero eu tou um bucado distante do arduino ainda, ta aqui o meu programa automatico, foi o que eu e o meu grupo fizemos, isto e de grau a grau...

Código: [Seleccione]
#include <Servo.h>
 
Servo myservo;  // create servo object to control a servo
Servo myservo2;  // a maximum of eight servo objects can be created
Servo myservo3;
Servo myservo4;
Servo myservo5;

//int pos = 30;    // variable to store the servo position

void setup()
{
  myservo.attach(2); //1ªrotaçã
  myservo2.attach(7); //2ª rotação
  myservo3.attach(8);//rotação garra
  myservo4.attach(9);//garra
  myservo5.attach(3); //base
}

void loop() {
 
  myservo5.write(100);
  myservo.write(100);
  myservo2.write(100);
  myservo3.write(100);
}
void loop() ;
{
  for(pos = 100; pos += 1)  // goes from 0 degrees to 180 degrees
  {                                  // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(70);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 140; pos+=1)     // goes from 180 degrees to 0 degrees
  {                               
    myservo5.write(pos);              // tell servo to go to position in variable 'pos'
    delay(70);                       // waits 15ms for the servo to reach the position
  }
 for(pos = 0; pos += 1)  // goes from 0 degrees to 180 degrees
  {                                  // in steps of 1 degree
    myservo2.write(pos);              // tell servo to go to position in variable 'pos'
    delay(70);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 90; pos+=1)     // goes from 180 degrees to 0 degrees
  {                               
    myservo3.write(pos);              // tell servo to go to position in variable 'pos'
    delay(70);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 180; pos += 1)  // goes from 0 degrees to 180 degrees
  {                                  // in steps of 1 degree
    myservo4.write(pos);              // tell servo to go to position in variable 'pos'
    delay(70);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 110; pos+=1)     // goes from 180 degrees to 0 degrees
  {                               
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(70);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 40; pos += 1)  // goes from 0 degrees to 180 degrees
  {                                  // in steps of 1 degree
    myservo5.write(pos);              // tell servo to go to position in variable 'pos'
    delay(70);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 60; pos+=1)     // goes from 180 degrees to 0 degrees
  {                               
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(70);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 60; pos += 1)  // goes from 0 degrees to 180 degrees
  {                                  // in steps of 1 degree
    myservo4.write(pos);              // tell servo to go to position in variable 'pos'
    delay(70);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 120; pos+=1)     // goes from 180 degrees to 0 degrees
  {                               
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(70);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 9; pos += 1)  // goes from 0 degrees to 180 degrees
  {                                  // in steps of 1 degree
    myservo5.write(pos);              // tell servo to go to position in variable 'pos'
    delay(70);                       // waits 15ms for the servo to reach the position
}

tou um bucado atrapalhado e precisava de ajuda :X

Offline c3dr1c

  • Mini Robot
  • *
  • Mensagens: 854
Re: Braço robotico
« Responder #3 em: 03 de Julho de 2012, 00:34 »
Esquece eu tava a pensar noutra coisa. Eu tb nao percebo nada de arduino :P
"O único modo de descobrir os limites do possivel é aventurarmo-nos um pouco para além deles em direcção ao impossivel."

Uma das Três Leis de Arthur C. Clarke

Offline Pressure1

  • Mini Robot
  • *
  • Mensagens: 8
Re: Braço robotico
« Responder #4 em: 03 de Julho de 2012, 16:21 »
niguem tem como me ajudar :X

Offline Marvin

  • Mini Robot
  • *
  • Mensagens: 677
    • The scientist and the geek
Re: Braço robotico
« Responder #5 em: 03 de Julho de 2012, 16:34 »
Assim lido na diagonal.

Este codigo é o q funciona ou o que não funciona?

O que queres fazer mesmo?

E os teus ciclos FOR estão esquisitos, deveria de ser algo do genero:

for(i = 0; i < 100; i++)
{
     faz qq coisa
}

Mas posso n ter percebido bem.
Dronetech BlogThe Scientist and the Geek

Offline Pressure1

  • Mini Robot
  • *
  • Mensagens: 8
Re: Braço robotico
« Responder #6 em: 03 de Julho de 2012, 16:59 »
eu tenho um braço robotico, o qual tenho de fazer o modo manual e automatico esse codigo foi um teste de moviemnto grau a grau so que eu n consigo meter isso a trabalhar como deve ser, gostaria de saber fazer subrotinas e a chamalas para usar um botao de 2 posiçoes que e para alternar entre o manual e o automatico...

Offline Marvin

  • Mini Robot
  • *
  • Mensagens: 677
    • The scientist and the geek
Re: Braço robotico
« Responder #7 em: 03 de Julho de 2012, 17:03 »
eu tenho um braço robotico, o qual tenho de fazer o modo manual e automatico esse codigo foi um teste de moviemnto grau a grau so que eu n consigo meter isso a trabalhar como deve ser, gostaria de saber fazer subrotinas e a chamalas para usar um botao de 2 posiçoes que e para alternar entre o manual e o automatico...

No IDE da arduino tens um sketch com um "sweep" dos servos que faz o que estas a tentar fazer ali.

Esses ciclos for não funcionam porque me parece que estão mal feitos.

Tenta executar os exemplos e depois diz o erro que dá.
Dronetech BlogThe Scientist and the Geek

Offline Pressure1

  • Mini Robot
  • *
  • Mensagens: 8
Re: Braço robotico
« Responder #8 em: 03 de Julho de 2012, 17:14 »
pois capaz de tarem mal tirei isso da net, agora tenho um problema como alternar entre o modo manual e automatico, com um switch? pensei em sub routinas mas n sei como fazer :X alguma ideia?

Offline Marvin

  • Mini Robot
  • *
  • Mensagens: 677
    • The scientist and the geek
Re: Braço robotico
« Responder #9 em: 03 de Julho de 2012, 17:20 »
pois capaz de tarem mal tirei isso da net, agora tenho um problema como alternar entre o modo manual e automatico, com um switch? pensei em sub routinas mas n sei como fazer :X alguma ideia?

A primeira ideia que me vem logo a cabeça é fazeres uns tutoriais de Arduino e aprenderes a fazer as "subrotinas" ou funções. Interessante tambem saberes trabalhar com interruptos ou pelo menos com inputs digitais. Portanto leres umas coisas acerca disso tambem é interessante.

Ninguem te pode fazer o codigo que queres e dificilmente iras encontrar o que quer que seja na internet sem sequer saberes o que estás a procura.

http://arduino.cc/en/Tutorial/HomePage

Força.
Dronetech BlogThe Scientist and the Geek

Offline Pressure1

  • Mini Robot
  • *
  • Mensagens: 8
Re: Braço robotico
« Responder #10 em: 03 de Julho de 2012, 17:31 »
so mais uma cena como e se chama as subroutinas no arudino e funçoes? e se poderes dizer como chamas as routinas se n souberes explicar e na boa.

Offline Marvin

  • Mini Robot
  • *
  • Mensagens: 677
    • The scientist and the geek
Re: Braço robotico
« Responder #11 em: 03 de Julho de 2012, 18:06 »
so mais uma cena como e se chama as subroutinas no arudino e funçoes? e se poderes dizer como chamas as routinas se n souberes explicar e na boa.

O arduino utiliza uma linguagem chamada de processing que por sua vez vem do C que é uma linguagem construida com o principio Imperativo ou seja é compilada hierarquicamente de cima para baixo, portanto as funções tem de ser declaradas num header ou antes das mesmas serem chamadas no codigo.

Uma linguagem de programação é um conjunto de instruções que permitem o ser humano atraves de uma linguagem "natural" enviar comandos para que o processador os possa compreender ou seja traduzindo-os para linguagem de maquina ou seja codigo binario (0 e 1) ou principio Boleano.

Para que não fosse preciso escrever sempre as mesmas funções as linguagens de programação permitem, desde muito cedo e mesmo antes de serem orientadas a objectos, criar blocos de codigos chamados de funções e procedimentos sendo as funções um bloco de codigo que retorna um valor e um procedimento um bloco de codigo que não necessita realmente de retornar um valor.

Essas funções e procedimentos podem por sua vez ser reutilizadas o que nos leva ao aparecimento das liguagens por objectos as quais com a ajuda do polimorfismo e a hereditariedade agrupam o codigo em classes e se transformaram em ferramentas potentes e nos trazem aos dias de hoje onde qualquer pessoa, por menos conhecimentos que tenha as vezes, pode tal como tu programar um braço robotico.

Agora explica-me tu se souberes, como é que chegas ao final de um curso a tentar fazer um braço robotico sem sequer saber o que é uma função?








Dronetech BlogThe Scientist and the Geek

Offline Pressure1

  • Mini Robot
  • *
  • Mensagens: 8
Re: Braço robotico
« Responder #12 em: 03 de Julho de 2012, 18:21 »
e simples eu n tive programação em c, apenas basic e disseram-me que era facil programar em c e era melhor e mais facil para os motores e segui para isto.

Offline tcarita

  • Mini Robot
  • *
  • Mensagens: 6
Re: Braço robotico
« Responder #13 em: 03 de Julho de 2012, 18:23 »
Presure1

O melhor que tens a fazer é como o Marvin te disse, fazeres uma dúzia de tutoriais de Arduino dos iniciais e quando estiveres dentro do processing procurares talvez um ou outro tutorial que envolva um ou mais servos, vais de certeza (progressivamente) perceber o que fazer para o teu projeto.

Só dessa maneira vais perceber o que estás a fazer, aparentemente estás aqui à procura de uma Receita de Arduino para o teu braço robótico... e isso é pouco provável que alguém tenha essa receita ou uma solução tirada da cartola.

Estou a dizer-te isto porque já tive umas (mais do que uma) respostas do Marvin iguais à tua e ele tem razão quando manda um gajo de volta com "Vai aprender o básico, bate com a cabeça, aprende e depois pergunta coisas especificas com o teu código para eu te puder ajudar..."

Não te assustes a malta aqui ajuda bastante mas tem de ser algo objetivo e tens de demonstrar interesse e que não seja só para teres um 18 no projeto sem perceberes de facto o que fizeste..

Um abraço, boa sorte e boa aprendizagem...
Tiago carita
www.dronetech.eu
www.bluesharkstudio.com
PS este Post foi escrito ao abrigo do acordo ortográfico... acho eu...
« Última modificação: 03 de Julho de 2012, 18:25 por tcarita »

Offline Pressure1

  • Mini Robot
  • *
  • Mensagens: 8
Re: Braço robotico
« Responder #14 em: 03 de Julho de 2012, 19:11 »
obg pelas ajudas msm, eu sinseramente tava mesmo procura de um programa que pode-se adaptar ao meu braço mas encontrei maneira de resolver o problema , assim que tiver tudo pronto, posto aqui o programa e um pequeno video do braço, vamos ver