Cartrobot: robot de cartró amb materials reciclats

De Wikijoan
Dreceres ràpides: navegació, cerca

Contingut

Objectius

ecoRobotik, primer concurs de robots reciclats (www.ecorobotik.com), organitzat per la tenda Olokuti, del carrer Astúries de Gràcia.

El robot (el meu primer robot) estarà basat en paperduino. El cos del robot serà de cartró, i sobre el cartró, ben visible, hi haurà els components electrònics. Bàsicament és un paperduino, on s'haurà afegit un H-bridge per controlar dos motors i un xip (SpeakJet) per fer veu sintètica. Aquestes seran les característiques del cartrobot: moviment i veu. Com que en aquest disseny no hi haurà cap sensor el robot senzillament farà una dansa programada: girs a la dreta, girs a l'esquerra, voltes, canvi de direcció, canvi de velocitat. La segona característica és que el robot parlarà: dirà frases o lemes relacionats amb el reciclatge. A més, s'encendran uns LEDs per fer-ho més atractiu.

Es buscarà un disseny artístic: es pintarà i es guarnirà.

Cites:

Motor bridge: Quad Half H-Bridge SN754410

Amb el Asuro aprenc què és un motor bridge. La solució del Asuro és a pèl (veure els components), però normalment s'utilitza un xip que inclou la lògica per controlar dos motors: H-bridge.

A destacar la connexió dels dos motors (R i L). Els motors tenen una velocitat variable i canviar el sentit. Això jo també ho puc fer amb el motor que tinc dels xinos. El circuit per controlar aquest funcionament es diu un motor bridge, i consta d'uns transistors i uns diodes. Veure el esquema en el manual d'ASURO.

La llista de parts per fer el motor bridge és (pàg 17 del manual):

Ara bé, el motor bridge ja es pot trobar en forma d'integrat. Com es diu a

es necessita l'integrat L293D, o bé un altre que es troba a sparkfun: COM-00315

(This is a pin to pin compatible replacement for the L293D)

Description: Faster, cheaper, smaller, better, right? The SN754410 Quad Half H-Bridge
is just that. Capable of driving high voltage motors using TTL 5V logic levels, the
SN754410 can drive 4.5V up to 36V at 1A continuous output current! Please see
datasheet for more information. This is a pin to pin compatible replacement for the L293D.

Datasheet SN754410: Fitxer:SN754410.pdf

Ja tinc aquest xip que he aconseguit de Sparkfun, i ara vull fer les proves. Bàsicament tinc un motor DC, i he d'aconseguir fer un programet amb Arduino que varïi la velocitat i que canvïi el sentit de marxa. Utilitzaré la meitat dels pins. Amb dos motors i utilitzant els altres pins ja puc controlar un cotxe/robot i fer-lo girar.

He fet dues proves: motor_bridge i motor_bridge2 (Arduino Mega).

motor_bridge:

  const int motor1Pin = 2; //3;    // H-bridge leg 1 (pin 2, 1A)
  const int motor2Pin = 3; //4;    // H-bridge leg 2 (pin 7, 2A)
  int pwmpinA = 5; // motor A connected to analog pin 1

  void setup() {
    pinMode(motor1Pin, OUTPUT); 
    pinMode(motor2Pin, OUTPUT); 
    
      digitalWrite(motor1Pin, HIGH);   // set leg 1 of the H-bridge low
      digitalWrite(motor2Pin, LOW);
      analogWrite(pwmpinA, 150);
      delay(50);
      analogWrite(pwmpinA, 30);      
  }

  void loop() {

  }

Consideracions a tenir en compte:

In most of your application when a rotary movement is necessary you will need force
(torque) over speed. In this case, use a gearbox motor instead of a regular DC motor.
The gearbox attached to a motors output shaft amplifies its torque and slows down its
speed. If you are using a regular DC motor and adjust its speed with the Arduino’s PWM
output you will slow down its speed AND reduce its torque!

Efectivament, amb la tècnica PWM redueixo molt el par-motor.

You can also consider hacking a servo motor for an inexpensive continuously rotating gear motor (see: http://www.seattlerobotics.org/guide/servohack.html) rather than purchasing a regular gearbox motor. In most cases this technique will save you half the cost.

Speakjet

The SpeakJet is a completely self-contained, single-chip voice 
and complex sound synthesizer. It uses a mathematical sound 
algorithm to control an internal five channel sound synthesizer 
to generate on-the-fly, unlimited vocabulary speech synthesis 
and complex sounds.

A la carpeta projectes/ELECT_31 tinc la guia d'usuari del xip i el diccionari d'al.lòfons.

Recursos:

El primer que s'ha de fer és assegurar-se de què el xip funciona, posant el speakjet en mode test. Com que no disposo d'un altaveu de 120 ohm i encara no tinc ben configurat l'amplificador d'audio, el millor és utilitzar uns cascos d'audio.

Demohookup.jpg

LM386: amplificador d'audio

en el pdf hi ha dues configuracions bàsiques: guany 20 i guany 200 (utilitzant els pins 1 i 8). La que jo utilitzaré, agafada de la web (http://letsmakerobots.com/node/11969) té els valors una mica diferents. En la web veiem que hi ha un circuit RC format per resistències de 27K i condensadors de 0.01uF+10uF: això és un filtre passa-baix, no té res a veure amb el circuit d'amplificació.

Nota!. He seguit l'esquema de http://letsmakerobots.com/node/11969, i està malament doncs hi ha condensadors electrolítics amb la polaritat canviada. Seguir l'esquema del datasheet, o bé segurament l'esquema de:

En el datasheet, la resistència que posa 10 en el pin 5 és realment 10 ohm, no 10K

D'altra banda, el filtre passa-baix que proposa el primer enllaç, serà realment necessari. Mirar les diferències.

Una altra cosa a considerar és l'alimentació. El speakjet ha d'estar alimentat a 2-5.5V, però el LM386 millor alimentat a 9V. Com que jo utilitzo un arduino alimentat amb una pila de 9V, he de saber utilitzar segons m'interessa els pins de 5V o de 9V (alimentació externa).

Amplificador-LM386.gif

quant al filtre RC llegeixo a http://letsmakerobots.com/node/5030 (algú també diu que el potenciòmetre no fa cap efecte...)

I just rebuilt my circuit with the two resistors and three caps between Pin19 of the SpeakJet and the Amp. It's made a huge difference to the volume - much louder - and the trim pot now seems to have a small, but noticable effect.

ISD1932: voice recorder breakout

El datasheet està a projectes/ELECT_31

The ISD1900 is a multiple messages record/playback device with two operational modes: Address Mode and Direct Mode.

Amb una resistència externa, Rosc, es selecciona la freqüència de mostreig i la selecció:

es tracta de llegir bé les instruccions del xip ISD1900, i d'associar els pins del xip amb els pins del breakout de Sparkfun.

Jo treballaré en mode address que em permet direccionar els missatges des d'un començament (pins S0-S3) fins a un final (E0-E3). D'aquesta manera els missatges poden tenir durades diferents. La durada també dependrà de Rosc, que defineix la freqüència de mostreig i per tant el número de segons que al final tindré disponibles. Jo treballaré amb Rosc=130 Kohm.

Treballant amb una Rosc de 130K treballo a una freqüència de mostreig de 5,3KHz i disposo de 48 segons de grabació (ISD1932).

Efectes de so robòtic: vocoder, LP robotize

Efecte LADSPA vocoder: sonar com un robot

El que necessito jo és el vocoder. Ara bé, no liar-se amb el link. El link explica com aplicar l'efecte de vocoder amb JACK a temps real. Jo ho faré amb el audacity, que processa el meu senyal d'audio i triga uns segons a processar-lo. Està a Efecto > Complementos > cercar Vocoder. Els valors que em dóna per defecte és un efecte massa extrem (20, 40, 100, 0, 0, 30). Ho faré amb els valors (40, 40, 100, 0, 0, 30). Després, de forma intuïtiva, aplico un Nivelado i una Compresión.

Ara bé, no m'acaba de convèncer. Molt millor és un plugin LADSPA que he aconseguit (això sí que és un soroll de robot):

Em descarrego el PitchTech LADSPA and VST Plugins de

Llegir el fitxer Linux Installation. Amb el Audacity és molt senzill. Copiar tots els arxius de la carpeta Linux a /usr/lib/ladspa, que és el meu directori de LADSPA. Aleshores en el Audacity ja estan disponibles aquests efectes. Concretament, el que m'interessa es diu Efectos > Complementos > PT Robotize. Puc posar 5 valors. El valor que més m'agrada és el 5. Crec que els valors no són més o menys efecte, sinó que són com efectes diferents. L'efecte 4 també m'agrada.

Després d'aplicar l'efecte, faig una Compressió per tal de normalitzar els valors i guanyar volum.

A més, puc afegir efectes de so de robot. Els sorolls de robot els puc descarregar de:

Els efectes sonors que he seleccionat són:

Construcció cartrobot

Arriba el moment de la construcció. Per a fer sonar el cartrobot descarto el Speakjet (que només he aconseguit fer el demo-test) i em decanto pel ISD1932: gravaré els meus missatges a dins del xip.

En el paperduino, basat en el ATMEL168, disposo de 14 pins digitals. He d'implementar el H-bridge, el ISD1932 i dos LEDs. Vaig just de pins digitals, i els hauré de reutilitzar. Això serà possible perquè mentre el robot balli no parlarà, i quan el robot parli estarà quiet.

La configuració dels pins quedarà de la següent manera:

H-Bridge:

ISD i LEDs:

Si necessités aprofitar més pins, el 9 i el 10 van negats, o sigui que utilitzant una porta AND només gastaria un pin. El mateix per al 12 i 13. Ho sigui, que podria estalviar dos pins de l'arduino per connectar els pins 2,7,10 i 15 del H-bridge.

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
IES Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines