Indholdsfortegnelse:

Gør en dum plæneklipperrobot smartere: 4 trin
Gør en dum plæneklipperrobot smartere: 4 trin

Video: Gør en dum plæneklipperrobot smartere: 4 trin

Video: Gør en dum plæneklipperrobot smartere: 4 trin
Video: Den nye pige - En film om mobning 2024, Juli
Anonim
Gør en dum plæneklipperrobot smartere
Gør en dum plæneklipperrobot smartere

Så jeg har en dejlig, men dum plæneklipper robot (billedet er fra www.harald-nyborg.dk).

Denne robot skal klippe min græsplæne, men min græsplæne er for stor og kompleks til, at den virkelig kan komme ind i hjørnerne.

Ikke vist på mine tegninger er et væld af træer og et gyngesæt og så videre og så videre. Resultatet er, at robotten bruger VEJ til meget tid, kører over allerede klipte åbne sektioner og for lidt tid til at klippe de hårde dele.

Så jeg besluttede at tilføje noget ekstern intelligens.

23-04-2020 EDIT: sensoren virkede ikke helt, så jeg ændrede et par ting

Forbrugsvarer

2 udendørs 2 -vejs switches

ELLER

1 gammel usb -router

1 usb relækort

1 digispark

1 usb -hub

1 vandtæt elektronikboks

23-04-2020 EDIT:

OR1 gammel usb -router

1 usb relækort

1 usb2serial tll tinghy

1 usb -hub

1 vandtæt elektronikboks

1 ultralydssensor Dfrobot URM 37 v3.2 (du kan sandsynligvis bruge en hvilken som helst sensor =)

kmod-usb-serial-cp210x

Trin 1: Trin 1: Manuel skæring af flere områder

Trin 1: Manuel skæring af flere områder
Trin 1: Manuel skæring af flere områder
Trin 1: Manuel skæring af flere områder
Trin 1: Manuel skæring af flere områder

Billedet viser, hvordan jeg gik fra et skæreområde til 2 områder.

Min robot starter automatisk hver 2. dag, så så længe jeg huskede at skifte den fra det ene område til det andet, fungerede dette fint.

Jeg brugte 2 manuelle kontakter, som dem du ville bruge i en hall eller trappe.

Dette virkede, undtagen dem jeg brugte var af for dårlig kvalitet, og derfor fik jeg bugs kravlet ind i dem og rodede dem op

Trin 2: Trin 2: Den automatiske løsning

Trin 2: Den automatiske løsning
Trin 2: Den automatiske løsning
Trin 2: Den automatiske løsning
Trin 2: Den automatiske løsning
Trin 2: Den automatiske løsning
Trin 2: Den automatiske løsning
Trin 2: Den automatiske løsning
Trin 2: Den automatiske løsning

Så jeg besluttede at gøre noget automatisk.

Jeg fik en brugt Netgear R6100 router, jeg fik denne, fordi den har wifi, usb og hukommelse nok til at eksperimentere med at eksperimentere, i stedet for at gøre det om at proppe OpenWrt og venner videre til den.

Jeg fik en ebays bedste usb 2.0 hub og et 12v relæ kort.

Så havde jeg en digispark fra et tidligere projekt. 23-04-2020 EDIT: brugte en usb2seriel thinghy i stedet

jeg tilsluttede relæerne i stedet for kontakterne. jeg brugte relæ 3 og 4

Derefter installerede jeg OpenWrt og tilføjede Crelay, picocom og coreutils-stty til det.

23-04-2020 EDIT: tilføjet xxk, kmod-usb-serial-cp210x også

Tilsluttet 12V til routeren og relækortet.

23-04-2020 EDIT: brugte en Urm 37 v3.2 i stedet for resten af denne side

Så lærte jeg noget "sjovt". relæet boad vil forsøge at tænde for usb -hub og derved forhindre digispark i at genstarte korrekt. Så jeg skar strømkablet i usb -kablet fra relækortet og usb -hubben.

Derefter sluttede jeg digispark og usb -relækort til usb 2.0 -hub og hub til routeren.

For at være fair, programmerede jeg digispark, før jeg tilføjede den til routeren

I digisparken tilføjede jeg en knap, som jeg kørte mellem P1 og Gnd.

Denne knap placerede jeg, så robotten aktiverer den, når den er i sin garage opladning.

Jeg var nødt til at tilføje en fjeder til aktiveringen for at få et godt solidt engagement.

Trin 3: Trin 3: Software

Filen indeholder et arduino ide -program til digispark.

Den er placeret i root/LawnSelector.

Denne fil har brug for et par digispark libs, som digiCDC og digispark boards tilføjet til arduino ideen.

Så er der/root/GrassCtr/* filerne.

Det er de filer, der rent faktisk gør arbejdet.

Kreds1 ændrer relæerne til area1

Kreds2 ændrer relæerne til area2

KredsStatus spørger USB -relæet, hvilket område der er aktivt

23-04-2020 EDIT: Brug UltraSoundSeriel i stedet for at læse digispark.

ReadDigiSpark, læser nyhederne hver tirsdag.. Vent. Læser digisparkens indgangstilstand

GrassCtl gør tankegangen.

Her er hvad det gør.

Hvis robotten er IN i mere end 10 timer, beslutter den, at robotten er om natten, og dette aktiverer en flipflop, der får den til at starte i hvert område hver anden gang. Grunden til dette er, at min robot starter med at skære hele kanten, og på denne måde skærer den kanterne hver anden dag.

Så når robotten klipper, vil sensoren fortælle, at robotten er ude.

Hver gang robotten vender tilbage til batteriopladning (defineret som værende i mere end 20 minutter), ændres området til det andet område.

Bemærk venligst. Softwaren er et forfærdeligt rod, men det virker, så videre og opad

Trin 4: Trin 4: Aktivering af softwaren

For at køre softwaren skal vi gøre noget.

Jeg føjede det til en cronJob

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

til filen

/etc/crontabs/root

Derefter gjorde jeg det for at tænde cronjobs

/etc/init.d/cron aktivere

Så godt jeg kan se, vil robotten nu skifte mellem start af klippeområde 1 eller 2, og vil ændre, hvad der skal klippes, hver gang den har været ved at genoplade batterierne.

Og ja, nu får det alt

Anbefalede: