Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Cabeça humana para cabeça do robô

Componentes e suprimentos

Arduino UNO
× 1
servo motor
× 3
Dispositivo Android
× 1
Placa de fonte de alimentação regulada
× 1

Ferramentas e máquinas necessárias

Ferro de soldar (genérico)

Aplicativos e serviços online

SensoDuino

Sobre este projeto


Planeje fazer algo novo, mas não tão caro. Gosto muito de robótica. Mas devido à exigência de servos e outras peças eu não gosto de fazer isso. Agora eu tenho 4 servo motores custam apenas 13 $. Já tenho uma placa Link it e uma placa Arduino.

Portanto, planeje fazer uma cabeça de robô que se mova como a nossa cabeça em todos os eixos, mas de forma barata. Estude para diferentes sensores e métodos, mas finalmente encontre um jeito com todos os itens em minhas mãos. Muitas coisas eu estudo durante este projeto. Vamos lá eu explico o que estudo. Menciono o que aprendi em negrito.

Use o sensor Smart Mobile Tilt para controlar a cabeça





Etapa 1:materiais necessários


Materiais que usei

1) Arduino uno.

2) Linkit uma placa.

3) 3 servo motores.

4) Aplicativo para Android gratuito SensoDuino Baixe aqui.

5) Placa de alimentação regulada (12 V, 5 V, 3,3 V).

6) PCB simples.

7) Conectores PCB Macho

8) Peça de corte de alimentação de alumínio residual.

9) Pistola de cola quente.

10) Adaptador de 12V e 5V.

11) Mais alguns itens para decorar.

Por que Linkit one board e Arduino uno

Se você tiver Linkit uma placa e servo motor de 3 V, não há necessidade de Arduino UNO porque meu servo de 5 V não funciona bem em Linkit one board.

Se você tiver o Arduino uno e o módulo dente azul, não há necessidade de Linkit one board.

Não tenho protetor de dente azul, então uso o Linkit one board e o Arduino uno.





Etapa 2:possuir escudo servo


1) Faça uma blindagem do servo motor para o Arduino. (Cuidado se você usar servos 3v Linkit, se tiver apenas 2 pinos PWM)

2) Eu faço uma blindagem como PCB para servo motor.

3) Usando esta placa podemos controlar 6 Servo motores do arduino pind (3,5,6,9,10,11).

4) Servos de 3 fios são usados ​​aqui. onde a fonte de alimentação é fornecida a partir da placa de fonte de alimentação do regulador externo de 5 V.

5) Enquanto o servo de controle usa a fonte do adaptador para a placa Arduino. Porque a fonte de alimentação USB do PC causa vibração. Isso causa superaquecimento no servo motor e danifica o Servo motor . (um dos meus danos servo)





Etapa 3:Faça o Linkit uma conexão


1) Linkit quer falar com o arduino para controlar os servos.

2) Para isso conecte o Tx da placa Linkit one ao Rx da placa Arduino e ambos Gnd.

3) sempre que os dados recebidos são enviados para o Arduino.

Observação:-

Se vc tiver o escudo bluetooth Arduino, vc controlar toda a configuração usando uma placa.





Etapa 4:posição do servo


1) Defina todos os servo motores para 90 graus. Para isso, faça upload do programa acima para o arduino ..

2) Conecte a alimentação do servo e do arduino à placa de alimentação do regulador nos pinos de 5 V e 12 V.

3) Conecte o conector servo fêmea ao conector macho se a placa de circuito impresso for feita nos pinos digitais 3,5,6 do Arduino.

3) Conecte o adaptador de 12 V à placa de alimentação do regulador.

4) Ligue o adaptador.

5) Agora todos os motores giram 90 graus conforme o programa.

Agora desconecte os motores para uni-los sem perturbar o rotor.

O código IDE do Arduino de posição é fornecido como Servoposition.ino







Etapa 5:planejar


1) Rotação da cabeça em 3 eixos x, y, z.

2) As rotações são

a) Yaw - Veja à esquerda e à direita.

b) Pitch -Veja para cima e para baixo

c) Roll-Shake lateralmente.

3) Primeiro use uma fita dupla-face para planejar os Servos.

4) Corte a peça divisória de alumínio em forma de L para fixar o servo superior ao segundo.

5) Conecte a buzina do servo motor de acordo com o seu plano ou conforme mostrado na imagem

6) Todo o centro dos servos deve estar reto quando em 90 graus.

7) cole todos os servos e a peça L de alumínio usando fita dupla-face e verifique se o movimento não atrapalha outros servos.





Etapa 6:construção


1) Agora é hora de consertá-lo permanentemente.

2) Remova o adesivo de lado duplo um por um e fixe-o permanentemente com a pistola de cola quente.

3) Tenha cuidado para não danificar os servos.

4) Conecte novamente o conector do servo à placa arduino e ligue a alimentação

5) conformar todos ficarem em linha reta como a última imagem.





Etapa 7:detalhes do aplicativo Android


1) Abra o SensoDuino em seu telefone Android. Possui opções de visualização de toda a leitura do sensor móvel e possibilidade de envio através do dente azul.

2) Todos os sensores mais recentes são listados e só podemos selecionar quais sensores estão disponíveis em nosso telefone.

3) Vá ao menu e selecione conectar Bluetooth.

4) A lista mostra os dispositivos dentais azuis disponíveis.

5) Selecione o linkit one bluetooth.

6) Para o nosso projeto usamos sensor de orientação. Marque a primeira caixa para ativar e a segunda caixa para enviar dados via dente azul.

7) Também definimos o desempenho de cada sensor selecionando a opção de desempenho no menu. Altere o intervalo de tempo para cada leitura.





Etapa 8:codificação


1) Duas codificações estão aqui uma para o Linkit um.

Usando o dente azul, ele obtém dados do celular e os envia para o Arduino usando a porta serial

2) Programa Arduino

Quando os dados são recebidos na porta serial, ele concatena os caracteres como string. E usando indexof e substring, divida um resultado de conjunto completo. Nesse conjunto, use novamente o indexof e a substring para obter cada posição. A partir disso, use o mapa no arduino para controlar o servo de 0 a 180 graus. Se você usar a proteção Bluetooth, altere o programa de acordo com os requisitos.

Como funciona o programa

1) Usando o sensor de orientação, o robô gira a cabeça como nós.

a) Yaw é a rotação de 0 a 360 graus conforme a posição magnética. Para isso usamos 90 a 270 graus, onde 180 é 90 graus para servo. Por isso, queremos olhar 180 graus como um fio quando usar o boné.

b) O pitch é frontal para cima e para baixo. A leitura do sensor é -180 a + 180. Usamos -90 a +90.

c) Rolar é agitado lado a lado é 0 a 90 a 0 a -90 a 0. usamos -90 a 90.




O código Linkit one é fornecido em Linkitonehead.ino

O código do Arduino é fornecido em Arduinohead.ino




Etapa 9:peça as placas

1) conecte as duas placas de blindagem à parte superior de ambos os microcontroladores.

2) Cole tudo com adesivo de dupla face um sobre o outro.

3) Cuidado para não atirar em nenhum terminal.





Etapa 10:trilha com a mão


Agora ligue todo o suprimento e use o celular na mão. Sente-se de frente para a guinada de 180 graus e use o móvel para controlar todos os três servo motores.





Etapa 11:consertar um rosto


1) É hora de Natal, então encontrei muitos bonecos de Papai Noel na loja.

2) Compre uma boneca e fixe a cabeça com um toque duplo no braço servo superior.





Etapa 12:Prepare um chapéu de controle


1) Pegue um chapéu normal.

2) Cole o adesivo de lado duplo na frente da tampa conforme mostrado na figura.

3) Cole seu celular sobre a fita dupla-face.





Etapa 13:Teste de vídeo


Testando baixo desempenho significa taxa de atualização do sensor a cada 250 milissegundos.





Etapa 14:Vídeo final


Veja a ação na taxa de leitura do sensor de uma leitura por 100 milissegundos

Código

  • Servoposition.ino
  • Linkitonehead.ino
  • Arduinohead.ino
Servoposition.ino Arduino
 #include  Servo leftright; Atualização do servo; Agitação do servo; configuração vazia () {Serial.begin (9600); leftright.attach (3); updown.attach (5); agitar.anexar (6); leftright.write (90); updown.write (90); shake.write (90); } void loop () {} 
Linkitonehead.ino Arduino
 #include  #include  int readval; String inputString =""; String outputString =""; int firstpoint =0; int secondpoint =0; void setup () {if (! LBTServer.begin ((uint8_t *) "Sivam_LIO")) {return; } // Serial.begin (9600); Serial1.begin (9600); } void loop () {uint8_t buf [64]; int bytesRead; if (LBTServer.connected ()) {while (true) {bytesRead =LBTServer.readBytes (buf, 32); if (! bytesRead) break; inputString =""; para (int j =0; j <32; j ++) {char inChar =char (buf [j]); // adicione-o ao inputString:inputString + =inChar; } // Serial.println (inputString); Serial1.println (inputString); // firstpoint =inputString.indexOf ('>'); // Serial.println (inputString); // Serial.println (firstpoint); // if (firstpoint> 0) // {/ / secondpoint =inputString.indexOf ('>', firstpoint + 1); // if (secondpoint> 0) // {// outputString =inputString.substring (firstpoint, secondpoint); // inputString =inputString.substring (secondpoint); // Serial.println (outputString); //} //}} delay (100); } else {LBTServer.accept (5); }} 
Arduinohead.ino Arduino
 #include  Servo leftright; Servo updown; Servo shake; String inputString =""; boolean stringComplete =false; String teststr2; String sensorid; String sensorrecid; String sensorval1; String sensorval2; String sensorval3; int S1; int S2; int S3; int startchr =0; int endchr =0; int rot1; int rot2; int rot3; void setup () {Serial.begin (9600); // inputString.reserve (200); leftright.attach (3); updown.attach (5); shake.attach (6);} void loop () {} void serialEvent () {while (Serial.available ()) {char inChar =(char) Serial.read (); if (inChar! ='\ n') {inputString + =inChar; }} startchr =inputString.indexOf ('>'); if (startchr> =0) {endchr =inputString.indexOf ('>', startchr + 1); if (endchr> 0) {teststr2 =inputString.substring (startchr, endchr); inputString =inputString.substring (endchr); startchr =teststr2.indexOf (','); sensorid =teststr2.substring (1, startchr); endchr =teststr2.indexOf (',', startchr + 1); sensorrecid =teststr2.substring (startchr + 1, endchr); startchr =endchr; endchr =teststr2.indexOf (',', startchr + 1); sensorval1 =teststr2.substring (startchr + 1, endchr); startchr =endchr; endchr =teststr2.indexOf (',', startchr + 1); sensorval2 =teststr2.substring (startchr + 1, endchr); startchr =endchr; sensorval3 =teststr2.substring (startchr + 1); S1 =sensorval1.toInt (); S2 =sensorval2.toInt (); S3 =sensorval3.toInt (); rot1 =mapa (S1, 90, 270, 180, 0); if (rot1 <0) rot1 =0; else if (rot1> 180) rot1 =180; rot2 =mapa (S2, -90, 90, 0, 180); if (rot2 <0) rot2 =0; else if (rot2> 180) rot2 =180; rot3 =mapa (S3, 90, -90, 0, 180); if (rot3 <0) rot3 =0; else if (rot3> 180) rot3 =180; if (rot1! =0 &rot1! =180) {leftright.write (rot1); } if (rot1! =0 &rot1! =180) {updown.write (rot2); } if (rot1! =0 &rot1! =180) {shake.write (rot3); } atraso (15); // Serial.print ("Sensor -"); // Serial.println (sensorid); // Serial.print ("Sensor Val1 -"); // Serial.println (rot1); // Serial.print (" Sensor Val2 - "); // Serial.println (rot2); // Serial.print ("Sensor Val3 -"); // Serial.println (rot3); }}} 

Processo de manufatura

  1. Robô da caixa de CD do Raspberry Pi
  2. Robô de alarme rotativo
  3. Placa RaspiRobot V2
  4. Crie um Minecraft Creeper Robot
  5. Arquimedes:A coruja robô AI
  6. Abra o Robô CV
  7. Robô ROS
  8. SONBI ROBOT DETECÇÃO HUMANA USANDO KINECT E RASPBERRY PI
  9. Robô Pi Simples
  10. Capital Humano