/roboti/istrobot/camerus/SW/876/objizdka_L.c |
---|
0,0 → 1,176 |
// **** Objeti cihly vlevo **** LLLL |
#define L_TOUCH 1 // Cara vlevo |
#define R_TOUCH 2 // Cata vpravo |
#define B_TOUCH 3 // Both |
int8 n; |
int8 r1,r2,rr; |
int8 touch; |
enum okolo_cihly {pred_carou,na_care,po_care}; |
okolo_cihly ridic; // V jakem jsme stavu objizdeni cihly |
int8 vzdalenost; |
int8 visualisation; |
stav=cihla; // Dalsi prekazku uz nezaznamenavej (je to s velkou pravdepodobnosti cil) |
touch=0; // Indikator detekce cary pri objizdeni |
cihla: |
rr=RR_CIHLA; //!!! Rozumna rychlost pro objizdeni cihly (bylo by lepsi rychlost zvysovat) a pri detekci pohybu zase snizit |
disp(0x99); |
set_pwm1_duty(0); // zabrzdi levym kolem, prave vpred |
set_pwm2_duty(200); |
output_high(MOT_L); |
output_low(MOT_R); |
odocounter=get_timer1(); |
while(true) // Na zacatku se vyhni cihle, zatoc co muzes |
{ |
cas=CASMIN-5; // jeste vic nez hodne do leva |
if(BUMPER) // Narazili jsme do cihly, musime couvnout! |
{ |
bum(); |
SaveLog(log-1); // Zapis Black Boxu do EEPROM |
brzda(); |
goto cihla; // Znovu zacni cihlu objizdet |
}; |
set_pwm1_duty(0); |
set_pwm2_duty(220); |
output_high(MOT_L); // leve kolo reverz |
output_low(MOT_R); // prave kolo vpred |
if(get_timer1()>(odocounter+5)) // konec zatacky? |
{ |
disp(0x66); |
break; |
} |
SetServoQ(cas); |
delay_ms(18); |
}; |
//------ Objeti cihly v konstantni vzdalenosti ------ |
ridic=pred_carou; |
cas=CASAVR-CASMIN; // rovne |
output_low(MOT_L); // vpred |
output_low(MOT_R); |
visualisation=0; |
while(true) |
{ |
if(BUMPER) // Narazili jsme do cihly, musime couvnout! |
{ |
bum(); |
SaveLog(log-1); // Zapis Black Boxu do EEPROM |
set_pwm1_duty(160); // vpred |
set_pwm2_duty(160); |
output_low(MOT_L); |
output_low(MOT_R); |
}; |
delta_bearing=bearing-bearing_offset; |
visualisation=(delta_bearing & 0xF0) | (visualisation & 0x0F); |
if(IRRX) // hrozi celni srazka s cihlou v prubehu objizdeni |
{ |
cas=CASMIN; |
} |
else |
{ |
if((vzdalenost!=0)||!input(PROXIMITY)||((delta_bearing>60)&&(delta_bearing<128))) // Udrzovani konstantni vzdalenosti od cihly |
{ |
if(cas>(CASMIN+20)) cas-=20; |
} |
else |
{ |
if(cas<(CASMAX-20)) cas+=20; |
}; |
}; |
// Elektronicky diferencial |
if(cas<CASAVR) {r1=cas-CASMIN; r2=CASAVR-CASMIN;}; // Normovani vystupni hodnoty radkoveho snimace |
if(cas==CASAVR) {r1=cas-CASMIN; r2=cas-CASMIN;}; // pro rizeni rychlosti motoru |
if(cas>CASAVR) {r1=CASAVR-CASMIN; r2=CASMAX-cas;}; // Rozsah 1 az 92 |
if (r1>(CASAVR-CASMIN-rr)) r1=(r1<<1)+rr-(CASAVR-CASMIN); // Neco jako nasobeni |
if (r2>(CASAVR-CASMIN-rr)) r2=(r2<<1)+rr-(CASAVR-CASMIN); |
set_pwm1_duty(r1); // Nastav rychlost motoru |
set_pwm2_duty(r2); |
SetServoQ(cas); |
i2c_start(); // Sonar Ping |
i2c_write(SONAR_ADR); |
i2c_write(0x0); |
i2c_write(0x52); // mereni v us |
i2c_stop(); |
for(n=1;n<=90;n++) // 18ms testovani cary do dalsi korekce serva |
{ |
set_adc_channel(LMAX); |
delay_us(100); |
if(read_adc()<THR) touch|=L_TOUCH; |
set_adc_channel(RMAX); |
delay_us(100); |
if(read_adc()<THR) touch|=R_TOUCH; |
}; |
i2c_start(); // Odraz ze sonaru |
i2c_write(SONAR_ADR); |
i2c_write(0x3); |
i2c_stop(); |
i2c_start(); |
i2c_write(SONAR_ADR+1); |
vzdalenost=i2c_read(0); |
i2c_stop(); |
i2c_start(); // Cteni kompasu |
i2c_write(COMPAS_ADR); |
i2c_write(0x1); // uhel 0-255 |
i2c_stop(); |
i2c_start(); |
i2c_write(COMPAS_ADR+1); |
bearing=i2c_read(0); |
i2c_stop(); |
if(touch==L_TOUCH) visualisation|=0x2; |
if(touch==R_TOUCH) visualisation|=0x1; |
if((touch==B_TOUCH)&&(ridic==pred_carou)) ridic=na_care; |
if((ridic==na_care)&&(touch==0)) break; |
if(ridic==na_care) touch=0; |
disp(visualisation); |
}; |
disp(0xC3); |
set_pwm1_duty(20); |
set_pwm2_duty(200); |
output_high(MOT_L); |
output_low(MOT_R); |
delay_us(40); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
while (true) // Znovu se musime dotknout cary |
{ |
for(n=1;n<=90;n++) // 18ms testovani cary do dalsi korekce serva |
{ |
set_adc_channel(LMAX); // Levy UV sensor |
delay_us(100); |
if(read_adc()<THR) // Dotkli jsme se levym senzorem |
{ |
disp(0xE0); |
cas=CASAVR-CASMIN; // nastavime, ze cara je rovne |
goto cara; |
}; |
set_adc_channel(RMAX); // Pravy UV sensor |
delay_us(100); |
if((get_timer1()>=(odocounter+2)) && (read_adc()<THR)) // Pravym senzorem nesmime caru prejet! |
{ |
disp(0x07); |
cas=CASMAX; // kdyz prejedem, tak nastavime, ze cara je vpravo |
goto cara; |
}; |
} |
SetServoQ(CASMIN-5); // max. max. doleva L |
} |
cara: |
output_low(MOT_L); // oba motory vpred |
output_low(MOT_R); |
/roboti/istrobot/camerus/SW/876/camerus.c |
---|
0,0 → 1,651 |
//********* Robot Camerus pro IstRobot 2007 ************ |
//"$Id$" |
//***************************************************** |
#include ".\camerus.h" |
#USE FAST_IO (C) // Brana C je ve FAST_IO modu, aby slo rychle cist z kamery |
// Rychlostni konstanty |
#define RR_CIHLA 30 // Rozumna rychlost pro objizdeni cihly |
#define RR_PRERUSENI 20 // Rozumna rychlost pro priblizeni se k preruseni |
#define BRZDNA_DRAHA 0x20 // Jak daleko pred problemem se zacne brzdit |
#define ODODO1 0xFFF |
#define ODODO2 0xFFF |
// Adresy IIC periferii |
#define COMPAS_ADR 0xC0 |
#define CAMERA_ADR 0xDC |
#define SONAR_ADR 0xE0 |
// A/D vstupy |
#define RMAX 4 // AN4/RA5 - leve cidlo na vyjeti z cary |
#define LMAX 3 // AN3/RA3 - prave cidlo na vyjeti z cary |
#define CERVENA 2 // AN2/RA2 - cervene kroutitko |
#define ZELENA 1 // AN1/RA0 - zelene kroutitko |
#define MODRA 0 // AN0/RA1 - modre kroutitko |
// I/O |
#define HREF PIN_C5 // Signal HREF z kamery (v H po celou dobu radku) |
#define PIX PIN_C6 // Vstup pro body z kamery (za trivstupim hradlem OR (dig. komparator)) |
#define SERVO PIN_B4 // Vystup na servo (1 az 2ms po cca 20ms (synchronizovano snimkovym kmitoctem)) |
#define MOT_L PIN_B5 // Smer otaceni leveho motoru; druhy pol je RC2 |
#define MOT_R PIN_B6 // Smer otaceni praveho motoru; druhy pol je RC1 |
#define MOT_1 PIN_C1 // PWM vystpy motoru |
#define MOT_2 PIN_C2 // |
#define DATA PIN_B2 // K modulu LEDbar data |
#define CP PIN_B1 // K modulu LEDbar hodiny |
//#define ODO PIN_C0 // Ze snimace z odometrie z praveho kola na TIMER1 |
// Jeden impuls je 31,25mm |
#define IRRX !input(PIN_B0) // Vstup INT, generuje preruseni pri prekazce |
#define IRTX PIN_B3 // Modulovani vysilaci IR LED na detekci prekazky |
#define PROXIMITY PIN_C7 // Cidlo kratkeho dosahu na cihlu |
#define BUMPER !input(PIN_A4) // Naraznik |
#define CASMIN 6 // Rozsah radku snimace |
#define CASMAX 192 |
#define CASAVR ((CASMAX+CASMIN) / 2) |
#define EEMAX 255 // Konec EEPROM |
#define MAXLOG 0x10 // Maximalni pocet zaznamu v logu |
#if MAXLOG>(EEMAX/3) |
#error Prekrocena velikost EEPROM |
#endif |
#define OFFSETO 0x9F //0x9F // Vystredeni serva pro objeti prekazky |
#define THR 90 // Threshold pro UV cidla na caru |
#byte INTCON = 0x0B // Interrupt configuration register |
#bit GIE = INTCON.7 |
#bit PEIE = INTCON.6 |
#bit TMR0IE = INTCON.5 |
#bit INT0IE = INTCON.4 |
#bit RBIE = INTCON.3 |
#bit TMR0IF = INTCON.2 |
#bit INT0IF = INTCON.1 |
#bit RBIF = INTCON.0 |
enum stavy {start,rozjezd,jizda,cihla,pocihle,cil}; |
stavy stav; // Kde jsme na trati |
int8 cas; // Cas hrany bila/cerna v radce |
int8 stred; // Vystredeni kolecka |
int16 odocounter; // Zaznamenani aktualniho stavu pocitadla odometrie |
int16 last_log_odo; // Posledni stav odometrie poznamenany do logu |
int16 last_log; // Cislo posledniho zaznamu v logu v EEPROM |
int8 bb_h[MAXLOG]; // Cerna skrinka MSB |
int8 bb_l[MAXLOG]; // Cerna skrinka LSB |
int8 bb_f[MAXLOG]; // Cerna skrinka priznak (typ zaznamu) |
int8 log; // Pocitadlo pro cernou skrinku |
int16 bb; // Posledni nactena udalost z Black Boxu |
int16 timer_pom; // Pomocna promenna pro atomicke nacteni hodnoty timeru1 |
int8 rr; // Promenna na ulozeni Rozumne rychlost |
int8 rrold; |
int16 odo1, odo2; // Problemy na trati |
// Zobrazeni jednoho byte na modulu LEDbar |
inline void disp(int8 x) |
{ |
int n; |
for(n=0;n<=7;n++) |
{ |
if (bit_test(x,0)) output_low(DATA); else output_high(DATA); |
output_high(CP); |
x>>=1; |
output_low(CP); |
} |
} |
// Blikani LEDbarem ve stilu Night Rider |
void NightRider(int8 x) |
{ |
int n,i,j; |
for(j=0;j<x;j++) |
{ |
i=0x01; |
for(n=0;n<7;n++) |
{ |
disp(i); |
rotate_left(&i, 1); |
delay_ms(40); |
} |
for(n=0;n<7;n++) |
{ |
disp(i); |
rotate_right(&i, 1); |
delay_ms(40); |
} |
} |
disp(i); |
delay_ms(40); |
i=0; |
disp(i); |
} |
// Zaznam LOGu do EEPROM |
void SaveLog(int8 log) |
{ |
int8 n,i; |
i=0; |
for(n=0;n<=(log*3);n+=3) // Ulozeni Black Boxu do EEPROM |
{ |
write_eeprom(n,bb_f[i]); |
write_eeprom(n+1,bb_h[i]); |
write_eeprom(n+2,bb_l[i]); |
i++; |
}; |
write_eeprom(EEMAX,log); // Zapis poctu zaznamu na konec EEPROM |
} |
// Brzdeni motorama stridou 1:1 |
void brzda() |
{ |
int8 n,i; |
set_pwm1_duty(0); // vypni PWM |
set_pwm2_duty(0); |
setup_ccp1(CCP_OFF); |
setup_ccp2(CCP_OFF); |
for (n=0;n<200;n++) |
{ |
output_low(MOT_L); |
output_low(MOT_R); |
output_high(MOT_1); |
output_high(MOT_2); |
delay_us(200); |
output_high(MOT_L); |
output_high(MOT_R); |
output_low(MOT_1); |
output_low(MOT_2); |
delay_us(200); |
} |
output_low(MOT_L); // smer vpred |
output_low(MOT_R); |
setup_ccp1(CCP_PWM); // RC1 // Zapni PWM pro motory |
setup_ccp2(CCP_PWM); // RC2 |
} |
void SetServo(int8 angle) |
{ |
int8 n; |
for(n=0; n<10; n++) |
{ |
output_high(SERVO); // Odvysilani impuzu 1 az 2ms pro servo |
delay_us(1000); |
delay_us(stred); |
delay_us(stred); |
delay_us(stred); |
delay_us(angle); |
delay_us(angle); |
output_low(SERVO); |
delay_ms(18); |
} |
} |
inline void SetServoQ(int8 angle) |
{ |
output_high(SERVO); // Odvysilani impuzu 1 az 2ms pro servo |
delay_us(1000); |
delay_us(stred); |
delay_us(stred); |
delay_us(stred); |
delay_us(angle); |
delay_us(angle); |
output_low(SERVO); |
} |
// Couvni po narazu na naraznik |
inline void bum() |
{ |
set_pwm1_duty(0); // couvni, rovne dozadu |
set_pwm2_duty(0); |
output_high(MOT_L); |
output_high(MOT_R); |
disp(0xA5); |
SetServo(CASAVR-CASMIN); |
} |
//---------------------------- INT -------------------------------- |
#int_EXT |
EXT_isr() // Preruseni od prekazky |
{ |
unsigned int8 bearing, bearing_offset, delta_bearing; |
set_pwm1_duty(0); // zabrzdi levym kolem, prave vypni |
set_pwm2_duty(0); |
output_high(MOT_L); |
output_low(MOT_R); |
// Ujistime se, ze prijaty signal je z naseho IR vysilace |
output_high(IRTX); // Vypni LED na detekci prekazky |
delay_ms(2); |
if (IRRX) // stale nas signal? |
{ |
output_low(MOT_L); // je odraz -> vpred |
output_low(MOT_R); |
return; |
}; |
output_low(IRTX); // Zapni LED na detekci prekazky |
i2c_start(); // Cteni kompasu |
i2c_write(COMPAS_ADR); |
i2c_write(0x1); |
i2c_stop(); |
i2c_start(); |
i2c_write(COMPAS_ADR+1); |
bearing_offset=i2c_read(0); |
i2c_stop(); |
delay_ms(9); |
if (!IRRX) // stale nas signal? |
{ |
output_low(MOT_L); // neni odraz -> vpred |
output_low(MOT_R); |
return; |
}; |
rr=rrold; // Po cihle se pojede opet Rozumnou Rychlosti |
if(stav!=cihla) |
{ |
timer_pom=get_timer1(); // Obsah Timeru1 se musi nacist atomicky |
bb_l[log]=make8(timer_pom,0); // Zaznam do logu |
bb_h[log]=make8(timer_pom,1); |
bb_f[log]=0xFF; // Cihla |
if(log<MAXLOG) log++; // Ukazatel na dalsi zaznam |
}; |
//!!! if(stav==cihla) while(true); // Zastav na furt, konec drahy |
// if(stav==cihla) return; // Po druhe nic neobjizdej |
// Pozor na rozjezd |
if((stav==jizda)||(stav==cihla)) // Objed cihlu |
{ |
#include ".\objizdka_L.c" |
}; |
last_log_odo=get_timer1()+16; // Pul metru po cihle nezaznamenavej do LOGu |
} |
//---------------------------------- MAIN -------------------------------------- |
void main() |
{ |
int8 offset; // Promena pro ulozeni offsetu |
int8 r1; // Rychlost motoru 1 |
int8 r2; // Rychlost motoru 2 |
setup_adc_ports(ALL_ANALOG); // Zapnuti A/D prevodniku pro cteni kroutitek |
setup_adc(ADC_CLOCK_INTERNAL); |
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); // Casovac pro mereni casu hrany W/B v radce |
setup_timer_1(T1_EXTERNAL); // Cita pulzy z odometrie z praveho kola |
setup_timer_2(T2_DIV_BY_16,255,1); // Casovac PWM motoru |
setup_ccp1(CCP_PWM); // RC1 // PWM pro motory |
setup_ccp2(CCP_PWM); // RC2 |
setup_comparator(NC_NC_NC_NC); |
setup_vref(FALSE); |
set_tris_c(0b11111001); // Nastaveni vstup/vystup pro branu C, protoze se to nedela automaticky |
set_pwm1_duty(0); // Zastav motory |
set_pwm2_duty(0); |
output_low(MOT_L); // Nastav smer vpred |
output_low(MOT_R); |
disp(0); // Zhasni LEDbar |
if(BUMPER) // Kdyz nekdo na zacatku drzi naraznik, vymaz log |
{ |
int8 n; |
for(n=0;n<255;n++) write_eeprom(n,0); |
bb_l[0]=0; // Zapis na pozici 0 vzdalenost 0 |
bb_h[0]=0; |
SaveLog(0); // Zapis do EEPROM pocet zaznamu 0, tedy jeden zaznam |
for(n=0;n<=4;n++) |
{ |
disp(0x55); // Blikni pro potvrzeni |
delay_ms(200); |
disp(0xAA); |
delay_ms(200); |
}; |
while(true) |
{ |
if(!IRRX) |
{ |
int8 ble; |
i2c_start(); // Cteni kompasu |
i2c_write(COMPAS_ADR); |
i2c_write(0x1); |
i2c_stop(); |
i2c_start(); |
i2c_write(COMPAS_ADR+1); |
ble=i2c_read(0); |
i2c_stop(); |
disp(ble); |
delay_ms(200); |
} |
else |
{ |
disp(0x81); // Diagnostika celniho IR senzoru na prekazku |
delay_ms(200); |
} |
} |
} |
output_low(IRTX); // Zapni LED na detekci prekazky |
NightRider(1); // Aby se poznalo, ze byl RESET |
// taky se musi pockat, nez se rozjede kamera, nez se do ni zacnou posilat prikazy |
//... Nastaveni sonaru ... |
i2c_start(); |
i2c_write(SONAR_ADR); |
i2c_write(0x02); // dosah |
i2c_write(0x03); // n*43mm |
i2c_stop(); |
i2c_start(); |
i2c_write(SONAR_ADR); |
i2c_write(0x01); // zesileni |
i2c_write(0x01); // male, pro eliminaci echa z minuleho mereni |
i2c_stop(); |
// pro ladeni sonaru |
/* |
while(true) |
{ |
i2c_start(); // Sonar Ping |
i2c_write(0xE0); |
i2c_write(0x0); |
i2c_write(0x51); // 50 mereni v palcich, 51 mereni v cm, 52 v us |
i2c_stop(); |
delay_ms(100); |
i2c_start(); // Odraz ze sonaru |
i2c_write(0xE0); |
i2c_write(0x3); |
i2c_stop(); |
i2c_start(); |
i2c_write(0xE1); |
cas=i2c_read(0); |
i2c_stop(); |
disp(cas); |
} |
*/ |
//... Nastaveni kamery ... |
i2c_start(); // Soft RESET kamery |
i2c_write(CAMERA_ADR); // Adresa kamery |
i2c_write(0x12); // Adresa registru COMH |
i2c_write(0x80 | 0x24); // Zapis ridiciho slova |
i2c_stop(); |
i2c_start(); // BW |
i2c_write(CAMERA_ADR); |
i2c_write(0x28); |
i2c_write(0b01000001); |
i2c_stop(); |
/* |
i2c_start(); // Contrast (nema podstatny vliv na obraz) |
i2c_write(CAMERA_ADR); |
i2c_write(0x05); |
i2c_write(0xA0); // 48h |
i2c_stop(); |
i2c_start(); // Band Filter (pokud by byl problem se zarivkama 50Hz) |
i2c_write(CAMERA_ADR); |
i2c_write(0x2D); |
i2c_write(0x04 | 0x03); |
i2c_stop(); |
*/ |
i2c_start(); // Fame Rate |
i2c_write(CAMERA_ADR); |
i2c_write(0x2B); |
i2c_write(0x00); // cca 17ms (puvodni hodnota 5Eh = 20ms) |
i2c_stop(); |
i2c_start(); // VSTRT |
i2c_write(CAMERA_ADR); |
i2c_write(0x19); |
i2c_write(118); // prostredni radka |
i2c_stop(); |
i2c_start(); // VEND |
i2c_write(CAMERA_ADR); |
i2c_write(0x1A); |
i2c_write(118); |
i2c_stop(); |
NightRider(1); // Musi se dat cas kamere na AGC a AEC |
{ // Mereni expozice |
int8 t1,t2; |
i2c_start(); // Brightness, zacni od uplne tmy |
i2c_write(CAMERA_ADR); |
i2c_write(0x06); |
i2c_write(0); // 80h default |
i2c_stop(); |
delay_ms(50); |
for(offset=0x04;offset<(255-0x04);offset+=0x04) // Zacni od jasu 10h |
{ |
i2c_start(); // Brightness |
i2c_write(CAMERA_ADR); |
i2c_write(0x06); |
i2c_write(offset); // 80h default |
i2c_stop(); |
disp(offset); |
delay_ms(50); |
t1=0; |
t2=0; |
while(!input(HREF)); // Cekej nez se zacnou posilat pixely z radky |
delay_ms(5); |
while(!input(HREF)); // Cekej nez se zacnou posilat pixely z radky |
set_timer0(0); // Vynuluj pocitadlo casu |
if(!input(PIX)) continue; |
while(input(PIX)); |
t1=get_timer0(); // Precti cas z citace casu hrany |
set_timer0(0); // Vynuluj pocitadlo casu |
while(!input(PIX)); |
t2=get_timer0(); |
if((t1>60) && (t1<140) && (t2>5) && (t2<=10)) break; // Vidis, co mas? |
delay_ms(2); // Preskoc druhou radku z kamery |
}; |
delay_ms(1000); // Nech chvili na displayi zmerenou hodnotu |
} |
set_adc_channel(CERVENA); // --- Kroutitko pro jas --- |
delay_ms(1); |
offset=read_adc(); |
offset &= 0b11111100; // Dva nejnizsi bity ignoruj |
// offset += 0x70; // Jas nebude nikdy nizsi |
disp(offset); |
i2c_start(); // Brightness |
i2c_write(CAMERA_adr); |
i2c_write(0x06); |
i2c_write(offset); // 80h default |
i2c_stop(); |
delay_ms(1000); // Nech hodnotu chvili na displayi |
set_adc_channel(ZELENA); // --- Kroutitko pro vykon motoru --- |
delay_ms(1); |
rr=read_adc()>>2; // 0-63 // Pokud by se zvetsil rozsah, tak zkontrolovat jakonasobeni! |
rrold=rr; |
cas=CASAVR-CASMIN; // Inicializace promenych, aby neslo servo za roh |
// a aby se to rozjelo jeste dneska |
stav=start; // Jsme na startu |
set_timer1(0); // Vynuluj citac odometrie |
log=0; // Zacatek logu v cerne skrince |
last_log_odo=0; // Posledni zaznam odometrie do logu |
last_log=read_eeprom(EEMAX); // Kolik zaznamu mame od minule poznamenano? |
bb=MAKE16(read_eeprom(1) & 0x7F,read_eeprom(0)); // Precti prvni zaznam |
odo1=ODODO1-BRZDNA_DRAHA; |
odo2=ODODO2-BRZDNA_DRAHA; |
// ........................... Hlavni smycka ................................ |
while(true) |
{ |
int8 pom; |
int8 n; |
int8 gap; |
int16 ododo; |
gap=0; // Vynuluj pocitadlo preruseni |
next_snap: |
pom=0; |
disable_interrupts(GLOBAL); //----------------------- Critical Section |
while(input(HREF)); // Preskoc 1. radku |
while(!input(HREF)); // Cekej nez se zacnou posilat pixely z 2. radky |
set_timer0(0); // Vynuluj pocitadlo casu |
while(input(HREF)) // Po dobu vysilani radky cekej na hranu W/B |
{ |
// !!!!Dodelat rozpoznani cerne cary napric pro zastaveni ? |
if(!input(PIX)) // Pokud se X-krat za sebou precetla CERNA |
if(!input(PIX)) |
// if(!input(PIX)) |
{ |
pom=get_timer0(); // Precti cas z citace casu hrany |
break; |
}; |
}; |
while(input(HREF)); // Pockej na shozeni signalu HREF |
if((pom<CASMAX) && (pom>CASMIN)) cas=pom; // Orizni konce radku |
// Na konci obrazovaho radku to blbne. Jednak chyba od apertury |
// a vubec to nejak na kraji nefunguje. |
output_high(SERVO); // Odvysilani impuzu 1 az 2ms pro servo |
delay_us(1000); |
delay_us(stred); |
delay_us(stred); |
delay_us(stred); |
delay_us(cas); |
delay_us(cas); |
output_low(SERVO); |
// Elektronicky diferencial 1. cast |
if(cas<CASAVR) {r1=cas-CASMIN; r2=CASAVR-CASMIN;}; // Normovani vystupni hodnoty radkoveho snimace |
if(cas==CASAVR) {r1=cas-CASMIN; r2=cas-CASMIN;}; // pro rizeni rychlosti motoru |
if(cas>CASAVR) {r1=CASAVR-CASMIN; r2=CASMAX-cas;}; // Rozsah 1 az 92 |
enable_interrupts(GLOBAL); //----------------------- End Critical Section |
if(pom==0) // Kamera nevidi caru, poznamenej to do logu |
{ |
if((cas>(CASMIN+30))&&(cas<(CASMAX-30))) // Nebyla minule cara moc u kraje? |
if(last_log_odo<get_timer1()) // Aby nebyly zaznamy v logu prilis huste, musi se napred neco ujet od minuleho zaznamu |
{ |
gap++; |
} |
} |
else |
{ |
if(gap>=2) // Trva preruseni cary alespon 2 snimky? |
{ |
timer_pom=get_timer1(); // Timer se musi vycist atomicky |
bb_l[log]=make8(timer_pom,0); // Zaznam |
bb_h[log]=make8(timer_pom,1); |
bb_f[log]=gap; |
last_log_odo=timer_pom+8; // Dalsi mereni nejdrive po ujeti 24 cm |
if(log<MAXLOG) log++; // Ukazatel na dalsi zaznam |
rr=rrold; // Preruseni cary skoncilo, znovu jed Rozumnou Rychlosti |
} |
gap=0; |
} |
//ODODO |
ododo=get_timer1(); |
if((ododo>odo1)&&(ododo<(odo1+8))) rr=RR_PRERUSENI; |
if((ododo>odo2)&&(ododo<(odo2+8))) rr=RR_PRERUSENI; |
// Elektronicky diferencial 2. cast |
if (r1>(CASAVR-CASMIN-rr)) r1=(r1<<1)+rr-(CASAVR-CASMIN); // Neco jako nasobeni |
if (r2>(CASAVR-CASMIN-rr)) r2=(r2<<1)+rr-(CASAVR-CASMIN); // rozsah 1 az 92 pro rr=0 |
// rozsah 1 az 154 pro rr=63 |
// r1<<=1; // Rychlost je dvojnasobna |
// r2<<=1; // Rozsah 2 az 184 |
if ((stav==jizda)||(stav==cihla)||(stav==rozjezd)) //||(stav==pocihle)) // Jizda |
{ |
set_pwm1_duty(r1); |
set_pwm2_duty(r2); |
} |
else |
{ |
set_pwm1_duty(0); // Zastaveni |
set_pwm2_duty(0); |
}; |
if((stav==rozjezd)&&(get_timer1()>10)) // musi ujet alespon 31cm |
{ |
ext_int_edge(H_TO_L); // Nastav podminky preruseni od cihly |
INT0IF=0; // Zruseni predesle udalosti od startera |
enable_interrupts(INT_EXT); |
enable_interrupts(GLOBAL); |
stav=jizda; |
}; |
if(stav==start) // Snimkuje, toci servem a ceka na start |
{ |
set_adc_channel(MODRA); // Kroutitko na vystredeni predniho kolecka |
Delay_ms(1); |
stred=read_adc(); |
if(!input(PROXIMITY)) |
{ |
disp(0x80); |
while(input(PROXIMITY)); // Cekej, dokud starter neda ruku pryc |
set_timer1(0); // Vynuluj citac odometrie |
set_pwm1_duty(255); // Rychly rozjezd !!! Zkontrolovat na oscyloskopu |
set_pwm2_duty(255); |
disp(0x01); |
while(get_timer1()<=4) // Ujed alespon 12cm |
{ |
set_adc_channel(LMAX); // Levy UV sensor |
delay_us(40); |
if(read_adc()<THR) {cas=CASMIN; break;}; // Prejeli jsme caru vlevo |
set_adc_channel(RMAX); // Pravy UV sensor |
delay_us(40); |
if(read_adc()<THR) {cas=CASMAX; break;}; // Prejeli jsme caru vpravo |
cas=CASAVR-CASMIN; // Cara je rovne |
}; |
stav=rozjezd; |
}; |
} |
pom=0x80; // Zobrazeni pozice cary na displayi |
for(n=CASMAX/8; n<cas; n+=CASMAX/8) pom>>=1; |
disp(pom); |
while(true) // Ve zbytku casu snimku cti krajni UV senzory a naraznik |
{ |
if(BUMPER) // Sakra, do neceho jsme narazili a nevideli jsme to! |
{ |
bum(); |
SaveLog(log-1); // Zapis Black Boxu do EEPROM |
set_pwm1_duty(160); // pomalu vpred |
set_pwm2_duty(160); |
output_low(MOT_L); |
output_low(MOT_R); |
}; |
set_adc_channel(LMAX); // Levy UV sensor |
for(n=0;n<20;n++) if(input(HREF)) goto next_snap; |
if(read_adc()<THR) cas=CASMIN; |
set_adc_channel(RMAX); // Pravy UV sensor |
for(n=0;n<20;n++) if(input(HREF)) goto next_snap; |
if(read_adc()<THR) cas=CASMAX; |
}; |
} |
} |
Property changes: |
Added: svn:keywords |
+Id Rev |
\ No newline at end of property |
/roboti/istrobot/camerus/SW/876/camerus.PJT |
---|
0,0 → 1,57 |
[PROJECT] |
Target=camerus.HEX |
Development_Mode= |
Processor=0x876A |
ToolSuite=CCS |
[Directories] |
Include=C:\Program Files\PICC\devices\;C:\Program Files\PICC\Dr |
Library= |
LinkerScript= |
[Target Data] |
FileList=C:\dokumenty\svn\Kaklik\roboti\istrobot\camerus\SW\876\camerus.c |
BuildTool=C-COMPILER |
OptionString=+FM |
AdditionalOptionString= |
BuildRequired=1 |
[camerus.c] |
Type=4 |
Path= |
FileList= |
BuildTool= |
OptionString= |
AdditionalOptionString= |
[mru-list] |
1=camerus.c |
[Windows] |
0=0000 camerus.c 0 0 796 451 3 0 |
[Opened Files] |
1=C:\dokumenty\svn\Kaklik\roboti\istrobot\camerus\SW\876\camerus.c |
2=C:\dokumenty\svn\Kaklik\roboti\istrobot\camerus\SW\876\camerus.h |
3=C:\Program Files\PICC\devices\16F876A.h |
4=C:\dokumenty\svn\Kaklik\roboti\istrobot\camerus\SW\876\objizdka_L.c |
5= |
6= |
[debugperif] |
selected=Analog/Digital Conv |
[debugram] |
autoread=1 |
[debugeedata] |
autoread=1 |
[debugbreak] |
count=0 |
[pcwdebug] |
watchcol0=75 |
[debugwatch] |
count=0 |
[debugexpr] |
expr= |
sideeffects=0 |
[Units] |
Count=1 |
1=C:\dokumenty\svn\Kaklik\roboti\istrobot\camerus\SW\876\camerus.c (main) |
/roboti/istrobot/camerus/SW/876/objizdka_Lx.c |
---|
0,0 → 1,100 |
// **** Objeti cihly vlevo **** LLLL |
int8 n; |
int8 r1,r2,rr; |
int1 flag; |
SetServo(CASMAX); // max. doleva, zatoc kolmo na caru |
set_pwm1_duty(0); |
set_pwm2_duty(0); |
output_high(MOT_L); // vzad |
output_low(MOT_R); |
disp(1); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
while(get_timer1()<(odocounter+6)); // Popojed definovanou vzdalenost |
set_pwm1_duty(255); // reverz (zabrzdi) |
set_pwm2_duty(0); |
output_low(MOT_L); |
output_low(MOT_R); |
delay_ms(150); |
brzda(); |
set_pwm1_duty(80); |
set_pwm2_duty(80); |
set_adc_channel(LMAX); |
disp(2); |
cas=CASAVR-CASMIN; |
odocounter=get_timer1(); |
flag=1; |
rr=20; |
while(true) |
{ |
if(input(HREF)) |
{ |
if(!input(PROXIMITY)) |
{ |
if(cas>(CASMIN+10)) cas-=10; |
} |
else |
{ |
if(cas<(CASMAX-10)) cas+=10; |
}; |
SetServoQ(cas); |
// Elektronicky diferencial |
if(cas<CASAVR) {r1=cas-CASMIN; r2=CASAVR-CASMIN;}; // Normovani vystupni hodnoty radkoveho snimace |
if(cas==CASAVR) {r1=cas-CASMIN; r2=cas-CASMIN;}; // pro rizeni rychlosti motoru |
if(cas>CASAVR) {r1=CASAVR-CASMIN; r2=CASMAX-cas;}; // Rozsah 1 az 92 |
if (r1>(CASAVR-CASMIN-rr)) r1=(r1<<1)+rr-(CASAVR-CASMIN); // Neco jako nasobeni |
if (r2>(CASAVR-CASMIN-rr)) r2=(r2<<1)+rr-(CASAVR-CASMIN); |
set_pwm1_duty(r1); |
set_pwm2_duty(r2); |
while(input(HREF)); |
}; |
if(get_timer1()>(odocounter+5)) // Prodleva, nez se zacne detekovat cara |
{ |
if(flag==1) {disp(3); flag=0;}; |
if(read_adc()<THR_L) {delay_us(600); if (read_adc()<THR_L) {delay_us(600); if (read_adc()<THR_L) break;};}; |
}; |
}; |
disp(4); |
while (read_adc()<THR_L); |
SetServo(CASMIN); // max. doleva L |
set_pwm1_duty(0); |
set_pwm2_duty(140); |
while (read_adc()>THR_L); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
while(get_timer1()<(odocounter+3)); // Popojed definovanou vzdalenost |
set_pwm1_duty(0); // vypni motory |
set_pwm2_duty(0); |
/* |
set_pwm1_duty(0); // reverz (zabrzdi) |
set_pwm2_duty(0); |
output_low(MOT_L); |
output_high(MOT_R); |
*/ |
SetServo(CASAVR-CASMIN); // doprostred |
disp(5); |
set_pwm1_duty(255); // max. vpred |
set_pwm2_duty(255); |
output_low(MOT_L); |
output_low(MOT_R); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
while(get_timer1()<(odocounter+2)) // Ujed kousek |
{ |
set_adc_channel(LMAX); // Levy UV sensor |
delay_us(40); |
if(read_adc()<THR_L) {cas=CASMIN; break;}; // Prejeli jsme caru vlevo |
set_adc_channel(RMAX); // Pravy UV sensor |
delay_us(40); |
if(read_adc()<THR_L) {cas=CASMAX; break;}; // Prejeli jsme caru vpravo |
cas=CASAVR-CASMIN; // Cara je rovne |
}; |
/roboti/istrobot/camerus/SW/876/objizdka_R.c |
---|
0,0 → 1,170 |
// **** Objeti cihly vpravo **** RRRR |
int8 n,i; |
int16 j; |
set_adc_channel(RMAX); |
SetServo(CASMIN); // max. doleva L |
set_pwm1_duty(0); // vzad |
set_pwm2_duty(0); |
output_low(MOT_L); |
output_high(MOT_R); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
while(get_timer1()<(odocounter+8)); // Popojed definovanou vzdalenost |
set_pwm1_duty(0); // reverz (zabrzdi) |
set_pwm2_duty(255); |
output_low(MOT_L); |
output_low(MOT_R); |
delay_ms(215); |
brzda(); |
disp(1); |
SetServo((CASAVR-CASMIN)); // rovne S |
set_pwm1_duty(160); // vpred |
set_pwm2_duty(160); |
output_low(MOT_L); |
output_low(MOT_R); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
for(n=1;n<=7;n++) |
{ |
while(get_timer1()<(odocounter+n)); // Popojed |
SetServoQ((CASAVR-CASMIN)); |
}; |
i=0; |
disp(2); // Postupne doleva |
set_pwm1_duty(130); |
set_pwm2_duty(140); |
odocounter=get_timer1(); |
for(n=1;n<=10;n++) |
{ |
while(get_timer1()<(odocounter+n)); |
SetServoQ((CASAVR-CASMIN)-i); |
set_pwm1_duty(130-i); |
i+=8; |
}; |
/* |
disp(3); |
odocounter=get_timer1(); |
for(n=1;n<=7;n++) |
{ |
while(get_timer1()<(odocounter+n)); |
SetServoQ((CASAVR-CASMIN)-i); |
set_pwm1_duty(130-i); |
i-=8; |
}; |
disp(4); |
odocounter=get_timer1(); |
for(n=1;n<=7;n++) |
{ |
while(get_timer1()<(odocounter+n)); |
SetServoQ((CASAVR-CASMIN)-i); |
set_pwm1_duty(130-i); |
i+=8; |
}; |
*/ |
disp(5); |
odocounter=get_timer1(); |
//!!!!for(n=1;n<=5;n++) |
for(n=1;n<=4;n++) |
{ |
while(get_timer1()<(odocounter+n)); |
SetServoQ((CASAVR-CASMIN)-i); |
set_pwm1_duty(130-i); |
i-=16; |
}; |
disp(6); |
set_pwm1_duty(80); // vpred |
set_pwm2_duty(80); |
output_low(MOT_L); |
output_low(MOT_R); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
for(n=1;n<=3;n++) |
{ |
while(get_timer1()<(odocounter+n)); |
SetServoQ((CASAVR-CASMIN)); |
}; |
disp(7); |
while(true) |
{ |
set_adc_channel(LMAX); // Levy UV sensor |
delay_us(40); |
if(read_adc()<THRESHOLD) {delay_us(600); if(read_adc()<THRESHOLD) {cas=CASMIN; break;}; }; // Prejeli jsme caru vlevo |
set_adc_channel(RMAX); // Pravy UV sensor |
delay_us(40); |
if(read_adc()<THRESHOLD) {delay_us(600); if(read_adc()<THRESHOLD) {cas=CASMAX; break;}; }; // Prejeli jsme caru vpravo |
} |
if(cas==CASMIN) |
{ |
set_adc_channel(RMAX); // Pravy UV sensor |
for(j=0;j<10000;j++) |
{ |
if(input(HREF)) {SetServoQ(CASMIN); while(input(HREF));}; // doleva |
if (read_adc()<THRESHOLD) break; |
} |
} |
else |
{ |
set_adc_channel(LMAX); // Levy UV sensor |
for(j=0;j<10000;j++) |
{ |
if(input(HREF)) {SetServoQ(CASMAX); while(input(HREF));}; // doprava |
if (read_adc()<THRESHOLD) break; |
} |
} |
set_adc_channel(RMAX); // Pravy UV sensor |
set_pwm1_duty(0); // zabrzdi |
set_pwm2_duty(0); |
output_high(MOT_L); |
output_high(MOT_R); |
SetServo(CASAVR-CASMIN); // doprostred |
delay_ms(100); |
brzda(); |
// Tady jsou s velkou pravdepodobnosti obe cidla za carou a jsme kolmo k care |
SetServo(CASMIN); // max. doleva L |
set_pwm1_duty(0); // vzad |
set_pwm2_duty(0); |
output_low(MOT_L); |
output_high(MOT_R); |
while (read_adc()>THRESHOLD); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
while(get_timer1()<(odocounter+4)); // Popojed definovanou vzdalenost |
set_pwm1_duty(0); // reverz (zabrzdi) |
set_pwm2_duty(255); |
output_low(MOT_L); |
output_low(MOT_R); |
SetServo(CASAVR-CASMIN); // doprostred |
delay_ms(100); |
brzda(); |
set_pwm1_duty(255); // max. vpred |
set_pwm2_duty(255); |
output_low(MOT_L); |
output_low(MOT_R); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
while(get_timer1()<(odocounter+2)) // Ujed kousek |
{ |
set_adc_channel(LMAX); // Levy UV sensor |
delay_us(40); |
if(read_adc()<THRESHOLD) {cas=CASMIN; break;}; // Prejeli jsme caru vlevo |
set_adc_channel(RMAX); // Pravy UV sensor |
delay_us(40); |
if(read_adc()<THRESHOLD) {cas=CASMAX; break;}; // Prejeli jsme caru vpravo |
cas=CASAVR-CASMIN; // Cara je rovne |
}; |
//stav=cihla; // Stav po objeti cihly, uz zadna cihla asi nebude |
//odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
//rr=60; // Nerozumna rychlost pro rozjeti |
/roboti/istrobot/camerus/SW/876/camerus.h |
---|
0,0 → 1,16 |
#include <16F876A.h> |
#device adc=8 |
#FUSES NOWDT //No Watch Dog Timer |
#FUSES HS //High speed Osc (> 4mhz) |
#FUSES NOPUT //No Power Up Timer |
#FUSES NOPROTECT //Code not protected from reading |
#FUSES NODEBUG //No Debug mode for ICD |
#FUSES NOBROWNOUT //No brownout reset |
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O |
#FUSES NOCPD //No EE protection |
#FUSES NOWRT //Program memory not write protected |
#use delay(clock=20000000) |
#use i2c(Master,Fast,sda=PIN_C4,scl=PIN_C3,force_hw) |
/roboti/istrobot/camerus/SW/876 |
---|
Property changes: |
Added: svn:ignore |
+*.bak |
+*.BAK |
+*.cof |
+*.err |
+*.hex |
+*.lst |
+*.sta |
+*.sym |
+*.tre |
/roboti/istrobot/camerus/SW/873/camerus.PJT |
---|
0,0 → 1,55 |
[PROJECT] |
Target=camerus.HEX |
Development_Mode= |
Processor=0x873A |
ToolSuite=CCS |
[Directories] |
Include=C:\Program Files\PICC\devices\;C:\Program Files\PICC\Dr |
Library= |
LinkerScript= |
[Target Data] |
FileList=C:\dokumenty\svn\Kaklik\roboti\istrobot\camerus\SW\873\camerus.c |
BuildTool=C-COMPILER |
OptionString=+FM |
AdditionalOptionString= |
BuildRequired=1 |
[camerus.c] |
Type=4 |
Path= |
FileList= |
BuildTool= |
OptionString= |
AdditionalOptionString= |
[mru-list] |
1=camerus.c |
[Windows] |
0=0000 camerus.c 0 0 796 451 3 0 |
[Opened Files] |
1=C:\dokumenty\svn\Kaklik\roboti\istrobot\camerus\SW\873\camerus.c |
2=C:\dokumenty\svn\Kaklik\roboti\istrobot\camerus\SW\873\camerus.h |
3=C:\Program Files\PICC\devices\16F873A.h |
4= |
[debugperif] |
selected=Analog/Digital Conv |
[debugram] |
autoread=1 |
[debugeedata] |
autoread=1 |
[debugbreak] |
count=0 |
[pcwdebug] |
watchcol0=75 |
[debugwatch] |
count=0 |
[debugexpr] |
expr= |
sideeffects=0 |
[Units] |
Count=1 |
1=C:\dokumenty\svn\Kaklik\roboti\istrobot\camerus\SW\873\camerus.c (main) |
/roboti/istrobot/camerus/SW/873/camerus.c |
---|
0,0 → 1,512 |
//********* Robot Camerus pro IstRobot 2007 ************ |
//"$Id: camerus.c 229 2007-04-09 11:41:19Z kakl $" |
//***************************************************** |
#include ".\camerus.h" |
#USE FAST_IO (C) // Brana C je ve FAST_IO modu, aby slo rychle cist z kamery |
// A/D vstupy |
#define RMAX 4 // AN4/RA5 - leve cidlo na vyjeti z cary |
#define LMAX 3 // AN3/RA3 - prave cidlo na vyjeti z cary |
#define CERVENA 2 // AN2/RA2 - cervene kroutitko |
#define ZELENA 1 // AN1/RA0 - zelene kroutitko |
#define MODRA 0 // AN0/RA1 - modre kroutitko |
// I/O |
#define HREF PIN_C5 // Signal HREF z kamery (v H po celou dobu radku) |
#define PIX PIN_C6 // Vstup pro body z kamery (za trivstupim hradlem OR (dig. komparator)) |
#define SERVO PIN_B4 // Vystup na servo (1 az 2ms po cca 20ms (synchronizovano snimkovym kmitoctem)) |
#define MOT_L PIN_B5 // Smer otaceni leveho motoru; druhy pol je RC2 |
#define MOT_R PIN_B6 // Smer otaceni praveho motoru; druhy pol je RC1 |
#define MOT_1 PIN_C1 // PWM vystpy motoru |
#define MOT_2 PIN_C2 // |
#define DATA PIN_B2 // K modulu LEDbar data |
#define CP PIN_B1 // K modulu LEDbar hodiny |
//#define ODO PIN_C0 // Ze snimace z odometrie z praveho kola na TIMER1 |
// Jeden impuls je 31,25mm |
#define IRRX PIN_B0 // Vstup INT, generuje preruseni pri prekazce |
#define IRTX PIN_B3 // Modulovani vysilaci IR LED na detekci prekazky |
#define PROXIMITY PIN_C7 // Cidlo kratkeho dosahu na cihlu |
#define CASMIN 6 // Rozsah radku snimace |
#define CASMAX 192 |
#define CASAVR ((CASMAX+CASMIN) / 2) |
#define OFFSETO 0x9F //0x9F // Vystredeni serva pro objeti prekazky |
#define THR 90 // Threshold pro UV cidla na caru |
#byte INTCON = 0x0B // Interrupt configuration register |
#bit GIE = INTCON.7 |
#bit PEIE = INTCON.6 |
#bit TMR0IE = INTCON.5 |
#bit INT0IE = INTCON.4 |
#bit RBIE = INTCON.3 |
#bit TMR0IF = INTCON.2 |
#bit INT0IF = INTCON.1 |
#bit RBIF = INTCON.0 |
enum stavy {start,rozjezd,jizda,cihla,pocihle,cil}; |
stavy stav; // Kde jsme na trati |
int8 cas; // Cas hrany bila/cerna v radce |
int8 stred; // Vystredeni kolecka |
int16 odocounter; // Zaznamenani aktualniho stavu pocitadla odometrie |
int8 rr; // Promenna na ulozeni Rozumne rychlost |
int8 rrold; |
//int8 pole_h[0x40]; |
int8 pole_l[0x40]; |
// Zobrazeni jednoho byte na modulu LEDbar |
inline void disp(int8 x) |
{ |
int n; |
for(n=0;n<=7;n++) |
{ |
if (x & 1 == 1) output_low(DATA); else output_high(DATA); |
output_high(CP); |
x>>=1; |
output_low(CP); |
} |
} |
// Blikani LEDbarem ve stilu Night Rider |
void NightRider(int8 x) |
{ |
int n,i,j; |
for(j=0;j<x;j++) |
{ |
i=0x01; |
for(n=0;n<7;n++) |
{ |
disp(i); |
rotate_left(&i, 1); |
delay_ms(40); |
} |
for(n=0;n<7;n++) |
{ |
disp(i); |
rotate_right(&i, 1); |
delay_ms(40); |
} |
} |
disp(i); |
delay_ms(40); |
i=0; |
disp(i); |
} |
// Brzdeni motorama stridou 1:1 |
void brzda() |
{ |
int8 n,i; |
set_pwm1_duty(0); // vypni PWM |
set_pwm2_duty(0); |
setup_ccp1(CCP_OFF); |
setup_ccp2(CCP_OFF); |
for (n=0;n<200;n++) |
{ |
output_low(MOT_L); |
output_low(MOT_R); |
output_high(MOT_1); |
output_high(MOT_2); |
delay_us(200); |
output_high(MOT_L); |
output_high(MOT_R); |
output_low(MOT_1); |
output_low(MOT_2); |
delay_us(200); |
} |
output_low(MOT_L); // smer vpred |
output_low(MOT_R); |
setup_ccp1(CCP_PWM); // RC1 // Zapni PWM pro motory |
setup_ccp2(CCP_PWM); // RC2 |
} |
void SetServo(int8 angle) |
{ |
int8 n; |
for(n=0; n<14; n++) |
{ |
output_high(SERVO); // Odvysilani impuzu 1 az 2ms pro servo |
delay_us(1000); |
delay_us(stred); |
delay_us(stred); |
delay_us(stred); |
delay_us(angle); |
delay_us(angle); |
output_low(SERVO); |
delay_ms(18); |
} |
} |
inline void SetServoQ(int8 angle) |
{ |
output_high(SERVO); // Odvysilani impuzu 1 az 2ms pro servo |
delay_us(1000); |
delay_us(stred); |
delay_us(stred); |
delay_us(stred); |
delay_us(angle); |
delay_us(angle); |
output_low(SERVO); |
} |
//---------------------------- INT -------------------------------- |
#int_EXT |
EXT_isr() // Preruseni od prekazky |
{ |
set_pwm1_duty(0); // zabrzdi levym kolem, prave vypni |
set_pwm2_duty(0); |
output_high(MOT_L); |
output_low(MOT_R); |
// Ujistime se, ze prijaty signal je z naseho IR vysilace |
output_high(IRTX); // Vypni LED na detekci prekazky |
delay_ms(2); |
if (!input(IRRX)) // stale nas signal? |
{ |
output_low(MOT_L); // je odraz -> vpred |
output_low(MOT_R); |
return; |
}; |
output_low(IRTX); // Zapni LED na detekci prekazky |
delay_ms(10); |
if (input(IRRX)) // stale nas signal? |
{ |
output_low(MOT_L); // neni odraz -> vpred |
output_low(MOT_R); |
return; |
}; |
//!!! if(stav==cihla) while(true); // Zastav na furt, konec drahy |
// if(stav==cihla) return; // Po druhe nic neobjizdej |
// Pozor na rozjezd |
if(stav==jizda) // Objed cihlu |
{ |
#include ".\objizdka_L.c" |
} |
} |
//---------------------------------- MAIN -------------------------------------- |
void main() |
{ |
int8 offset; // Promena pro ulozeni offsetu |
int8 r1; // Rychlost motoru 1 |
int8 r2; // Rychlost motoru 2 |
setup_adc_ports(ALL_ANALOG); // Zapnuti A/D prevodniku pro cteni kroutitek |
setup_adc(ADC_CLOCK_INTERNAL); |
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); // Casovac pro mereni casu hrany W/B v radce |
setup_timer_1(T1_EXTERNAL); // Cita pulzy z odometrie z praveho kola |
setup_timer_2(T2_DIV_BY_16,255,1); // Casovac PWM motoru |
setup_ccp1(CCP_PWM); // RC1 // PWM pro motory |
setup_ccp2(CCP_PWM); // RC2 |
setup_comparator(NC_NC_NC_NC); |
setup_vref(FALSE); |
set_tris_c(0b11111001); // Nastaveni vstup/vystup pro branu C, protoze se nedela automaticky |
set_pwm1_duty(0); // Zastav motory |
set_pwm2_duty(0); |
output_low(MOT_L); // Nastav smer vpred |
output_low(MOT_R); |
output_low(IRTX); // Zapni LED na detekci prekazky |
NightRider(1); // Aby se poznalo, ze byl RESET |
// taky se musi pockat, nez se rozjede kamera, nez se do ni zacnou posilat prikazy |
/* |
for(cas=0;cas<=0x3F;cas++) |
{ |
pole_h[cas]=0x80|cas; |
pole_l[cas]=cas; |
} |
for(cas=0;cas<=0x7F;cas+=2) |
{ |
write_eeprom(cas,pole_h[cas/2]); |
write_eeprom(cas+1,pole_l[cas/2]); |
} |
*/ |
while(true) |
{ |
output_high(PIN_B0); |
delay_ms(200); |
output_low(PIN_B0); |
delay_ms(200); |
} |
//... Nastaveni sonaru ... |
i2c_start(); |
i2c_write(0xE0); |
i2c_write(0x02); // dosah |
i2c_write(0x03); // n*43mm |
i2c_stop(); |
i2c_start(); |
i2c_write(0xE0); |
i2c_write(0x01); // zesileni |
i2c_write(0x01); // male, pro eliminaci echa z minuleho mereni |
i2c_stop(); |
// pro ladeni sonaru |
/* |
while(true) |
{ |
i2c_start(); // Sonar Ping |
i2c_write(0xE0); |
i2c_write(0x0); |
i2c_write(0x51); // 50 mereni v palcich, 51 mereni v cm, 52 v us |
i2c_stop(); |
delay_ms(100); |
i2c_start(); // Odraz ze sonaru |
i2c_write(0xE0); |
i2c_write(0x3); |
i2c_stop(); |
i2c_start(); |
i2c_write(0xE1); |
cas=i2c_read(0); |
i2c_stop(); |
disp(cas); |
} |
*/ |
//... Nastaveni kamery ... |
i2c_start(); // Soft RESET kamery |
i2c_write(0xC0); // Pro single slave musi mit vsechny zapisy adresu C0h |
i2c_write(0x12); // Adresa registru COMH |
i2c_write(0x80 | 0x24); // Zapis ridiciho slova |
i2c_stop(); |
i2c_start(); // BW |
i2c_write(0xC0); |
i2c_write(0x28); |
i2c_write(0b01000001); |
i2c_stop(); |
/* |
i2c_start(); // Contrast (nema podstatny vliv na obraz) |
i2c_write(0xC0); |
i2c_write(0x05); |
i2c_write(0xA0); // 48h |
i2c_stop(); |
i2c_start(); // Band Filter (pokud by byl problem se zarivkama 50Hz) |
i2c_write(0xC0); |
i2c_write(0x2D); |
i2c_write(0x04 | 0x03); |
i2c_stop(); |
*/ |
i2c_start(); // Fame Rate |
i2c_write(0xC0); |
i2c_write(0x2B); |
i2c_write(0x00); // cca 17ms (puvodni hodnota 5Eh = 20ms) |
i2c_stop(); |
i2c_start(); // VSTRT |
i2c_write(0xC0); |
i2c_write(0x19); |
i2c_write(118); // prostredni radka |
i2c_stop(); |
i2c_start(); // VEND |
i2c_write(0xC0); |
i2c_write(0x1A); |
i2c_write(118); |
i2c_stop(); |
NightRider(1); // Musi se dat cas kamere na AGC a AEC |
{ // Mereni expozice |
int8 t1,t2; |
i2c_start(); // Brightness, zacni od uplne tmy |
i2c_write(0xC0); |
i2c_write(0x06); |
i2c_write(0); // 80h default |
i2c_stop(); |
delay_ms(50); |
for(offset=0x04;offset<(255-0x04);offset+=0x04) // Zacni od jasu 10h |
{ |
i2c_start(); // Brightness |
i2c_write(0xC0); |
i2c_write(0x06); |
i2c_write(offset); // 80h default |
i2c_stop(); |
disp(offset); |
delay_ms(50); |
t1=0; |
t2=0; |
while(!input(HREF)); // Cekej nez se zacnou posilat pixely z radky |
delay_ms(5); |
while(!input(HREF)); // Cekej nez se zacnou posilat pixely z radky |
set_timer0(0); // Vynuluj pocitadlo casu |
if(!input(PIX)) continue; |
while(input(PIX)); |
t1=get_timer0(); // Precti cas z citace casu hrany |
set_timer0(0); // Vynuluj pocitadlo casu |
while(!input(PIX)); |
t2=get_timer0(); |
if((t1>60) && (t1<140) && (t2>5) && (t2<=10)) break; // Vidis, co mas? |
delay_ms(2); // Preskoc druhou radku z kamery |
}; |
delay_ms(1000); // Nech chvili na displayi zmerenou hodnotu |
} |
set_adc_channel(CERVENA); // --- Kroutitko pro jas --- |
delay_ms(1); |
offset=read_adc(); |
offset &= 0b11111100; // Dva nejnizsi bity ignoruj |
// offset += 0x70; // Jas nebude nikdy nizsi |
disp(offset); |
i2c_start(); // Brightness |
i2c_write(0xC0); |
i2c_write(0x06); |
i2c_write(offset); // 80h default |
i2c_stop(); |
delay_ms(1000); // Nech hodnotu chvili na displayi |
set_adc_channel(ZELENA); // --- Kroutitko pro vykon motoru --- |
delay_ms(1); |
rr=read_adc()>>2; // 0-31 // Pokud by se zvetsil rozsah, tak zkontrolovat jakonasobeni !!! |
rrold=rr; |
cas=CASAVR-CASMIN; // Inicializace promenych, aby neslo servo za roh |
// a aby se to rozjelo jeste dneska |
stav=start; // Jsme na startu |
set_timer1(0); // Vynuluj citac odometrie |
// ........................... Hlavni smycka ................................ |
while(true) |
{ |
int8 pom; |
int8 n; |
next_snap: |
pom=0; |
disable_interrupts(GLOBAL); //----------------------- Critical |
while(input(HREF)); // Preskoc 1. radku |
while(!input(HREF)); // Cekej nez se zacnou posilat pixely z 2. radky |
set_timer0(0); // Vynuluj pocitadlo casu |
while(input(HREF)) // Po dobu vysilani radky cekej na hranu W/B |
{ |
// !!!!Dodelat rozpoznani cerne cary napric pro zastaveni ? |
if(!input(PIX)) // Pokud se X-krat za sebou precetla CERNA |
if(!input(PIX)) |
// if(!input(PIX)) |
{ |
pom=get_timer0(); // Precti cas z citace casu hrany |
break; |
}; |
}; |
while(input(HREF)); // Pockej na shozeni signalu HREF |
if((pom<CASMAX) && (pom>CASMIN)) cas=pom; // Orizni konce radku |
// Na konci obrazovaho radku to blbne. Jednak chyba od apertury |
// a vubec to nejak na kraji nefunguje. |
output_high(SERVO); // Odvysilani impuzu 1 az 2ms pro servo |
delay_us(1000); |
delay_us(stred); |
delay_us(stred); |
delay_us(stred); |
delay_us(cas); |
delay_us(cas); |
output_low(SERVO); |
// Elektronicky diferencial |
if(cas<CASAVR) {r1=cas-CASMIN; r2=CASAVR-CASMIN;}; // Normovani vystupni hodnoty radkoveho snimace |
if(cas==CASAVR) {r1=cas-CASMIN; r2=cas-CASMIN;}; // pro rizeni rychlosti motoru |
if(cas>CASAVR) {r1=CASAVR-CASMIN; r2=CASMAX-cas;}; // Rozsah 1 az 92 |
enable_interrupts(GLOBAL); //----------------------- Critical |
if (r1>(CASAVR-CASMIN-rr)) r1=(r1<<1)+rr-(CASAVR-CASMIN); // Neco jako nasobeni |
if (r2>(CASAVR-CASMIN-rr)) r2=(r2<<1)+rr-(CASAVR-CASMIN); |
// r1<<=1; // Rychlost je dvojnasobna |
// r2<<=1; // Rozsah 2 az 184 |
/* Nerozumna rychlost po cihle |
if ((stav==cihla)&&(get_timer1()>(odocounter+5))) // Snizime rychlost po ujeti |
{ |
rr=rrold; |
stav=pocihle; |
}; |
*/ |
if ((stav==jizda)||(stav==cihla)||(stav==rozjezd)) //||(stav==pocihle)) // Jizda |
{ |
set_pwm1_duty(r1); |
set_pwm2_duty(r2); |
} |
else |
{ |
set_pwm1_duty(0); // Zastaveni |
set_pwm2_duty(0); |
}; |
if((stav==rozjezd)&&(get_timer1()>10)) // musi ujet alespon 31cm |
{ |
ext_int_edge(H_TO_L); // Nastav podminky preruseni od cihly |
INT0IF=0; // Zruseni predesle udalosti od startera |
enable_interrupts(INT_EXT); |
enable_interrupts(GLOBAL); |
stav=jizda; |
}; |
if(stav==start) // Snimkuje, toci servem a ceka na start |
{ |
set_adc_channel(MODRA); // Kroutitko na vystredeni predniho kolecka |
Delay_ms(1); |
stred=read_adc(); |
if(!input(PROXIMITY)) |
{ |
disp(0x80); |
while(input(PROXIMITY)); // Cekej, dokud starter neda ruku pryc |
set_timer1(0); // Vynuluj citac odometrie |
set_pwm1_duty(255); // Rychly rozjezd !!! Zkontrolovat na oscyloskopu |
set_pwm2_duty(255); |
disp(0x01); |
while(get_timer1()<=4) // Ujed alespon 12cm |
{ |
set_adc_channel(LMAX); // Levy UV sensor |
delay_us(40); |
if(read_adc()<THR) {cas=CASMIN; break;}; // Prejeli jsme caru vlevo |
set_adc_channel(RMAX); // Pravy UV sensor |
delay_us(40); |
if(read_adc()<THR) {cas=CASMAX; break;}; // Prejeli jsme caru vpravo |
cas=CASAVR-CASMIN; // Cara je rovne |
}; |
stav=rozjezd; |
}; |
} |
pom=0x80; // Zobrazeni pozice cary na displayi |
for(n=CASMAX/8; n<cas; n+=CASMAX/8) pom>>=1; |
disp(pom); |
while(true) // Ve zbytku casu snimku cti krajni UV senzory |
{ |
set_adc_channel(LMAX); // Levy UV sensor |
for(n=0;n<20;n++) if(input(HREF)) goto next_snap; |
if(read_adc()<THR) cas=CASMIN; |
set_adc_channel(RMAX); // Pravy UV sensor |
for(n=0;n<20;n++) if(input(HREF)) goto next_snap; |
if(read_adc()<THR) cas=CASMAX; |
}; |
} |
} |
/roboti/istrobot/camerus/SW/873/camerus.h |
---|
0,0 → 1,16 |
#include <16F873A.h> |
#device adc=8 |
#FUSES NOWDT //No Watch Dog Timer |
#FUSES HS //High speed Osc (> 4mhz) |
#FUSES NOPUT //No Power Up Timer |
#FUSES NOPROTECT //Code not protected from reading |
#FUSES NODEBUG //No Debug mode for ICD |
#FUSES NOBROWNOUT //No brownout reset |
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O |
#FUSES NOCPD //No EE protection |
#FUSES NOWRT //Program memory not write protected |
#use delay(clock=20000000) |
#use i2c(Master,Fast,sda=PIN_C4,scl=PIN_C3,force_hw) |
/roboti/istrobot/camerus/SW/873 |
---|
Property changes: |
Added: svn:ignore |
+*.bak |
+*.BAK |
+*.cof |
+*.err |
+*.hex |
+*.lst |
+*.sta |
+*.sym |
+*.tre |
/roboti/istrobot/camerus/DOC/prevodovky/prevodovka.fcb |
---|
0,0 → 1,137 |
G90 G40 |
M40 |
M6 T1 |
M3 S6000 |
G0 X0Y0 Z2.5 |
G1 Z-3.4 F100.0 |
G0 Z50. |
X12.49 Y-10. |
Z2.5 |
G1 Z-3.4 |
G0 Z50. |
X21 Y-25.4 |
Z2.5 |
G1 Z-3.4 |
G0 Z50. |
X12.49 |
Z2.5 |
G1 Z-3.4 |
G0 Z50. |
X4 |
Z2.5 |
G1 Z-3.4 |
G0 Z50. |
M30 |
M9 |
M6 T2 |
M3 S6000 |
G0 X-3.071 Y-10.594 |
G0 Z2.5 |
G1 Z0 F100.0 |
X-7.035 Y-11.131 Z-0.5 |
X-5.053 Y-10.863 |
X-3.071 Y-10.594 |
G2 X-1.383 Y-11.879 I-2.87 J-12.081 |
G1 X0.599 Y-26.511 F200.0 |
G3 X24.381 I12.49 J-24.9 |
G1 X26.363 Y-11.879 |
G3 X4.84 Y1.725 I12.49 J-10. |
G2 X3.435 Y2.05 I4.293 J2.563 |
G3 X-1.249 Y-3.8 I0 J0 |
G2 X-0.625 Y-5.1 I-1.561 J-4.75 |
G3 X-1.383 Y-11.879 I12.49 J-10. |
G2 X-2.668 Y-13.567 I-2.87 J-12.081 F100.0 |
G1 X-3.071 Y-10.594 F200.0 |
X-7.035 Y-11.131 Z-1. F100.0 |
X-5.053 Y-10.863 |
X-3.071 Y-10.594 |
G2 X-1.383 Y-11.879 I-2.87 J-12.081 |
G1 X0.599 Y-26.511 F200.0 |
G3 X24.381 I12.49 J-24.9 |
G1 X26.363 Y-11.879 |
G3 X4.84 Y1.725 I12.49 J-10. |
G2 X3.435 Y2.05 I4.293 J2.563 |
G3 X-1.249 Y-3.8 I0 J0 |
G2 X-0.625 Y-5.1 I-1.561 J-4.75 |
G3 X-1.383 Y-11.879 I12.49 J-10. |
G2 X-2.668 Y-13.567 I-2.87 J-12.081 F100.0 |
G1 X-3.071 Y-10.594 F200.0 |
X-7.035 Y-11.131 Z-1.5 F100.0 |
X-5.053 Y-10.863 |
X-3.071 Y-10.594 |
G2 X-1.383 Y-11.879 I-2.87 J-12.081 |
G1 X0.599 Y-26.511 F200.0 |
G3 X24.381 I12.49 J-24.9 |
G1 X26.363 Y-11.879 |
G3 X4.84 Y1.725 I12.49 J-10. |
G2 X3.435 Y2.05 I4.293 J2.563 |
G3 X-1.249 Y-3.8 I0 J0 |
G2 X-0.625 Y-5.1 I-1.561 J-4.75 |
G3 X-1.383 Y-11.879 I12.49 J-10. |
G2 X-2.668 Y-13.567 I-2.87 J-12.081 F100.0 |
G1 X-3.071 Y-10.594 F200.0 |
X-7.035 Y-11.131 Z-2. F100.0 |
X-5.053 Y-10.863 |
X-3.071 Y-10.594 |
G2 X-1.383 Y-11.879 I-2.87 J-12.081 |
G1 X0.599 Y-26.511 F200.0 |
G3 X24.381 I12.49 J-24.9 |
G1 X26.363 Y-11.879 |
G3 X4.84 Y1.725 I12.49 J-10. |
G2 X3.435 Y2.05 I4.293 J2.563 |
G3 X-1.249 Y-3.8 I0 J0 |
G2 X-0.625 Y-5.1 I-1.561 J-4.75 |
G3 X-1.383 Y-11.879 I12.49 J-10. |
G2 X-2.668 Y-13.567 I-2.87 J-12.081 F100.0 |
G1 X-3.071 Y-10.594 F200.0 |
X-7.035 Y-11.131 Z-2.5 F100.0 |
X-5.053 Y-10.863 |
X-3.071 Y-10.594 |
G2 X-1.383 Y-11.879 I-2.87 J-12.081 |
G1 X0.599 Y-26.511 F200.0 |
G3 X24.381 I12.49 J-24.9 |
G1 X26.363 Y-11.879 |
G3 X4.84 Y1.725 I12.49 J-10. |
G2 X3.435 Y2.05 I4.293 J2.563 |
G3 X-1.249 Y-3.8 I0 J0 |
G2 X-0.625 Y-5.1 I-1.561 J-4.75 |
G3 X-1.383 Y-11.879 I12.49 J-10. |
G2 X-2.668 Y-13.567 I-2.87 J-12.081 F100.0 |
G1 X-3.071 Y-10.594 F200.0 |
X-7.035 Y-11.131 Z-3. F100.0 |
X-5.053 Y-10.863 |
X-3.071 Y-10.594 |
G2 X-1.383 Y-11.879 I-2.87 J-12.081 |
G1 X0.599 Y-26.511 F200.0 |
G3 X24.381 I12.49 J-24.9 |
G1 X26.363 Y-11.879 |
G3 X4.84 Y1.725 I12.49 J-10. |
G2 X3.435 Y2.05 I4.293 J2.563 |
G3 X-1.249 Y-3.8 I0 J0 |
G2 X-0.625 Y-5.1 I-1.561 J-4.75 |
G3 X-1.383 Y-11.879 I12.49 J-10. |
G2 X-2.668 Y-13.567 I-2.87 J-12.081 F100.0 |
G1 X-3.071 Y-10.594 F200.0 |
X-7.035 Y-11.131 Z-3.5 F100.0 |
X-5.053 Y-10.863 |
X-3.071 Y-10.594 |
G2 X-1.383 Y-11.879 I-2.87 J-12.081 |
G1 X0.599 Y-26.511 F200.0 |
G3 X24.381 I12.49 J-24.9 |
G1 X26.363 Y-11.879 |
G3 X4.84 Y1.725 I12.49 J-10. |
G2 X3.435 Y2.05 I4.293 J2.563 |
G3 X-1.249 Y-3.8 I0 J0 |
G2 X-0.625 Y-5.1 I-1.561 J-4.75 |
G3 X-1.383 Y-11.879 I12.49 J-10. |
G2 X-2.668 Y-13.567 I-2.87 J-12.081 F100.0 |
G0 z50 |
M6 T1 |
G0 X0 Y0 Z50 |
M30 |
/roboti/istrobot/camerus/DOC/prevodovky/README.txt |
---|
0,0 → 1,3 |
Pøevodovka 5:1 pro motor speed 300 |
Pøi zalepování loisek je nutno dbát, aby loisko v èele u motoru bylo na stranì motoru srovnáno s rovinou èela, jinak by docházelo k vyklánìní osy pøevodovky. |
/roboti/istrobot/camerus/DOC/Fotky/P3110001.JPG |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/roboti/istrobot/camerus/DOC/Fotky/P3110002.JPG |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/roboti/istrobot/camerus/DOC/Fotky/P3110003.JPG |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/roboti/istrobot/camerus/DOC/Fotky/P3110004.JPG |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/roboti/istrobot/camerus/DOC/Fotky/P3180013.JPG |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/roboti/istrobot/camerus/DOC/Fotky/P3180014.JPG |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/roboti/istrobot/camerus/DOC/Fotky/P3180015.JPG |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/roboti/istrobot/camerus/DOC/Fotky/P3180024.JPG |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/roboti/istrobot/camerus/DOC/Fotky/P3180025.JPG |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/roboti/istrobot/camerus/DOC/Fotky/P3180026.JPG |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/roboti/istrobot/camerus/DOC/Fotky/P3180027.JPG |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/roboti/istrobot/camerus/DOC/Fotky/P3180028.JPG |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/roboti/istrobot/camerus/DOC/Camerus.doc |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/roboti/istrobot/camerus/HW/CAM_AMA/BOARD.pdf |
---|
0,0 → 1,159 |
%PDF-1.3 |
%Çì¢ |
5 0 obj |
<</Length 6 0 R/Filter /FlateDecode>> |
stream |
+óIrÐJÒ˹Zj»ç³°è$gïHKjÒPC>g¥DÝÖM*¦m¸va¸ÎAwj2QéÐÓ`Ë'Ã%KcöNòiXÎÊÄêâ[JÍ"M4CC¤vsaÙ |
+(~¯±Ú±¯hÿ\Èã&õ*ÃïêW)½¢¢cºJÓU[Þ9]¥\Û«¾"㦹ÛtUGãÅéªMÏ` |
+Z·ÞHòþpßÆ |
+ SMʘj |
+Z&½³¢ºîNS@t§[æ°é%ͽ2Ê$±YNÑKÂTSpnt>Ïwb1ס'7égQ¯æÁ) |
+Z&íòlwýp»ÉGÞ1]5øŸØïöjziÁÍÆIWâ ylüô èkÔ6ønoÔF¥»mM'CûVÕ7 |
+Ö'ñ½ Û%>ºÎAö^«®²äáÄN9yo1úÜáµ Ó |
+óhLÍ9hTÞ@ôdØþ³oåá)]I3~ªÆ`ydhå¥üL%Â8Í¢otIÞÍ,X {³ôf2³Pz`ðkf1'÷ÃSÌ,xÁ6:úfyJWYåfÍsÍ=®Z[&ÎÑsÁعM©-<UµEyú8õ çVJº¨-$>)¼´sÐ2)¾d¾ |
+O]½¾çá)]I*¥¼ëÉÖ/åg*qP2ÖY·ø¼©zU£¶ðã¥Y´¶8Y(c ¶0}ÞYP[è¶{´¶8$5³ Ë3Í,ç ®9îðDm©ðáóS¾píÖ^¨%N¾ÁDztTÓ5¼¶Tx9hjÎAˤ§¬Z[kKpÐJRÑ{jmÑrÞ³sµÔ8(EûFÂOÁ»Eº.ö0kKp ÒQM×ðÚÂBkjÎAf©-4K?Í ý³<¥+IÍ,ÁrN3-"ñ%â ¢l[ê==Ñi=Ï |
+eÛ¢Ì3Hpfµ8e·¤½ñ8h½ÇØõlW¤ §¿:-²É='byDò38(ÅF[ôDäÝ̶ Åô0¶-ÎAfJwëHGÅú=ã 3{.á<érimË3Í,ç Ý92ñmI¯cò][ |
+<B¤¨3j1Vú°r§ÝµE>Îð ±ÔIOñ³.zëYÂÃóð®$½}·ÜÙº¿¢©ÄAÉ,¬-²Ý¥àÝÌ"uD÷ö0kKp R| ïfÛáºqEÚ¥f~YÒ¤fÆ@y¦Åò`Ä&'$`vM&U_ÿþ?(=&ûϤç>÷°ï@Ïç9¡Ò'á¬}2O'5ÓvKqbÜFzè«ÎAˤS4`]ç" ó<<¤+Iq¨o²<Ðe¥üL%âUÛÜ,\$±Å¢MÍÒë©fárÍbÌEã °:\:Ô,J\°âacLÍ9htCÍ¢)À,ÁA+IEï©fÑò./åg*qm·d |
+¢Lì>M³(1Ól#Lé±pú tt¦ÛøJ´\ |
+f ¦@³8-r· òùmí|E)?SôCúõºX©¶Áé%-VZe²XzJÞÆÃãLy¦|ùÍ ×þ#ôg:§ÊÍí[Þª®]hÆúÇÂodúeÞxúV!ôVhbçñ±X9Ö±XÎd'^¢Ó1U/çgÜóoç+qÐÒó#(ÅÓh×s ¯ÄAˤ²;§p.)O+§t%é¥g ËVê+JùJgÙ¹£÷ûpôþp't¸ÙÿOrNÿHîòï?rÿù/96¤cC%M©¦øúÛ+É4¾ðþøHG¼ÿè¨/÷æÇvý»íá ÞqXoÔç^xï?òÂ2à>þÒýú®_yû%ÏÀä-8_ºê#yC¾¿zCâãª'¸zCú×`ñ/Góu¬¯ðdüüO=òIyÄ0Rïwõ7¶Õ©ØsÖÍlv<Å_ó-ýí/ëË<XuC·y¸ZilÓÞýör?Xã ¼fDsñM|É÷ýGþ¸ØúÕýîá{ýÊï7ûëv»ð&ÎoùÞò¿âüó_ÿv¬¾ï[Ä·_Å7ë𼮪Å|Éßÿ¿ñßx ÿÞçûw)'öú$õè¯Z£mm6¯úªéÏ~×cÿ#!ðþÎøHg¼ÿè,;©¡säï©ð[}¿:Ïáq"Îðg`'Jä3'ò9é¬ |
+>Òï?:cáãëqí¥P<\u¾"ñKwH2ðbVÎEµ77Äö |
+1Gç"ÎZÌ¥.úÆAx7ç¦_XócJ̹ZÈÌ%Û²æ¤ië!¿lýeWE*÷¹¤·W8§þçô£t×ö+ËÝõüwåÃ¥ã/ä|¤+ß:áú49óÅjs_ׯÜþý»ãç>ÿ¼ÄA×ÇñÓÞoGðãISsJWÙÿÆ1éà÷?pðÃJAKþõ(~÷Ët¸Esê${W¿ñáxÿÑ!~¼.ñc=®_ûáß??,.»Íj4Bws'}ð®õÂh{åLìXóqÀÉ2Cóß80å#áòþpùHGɼÿè(8@ïþþö6?×ÇãÒ!::JýÙ<?;°ç§c n}Ðz4Ñ_<xèWÇ |
+Iäõé£wºÜìú¯?+Ñì¢4|»Övð |
+µwºdíúÅ kËÙº_ØÖíbµv\§¾îÎ9-ÚµoÏKæ>qõÜǸ´s»_U/³~ÁÝôKéô:¼þ |
+wîîKQõ@|·×Ì(ñóù§£-váûI÷6oί¼ÞG1øuÊZ²aÓ,b1G9|XÞ8c ÌCkIeÆeî§ë+YçÈkèY[Ra#¼:7u_kzëáÂ2Ç$sZ< õNIIæ´ð¥bsZXsÖ9Éù-Ì$9-½P]¥xw7'-Ãd®¬ïdÑÇ=ðCâcj3ªxÎAÛ>î>¼säëfêl/MbþÌ#çë¥*Ê÷ÓùF»ý3{üs·ÎAË¥é,9á12¨×{@ª¤åb\Ýn©I*8ÐÒnéÙ!Z3ô-DÍÐÂ¥åyºgqvïàî.XÍÝ]*·úd¾[ ³8ÎA뻾ôÎ-îÐR9ÐT}»wb»thli°³f×sA+ùAºÁþ£vÿ%6å/çòïƧ`dÖÚÚ1¾Úà·)öqã|Ó¿¦ré#íöËà ÎKìQƲGU.ñåT0w=¯Ç/1ÊT°×¤Û×=×tî>ù4)Vó?Ó>ÒåAëRqEF:Ôõ |
+ÍÊeßHÙ>|ìsnðn<xÄ?Ý¥xØ×CÒ+øÐ\©±+Zòý¤Ùèw)\E¼eÇÑr)öl\lzÝÁü¯R®RÏi+\±å |
+gȹ¶+°oÏ9(y®'ð|é>@÷émêãµK;²þ«êíªûã.çݽYéíK¦×qPÜ% |
+Ö3iÀ§{ì®K}ëWéJÒÈ%bìÔk¤©)$uBæRIFÍ0Mÿür¸¿ø$¹]Í íºlu÷EºÇl(¨ó8È{)=L¹ù~»(S9h¹´ùÝÝ{äá!]IN<£UÓe¥üL%¢)¹Î ¯ÜÑ/~Åéпe§yÓ÷Vï@=M^ô¬Ã'Ä$½áë[8Bø×o¾µuO÷ºþË¥-ÅÈ7îç}±k8"ÆWâ åÒÃ¥óöáå£ú¿13m´\*ÉàùöÃõjÜí«t%i\®kNxz¹®n*Ëu÷$]Iê®ÞtiÖ¥aK¡¦<è»Û×(ÅiR+}RÍý£ã`ñ ëdºMø'sºøÃ樂)wêiW%±Êî;:ôNiå ¤3¼uÛÔoW9Rë¯ïÞ¼í7Xÿüìæ^¶nV¿_ã+qÐréáÒù |
+Kñ1¨Ûnv$¶£ùw_PÍWs¯9Ç¥å__é»ks¢®©èæÒ5ï_ÝTã:ù},ÜýÍ¡C¬Ñré®oaU·×áµö)]I±ö¾P©ûÃtV^Îíeº§VR¿9ÏöæPj¥R~ÆÉ`î{¤sðõ³-éÁ<üP·ÌÃÏ3Qö`Ô³pWyÙÙ¹ÎAËýRE:uåÉ{¿¯ÄAË¥Ø3¶ñ+ÙR@Óç´ôòºßKuõÈqÐJÒ˹'Õ(å'O |
+ç|3åW÷иëòÃïåEÜÊ»<¹}UYåU¤=ô¾På ¤3\6ÇÔysXóNß]:y'²ñÏn@mL¹¹´zj5å·¦UÏ{My¯^Îêeo©yªÿ5ÏÎé]TpÐr).~íìÍST¯Ý¿JWÆ%²æ¦º¼ã |
+ZIz9w÷VZMyЩ÷¯1 »´¹.ïÀaìð÷áJMÃÄ1kgº5÷kjº÷Ãï:¦Cæ8¼ÃTNeÞè¹ÀÞelÓJÒËî¢óIê8:½ótÒïî¤í7'ÿüvææn*íZOùí)gÝóÞSÞ»³{Ù÷ÜyªßhödfìîmtºÚÚ¼Ku3]ýÅûû/´6ßHÌ*¥ëÅ¿úIÆ5æú.¸¥wQÁAË¥»¾9¸¡¦[VgæpÿÉÝ©û£éÎîL9ÓÏtO¤<s1ìÍQis]ÞûIÆîZÓáò[SGÏÌÃÒxTrtôCxÉ ÍñoÄ¿¹ÆaÑÝÝùðÆ3·»ßµ¿º°øC/ã[oÐûê°·ó=ÒòÝ~7wUEJåþ²ßVwZÓN»5jÁAáÖVÝ%;å[ |
+|K¾láÁÖ^×ï>nÚªKuö¨ëúÀkË»!÷F;RÜb,ÚôÜÌß,]ÉNh˳9¹éWÅ7W´6M,wÃﹸòtºC奮EáÄïubÂçËëNW¤î¤NLÊA+I/çênPrSبAùJmÅ¥.*¥{Ö,µÍó³¥ül÷âåÑR~¦éiÇÉ+êüxzEÑ÷É8hýxxPa5n:áLç+q{cѧk¨ÔÏK½¿¯Ò¤×ð{Ð4)îi©á¢Ã ͯqÐJÒËyZj|ªq16áMÏæFãâ[VËÌÉLïÆT¶:^«Ü=+Njv©3źIÙU´ÙÉ\4DcíM¼Ø6¹¹KCj±FÑ\wôVØæhFÕA >V^ÎpjOR§!>g¢¹}þ¾~|w1jîâCi±GJÌo9#gÆAË¥KQö<}n>CÙÉL:|оIùêäOéË{Âû *òÔ=VóÜI÷7rÜmÞ1æcÃÓ{ÔêÃþÕÅr}Eo>4Ç9fë§W÷G³O·:ÉN<ÞéxÇð1£ó8h¹(?Ýgå3ù¯¯^-§ÅÅtã ¤sOÞ)QJ[¹Qr`n%6º<»xÕqÐJÒËùpWßv¹ó"Dã+qÐrÝ6UE>øñè|9¯ï4SÜâÎc¹ô´ÔXöAòü>¤+ÙêÁÂ]2%jsÐrH)ѤD-sZ.¼Åj¦p¼Ü«ç!]IÞ9µÌ9h%éåÜÝ'µìáÊÃqõëèáZc:¡søWîÞöäî1{j2Z÷)ÈÖz|¯(Ë&ñn.2ê¯#ç+qmrW©}i)éóøsZ.ÝÝefx |
+#å!KW^?,ï£Ûò38H¯Ç3e{ù×ÑëÆ}sýcºí©ÔÃûº Û¶ÜS%MuÒçD}bÜÿDC| `þ ê¢òtÑÆærZþ«4`¨;0Â$¼H0ÓõÍÏ3]¸WW¥º<p/o_Îûë;w¤¸#ÅX.=<µé¹)¿YºØ ?ªÍt¼æòpqW}k»¹Äûd!=æKmu¶ßVw ©^uvÖ9(Fª;ôä>bï¥ÜJ|Ôxû ̲j |
+GÊC®$½¼ÜÇËÊ3^QÊÏTâ }/® |
+I¹¶X)DKZ¹¶yùwr@z¬k>¥!-B,Ðf±4dF,DòX)DKZsb<µNÍ5ºÍ¢3[Ç,ÿN±²ïQà¹Æ± ;ÓÙ÷G{`ÊciÞÁC¨Íb%mGM!®Ey,ìQ¥!g |
+ÙsÚSíµXR#û£öîé]°X9d2$¿8êÅÜ|XtFÞxªán;þ·ýKûR!8÷On?ß3Dc±bÓðxôô3îyíKÿ·×íÌ|¤ý73Þú#þ³´Â*·±=C6ÿÍ(Ùn#YgdëtÌÉ3DÙC·ÊsòôE¿KCf |
+y¤kÚæ#¤R÷;ÅÒØ·1¤æ0d¼Þ)VÒ6¶2rFÒ6¶ë±GFË%)×cÏÖQmKC=¥!µ+°µ¶ÏZ,pÚö- /ÍÅÒå±Xÿ¨ \Jj±4dGIG²ÛxÔÃû÷üL3êÎú¾ÍBάçRÛ|Ø ïÖ*¥!3jÅÊ!´µÅJÚ´VY¬´yB~Ô+t¤\»EQnÕf±4dX¬-jÛDyê-B |
+¶XIÕcõXÒRÈñÐVBÛö°5ZrÚºäqU§?¶ÚÚbåÚú|ØýÂBFÎÁHÚÌÖÌÏØ#fa¤\=[Ú<C`+æÀcådÑf!5Z>L ÝjÔQ¥!-ìVs-Õ¿A#·ÇJ!Z´!^wJh3çúè£ä{äú°ò´BÒ7Æ3äi± Ýú÷} |
++*µyÒ¤R |
+1Mò38}¸Ynv³o|Q<¶u4Kð8HZÆý4é~®ÝÍ|%Z.ÅKgl×ÙV"g»Ç¦kÌÈq+SÁõ=lËQ½TKøîb[Çci¯ÄAhKë*Þ:_KçKuÉAbLáØ"éJRè=-Ë3_QÊÏTâ mq碶ÈÅãMZ;}êlëX[¯ÄAhKë*Ñ_KÇKuÓ S@m ZI |
+MAÍâ´93³hÙú+JùJ¤fÙ£É=öhrÉÒL»5¹G&×ùJ´ÔA^¥ÖäÒÝqÐr)n÷´&)°ÉuZIRX«eë¯(åg*q¾D%õD%õDÅ{¢â=Ñz¢-õDÛüC*óæ=Ñæ=Ñz¢-õD÷D[ê6ï6ï¶Ômó«t%)Já=Qñ¨¤¨xOTf¸{=ÑiDcqðßu²÷jOä|%W¬RÚL7©_I¥÷ ®iwjOä´¥(Ã&@£©ÄAÙ,ìFL#3_ÿª=ó8ÈÍBi3]¤3Ì¢©¹Yj5³È³f |
+ìVºYÃ&@£©ÄA4Kókkókï{ ïây£6ÿÁWâ %ÒêÒÍuù¤eð8h¹t©®»Nk |
+qº®3ò`ÍHf·©ú¨8^¢à+qÒ9M×ôIËà+qå®øªkºágz4éJR7c®ë<qÇüÙäGÈFPù«CZgÓYà~Æ&7øJdPJ¿Óhêå##R3Z.Ýõòi:54¹ÁA+I³î1Óe¥üL%JfÑæõÆ0tªT--d|%2³PZéaKÍ8h¹ÔÌCåÂfyJWY4Æaº¬©ÄAz½ÍQ½mñ©o,×m:Ë»·-ÎWâ ¹\ÀÖ®Ïö ®Íßkç+qÐ2©´ÃÖ5¶-ÎA+I¡wZ¤R~¦e³°m11d¼YjÓÎÎWâ 7¥ëÚü½v¾¹Y¤=¶ó@SéÑ<¤+IÝ,aSZQÊÏTâ ¥uÿ&ºÙ¿åήc¢·¡Â,ÎWâ ¹=¤í.m¦«ù7Qð8hTB]R<¦@³8$E)ÅèÝtõy0ÊfáKÄ ½ÊNÄSÕÅ/)K|Ü,6ÓÕü(øJäf©ÕÌ"/SàKä´Ôͽ®Þ#ÆA0ËÿñãÿZÛS=endstream |
+endobj |
+6 0 obj |
+17999 |
+endobj |
+4 0 obj |
+<</Type/Page/MediaBox [0 0 612 792] |
+/Rotate 0/Parent 3 0 R |
+/Resources<</ProcSet[/PDF] |
+/ExtGState 8 0 R |
+>> |
+/Contents 5 0 R |
+>> |
+endobj |
+3 0 obj |
+<< /Type /Pages /Kids [ |
+4 0 R |
+] /Count 1 |
+/Rotate 0>> |
+endobj |
+1 0 obj |
+<</Type /Catalog /Pages 3 0 R |
+>> |
+endobj |
+7 0 obj |
+<</Type/ExtGState |
+/OPM 1>>endobj |
+8 0 obj |
+<</R7 |
+7 0 R>> |
+endobj |
+2 0 obj |
+<</Producer(GPL Ghostscript 8.15) |
+/CreationDate(D:20070312220102) |
+/ModDate(D:20070312220102) |
+/Title(BOARD.bin) |
+/Creator(PScript5.dll Version 5.2) |
+/Author(Jakub)>>endobj |
+xref |
+0 9 |
+0000000000 65535 f |
+0000018313 00000 n |
+0000018431 00000 n |
+0000018245 00000 n |
+0000018105 00000 n |
+0000000015 00000 n |
+0000018084 00000 n |
+0000018361 00000 n |
+0000018402 00000 n |
+trailer |
+<< /Size 9 /Root 1 0 R /Info 2 0 R |
+/ID [(ý*i@kìïǼþ)(ý*i@kìïǼþ)] |
+>> |
+startxref |
+18608 |
+%%EOF |
/roboti/istrobot/camerus/HW/CAM_PROFI/BOARD.PHO |
---|
0,0 → 1,315 |
* |
* |
G04 PADS Layout (Build Number 2006.45.1) generated Gerber (RS-274-X) file* |
G04 PC Version=2.1* |
* |
%IN "LEDpanel.pcb"*% |
* |
%MOIN*% |
* |
%FSLAX35Y35*% |
* |
* |
* |
* |
G04 PC Standard Apertures* |
* |
* |
G04 Thermal Relief Aperture macro.* |
%AMTER* |
1,1,$1,0,0* |
1,0,$1-$2,0,0* |
21,0,$3,$4,0,0,45* |
21,0,$3,$4,0,0,135* |
% |
* |
* |
G04 Annular Aperture macro.* |
%AMANN* |
1,1,$1,0,0* |
1,0,$2,0,0* |
% |
* |
* |
G04 Odd Aperture macro.* |
%AMODD* |
1,1,$1,0,0* |
1,0,$1-0.005,0,0* |
% |
* |
* |
G04 PC Custom Aperture Macros* |
* |
* |
* |
* |
* |
* |
G04 PC Aperture Table* |
* |
%ADD024C,0.001*% |
%ADD025C,0.01*% |
* |
* |
* |
* |
G04 PC Copper Outlines (0)* |
G04 Layer Name LEDpanel.pcb - dark (0)* |
%LPD*% |
* |
* |
G04 PC Area=Custom_Thermal* |
* |
G04 PC Custom Flashes* |
G04 Layer Name LEDpanel.pcb - flashes* |
%LPD*% |
* |
* |
G04 PC Circuitry* |
G04 Layer Name LEDpanel.pcb - circuitry* |
%LPD*% |
* |
G54D24* |
G01X120000Y179100D02* |
X120003D01* |
X651200D02* |
X651203D01* |
X651200Y120000D02* |
X651203D01* |
X651200Y179100D02* |
X651203D01* |
G54D25* |
X120000D02* |
X651200D01* |
Y120000* |
X120000* |
Y179100* |
Y212000D02* |
X367827D01* |
X120000D02* |
X130000Y214500D01* |
Y209500* |
X120000Y212000* |
X651200D02* |
X403373D01* |
X651200D02* |
X641200Y209500D01* |
Y214500* |
X651200Y212000* |
X120000Y184100D02* |
Y217000D01* |
X651200Y184100D02* |
Y217000D01* |
X373782Y214812D02* |
X371509D01* |
X371509D02* |
X371282Y212000D01* |
X371509Y212312* |
X371509D02* |
X372191Y212625D01* |
X372873* |
X373555Y212312* |
X373555D02* |
X374009Y211687D01* |
X374009D02* |
X374236Y210750D01* |
X374009Y210125* |
X373782Y209187* |
X373782D02* |
X373327Y208562D01* |
X373327D02* |
X372645Y208250D01* |
X371964* |
X371282Y208562* |
X371282D02* |
X371055Y208875D01* |
X370827Y209500* |
X376736Y214812D02* |
X379236D01* |
X379236D02* |
X377873Y212312D01* |
X377873D02* |
X378555D01* |
X378555D02* |
X379009Y212000D01* |
X379236Y211687* |
X379236D02* |
X379464Y210750D01* |
Y210125* |
X379236Y209187* |
X379236D02* |
X378782Y208562D01* |
X378782D02* |
X378100Y208250D01* |
X377418* |
X376736Y208562* |
X376736D02* |
X376509Y208875D01* |
X376282Y209500* |
X381509Y213562D02* |
X381964Y213875D01* |
X382645Y214812* |
X382645D02* |
Y208250D01* |
X384918Y213250D02* |
Y213562D01* |
X384918D02* |
X385145Y214187D01* |
X385145D02* |
X385373Y214500D01* |
X385827Y214812* |
X385827D02* |
X386736D01* |
X386736D02* |
X387191Y214500D01* |
X387418Y214187* |
X387418D02* |
X387645Y213562D01* |
X387645D02* |
Y212937D01* |
X387645D02* |
X387418Y212312D01* |
X387418D02* |
X386964Y211375D01* |
X384691Y208250* |
X387873* |
X389918Y212625D02* |
Y208250D01* |
Y211375D02* |
X390600Y212312D01* |
X390600D02* |
X391055Y212625D01* |
X391736* |
X392191Y212312* |
X392191D02* |
X392418Y211375D01* |
Y208250* |
Y211375D02* |
X393100Y212312D01* |
X393100D02* |
X393555Y212625D01* |
X394236* |
X394691Y212312* |
X394691D02* |
X394918Y211375D01* |
Y208250* |
X396964Y214812D02* |
X397191Y214500D01* |
X397418Y214812* |
X397418D02* |
X397191Y215125D01* |
X396964Y214812* |
X397191Y212625D02* |
Y208250D01* |
X399464Y214812D02* |
Y208250D01* |
X672000Y120000D02* |
Y142800D01* |
Y120000D02* |
X669500Y130000D01* |
X674500* |
X672000Y120000* |
Y179100D02* |
Y156300D01* |
Y179100D02* |
X674500Y169100D01* |
X669500* |
X672000Y179100* |
X656200Y120000D02* |
X677000D01* |
X656200Y179100D02* |
X677000D01* |
X662909Y152362D02* |
X660636D01* |
X660636D02* |
X660409Y149550D01* |
X660636Y149862* |
X660636D02* |
X661318Y150175D01* |
X662000* |
X662682Y149862* |
X662682D02* |
X663136Y149237D01* |
X663136D02* |
X663364Y148300D01* |
X663136Y147675* |
X662909Y146737* |
X662909D02* |
X662455Y146112D01* |
X662455D02* |
X661773Y145800D01* |
X661091* |
X660409Y146112* |
X660409D02* |
X660182Y146425D01* |
X659955Y147050* |
X668364Y150175D02* |
X668136Y149237D01* |
X668136D02* |
X667682Y148612D01* |
X667682D02* |
X667000Y148300D01* |
X666773* |
X666091Y148612* |
X666091D02* |
X665636Y149237D01* |
X665636D02* |
X665409Y150175D01* |
Y150487* |
X665409D02* |
X665636Y151425D01* |
X666091Y152050* |
X666773Y152362* |
X666773D02* |
X667000D01* |
X667000D02* |
X667682Y152050D01* |
X668136Y151425* |
X668364Y150175* |
Y148612* |
X668364D02* |
X668136Y147050D01* |
X667682Y146112* |
X667682D02* |
X667000Y145800D01* |
X666545* |
X665864Y146112* |
X665864D02* |
X665636Y146737D01* |
X670409Y151112D02* |
X670864Y151425D01* |
X671545Y152362* |
X671545D02* |
Y145800D01* |
X673591Y150175D02* |
Y145800D01* |
Y148925D02* |
X674273Y149862D01* |
X674273D02* |
X674727Y150175D01* |
X675409* |
X675864Y149862* |
X675864D02* |
X676091Y148925D01* |
Y145800* |
Y148925D02* |
X676773Y149862D01* |
X676773D02* |
X677227Y150175D01* |
X677909* |
X678364Y149862* |
X678364D02* |
X678591Y148925D01* |
Y145800* |
X680636Y152362D02* |
X680864Y152050D01* |
X681091Y152362* |
X681091D02* |
X680864Y152675D01* |
X680636Y152362* |
X680864Y150175D02* |
Y145800D01* |
X683136Y152362D02* |
Y145800D01* |
X0Y0D02* |
M02* |
/roboti/istrobot/camerus/HW/CAM_PROFI/BOARD.rep |
---|
0,0 → 1,13 |
Photo-Plotter Apertures Report |
============================== |
Position Width Hgt/ID Shape Qty |
======== ===== ====== ===== === |
24 1 0 RND 4 |
25 10 0 RND 26 |
/roboti/istrobot/camerus/HW/CAM_PROFI/DRILL.DRL |
---|
0,0 → 1,43 |
% |
T1C.035F197S55 |
X014Y014506 |
X014Y015494 |
X01946Y015494 |
X01946Y014506 |
X022219Y013728 |
X022219Y017228 |
X02492Y015494 |
X02492Y014506 |
X03038Y014506 |
X03038Y015494 |
X033113Y017228 |
X033113Y013728 |
X03584Y014506 |
X03584Y015494 |
X038509Y016198 |
X037509Y016198 |
X0381Y0142 |
X0391Y0142 |
X0413Y014506 |
X0413Y015494 |
X039509Y016198 |
X043339Y017228 |
X043339Y013728 |
X044675Y013728 |
X044675Y017228 |
X04676Y015494 |
X04676Y014506 |
X05222Y014506 |
X05222Y015494 |
X054953Y017228 |
X054953Y013728 |
X05768Y014506 |
X05768Y015494 |
X06314Y015494 |
X06314Y014506 |
T2C.12598F035S794 |
X0168Y0134 |
X0278Y0136 |
X0494Y0134 |
X0604Y0134 |
M30 |
/roboti/istrobot/camerus/HW/CAM_PROFI/DRILL.lst |
---|
0,0 → 1,46 |
Drill Listing |
============= |
Drill: .035 Tool: 1 Feed: 197 Speed: 550 |
X 140000 Y 145062 |
X 140000 Y 154937 |
X 194600 Y 154937 |
X 194600 Y 145062 |
X 222186 Y 137284 |
X 222186 Y 172284 |
X 249200 Y 154937 |
X 249200 Y 145062 |
X 303800 Y 145062 |
X 303800 Y 154937 |
X 331129 Y 172284 |
X 331129 Y 137284 |
X 358400 Y 145062 |
X 358400 Y 154937 |
X 385087 Y 161979 |
X 375087 Y 161979 |
X 381000 Y 142000 |
X 391000 Y 142000 |
X 413000 Y 145062 |
X 413000 Y 154937 |
X 395087 Y 161979 |
X 433392 Y 172284 |
X 433392 Y 137284 |
X 446753 Y 137284 |
X 446753 Y 172284 |
X 467600 Y 154937 |
X 467600 Y 145062 |
X 522200 Y 145062 |
X 522200 Y 154937 |
X 549530 Y 172284 |
X 549530 Y 137284 |
X 576800 Y 145062 |
X 576800 Y 154937 |
X 631400 Y 154937 |
X 631400 Y 145062 |
Drill: .12598 Tool: 2 Feed: 35 Speed: 794 |
X 168000 Y 134000 |
X 278000 Y 136000 |
X 494000 Y 134000 |
X 604000 Y 134000 |
End of Listing |
/roboti/istrobot/camerus/HW/CAM_PROFI/DRILL.rep |
---|
0,0 → 1,13 |
Drill Sizes Report |
================== |
Tool Size Pltd Feed Speed Qty |
==== ==== ==== ==== ===== === |
1 35 x 197 550 35 |
2 125.98 x 35 794 4 |
/roboti/istrobot/camerus/HW/CAM_PROFI/V2.PHO |
---|
0,0 → 1,1574 |
* |
* |
G04 PADS Layout (Build Number 2006.45.1) generated Gerber (RS-274-X) file* |
G04 PC Version=2.1* |
* |
%IN "LEDpanel.pcb"*% |
* |
%MOIN*% |
* |
%FSLAX35Y35*% |
* |
* |
* |
* |
G04 PC Standard Apertures* |
* |
* |
G04 Thermal Relief Aperture macro.* |
%AMTER* |
1,1,$1,0,0* |
1,0,$1-$2,0,0* |
21,0,$3,$4,0,0,45* |
21,0,$3,$4,0,0,135* |
% |
* |
* |
G04 Annular Aperture macro.* |
%AMANN* |
1,1,$1,0,0* |
1,0,$2,0,0* |
% |
* |
* |
G04 Odd Aperture macro.* |
%AMODD* |
1,1,$1,0,0* |
1,0,$1-0.005,0,0* |
% |
* |
* |
G04 PC Custom Aperture Macros* |
* |
* |
* |
* |
* |
* |
G04 PC Aperture Table* |
* |
%ADD012R,0.07X0.07*% |
%ADD013C,0.23622*% |
%ADD025C,0.01*% |
%ADD031C,0.07*% |
%ADD042C,0.045*% |
%ADD043R,0.066X0.066*% |
%ADD044C,0.066*% |
%ADD045R,0.065X0.065*% |
%ADD046C,0.08268*% |
%ADD047C,0.035*% |
%ADD048C,0.025*% |
* |
* |
* |
* |
G04 PC Copper Outlines (0)* |
G04 Layer Name LEDpanel.pcb - dark (0)* |
%LPD*% |
* |
* |
G04 PC Area=ANP000000* |
G75* |
G36* |
G01* |
X648700Y123000D02* |
Y176100D01* |
G03* |
X648200Y176600I-500J-0D01* |
G01* |
X555558D01* |
G03* |
X555136Y175833I0J-500D01* |
G02* |
X545345Y167138I-5606J-3548D01* |
G03* |
X545029Y167250I-316J-388D01* |
G01* |
X451254D01* |
G03* |
X450939Y167138I0J-500D01* |
G02* |
X442568I-4186J5147D01* |
G03* |
X442252Y167250I-316J-388D01* |
G01* |
X437893D01* |
G03* |
X437578Y167138I0J-500D01* |
G02* |
X429207I-4186J5147D01* |
G03* |
X428891Y167250I-316J-388D01* |
G01* |
X400923D01* |
G03* |
X400492Y166497I0J-500D01* |
G02* |
X400837Y165229I-2155J-1268D01* |
G01* |
Y158729D01* |
G02* |
X398337Y156229I-2500J0D01* |
G01* |
X391837D01* |
G02* |
X390587Y156564I0J2500D01* |
G03* |
X389837Y156131I-250J-433D01* |
G01* |
Y151057D01* |
G03* |
X389984Y150703I500J-0D01* |
G01* |
X392541Y148146D01* |
G03* |
X392894Y148000I353J354D01* |
G01* |
X394500D01* |
G02* |
X397000Y145500I0J-2500D01* |
G01* |
Y138750D01* |
G03* |
X397500Y138250I500J0D01* |
G01* |
X399969D01* |
G03* |
X400323Y138396I0J500D01* |
G01* |
X407054Y145127D01* |
G03* |
X407200Y145481I-354J354D01* |
G01* |
Y148363D01* |
G02* |
X408401Y150499I2500J-0D01* |
G03* |
X408527Y151245I-260J427D01* |
G02* |
X417600Y158470I4473J3692D01* |
G03* |
X417643Y158421I397J304D01* |
G01* |
X425022Y151042D01* |
G03* |
X425204Y150926I354J353D01* |
G02* |
X426748Y149940I-1462J-3991D01* |
G01* |
X432634Y144054D01* |
G03* |
X433016Y143908I353J353D01* |
G02* |
X439605Y139612I376J-6623D01* |
G03* |
X440541I468J175D01* |
G02* |
X447130Y143908I6212J-2327D01* |
G03* |
X447512Y144054I28J499D01* |
G01* |
X452463Y149005D01* |
G02* |
X454579Y150156I3005J-3005D01* |
G03* |
X454827Y150291I-105J489D01* |
G01* |
X462957Y158421D01* |
G03* |
X463000Y158470I-354J353D01* |
G02* |
X472073Y151245I4600J-3533D01* |
G03* |
X472199Y150499I386J-319D01* |
G02* |
X473089Y149571I-1299J-2136D01* |
G03* |
X473526Y149313I437J242D01* |
G01* |
X476186D01* |
G03* |
X476539Y149459I-0J500D01* |
G01* |
X485022Y157942D01* |
G02* |
X488027Y159187I3005J-3005D01* |
G01* |
X518061D01* |
G03* |
X518390Y159310I0J500D01* |
G02* |
X526673Y151245I3810J-4373D01* |
G03* |
X526799Y150499I386J-319D01* |
G02* |
X528000Y148363I-1299J-2136D01* |
G01* |
Y141763D01* |
G02* |
X525500Y139263I-2500J-0D01* |
G01* |
X518900D01* |
G02* |
X516400Y141763I0J2500D01* |
G01* |
Y148363D01* |
G02* |
X516915Y149883I2500J-0D01* |
G03* |
X516518Y150687I-397J304D01* |
G01* |
X489995D01* |
G03* |
X489641Y150541I-0J-500D01* |
G01* |
X481158Y142058D01* |
G02* |
X478153Y140813I-3005J3005D01* |
G01* |
X473526D01* |
G03* |
X473089Y140555I0J-500D01* |
G02* |
X470900Y139263I-2189J1208D01* |
G01* |
X464300D01* |
G02* |
X461800Y141763I0J2500D01* |
G01* |
Y144036D01* |
G03* |
X460946Y144389I-500J-0D01* |
G01* |
X459552Y142995D01* |
G02* |
X457437Y141844I-3005J3005D01* |
G03* |
X457188Y141709I104J-489D01* |
G01* |
X453522Y138043D01* |
G03* |
X453376Y137661I354J-353D01* |
G02* |
X440541Y134958I-6623J-376D01* |
G03* |
X439605I-468J-176D01* |
G02* |
X426769Y137661I-6213J2327D01* |
G03* |
X426623Y138043I-499J29D01* |
G01* |
X421839Y142828D01* |
G03* |
X421657Y142944I-354J-354D01* |
G02* |
X420113Y143930I1462J3991D01* |
G01* |
X419654Y144389D01* |
G03* |
X418800Y144036I-354J-353D01* |
G01* |
Y141763D01* |
G02* |
X416300Y139263I-2500J-0D01* |
G01* |
X413418D01* |
G03* |
X413064Y139117I-0J-500D01* |
G01* |
X404942Y130995D01* |
G02* |
X401937Y129750I-3005J3005D01* |
G01* |
X378747D01* |
G02* |
X375742Y130995I-0J4250D01* |
G01* |
X366995Y139742D01* |
G02* |
X365750Y142747I3005J3005D01* |
G01* |
Y143486D01* |
G03* |
X365604Y143839I-500J-0D01* |
G01* |
X365054Y144389D01* |
G03* |
X364200Y144036I-354J-353D01* |
G01* |
Y141763D01* |
G02* |
X361700Y139263I-2500J-0D01* |
G01* |
X355100D01* |
G02* |
X352600Y141763I0J2500D01* |
G01* |
Y148363D01* |
G02* |
X353801Y150499I2500J-0D01* |
G03* |
X353927Y151245I-260J427D01* |
G02* |
X363000Y158470I4473J3692D01* |
G03* |
X363043Y158421I397J304D01* |
G01* |
X373005Y148459D01* |
G02* |
X374250Y145453I-3005J-3006D01* |
G01* |
Y144714D01* |
G03* |
X374396Y144361I500J0D01* |
G01* |
X380361Y138396D01* |
G03* |
X380714Y138250I353J354D01* |
G01* |
X384500D01* |
G03* |
X385000Y138750I-0J500D01* |
G01* |
Y142045D01* |
G03* |
X384854Y142398I-500J-0D01* |
G01* |
X381728Y145523D01* |
G02* |
X380337Y148882I3359J3359D01* |
G01* |
Y156131D01* |
G03* |
X379587Y156564I-500J0D01* |
G02* |
X378337Y156229I-1250J2165D01* |
G01* |
X371837D01* |
G02* |
X369337Y158729I0J2500D01* |
G01* |
Y165229D01* |
G02* |
X369841Y166734I2500J0D01* |
G03* |
X369441Y167535I-400J301D01* |
G01* |
X335959D01* |
G03* |
X335621Y167403I0J-500D01* |
G02* |
X326638I-4492J4882D01* |
G03* |
X326299Y167535I-339J-368D01* |
G01* |
X227016D01* |
G03* |
X226678Y167403I0J-500D01* |
G02* |
X216581Y175833I-4492J4882D01* |
G03* |
X216158Y176600I-423J267D01* |
G01* |
X123000D01* |
G03* |
X122500Y176100I0J-500D01* |
G01* |
Y123000D01* |
G03* |
X123000Y122500I500J0D01* |
G01* |
X648200D01* |
G03* |
X648700Y123000I-0J500D01* |
G37* |
G74* |
* |
* |
G04 PC Void Outlines (0)* |
G04 Layer Name LEDpanel.pcb - clear (0)* |
%LPC*% |
* |
* |
G04 PC Area=ANP000000* |
G75* |
G36* |
G01* |
X627590Y159310D02* |
G02* |
X635873Y151245I3810J-4373D01* |
G03* |
X635999Y150499I386J-319D01* |
G02* |
X637200Y148363I-1299J-2136D01* |
G01* |
Y141763D01* |
G02* |
X634700Y139263I-2500J-0D01* |
G01* |
X628100D01* |
G02* |
X625600Y141763I0J2500D01* |
G01* |
Y148363D01* |
G02* |
X626115Y149883I2500J-0D01* |
G03* |
X625718Y150687I-397J304D01* |
G01* |
X599595D01* |
G03* |
X599241Y150541I-0J-500D01* |
G01* |
X590758Y142058D01* |
G02* |
X587753Y140813I-3005J3005D01* |
G01* |
X582726D01* |
G03* |
X582289Y140555I0J-500D01* |
G02* |
X580100Y139263I-2189J1208D01* |
G01* |
X573500D01* |
G02* |
X571000Y141763I0J2500D01* |
G01* |
Y148363D01* |
G02* |
X571515Y149883I2500J-0D01* |
G03* |
X571118Y150687I-397J304D01* |
G01* |
X569150D01* |
G03* |
X568796Y150541I-0J-500D01* |
G01* |
X556299Y138043D01* |
G03* |
X556153Y137661I353J-353D01* |
G02* |
X549907Y143908I-6623J-376D01* |
G03* |
X550288Y144054I28J499D01* |
G01* |
X564177Y157942D01* |
G02* |
X567182Y159187I3005J-3005D01* |
G01* |
X572661D01* |
G03* |
X572990Y159310I0J500D01* |
G02* |
X581273Y151245I3810J-4373D01* |
G03* |
X581399Y150499I386J-319D01* |
G02* |
X582289Y149571I-1299J-2136D01* |
G03* |
X582726Y149313I437J242D01* |
G01* |
X585786D01* |
G03* |
X586139Y149459I-0J500D01* |
G01* |
X594622Y157942D01* |
G02* |
X597627Y159187I3005J-3005D01* |
G01* |
X627261D01* |
G03* |
X627590Y159310I0J500D01* |
G37* |
G74* |
* |
G75* |
G36* |
G01* |
X617000Y172750D02* |
Y163750D01* |
G02* |
X614500Y161250I-2500J0D01* |
G01* |
X585682D01* |
G02* |
X583182Y163750I-0J2500D01* |
G01* |
Y172750D01* |
G02* |
X585682Y175250I2500J0D01* |
G01* |
X614500D01* |
G02* |
X617000Y172750I0J-2500D01* |
G37* |
G74* |
* |
G75* |
G36* |
G01* |
X330753Y143908D02* |
G02* |
X324506Y137661I376J-6623D01* |
G03* |
X324361Y138043I-499J29D01* |
G01* |
X311863Y150541D01* |
G03* |
X311510Y150687I-353J-354D01* |
G01* |
X309482D01* |
G03* |
X309085Y149883I-0J-500D01* |
G02* |
X309600Y148363I-1985J-1520D01* |
G01* |
Y141763D01* |
G02* |
X307100Y139263I-2500J-0D01* |
G01* |
X300500D01* |
G02* |
X298311Y140555I0J2500D01* |
G03* |
X297874Y140813I-437J-242D01* |
G01* |
X294547D01* |
G02* |
X291542Y142058I-0J4250D01* |
G01* |
X283059Y150541D01* |
G03* |
X282705Y150687I-354J-354D01* |
G01* |
X254882D01* |
G03* |
X254485Y149883I-0J-500D01* |
G02* |
X255000Y148363I-1985J-1520D01* |
G01* |
Y141763D01* |
G02* |
X252500Y139263I-2500J-0D01* |
G01* |
X245900D01* |
G02* |
X243400Y141763I0J2500D01* |
G01* |
Y148363D01* |
G02* |
X244601Y150499I2500J-0D01* |
G03* |
X244727Y151245I-260J427D01* |
G02* |
X253010Y159310I4473J3692D01* |
G03* |
X253339Y159187I329J377D01* |
G01* |
X284673D01* |
G02* |
X287678Y157942I-0J-4250D01* |
G01* |
X296161Y149459D01* |
G03* |
X296514Y149313I353J354D01* |
G01* |
X297874D01* |
G03* |
X298311Y149571I-0J500D01* |
G02* |
X299201Y150499I2189J-1208D01* |
G03* |
X299327Y151245I-260J427D01* |
G02* |
X307610Y159310I4473J3692D01* |
G03* |
X307939Y159187I329J377D01* |
G01* |
X313477D01* |
G02* |
X316482Y157942I0J-4250D01* |
G01* |
X330371Y144054D01* |
G03* |
X330753Y143908I354J353D01* |
G37* |
G74* |
* |
G75* |
G36* |
G01* |
X221810D02* |
G02* |
X215563Y137661I376J-6623D01* |
G03* |
X215417Y138043I-499J29D01* |
G01* |
X202920Y150541D01* |
G03* |
X202566Y150687I-354J-354D01* |
G01* |
X200282D01* |
G03* |
X199885Y149883I-0J-500D01* |
G02* |
X200400Y148363I-1985J-1520D01* |
G01* |
Y141763D01* |
G02* |
X197900Y139263I-2500J-0D01* |
G01* |
X191300D01* |
G02* |
X189111Y140555I0J2500D01* |
G03* |
X188674Y140813I-437J-242D01* |
G01* |
X183947D01* |
G02* |
X180942Y142058I-0J4250D01* |
G01* |
X172459Y150541D01* |
G03* |
X172105Y150687I-354J-354D01* |
G01* |
X145682D01* |
G03* |
X145285Y149883I-0J-500D01* |
G02* |
X145800Y148363I-1985J-1520D01* |
G01* |
Y141763D01* |
G02* |
X143300Y139263I-2500J-0D01* |
G01* |
X136700D01* |
G02* |
X134200Y141763I0J2500D01* |
G01* |
Y148363D01* |
G02* |
X135401Y150499I2500J-0D01* |
G03* |
X135527Y151245I-260J427D01* |
G02* |
X141719Y160476I4473J3692D01* |
G03* |
X141850Y160454I148J478D01* |
X141967Y160393I287J410D01* |
G02* |
X143810Y159310I-1967J-5456D01* |
G03* |
X144139Y159187I329J377D01* |
G01* |
X174073D01* |
G02* |
X177078Y157942I-0J-4250D01* |
G01* |
X185561Y149459D01* |
G03* |
X185914Y149313I353J354D01* |
G01* |
X188674D01* |
G03* |
X189111Y149571I-0J500D01* |
G02* |
X190001Y150499I2189J-1208D01* |
G03* |
X190127Y151245I-260J427D01* |
G02* |
X198410Y159310I4473J3692D01* |
G03* |
X198739Y159187I329J377D01* |
G01* |
X204534D01* |
G02* |
X207539Y157942I-0J-4250D01* |
G01* |
X221428Y144054D01* |
G03* |
X221810Y143908I353J353D01* |
G37* |
G74* |
* |
G75* |
G36* |
G01* |
X189000Y172750D02* |
Y163750D01* |
G02* |
X186500Y161250I-2500J0D01* |
G01* |
X142955D01* |
G02* |
X142273Y161345I-0J2500D01* |
G03* |
X142154Y161363I-136J-481D01* |
X142048Y161420I-287J-409D01* |
G02* |
X140455Y163750I907J2330D01* |
G01* |
Y172750D01* |
G02* |
X142955Y175250I2500J0D01* |
G01* |
X186500D01* |
G02* |
X189000Y172750I0J-2500D01* |
G37* |
G74* |
* |
* |
G04 PC Copper Outlines (1)* |
G04 Layer Name LEDpanel.pcb - dark (1)* |
%LPD*% |
* |
* |
G04 PC Area=Custom_Thermal* |
* |
G04 PC Custom Flashes* |
G04 Layer Name LEDpanel.pcb - flashes* |
%LPD*% |
* |
* |
G04 PC Circuitry* |
G04 Layer Name LEDpanel.pcb - circuitry* |
%LPD*% |
* |
G54D12* |
G01X391000Y142000D03* |
G54D13* |
X604000Y134000D03* |
X168000D03* |
X278000Y136000D03* |
X494000Y134000D03* |
G54D25* |
X614000Y171250D02* |
Y166000D01* |
X611818* |
X610182Y171250D02* |
Y166000D01* |
Y171250D02* |
X607818D01* |
X610182Y168750D02* |
X608727D01* |
X610182Y166000D02* |
X607818D01* |
X606182Y171250D02* |
Y166000D01* |
Y171250D02* |
X604909D01* |
X604364Y171000* |
X604000Y170500* |
X603818Y170000* |
X603636Y169250* |
Y168000* |
X603818Y167250* |
X604000Y166750* |
X604364Y166250* |
X604909Y166000* |
X606182* |
X602000Y169500D02* |
Y164250D01* |
Y168750D02* |
X601636Y169250D01* |
X601273Y169500* |
X600727* |
X600364Y169250* |
X600000Y168750* |
X599818Y168000* |
Y167500* |
X600000Y166750* |
X600364Y166250* |
X600727Y166000* |
X601273* |
X601636Y166250* |
X602000Y166750* |
X596000Y169500D02* |
Y166000D01* |
Y168750D02* |
X596364Y169250D01* |
X596727Y169500* |
X597273* |
X597636Y169250* |
X598000Y168750* |
X598182Y168000* |
Y167500* |
X598000Y166750* |
X597636Y166250* |
X597273Y166000* |
X596727* |
X596364Y166250* |
X596000Y166750* |
X594364Y169500D02* |
Y166000D01* |
Y168500D02* |
X593818Y169250D01* |
X593455Y169500* |
X592909* |
X592545Y169250* |
X592364Y168500* |
Y166000* |
X590727Y168000D02* |
X588545D01* |
Y168500* |
X588727Y169000* |
X588909Y169250* |
X589273Y169500* |
X589818* |
X590182Y169250* |
X590545Y168750* |
X590727Y168000* |
Y167500* |
X590545Y166750* |
X590182Y166250* |
X589818Y166000* |
X589273* |
X588909Y166250* |
X588545Y166750* |
X586909Y171250D02* |
Y166000D01* |
X186000Y171250D02* |
Y166000D01* |
X183455Y171250D02* |
X186000Y167750D01* |
X185091Y169000D02* |
X183455Y166000D01* |
X180364Y171250D02* |
X181818Y166000D01* |
X180364Y171250D02* |
X178909Y166000D01* |
X181273Y167750D02* |
X179455D01* |
X177273Y171250D02* |
Y166000D01* |
X174727Y171250D02* |
X177273Y167750D01* |
X176364Y169000D02* |
X174727Y166000D01* |
X173091Y171250D02* |
Y166000D01* |
X170909* |
X169273Y171250D02* |
Y166000D01* |
X167636Y171250D02* |
Y166000D01* |
X165091Y171250D02* |
X167636Y167750D01* |
X166727Y169000D02* |
X165091Y166000D01* |
X159091Y170000D02* |
Y170250D01* |
X158909Y170750* |
X158727Y171000* |
X158364Y171250* |
X157636* |
X157273Y171000* |
X157091Y170750* |
X156909Y170250* |
Y169750* |
X157091Y169250* |
X157455Y168500* |
X159273Y166000* |
X156727* |
X154000Y171250D02* |
X154545Y171000D01* |
X154909Y170250* |
X155091Y169000* |
Y168250* |
X154909Y167000* |
X154545Y166250* |
X154000Y166000* |
X153636* |
X153091Y166250* |
X152727Y167000* |
X152545Y168250* |
Y169000* |
X152727Y170250* |
X153091Y171000* |
X153636Y171250* |
X154000* |
X149818D02* |
X150364Y171000D01* |
X150727Y170250* |
X150909Y169000* |
Y168250* |
X150727Y167000* |
X150364Y166250* |
X149818Y166000* |
X149455* |
X148909Y166250* |
X148545Y167000* |
X148364Y168250* |
Y169000* |
X148545Y170250* |
X148909Y171000* |
X149455Y171250* |
X149818* |
X144182D02* |
X146000Y166000D01* |
X146727Y171250D02* |
X144182D01* |
X648700Y123000D02* |
Y176100D01* |
G75* |
G03X648200Y176600I-500J-0D01* |
G01X555558* |
G03X555136Y175833I0J-500* |
G01X545345Y167138D02* |
G03X555136Y175833I4185J5147D01* |
G01X545345Y167138D02* |
G03X545029Y167250I-316J-388D01* |
G01X451254* |
G03X450939Y167138I0J-500* |
G01X442568D02* |
G03X450939I4185J5147D01* |
G01X442568D02* |
G03X442252Y167250I-316J-388D01* |
G01X437893* |
G03X437578Y167138I0J-500* |
G01X429207D02* |
G03X437578I4185J5147D01* |
G01X429207D02* |
G03X428891Y167250I-316J-388D01* |
G01X400923* |
G03X400492Y166497I0J-500* |
G01X400837Y165229D02* |
G03X400492Y166497I-2500J0D01* |
G01X400837Y165229D02* |
Y158729D01* |
X398337Y156229D02* |
G03X400837Y158729I0J2500D01* |
G01X398337Y156229D02* |
X391837D01* |
X390587Y156564D02* |
G03X391837Y156229I1250J2165D01* |
G01X390587Y156564D02* |
G03X389837Y156131I-250J-433D01* |
G01Y151057* |
G03X389984Y150703I500J-0* |
G01X392541Y148146* |
G03X392894Y148000I353J354* |
G01X394500* |
X397000Y145500D02* |
G03X394500Y148000I-2500J0D01* |
G01X397000Y145500D02* |
Y138750D01* |
G03X397500Y138250I500J0* |
G01X399969* |
G03X400323Y138396I0J500* |
G01X407054Y145127* |
G03X407200Y145481I-354J354* |
G01Y148363* |
X408401Y150499D02* |
G03X407200Y148363I1299J-2136D01* |
G01X408401Y150499D02* |
G03X408527Y151245I-260J427D01* |
G01X417600Y158470D02* |
G03X408527Y151245I-4600J-3533D01* |
G01X417600Y158470D02* |
G03X417643Y158421I397J304D01* |
G01X425022Y151042* |
G03X425204Y150926I354J353* |
G01X426748Y149940D02* |
G03X425204Y150926I-3006J-3005D01* |
G01X426748Y149940D02* |
X432634Y144054D01* |
G03X433016Y143908I353J353* |
G01X439605Y139612D02* |
G03X433016Y143908I-6213J-2327D01* |
G01X439605Y139612D02* |
G03X440541I468J175D01* |
G01X447130Y143908D02* |
G03X440541Y139612I-377J-6623D01* |
G01X447130Y143908D02* |
G03X447512Y144054I28J499D01* |
G01X452463Y149005* |
X454579Y150156D02* |
G03X452463Y149005I889J-4156D01* |
G01X454579Y150156D02* |
G03X454827Y150291I-105J489D01* |
G01X462957Y158421* |
G03X463000Y158470I-354J353* |
G01X472073Y151245D02* |
G03X463000Y158470I-4473J3692D01* |
G01X472073Y151245D02* |
G03X472199Y150499I386J-319D01* |
G01X473089Y149571D02* |
G03X472199Y150499I-2189J-1208D01* |
G01X473089Y149571D02* |
G03X473526Y149313I437J242D01* |
G01X476186* |
G03X476539Y149459I-0J500* |
G01X485022Y157942* |
X488027Y159187D02* |
G03X485022Y157942I0J-4250D01* |
G01X488027Y159187D02* |
X518061D01* |
G03X518390Y159310I0J500* |
G01X526673Y151245D02* |
G03X518390Y159310I-4473J3692D01* |
G01X526673Y151245D02* |
G03X526799Y150499I386J-319D01* |
G01X528000Y148363D02* |
G03X526799Y150499I-2500J-0D01* |
G01X528000Y148363D02* |
Y141763D01* |
X525500Y139263D02* |
G03X528000Y141763I0J2500D01* |
G01X525500Y139263D02* |
X518900D01* |
X516400Y141763D02* |
G03X518900Y139263I2500J-0D01* |
G01X516400Y141763D02* |
Y148363D01* |
X516915Y149883D02* |
G03X516400Y148363I1985J-1520D01* |
G01X516915Y149883D02* |
G03X516518Y150687I-397J304D01* |
G01X489995* |
G03X489641Y150541I-0J-500* |
G01X481158Y142058* |
X478153Y140813D02* |
G03X481158Y142058I0J4250D01* |
G01X478153Y140813D02* |
X473526D01* |
G03X473089Y140555I0J-500* |
G01X470900Y139263D02* |
G03X473089Y140555I0J2500D01* |
G01X470900Y139263D02* |
X464300D01* |
X461800Y141763D02* |
G03X464300Y139263I2500J-0D01* |
G01X461800Y141763D02* |
Y144036D01* |
G03X460946Y144389I-500J-0* |
G01X459552Y142995* |
X457437Y141844D02* |
G03X459552Y142995I-890J4156D01* |
G01X457437Y141844D02* |
G03X457188Y141709I104J-489D01* |
G01X453522Y138043* |
G03X453376Y137661I354J-353* |
G01X440541Y134958D02* |
G03X453376Y137661I6212J2327D01* |
G01X440541Y134958D02* |
G03X439605I-468J-176D01* |
G01X426769Y137661D02* |
G03X439605Y134958I6623J-376D01* |
G01X426769Y137661D02* |
G03X426623Y138043I-499J29D01* |
G01X421839Y142828* |
G03X421657Y142944I-354J-354* |
G01X420113Y143930D02* |
G03X421657Y142944I3006J3005D01* |
G01X420113Y143930D02* |
X419654Y144389D01* |
G03X418800Y144036I-354J-353* |
G01Y141763* |
X416300Y139263D02* |
G03X418800Y141763I0J2500D01* |
G01X416300Y139263D02* |
X413418D01* |
G03X413064Y139117I-0J-500* |
G01X404942Y130995* |
X401937Y129750D02* |
G03X404942Y130995I0J4250D01* |
G01X401937Y129750D02* |
X378747D01* |
X375742Y130995D02* |
G03X378747Y129750I3005J3005D01* |
G01X375742Y130995D02* |
X366995Y139742D01* |
X365750Y142747D02* |
G03X366995Y139742I4250J-0D01* |
G01X365750Y142747D02* |
Y143486D01* |
G03X365604Y143839I-500J-0* |
G01X365054Y144389* |
G03X364200Y144036I-354J-353* |
G01Y141763* |
X361700Y139263D02* |
G03X364200Y141763I0J2500D01* |
G01X361700Y139263D02* |
X355100D01* |
X352600Y141763D02* |
G03X355100Y139263I2500J-0D01* |
G01X352600Y141763D02* |
Y148363D01* |
X353801Y150499D02* |
G03X352600Y148363I1299J-2136D01* |
G01X353801Y150499D02* |
G03X353927Y151245I-260J427D01* |
G01X363000Y158470D02* |
G03X353927Y151245I-4600J-3533D01* |
G01X363000Y158470D02* |
G03X363043Y158421I397J304D01* |
G01X373005Y148459* |
X374250Y145453D02* |
G03X373005Y148459I-4250J0D01* |
G01X374250Y145453D02* |
Y144714D01* |
G03X374396Y144361I500J0* |
G01X380361Y138396* |
G03X380714Y138250I353J354* |
G01X384500* |
G03X385000Y138750I-0J500* |
G01Y142045* |
G03X384854Y142398I-500J-0* |
G01X381728Y145523* |
X380337Y148882D02* |
G03X381728Y145523I4750J0D01* |
G01X380337Y148882D02* |
Y156131D01* |
G03X379587Y156564I-500J0* |
G01X378337Y156229D02* |
G03X379587Y156564I0J2500D01* |
G01X378337Y156229D02* |
X371837D01* |
X369337Y158729D02* |
G03X371837Y156229I2500J0D01* |
G01X369337Y158729D02* |
Y165229D01* |
X369841Y166734D02* |
G03X369337Y165229I1996J-1505D01* |
G01X369841Y166734D02* |
G03X369441Y167535I-400J301D01* |
G01X335959* |
G03X335621Y167403I0J-500* |
G01X326638D02* |
G03X335621I4491J4882D01* |
G01X326638D02* |
G03X326299Y167535I-339J-368D01* |
G01X227016* |
G03X226678Y167403I0J-500* |
G01X216581Y175833D02* |
G03X226678Y167403I5605J-3548D01* |
G01X216581Y175833D02* |
G03X216158Y176600I-423J267D01* |
G01X123000* |
G03X122500Y176100I0J-500* |
G01Y123000* |
G03X123000Y122500I500J0* |
G01X648200* |
G03X648700Y123000I-0J500* |
G01X635873Y151245D02* |
G03X627590Y159310I-4473J3692D01* |
G01X635873Y151245D02* |
G03X635999Y150499I386J-319D01* |
G01X637200Y148363D02* |
G03X635999Y150499I-2500J-0D01* |
G01X637200Y148363D02* |
Y141763D01* |
X634700Y139263D02* |
G03X637200Y141763I0J2500D01* |
G01X634700Y139263D02* |
X628100D01* |
X625600Y141763D02* |
G03X628100Y139263I2500J-0D01* |
G01X625600Y141763D02* |
Y148363D01* |
X626115Y149883D02* |
G03X625600Y148363I1985J-1520D01* |
G01X626115Y149883D02* |
G03X625718Y150687I-397J304D01* |
G01X599595* |
G03X599241Y150541I-0J-500* |
G01X590758Y142058* |
X587753Y140813D02* |
G03X590758Y142058I0J4250D01* |
G01X587753Y140813D02* |
X582726D01* |
G03X582289Y140555I0J-500* |
G01X580100Y139263D02* |
G03X582289Y140555I0J2500D01* |
G01X580100Y139263D02* |
X573500D01* |
X571000Y141763D02* |
G03X573500Y139263I2500J-0D01* |
G01X571000Y141763D02* |
Y148363D01* |
X571515Y149883D02* |
G03X571000Y148363I1985J-1520D01* |
G01X571515Y149883D02* |
G03X571118Y150687I-397J304D01* |
G01X569150* |
G03X568796Y150541I-0J-500* |
G01X556299Y138043* |
G03X556153Y137661I353J-353* |
G01X549907Y143908D02* |
G03X556153Y137661I-377J-6623D01* |
G01X549907Y143908D02* |
G03X550288Y144054I28J499D01* |
G01X564177Y157942* |
X567182Y159187D02* |
G03X564177Y157942I0J-4250D01* |
G01X567182Y159187D02* |
X572661D01* |
G03X572990Y159310I0J500* |
G01X581273Y151245D02* |
G03X572990Y159310I-4473J3692D01* |
G01X581273Y151245D02* |
G03X581399Y150499I386J-319D01* |
G01X582289Y149571D02* |
G03X581399Y150499I-2189J-1208D01* |
G01X582289Y149571D02* |
G03X582726Y149313I437J242D01* |
G01X585786* |
G03X586139Y149459I-0J500* |
G01X594622Y157942* |
X597627Y159187D02* |
G03X594622Y157942I0J-4250D01* |
G01X597627Y159187D02* |
X627261D01* |
G03X627590Y159310I0J500* |
G01X617000Y172750D02* |
Y163750D01* |
X614500Y161250D02* |
G03X617000Y163750I0J2500D01* |
G01X614500Y161250D02* |
X585682D01* |
X583182Y163750D02* |
G03X585682Y161250I2500J0D01* |
G01X583182Y163750D02* |
Y172750D01* |
X585682Y175250D02* |
G03X583182Y172750I-0J-2500D01* |
G01X585682Y175250D02* |
X614500D01* |
X617000Y172750D02* |
G03X614500Y175250I-2500J0D01* |
G01X324506Y137661D02* |
G03X330753Y143908I6623J-376D01* |
G01X324506Y137661D02* |
G03X324361Y138043I-499J29D01* |
G01X311863Y150541* |
G03X311510Y150687I-353J-354* |
G01X309482* |
G03X309085Y149883I-0J-500* |
G01X309600Y148363D02* |
G03X309085Y149883I-2500J-0D01* |
G01X309600Y148363D02* |
Y141763D01* |
X307100Y139263D02* |
G03X309600Y141763I0J2500D01* |
G01X307100Y139263D02* |
X300500D01* |
X298311Y140555D02* |
G03X300500Y139263I2189J1208D01* |
G01X298311Y140555D02* |
G03X297874Y140813I-437J-242D01* |
G01X294547* |
X291542Y142058D02* |
G03X294547Y140813I3005J3005D01* |
G01X291542Y142058D02* |
X283059Y150541D01* |
G03X282705Y150687I-354J-354* |
G01X254882* |
G03X254485Y149883I-0J-500* |
G01X255000Y148363D02* |
G03X254485Y149883I-2500J-0D01* |
G01X255000Y148363D02* |
Y141763D01* |
X252500Y139263D02* |
G03X255000Y141763I0J2500D01* |
G01X252500Y139263D02* |
X245900D01* |
X243400Y141763D02* |
G03X245900Y139263I2500J-0D01* |
G01X243400Y141763D02* |
Y148363D01* |
X244601Y150499D02* |
G03X243400Y148363I1299J-2136D01* |
G01X244601Y150499D02* |
G03X244727Y151245I-260J427D01* |
G01X253010Y159310D02* |
G03X244727Y151245I-3810J-4373D01* |
G01X253010Y159310D02* |
G03X253339Y159187I329J377D01* |
G01X284673* |
X287678Y157942D02* |
G03X284673Y159187I-3005J-3005D01* |
G01X287678Y157942D02* |
X296161Y149459D01* |
G03X296514Y149313I353J354* |
G01X297874* |
G03X298311Y149571I-0J500* |
G01X299201Y150499D02* |
G03X298311Y149571I1299J-2136D01* |
G01X299201Y150499D02* |
G03X299327Y151245I-260J427D01* |
G01X307610Y159310D02* |
G03X299327Y151245I-3810J-4373D01* |
G01X307610Y159310D02* |
G03X307939Y159187I329J377D01* |
G01X313477* |
X316482Y157942D02* |
G03X313477Y159187I-3005J-3005D01* |
G01X316482Y157942D02* |
X330371Y144054D01* |
G03X330753Y143908I354J353* |
G01X215563Y137661D02* |
G03X221810Y143908I6623J-376D01* |
G01X215563Y137661D02* |
G03X215417Y138043I-499J29D01* |
G01X202920Y150541* |
G03X202566Y150687I-354J-354* |
G01X200282* |
G03X199885Y149883I-0J-500* |
G01X200400Y148363D02* |
G03X199885Y149883I-2500J-0D01* |
G01X200400Y148363D02* |
Y141763D01* |
X197900Y139263D02* |
G03X200400Y141763I0J2500D01* |
G01X197900Y139263D02* |
X191300D01* |
X189111Y140555D02* |
G03X191300Y139263I2189J1208D01* |
G01X189111Y140555D02* |
G03X188674Y140813I-437J-242D01* |
G01X183947* |
X180942Y142058D02* |
G03X183947Y140813I3005J3005D01* |
G01X180942Y142058D02* |
X172459Y150541D01* |
G03X172105Y150687I-354J-354* |
G01X145682* |
G03X145285Y149883I-0J-500* |
G01X145800Y148363D02* |
G03X145285Y149883I-2500J-0D01* |
G01X145800Y148363D02* |
Y141763D01* |
X143300Y139263D02* |
G03X145800Y141763I0J2500D01* |
G01X143300Y139263D02* |
X136700D01* |
X134200Y141763D02* |
G03X136700Y139263I2500J-0D01* |
G01X134200Y141763D02* |
Y148363D01* |
X135401Y150499D02* |
G03X134200Y148363I1299J-2136D01* |
G01X135401Y150499D02* |
G03X135527Y151245I-260J427D01* |
G01X141719Y160476D02* |
G03X135527Y151245I-1719J-5539D01* |
G01X141719Y160476D02* |
G03X141850Y160454I148J478D01* |
X141967Y160393I287J410* |
G01X143810Y159310D02* |
G03X141967Y160393I-3810J-4373D01* |
G01X143810Y159310D02* |
G03X144139Y159187I329J377D01* |
G01X174073* |
X177078Y157942D02* |
G03X174073Y159187I-3005J-3005D01* |
G01X177078Y157942D02* |
X185561Y149459D01* |
G03X185914Y149313I353J354* |
G01X188674* |
G03X189111Y149571I-0J500* |
G01X190001Y150499D02* |
G03X189111Y149571I1299J-2136D01* |
G01X190001Y150499D02* |
G03X190127Y151245I-260J427D01* |
G01X198410Y159310D02* |
G03X190127Y151245I-3810J-4373D01* |
G01X198410Y159310D02* |
G03X198739Y159187I329J377D01* |
G01X204534* |
X207539Y157942D02* |
G03X204534Y159187I-3005J-3005D01* |
G01X207539Y157942D02* |
X221428Y144054D01* |
G03X221810Y143908I353J353* |
G01X189000Y172750D02* |
Y163750D01* |
X186500Y161250D02* |
G03X189000Y163750I0J2500D01* |
G01X186500Y161250D02* |
X142955D01* |
X142273Y161345D02* |
G03X142955Y161250I682J2405D01* |
G01X142273Y161345D02* |
G03X142154Y161363I-136J-481D01* |
X142048Y161420I-287J-409* |
G01X140455Y163750D02* |
G03X142048Y161420I2500J0D01* |
G01X140455Y163750D02* |
Y172750D01* |
X142955Y175250D02* |
G03X140455Y172750I-0J-2500D01* |
G01X142955Y175250D02* |
X186500D01* |
X189000Y172750D02* |
G03X186500Y175250I-2500J0D01* |
G54D31* |
G01X381000Y142000D03* |
G54D42* |
X391000D02* |
Y142485D01* |
X391485* |
X385087Y148882* |
Y161979* |
X222186Y172285D02* |
X331129D01* |
X385087Y170000D02* |
X387087Y172000D01* |
X549245* |
X549530Y172285* |
X549530* |
X446753* |
X385087Y170000D02* |
X382802Y172285D01* |
X331129* |
X385087Y161979D02* |
Y170000D01* |
X446753Y172285D02* |
X446753D01* |
X446753* |
X433392D02* |
X446753D01* |
X549530* |
G54D43* |
X194600Y145063D03* |
X358400D03* |
X140000D03* |
X467600D03* |
X522200D03* |
X303800D03* |
X249200D03* |
X576800D03* |
X631400D03* |
X413000D03* |
G54D44* |
X194600Y154937D03* |
X358400D03* |
X140000D03* |
X467600D03* |
X522200D03* |
X303800D03* |
X249200D03* |
X576800D03* |
X631400D03* |
X413000D03* |
G54D45* |
X395087Y161979D03* |
X385087D03* |
X375087D03* |
G54D46* |
X222186Y137285D03* |
Y172285D03* |
X446753Y137285D03* |
Y172285D03* |
X331129Y137285D03* |
Y172285D03* |
X549530Y137285D03* |
Y172285D03* |
X433392Y137285D03* |
Y172285D03* |
G54D47* |
X140000Y154937D02* |
X174073D01* |
X194600Y145063D02* |
X183947D01* |
X174073Y154937* |
X194600D02* |
X204534D01* |
X222186Y137285* |
X303800Y145063D02* |
X294547D01* |
X284673Y154937* |
X249200D02* |
X284673D01* |
X303800D02* |
X313477D01* |
X378747Y134000D02* |
X401937D01* |
X413000Y145063* |
X378747Y134000D02* |
X370000Y142747D01* |
Y145453* |
X359458Y155995* |
X358400Y154937* |
X331129Y137285D02* |
X313477Y154937D01* |
X423742Y146935D02* |
X423119D01* |
X414058Y155995* |
X467600Y154937D02* |
X466542Y155995D01* |
X467600Y145063D02* |
X478153D01* |
X488027Y154937* |
X522200* |
X433392Y137285D02* |
X423742Y146935D01* |
X446753Y137285D02* |
X455468Y146000D01* |
X456547* |
X466542Y155995* |
X413000Y154937D02* |
X414058Y155995D01* |
X549530Y137285D02* |
X567182Y154937D01* |
X576800* |
Y145063D02* |
X587753D01* |
X597627Y154937* |
X631400* |
G54D48* |
X626332Y150131D02* |
X629067Y147396D01* |
X636468Y150131D02* |
X633733Y147396D01* |
X636468Y139995D02* |
X633733Y142730D01* |
X626332Y139995D02* |
X629067Y142730D01* |
X244132Y150131D02* |
X246867Y147396D01* |
X254268Y150131D02* |
X251533Y147396D01* |
X254268Y139995D02* |
X251533Y142730D01* |
X244132Y139995D02* |
X246867Y142730D01* |
X517132Y150131D02* |
X519867Y147396D01* |
X527268Y150131D02* |
X524533Y147396D01* |
X527268Y139995D02* |
X524533Y142730D01* |
X517132Y139995D02* |
X519867Y142730D01* |
X134932Y150131D02* |
X137667Y147396D01* |
X145068Y150131D02* |
X142333Y147396D01* |
X145068Y139995D02* |
X142333Y142730D01* |
X134932Y139995D02* |
X137667Y142730D01* |
X353332Y150131D02* |
X356067Y147396D01* |
X363468Y139995D02* |
X360733Y142730D01* |
X353332Y139995D02* |
X356067Y142730D01* |
X370069Y156961D02* |
X372789Y159681D01* |
X370069Y166997D02* |
X372789Y164277D01* |
X380105Y156961D02* |
X377385Y159681D01* |
X390069Y156961D02* |
X392789Y159681D01* |
X400105Y166997D02* |
X397385Y164277D01* |
X400105Y156961D02* |
X397385Y159681D01* |
G74* |
X0Y0D02* |
M02* |
/roboti/istrobot/camerus/HW/CAM_PROFI/V2.rep |
---|
0,0 → 1,22 |
Photo-Plotter Apertures Report |
============================== |
Position Width Hgt/ID Shape Qty |
======== ===== ====== ===== === |
12 70 0 SQR 1 |
13 236.22 0 RND 4 |
25 10 0 RND 306 |
31 70 0 RND 1 |
42 45 0 RND 17 |
43 66 0 SQR 10 |
44 66 0 RND 10 |
45 65 0 SQR 3 |
46 82.68 0 RND 10 |
47 35 0 RND 32 |
48 25 0 RND 25 |
/roboti/istrobot/camerus/HW/PCB/LEDpanel.pcb |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/roboti/istrobot/camerus/HW/SCH/LEDPANEL.DSN |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/roboti/istrobot/camerus/HW/SCH/LEDPANEL.ONL |
---|
0,0 → 1,274 |
(PCB LEDPANEL |
(description |
(timeStamp "2007 03 11 21 45 48") |
(program "CAPTURE.EXE" (Version "10.5.0.p001 CIS - D")) |
(source "Original data from OrCAD/CAPTURE schematic") |
(title "LEDpanel") |
(date "Sunday, March 11, 2007") |
(document "D:\\KAKLIK\\PROJEKTY\\ROBOTI\\ISTROBOT\\CAMERUS\\HW\\SCH\\LEDPANEL.DSN") |
(revision "") |
(organization "") |
(address1 "") |
(address2 "") |
(address3 "") |
(address4 "") |
(partvaluecombine "{Value}") |
(pcbfootprintcombine "{Device},{Value}@{PCB Footprint}")) |
(structure ) |
(placement |
(component JUMP3 |
(place J1 |
(property |
("PCB Footprint" JUMP3) |
(Device JUMP3) |
(timestamp 000003DB) |
("Source Package" JUMP3) |
(Value JUMP3)))) |
(component RL090 |
(place R1 |
(property |
("PCB Footprint" RL090) |
(Device R) |
(timestamp 000000CF) |
("Source Package" RL090) |
(Value RL090))) |
(place R2 |
(property |
("PCB Footprint" RL090) |
(Device R) |
(timestamp 000000DF) |
("Source Package" RL090) |
(Value RL090))) |
(place R3 |
(property |
("PCB Footprint" RL090) |
(Device R) |
(timestamp 000000EF) |
("Source Package" RL090) |
(Value RL090))) |
(place R4 |
(property |
("PCB Footprint" RL090) |
(Device R) |
(timestamp 000000FF) |
("Source Package" RL090) |
(Value RL090))) |
(place R5 |
(property |
("PCB Footprint" RL090) |
(Device R) |
(timestamp 0000010F) |
("Source Package" RL090) |
(Value RL090)))) |
(component LED5mm |
(place D10 |
(property |
("PCB Footprint" LED5) |
(Device LED) |
(timestamp 000000B6) |
("Source Package" LED5mm) |
(Value LED5mm))) |
(place D1 |
(property |
("PCB Footprint" LED5) |
(Device LED) |
(timestamp 00000026) |
("Source Package" LED5mm) |
(Value LED5mm))) |
(place D2 |
(property |
("PCB Footprint" LED5) |
(Device LED) |
(timestamp 00000036) |
("Source Package" LED5mm) |
(Value LED5mm))) |
(place D3 |
(property |
("PCB Footprint" LED5) |
(Device LED) |
(timestamp 00000046) |
("Source Package" LED5mm) |
(Value LED5mm))) |
(place D4 |
(property |
("PCB Footprint" LED5) |
(Device LED) |
(timestamp 00000056) |
("Source Package" LED5mm) |
(Value LED5mm))) |
(place D5 |
(property |
("PCB Footprint" LED5) |
(Device LED) |
(timestamp 00000066) |
("Source Package" LED5mm) |
(Value LED5mm))) |
(place D6 |
(property |
("PCB Footprint" LED5) |
(Device LED) |
(timestamp 00000076) |
("Source Package" LED5mm) |
(Value LED5mm))) |
(place D7 |
(property |
("PCB Footprint" LED5) |
(Device LED) |
(timestamp 00000086) |
("Source Package" LED5mm) |
(Value LED5mm))) |
(place D8 |
(property |
("PCB Footprint" LED5) |
(Device LED) |
(timestamp 00000096) |
("Source Package" LED5mm) |
(Value LED5mm))) |
(place D9 |
(property |
("PCB Footprint" LED5) |
(Device LED) |
(timestamp 000000A6) |
("Source Package" LED5mm) |
(Value LED5mm)))) |
(component "C-ELYT-CE025X6" |
(place C1 |
(property |
("PCB Footprint" CE025X6) |
(Device "C-ELYT") |
(timestamp 000003AA) |
("Source Package" "C-ELYT-CE025X6") |
(Value 1000uF)))) |
(component HOLE_M3 |
(place M1 |
(property |
("PCB Footprint" HOLE_M3) |
(Device PAD) |
(timestamp 00000619) |
("Source Package" HOLE_M3) |
(Value HOLE_M3))) |
(place M2 |
(property |
("PCB Footprint" HOLE_M3) |
(Device PAD) |
(timestamp 00000643) |
("Source Package" HOLE_M3) |
(Value HOLE_M3))) |
(place M3 |
(property |
("PCB Footprint" HOLE_M3) |
(Device PAD) |
(timestamp 0000066D) |
("Source Package" HOLE_M3) |
(Value HOLE_M3))) |
(place M4 |
(property |
("PCB Footprint" HOLE_M3) |
(Device PAD) |
(timestamp 00000697) |
("Source Package" HOLE_M3) |
(Value HOLE_M3))))) |
(library |
(image RL090 |
(property |
(sourcelib C:\\LIBRARY\\ORCAD9X\\COM_RLC.OLB) |
(Device R)) |
(pin 999 1 |
(property |
(pinname 1) |
(pintype 4))) |
(pin 999 2 |
(property |
(pinname 2) |
(pintype 4)))) |
(image "C-ELYT-CE025X6" |
(property |
(sourcelib C:\\LIBRARY\\ORCAD9X\\COM_RLC.OLB) |
(Device "C-ELYT")) |
(pin 999 A |
(property |
(pinname A) |
(pintype 4))) |
(pin 999 C |
(property |
(pinname C) |
(pintype 4)))) |
(image HOLE_M3 |
(property |
(sourcelib C:\\LIBRARY\\ORCAD9X\\PAD.OLB) |
(Device PAD)) |
(pin 999 1 |
(property |
(pinname PIN) |
(pintype 4)))) |
(image JUMP3 |
(property |
(sourcelib C:\\LIBRARY\\ORCAD9X\\JUMP.OLB) |
(Device JUMP3)) |
(pin 999 1 |
(property |
(pinname 1) |
(pintype 4))) |
(pin 999 2 |
(property |
(pinname 2) |
(pintype 4))) |
(pin 999 3 |
(property |
(pinname 3) |
(pintype 4)))) |
(image LED5mm |
(property |
(sourcelib C:\\LIBRARY\\ORCAD9X\\COM_OPTO.OLB) |
(Device LED)) |
(pin 999 A |
(property |
(pinname A) |
(pintype 4))) |
(pin 999 C |
(property |
(pinname C) |
(pintype 4))))) |
(network |
(net VCC |
(property |
(nettype S)) |
(pins |
R3-2 C1-A J1-2 R5-2 R1-2 R2-2 R4-2)) |
(net GND |
(property |
(nettype S)) |
(pins |
D8-C C1-C D4-C M1-1 D2-C M3-1 M4-1 D6-C J1-3 |
J1-1 M2-1 D10-C)) |
(net N00380 |
(pins |
R1-1 D1-A)) |
(net N00388 |
(pins |
D1-C D2-A)) |
(net N00433 |
(pins |
D4-A D3-C)) |
(net N00446 |
(pins |
D3-A R2-1)) |
(net N00494 |
(pins |
R3-1 D5-A)) |
(net N00649 |
(pins |
D5-C D6-A)) |
(net N00715 |
(pins |
D7-A R4-1)) |
(net N00793 |
(pins |
R5-1 D9-A)) |
(net N00822 |
(pins |
D9-C D10-A)) |
(net N00885 |
(pins |
D7-C D8-A))) |
) |
/roboti/istrobot/camerus/HW/SCH/LEDPANEL.asc |
---|
0,0 → 1,51 |
*PADS-PCB* |
*PART* |
C1 C-ELYT,1000uF@CE025X6 |
D1 LED,LED5mm@LED5 |
D10 LED,LED5mm@LED5 |
D2 LED,LED5mm@LED5 |
D3 LED,LED5mm@LED5 |
D4 LED,LED5mm@LED5 |
D5 LED,LED5mm@LED5 |
D6 LED,LED5mm@LED5 |
D7 LED,LED5mm@LED5 |
D8 LED,LED5mm@LED5 |
D9 LED,LED5mm@LED5 |
J1 JUMP3,JUMP3@JUMP3 |
M1 PAD,HOLE_M3@HOLE_M3 |
M2 PAD,HOLE_M3@HOLE_M3 |
M3 PAD,HOLE_M3@HOLE_M3 |
M4 PAD,HOLE_M3@HOLE_M3 |
R1 R,RL090@RL090 |
R2 R,RL090@RL090 |
R3 R,RL090@RL090 |
R4 R,RL090@RL090 |
R5 R,RL090@RL090 |
*NET* |
*SIGNAL* VCC |
R3.2 C1.A J1.2 R5.2 R1.2 R2.2 R4.2 |
*SIGNAL* GND |
D8.C C1.C D4.C M1.1 D2.C M3.1 M4.1 D6.C |
J1.3 J1.1 M2.1 D10.C |
*SIGNAL* N00380 |
R1.1 D1.A |
*SIGNAL* N00388 |
D1.C D2.A |
*SIGNAL* N00433 |
D4.A D3.C |
*SIGNAL* N00446 |
D3.A R2.1 |
*SIGNAL* N00494 |
R3.1 D5.A |
*SIGNAL* N00649 |
D5.C D6.A |
*SIGNAL* N00715 |
D7.A R4.1 |
*SIGNAL* N00793 |
R5.1 D9.A |
*SIGNAL* N00822 |
D9.C D10.A |
*SIGNAL* N00885 |
D7.C D8.A |
*END* |
/roboti/istrobot/camerus/HW/SCH/LEDPANEL_0.DBK |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/roboti/istrobot/camerus/ToDo.txt |
---|
0,0 → 1,18 |
- Tlaèítko na vypnutí, pøípadnì (IRDA) |
- vyrobit modul na oci |
- Pøedìlat modul LEDROBOT, nadimenzovat ho na vìtí proud. |
- napajení elektroniky udìlat pøes spínaný zdroj (aby nevadily vybité baterie) |
- pøilepit zatáèecí koleèko k osièce, aby se nemuselo, poøád rovnat. |
- Udìlat podsvìtlení, aby se robot líbil porotì. |
- Modul s kroutitkama 6 kroutitek |
- modul s LED, nebo neosadit stabilizator do modulu LEDrobot |
- vymyslet postup kalibrace kamery (jak vizualizovat co kamera vidi) |
- co pouzit LEDbar? |
- projit problemy lonske konstrukce |
/roboti/istrobot/camerus |
---|
Property changes: |
Added: svn:ignore |
+*.bak |
+*.BAK |
+*.cof |
+*.err |
+*.hex |
+*.lst |
+*.sta |
+*.sym |
+*.tre |
/roboti/istrobot/cholerik/cholerik.c |
---|
0,0 → 1,274 |
// Program pro MiniSumo na R-Day 2006 |
//"$Id$" |
#include "cholerik.h" |
#define THRESHOLD 15 // rozhodovaci uroven pro okraj areny |
// 0-15 (od 0.25 do 0.75 Vdd) |
// 0 jasnejsi; 15 tmavsi |
//motory //Napred vypnout potom zapnout! |
#define FR output_low(PIN_B5); output_high(PIN_B4) // Vpred |
#define FL output_low(PIN_B7); output_high(PIN_B6) |
#define BR output_low(PIN_B4); output_high(PIN_B5) // Vzad |
#define BL output_low(PIN_B6); output_high(PIN_B7) |
#define STOPR output_low(PIN_B4);output_low(PIN_B5) // Zastav |
#define STOPL output_low(PIN_B6);output_low(PIN_B7) |
//cidla |
#define SIDE_R !input(PIN_A7) // Sensory na soupere |
#define SIDE_L !input(PIN_A4) |
#define FRONT !input(PIN_A6) |
#define BACK !input(PIN_B3) |
#define GRAVITY !input(PIN_A1) |
// PIN_A3 Prave cidlo na okraj areny (C1OUT) |
// PIN_A2 Leve cidlo na okraj areny (C2OUT) |
#DEFINE SOUND_HI PIN_B1 // komplementarni vystupy pro piezo pipak |
#DEFINE SOUND_LO PIN_B2 |
// makro pro PWM |
#define GO(motor, direction, power) if(get_timer0()<=power) \ |
{direction##motor;} else {stop##motor;} |
unsigned int8 majak=0; |
unsigned int8 sl=0; |
unsigned int8 sr=0; |
unsigned int8 b=0; |
unsigned int8 f=0; |
unsigned int8 g=0; |
int1 arena_l=FALSE; |
int1 arena_r=FALSE; |
int1 diag=FALSE; |
#int_TIMER0 |
TIMER0_isr() |
{ |
int1 stav; |
stav = ((majak & 0b1) == 0b1); |
if (((SIDE_R && stav) || (!SIDE_R && !stav))) {if (sr<255) sr++;} else {sr=0;}; |
if (((SIDE_L && stav) || (!SIDE_L && !stav))) {if (sl<255) sl++;} else {sl=0;}; |
if (((BACK && stav) || (!BACK && !stav))) {if (b<255) b++;} else {b=0;}; |
if (((FRONT && stav) || (!FRONT && !stav))) {if (f<255) f++;} else {f=0;}; |
majak++; |
stav = ((majak & 0b1) == 0b1); |
if (!C1OUT) arena_r=TRUE; else arena_r=FALSE; |
if (!C2OUT) arena_l=TRUE; else arena_l=FALSE; |
if (stav) |
{ |
set_pwm1_duty(27); // 1:1 |
} |
else |
{ |
set_pwm1_duty(55); // 1:0 |
}; |
setup_comparator(NC_NC_NC_NC); // inicializace komparatoru |
if (GRAVITY) {if (g<255) g++;} else g=0; |
setup_comparator(A3_VR_A2_VR); // inicializace komparatoru |
if (g>3 && !diag) {FL; FR; while(TRUE);}; // kdyz nas preklopi, nedej se |
} |
// Primitivni Pipani |
void beep(unsigned int16 period, unsigned int16 length) |
{ |
unsigned int16 nn; |
disable_interrupts(GLOBAL); |
for(nn=length; nn>0; nn--) |
{ |
output_high(SOUND_HI);output_low(SOUND_LO); |
delay_us(period); |
output_high(SOUND_LO);output_low(SOUND_HI); |
delay_us(period); |
} |
enable_interrupts(GLOBAL); |
} |
/**** DIAG ********************************************************************/ |
inline void diagnostika() |
{ |
unsigned int16 n; |
setup_comparator(NC_NC_NC_NC); // inicializace komparatoru |
if (GRAVITY) |
{ |
setup_comparator(A3_VR_A2_VR); // inicializace komparatoru |
diag=TRUE; |
enable_interrupts(INT_TIMER0); |
enable_interrupts(GLOBAL); |
while (true) // Diagnostika cidel |
{ |
if (g>100) beep(800,100); |
Delay_ms(50); |
if (arena_l) {beep(1000,200); delay_ms(10);beep(1000,200);}; |
Delay_ms(50); |
if (arena_r) {beep(2000,300); delay_ms(10);beep(2000,300);}; |
Delay_ms(50); |
if (sr>10) beep(3000,400); |
Delay_ms(50); |
if (f>10) beep(4000,500); |
Delay_ms(50); |
if (sl>10) beep(5000,500); |
Delay_ms(50); |
if (b>10) beep(6000,600); |
Delay_ms(50); |
if((g>100) && arena_l && arena_r) break; // Preklopen na zada a bily papir na obou cidlech na okraj areny |
}; |
while(TRUE) // Diagnostika podvozku |
{ |
for (n=500; n<800; n+=100) |
{ |
beep(n,n); //beep UP |
}; |
Delay_ms(1000); |
//zastav vse |
STOPL; STOPR; |
//pravy pas |
FR; Delay_ms(1000); STOPR; Delay_ms(1000); |
BR; Delay_ms(1000); STOPR; Delay_ms(1000); |
Beep(880,100); Delay_ms(1000); |
//levy pas |
FL; Delay_ms(1000); STOPL; Delay_ms(1000); |
BL; Delay_ms(1000); STOPL; Delay_ms(1000); |
Beep(880,100); Delay_ms(1000); |
//oba pasy |
FL; FR; Delay_ms(1000); STOPL; STOPR; Delay_ms(1000); |
BL; BR; Delay_ms(1000); STOPL; STOPR; Delay_ms(1000); |
}; |
}; |
} |
/**** MAIN ********************************************************************/ |
void main() |
{ |
unsigned int16 n; // for FOR |
STOPL; STOPR; // zastavi motory |
setup_oscillator(OSC_8MHZ|OSC_INTRC); // CPU clock 8MHz |
setup_adc_ports(NO_ANALOGS); // komparatory vypnuty |
setup_adc(ADC_OFF); |
setup_spi(FALSE); |
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4); // Casovac pro SW PWM a cteni cidel |
setup_timer_1(T1_DISABLED); |
setup_timer_2(T2_DIV_BY_1,54,1); // Casovac pro PWM pro IR sensory cca 36kHz |
setup_ccp1(CCP_PWM); // HW PWM ON |
set_pwm1_duty(27); // 1:1 |
setup_comparator(A3_VR_A2_VR); // inicializace komparatoru |
setup_comparator(NC_NC_NC_NC); // inicializace komparatoru |
setup_vref(VREF_HIGH|THRESHOLD); // 16 kroku od 0.25 do 0.75 Vdd |
Beep(1000,200); //double beep |
Delay_ms(50); |
Beep(1000,200); |
diagnostika(); |
enable_interrupts(INT_TIMER0); |
enable_interrupts(GLOBAL); |
for (n=1;n<=5;n++) // 5s do zacatku souboje |
{ |
Delay_ms(670); // 5,25s |
Beep(1000,200); |
} |
/*----- Main Loop ------------------------------------------------------------*/ |
while(true) // hlavni smycka |
{ |
LOOP: |
GO(L, F, 150); GO(R, F, 150); |
if (arena_r) |
{ |
BL; BR; |
delay_ms(100); |
STOPL; BR; |
for(n=0; n<5000; n++) |
{ |
if (!arena_r || arena_l) {BL; BR;}; |
}; |
FL; BR; |
delay_ms(100); |
STOPL; STOPR; |
} |
if (arena_l) |
{ |
BL; BR; |
delay_ms(100); |
BL; STOPR; |
for(n=0; n<5000; n++) |
{ |
if (!arena_l || arena_r) {BL; BR;}; |
}; |
BL; FR; |
delay_ms(100); |
STOPL; STOPR; |
} |
if (sr>10) // Nepritel vpravo |
{ |
FL; FR; // popojed rovne |
for(n=0; n<5000; n++) |
{ |
if (arena_l || arena_r) {BL; BR; delay_ms(100); goto LOOP;}; |
}; |
FL; BR; // otoc se na nej |
for(n=0; n<10000; n++) |
{ |
if (arena_l || arena_r) {BL; BR; delay_ms(100); goto LOOP;}; |
if (f>5) |
{ |
FL; FR; // vytlac ho |
}; |
if (sl>5) {BL; FR;}; |
if (sr>5) {FL; BR;}; |
}; |
} |
if (sl>10) // Nepritel vlevo |
{ |
FL; FR; // popojed rovne |
for(n=0; n<5000; n++) |
{ |
if (arena_l || arena_r) {BL; BR; delay_ms(100); goto LOOP;}; |
}; |
BL; FR; // otoc se na nej |
for(n=0; n<10000; n++) |
{ |
if (arena_l || arena_r) {BL; BR; delay_ms(100); goto LOOP;}; |
if (f>5) |
{ |
FL; FR; // vytlac ho |
}; |
if (sl>5) {BL; FR;}; |
if (sr>5) {FL; BR;}; |
}; |
} |
if (f>10) // Nepritel vpredu |
{ |
BL; FR; |
delay_ms(110); |
FL; BR; |
delay_ms(50); |
STOPL; STOPR; |
} |
if (b>10) // Nepritel vzadu |
{ |
BL; FR; |
delay_ms(110); |
FL; BR; |
delay_ms(50); |
STOPL; STOPR; |
} |
} // while(true) |
} |
Property changes: |
Added: svn:keywords |
+Id Rev |
\ No newline at end of property |
/roboti/istrobot/cholerik/cholerik.PJT |
---|
0,0 → 1,43 |
[PROJECT] |
Target=tank.HEX |
Development_Mode= |
Processor=0x688F |
ToolSuite=CCS |
[Directories] |
Include=C:\Program Files\PICC\devices\;C:\Program Files\PICC\drivers\;C:\library\CCS; |
Library= |
LinkerScript= |
[Target Data] |
FileList=C:\dokumenty\svn\Kaklik\roboti\istrobot\cholerik\cholerik.c |
BuildTool=C-COMPILER |
OptionString=+FM |
AdditionalOptionString= |
BuildRequired=1 |
[tank.c] |
Type=4 |
Path= |
FileList= |
BuildTool= |
OptionString= |
AdditionalOptionString= |
[mru-list] |
1=tank.c |
[Windows] |
0=0000 tank.c 0 0 796 451 3 0 |
[Opened Files] |
1=C:\dokumenty\svn\Kaklik\roboti\istrobot\cholerik\cholerik.c |
2=C:\dokumenty\svn\Kaklik\roboti\istrobot\cholerik\cholerik.h |
3=C:\Program Files\PICC\devices\16F88.h |
4= |
5= |
6= |
7= |
[Units] |
Count=1 |
1=C:\dokumenty\svn\Kaklik\roboti\istrobot\cholerik\cholerik.c (main) |
/roboti/istrobot/cholerik/cholerik.h |
---|
0,0 → 1,19 |
#include <16F88.h> |
#device adc=8 |
#FUSES NOWDT //No Watch Dog Timer |
#FUSES INTRC_IO //Internal RC Osc, no CLKOUT |
#FUSES NOPUT //No Power Up Timer |
#FUSES MCLR //Master Clear pin enabled |
#FUSES NOBROWNOUT //No brownout reset |
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O |
#FUSES NOCPD //No EE protection |
#FUSES NOWRT //Program memory not write protected |
#FUSES NODEBUG //No Debug mode for ICD |
#FUSES NOPROTECT //Code not protected from reading |
#FUSES NOFCMEN //Fail-safe clock monitor disabled |
#FUSES NOIESO //Internal External Switch Over mode disabled |
#FUSES CCPB0 //Vystup PWM |
#use delay(clock=8000000) |
/roboti/istrobot/laserus/problem.txt |
---|
0,0 → 1,4 |
- nepodařilo se vyřešit snímání čáry ani jednou ze dvou typů čteček čárových kódů. |
-čtečka nedokáže za phybu dostatečně přesně rozmítat laser. Proto dochází k automatickému vypnutí při prní chybě čtení. |
-AGC (Automatic Gain Control) zabudované ve čtečce vyhodnotí za určitých případů čáru jako šum. Zvláště při najetí na čáru šikmo tak, že čára přetíná světelnou stopu ve větší délce, AGC pak dorovná celkový jas a čára se na datovém výstupu čidla ztratí. |
/roboti/istrobot/laserus/SW/PIC/873/Reg.H |
---|
0,0 → 1,298 |
// Komplete definition of all Special Feature Registers |
// of PIC16F87 and PIC16F88 |
// (c)miho 2005 |
#nolist |
// SFR Registers in Memory Bank 0 |
#byte INDF = 0x00 |
#byte TMR0 = 0x01 |
#byte PCL = 0x02 |
#byte STATUS = 0x03 |
#bit IRP = STATUS.7 |
#bit RP1 = STATUS.6 |
#bit RP0 = STATUS.5 |
#bit TO = STATUS.4 |
#bit PD = STATUS.3 |
#bit Z = STATUS.2 |
#bit DC = STATUS.1 |
#bit C = STATUS.0 |
#byte FSR = 0x04 |
#byte PORTA = 0x05 |
#byte PORTB = 0x06 |
#byte PCLATH = 0x0A |
#byte INTCON = 0x0B |
#bit GIE = INTCON.7 |
#bit PEIE = INTCON.6 |
#bit TMR0IE = INTCON.5 |
#bit INT0IE = INTCON.4 |
#bit RBIE = INTCON.3 |
#bit TMR0IF = INTCON.2 |
#bit INT0IF = INTCON.1 |
#bit RBIF = INTCON.0 |
#byte PIR1 = 0x0C |
#bit ADIF = PIR1.6 |
#bit RCIF = PIR1.5 |
#bit TXIF = PIR1.4 |
#bit SSPIF = PIR1.3 |
#bit CCP1IF = PIR1.2 |
#bit TMR2IF = PIR1.1 |
#bit TMR1IF = PIR1.0 |
#byte PIR2 = 0x0D |
#bit OSFIF = PIR2.7 |
#bit CMIF = PIR2.6 |
#bit EEIF = PIR2.4 |
#byte TMR1L = 0x0E |
#byte TMR1H = 0x0F |
#byte T1CON = 0x10 |
#bit T1RUN = T1CON.6 |
#bit T1CKPS1 = T1CON.5 |
#bit T1CKPS0 = T1CON.4 |
#bit T1OSCEN = T1CON.3 |
#bit T1SYNC = T1CON.2 |
#bit TMR1CS = T1CON.1 |
#bit TMR1ON = T1CON.0 |
#byte TMR2 = 0x11 |
#byte T2CON = 0x12 |
#bit TOUTPS3 = T2CON.6 |
#bit TOUTPS2 = T2CON.5 |
#bit TOUTPS1 = T2CON.4 |
#bit TOUTPS0 = T2CON.3 |
#bit TMR2ON = T2CON.2 |
#bit T2CKPS1 = T2CON.1 |
#bit T2CKPS0 = T2CON.0 |
#byte SSPBUF = 0x13 |
#byte SSPCON1 = 0x14 |
#bit WCOL = SSPCON1.7 |
#bit SSPOV = SSPCON1.6 |
#bit SSPEN = SSPCON1.5 |
#bit CKP = SSPCON1.4 |
#bit SSPM3 = SSPCON1.3 |
#bit SSPM2 = SSPCON1.2 |
#bit SSPM1 = SSPCON1.1 |
#bit SSPM0 = SSPCON1.0 |
#byte CCPR1L = 0x15 |
#byte CCPR1H = 0x16 |
#byte CCP1CON = 0x17 |
#bit CCP1X = CCP1CON.5 |
#bit CCP1Y = CCP1CON.4 |
#bit CCP1M3 = CCP1CON.3 |
#bit CCP1M2 = CCP1CON.2 |
#bit CCP1M1 = CCP1CON.1 |
#bit CCP1M0 = CCP1CON.0 |
#byte RCSTA = 0x18 |
#bit SPEN = RCSTA.7 |
#bit RX9 = RCSTA.6 |
#bit SREN = RCSTA.5 |
#bit CREN = RCSTA.4 |
#bit ADDEN = RCSTA.3 |
#bit FERR = RCSTA.2 |
#bit OERR = RCSTA.1 |
#bit RX9D = RCSTA.0 |
#byte TXREG = 0x19 |
#byte RCREG = 0x1A |
#byte ADRESH = 0x1E // F88 only |
#byte ADCON0 = 0x1F // F88 only |
#bit ADCS1 = ADCON0.7 |
#bit ADCS0 = ADCON0.6 |
#bit CHS2 = ADCON0.5 |
#bit CHS1 = ADCON0.4 |
#bit CHS0 = ADCON0.3 |
#bit GO = ADCON0.2 |
#bit ADON = ADCON0.0 |
// SFR Registers in Memory Bank 1 |
#byte INDF_1 = 0x80 // miror |
#byte OPTION = 0x81 |
#bit RBPU = OPTION.7 |
#bit INTEDG = OPTION.6 |
#bit T0CS = OPTION.5 |
#bit T0SE = OPTION.4 |
#bit PSA = OPTION.3 |
#bit PS2 = OPTION.2 |
#bit PS1 = OPTION.1 |
#bit PS0 = OPTION.0 |
#byte PCL = 0x82 |
#byte STATUS_1 = 0x83 // mirror |
#bit IRP_1 = STATUS_1.7 |
#bit RP1_1 = STATUS_1.6 |
#bit RP0_1 = STATUS_1.5 |
#bit TO_1 = STATUS_1.4 |
#bit PD_1 = STATUS_1.3 |
#bit Z_1 = STATUS_1.2 |
#bit DC_1 = STATUS_1.1 |
#bit C_1 = STATUS_1.0 |
#byte FSR = 0x84 |
#byte TRISA = 0x85 |
#byte TRISB = 0x86 |
#byte PCLATH_1 = 0x8A // mirror |
#byte INTCON_1 = 0x8B // mirror |
#bit GIE_1 = INTCON_1.7 |
#bit PEIE_1 = INTCON_1.6 |
#bit TMR0IE_1 = INTCON_1.5 |
#bit INT0IE_1 = INTCON_1.4 |
#bit RBIE_1 = INTCON_1.3 |
#bit TMR0IF_1 = INTCON_1.2 |
#bit INT0IF_1 = INTCON_1.1 |
#bit RBIF_1 = INTCON_1.0 |
#byte PIE1 = 0x8C |
#bit ADIE = PIE1.6 |
#bit RCIE = PIE1.5 |
#bit TXIE = PIE1.4 |
#bit SSPIE = PIE1.3 |
#bit CCP1IE = PIE1.2 |
#bit TMR2IE = PIE1.1 |
#bit TMR1IE = PIE1.0 |
#byte PIE2 = 0x8D |
#bit OSFIE = PIE2.7 |
#bit CMIE = PIE2.6 |
#bit EEIE = PIE2.4 |
#byte PCON = 0x8E |
#bit POR = PCON.1 |
#bit BOR = PCON.0 |
#byte OSCCON = 0x8F |
#bit IRCF2 = OSCCON.6 |
#bit IRCF1 = OSCCON.5 |
#bit IRCF0 = OSCCON.4 |
#bit OSTS = OSCCON.3 |
#bit IOFS = OSCCON.2 |
#bit SCS1 = OSCCON.1 |
#bit SCS0 = OSCCON.0 |
#byte OSCTUNE = 0x90 |
#bit TUN5 = OSCTUNE.5 |
#bit TUN4 = OSCTUNE.4 |
#bit TUN3 = OSCTUNE.3 |
#bit TUN2 = OSCTUNE.2 |
#bit TUN1 = OSCTUNE.1 |
#bit TUN0 = OSCTUNE.0 |
#byte PR2 = 0x92 |
#byte SSPADD = 0x93 |
#byte SSPSTAT = 0x94 |
#bit SMP = SSPSTAT.7 |
#bit CKE = SSPSTAT.6 |
#bit DA = SSPSTAT.5 |
#bit P = SSPSTAT.4 |
#bit S = SSPSTAT.3 |
#bit RW = SSPSTAT.2 |
#bit UA = SSPSTAT.1 |
#bit BF = SSPSTAT.0 |
#byte TXSTA = 0x98 |
#bit CSRC = TXSTA.7 |
#bit TX9 = TXSTA.6 |
#bit TXEN = TXSTA.5 |
#bit SYNC = TXSTA.4 |
#bit BRGH = TXSTA.2 |
#bit TRMT = TXSTA.1 |
#bit TX9D = TXSTA.0 |
#byte SPBRG = 0x99 |
#byte ANSEL = 0x9B // F88 only |
#bit ANS6 = ANSEL.6 |
#bit ANS5 = ANSEL.5 |
#bit ANS4 = ANSEL.4 |
#bit ANS3 = ANSEL.3 |
#bit ANS2 = ANSEL.2 |
#bit ANS1 = ANSEL.1 |
#bit ANS0 = ANSEL.0 |
#byte CMCON = 0x9C |
// #bit C2OUT = CMCON.7 |
// #bit C1OUT = CMCON.6 |
#bit C2INV = CMCON.5 |
#bit C1INV = CMCON.4 |
#bit CIS = CMCON.3 |
#bit CM2 = CMCON.2 |
#bit CM1 = CMCON.1 |
#bit CM0 = CMCON.0 |
#byte CVRCON = 0x9D |
#bit CVREN = CVRCON.7 |
#bit CVROE = CVRCON.6 |
#bit CVRR = CVRCON.5 |
#bit CVR3 = CVRCON.3 |
#bit CVR2 = CVRCON.2 |
#bit CVR1 = CVRCON.1 |
#bit CVR0 = CVRCON.0 |
#byte ADRESL = 0x9E // F88 only |
#byte ADCON1 = 0x9F // F88 only |
#bit ADFM = ADCON1.7 |
#bit ADCS2 = ADCON1.6 |
#bit VCFG1 = ADCON1.5 |
#bit VCFG0 = ADCON1.4 |
// SFR Registers in Memory Bank 2 |
#byte INDF_2 = 0x100 // mirror |
#byte TMR0_2 = 0x101 // mirror |
#byte PCL_2 = 0x102 // mirror |
#byte STATUS_2 = 0x103 // mirror |
#bit IRP_2 = STATUS_2.7 |
#bit RP1_2 = STATUS_2.6 |
#bit RP0_2 = STATUS_2.5 |
#bit TO_2 = STATUS_2.4 |
#bit PD_2 = STATUS_2.3 |
#bit Z_2 = STATUS_2.2 |
#bit DC_2 = STATUS_2.1 |
#bit C_2 = STATUS_2.0 |
#byte FSR_2 = 0x104 // mirror |
#byte WDTCON = 0x105 |
#bit WDTPS3 = WDTCON.4 |
#bit WDTPS2 = WDTCON.3 |
#bit WDTPS1 = WDTCON.2 |
#bit WDTPS0 = WDTCON.1 |
#bit SWDTEN = WDTCON.0 |
#byte PORTB_2 = 0x106 // mirror |
#byte PCLATH_2 = 0x10A // mirror |
#byte INTCON_2 = 0x10B // mirror |
#bit GIE_2 = INTCON_2.7 |
#bit PEIE_2 = INTCON_2.6 |
#bit TMR0IE_2 = INTCON_2.5 |
#bit INT0IE_2 = INTCON_2.4 |
#bit RBIE_2 = INTCON_2.3 |
#bit TMR0IF_2 = INTCON_2.2 |
#bit INT0IF_2 = INTCON_2.1 |
#bit RBIF_2 = INTCON_2.0 |
#byte EEDATA = 0x10C |
#byte EEADR = 0x10D |
#byte EEDATH = 0x10E |
#byte EEADRH = 0x10F |
// SFR Registers in Memory Bank 3 |
#byte INDF_3 = 0x180 // mirror |
#byte OPTION_3 = 0x181 // mirror |
#bit RBPU_3 = OPTION_3.7 |
#bit INTEDG_3 = OPTION_3.6 |
#bit T0CS_3 = OPTION_3.5 |
#bit T0SE_3 = OPTION_3.4 |
#bit PSA_3 = OPTION_3.3 |
#bit PS2_3 = OPTION_3.2 |
#bit PS1_3 = OPTION_3.1 |
#bit PS0_3 = OPTION_3.0 |
#byte PCL_3 = 0x182 // mirror |
#byte STATUS_3 = 0x183 // mirror |
#bit IRP_3 = STATUS_3.7 |
#bit RP1_3 = STATUS_3.6 |
#bit RP0_3 = STATUS_3.5 |
#bit TO_3 = STATUS_3.4 |
#bit PD_3 = STATUS_3.3 |
#bit Z_3 = STATUS_3.2 |
#bit DC_3 = STATUS_3.1 |
#bit C_3 = STATUS_3.0 |
#byte FSR_3 = 0x184 // mirror |
#byte TRISB_3 = 0x186 // mirror |
#byte PLATH_3 = 0x18A // mirror |
#byte INTCON_3 = 0x18B // mirror |
#bit GIE_3 = INTCON_3.7 |
#bit PEIE_3 = INTCON_3.6 |
#bit TMR0IE_3 = INTCON_3.5 |
#bit INT0IE_3 = INTCON_3.4 |
#bit RBIE_3 = INTCON_3.3 |
#bit TMR0IF_3 = INTCON_3.2 |
#bit INT0IF_3 = INTCON_3.1 |
#bit RBIF_3 = INTCON_3.0 |
#byte EECON1 = 0x18C |
#bit EEPGD = EECON1.7 |
#bit FREE = EECON1.4 |
#bit WRERR = EECON1.3 |
#bit WREN = EECON1.2 |
#bit WR = EECON1.1 |
#bit RD = EECON1.0 |
#byte EECON2 = 0x18D |
#list |
/roboti/istrobot/laserus/SW/PIC/873/laserus.PJT |
---|
0,0 → 1,40 |
[PROJECT] |
Target=laserus.HEX |
Development_Mode= |
Processor=0x873F |
ToolSuite=CCS |
[Directories] |
Include=C:\Program Files\PICC\devices\;C:\Program Files\PICC\Dr |
Library= |
LinkerScript= |
[Target Data] |
FileList=C:\PIC\laserus\873\laserus.c |
BuildTool=C-COMPILER |
OptionString=+FM |
AdditionalOptionString= |
BuildRequired=1 |
[laserus.c] |
Type=4 |
Path= |
FileList= |
BuildTool= |
OptionString= |
AdditionalOptionString= |
[mru-list] |
1=laserus.c |
[Windows] |
0=0000 laserus.c 0 0 796 451 3 0 |
[Opened Files] |
1=C:\PIC\laserus\873\laserus.c |
2=C:\PIC\laserus\873\laserus.h |
3=C:\Program Files\PICC\devices\16F873.h |
4= |
[Units] |
Count=1 |
1=C:\PIC\laserus\873\laserus.c (main) |
/roboti/istrobot/laserus/SW/PIC/873/laserus.c |
---|
0,0 → 1,130 |
#include "laserus.h" |
#define SERVO PIN_B5 // Vystup pro rizeni serva |
#define LASER PIN_B4 // Vstup pro cteni laseru |
#define MOT_DIR_L PIN_C0 // Rizeni smeru otaceni motoru |
#define MOT_DIR_R PIN_C3 |
// kroutitka |
#define CERVENA 0 // AN0 |
#define CERNA 1 // AN1 |
//#define ZELENA 3 // AN3 |
//#define MODRA 4 // AN4 |
#byte INTCON = 0x0B // Interrupt configuration register |
#bit GIE = INTCON.7 |
#bit PEIE = INTCON.6 |
#bit TMR0IE = INTCON.5 |
#bit INT0IE = INTCON.4 |
#bit RBIE = INTCON.3 |
#bit TMR0IF = INTCON.2 |
#bit INT0IF = INTCON.1 |
#bit RBIF = INTCON.0 |
boolean edge; |
int8 uhel, olduhel; |
int16 uhel16; |
#int_EXT |
EXT_isr() |
{ |
int n, t1, t2, t; |
set_timer0(0); // Vynulovani casovace pro 2ms |
output_high(SERVO); |
while(get_timer0()<(1000/256)); // Ceka 1ms |
for(n=uhel; n>0; n--) delay_us(3); // Sirka impulzu podle uhlu |
output_low(SERVO); |
while(get_timer0()<(3000/256)); // Ceka do 3ms, nez zacne scanovat |
set_timer0(0); // Vynulovani casovace pro zjisteni polohy cary |
if(edge) // Zrcatko prejizdelo tam nebo zpet? |
{ |
edge=false; |
ext_int_edge(H_TO_L); // Pristi inerrupt bude od opacne hrany |
INT0IF=0; // Povoleni dalsiho preruseni |
enable_interrupts(INT_EXT); |
enable_interrupts(GLOBAL); |
// do |
{ |
while(0==input(LASER)); // Ceka na detekci cary |
// output_high(SERVO); |
t1=get_timer0(); // Poznamena cas nabezne hrany |
while(1==input(LASER)); // Ceka az zkonci cara |
// output_low(SERVO); |
t2=get_timer0(); // Poznamena cas sestupne hrany |
t=t2-t1; |
} while((t<3) || (t>20)); // Cara je detekovana, kdyz trva mezi xx ms |
// if ((t>3) && (t<20)) uhel=(160-(read_adc()>>2))-t1; |
// if (abs(olduhel-uhel)<40) |
{ |
uhel=(160-(read_adc()>>2))-t1; |
olduhel=uhel; |
}; |
// uhel16=uhel; |
// set_pwm1_duty(250-(uhel16<<2)); // Elektronicky diferencial |
// set_pwm2_duty((uhel16)); |
set_adc_channel(CERNA); |
} |
else |
{ |
edge=true; |
ext_int_edge(L_TO_H); // Pristi inerrupt bude od opacne hrany |
INT0IF=0; // Povoleni dalsiho preruseni |
enable_interrupts(INT_EXT); |
enable_interrupts(GLOBAL); |
// do |
{ |
while(0==input(LASER)); // Ceka na detekci cary |
t1=get_timer0(); // Poznamena cas nabezne hrany |
while(1==input(LASER)); // Ceka az zkonci cara |
t2=get_timer0(); // Poznamena cas sestupne hrany |
t=t2-t1; |
} while((t<3) || (t>20)); // Cara je detekovana, kdyz trva mezi xx ms |
if (abs(olduhel-uhel)<40) |
{ |
// uhel=((read_adc()>>2)+32)+t1; |
// olduhel=uhel; |
}; |
set_adc_channel(CERVENA); |
} |
while(true); |
} |
void main() |
{ |
setup_adc_ports(ALL_ANALOG); // Analogove vstupy pro cteni trimru |
setup_adc(ADC_CLOCK_INTERNAL); |
setup_spi(FALSE); |
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256); // Casovac pro cteni laseru |
setup_timer_1(T1_DISABLED); |
setup_timer_2(T2_DIV_BY_4,255,1); // Casovac pro PWM cca 900Hz |
setup_ccp1(CCP_PWM); // Nastaveni PWM pro diferencial RC1, RC2 |
setup_ccp2(CCP_PWM); |
set_pwm1_duty(90); // Zastaveni PWM |
set_pwm2_duty(90); |
delay_ms(100); |
set_adc_channel(CERVENA); |
Delay_ms(1); |
ext_int_edge(L_TO_H); |
edge=true; |
uhel=((read_adc()>>2)+32)+30; |
olduhel=uhel; |
enable_interrupts(INT_EXT); |
enable_interrupts(GLOBAL); |
delay_ms(1000); |
output_high(MOT_DIR_L); // Oba motory vpred |
output_high(MOT_DIR_R); |
while(true); |
} |
/roboti/istrobot/laserus/SW/PIC/873/laserus.h |
---|
0,0 → 1,15 |
#include <16F873.h> |
#device adc=8 |
#FUSES NOWDT //No Watch Dog Timer |
#FUSES XT //Crystal osc <= 4mhz |
#FUSES NOPUT //No Power Up Timer |
#FUSES NOPROTECT //Code not protected from reading |
#FUSES NOBROWNOUT //No brownout reset |
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O |
#FUSES NOCPD //No EE protection |
#FUSES NOWRT //Program memory not write protected |
#FUSES NODEBUG //No Debug mode for ICD |
#use delay(clock=4000000) |
/roboti/istrobot/laserus/SW/PIC/88/16F88_Reg.H |
---|
0,0 → 1,298 |
// Komplete definition of all Special Feature Registers |
// of PIC16F87 and PIC16F88 |
// (c)miho 2005 |
#nolist |
// SFR Registers in Memory Bank 0 |
#byte INDF = 0x00 |
#byte TMR0 = 0x01 |
#byte PCL = 0x02 |
#byte STATUS = 0x03 |
#bit IRP = STATUS.7 |
#bit RP1 = STATUS.6 |
#bit RP0 = STATUS.5 |
#bit TO = STATUS.4 |
#bit PD = STATUS.3 |
#bit Z = STATUS.2 |
#bit DC = STATUS.1 |
#bit C = STATUS.0 |
#byte FSR = 0x04 |
#byte PORTA = 0x05 |
#byte PORTB = 0x06 |
#byte PCLATH = 0x0A |
#byte INTCON = 0x0B |
#bit GIE = INTCON.7 |
#bit PEIE = INTCON.6 |
#bit TMR0IE = INTCON.5 |
#bit INT0IE = INTCON.4 |
#bit RBIE = INTCON.3 |
#bit TMR0IF = INTCON.2 |
#bit INT0IF = INTCON.1 |
#bit RBIF = INTCON.0 |
#byte PIR1 = 0x0C |
#bit ADIF = PIR1.6 |
#bit RCIF = PIR1.5 |
#bit TXIF = PIR1.4 |
#bit SSPIF = PIR1.3 |
#bit CCP1IF = PIR1.2 |
#bit TMR2IF = PIR1.1 |
#bit TMR1IF = PIR1.0 |
#byte PIR2 = 0x0D |
#bit OSFIF = PIR2.7 |
#bit CMIF = PIR2.6 |
#bit EEIF = PIR2.4 |
#byte TMR1L = 0x0E |
#byte TMR1H = 0x0F |
#byte T1CON = 0x10 |
#bit T1RUN = T1CON.6 |
#bit T1CKPS1 = T1CON.5 |
#bit T1CKPS0 = T1CON.4 |
#bit T1OSCEN = T1CON.3 |
#bit T1SYNC = T1CON.2 |
#bit TMR1CS = T1CON.1 |
#bit TMR1ON = T1CON.0 |
#byte TMR2 = 0x11 |
#byte T2CON = 0x12 |
#bit TOUTPS3 = T2CON.6 |
#bit TOUTPS2 = T2CON.5 |
#bit TOUTPS1 = T2CON.4 |
#bit TOUTPS0 = T2CON.3 |
#bit TMR2ON = T2CON.2 |
#bit T2CKPS1 = T2CON.1 |
#bit T2CKPS0 = T2CON.0 |
#byte SSPBUF = 0x13 |
#byte SSPCON1 = 0x14 |
#bit WCOL = SSPCON1.7 |
#bit SSPOV = SSPCON1.6 |
#bit SSPEN = SSPCON1.5 |
#bit CKP = SSPCON1.4 |
#bit SSPM3 = SSPCON1.3 |
#bit SSPM2 = SSPCON1.2 |
#bit SSPM1 = SSPCON1.1 |
#bit SSPM0 = SSPCON1.0 |
#byte CCPR1L = 0x15 |
#byte CCPR1H = 0x16 |
#byte CCP1CON = 0x17 |
#bit CCP1X = CCP1CON.5 |
#bit CCP1Y = CCP1CON.4 |
#bit CCP1M3 = CCP1CON.3 |
#bit CCP1M2 = CCP1CON.2 |
#bit CCP1M1 = CCP1CON.1 |
#bit CCP1M0 = CCP1CON.0 |
#byte RCSTA = 0x18 |
#bit SPEN = RCSTA.7 |
#bit RX9 = RCSTA.6 |
#bit SREN = RCSTA.5 |
#bit CREN = RCSTA.4 |
#bit ADDEN = RCSTA.3 |
#bit FERR = RCSTA.2 |
#bit OERR = RCSTA.1 |
#bit RX9D = RCSTA.0 |
#byte TXREG = 0x19 |
#byte RCREG = 0x1A |
#byte ADRESH = 0x1E // F88 only |
#byte ADCON0 = 0x1F // F88 only |
#bit ADCS1 = ADCON0.7 |
#bit ADCS0 = ADCON0.6 |
#bit CHS2 = ADCON0.5 |
#bit CHS1 = ADCON0.4 |
#bit CHS0 = ADCON0.3 |
#bit GO = ADCON0.2 |
#bit ADON = ADCON0.0 |
// SFR Registers in Memory Bank 1 |
#byte INDF_1 = 0x80 // miror |
#byte OPTION = 0x81 |
#bit RBPU = OPTION.7 |
#bit INTEDG = OPTION.6 |
#bit T0CS = OPTION.5 |
#bit T0SE = OPTION.4 |
#bit PSA = OPTION.3 |
#bit PS2 = OPTION.2 |
#bit PS1 = OPTION.1 |
#bit PS0 = OPTION.0 |
#byte PCL = 0x82 |
#byte STATUS_1 = 0x83 // mirror |
#bit IRP_1 = STATUS_1.7 |
#bit RP1_1 = STATUS_1.6 |
#bit RP0_1 = STATUS_1.5 |
#bit TO_1 = STATUS_1.4 |
#bit PD_1 = STATUS_1.3 |
#bit Z_1 = STATUS_1.2 |
#bit DC_1 = STATUS_1.1 |
#bit C_1 = STATUS_1.0 |
#byte FSR = 0x84 |
#byte TRISA = 0x85 |
#byte TRISB = 0x86 |
#byte PCLATH_1 = 0x8A // mirror |
#byte INTCON_1 = 0x8B // mirror |
#bit GIE_1 = INTCON_1.7 |
#bit PEIE_1 = INTCON_1.6 |
#bit TMR0IE_1 = INTCON_1.5 |
#bit INT0IE_1 = INTCON_1.4 |
#bit RBIE_1 = INTCON_1.3 |
#bit TMR0IF_1 = INTCON_1.2 |
#bit INT0IF_1 = INTCON_1.1 |
#bit RBIF_1 = INTCON_1.0 |
#byte PIE1 = 0x8C |
#bit ADIE = PIE1.6 |
#bit RCIE = PIE1.5 |
#bit TXIE = PIE1.4 |
#bit SSPIE = PIE1.3 |
#bit CCP1IE = PIE1.2 |
#bit TMR2IE = PIE1.1 |
#bit TMR1IE = PIE1.0 |
#byte PIE2 = 0x8D |
#bit OSFIE = PIE2.7 |
#bit CMIE = PIE2.6 |
#bit EEIE = PIE2.4 |
#byte PCON = 0x8E |
#bit POR = PCON.1 |
#bit BOR = PCON.0 |
#byte OSCCON = 0x8F |
#bit IRCF2 = OSCCON.6 |
#bit IRCF1 = OSCCON.5 |
#bit IRCF0 = OSCCON.4 |
#bit OSTS = OSCCON.3 |
#bit IOFS = OSCCON.2 |
#bit SCS1 = OSCCON.1 |
#bit SCS0 = OSCCON.0 |
#byte OSCTUNE = 0x90 |
#bit TUN5 = OSCTUNE.5 |
#bit TUN4 = OSCTUNE.4 |
#bit TUN3 = OSCTUNE.3 |
#bit TUN2 = OSCTUNE.2 |
#bit TUN1 = OSCTUNE.1 |
#bit TUN0 = OSCTUNE.0 |
#byte PR2 = 0x92 |
#byte SSPADD = 0x93 |
#byte SSPSTAT = 0x94 |
#bit SMP = SSPSTAT.7 |
#bit CKE = SSPSTAT.6 |
#bit DA = SSPSTAT.5 |
#bit P = SSPSTAT.4 |
#bit S = SSPSTAT.3 |
#bit RW = SSPSTAT.2 |
#bit UA = SSPSTAT.1 |
#bit BF = SSPSTAT.0 |
#byte TXSTA = 0x98 |
#bit CSRC = TXSTA.7 |
#bit TX9 = TXSTA.6 |
#bit TXEN = TXSTA.5 |
#bit SYNC = TXSTA.4 |
#bit BRGH = TXSTA.2 |
#bit TRMT = TXSTA.1 |
#bit TX9D = TXSTA.0 |
#byte SPBRG = 0x99 |
#byte ANSEL = 0x9B // F88 only |
#bit ANS6 = ANSEL.6 |
#bit ANS5 = ANSEL.5 |
#bit ANS4 = ANSEL.4 |
#bit ANS3 = ANSEL.3 |
#bit ANS2 = ANSEL.2 |
#bit ANS1 = ANSEL.1 |
#bit ANS0 = ANSEL.0 |
#byte CMCON = 0x9C |
// #bit C2OUT = CMCON.7 |
// #bit C1OUT = CMCON.6 |
#bit C2INV = CMCON.5 |
#bit C1INV = CMCON.4 |
#bit CIS = CMCON.3 |
#bit CM2 = CMCON.2 |
#bit CM1 = CMCON.1 |
#bit CM0 = CMCON.0 |
#byte CVRCON = 0x9D |
#bit CVREN = CVRCON.7 |
#bit CVROE = CVRCON.6 |
#bit CVRR = CVRCON.5 |
#bit CVR3 = CVRCON.3 |
#bit CVR2 = CVRCON.2 |
#bit CVR1 = CVRCON.1 |
#bit CVR0 = CVRCON.0 |
#byte ADRESL = 0x9E // F88 only |
#byte ADCON1 = 0x9F // F88 only |
#bit ADFM = ADCON1.7 |
#bit ADCS2 = ADCON1.6 |
#bit VCFG1 = ADCON1.5 |
#bit VCFG0 = ADCON1.4 |
// SFR Registers in Memory Bank 2 |
#byte INDF_2 = 0x100 // mirror |
#byte TMR0_2 = 0x101 // mirror |
#byte PCL_2 = 0x102 // mirror |
#byte STATUS_2 = 0x103 // mirror |
#bit IRP_2 = STATUS_2.7 |
#bit RP1_2 = STATUS_2.6 |
#bit RP0_2 = STATUS_2.5 |
#bit TO_2 = STATUS_2.4 |
#bit PD_2 = STATUS_2.3 |
#bit Z_2 = STATUS_2.2 |
#bit DC_2 = STATUS_2.1 |
#bit C_2 = STATUS_2.0 |
#byte FSR_2 = 0x104 // mirror |
#byte WDTCON = 0x105 |
#bit WDTPS3 = WDTCON.4 |
#bit WDTPS2 = WDTCON.3 |
#bit WDTPS1 = WDTCON.2 |
#bit WDTPS0 = WDTCON.1 |
#bit SWDTEN = WDTCON.0 |
#byte PORTB_2 = 0x106 // mirror |
#byte PCLATH_2 = 0x10A // mirror |
#byte INTCON_2 = 0x10B // mirror |
#bit GIE_2 = INTCON_2.7 |
#bit PEIE_2 = INTCON_2.6 |
#bit TMR0IE_2 = INTCON_2.5 |
#bit INT0IE_2 = INTCON_2.4 |
#bit RBIE_2 = INTCON_2.3 |
#bit TMR0IF_2 = INTCON_2.2 |
#bit INT0IF_2 = INTCON_2.1 |
#bit RBIF_2 = INTCON_2.0 |
#byte EEDATA = 0x10C |
#byte EEADR = 0x10D |
#byte EEDATH = 0x10E |
#byte EEADRH = 0x10F |
// SFR Registers in Memory Bank 3 |
#byte INDF_3 = 0x180 // mirror |
#byte OPTION_3 = 0x181 // mirror |
#bit RBPU_3 = OPTION_3.7 |
#bit INTEDG_3 = OPTION_3.6 |
#bit T0CS_3 = OPTION_3.5 |
#bit T0SE_3 = OPTION_3.4 |
#bit PSA_3 = OPTION_3.3 |
#bit PS2_3 = OPTION_3.2 |
#bit PS1_3 = OPTION_3.1 |
#bit PS0_3 = OPTION_3.0 |
#byte PCL_3 = 0x182 // mirror |
#byte STATUS_3 = 0x183 // mirror |
#bit IRP_3 = STATUS_3.7 |
#bit RP1_3 = STATUS_3.6 |
#bit RP0_3 = STATUS_3.5 |
#bit TO_3 = STATUS_3.4 |
#bit PD_3 = STATUS_3.3 |
#bit Z_3 = STATUS_3.2 |
#bit DC_3 = STATUS_3.1 |
#bit C_3 = STATUS_3.0 |
#byte FSR_3 = 0x184 // mirror |
#byte TRISB_3 = 0x186 // mirror |
#byte PLATH_3 = 0x18A // mirror |
#byte INTCON_3 = 0x18B // mirror |
#bit GIE_3 = INTCON_3.7 |
#bit PEIE_3 = INTCON_3.6 |
#bit TMR0IE_3 = INTCON_3.5 |
#bit INT0IE_3 = INTCON_3.4 |
#bit RBIE_3 = INTCON_3.3 |
#bit TMR0IF_3 = INTCON_3.2 |
#bit INT0IF_3 = INTCON_3.1 |
#bit RBIF_3 = INTCON_3.0 |
#byte EECON1 = 0x18C |
#bit EEPGD = EECON1.7 |
#bit FREE = EECON1.4 |
#bit WRERR = EECON1.3 |
#bit WREN = EECON1.2 |
#bit WR = EECON1.1 |
#bit RD = EECON1.0 |
#byte EECON2 = 0x18D |
#list |
/roboti/istrobot/laserus/SW/PIC/88/laser.PJT |
---|
0,0 → 1,41 |
[PROJECT] |
Target=laser.HEX |
Development_Mode= |
Processor=0x688F |
ToolSuite=CCS |
[Directories] |
Include=C:\Program Files\PICC\devices\;C:\Program Files\PICC\Dr |
Library= |
LinkerScript= |
[Target Data] |
FileList=C:\PIC\laserus\laser.c |
BuildTool=C-COMPILER |
OptionString=+FM |
AdditionalOptionString= |
BuildRequired=1 |
[laser.c] |
Type=4 |
Path= |
FileList= |
BuildTool= |
OptionString= |
AdditionalOptionString= |
[mru-list] |
1=laser.c |
[Windows] |
0=0000 laser.c 0 0 796 451 3 0 |
[Opened Files] |
1=C:\PIC\laserus\laser.c |
2=C:\PIC\laserus\laser.h |
3=C:\Program Files\PICC\devices\16F88.h |
4=C:\PIC\laserus\16F88_Reg.H |
5= |
[Units] |
Count=1 |
1=C:\PIC\laserus\laser.c (main) |
/roboti/istrobot/laserus/SW/PIC/88/laser.c |
---|
0,0 → 1,96 |
#include "laser.h" |
#include "16F88_Reg.H" |
#define SERVO PIN_B5 // Vystup pro rizeni serva |
#define LASER PIN_B4 // Vstup pro cteni laseru |
// kroutitka |
#define CERVENA 0 // AN0 |
#define CERNA 1 // AN1 |
//#define ZELENA 3 // AN3 |
//#define MODRA 4 // AN4 |
//#define OFFSET 100 // Predni kolecko vprostred pri care vprostred |
//#define HYSTERESE 3 // Rozdil mezi behem tam a zpet |
boolean edge; |
int8 uhel; |
#int_EXT |
EXT_isr() |
{ |
int n, t1, t2, t; |
set_timer0(0); // Vynulovani casovace pro 2ms |
output_high(SERVO); |
while(get_timer0()<(1000/256)); // Ceka 1ms |
for(n=uhel; n>0; n--) delay_us(3); // Sirka impulzu podle uhlu |
output_low(SERVO); |
while(get_timer0()<(3000/256)); // Ceka do 3ms, nez zacne scanovat |
set_timer0(0); // Vynulovani casovace pro zjisteni polohy cary |
if(edge) // Zrcatko prejizdelo tam nebo zpet? |
{ |
edge=false; |
ext_int_edge(H_TO_L); // Pristi inerrupt bude od opacne hrany |
INT0IF_1=0; // Povoleni dalsiho preruseni |
enable_interrupts(INT_EXT); |
enable_interrupts(GLOBAL); |
// do |
{ |
while(0==input(LASER)); // Ceka na detekci cary |
// output_high(SERVO); |
t1=get_timer0(); // Poznamena cas nabezne hrany |
while(1==input(LASER)); // Ceka az zkonci cara |
// output_low(SERVO); |
t2=get_timer0(); // Poznamena cas sestupne hrany |
t=t2-t1; |
} //while((t<5) || (t>7)); // Cara je detekovana, kdyz trva mezi xx ms |
if ((t>3) && (t<8)) uhel=(160-(read_adc()>>2))-t1; |
set_adc_channel(1); |
} |
else |
{ |
edge=true; |
ext_int_edge(L_TO_H); |
INT0IF_1=0; // Povoleni dalsiho preruseni |
enable_interrupts(INT_EXT); |
enable_interrupts(GLOBAL); |
// do |
{ |
while(0==input(LASER)); // Ceka na detekci cary |
t1=get_timer0(); // Poznamena cas nabezne hrany |
while(1==input(LASER)); // Ceka az zkonci cara |
t2=get_timer0(); // Poznamena cas sestupne hrany |
t=t2-t1; |
} //while((t<5) || (t>7)); // Cara je detekovana, kdyz trva mezi xx ms |
if ((t>3) && (t<8)) uhel=((read_adc()>>2)+32)+t1; |
set_adc_channel(0); |
} |
while(true); |
} |
void main() |
{ |
setup_adc_ports(sAN0|sAN1|VSS_VDD); // AD pro kroutitka |
setup_adc(ADC_CLOCK_INTERNAL); |
setup_spi(FALSE); |
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256); |
setup_timer_1(T1_DISABLED); |
setup_timer_2(T2_DISABLED,0,1); |
setup_comparator(NC_NC_NC_NC); |
setup_vref(FALSE); |
setup_oscillator(False); |
delay_ms(100); |
set_adc_channel(0); |
Delay_ms(1); |
ext_int_edge(L_TO_H); |
edge=true; |
uhel=((read_adc()>>2)+32)+30;; |
enable_interrupts(INT_EXT); |
enable_interrupts(GLOBAL); |
} |
/roboti/istrobot/laserus/SW/PIC/88/laser.h |
---|
0,0 → 1,18 |
#include <16F88.h> |
#device adc=8 |
#FUSES NOWDT //No Watch Dog Timer |
#FUSES XT //Crystal osc <= 4mhz |
#FUSES NOPUT //No Power Up Timer |
#FUSES MCLR //Master Clear pin enabled |
#FUSES NOBROWNOUT //No brownout reset |
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O |
#FUSES NOCPD //No EE protection |
#FUSES NOWRT //Program memory not write protected |
#FUSES NODEBUG //No Debug mode for ICD |
#FUSES NOPROTECT //Code not protected from reading |
#FUSES NOFCMEN //Fail-safe clock monitor disabled |
#FUSES NOIESO //Internal External Switch Over mode disabled |
#use delay(clock=4000000) |
/roboti/istrobot/laserus/DOC/Fotky/P1140012.JPG |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/roboti/istrobot/laserus/DOC/Fotky/P1140013.JPG |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/roboti/istrobot/laserus/DOC/Fotky/P1140014.JPG |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/roboti/istrobot/laserus/DOC/Datasheets/-5400b.pdf |
---|
0,0 → 1,1245 |
+%âãÏÓ |
+0000000016 00000 n |
+0000000907 00000 n |
+0000001200 00000 n |
+0000001407 00000 n |
+0000001569 00000 n |
+0000001591 00000 n |
+0000005034 00000 n |
+0000005056 00000 n |
+0000008229 00000 n |
+0000008251 00000 n |
+0000011780 00000 n |
+0000011802 00000 n |
+0000015523 00000 n |
+0000015545 00000 n |
+0000019173 00000 n |
+0000019195 00000 n |
+0000021980 00000 n |
+0000022090 00000 n |
+0000022195 00000 n |
+0000023615 00000 n |
+0000023637 00000 n |
+0000028639 00000 n |
+0000028661 00000 n |
+0000032332 00000 n |
+0000032409 00000 n |
+0000032487 00000 n |
+0000000962 00000 n |
+0000001179 00000 n |
+stream |
+h I Ã÷ -Äò`1^ÖÊW/0Ú0ðnf`sáa¶7C°öµì |
+stream |
+A ¡Ò qÈÈ\0Ã<h ÇpÜ@r2ÀÊât$A |
+ òbT@j#!Ü@1 D²ì(É!ò9N |
+Æâá¤\kfEÍ°;Õò.1±dd1½æV3d8æ Acïc |
+rùËèô±Ê¾EÆcÓ]Øæö<¶)Ù·ºþifÒj7Ã^\iEöüÌSÛÐÞ6Û/Ú¾÷l],½DsCýíõG×â÷íê#J§·ÃøÕf?Ôô?SüÅ&£æò7ÊÓöÃ@J«58NÂ<0m O³Ï»ì9Ï3Øô¸ÎÓ="¡»Ñ7®zÄú¼T\èÄ®ld³F´<³Aîbfå8-Èhæ7iKÐ82CÍIëнPÃLÏØjö0®ãé /rò9LKòb÷Ìï¼Ë |
+¶âöð¯ñÒ3K |
+)¦;R.Y컬Z9 |
+5¸µJÔÚ#Ut© ´5÷ |
+3L"PÉ>Hdy¥YÐIMJ¬âIIC%¥+BrªOJÙE+å!Æp ²ùVå²þé?<Ç #åd Ò&X'@¥üRÞfLBSæµs |
+=<C5æTâ§Ri䥴Z¦#PfM$¨¾¯U«Tªå>34¨ÔµÖà*ík¬Ä^´MZ©m¬5m*ï^k¥n¥Ô Ö |
+W¯V¾XüÍݱ¶RÇÎù-Wì#²µúÌAfíåîMXkSM,µµ²ÔU«Ul¥=«3´ô۬컢µÚÌ[uZ+ì,¸·ÁV~flÕ±çËË]mªe,VéZ;.åu£¥ìÛK»PÛ©O³æXë³jæ½í³ÂÒ:óYîmÄ7Ê×®»|bÎÝP[¦µû£r/þ¿b½ecxnm}±X?ÛËôb¯6´kß:ÕnÂt |
+NÎK |
+D |
+stream |
+Éâè$²1£Ò ¤Rn.JçpÉôºaBA Ã)ÔkF¤I"Óù}3©Õa£Iµf@Ñ,2XhÌAÊëtêõDi;QíÐaÄRçh¨Z¥VÈÄárà+ðIØÊ&á ÃxMþ»i°D±ðÑ®R8brøîûÎÛëj~.iÄG1Lþ¹»i±û(¤]¬ºà¶¸â)_´[$aUâñä{k¦b¥ØäåVß3çt;[[>]ìdïWI!æÃX«·Éòó&~$ó<î?.ûàù;!£þü8²È»!i A/xh)ìí½¬Rìþ>pdé! |
+)Pì?DP81D"×DÌZÃ/47!a¢õ§L`ıÐsF¯Ò GAÃÿ"ÀPÉ2\}ª±ÐoɲrĦ¢I |
+G3õM¼ªâ8E6âcGøÈo_8*NWö!ä~3ZW=Æ^9*ao1åñ*SÖ&Oç¹Å5CÖî}ÆqîM¢i5%(ª1Ûï§^t®£!å¸L¾zíÄ92z ëÏþá:îk¨ÊúÎ/ë²î§?à,~¢D®Ñ'@$ÒönÆý;BÛÂê<#AÀíZíøt1/Ãq´<·ÛÕÄ¢'|·6Õ.<׿S«uwÐñÃzøòP׿URÍ] Ìz.©}]h>hºsÛ'½Âj¢ö"wâï~«g>Ì¿Z.²"ÆLªúøÈùëtü9L|³ |
+É"%ò%xÁßÓ $£@FBKãTQ¤êg̱JÌ}ô9çø 3mi+?ø}#øСÀ¢Hàle¥ðB¨dáoEr¨ ÚkPò |
+e £u³Q8dcÒG³çfËhvk¦CƾÑ2E;5£ö½Û |
+v.mÀ÷2 hioRF S<&a,, ®øfç |
+2FêHK³cWÏÙé¼á!v«³Ö{;?Ýa³ï}ÚÚ^ù}8EôÉQ8׺PM>¹:ݵxÌÏCMÍhNàÒêºån¿Üy;½ÒHÄÆ(ÀÛPÁsÂp«wkÝ9ñ Eü ü[ ¼&ÅxQ |
+¢ãn®CÄ?%á8þ4Âxç"Ýáßrn#Eï/müÇ;^t¹à5ü¨ôðùúèÅ#r#ÐDB|¨=uºZì ¼oª@áÖù]~K ¹N(»)#é½£ª]>?Û:{¡{Í£´¸HsÐ;j}ìåHusßÚyÏ`ç}çx.ñÓãÏ{ñ |
+jÞÚÜ~mv |
+ÜÎ/v×Ë-É0úÞðȧªW |
+½jöê"qDâ{çëh°¶qq^ÛBÚnelHm¯yÑ ~Çb`D!+¶$Ò PÁ!Ä:ÿ¦ÎzlþyÃúÿ²"R¶Xh28ÐÄèmѶTÏ]%¿#¬p?¯^xòÏÃêWQY"È ·¤ |
+fRNfiFÑ rBÎß'dfòE(û° Lþó¦K(ò C¦*`*¬:E¥)æHP?RÁO,ñê¸ÊÂã2(l:ù/ K.'ù-+A+¿&òîOH3 N @¡ |
+¬'1´ÞÌV%s)óK ;2(?.ÅN!3- |
+stream |
+²©dn: ÈfRI4æw˨ Î.N"8ÄTkÏè3Àg |
+IÅÕIU^3>Ð Ôúe7#Mp$¯Ù×&µLAÇ"á r1EFó{¥.Õw¯N¢v,D¨m~ºÓpQj&6¨c-ë¶o'$¨4mo49ÁéãcxÆoXÑë°;Ê#7Ðh©[«^iEacI¯ÁfðèØÓ?JÖà8±4lf ±v~jîÇ#¿ÿÍwà ¿/îÌîð(l >Ëró$«úô"a¢tá=ë´ |
+,AA²1$®ò2,¢É²|)§bÊ{ªÃKRä®L»)6òÊúLèÚÚ½dÎ4ï73ªÓªÁ6H³Êp¾ó Óд£P$å"Îý>J-O GjVÃR#K§ fÒÎm:ÂPÒô°4]!/'MHÕ¨W#QÉ-VHRÖÒíq ïõ^¦¡íQGG!! |
+»1¤·SèåîG° bð¨²Cö ÔaÄLñ7ÄZt`ÂhU½sʵS?màÛ)ÓÀFPmtB·RÆõµÿRh³êñE1òTl¬í~Ä2¿7ȯQ`ÊcºnSca¶¶AX¶U9ȪýuÎeb×%båeSNh«óMPºùÔgg=]÷ýsX»è«Ûãõ~ª¬[Z3ÔË9Øv£2V/¦¨P» |
+ù®äÔâð,N¡Üû.Öÿì{ þ¯ìp¢²Þ¯"îS¾m÷6ïµpAºU¿läÕÅ)þk¼ðPïÙÈJõÊê¼fío,KËòH5=t{ï1sô3T_Òq¼ÛÃ×õ].¿2Ù=¯¢¾Ü#ïƾûGÈø5éªíÍ&!KæÏȺÊq]WW¥A~"«éþ æJÔ)äÜó´²<+6 ðÖÞbß}ùü6=ñûL¯ÁÛ~f5c¢ÄseM¨ £ |
+ÙiÆÜ¢ïvqT·iÖR%º¼W!Øëµ=ë]dB |
+Ûë»/ų»'' |