Isi kandungan:

Menjadikan Robot Dumb Lawnmover Lebih Pintar: 4 Langkah
Menjadikan Robot Dumb Lawnmover Lebih Pintar: 4 Langkah

Video: Menjadikan Robot Dumb Lawnmover Lebih Pintar: 4 Langkah

Video: Menjadikan Robot Dumb Lawnmover Lebih Pintar: 4 Langkah
Video: Quincy part 2 #dewivanow #robot #quincyrobotartis #mobix 2024, November
Anonim
Menjadikan Robot Dumb Lawnmover Lebih Pintar
Menjadikan Robot Dumb Lawnmover Lebih Pintar

Oleh itu, saya mempunyai robot pemotong rumput yang cantik tetapi bodoh (Gambarnya dari www.harald-nyborg.dk).

Robot ini sepatutnya memotong rumput saya, tetapi rumput saya terlalu besar dan rumit untuk benar-benar masuk ke sudut.

Tidak ditunjukkan pada gambar saya terdapat banyak pokok dan buaian dan sebagainya dan sebagainya. Hasilnya, robot menghabiskan banyak masa, berjalan di bahagian terbuka yang sudah dipotong, dan terlalu sedikit masa memotong bahagian yang keras.

Oleh itu, saya memutuskan untuk menambahkan beberapa kepintaran luaran.

23-04-2020 EDIT: sensor tidak berfungsi, jadi saya menukar beberapa perkara

Bekalan

2 suis luaran 2 hala

ATAU

1 penghala usb lama

Kad geganti 1 usb

1 digispark

1 hub usb

1 kotak elektronik kedap air

EDIT 23-04-2020:

Penghala usb lama OR1

Kad geganti 1 usb

1 usb2serial tll thinghy

1 hub usb

1 kotak elektronik kedap air

1 sensor ultrasonik Dfrobot URM 37 v3.2 (anda mungkin boleh menggunakan sebarang sensor =)

kmod-usb-siri-cp210x

Langkah 1: Langkah 1: Pemotongan Kawasan Multi Manuel

Langkah 1: Pemotongan Kawasan Multi Manuel
Langkah 1: Pemotongan Kawasan Multi Manuel
Langkah 1: Pemotongan Kawasan Multi Manuel
Langkah 1: Pemotongan Kawasan Multi Manuel

Gambar menunjukkan bagaimana saya pergi dari satu kawasan pemotongan, ke 2 kawasan.

Robot saya akan dimulakan secara automatik setiap 2. hari, selagi saya ingat untuk menukarnya dari satu kawasan ke kawasan lain, ini berfungsi dengan baik.

Saya menggunakan 2 suis manual, seperti yang anda gunakan di dewan atau tangga.

Ini berjaya, kecuali yang saya gunakan adalah kualiti yang terlalu buruk, dan oleh itu saya mendapat bug yang merangkak ke dalamnya, mengacaukannya

Langkah 2: Langkah 2: Penyelesaian Automatik

Langkah 2: Penyelesaian Automatik
Langkah 2: Penyelesaian Automatik
Langkah 2: Penyelesaian Automatik
Langkah 2: Penyelesaian Automatik
Langkah 2: Penyelesaian Automatik
Langkah 2: Penyelesaian Automatik
Langkah 2: Penyelesaian Automatik
Langkah 2: Penyelesaian Automatik

Oleh itu, saya memutuskan untuk melakukan sesuatu secara automatik.

Saya mendapat penghala Netgear R6100 terpakai, saya mendapatkannya kerana ia mempunyai wifi, usb, dan memori yang cukup untuk membuat percubaan untuk bereksperimen, dan bukannya membuatnya mengenai menjejalkan OpenWrt dan rakan-rakannya.

Saya mendapat hab usb 2.0 ebays terbaik dan kad geganti 12v.

Kemudian saya mendapat digispark dari projek sebelumnya. 23-04-2020 EDIT: sebaliknya menggunakan usb2seriel

saya memasang kabel relay dan bukannya suis. saya menggunakan geganti 3 dan 4

Kemudian saya memasang OpenWrt dan menambahkan Crelay, picocom dan coreutils-stty ke dalamnya.

23-04-2020 EDIT: tambah xxk, kmod-usb-serial-cp210x juga

Dipasangkan 12V ke penghala dan papan geganti.

23-04-2020 EDIT: menggunakan Urm 37 v3.2 dan bukannya halaman lain

Kemudian saya belajar sesuatu yang "menyeronokkan". relay boad akan cuba menghidupkan hab usb, dengan itu menghalang digispark daripada menghidupkan semula dengan betul. Oleh itu, saya memotong wayar kuasa di kabel usb dari kad geganti dan hab usb.

Kemudian saya pasangkan digispark dan kad relay usb ke hub usb 2.0, dan hub ke router.

Agar adil, saya memprogram digispark sebelum menambahkannya ke penghala

Di digispark, saya menambah butang, yang saya kabel antara P1 dan Gnd.

Butang ini saya letakkan, jadi robot akan mengaktifkannya, setelah di garajnya dicas.

saya terpaksa menambah musim bunga untuk pengaktifan, untuk mendapatkan pertunangan yang baik.

Langkah 3: Langkah 3: Perisian

Fail mengandungi program idea arduino untuk digispark.

Ia diletakkan di root / LawnSelector.

Fail ini memerlukan beberapa lib digark, seperti digiCDC dan papan digispark yang ditambahkan pada idea arduino.

Kemudian terdapat fail / root / GrassCtr / *.

Ini adalah fail yang benar-benar berfungsi.

Kreds1 menukar relay ke kawasan1

Kreds2 menukar relay ke kawasan2

KredsStatus meminta geganti USB, kawasan apa yang aktif

23-04-2020 EDIT: Gunakan UltraSoundSeriel dan bukannya baca digispark.

BacaDigiSpark, membaca berita setiap hari selasa.. Tunggu. Membaca keadaan input digispark

GrassCtl melakukan pemikiran.

Inilah yang dilakukannya.

Sekiranya robot berada di IN selama lebih dari 10 jam, ia memutuskan bahawa robot akan masuk pada waktu malam, dan ini mengaktifkan flipflop, yang menjadikannya dimulakan di setiap kawasan setiap kali kedua. Sebabnya ialah, robot saya bermula dengan memotong seluruh bahagian tepi, dan dengan cara ini, ia memotong tepi setiap hari.

Kemudian setelah robot dipotong, sensor akan memberitahu bahawa robot sudah habis.

Setiap kali robot kembali untuk mengecas bateri (didefinisikan sebagai lebih dari 20 minit) kawasan tersebut akan ditukar ke kawasan lain.

harap maklum. Perisian ini adalah kekacauan yang dahsyat, tetapi ia berfungsi, seterusnya dan seterusnya

Langkah 4: Langkah 4: Mengaktifkan Perisian

Untuk menjalankan perisian, kita perlu melakukan sesuatu.

Saya menambahkannya ke cronJob

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

ke fail

/ etc / crontabs / root

Kemudian, untuk menghidupkan cronjobs, saya lakukan

/etc/init.d/cron aktifkan

Seboleh-bolehnya saya tahu, robot sekarang akan berubah antara memulakan kawasan memotong 1 atau 2, dan akan mengubah apa yang dipotong setiap kali dalam pengisian bateri.

Dan ya, sekarang ia semakin bertambah

Disyorkan: