Anunțuri
- (diapozitiv) marți
- o zi de pomenire a lui Douglas Addams, autorul Ghidului autostopistului pentru galaxie
- în această zi, fiecare bun tracker își are prosopul într-un loc vizibil;)
Introducere
(diapozitiv) Am cumpărat această carte acum câțiva ani. Este, de asemenea, o carte hilară pentru cei mici (am întâlnit categoria de vârstă cu mult timp în urmă) despre roboți, cu ajutorul cărora îți poți construi proprii roboți (diferiți inteligenți și din diverse componente). L-am cumpărat din mai multe motive, dar două dintre ele au fost: terminologia și, respectiv, ilustrațiile. exemple. Și în câteva lucruri mi-a fost utilă și în pregătirea acestei prelegeri.

(diapozitiv) Această carte este un adept al așa-numitelor. DIY principiul, care este prescurtarea „Do It Yourself”, așa că fă-o și tu Este pentru astfel de bricolaj și pasionați.
(diapozitiv) Această zonă este denumită și termenul similar Make și, prin urmare, oricine se angajează în astfel de activități este un Maker:-).
- sens - reprezintă percepția robotului, atunci când robotul primește informații despre ceea ce se întâmplă în jurul său,
- gândi - reprezintă gândirea robotului, atunci când, pe baza informațiilor primite din mediu, robotul decide ce să facă și
- act - reprezintă o activitate a robotului care afectează lumea exterioară.
Exemplu de avion
Exemplu de avion
Aeronava conține un computer care evaluează datele din zborul curent. Dar trebuie să le strângă pentru asta. De exemplu. trebuie să știe cât de sus zboară, cât de repede zboară acolo unde este. Aeronava are nevoie de toate aceste informații pentru a putea decide ce să facă, resp. unde ar trebui să fie în viitorul apropiat. Pe baza datelor colectate, prin urmare, reglează înălțimea folosind aripi, încetinind sau accelerând folosind motoare.
colectarea de informații despre starea actuală și poziția aeronavei, aparține fazei sens,
evaluarea informațiilor și îndeplinirea etapei următoare a aeronavei, aparține fazei gândi, A
sunet, resp. creșterea puterii motoarelor de aeronave, reglarea poziției aripilor, aparține fazei act.
Introducere în microcontrolere
Un microcontroler este un computer cu scop special pe un singur cip.
Arduino UNO
Arduino Uno
Notă
Să aruncăm o privire mai atentă la tot ceea ce este pe tablă:
Notă
Pentru ca totul să funcționeze așa cum ar trebui, trebuie să folosiți așa-numitul. convertoare de nivel logic între 3,3V și 5V (de la schimbător de nivel englez).
Programare Arduino
Notă
Dacă utilizați un sistem de operare Linux, puteți instala și Arduino IDE direct din pachetele de distribuție. Cu toate acestea, vă recomand să instalați acest instrument direct folosind programele de instalare de pe www.arduino.cc, deoarece versiunea disponibilă în pachetele de distribuție poate fi destul de veche în comparație cu cea mai recentă versiune a proiectului disponibilă de la.
Notă
Configurați IDE-ul
Cu toate acestea, dacă doriți să modificați aceste setări:
accesați meniul Instrumente> Placă pentru a schimba placa implicită sau
accesați meniul Instrumente> Port pentru a schimba portul implicit.
Blink Exemplu
Proiectul Blink poate fi găsit în exemple direct în Arduino IDE. O puteți găsi în meniul Fișier> Exemple. Să-l încărcăm pe Arduino. După înregistrare, programul pornește automat și LED-ul de pe placă începe să clipească.
Notă
Cei care au experimentat deja Arduine știu deja că acest LED este conectat la pinul digital Д. 13. Aceasta înseamnă că macro-ul LED_BUILTIN este de fapt 13 .
Dacă apăsăm butonul RESET, programul va porni din nou de la început.
Structura schiței
Să aruncăm o privire mai atentă asupra codului în sine:
unde semnificația acestor funcții este următoarea:
setup () - funcția este utilizată pentru a inițializa pinii și este pornită o singură dată (la început)
loop () - funcția reprezintă bucla principală a aplicației (așa-numita. superloop) și după inițializare prin funcția setup (), această funcție este returnată continuu.
Arduino și memorie
Observați cât durează codul rezultat - 924B de la 32256B. Și rețineți câtă memorie avem - 9B din 2047B. De ce sunt două maxime? Nu ar trebui să avem o singură memorie disponibilă pentru program și date?
Notă
Această listare se datorează instrumentului avr-size, care este o alternativă AVR la instrumentul de dimensiuni. Se găsește în instalarea Arduino (în folderul hardware/tools/avr/bin /) sau în distribuțiile Linux din pachetul corespunzător (de exemplu, în Fedora este pachetul avr-binutils).
Pentru a porni instrumentul, trebuie să activați Mai multe informații în Proprietăți în timpul traducerii și să găsiți o linie în raportul de traducere care conține calea care duce la fișierul .elf. Apoi utilizați-l ca parametru al comenzii avr-size:
Arhitectura sistemului
Harta de memorie a unui ATmega328P
- Secțiunea Boot Loader, care ocupă 512B, a
- Secțiunea programului de aplicare, unde se află programul în sine
Busul de adrese de memorie flash este diferit de memoria SRAM (are un spațiu de adrese diferit). Durata sa de viață este de cel puțin 10k cicluri.
Utilizarea memoriei SRAM
Exemplu de cod
Avertizare
Notă
Probleme de memorie
(diapozitiv) Deși ne-am ocupat suficient de alocarea dinamică a memoriei în cadrul subiectului (și în principal atribuit), utilizarea acesteia în cazul dispozitivelor încorporate poate să nu fie ideală. Este foarte ușor să se întâmple asta fragmentarea memoriei.
Fragmentarea memoriei
Notă
încearcă să lanțurile erau cât se poate de scurte - fiecare caracter din memorie ocupă 1B, ceea ce înseamnă că puteți scrie un șir cu o lungime de max. 2048 de caractere
încearcă să continui dimensiunea minimă a câmpului - dacă aflați mai târziu că trebuie să redimensionați, editați-l și recompilați programul
Notă
(diapozitiv) Artera lui Bechynsky, unul dintre divulgatorii și autorii proiectului Arduino 101, a spus într-unul dintre atelierele sale că „Programarea pentru Arduino poate fi, de asemenea, un exercițiu destul de bun în scrierea unui cod eficient pentru încercare).
.kkrieger
(diapozitiv) În concluzie, să ne uităm doar la ce se poate face în mai puțin de 95 KB de cod - să ne uităm la proiectul .kkrieger.
.kkrieger (de la Krieger, germană pentru războinic) este un joc video shooter la prima persoană creat de demogrupul german .theprodukkt (o fostă subdiviziune a Farbrausch) care a câștigat primul loc în competiția de jocuri de 96k la Breakpoint în aprilie 2004. Jocul rămâne o versiune beta versiune începând cu 2012
Resurse aditionale
Arduino Homepage - pagina principală a proiectului Arduino
Memoria microcontrolerului S S - Nu toată lumea știe că memoria RAM (să omitem „SвЂť”) este împărțită în mai multe zone de date, dintre care unele nu sunt bine cunoscute. Să le vedem împreună
Harward Architecture - Arhitectura Harvard este o arhitectură a computerului cu stocare separată și căi de semnal pentru instrucțiuni și date. Acesta contrastează cu arhitectura von Neumann, unde instrucțiunile și datele programului împărtășesc aceeași memorie și căi.
Optimizați utilizarea memoriei Arduino - Când lucrați cu dispozitive încorporate, RAM (memorie cu acces aleator) este una dintre cele mai valoroase și limitate resurse ale sistemului. Acest articol se concentrează pe optimizarea utilizării RAM pentru MCU-urile Arduino, dar același principiu se aplică multor alte dispozitive încorporate.