
Мазмуну:
2025 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2025-01-23 14:53


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 Программасын тууралаңыз
байкап туруңуз. дагы келет.
Сунушталууда:
Raspberry Pi DIY Smart Doorbell, бул адамдарды, унааларды жана башкаларды аныктай алат: 5 кадам

Raspberry Pi DIY Smart Doorbell, бул адамдарды, унааларды жана башкаларды аныктай алат: Бул steampunk-тематикалык дизайн үйдүн жардамчысы жана биздин көп бөлмөлүү аудио тутумубуз менен интеграцияланып, биздин DIY акылдуу үйүбүздүн калган бөлүгү менен байланышат. Nest же башка атаандаштардын бири) Мен өзүбүздүн акылдуу эшигибизди жасадык
Кредиттик/дебеттик картага уюлдук телефонуңузду кантип айландыруу керек: 5 кадам

Кредиттик/дебеттик картага уюлдук телефонуңузду кантип айлантуу керек: RFID чипи бар кошумча кредиттик/дебеттик карта үчүн оңой режим (б.а. Paypass). Бул ыкманы колдонуу менен, сиз RFID чипин запастагы Paypass жөндөмдүү картаңыздан таап, чыгарып, уюлдук телефонуңузга жайгаштыра аласыз. Бул сизге өзүңүздү көрсөтүүгө мүмкүнчүлүк берет
Айлана -чөйрөнүн аудио үн ченегичтери: 5 кадам

Айлана -чөйрөнүн аудио үнүн өлчөөчү метр: Менин долбоорум - бул светодиод менен көрсөтүлгөн үн өлчөгүч. Бул электрлүү микрофонду, оп -ампти жана LM3914 LED Driver ICди колдонот. Сенсордун айланасы канчалык күчтүү болсо, LM3914 ошончолук көп LED күйгүзүлөт. Бул абдан жөнөкөй жана
Nintendo Controller компьютердеги клавиатура катары картага түштү: 5 кадам

Nintendo контроллери компьютердеги клавиатура катары картага түшүрүлгөн: Nintendo оюн контроллериндеги көзөмөлдү компьютердин клавиатурасы катары кантип картага түшүрүү
Акысыз электроника, тамак -аш жана айлана -чөйрөгө жардам берүү: 11 кадам

Бекер электроника, тамак -аш жана айлана -чөйрөгө жардам берүү: Макул, сизде акча аз, сизге бекер нерселер керек, же сиз бекер электроника жабдууларын жана тамак -ашын алгыңыз келет. Ошентип, биз сизге кантип көрсөтөбүз Акысыз нерселерди тазалоо үчүн! Бир аз машыгуу менен таштандыларды тазалоо жана кайра иштетүү жашоо болуп калышы мүмкүн