{"id":5441,"date":"2012-04-15T05:00:48","date_gmt":"2012-04-15T03:00:48","guid":{"rendered":"http:\/\/lukse.lt\/uzrasai\/?p=5441"},"modified":"2012-04-22T19:38:32","modified_gmt":"2012-04-22T17:38:32","slug":"quadcopterio-gamyba-2-dalis-firmware-ikrovimas","status":"publish","type":"post","link":"https:\/\/lukse.lt\/uzrasai\/2012-04-quadcopterio-gamyba-2-dalis-firmware-ikrovimas\/","title":{"rendered":"Quadcopterio gamyba \u2013 2 dalis (firmware \u012fkrovimas)"},"content":{"rendered":"<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-5451 alignleft\" title=\"firmware\" src=\"http:\/\/lukse.lt\/uzrasai\/wp-content\/uploads\/2012\/04\/firmware.png\" alt=\"\" width=\"200\" height=\"105\" \/> \u0160ioje dalyje papasakosiu kaip teisingai u\u017eprogramuoti arducopter mikrokontrolerius.<\/p>\n<p style=\"text-align: center;\"><!--more--><\/p>\n<h3><\/h3>\n<h3><\/h3>\n<h3><\/h3>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h3><\/h3>\n<p>&nbsp;<\/p>\n<h3>Darbin\u0117 versija<\/h3>\n<p>Atsisiusti dabartin\u0119 arducopter versij\u0105 i\u0161 <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/code.google.com\/p\/arducopter\/source\/checkout');\"  href=\"http:\/\/code.google.com\/p\/arducopter\/source\/checkout\">\u010dia<\/a><\/p>\n<h3>Programavimo aplinka<\/h3>\n<p>Jei ketinate daryti pakeitimus teks atsiusti Arduino IDE<\/p>\n<h3>Atmega2560 programavimas<\/h3>\n<p>\u0160is mikrokontroleris skirtas visam stabilizavimo darbui atlikti.<\/p>\n<p style=\"text-align: justify;\">V\u0117l opensource ypatumai &#8211; kadangi produktas pakankamai sud\u0117tingas, sp\u0117ju niekas jo pats negamina. Niekur neradau kaip teisingai \u012fkelti firmware. I\u0161band\u017eiau kelis variantus, ta\u010diau kad pilnai veikt\u0173 booloaderis padaryti nepavyko. Ka\u017ekod\u0117l ne\u012fra\u0161o kodo \u012f flash atmint\u012f.<\/p>\n<p>Band\u017eiau:<\/p>\n<pre>cd \\ardupilot_mega\\ardupilot-mega\\Tools\\APM2_2560_bootloader\\\r\nmake mega2560\r\navrdude -e -c stk500v2 -p m2560 -P com4 -U lock:w:0x3f:m\r\navrdude -e -c stk500v2 -p m2560 -P com4 -U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xFD:m\r\navrdude -v -c stk500v2 -p m2560 -P com4  -U flash:w:stk500boot_v2_mega2560.hex\r\navrdude -c stk500v2 -p m2560 -P com4 -U lock:w:0x0f:m<\/pre>\n<p style=\"text-align: justify;\">Kitas bandymas buvo kiek s\u0117kmingesnis, nes ArdupilotMegaPlanner prad\u0117jo \u0161n\u0117ketis su plok\u0161te. Firmware.hex imtas i\u0161 \\ardupilot-mega\\Tools\\ArdupilotMegaPlanner\\bin\\Release\\ katalogo.<\/p>\n<pre>avrdude -e -c stk500v2 -p m2560 -P com4 -U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xFD:m\r\navrdude -v -c stk500v2 -p m2560 -P com4  -U flash:w:firmware.hex<\/pre>\n<p>O taip tikrindavau k\u0105 booloaderis \u0161ra\u0161\u0117 \u012f mikrokontroler\u012f. Komanda skirta nuskaityti firmware:<\/p>\n<pre>avrdude -v -c stk500v2 -p m2560 -P com4  -U flash:r:firmware1.hex:i<\/pre>\n<h3>Atmega2560 programavimas (teisingesnis variantas)<\/h3>\n<p>Kitas b\u016bdas, nors irgi n\u0117ra labai teisingas, ta\u010diau veikia su bootloaderiu.<\/p>\n<ul>\n<li>Parsis\u016bsti nauja <a href=\"http:\/\/lukse.lt\/failai\/firmware_m2560_boot_fresh.hex\">firmware<\/a>, kuris buvo originalioje plok\u0161t\u0117je.<\/li>\n<li>J\u012f \u012fra\u0161yti \u012f MEGA2560\n<pre>avrdude -v -c stk500v2 -p m2560 -P com4  -U flash:w:firmware_m2560_boot_fresh.hex<\/pre>\n<\/li>\n<li>I\u0161 AMP \u012fkelti nauj\u0105 firmware pagal skraidykl\u0117s tip\u0105.<\/li>\n<\/ul>\n<h3>Atmega328p programavimas<\/h3>\n<p style=\"text-align: justify;\">\u0160is mikrokontroleris skirtas PPM\/Servo PWM \u012f\u0117jimui apdoroti. Vienitel\u0117 funkcija atskirta nuo Atmega2560.<\/p>\n<p style=\"text-align: justify;\">Programuojant \u0161\u012f kilo did\u017eiausi\u0173 nesusipratim\u0173. \u0160viesos diodas lyg ir mirgsejo kaip nurodyta apra\u0161yme, ta\u010diau ArdupilotMegaPlanner nemat\u0117 valdymo signal\u0173. Kit\u0105 dien\u0105 suradau kombinacija, kuri veik\u0117. Tiesa \u012fvykd\u017eius paskutin\u0119 eilut\u0119 veikti nustodavo.<\/p>\n<pre>avrdude -e -c stk500v2 -p m328p -P com4 -U lock:w:0xFF:m\r\navrdude -e -c stk500v2 -p m328p -P com4 -U hfuse:w:0xDF:m -U lfuse:w:0xFF:m -U efuse:w:0xFE:m\r\navrdude -e -c stk500v2 -p m328p -P com4 -U flash:w:Encoder-PPM.hex\r\navrdude -e -c stk500v2 -p m328p -P com4 -U lock:w:0xCF:m<\/pre>\n<h3>Naudingos nuorodos<\/h3>\n<p><a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/www.engbedded.com\/fusecalc');\"  href=\"http:\/\/www.engbedded.com\/fusecalc\">Atmega fuse calculator<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0160ioje dalyje papasakosiu kaip teisingai u\u017eprogramuoti arducopter mikrokontrolerius.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[5],"tags":[],"class_list":["post-5441","post","type-post","status-publish","format-standard","hentry","category-uzrasai"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p2rU5c-1pL","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/lukse.lt\/uzrasai\/wp-json\/wp\/v2\/posts\/5441","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lukse.lt\/uzrasai\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lukse.lt\/uzrasai\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lukse.lt\/uzrasai\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lukse.lt\/uzrasai\/wp-json\/wp\/v2\/comments?post=5441"}],"version-history":[{"count":25,"href":"https:\/\/lukse.lt\/uzrasai\/wp-json\/wp\/v2\/posts\/5441\/revisions"}],"predecessor-version":[{"id":5670,"href":"https:\/\/lukse.lt\/uzrasai\/wp-json\/wp\/v2\/posts\/5441\/revisions\/5670"}],"wp:attachment":[{"href":"https:\/\/lukse.lt\/uzrasai\/wp-json\/wp\/v2\/media?parent=5441"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lukse.lt\/uzrasai\/wp-json\/wp\/v2\/categories?post=5441"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lukse.lt\/uzrasai\/wp-json\/wp\/v2\/tags?post=5441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}