Агуулгын хүснэгт:
- Хангамж
- Алхам 1: OTA
- Алхам 2: Ameba Flash санах ойн зохион байгуулалт
- Алхам 3: Ачаалах урсгал
- Алхам 4: Жишээ
Видео: Arduino -г агаарт програмчлах (OTA) - Амеба Ардуино: 4 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Зах зээл дээр олон Wi-Fi микроконтроллер байдаг бөгөөд олон үйлдвэрлэгчид Wi-Fi микроконтроллероо Arduino IDE ашиглан програмчлах дуртай байдаг. Гэсэн хэдий ч Wi-Fi микроконтроллерийн санал болгодог хамгийн гайхалтай шинж чанаруудын нэг бол OTA (Over-The-Air) функцийг ашиглан кодоо зайнаас болон утасгүй програмчлах, байршуулах явдал юм.
Энэхүү зааварт би Ameba Arduino Wi-Fi микроконтроллер дээр хаа сайгүй байдаг Arduino IDE-ийг ашиглан Wi-Fi микроконтроллер дээрээ OTA-ийг хэрхэн тохируулахыг танд үзүүлэх болно.
Хангамж
Амеба Ардуино x 1
Алхам 1: OTA
OTA (Over-The-Air) нь интернетээр дамжуулан онлайн шинэчлэх механизмыг хэлдэг.
Arduino IDE нь дээрх зураг дээрх ажлын урсгалыг дагаж OTA функцийг санал болгодог.
(i) Arduino IDE нь дотоод сүлжээнд Arduino IDEOTA үйлчилгээтэй төхөөрөмжүүдийг mDNS -ээр хайх.
(ii) mDNS үйлчилгээ нь Ameba дээр ажиллаж байгаа тул Ameba нь mDNS хайлтанд хариу өгч, холбогдох тусгай TCP портыг нээдэг.
(iii) Хэрэглэгч Arduino IDE програмыг хөгжүүлдэг. Дууссаны дараа сүлжээний портыг сонгоно уу.
(iv) Байршуулах дээр дарна уу. Дараа нь Arduino IDE нь OTA дүрсийг TCP -ээр дамжуулан Ameba руу илгээдэг бол Ameba зургийг тодорхой хаягаар хадгалдаг бөгөөд дараагийн удаа энэ зургаас ачаалах сонголтыг тохируулдаг.
Ажлын урсгал нь mDNS, TCP, OTA зургийн процесс гэсэн гурван хэсгээс бүрдэнэ. MDNS -тэй холбоотой дэлгэрэнгүй мэдээллийг mDNS зааварт тайлбарласан болно. TCP сокет програмчлалыг зураг дамжуулахад ашигладаг бөгөөд OTA API -д аль хэдийн оруулсан болно.
Дараагийн хэсэгт бид OTA дүрсийг хэрхэн яаж боловсруулах талаар ярилцах бөгөөд Ameba флаш санах ойн зохион байгуулалт, ачаалах урсгалын талаархи үндсэн мэдлэгийг танилцуулах болно.
Алхам 2: Ameba Flash санах ойн зохион байгуулалт
Ameba RTL8195A флаш санах ойн хэмжээ нь 2MB бөгөөд 0x00000000 -аас 0x00200000 хооронд хэлбэлздэг. Гэсэн хэдий ч Ameba RTL8710 -ийн флаш санах ойн хэмжээ нь 1MB юм. Янз бүрийн хавтанг ашиглахын тулд флаш санах ойн зохион байгуулалтыг 1MB гэж үздэг.
Дээрх зурагт үзүүлсэн шиг Ameba програм нь флаш санах ойн гурван хэсгийг эзэлдэг.
- Ачаалах зураг:
Энэ бол ачаалагч юм. Амеба ачаалах үед ачаалах дүрсийг санах ойд байрлуулж, эхлүүлэх ажлыг гүйцэтгэдэг. Цаашилбал, энэ нь ачаалагчийг ачаалсны дараа хаашаа явахаа тодорхойлдог. Bootloader нь системийн өгөгдлийн талбайн OTA хаяг болон сэргээх зүүг хараад дараа нь ямар дүрсийг гүйцэтгэх болохыг тодорхойлдог. Ачаалагчийн төгсгөлд энэ нь зургийг санах ойд байрлуулж, түүнийг гүйцэтгэх болно.
- Анхдагч зураг 2:
Хөгжүүлэгчийн кодыг энэ хэсэгт байрлуулсан бөгөөд хаяг нь 0x0000B000 -аас эхэлдэг. Эхний 16 байт нь зургийн толгой бөгөөд 0x0000B008 ~ 0x0000B00F нь гарын үсэг агуулдаг бөгөөд энэ нь зураг хүчинтэй эсэхийг шалгахад хэрэглэгддэг. Гарын үсгийн талбар нь шинэ дүрсийг хуучин зургаас ялгах хоёр хүчин төгөлдөр утгатай байна.
- OTA зураг:
Энэ хэсгийн өгөгдөл нь мөн хөгжүүлэгчийн код юм. Анхдагч байдлаар санах ойн энэ хэсэг нь 0x00080000 -аас эхэлдэг (өөрчлөх боломжтой). OTA дүрс ба Default Image 2 -ийн гол ялгаа нь флаш санах ойн хаяг болон гарын үсгийн утга юм.
Кодоос гадна зарим өгөгдлийн блокууд байдаг:
- Системийн мэдээлэл:
Системийн мэдээллийн блок 0x00009000 -аас эхэлдэг. OTA-тай холбоотой хоёр мэдээлэл байна:
1. OTA хаяг: 0x00009000 -аас эхлэн 4 байтын өгөгдөл. Энэ нь OTA Image хаягийг хэлдэг. Хэрэв OTA хаягийн утга буруу байвал (өөрөөр хэлбэл 0xFFFFFFFFF) флаш санах ой дахь OTA зургийг зөв ачаалах боломжгүй байна.
2. Сэргээх зүү: 0x00009008 -аас эхлэн 4 байт өгөгдөл, Сэргээх зүү нь аль зураг хүчинтэй байх үед аль дүрсийг (үндсэн зураг 2 эсвэл OTA дүрс) гүйцэтгэхээ тодорхойлоход хэрэглэгддэг. Хэрэв сэргээх зүү утга буруу байвал (өөрөөр хэлбэл 0xFFFFFFFF) шинэ зургийг анхдагчаар гүйцэтгэх болно.
Бид програмыг Ameba -д DAP -ээр байршуулах үед системийн өгөгдлийг устгах болно. Өөрөөр хэлбэл, OTA хаягийг устгаж, Ameba нь OTA дүрс байхгүй болохыг тодорхойлох болно.
- Калибровкийн өгөгдөл: Захын шалгалт тохируулгын өгөгдлийг энэ блокт байрлуулсан болно. Дүрмээр бол эдгээр өгөгдлийг устгах ёсгүй.
Алхам 3: Ачаалах урсгал
Дээрх зургаас харахад
Бид дараах хувилбаруудыг хэлэлцдэг: (i) OTA ашиглагддаггүй, програмыг байршуулахын тулд DAP -ийг ашиглана уу.
Энэ тохиолдолд bootloader нь үндсэн зураг 2 болон OTA хаягийн гарын үсгийг шалгадаг. OTA хаягийг устгасан тул 2 -р зургийг сонгож гүйцэтгэх болно.
(ii) OTA дүрсийг Ameba руу шилжүүлсэн, OTA хаягийг зөв тохируулсан, сэргээх зүү тохируулаагүй байна:
Амеба OTA -ээр дамжуулан шинэчилсэн зургийг хүлээн авсан бөгөөд үндсэн зураг 2 -ийн гарын үсгийг хуучин гарын үсэг болгон тохируулах болно.
Bootloader нь үндсэн зураг 2 болон OTA хаягийн гарын үсгийг шалгадаг. OTA хаяг нь хүчинтэй OTA дүрсийг агуулсан болохыг олж мэдэх болно. Сэргээх зүү тохируулагдаагүй тул гүйцэтгэх шинэ зургийг (өөрөөр хэлбэл OTA дүрс) сонгоно.
(iii) OTA дүрсийг Ameba руу шилжүүлсэн, OTA хаягийг зөв тохируулсан, сэргээх зүүг тохируулсан:
Амеба OTA -ээр дамжуулан шинэчилсэн зургийг хүлээн авсан бөгөөд үндсэн зураг 2 -ийн гарын үсгийг хуучин гарын үсэг болгон тохируулах болно.
Bootloader нь үндсэн зураг 2 болон OTA хаягийн гарын үсгийг шалгадаг. OTA хаяг нь хүчинтэй OTA дүрсийг агуулсан болохыг олж мэдэх болно. Дараа нь сэргээх зүүгийн утгыг шалгана уу. Хэрэв сэргээх зүү нь LOW -тэй холбогдсон бол шинэ дүрсийг (өөрөөр хэлбэл OTA дүрс) гүйцэтгэх болно. Хэрэв сэргээх зүү нь HIGH -д холбогдсон бол хуучин дүрсийг (өөрөөр хэлбэл үндсэн зураг 2) гүйцэтгэх болно.
Алхам 4: Жишээ
OTA функцийг ашиглахын тулд DAP firmware -ийг> 0.7 (v0.7 оруулаагүй болно) болгон сайжруулна уу. Үйлдвэрийн үндсэн DAP програм хангамж нь 0.7 хувилбар юм. DAP програмыг шинэчлэх зааврыг дагана уу:
Жишээг нээнэ үү: "Файл" -> "Жишээ" -> "AmebaOTA" -> "ota_basic"
Сүлжээний холболтын дээжийн кодонд ssid болон нууц үгийн мэдээллийг бөглөнө үү.
OTA -тай холбоотой зарим параметрүүд байдаг.
§ MY_VERSION_NUMBER: Эхний хувилбарт бид OTA хаяг болон сэргээх зүүг тохируулах хэрэгтэй. Энэ удаад USB -ээр дамжуулан байршуулах нь анхны хувилбар тул бид энэ утгыг өөрчлөх шаардлагагүй болно.
§ OTA_PORT: Arduino IDE нь Ameba -г mDNS -ээр дамжуулан олох болно. Ameba нь Arduino IDE -д OTA дүрсийг хүлээхийн тулд TCP 5000 портыг нээдэг гэж хэлэх болно.
§ RECOVERY_PIN: Сэргээхэд ашигладаг зүүг тохируулна уу. Бид энд 18 -р зүү ашигладаг.
Дараа нь бид USB байршуулах програмыг Ameba руу ашигладаг. Хэрэгслүүд -> Портууд дээр дарж ашиглах сериал портыг шалгана уу:
Arduino IDE нь нэг програмыг байршуулах програм болон гаралтын бүртгэлд ашигладаг болохыг анхаарна уу. OTA -ийг ашиглах үед бүртгэлийг гаргах боломжгүй байдлаас зайлсхийхийн тулд бид бүртгэлийн мессежийг үзэхийн тулд цуваа мониторын оронд бусад цуваа порт терминал (жишээ нь, Тера нэр томъёо эсвэл шаваас) ашигладаг.
Дараа нь байршуулах дээр дарж дахин тохируулах товчийг дарна уу.
Бүртгэлийн мессеж дээр:
1. “===== Зураг оруулах 1 ====” ба “Зураг оруулах 2 ====” хоёрын хооронд та “Flash Image 2: Addr 0xb000” -ийг олох боломжтой. Энэ нь Ameba Default Image 2 -ээс 0xb000 дээр ачаалахаар шийдсэн гэсэн үг юм.
2. “Зураг 2 оруулна уу ====” дараа “Энэ бол 1 -р хувилбар” -ыг олох боломжтой. Энэ бол ноорог дээр бидний оруулсан бүртгэлийн мессеж юм.
3. Амеба AP -тэй холбогдож, "192.168.1.238" IP хаягийг авсны дараа mDNS -ийг идэвхжүүлж үйлчлүүлэгчийг хүлээнэ.
Дараа нь бид "MY_VERSION_NUMBER" -ийг 2 болгож өөрчилнө.
"Хэрэгслүүд" -> "Порт" дээр дарна уу, та "Сүлжээний портууд" -ын жагсаалтыг харах боломжтой. "MyAmeba -г 192.168.1.238 (Ameba RTL8195A) дээрээс" олоорой, MyAmeba бол бидний жишээ кодонд оруулсан mDNS төхөөрөмжийн нэр бөгөөд "192.168.1.238" нь Ameba -ийн IP юм.
Хэрэв та Ameba -ийн сүлжээний портыг олж чадахгүй бол баталгаажуулна уу.
- Таны компьютер ба Ameba нэг локал сүлжээнд байгаа эсэх?
- Arduino IDE -ийг дахин эхлүүлэхийг оролдоорой.
- Sereb Monitor дахь бүртгэлийн мессежийг шалгаад Ameba AP -тэй амжилттай холбогдсон эсэхийг шалгаарай.
Дараа нь байршуулах дээр дарна уу. Энэ удаад програмыг TCP -ээр байршуулах болно. Бүртгэлийн терминал дээр та үйлчлүүлэгчийн холболтын мэдээллийг харах боломжтой.
OTA дүрсийг амжилттай татаж авсны дараа Ameba дахин асах бөгөөд дараах бүртгэлийг бүртгэлийн терминал дээр харуулна.
- “===== Зураг оруулах 1 ====” ба “Зураг оруулах 2 ====” хоёрын хооронд та “Flash Image 2: Addr 0x80000” гэсэн мессежийг харж болно. Энэ нь Ameba 0x80000 дээр OTA Image -ээс ачаалахаар шийдсэн гэсэн үг юм.
- "Зураг 2 оруулна уу ====" дараа "Энэ бол хувилбар 2" гэсэн бүртгэл нь ноорог дээр бидний оруулсан зурвас юм.
OTA дүрсийг Ameba -д татаж авсны дараа өмнөх дүр төрхийг сэргээхийн тулд ноорог (өөрөөр хэлбэл 18 -р зүү) дээр тогтоосон сэргээх зүүг HIGH (3.3V) руу холбоод дахин тохируулах товчийг дарна уу.
Дараа нь ачаалах үед Default image 2 гарч ирнэ. Татаж авсан OTA зургийг устгахгүй бөгөөд сэргээх зүүг HIGH -аас салгасны дараа OTA дүрсийг гүйцэтгэх болно.
Дараах зураг дээр бид OTA ашиглан хөгжлийн явцыг тоймлон харуулав.
Зөвлөмж болгож буй:
Ардуино ISP байдлаар -- AVR дээр Hex файлыг шарах -- AVR дахь гал хамгаалагч -- Ардуино програмистын хувьд: 10 алхам
Ардуино ISP байдлаар || AVR дээр Hex файлыг шарах || AVR дахь гал хамгаалагч || Ардуино програмистын хувьд: ……………… Миний YouTube сувгийг SUBSCRIBE дарж илүү олон видео үзээрэй …….. Энэ нийтлэл Энэ бол isp шиг arduino -ийн тухай юм. Хэрэв та Hex файлыг байршуулахыг хүсч байгаа эсвэл гал хамгаалагчаа AVR дээр тохируулахыг хүсч байвал програмист худалдаж авах шаардлагагүй болно
Номын сангүйгээр гүйлгэж буй текстийг харуулахын тулд өөр Arduino ашиглан Arduino програмчлах: 5 алхам
Номын сангүйгээр гүйлгэж буй текстийг харуулахын тулд өөр Arduino ашиглан Arduino програмчлах: Sony Spresense эсвэл Arduino Uno нь тийм ч үнэтэй биш бөгөөд маш их хүч шаарддаггүй. Гэсэн хэдий ч хэрэв таны төсөлд хүч чадал, орон зай, бүр төсөв хязгаарлагдмал байгаа бол та Arduino Pro Mini -ийг ашиглах талаар бодож үзэхийг хүсч магадгүй юм. Arduino Pro Micro -ээс ялгаатай нь Arduino Pro Mi
Arduino Pro Mini -ийг Arduino Uno ашиглан хэрхэн програмчлах вэ: 4 алхам
Arduino Pro Mini -ийг Arduino Uno ашиглан хэрхэн програмчлах вэ: Би үүнийг өөр төслийн нэг хэсэг болгон бичсэн боловч дараа нь зөөврийн компьютерээс шууд програмчилж болох Pro Micro ашиглахаар шийдсэн боловч энэ нь хэзээ нэгэн цагт (эсвэл хэн нэгэнд) ашигтай байж магадгүй юм. Би энд үлдээх болно
Esp 8266 Esp-01-ийг Arduino IDE ашиглан эхлүүлэх - Esp самбарыг Arduino Ide -д суулгах, програмчлах Esp: 4 алхам
Esp 8266 Esp-01-ийг Arduino IDE ашиглан эхлүүлэх | Esp самбарыг Arduino Ide-д суулгах, програмчлах Esp: Энэхүү зааварчилгаанд бид Arduino IDE-д esp8266 самбарыг хэрхэн суулгах, esp-01 програмыг хэрхэн яаж програмчлах, код оруулах талаар сурах болно. энэ болон ихэнх хүмүүс асуудалтай тулгардаг
Arduino UNO ашиглан Arduino Pro Mini -ийг хэрхэн програмчлах вэ: 4 алхам
Arduino Pro Mini -ийг Arduino UNO ашиглан хэрхэн програмчлах вэ: Сайн байна уу залуусаа, өнөөдөр би Arduino UNO ашиглан Arduino Pro mini програмчлалын энгийн аргыг хуваалцаж байна. Энэхүү гарын авлага нь arduino -ийг эхлүүлж буй хүмүүст зориулагдсан бөгөөд Arduino Pro mini -ийг ашиглан төслийнхөө хэмжээг багасгахыг хүсч байна