Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
et:projects:tudengid11:patareidesorteerija [2011/04/08 06:37] kusta001et:projects:tudengid11:patareidesorteerija [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 11: Line 11:
  
 ==== Nõuded ==== ==== Nõuded ====
 +
   * Patarei testimisel polaarsus ei loe   * Patarei testimisel polaarsus ei loe
   * Patarei olukord kuvatakse ekraanile (Voltides)   * Patarei olukord kuvatakse ekraanile (Voltides)
   * Sorteerijasse võib sisestada AA ja AAA patareisid, mitte rohkem, kui 10 korraga   * Sorteerijasse võib sisestada AA ja AAA patareisid, mitte rohkem, kui 10 korraga
   * Soovi korral tagastatakse kasutuskõlblikud patareid   * Soovi korral tagastatakse kasutuskõlblikud patareid
 +
 +==== 3D mudel ====
 +
 +{{:et:projects:tudengid11:ddd.png?600|}}
  
 ==== Üldine mudel ==== ==== Üldine mudel ====
-{{:et:projects:tudengid11:robot_blokk_diagramm_1_.png?600|}}+{{:et:projects:tudengid11:robot_blokk_diagramm_2_.png?600|}}
  
 ==== Lahendus ==== ==== Lahendus ====
Line 26: Line 31:
 ==== Mehhaanika ==== ==== Mehhaanika ====
 Kogu agregaat kinnitub silindri kujuga konteinerile, kuhu langevad kasutuskõlbmatud patareid. Süsteemi kõik komponendid- mootorid, koos kinnitustega, elektroonika komponendid, on kinnitatud kahele alumiiniumist talale. Ajameid on kokku viis- 4 servomootorit ja 1 DC-mootor. Nemad kallutavad, keerutavad ja liigutavad erinevate hoobade abil mehhanisme.  Kogu agregaat kinnitub silindri kujuga konteinerile, kuhu langevad kasutuskõlbmatud patareid. Süsteemi kõik komponendid- mootorid, koos kinnitustega, elektroonika komponendid, on kinnitatud kahele alumiiniumist talale. Ajameid on kokku viis- 4 servomootorit ja 1 DC-mootor. Nemad kallutavad, keerutavad ja liigutavad erinevate hoobade abil mehhanisme. 
 +
 +==== Juhtimine ====
 +
 +Tähiste tähendused:
 +
 +^ Tähis^ Tähendus ^ 0 ^1^-1^Funktsioon^
 +|S1|Surunupp |Avatud|Suletud | |Töö alustamine|
 +|S2|Surunupp |Avatud|Suletud | |Patareide tagastamine|
 +|M1|Dc  mootor |Seisab|Töörežiim| |Kausi pöörlemine|
 +|M2|I   Servomootor |Seisab|Töörežiim| |Ükshaaval laadimine|
 +|M3|II  Servomootor |Seisab|Töörežiim| |Klemmi ühendamine|
 +|M4|III Servomootor |Seisab|Päripäeva |Vastupäeva |Esialgne kallutamine|
 +|M5|IV  Servomootor |Seisab|Päripäeva |Vastupäeva |Puhvri kallutamine|
 +|A1|Infrap. andur |Signaal puudub|Signaal olemas| |Patarei olemasolu|
 +|A2|Pingeandur|Signaal puudub|Signaal olemas| |Patarei seisund|
 +
 +Olekudiagramm:
 +
 +{{:et:projects:tudengid11:algoruetmika.png?600|}}
 +
  
 ==== Elektroonika ==== ==== Elektroonika ====
Line 46: Line 71:
 ===== Lähtekood ===== ===== Lähtekood =====
  
-Voltmeetri lähtekood: +Sorteerija lähtekood:
-<file php voltmeeter.c>+
  
-#include <stdio.h> +<file php main.c>
-#include <homelab/pin.h> +
-#include <homelab/adc.h> +
-#include <homelab/delay.h> +
-#include <homelab/module/lcd_alpha.h>+
  
 +int main(void)
 +{
  
 + signed char kordus=0;
 +  unsigned char i;
 + pin leds[3]    = { PIN(C, 5), PIN(C, 4), PIN(C, 3) };
 +        pin buttons[3] = { PIN(C, 2), PIN(C, 1), PIN(C, 0) };
 + for (i = 0; i < 3; i++)
 + {
 + pin_setup_output(leds[i]);
 + pin_setup_input(buttons[i]);
 + pin_set(leds[i]);
 + }
  
 + unsigned char new_value1;
 + unsigned char new_value2;
  
-int main()+ algustekst()
 + 
 +  
 + 
 + 
 +    /* servode algväärtustamine */ 
 +       init_servos(); 
 + 
 +    /* enable interrupts */ 
 +       sei(); 
 + 
 +  
 + 
 + 
 + 
 + while (true) 
 +
 + pin_toggle(leds[2]); 
 + hw_delay_ms(200); 
 + pin_set(leds[2]); 
 + hw_delay_ms(200); 
 + 
 + signed char loendur=0; 
 + new_value1 = pin_get_debounced_value(buttons[2]); 
 + 
 + while(!new_value1){  
 + pin_set(leds[2]); 
 + unsigned short value; 
 +     signed short distance; 
 + 
 +  dcmootor(); 
 + 
 + // ADC muunduri seadistamine 
 + adc_init(ADC_REF_AVCC, ADC_PRESCALE_8); 
 +  
 + // Anduri väljundpinge 4-kordselt ümardatud väärtuse lugemine 
 + value = adc_get_average_value(0, 4);  
 +  
 + // ADC väärtuse kauguseks ümberarvutamine 
 + distance = ir_distance_calculate_cm(GP2Y0A21YK, value); 
 +  
 + if(kordus==4) 
 +
 + kordus=0; 
 + algustekst(); 
 + break; 
 +
 + 
 + if (distance <=11) 
 +      {  
 + kordus=0;  
 + SERVO6 = SERVO_MAX; 
 + hw_delay_ms(500); 
 + 
 + char text[16]; 
 + unsigned char result; 
 + float tulemus;
  
-{ 
- char text[16]; 
- unsigned char result; 
- float tulemus; 
    
  // Võrdluspingeks AREF viigu valimine  // Võrdluspingeks AREF viigu valimine
- //   (eeldatavasti on see ühendatud +5V toiteahelasse) 
  // Multiplekseriga kanali 3 valimine  // Multiplekseriga kanali 3 valimine
  // Tulemus on vasak-asetusega  // Tulemus on vasak-asetusega
  ADMUX = (1 << REFS0) | (1 << ADLAR) | (3);  ADMUX = (1 << REFS0) | (1 << ADLAR) | (3);
- lcd_alpha_init(LCD_ALPHA_DISP_ON);// LCD ekraani seadistamine  +
- // LCD ekraani puhastamine+
  lcd_alpha_clear();  lcd_alpha_clear();
- lcd_alpha_write_string("Voltmeeter");  + lcd_alpha_write_string("Patarei taituvus");  
-  + 
-while(true){ +
  // ADC üksuse käivitamine,  // ADC üksuse käivitamine,
  // teisendustakti seadmine 16 korda aeglasemaks töötaktist  // teisendustakti seadmine 16 korda aeglasemaks töötaktist
Line 86: Line 169:
  result =ADCH;  result =ADCH;
  tulemus=(float)result*0.02;  tulemus=(float)result*0.02;
- sprintf(text, "%5.3f",tulemus);+ sprintf(text, "%3.0f %%",(tulemus*100)/0.88);
    
  lcd_alpha_goto_xy(0, 1);  lcd_alpha_goto_xy(0, 1);
  lcd_alpha_write_string(text);  lcd_alpha_write_string(text);
- sw_delay_ms(500);+ hw_delay_ms(500); 
 + SERVO6 = SERVO_MID-400; 
 +    hw_delay_ms(400); 
 + 
 + if(tulemus<0.7) 
 +
 + pin_set(leds[2]); 
 + SERVO5 = SERVO_MIN-300; 
 +  hw_delay_ms(400); 
 + SERVO5 = SERVO_MID-400; 
 +  hw_delay_ms(400); 
 + pin_toggle(leds[0]);
  }  }
-}+ else  
 +
 + pin_set(leds[0]); 
 + SERVO5 = SERVO_MAX; 
 +  hw_delay_ms(400); 
 + SERVO5 = SERVO_MID-400; 
 +  hw_delay_ms(400); 
 + pin_toggle(leds[2]); 
 + loendur++; 
 + } 
 +       } 
 + kordus++;  
 +   } 
 +   if(loendur>=1) 
 +   { 
 +    char text1[16];  
 + char text2[16]; 
 + for(int i=10;i>0;i--){ 
 + lcd_alpha_clear(); 
 + pin_toggle(leds[1]); 
 + sprintf(text1, "Tais patareid %d",loendur); 
 + lcd_alpha_write_string(text1);  
 + sprintf(text2, "%d",i); 
 +  
 + lcd_alpha_goto_xy(0, 1); 
 + lcd_alpha_write_string("Hoia nuppu S2"); 
 + hw_delay_ms(1000); 
 + pin_set(leds[1]); 
 + lcd_alpha_clear(); 
 + lcd_alpha_write_string(text2); 
 + hw_delay_ms(1000); 
 + new_value2 = pin_get_debounced_value(buttons[1]);
  
 + if(!new_value2)
 + {
 + lcd_alpha_clear();
 +  SERVO4=SERVO_MAX;
 +  hw_delay_ms(400);
 +  SERVO4 = SERVO_MID;
 + algustekst();
 + break;
 + }
 +   }
 + lcd_alpha_clear();
 +  SERVO4=SERVO_MIN;
 +  hw_delay_ms(400);
 +  SERVO4 = SERVO_MID;
 + algustekst();
 + 
 +
 +   }
 + }
 +}
 </file> </file>
  
Line 99: Line 244:
  
 {{:et:projects:tudengid11:ggg.png?600|}} {{:et:projects:tudengid11:ggg.png?600|}}
- 
-===== Nädalaaruanded ===== 
-  *{{:et:projects:tudengid11:esimese_nadala_aruanne_patarei_vangla.pdf|1. aruanne}} 
-  *{{:et:projects:tudengid11:teise_nadala_aruanne_patarei_vangla.pdf|2. aruanne}} 
-  *{{:et:projects:tudengid11:iii_nadala_aruande_patarei_vangla.pdf|3. aruanne}} 
-  *{{:et:projects:tudengid11:4_nadala_aruanne_patarei_vangla.pdf|4. aruanne}} 
- 
- 
  
 ===== Ehitamine ===== ===== Ehitamine =====
Line 117: Line 254:
 {{:et:projects:tudengid11:dsc2.jpg|}} {{:et:projects:tudengid11:dsc2.jpg|}}
  
-Korpuse külge sai pandud väline suunaja, mille kaudu patareid liiguvad mõõtmisele.\\ +Trükkplaadi tegemine
-Kuplit ajab ringi DC mootor.\\+ 
 +{{:et:projects:tudengid11:dsc04167.jpg?400|}} 
 +{{:et:projects:tudengid11:dsc04171.jpg?400|}} 
 +{{:et:projects:tudengid11:dsc04173.jpg?400|}} 
 +{{:et:projects:tudengid11:dsc04174.jpg?400|}} 
 +{{:et:projects:tudengid11:dsc04180.jpg?400|}} 
 + 
 +Programmeerimine. 
 + 
 +{{:et:projects:tudengid11:dsc04190.jpg?400|}} 
  
-{{:et:projects:tudengid11:dsc3.jpg|}} 
  
 ===== Projektijuhtimine ===== ===== Projektijuhtimine =====
  
 Kõik meeskonnaliikmed tegelesid jooksvalt kõikide lahendust vajavate probleemidega.  Kõik meeskonnaliikmed tegelesid jooksvalt kõikide lahendust vajavate probleemidega. 
 +
 +Nädalaaruanded: 
 +
 +  *{{:et:projects:tudengid11:esimese_nadala_aruanne_patarei_vangla.pdf|1. aruanne}}
 +  *{{:et:projects:tudengid11:teise_nadala_aruanne_patarei_vangla.pdf|2. aruanne}}
 +  *{{:et:projects:tudengid11:iii_nadala_aruande_patarei_vangla.pdf|3. aruanne}}
 +  *{{:et:projects:tudengid11:4_nadala_aruanne_patarei_vangla.pdf|4. aruanne}}
 +
 ===== Kokkuvõte ja järeldused ===== ===== Kokkuvõte ja järeldused =====
  
Line 131: Line 285:
  
 ===== Viited ja kasutatud kirjandus ===== ===== Viited ja kasutatud kirjandus =====
-http://www.extremecircuits.net/2010/04/battery-tester-circuit-schematic.html + 
-http://images.blog-u.net/img/diodes-bridge-rectifier/+  - http://home.roboticlab.eu/et/start?s=translation_true 
 +  - http://www.extremecircuits.net/2010/04/battery-tester-circuit-schematic.html 
 +  http://images.blog-u.net/img/diodes-bridge-rectifier/ 
 +  - http://www.atmel.com/dyn/resources/prod_documents/doc2467.pdf
et/projects/tudengid11/patareidesorteerija.1302244644.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0