Cuprins:

Realizarea unui robot Dumb Laovermover mai inteligent: 4 pași
Realizarea unui robot Dumb Laovermover mai inteligent: 4 pași

Video: Realizarea unui robot Dumb Laovermover mai inteligent: 4 pași

Video: Realizarea unui robot Dumb Laovermover mai inteligent: 4 pași
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Noiembrie
Anonim
Efectuarea unui robot mut, mai inteligent
Efectuarea unui robot mut, mai inteligent

Așa că am un robot de tuns iarbă minunat, dar prost (Imaginea este de pe www.harald-nyborg.dk).

Acest robot ar trebui să-mi taie peluza, dar peluza mea este prea mare și complexă pentru a intra cu adevărat în colțuri.

Nu sunt afișate pe desenele mele o mulțime de copaci și un set de leagăn și așa mai departe și așa mai departe. Rezultatul este că robotul petrece WAY mult timp, alergând peste secțiunile deschise deja tundute și prea puțin timp tundând piesele dure.

Așa că am decis să adaug ceva inteligență externă.

23-04-2020 EDIT: senzorul nu a funcționat prea bine, așa că am schimbat câteva lucruri

Provizii

2 comutatoare exterioare cu 2 căi

SAU

1 router usb vechi

1 card releu USB

1 digispark

1 hub USB

1 cutie electronică etanșă

23-04-2020 EDIT:

OR1 router usb vechi

1 card releu USB

1 usb2serial tll thinghy

1 hub USB

1 cutie electronică etanșă

1 senzor cu ultrasunete Dfrobot URM 37 v3.2 (probabil că ați putea folosi orice senzor =)

kmod-usb-serial-cp210x

Pasul 1: Pasul 1: Tăierea cu mai multe zone Manuel

Pasul 1: Tăierea cu mai multe zone Manuel
Pasul 1: Tăierea cu mai multe zone Manuel
Pasul 1: Tăierea cu mai multe zone Manuel
Pasul 1: Tăierea cu mai multe zone Manuel

Imaginea arată cum am trecut de la o zonă de tăiere la 2 zone.

Robotul meu va porni automat la fiecare 2. zi, așa că, atâta timp cât mi-am amintit să-l schimb de la o zonă la alta, a funcționat bine.

Am folosit 2 comutatoare manuale, precum cele pe care le-ați folosi într-un hol sau scară.

Acest lucru a funcționat, cu excepția celor pe care le-am folosit, au fost prea slabe și, prin urmare, am primit bug-uri care se târăsc în ele, încurcându-le

Pasul 2: Pasul 2: soluția automată

Pasul 2: soluția automată
Pasul 2: soluția automată
Pasul 2: Soluția automată
Pasul 2: Soluția automată
Pasul 2: soluția automată
Pasul 2: soluția automată
Pasul 2: soluția automată
Pasul 2: soluția automată

Așa că am decis să fac ceva automat.

Am un router Netgear R6100 folosit, l-am primit pentru că are wifi, USB și suficientă memorie pentru a face experimentări despre experiment, în loc să-l înghesuie pe OpenWrt și prietenii pe el.

Am un ebays best usb 2.0 hub și un card de releu de 12v.

Apoi am avut un digispark dintr-un proiect anterior. 23-04-2020 EDIT: a folosit în schimb un usb2seriel thinghy

Am cablat releele în loc de comutatoare. Am folosit releul 3 și 4

Apoi am instalat OpenWrt și i-am adăugat Crelay, picocom și coreutils-stty.

23-04-2020 EDIT: adăugat xxk, kmod-usb-serial-cp210x

Conectat 12V la router și placa releu.

23-04-2020 EDIT: a folosit un Urm 37 v3.2 în loc de restul acestei pagini

Apoi am învățat ceva „distractiv”. releu va încerca să pornească hub-ul USB, împiedicând astfel digisparkul să repornească corect. Deci am tăiat firul de alimentare din cablul USB de pe cardul de releu și din hub-ul USB.

Atunci am conectat digispark-ul și cardul releu USB în hub-ul USB 2.0 și hub-ul în router.

Ei bine, pentru a fi corect, am programat digispark înainte de al adăuga la router

În digispark, am adăugat un buton, pe care l-am conectat între P1 și Gnd.

Acest buton l-am amplasat, astfel încât robotul îl va activa, odată ce se va încărca în garaj.

A trebuit să adaug un arc la activare, pentru a obține un angajament solid.

Pasul 3: Pasul 3: Software

Fișierul conține un program ide arduino pentru digispark.

Este plasat în rădăcină / LawnSelector.

Acest fișier are nevoie de câteva libere digispark, cum ar fi digiCDC și plăcile digispark adăugate la ideul arduino.

Apoi, există fișierele / root / GrassCtr / *.

Acestea sunt fișierele care chiar funcționează.

Kreds1 schimbă releele în zona1

Kreds2 schimbă releele în zona2

KredsStatus întreabă releul USB, ce zonă este activă

23-04-2020 EDIT: Utilizați UltraSoundSeriel în loc să citiți digispark.

ReadDigiSpark, citește știrile în fiecare marți.. Așteptați. Citește starea de intrare a digisparkului

GrassCtl face gândirea.

Iată ce face.

Dacă robotul este IN pentru mai mult de 10 ore, decide că robotul este în noapte și acest lucru activează un flipflop, care îl face să înceapă în fiecare zonă la fiecare două ori. Motivul este că robotul meu începe prin tăierea întregii margini și, în acest fel, taie marginile la fiecare două zile.

Apoi, odată ce robotul tunde, senzorul va spune că robotul este în afara.

De fiecare dată când robotul se întoarce pentru încărcarea bateriei (definit ca fiind mai mult de 20 de minute), zona va fi schimbată în cealaltă zonă.

vă rugăm să rețineți. Software-ul este o mizerie groaznică, dar funcționează, deci înainte și în sus

Pasul 4: Pasul 4: Activarea software-ului

Pentru a rula software-ul, trebuie să facem ceva.

L-am adăugat la un cronJob

* / 5 * * * * / root / GrassCtrl / GrassCtl

la dosar

/ etc / crontabs / root

Apoi, pentru a activa cronjobs, am făcut-o

/etc/init.d/cron activate

După cum îmi pot da seama, robotul se va schimba acum între zona de cosit 1 sau 2 și va schimba ceea ce este cosit de fiecare dată când a fost încărcat bateriile.

Și da, acum are totul

Recomandat: