GPSpiloot
mis kood on? C? asm? C koodi uudistaks ise kah
Ma muidu ise plaanin kah autole taolist asja. Kohe lennukile ei saa ikka paigaldada, võib kalliks minna Auto tuleb nendest juppidest: http://notsu.pri.ee/asd/index.php.html ja PIC asemel on mul AVR ja ARM(GPS on selle küljes ja ei saa teda lahti). Hetkel on plaan mitte osta servo kontrollerit vaid teha see ise.
Ma muidu ise plaanin kah autole taolist asja. Kohe lennukile ei saa ikka paigaldada, võib kalliks minna Auto tuleb nendest juppidest: http://notsu.pri.ee/asd/index.php.html ja PIC asemel on mul AVR ja ARM(GPS on selle küljes ja ei saa teda lahti). Hetkel on plaan mitte osta servo kontrollerit vaid teha see ise.
Elou!
Olen enamuse ajast progenud assembleris, MPLAB. Seoses GPSpiloodiga hakkasin õppima MikroC keelt.
Enam ei saanud hakkama assembleris arvutuste tegemisega, rad, atan2. Ühesõnaga C. http://www.mikroe.com/en/compilers/mikroc/pic/
Teine asi mis hirmsasti hakkas meeldima on PicFlash2 http://www.mikroe.com/en/tools/picflashwicd/ Programmaator millel on riistvaraline debugimine Microchipi enda progejad maksavad oi oi...
Sihtpunkti arvutus:
Praeguse seisuga:
prose: PIC18F2520
kell: 11Mhz
Kasutatud mälu: 78%
Parimat soovides,
-Ilmar-
Olen enamuse ajast progenud assembleris, MPLAB. Seoses GPSpiloodiga hakkasin õppima MikroC keelt.
Enam ei saanud hakkama assembleris arvutuste tegemisega, rad, atan2. Ühesõnaga C. http://www.mikroe.com/en/compilers/mikroc/pic/
Teine asi mis hirmsasti hakkas meeldima on PicFlash2 http://www.mikroe.com/en/tools/picflashwicd/ Programmaator millel on riistvaraline debugimine Microchipi enda progejad maksavad oi oi...
Sihtpunkti arvutus:
Code: Select all
void GPS_Arvutus() // hakkame arvutama
{
if (gps_OK[0] == 'A'){
// konverdime GPSi andmed Ddmm.mmmm -> dd.dddd
// latitude gps_LAT
gps_LAT[9]=0x30; // taastame
afterDecimal[0] = gps_LAT[2];
afterDecimal[1] = gps_LAT[3];
afterDecimal[2] = gps_LAT[4];
afterDecimal[3] = gps_LAT[5];
afterDecimal[4] = gps_LAT[6];
afterDecimal[5] = gps_LAT[7];
afterDecimal[6] = gps_LAT[8];
currentLat = (float)(atol(gps_LAT)/100) + atof(afterDecimal)/60;
// konverdime GPSi andmed 0Ddmm.mmmm -> dd.dddd
// longtidude gps_LONG
gps_LONG[10]=0x30; // taastame
afterDecimal[0] = gps_LONG[2];
afterDecimal[1] = gps_LONG[3];
afterDecimal[2] = gps_LONG[4];
afterDecimal[3] = gps_LONG[5];
afterDecimal[4] = gps_LONG[6];
afterDecimal[5] = gps_LONG[7];
afterDecimal[6] = gps_LONG[8];
currentLong = (float)(atol(gps_LONG)/100) + atof(afterDecimal)/60;
// hakkame arvutama suunda "bearing"
LatTo_m = 111377.60;
LongTo_m = 59132.84;
Lat = 0.0;
Long = 0.0;
angle = 0.0;
Lat_m = 0.0;
Long_m = 0.0;
// current waypoint
// currentWayptLat = 58.34663;
// currentWayptLong = 25.61145;
Lat = currentWayptLat - currentLat;
Long = currentWayptLong - currentLong;
// Siin kontrollime kas on vaja vahetada sihtpunkti 1852*0,0003=0.54m
// 1 kaareminut ~1 meremiil (1852m)
// 0.0000040 +-0.0003 0.5m
// 0.000015 +-0.0006 1.1m
// Lat 0.000030 +-0.0017 3.1m
// Long 0.000060 +-0.0035 6.4m
// --------------------------------
// Lat 0.000070 +-0.0042 7.7m
// Long 0.000140 +-0.0080 14m
// --------------------------------
// Lat 0.000090 +-0.0053 9.8m
// Long 0.000180 +-0.0100 18.5m
if((Lat<0.000070 && Lat>-0.000070) && (Long<0.000140 && Long>-0.000140)) {
SDrida++;
EEprom_Write(0, SDrida); // salvestame mällu uue sihtkoha punkti aadressi
if (SDrida == 99) SDflag = 1; // edaspidi enam kaardilt ei loe
SihtpunktFailist(); // loeme uue sihtpunkti failist
Lat = currentWayptLat - currentLat;
Long = currentWayptLong - currentLong;
Lcd_Out(1, 1, "Sp"); // Print text at LCD
}
Lat_m = Lat * LatTo_m;
Long_m = Long * LongTo_m;
rad = atan2(long_m, lat_m);
angle = 180 * rad / 3.14;
if ((Lat > 0) && (Long < 0)) // kas on neljandas veerandis?
angle = 360 + angle;
else
if ((Lat < 0) && (Long < 0)) // kas on kolmandas veerandis?
angle = 180 + angle + 180;
else;
FloatToStr(angle, bearing);
bearing[5]=0; // märgime teksti lõpu muidu LCD kirjutab jura
Lcd_Out(2, 16, bearing); // Print text at LCD
}
else
Lcd_Out(2, 16, "---.-"); // ei lubatud arvutada...
}
prose: PIC18F2520
kell: 11Mhz
Kasutatud mälu: 78%
Parimat soovides,
-Ilmar-
Elou!
Tegin uue plaadi, ilma ekraanita, kaal 40g.
2 potekat - rooliservo käik ja keskpunkt.
nupp - sihtpunkti nullimiseks.
Hetkel kasutuses autopiloodi lülituse sisend ja rool. Kasutan mux lülitust, kas rooli keerab autopiloot või saan puldist ise juhtida.
auto - katsetamata.
UHU - katsetamata.
Parimat soovides,
-Ilmar-
Tegin uue plaadi, ilma ekraanita, kaal 40g.
2 potekat - rooliservo käik ja keskpunkt.
nupp - sihtpunkti nullimiseks.
Hetkel kasutuses autopiloodi lülituse sisend ja rool. Kasutan mux lülitust, kas rooli keerab autopiloot või saan puldist ise juhtida.
auto - katsetamata.
UHU - katsetamata.
Parimat soovides,
-Ilmar-
Elou!
Kasutatud prussakad
prose: PIC18F2523 - sellel on 12bit ADC
mux/switch: MAX4053
GPSiga ühendus kahe transiga. GPS on TTL väljundiga, andmeleht väitis et 2.8V TTL. Arvasin et PIC võib valesti aru saada, panin 2 trantsi.
Kõrguse hoidmiseks on mul eraldatud üks analoog sisend 12bit ja üks mux kanal. Kõrguse hoidmine lahendamata.
Parimat soovides,
-Ilmar-
Kasutatud prussakad
prose: PIC18F2523 - sellel on 12bit ADC
mux/switch: MAX4053
GPSiga ühendus kahe transiga. GPS on TTL väljundiga, andmeleht väitis et 2.8V TTL. Arvasin et PIC võib valesti aru saada, panin 2 trantsi.
Kõrguse hoidmiseks on mul eraldatud üks analoog sisend 12bit ja üks mux kanal. Kõrguse hoidmine lahendamata.
Parimat soovides,
-Ilmar-
Elou!
Hetkel tegingi nii, et sihtpunkte saab lisada kuni 99tk. Võib ka panna ainult 2 punkti ja kui GPS jõuab punkti-B suundub punkti-A. Niimodi kuni aku tühi
Autoga katsetasin jalka platsil A-B ja sõitis kuni aku tühi
Kui punkte on rohkem siis peab arvestama et jõuaks ringiga tagasi, muidu paneb otse tagasi
Lahe oli vaadata, pulti ei puutu, panin puldi käest ja auto muutkui pendeldas edasi-tagasi
Parimat soovides,
-ilmar-
Hetkel tegingi nii, et sihtpunkte saab lisada kuni 99tk. Võib ka panna ainult 2 punkti ja kui GPS jõuab punkti-B suundub punkti-A. Niimodi kuni aku tühi
Autoga katsetasin jalka platsil A-B ja sõitis kuni aku tühi
Kui punkte on rohkem siis peab arvestama et jõuaks ringiga tagasi, muidu paneb otse tagasi
Lahe oli vaadata, pulti ei puutu, panin puldi käest ja auto muutkui pendeldas edasi-tagasi
Parimat soovides,
-ilmar-
Elou!
Ma olen kah nüüd hädas....
Uus plaat, auto sama.
Tegin ühe katse jalka platsil, muru sees, kõik OK. Kuna auto murus väga ei taha roomata(kui siis alguses, kui aku täis), otsustasin teha katse kooli parklas. Täisaku, sihtpunkt AB, ma muidugi ei lugenud kordasid, mitu korda ta sihtpunkte läbis aga toimis OK.
Kuid ühel hetkel hakkas autopilooti ise maha võtma ja natukese ajapärast pani tagasi. Hea küll, võtsin piloodi puldist maha, auto jäi seisma. Nimelt on mul PICi sisse lülitatud "vahikoer" kui PIC 4sek. jooksul koera kuuti ei kamanda, teeb koer PICile reseti. Nii tunduski, peale reseti oli piloot maas ja kuna pult oli piloodil lülis uuesti auto sõidule.
Ja üllatus üllatus, kui kodus SD mälukaarti vaatasin siis seal oli pudru ja kapsad, miski suutis failid ära rikkuda, aitas vaid format.
Ise katlustan pooltühja akut, nimelt kui tegin uue katse pooliku akuga siis kolmandal ringil tekkis viga kohe uuesti...
Samas kui PIC sai toite seinakuubikust ja tegin nii, et ta vahetakse kogu aeg sihtpunkti ja vehiks servoga, puudus vaid auto, siis 3tunni jooksul ei juhtunud midagi....
Kas kasutaks eraldi toidet, auto/lennuki peal?
Parimat soovides,
-Ilmar-
Ma olen kah nüüd hädas....
Uus plaat, auto sama.
Tegin ühe katse jalka platsil, muru sees, kõik OK. Kuna auto murus väga ei taha roomata(kui siis alguses, kui aku täis), otsustasin teha katse kooli parklas. Täisaku, sihtpunkt AB, ma muidugi ei lugenud kordasid, mitu korda ta sihtpunkte läbis aga toimis OK.
Kuid ühel hetkel hakkas autopilooti ise maha võtma ja natukese ajapärast pani tagasi. Hea küll, võtsin piloodi puldist maha, auto jäi seisma. Nimelt on mul PICi sisse lülitatud "vahikoer" kui PIC 4sek. jooksul koera kuuti ei kamanda, teeb koer PICile reseti. Nii tunduski, peale reseti oli piloot maas ja kuna pult oli piloodil lülis uuesti auto sõidule.
Ja üllatus üllatus, kui kodus SD mälukaarti vaatasin siis seal oli pudru ja kapsad, miski suutis failid ära rikkuda, aitas vaid format.
Ise katlustan pooltühja akut, nimelt kui tegin uue katse pooliku akuga siis kolmandal ringil tekkis viga kohe uuesti...
Samas kui PIC sai toite seinakuubikust ja tegin nii, et ta vahetakse kogu aeg sihtpunkti ja vehiks servoga, puudus vaid auto, siis 3tunni jooksul ei juhtunud midagi....
Kas kasutaks eraldi toidet, auto/lennuki peal?
Parimat soovides,
-Ilmar-
Lennukil on tavaliselt vähemalt 3 LiPo-t, siis 12V ja sellest teeb stabilisaator vastuvõtjale ka 5V. Nii madalale justkui langeda ei saa, et 5V jaoks ei jätku, sest 9V peal lülitatakse juba veomootor välja (2 LiPo korral 6V peal).
Mingid sellist tüüpi stabilisaatorid veaks ikka välja kui ESC omast ei piisa?
http://unitedhobbies.com/UNITEDHOBBIES/ ... oduct=2160
http://unitedhobbies.com/UNITEDHOBBIES/ ... tegory=112
Mingid sellist tüüpi stabilisaatorid veaks ikka välja kui ESC omast ei piisa?
http://unitedhobbies.com/UNITEDHOBBIES/ ... oduct=2160
http://unitedhobbies.com/UNITEDHOBBIES/ ... tegory=112
Kui ikka toitest sõltub, võiks minna üle UBEC-le. 7805-ga ei saagi peaaegu võrrelda.
Over current and over heat protection.
Switching frequency 300khz.
Chip Efficiency is 92%. This UBEC utilises switching technology to gain a much higher efficiency than liniar BEC. Which means less heat and longer battery life.
The UBEC is equiped with a noise reduction alloy housing to reduce noise even further.
Incorrect polarity safety feature ensures the UBEC will not be destroyed should the battery be connected incorrectly.
jne.
Over current and over heat protection.
Switching frequency 300khz.
Chip Efficiency is 92%. This UBEC utilises switching technology to gain a much higher efficiency than liniar BEC. Which means less heat and longer battery life.
The UBEC is equiped with a noise reduction alloy housing to reduce noise even further.
Incorrect polarity safety feature ensures the UBEC will not be destroyed should the battery be connected incorrectly.
jne.
Last edited by [J] on Mon Jun 09, 2008 11:20, edited 1 time in total.
Elou!
Kas ma teen õigesti, kui kasutaks katseks:
Lipo 7.4V 1500mA ja ESC PICO8 on küll lennuki oma.
Kui auto mootori kinni poon siis üle 2ampri ei lähe. PICO8 peaks ellu jääma.
Et kasutan PICO8 - BEC saan 5V ja teen uue katse?
Ma tõesti ei tea, millest probleem tekib, kas soft, või toide. Samas laua peal ei oska seda esile kah kutsuda...
Muud mul pole,
-Ilmar-
Kas ma teen õigesti, kui kasutaks katseks:
Lipo 7.4V 1500mA ja ESC PICO8 on küll lennuki oma.
Kui auto mootori kinni poon siis üle 2ampri ei lähe. PICO8 peaks ellu jääma.
Et kasutan PICO8 - BEC saan 5V ja teen uue katse?
Ma tõesti ei tea, millest probleem tekib, kas soft, või toide. Samas laua peal ei oska seda esile kah kutsuda...
Muud mul pole,
-Ilmar-
Elou!
Uus katse, Lipo 7.4V 1500mA, ESC PICO8, auto sama, koht sama, kus jukerdas.
Juba lennukilähedasem katse Auto kiirust hoidsin puldist, kui auto oli käsijuhtimisel sain autot ise juhtida, nupust käis autopiloot.
Kaks sihtpunkti AB vahemaa ~46m.
Punkti A läbis üle 20x edasi ei lugenud, GPS log näitab täpsemalt kordasid aga aeg oli ligi/üle 50min.
Mälukaarti käkki ei keeranud akut tühjaks ka ei sõitnud jäi 7.5V.
Katse üliedukas!!!
Järgmine oleks lennukatse???
Parimat soovides,
-Ilmar-
Uus katse, Lipo 7.4V 1500mA, ESC PICO8, auto sama, koht sama, kus jukerdas.
Juba lennukilähedasem katse Auto kiirust hoidsin puldist, kui auto oli käsijuhtimisel sain autot ise juhtida, nupust käis autopiloot.
Kaks sihtpunkti AB vahemaa ~46m.
Punkti A läbis üle 20x edasi ei lugenud, GPS log näitab täpsemalt kordasid aga aeg oli ligi/üle 50min.
Mälukaarti käkki ei keeranud akut tühjaks ka ei sõitnud jäi 7.5V.
Katse üliedukas!!!
Järgmine oleks lennukatse???
Parimat soovides,
-Ilmar-
Kõrgust saab hoida uuemate GPS-vastuvõtjatega piisava täpsusega ja hakkama saab ilmselt ilma rõhuanduriteta ja tülika analoogvõimendita:
http://diydrones.com/profiles/blog/show ... st%3A39771
http://diydrones.com/profiles/blog/show ... st%3A39771
Elou!
Tänan lingi eest...
Kahjuks pole veel enda pilooti lennukile saanud, õigemini lennukile sain, mahub väga ilusasti ja tüürib kah aga lennukiga pole lennanud.
Mul on ka see SiRF III-based EM406.
Seoses selle GPS'i ja kõrgusega, tegin kiiresti ühe katse.
Lisasin programmi $GPGGA lugemise, mis sisaldab kõrgust merepinnast.
PIC salvestas iga 5sek järgi kõrgust ja mina käisin katuseidmööda...
Tulemus on selline:
http://www.hot.ee/wzoft/GPSpiloot/GPSLOG01_katusel.xls
Katusel oli III erinevat kõrgust + lõpuks maapinnal.
See kus ma kirjutasin I,II,III kõrgus see on see hetk kui ma vaatasin oma kella. Vaadata tuleks sellest ajast edasi, vahetult enne võis olla mööda redelit ronimine.
III ja maapinna vahel on suur kukkumine, seal ma ei hüpanud vaid lülitasin seadme välja ja ronisin alla...
Parimat soovides,
-Ilmar-
Tänan lingi eest...
Kahjuks pole veel enda pilooti lennukile saanud, õigemini lennukile sain, mahub väga ilusasti ja tüürib kah aga lennukiga pole lennanud.
Mul on ka see SiRF III-based EM406.
Seoses selle GPS'i ja kõrgusega, tegin kiiresti ühe katse.
Lisasin programmi $GPGGA lugemise, mis sisaldab kõrgust merepinnast.
PIC salvestas iga 5sek järgi kõrgust ja mina käisin katuseidmööda...
Tulemus on selline:
http://www.hot.ee/wzoft/GPSpiloot/GPSLOG01_katusel.xls
Katusel oli III erinevat kõrgust + lõpuks maapinnal.
See kus ma kirjutasin I,II,III kõrgus see on see hetk kui ma vaatasin oma kella. Vaadata tuleks sellest ajast edasi, vahetult enne võis olla mööda redelit ronimine.
III ja maapinna vahel on suur kukkumine, seal ma ei hüpanud vaid lülitasin seadme välja ja ronisin alla...
Parimat soovides,
-Ilmar-
See peaks ju kõrguse hoidmiseks piisama küll ???
Käsitsi silma järgi kõrgust hoides mingi 100 m kõrgusel kõigub kindlasti palju rohkem kui +/- 5 meetrit, sest pea kohal silmaga kõrgust hinnata on raske.
Mina üritaks gaasi sealt kaudu muuta ja +/- 20 m lennus pole umbes 100 m kõrgusel justkui probleem.
Käsitsi silma järgi kõrgust hoides mingi 100 m kõrgusel kõigub kindlasti palju rohkem kui +/- 5 meetrit, sest pea kohal silmaga kõrgust hinnata on raske.
Mina üritaks gaasi sealt kaudu muuta ja +/- 20 m lennus pole umbes 100 m kõrgusel justkui probleem.
Elou!
Käisin GPSpilooti katsetamas...
1. Tuleb tõdeda, mina UHU lennukit lennutada ei oska...
2. Lisaks lendan maakerale liiga lähedal...
Imelikul kombel on tiivad ikka veel terved
GPS ise jäi ellu, pilooti pole veel katsetanud. SD mälukaart ei jää enam kinni
Mõned juhtmed katki... Lipo pistikust tuli juhe lahti... Lipo ise muljuda ei saanud.
SD mälukaart jäi terveks(must kast) Lennata sain alla minuti...
GPSlogi järgi lasin lennukil tõusta vaid 47,1m kõrgusele, oma viga...
Imelik on see, et langemist pole üldse näha, kas see ei jäänud 5sek. sisse või sai GPSpiloot matsust ja mäluka
Takkajärgi arvan, et juhtus nii - lasin lennuki üles, jätsin muidugi sihtpunkti seljataha. Nii kui piloodile lülitasin, keeras lennuk järsult otsa ringi, kiirus sai otsa, hakkas nina ees kukkuma...
Võtsin piloodilt maha ja üritasin viga parandada aga tuli ikka vastu maad
Liiga lähedal maakerale ei tohi lennata...
Ma ei tea miks ma kiirustasin...
Hea on see, et kõrguse mõõtmiseks kõlbab GPS vägahästi...
Edasi lendan LAMA V4'ga, seda pole ma ära lõhkunud
Väga kahju,
-Ilmar-
Käisin GPSpilooti katsetamas...
1. Tuleb tõdeda, mina UHU lennukit lennutada ei oska...
2. Lisaks lendan maakerale liiga lähedal...
Imelikul kombel on tiivad ikka veel terved
GPS ise jäi ellu, pilooti pole veel katsetanud. SD mälukaart ei jää enam kinni
Mõned juhtmed katki... Lipo pistikust tuli juhe lahti... Lipo ise muljuda ei saanud.
SD mälukaart jäi terveks(must kast) Lennata sain alla minuti...
GPSlogi järgi lasin lennukil tõusta vaid 47,1m kõrgusele, oma viga...
Imelik on see, et langemist pole üldse näha, kas see ei jäänud 5sek. sisse või sai GPSpiloot matsust ja mäluka
Takkajärgi arvan, et juhtus nii - lasin lennuki üles, jätsin muidugi sihtpunkti seljataha. Nii kui piloodile lülitasin, keeras lennuk järsult otsa ringi, kiirus sai otsa, hakkas nina ees kukkuma...
Võtsin piloodilt maha ja üritasin viga parandada aga tuli ikka vastu maad
Liiga lähedal maakerale ei tohi lennata...
Ma ei tea miks ma kiirustasin...
Hea on see, et kõrguse mõõtmiseks kõlbab GPS vägahästi...
Edasi lendan LAMA V4'ga, seda pole ma ära lõhkunud
Väga kahju,
-Ilmar-
Last edited by -Ilmar- on Sat Jul 12, 2008 23:02, edited 1 time in total.
Elou!
Annan teada, et lennukiga on kõik korras, sai jälle väheke kuuma liimi kere vahele. GPSpiloot jäi ka ellu, ainuke häda, SD kaardipesa ei hoia enam mälukaarti kinni...
Millal ma nüüd jälle proovida julgen... Kuidagi hellaks on teinud need matsud.
Äkki soovitate midagi kergemat harjutamiseks
Tegelikult on see viga, vähese harjutamise viga...
GPSpiloot tahaks proovimist aga näed ei saa maast lahti
-Ilmar-
Annan teada, et lennukiga on kõik korras, sai jälle väheke kuuma liimi kere vahele. GPSpiloot jäi ka ellu, ainuke häda, SD kaardipesa ei hoia enam mälukaarti kinni...
Millal ma nüüd jälle proovida julgen... Kuidagi hellaks on teinud need matsud.
Äkki soovitate midagi kergemat harjutamiseks
Tegelikult on see viga, vähese harjutamise viga...
GPSpiloot tahaks proovimist aga näed ei saa maast lahti
-Ilmar-