Мазмуну:

Localino Roomba IRobotту көзөмөлдөйт, Айлана -чөйрөнү картага алат жана көзөмөлгө алат.: 4 кадам
Localino Roomba IRobotту көзөмөлдөйт, Айлана -чөйрөнү картага алат жана көзөмөлгө алат.: 4 кадам

Video: Localino Roomba IRobotту көзөмөлдөйт, Айлана -чөйрөнү картага алат жана көзөмөлгө алат.: 4 кадам

Video: Localino Roomba IRobotту көзөмөлдөйт, Айлана -чөйрөнү картага алат жана көзөмөлгө алат.: 4 кадам
Video: Отзыв и обзор iRobot Roomba 780. Робот-пылесос от iRobot. 2024, Июль
Anonim
Image
Image

WiFi-UART көпүрөсүн куруу үчүн, бул github репоун текшере аласыз:

Бул баштоо үчүн жакшы негиз бар. Көрсөтмөнү жакшы окуп жатканыңызга ишениңиз, анткени Roomba VCC кубаттоо учурунда 20 Вольтко чейин жогорулайт! Эгер сиз ESP8266ди 20Вга чейин иштеген жана 3.3V чейин ылдый айландыруучу тиешелүү акча алмаштыргычсыз кошсоңуз, анда сиз ESPти бузуп аласыз.

Ошондой эле 5V UART логикалык деңгээлин Roombaдан ESP тарабынан колдонулган 3.3Vга которуу үчүн деңгээлди алмаштыргычты (мисалы, чыңалуу бөлүштүргүчүн) колдонууну тактаңыз.

Дагы бир маанилүү детал - бул конвертерде 300 мА болушу керек, бирок андан азыраак же андан көп (Бак конвертеринин өзүнө жараша). Ал жакта дагы көп нерселерди жасай ала турган нерселер бар, бирок алар Roombанын бузулушуна алып келет, анткени алар баштоо учурунда өтө көп токту тартып алышат. Биз Pololu 3.3V, 300mA Step-Down Voltage Regulator (D24V3F3) жөн эле кемчиликсиз иштээрин билдик. 500mA / 600mA болгон альтернативдүү версиялар Roomba UART интерфейсинин бузулушуна алып келди. Негизинен Roomba UART интерфейси аркылуу буйруктарга эмес, кнопкаларды басканда жооп берген. Бул болгондон кийин, биз Roomba батарейкасын алып салып, WiFi-UART көпүрөсү тиркелип, Roombаны муздак түрдө кайра баштоого туура келди. Бирок, D24V3F3 гана жакшы иштеген.

Ошол техникалык деталдан тышкары, сиз кодго кошумча буйруктарды кошушуңуз керек, аны Roomba ачык интерфейсинин спецификациясында таба аласыз. Сиз бөлмөнүн реакциясын каалаган бардык буйруктарды кошушуңуз керек (мисалы, артка, алдыга, ылдамдык ж. Б.).

arduino IDE ичиндеги мисалдар:

void goForward () {char c = {137, 0x00, 0xc8, 0x80, 0x00}; // 0x00c8 == 200 Serial.print (c); }

void goBackward () {char c = {137, 0xff, 0x38, 0x80, 0x00}; // 0xff38 == -200 Serial.print (c); }

void spinLeft () {char c = {137, 0x00, 0xc8, 0x00, 0x01}; Serial.print (c); }

жараксыз spinRight () {char c = {137, 0x00, 0xc8, 0xff, 0xff}; Serial.print (c); }

эгер сиз луа менен жазсаңыз, анда ал бир аз башкача көрүнөт, СОЛго буруунун мисалы мындай болмок:

эгер (_GET.pin == "LEFT") анда басып чыгарыңыз ('\ 137'); --VOR

tmr.delay (100);

басып чыгаруу ('\ 00'); -Ылдамдык = 200 = 0x00C8 -> 0 жана 200

tmr.delay (100);

басып чыгаруу ('\ 200'); - Ылдамдык

tmr.delay (100);

басып чыгаруу ('\ 254'); - Радиус = 500 = 0x01F4 = 0x01 0xF4 = 1 244

tmr.delay (100);

басып чыгаруу ('\ 12'); - Бурул

аяктоо

Roomba үчүн ачык интерфейстин сүрөттөмөсүн тууралашыңыз керек. Кеминде эки ачык интерфейстин спецификациясы бар.

Roomba 5xx сериясы үчүн:

Roomba 6xx сериясы үчүн:

WiFi-UART көпүрөсүн куруп, буйруктарды текшергенден кийин, сиз чоң кадам жасадыңыз. Бул видео колдонмо жана ыкма иштээрин көрсөтүп турат. Биз бир аз жалкоо болдук, веб -интерфейсте алдыга, артка, ылдамдыкка, оңго, солго жана башка сыяктуу башка бардык буйруктар жок, бирок сиз буйруктарды http аркылуу бере аласыз. Кандай болбосун, бул Roomba пультунун ESP8266 жардамы менен жабдыктын жана программалык камсыздоонун оңой бөлүгү менен иштээринин жөн эле көрүнүшү.

Эми сиз Roomba -ны PC тиркемесинен алыстан башкара аласыз, бир гана нерсе - бул имараттын локализациясы. Бул бизге кайтарым байланышты жабуу үчүн керек, анткени биздин максатыбыз роботту белгилүү бир багытка буруу болчу. Муну кылалы.

3 -кадам: Жабык локалдаштыруу системаңызды орнотуңуз

Кайтарым байланышты жабуу үчүн биз локалдаштыруу системасын колдонобуз. Бул үчүн Localino колдонобуз. Localino системасы "анкерлерден" жана "тегдерден" турат. Закырлар бөлмө ичиндеги белгиленген жерлерге жайгаштырылган жана кыймылдуу тегдин ордун табышат (ал Roombaга жайгаштырылган). Жайгашкан жерди иштетүү PC тиркемесинде жүргүзүлөт. Бул чоң артыкчылык, анткени сиз дагы Roombаны ошол эле компьютерден башкара аласыз! Localino веб-сайтынан жеткиликтүү бекер булак коду бар, ал python менен жазылган жана тегдин XYZ координаттарын сунуш кылган реалдуу убакыт агымы да бар. Дайындар агымы UDP тармагы аркылуу жеткиликтүү, бирок сиз MQTT же сизге жаккан башка кооз нерселерди кошо аласыз. Эгерде сиз Pythonду билсеңиз, анда сизге жардам берген китепканалар бар.

Бул видеодо Roomba локализациясы көрсөтүлгөн. Андыктан бизде бөлмөдө 4 казык орнотулган, алар Roombанын 3D жайгашуусуна мүмкүндүк берет. Жалпысынан алганда, биз 3 анкерлерди гана талап кылабыз, анткени Roomba Z огунда кыймылдабайт, ошондуктан 2D жетиштүү болмок. Бирок, казыктар AC негизги сайгычтарынын бийиктигинде жайгашкандыктан (бул жерден 30 смдей бийикте), 2D орнотуу позицияны баалоодо аз ката кетирет. Ошентип, биз 4 анкерге ээ болууну жана 3Dде локализациялоону чечтик.

Эми биз Roomba позициясын алгандыктан, биздин кийинки кадамыбыз ошол эле колдонмодон Roomba башкаруу болуп саналат. Идея - чындыкты колдонуу жана робот үчүн кемчиликсиз бир тазалоо жолун баалоо. Localino колдонуу менен биз кайтарым байланышты жаба алабыз жана роботту PC тиркемесинен башкара алабыз.

Орнотуу эскертүүлөрү

Localino казыктарын бөлмө ичинде ар кандай x, y позициясына жана үчөөнү бирдей z позициясына жайгаштырыңыз. Төрт казыктын бирин бөлмөдө z бийиктигине коюңуз. Roomba менен жылып турган Localino тегинен жакшы камтуу бар экенин текшериңиз.

Бардык казыктарда уникалдуу анкер ID бар, ал Localino штрих -кодунда көрсөтүлөт жана аны "localino конфигурациясы" куралы менен окууга болот.

X, Y, Z позицияларына жана казык IDлерине көңүл буруңуз. Бул Localino Processor программалык камсыздоо үчүн талап кылынат жана "LocalinoProcessor" папкасындагы "localino.ini" файлына ылайыкташтырылышы керек.

Закырлар Z менен өйдө же ылдый көрсөтүшү керек (XY аймагы жабылганда), бирок жабылган аймактын багытына эмес. Анкерлер металл же башка зымсыз сигналды бузуучу материал менен жабылбашы керек. Эгерде бул мүмкүн болбосо, анда кандайдыр бир материал менен якордун ортосунда белгилүү бир аба боштук болушу керек.

… дагы келет.

4 -кадам: Python Программасын тууралаңыз

байкап туруңуз. дагы келет.

Сунушталууда: