Wi-Fi ilə paltaryuyan maşınlar - onları almağa dəyərmi? ESP8266 əsasında WiFi nəzarəti ilə büdcə möcüzə gəmisi etmək Maşını wifi vasitəsilə idarə etmək

Hər kəsin öz modası və hobbi var və buna görə də bəzən həmfikir insanları tapmaq, onların möhür kolleksiyasını və ya müəyyən bir oyunda bacarıqlarını qiymətləndirmək çox xoşdur. Burada bu və ya digər hobbiyə həsr olunmuş müxtəlif videolar toplanmışdır. İstər şahmat, istər tennis, istərsə də damınızın altında vəhşi, əhliləşdirilməmiş heyvanlar toplamağı xoşlamağınızın fərqi yoxdur - burada siz tapa biləcəksiniz yaxşı video- bəyəndiyiniz məzmun.


Hal-hazırda, bir hobbi həm onlayn, həm də reallıqda çox populyardır, əsasən yalnız qadın cinsi üçün əlçatandır - kamerada makiyaj. Adi izləyicilərə elə gələcək ki, bu videolarda qızlar sadəcə olaraq makiyaj edib dağdan böyük iş görürlər. Amma əslində bu gözəllər illər boyu inkişaf etdirdikləri sənətkarlıq bacarıqlarını nümayiş etdirirlər. Bu cür videolarda siz məsləhətlər, həyat hiylələri tapa bilərsiniz, həmçinin həyatınızda qaçırdığınız bir çox faydalı məqamları vurğulaya bilərsiniz. Qıvrımlı modellər və onların stilistləri sizə saç düzümünüzə uyğun olaraq hansı göz kölgəsini və hansı paltarı seçəcəyinizi söyləyəcəklər. Bir çox qadınlar üçün bu, demək olar ki, bütün həyatlarını həsr etdikləri bir növ hobbi halına gəldi.


Makiyajdan əlavə, bir çox qızlar sadəcə alış-veriş etməyi sevirlər və buna görə də tez-tez yerli ticarət mərkəzinə səyahətlərini YouTube-a yükləyirlər, burada paltar yığır və onları nəzərdən keçirməyə və sınamağa başlayırlar. Belə qızlar tez-tez evdə müxtəlif paltarların bütün kolleksiyasını toplayırlar və bəziləri hətta öz mağazalarını aça və bir neçə il paltar sata bilər - onların çoxlu paltarları var. Və onların bütün böyük kolleksiyası kamera obyektivinə düşür. Düzünü desəm, bir çox qızın buna niyə baxdığını başa düşmürəm, amma belə məzmun üçün müştərilər var və bu bir az qəribədir.


Bununla belə, təkcə qızlar dəb və üslubu sevir və öz hobbiləri ilə seçilmirlər, kişilərin də mahiyyətcə heyrətləndirə biləcək çoxlu müxtəlif hobbiləri var. Bəziləri mağazalardan salfet yığır, bəziləri idman simulyatorları oynamağı xoşlayır (bu, özlüyündə vəhşidir), amma günlərini qadınları incitməklə, öpüşlərini yığmaqla keçirənlər də var. Eyni zamanda, onlar öz macəralarını videokamerada lentə almağa üstünlük verirlər, daha sonra isə videoları ictimaiyyətə nümayiş etdirərək özlərini möhtəşəm maçolar edirlər.


Hər halda, dünyamızda o qədər müxtəlif hobbilər, fəaliyyətlər, işlər var və bunların hamısı müəyyən bir təfəkkürə malik olan insanı bir müddət, bəlkə də ömrünün sonuna qədər ovsunlaya bilər. Onların sayı o qədər çoxdur ki, onları sadalamağın mənası yoxdur. Bu səhifədə siz yüzlərlə müxtəlif video tapa bilərsiniz və onlar hər şey haqqında ola bilər. Axı nə qədər insan var, bu qədər hobbi var. Hər bir insan özü üçün xüsusi bir zaman qatili icad edə bilər. Bəzən insan beyninin darıxdığı zaman nələrə qadir olduğuna belə təəccüblənə bilərsiniz, lakin öz hobbiləriniz kiməsə qəribə gəlirsə, təəccüblənməyin.


İnsanların sevimli işlə məşğul olduqlarına baxın, baş verənlərin axmaqlığına gülün və ya həyatınızda tətbiq tapa biləcəyiniz bəzi şeyləri özünüz üçün vurğulayın. Burada, əsasən, əyləncə, məlumat və şık video məzmun toplanır.

RC avtomobili WiFi avtomobili ola bilərmi?

RC avtomobili yaxşıdır, lakin ucuz RC avtomobilləri məhdud diapazona malikdir və yalnız dəstdə verilmiş xüsusi uzaqdan idarəetmə ilə idarə olunur.

Mən təxminən 30 dollara çevik asma və yolsuzluq şinləri olan RC Jeep 4x4 aldım. Maşınla oynadıqdan sonra qərara gəldim ki, onu təkmilləşdirmək olar Wi-Fi yardımı və Android. Bir az vaxt sərf etdikdən sonra lövhəni maşından tamamilə çıxardım. Mən bu lövhədə gərginlikləri ölçdüm və motor idarəetmə sistemini hazırladım Arduino yardımı. Orijinal idarəetmə sistemi sürəti idarə etmək üçün PWM-dən istifadə etmir. Avtomobil maneələri çox aşağı sürətdə və nəticədə çox yavaş sürmək üçün nəzərdə tutulub. Mənim dövrəm PWM-dən istifadə edir.

Artıq bir neçə aydır ki, Arduino-dan istifadə edirəm. Mən həmçinin WiFi ilə sınaqdan keçirmək üçün Duemilanoe Arduino üçün asynclabs WiFi Sheild aldım. Arduino IDE-də quraşdırılan bir kitabxana ilə gəlir. WiFi istifadə edərək motorları və hərəkət istiqamətini idarə etməyə imkan verən proqram hazırlaya bildim.

Köməyi ilə Visual Studio Avtomobil serverinə qoşulan və ona əmrlər verən proqram pəncərəsi hazırlamışam. Sonra bir neçə cəhddən sonra avtomobili idarə etmək üçün akselerometrdən istifadə edən Android proqramı yazdım.

Alətlər və elementlər

Bu, bu layihədə istifadə olunan alətlərin və əşyaların ümumi siyahısıdır. Eagle sənədləri dəqiq məlumat verir spesifikasiyalar istifadə olunan komponentlər.

Multimetr
Lehimleme dəmir
Lehim
Tornavidalar
Lövhənin aşındırılması üçün həll
Folqa fiberglas
Kəlbətinlər
Arduino
AsyncLabs WiFi Qalxanı
RJ45 bağlayıcılar
H-bridge motor sürücü
Kondansatörler

Motor Sürücü

Eagle istifadə edərək mən bu sxemi dizayn etdim və etdim çap dövrə lövhəsi onun üçün. Arduino üçün motor sürücüsü və güc tənzimləyicisi kimi fəaliyyət göstərir.
Bu, əsas və sükan mühərriklərini və Arduino-nu gücləndirmək üçün standart 7.2V batareyadan istifadə etməyə imkan verir.

Bu dövrə mühərrikləri idarə etmək üçün SN754410 ikili inteqrasiya olunmuş H-körpü sürücüsündən istifadə edir. Sürücü idarəetmə sancaqları AsyncLabs WiFi Sheild-ə qoşulan RJ45 kabelinə qoşulub.

Arduino Qalxanı

Eagle-da SparkFun kitabxanasından istifadə edərək, sancaqları WiFi Shield-ə ötürəcək və RJ45 konnektoru və 2 vida terminalı vasitəsilə motor sürücüsünə qoşulacaq Arduino Qalxanı dizayn etdim.

RJ45 pin pinout çox vacibdir. Bağlantıda bir səhv gözlənilməz nəticələrə səbəb ola bilər və lövhəni yenidən düzəltməli olacaqsınız.

PCB aşındırma

Bu mövzu dəfələrlə işıqlandırılıb və mən bu barədə ətraflı məlumat verməyəcəyəm.
Mən istifadə edirəm və mənə uyğundur və təcrübə ilə əla nəticələr verir.

Lövhəni korpusa bağlamaq üçün Velcro istifadə edilmişdir. Bəxtim gətirdi, çünki... Mənim avtomobilim boru çərçivəsinin altında elektronika üçün çox yer var idi.
Motor sürücü lövhəsi ilə qalan lövhələr arasındakı əlaqənin şəklini çəkməyi unutmuşam, lakin o, yaxşı oturdu və korpusda çox yer tutmadı.

Proqram

Kodum kifayət qədər effektiv olmaya bilər, lakin işləyir.

Yazı makinası

AsynLabs Wifi Sheild ilə aldığım SocketServer nümunəsi əsasında CarServer qura bildim.
haqqında məlumat daxil etməlisiniz simsiz şəbəkə Arduino koduna. Maşın işə salındıqdan sonra marşrutlaşdırıcı ilə əlaqə yaratmaq üçün ona 15-45 saniyə vaxt verin. WiFi Qalxanındakı qırmızı LED əlaqənin qurulduğunu bildirir.

Mən bu proqramı C# və MS Visual Studio 2008 proqramlarından istifadə edərək hazırladım. Gözəl pəncərə düzəltdim və avtomobili oxlarla idarə etmək olar.

Niyə maşını telefonunuzdan idarə etmirsiniz?

Bu fikir DroidX-i aldıqdan təxminən bir həftə sonra ağlıma gəldi. Təcrübə etməyə başladım və istifadə etdim Android SDK. Nəzarət üçün akselerometrdən istifadə edən oxşar proqramlar tapdım. Bu ərizələrə baxaraq özümü yazdım.

Arduino kodunda göstərilən IP və portu yapışdırın. Telefonunuzu üfüqi vəziyyətdə saxlayın. Sonra irəli getmək üçün onu sizdən uzağa, geriyə getmək üçün özünüzə tərəf əyin. Telefonunuzu sükan çarxı kimi istifadə edin.
Bu mənim ilk böyük Android tətbiqimdir. Hələ də bəzi səhvləri var, lakin əsasən yaxşı işləyir.

Həyətinizdə WiFi ilə 4x4 avtomobilinizi sürün!

Bu layihəni yaratmaqda çox yaxşı vaxt keçirdim. Bir çox bilik və yeni bacarıqlar qazandım və indi mənim telefonumdan idarə oluna bilən 4x4 avtomobilim var.

Mənə ön şüşənin arxasına kamera quraşdırmaq lazımdır ki, hara sürdüyümü görə bilim. Onunla olmalıdır aşağı enerji istehlakı, həm də videonu özü ötür. (Düşünürəm ki, Arduino bunu idarə edə bilər).

Radioelementlərin siyahısı Təyinat Növ Nominal Miqdar Qeyd Saxla Mənim bloknotumIC1 C1, C2 U1 T1 R1 3 ABŞ dolları
Motor Sürücü
ÇipSN7544101 Notepad üçün
Xətti tənzimləyici5 V1 Notepad üçün
Bipolyar tranzistor

2N3904

1 Notepad üçün
Elektrolitik kondansatör 2 Notepad üçün
Bağlayıcı2 çıxış7 Notepad üçün
Bağlayıcı8 sancaq1 Notepad üçün
Arduino Qalxanı
Arduino lövhəsi 1 Notepad üçün
Bipolyar tranzistor

2N3904

1 Notepad üçün
Rezistor 1 Notepad üçün
Trimmer rezistoru 1 Notepad üçün
Bağlayıcı2 çıxış2

ESP8266-nı necə götürmək, bir az yapışqan və köpük əlavə etmək və uşaqlara (və böyüklərə) çox əylənmək haqqında ətraflı təlimat.

Təlimat aşağıdakı hissələrdən ibarətdir:







Lövhənin təsviri.

Gəminin beyni Aliexpress-də satın alınan lövhədir. Bu inkişaf lövhəsi ESP8266-12 WiFi modulu ilə işə başlamaq üçün əlverişli yoldur.
Modulun özü lövhəyə lehimlənir və modulun bütün sancaqları pin bağlayıcılarına yönləndirilir. Qırmızı LED-lər cərəyanı məhdudlaşdıran rezistorlar vasitəsilə 6 pinlə lehimlənir. Bir RGB LED daha üç sancağa lehimlənir.
3,3 V stabilizator da var, modulun naqil rezistorları naqillidir, ADC girişində fotorezistor var və modulu proqramlaşdırma rejiminə keçirmək üçün keçid var.
USART çıxışları ayrıca göstərilir və Rx və Tx işarələri tərsinə çevrilir.
3 batareya üçün batareya bölməsi modulun güc girişinə lehimlənmişdir. Və modul artıq nəzarəti altında olan test proqramı ilə yüklənir, xatırladığım qədər yeni bir giriş nöqtəsi yaradılır. Bu giriş nöqtəsinə qoşulmaqla siz lövhədəki LED-lərin işıqlandırılmasına nəzarət edə bilərsiniz. Əgər bu ilk dəfədirsə, deməli bu, sadəcə bir növ sehrdir.

Qayığın tikintisinə dair məlumat.

Ağıllı ev tikmək üçün ləng özünütərbiyə prosesində bu lövhə bir il əvvəl alınıb (alış-verişin edildiyi mağaza indi bağlıdır). Bununla birlikdə mən daha iki çılpaq ESP8266-12 modulu götürdüm və onlardan hələ də uğurla işləyən iki termometr/rütubətölçən işlətmək üçün istifadə etdim.

Sonra onları MajorDoMo ilə birləşdirməyə çalışdım - açıq və pulsuz sistem idarəetmə Ağıllı Ev. Amma nədənsə bu iş alınmadı, ona görə də hələlik ondan imtina etdim.
Yayın ortasında rast gəldim. Belə çıxır ki, esp8266 istənilən Arduino kimi proqramlaşdırıla bilər!!! Və esp8266 üçün Arduino kitabxanaları artıq bütün hallar üçün daşınmışdır.
Mənim üçün esp8266-nın mənimsənilməsində keyfiyyətcə yeni mərhələ gəldi...
Kitabxana nümunələri ilə çox oynadım və praktik tətbiqi ilə bir şey etmək istədim.
Uşaqlar üçün kənd gölməçəsi üçün özüyeriyən qayıq tikmək qərarına gəldim və sadə deyil, istənilən smartfondan idarə oluna bilən qayıq!


İstifadə olunan materiallar

Binanın tikinti materialı üçün şkafda toz toplayan polistirol köpük parçaları seçilmişdir.


İstifadə olunan mühərriklər DVD pleyerindən kommutator mühərrikləridir. Gəmini idarə etmək üçün iki mühərrikli sürücüdən istifadə etmək qərara alındı ​​- sol/sağ mühərrikin sürətini azaldaraq, onu sola və ya sağa döndərməyə məcbur edirik.


Pervaneler qalay parçasından hazırlanır.
Toxuculuq iynələri (arvadımın əlindən alınıb) pervane vallarına mükəmməl uyğun gəlir.


Pervane şaftı ilə motor arasında etibarlı və çevik əlaqə yaratmaq üçün müxtəlif diametrli istiliklə büzüşən borular yaxşı uyğun gəlir.


Sadə bir ballpoint qələmin gövdəsi pervane mili üçün sürüşmə rulmanı kimi istifadə olunur.


Əjdaha yapışdırıcısı və isti yapışqan tabancası da faydalı idi.


Mühərrikləri idarə etmək üçün köhnə anakartdan lehimlənmiş iki sahə effektli tranzistor tapıldı.
Enerji mənbəyi oflayn olaraq alınmış 18650 batareya idi.
Mənə həmçinin enerji təchizatı üçün kiçik keçid açarı, bir neçə rezistor və bütün elektrik enerjisini bir-birinə qoşmaq üçün çörək lövhəsi lazım idi.




Gəmi etmək

Köpüyü kəsmək üçün tez bir düzəliş ThermoElectroCutter bir çubuq, iki uzun vint və bir parça nazik teldən ibarət yığılmışdır. Nikromlu teldən istifadə etmək daha yaxşıdır, amma məndə yox idi (və bu məqsədlə sovet teli ilə sarılmış rezistoru qırmaq istəmədim) ona görə də nazik polad teldən istifadə etdim.
Bu doğaçlama maşın vasitəsilə təchiz edilmişdir. Hər ikisi buradakı rəylər sayəsində alınıb.
Ümumilikdə, bu fotoşəkildə maraqlanan bir göz əvvəllər Muska-da nəzərdən keçirilmiş 10-a qədər məhsul tapa bilər.


DC-DC çeviricisinin çıxışında gərginliyi tənzimləyərək, eksperimental olaraq köpükün asanlıqla və təbii şəkildə kəsildiyi ThermoElectroCutter telinin belə istiləşməsini qurmaq lazımdır.
Nəticədə, sonrakı montaj üçün əlverişli olan daha çox və ya daha az hətta köpük plastik parçaları alırıq.
Qayığın gövdəsi üçün Əjdaha yapışqanı ilə yapışdırılmış iki ən böyük parça istifadə edilmişdir.


Pervaneler bir neçə əməliyyatda istehsal olunur:

Kalaydan bir kvadrat boşluq kəsin (məndə 20 * 20 mm var)
- mərkəzi tapmaq üçün diaqonal küncləri risklərlə birləşdirin


- mərkəzdə bir çuxur qazın (diametri 3,5 mm)
- uyğun vint və qayka ilə sıxın (M 3*20)
- vidayı qazma çuxurunda tutaraq, aşağı sürətlə, uyğun iti əşya ilə bir dairə çəkin (cızın).
- bərabər dairəni kəsin


- dairəni mövcud diaqonal işarələr boyunca radiusun 2/3 hissəsi ilə kəsin və bir açı ilə bükün (30-45 dərəcə)

Sonra bir toxuculuq iynəsini götürürük. Toxuculuq iynəsindən bir qədər böyük diametrli 25-30 mm-lik istiliklə büzülə bilən boruları kəsin. Boru isinənə və toxuculuq iynəsini möhkəm bağlayana qədər qaz ocağının (və ya elektrikin) kiçik alovu üzərində istilik büzüşməsi ilə toxuculuq iynəsini çevirin.
Sonra, daha böyük diametrli bir boru parçasını kəsdik və s. növbəti boru mühərrik dişlisinə qoyulana qədər. T.K. Ötürücü mühərrik şaftına kifayət qədər möhkəm oturmuşsa, o, fırlanma anı pervane şaftına yaxşı ötürəcək.
İstilik büzülməsinin son hissəsini götürürük və eyni zamanda pervane şaftına və mühərrikə qoyuruq.
İstilik büzülməsini qızdırdıqdan sonra yaxşı bir əlaqə əldə edirik.




Mühərrikləri gövdəyə quraşdırmağın vaxtı gəldi.
Bir qazma istifadə edərək, pervane şaftları üçün gövdədə iki deşik qazırıq. Aşağı tərəfdən biz düz rulmanlar daxil edirik.


Mühərrikləri təyin edirik və ən az fırlanma müqavimətinə görə şaftı fırladaraq, hər bir mühərrik üçün optimal mövqe tapırıq.
Nəticəni isti yapışqan ilə səxavətlə təmin edirik.




Biz pervaneleri taxırıq və onları isti yapışqan ilə bağlayırıq. Yapışqanın daha yaxşı yapışması üçün toxuculuq iynələrinin ucları tel kəsicilərlə bir qədər əyilir və mərkəzə yaxın vintlərin səthləri kobud vəziyyətə qədər cızılır.

Diaqrama uyğun olaraq hər şeyi bağlayırıq və lehimləyirik.


Batareyalardan enerji bir keçid açarı vasitəsilə verilir və sonra mühərriklərə və 3,3 V xətti stabilizatora gedir.Hər bir mühərrikin ikinci terminalı sahə effektli tranzistor vasitəsilə mənfi enerji təchizatı ilə birləşdirilir. ESP8266-nın çıxışından PWM sahə effektli tranzistorun qapısına müxtəlif impuls iş dövrlərinin siqnalını verməklə biz motorun fırlanma sürətini tənzimləyəcəyik.
Təchizat gərginliyi də batareyanın vəziyyətini izləmək üçün ESP8266 modulunun ADC girişinə rezistiv bölücü vasitəsilə verilir.
Bağlayıcı rezistorları olan güc tranzistorları, güc açarı, stabilizator, batareyanın gərginliyini ölçmək üçün rezistiv bölücü - hər şey çörək lövhəsinə yerləşdirilir. ESP8266 modulu, batareya və motor terminalları olan bir lövhə də ona lehimlənmişdir.
USB-TTL adapteri modula qoşulub.


Beləliklə, demək olar ki, hazır olan gəmiyə həyat qığılcımı nəfəs almağa hər şey hazırdır...


Proqramlaşdırma

Arduino IDE-ni necə quraşdırmaq və onu ESP8266 dəstəyi ilə təmin etmək yuxarıda olduqca yaxşı təsvir edilmişdir.

Qayığa nəzarət etmək üçün biz ESP8266-da giriş nöqtəsi yaradacaq və veb server quracağıq. Smartfonunuzu giriş nöqtəsinə qoşaraq və brauzerdə server ünvanını (192.168.4.1) yazmaqla, gəmimizin göyərtəsində idarəetmə və telemetriya ilə bir səhifə görəcəksiniz.


ESP8266-dakı yükü azaltmaq, nəzarət hərəkətlərinin cavab müddətini azaltmaq və interaktivliyi artırmaq üçün AJAX sorğu texnikasından istifadə etmək qərarına gəldim.

Vikipediyadan çıxarış:

AJAX, Ajax (ˈeɪdʒæks, ingilis dilindən. Asinxron Javascript və XML - “ asinxron JavaScript və XML") veb-server ilə brauzer məlumatlarının "fon" mübadiləsini nəzərdə tutan veb tətbiqləri üçün interaktiv istifadəçi interfeyslərinin qurulmasına yanaşmadır. Nəticə etibarı ilə, məlumatların yenilənməsi zamanı veb-səhifə tamamilə yenidən yüklənmir və veb proqramlar daha sürətli və daha rahat olur.

Klassik veb tətbiqi modelində:

Brauzer sorğu yaradır və serverə göndərir.
Cavab olaraq, server tamamilə yeni veb səhifə yaradır və onu brauzerə göndərir və s. Bundan sonra brauzer bütün səhifəni tamamilə yenidən yükləyir.

AJAX istifadə edərkən:
İstifadəçi veb-səhifəyə daxil olur və onun hansısa elementinə klikləyir.
Skript (JavaScript-də) səhifəni yeniləmək üçün hansı məlumatın lazım olduğunu müəyyənləşdirir.
Brauzer serverə müvafiq sorğu göndərir.
Server yalnız sorğunun gəldiyi sənədin hissəsini qaytarır.
Skript alınan məlumatları nəzərə alaraq dəyişikliklər edir (olmadan tam yenidən başladın səhifələr).


İstəklərimin uyğun bir həyata keçirilməsi axtarışında Google-da bir müddət əziyyət çəkdikdən sonra qarşıma çıxdı
orada müvafiq kodu götürdüm

İlkin kod

#include #include ESP8266WebServer server(80); const char* ssid="yourSSID"; const char* password="yourPASSWORD"; String veb saytı, javaScript, XML; imzasız uzun gözləmə000=0UL,wait001=1000UL; int LED=16;const int sliderMAX=10; // Bu, istədiyiniz slayderlərin sayını təyin edir sliderVal=(60),ESPval; void buildWebsite())( buildJavascript(); webSite="\n"; webSite+="\n"; webSite+=" Bu ESP vebsaytıdır ... \n"; webSite+="İş vaxtı = \n"; webSite+= " Siqnal gücü a= \n"; webSite+= Sila ;// Güc WiFi siqnalı vebsayt+="\n"; vebsayt+="

\n"; for(int i=0;i \n"; // bu, webSite+=" kaydırıcısının nümunəsidir \n"; // 1 slayder vebsayt+=" \n"; Vebsayt+=" \n"; Vebsayt+="\n"; Vebsayt+=" \n"; // 2 slayder vebsayt+=" \n"; Vebsayt+=" \n"; Vebsayt+="\n"; Vebsayt+=" \n"; // 3 slayder vebsayt+=" \n"; Vebsayt+=" \n"; Vebsayt+="\n"; Vebsayt+="
RPM = \n"; vebsayt+="Motorlar = *
İstiqamət = \n"; webSite+="Hərəkət =
Düzəliş = \n"; webSite+="Motorlar =
\n"; webSite+="\n"; webSite+="\n"; ) String millis2time())( // millisaniyələri h/m/s-ə çevirmək String Time=""; imzasız uzun ss; bayt mm, hh; ss=millis()/1000; hh=ss/3600; mm=(ss-ss*3600)/60; ss=(ss-ss*3600)-mm*60; if(hhwait000)( buildXML(); gözləyin000 =millis()+1000UL; ) if(millis()>wait001)( wait001=millis()+300; //Hər 300 millisaniyədən bir dəyərləri yeniləyin Trimer = (ESPval*.0015); Serial.print(" Skorost] " ); Serial.print(ESPval); Serial.print(" Povorot "); Serial.print(ESPval); Serial.print(" Trimer "); Serial.print(ESPval); Serial.print(Trimer); əgər ( ESPval > 200)( // Sürət slayderi > 200 olarsa (ESPval > 600) ( // Əgər fırlanma slayderi > 600-dürsə, sola dönün analogWrite(OUT1, ESPval); analogWrite(OUT2, int(ESPval * Povorot*Trimer) )) ; Serial.print(" Le "); Serial.print(ESPval * Povorot*Trimer); ) else if (400 > ESPval)( // Əgər fırlanma slayderi< 400 то поворачиваем на право analogWrite(OUT1, int(ESPval * Povorot)); analogWrite(OUT2, int(ESPval*Trimer)); Serial.print(" Pr "); Serial.print(int(ESPval * Povorot)); } else { // Если слайдер поворота >400 və< 600то едем прямо analogWrite(OUT1, ESPval); analogWrite(OUT2, int(ESPval*Trimer)); Serial.print(" OK "); } } else { // Если слайдер скорости < 200 - выключить моторы analogWrite(OUT1, 0); analogWrite(OUT2, 0); Serial.print(" Stop "); } Serial.print(" Batareya "); Serial.println(Batareya); } }


Kodeksdə kifayət qədər çox izahat var, ümid edirəm hər şey aydın olacaq.
Qayığın mühərrikləri səhifədəki üç sürüşmənin sürüşdürmə yerinin dəyişdirilməsi ilə idarə olunur.
- Birinci sürgü mühərriklərin fırlanma sürətindən (və müvafiq olaraq qayığın sürətindən) məsuldur. Bu kaydırıcının sürüşdürmə yerini 20-dən 100% -ə dəyişdirsəniz, sürüşdürmə ilə əlaqəli ESPval dəyişəninin dəyəri dəyişəcəkdir. Dəyişən dəyər ESP8266-nın OUT1 və OUT2 portlarına yazılır (çıxışları idarəetmə qapılarına gedir) sahə effektli tranzistorlar) və mühərrik sürəti 0-dan maksimuma yüksələcək.
Bu kaydırıcının mövqeləri diapazonunda 0-dan 20% -ə qədər portlara 0 yazılır və mühərriklər dayandırılır.
- İkinci sürgü növbələrə cavabdehdir (ESPval dəyişəni). Onun kaydırıcısı sağ və ya sol vəziyyətdədirsə, müvafiq motorun sürət dəyəri 0,8 dəfə azalacaq (Povorot sabiti). Mühərrik yavaşlayacaq və qayıq düzgün istiqamətə dönəcək.
- Üçüncü sürgü (ESPval və Trimer dəyişənləri) mühərrik xüsusiyyətlərindəki fərqi bərabərləşdirmək üçün lazımdır. Sürgünün yerindən asılı olaraq, mühərriklərdən birini yavaşlatmaq və ya sürətləndirmək olar.

Təəssüf ki, batareyanın gərginliyini ölçmə funksiyasını tamamlamaq mümkün olmadı. Quraşdırma zamanı ADC modulunun girişi yandı (düşünürəm ki, + batareyalara qısaldılmışdı)…
WiFi siqnal gücünün ölçülməsi işləyir, lakin daha dəqiq kalibrləmə tələb olunur.

Sazlama üçün evə qoşulmadan istifadə etdik WiFi şəbəkələri və seriya portuna məlumat verir.


Kodun işçi versiyasında modul ayrıca giriş nöqtəsini qaldırır və çıxışa ehtiyac yoxdur - kodun müvafiq sətirləri şərh olunur.

Eskiz IDE 1.6.12 versiyasında tərtib edilmişdir.

Kodda müxtəlif sonrakı istəkləri həyata keçirmək üçün kifayət qədər boş yaddaş qalıb.

Kimin koda konstruktiv əlavələri/düzəlişləri varsa, zəhmət olmasa şərhlərdə danışın.


Üzgüçülük

Əvvəlcə vanna otağı sahəsində sınaq sınaqları keçirildi, nəticələrinə əsasən aşağıdakı təkmilləşdirmələr edildi:
- Enerji təchizatındakı 4 AA batareya qeyd-şərtsiz 2 ədəd 18650 batareya ilə əvəz edilmişdir
- sürət və fırlanma tənzimləmələrinə mühərriklərdən birinin işlənməsi əlavə edildi
- pərvanələrin hündürlüyü artırıldı

Sonra daçaya növbəti səfərdə gəmi təntənəli şəkildə yüksək suda üzməyə yola salındı.


Sahə sınaqları göstərdi ki, növbəti versiya tələb edir:
- əlavə etməklə WiFi modulunun siqnal gücünü artırın xarici antena
- pervanelərin diametrini artırın (yaxud Aliexpress-də pərvanələri sifariş edin)
- dönərkən mühərrikin əyləcini 20%-dən 40-50%-ə qədər artırmaq
- axını yaxşılaşdırmaq üçün bədəni dəyişdirin
- mühərrikləri fırçasız olanlarla əvəz edin
- servo ilə idarə olunan sükanı düzəldin
- FPV-də vidalayın
- gecə üzgüçülükləri üçün LED işıqlandırma əlavə edin
- göyərtədə atəşfəşanlıq quraşdırın və onları gölməçənin ortasına qoyun
- ürəyin nə istəyirsə...

Amma bu təkmilləşdirmələr yeni mövsümdə həyata keçirilə bilər.

Beləliklə, bir az vaxt və pulla istənilən orta sənətkar öz radio ilə idarə olunan oyuncağını yığa bilər.

Proqramda əhəmiyyətli dəyişiklik etmədən, eyni sadə şəkildə uzun qış axşamlarında mənzil ətrafında əyləncəli gəzintilər üçün idarə olunan avtomobil (və ya bir neçə avtomobil) yarada bilərsiniz.

Bu əsər hər kəsi yaradıcılığa ruhlandırsa, şad olaram.

Almağı planlaşdırır +87 Sevimlilərə əlavə et Bəyəndim rəy +131 +257

Beləliklə, biz iki reversiv (hər iki istiqamətdə fırlanma) mühərriki idarə edəcəyik: əsas və sükan. Onları 3,7 V batareyadan gücləndirəcəyik, ancaq nəzarətçinin enerji təchizatını əlaqələndirsəniz və ya ayrı bir batareya ilə təşkil etsəniz, prinsipcə, 12 V-a qədər enerji verə bilərsiniz.

Güc hissəsində biz ən sadə miniatür pilləli motor sürücüsü l9110s istifadə edirik və ya siz L293\8 əsasında qurulmuş montajdan və ya tapdığınız hər hansı eyni dərəcədə güclü olandan istifadə edə bilərsiniz. Ümumiyyətlə, şəkildəki hər şeyi mən çəkmişəm.

Layihə üçün komponentləri Aliexpress-də əldə edə bilərsiniz:

İstifadə olunan WiFi nəzarətçi mənim sevimli NodeMCU 0.9 ESP8266-dır, lakin siz daha kiçik WeMos D1 mini-dən də istifadə edə bilərsiniz.

Batareyanı mikro-USB vasitəsilə doldurmaq olar, bundan sonra o, birbaşa motor sürücüsünü və 5V gücləndirici çevirici vasitəsilə WiFi nəzarətçini gücləndirir.

Proqram kodu:

#daxildir
const char* ssid = "Wi-Fi şəbəkənizin adı";
const char* parol = "şəbəkə parolunuz";
int up = 2; //diskret çıxışların sayı
int aşağı = 14;
int sol = 4;
int sağ = 12;
// Serverin nümunəsini yaradın
// arqument kimi dinləmək üçün portu təyin edin
WiFiServer server(80);
quraşdırmanı ləğv edin () (
Serial.begin(9600);
gecikmə(10);
//çıxışların hazırlanması
pinMode (yuxarı, OUTPUT);
digitalWrite (yuxarı, 0);
pinMode (aşağı, OUTPUT);
digitalWrite (aşağı, 0);
pinMode (solda, OUTPUT);
digitalWrite(solda, 0);
pinMode (sağda, OUTPUT);
digitalWrite (sağda, 0);

// WiFi şəbəkəsinə qoşulun
Serial.println();
Serial.println();
Serial.print("Qoşulur");
Serial.println(ssid);

WiFi.begin(ssid, parol);

(WiFi.status() != WL_CONNECTED) (
gecikmə (500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi qoşulub");

//Serveri işə salın
server.begin();
Serial.println("Server başladı");
//port monitoruna IP ünvanını çıxarın
Serial.println(WiFi.localIP());
}
boş döngə () (
//müştərinin bağlı olub olmadığını yoxlayın
WiFiClient müştəri = server.available();
əgər (!müştəri) (
qayıtmaq;
}

//Müştəri bəzi məlumatları göndərənə qədər gözləyin
Serial.println("yeni müştəri");
while(!client.available())(
gecikmə(1);
}

//Sorunun birinci sətirinin oxunması
String req = client.readStringUntil("\r");
Serial.println(tələb);
client.flush();

// əmrin işlənməsi
əgər (req.indexOf("/gpio/up") != -1)(
digitalWrite(yuxarı, 1);
digitalWrite (aşağı, 0);
gecikmə (1000);
digitalWrite (yuxarı, 0);
digitalWrite (aşağı, 0);
}
başqa əgər (req.indexOf("/gpio/down") != -1)(
digitalWrite (yuxarı, 0);
digitalWrite(aşağı, 1);
gecikmə (1000);
digitalWrite (yuxarı, 0);
digitalWrite (aşağı, 0);
}
başqa əgər (req.indexOf("/gpio/left") != -1)(
digitalWrite(yuxarı, 1);
digitalWrite (aşağı, 0);
digitalWrite (solda, 1);
digitalWrite (sağda, 0);
gecikmə (1000);
digitalWrite (yuxarı, 0);
digitalWrite (aşağı, 0);
digitalWrite(solda, 0);
digitalWrite (sağda, 0);
}
else if (req.indexOf("/gpio/right") != -1)(
digitalWrite(yuxarı, 1);
digitalWrite (aşağı, 0);
digitalWrite(solda, 0);
digitalWrite (sağda, 1);
gecikmə (1000);
digitalWrite (yuxarı, 0);
digitalWrite (aşağı, 0);
digitalWrite(solda, 0);
digitalWrite (sağda, 0);
}
başqa(
Serial.println("etibarsız sorğu");
}

Client.flush();
// cavaba hazırlaşır
String s = "HTTP/1.1 200 OK\r\nMəzmun Növü: text/html\r\n\r\n\r\n\r\n ";

S += "
U.P.
";
s += "
SOL     ";
s += "SAĞ
";
s += "
AŞAĞI";
s += "\n";
// Cavabın müştəriyə göndərilməsi
müştəri.çap(lar);
gecikmə(1);
Serial.println("Müştəri əlaqəsi kəsildi");
) Proqram Arduino IDE-də yazılmışdır. Arduino IDE-ni NodeMCU 0.9 ESP8266 nəzarətçisi ilə işləmək üçün necə konfiqurasiya etmək olar, linkə baxın. Proqramı nəzarətçiyə yüklədikdən sonra port monitoru WiFi marşrutlaşdırıcınıza qoşulduqdan sonra lövhənin alacağı IP ünvanını oxuya bilər. Kompüterinizin brauzerində sizə lazımdır ünvan çubuğu bu ünvanı daxil edin və nəzarətçi proqramının yaradacağı səhifəyə keçin. Bu belə görünəcək:

AŞAĞI

YUKARI linkinə kliklədiyiniz zaman avtomobil 1 saniyə irəliləyib dayanacaq. AŞAĞI düyməsini basdığınız zaman avtomobil 1 saniyə geriyə gedəcək. SOL - fırlanma mühərriki təkərləri sola çevirəcək və avtomobil 1 saniyə sola sürəcək. SAĞ düyməsini basdığınız zaman eyni şey sağa gedir.

Bütün bu sistem yalnız konfiqurasiya edilmiş WiFi giriş nöqtəsi (WiFi router) ilə işləyəcək, lakin gələcəkdə mən özüm giriş nöqtəsini təşkil edəcək və WEB server funksiyasını yerinə yetirəcək NodeMCU 0.9 ESP8266 nəzarətçisi ilə oynamaqda maraqlıyam. yəni brauzerdən onun IP-sinə daxil olarkən biz idarəetmə elementləri olan veb səhifəni görəcəyik. Onların avtonom WiFi şəbəkəsi vasitəsilə belə bir nəzarətçidən digərinə məlumat ötürülməsini təşkil etmək də maraqlıdır.

Bu yaxınlarda oğlumun radio ilə idarə olunan oyuncaq cipini təkmilləşdirmək qərarına gəldim. Radio idarəetmə demək olar ki, dərhal işləməyi dayandırdı. Yarılmanın göstərdiyi kimi, maşında quraşdırılmış mühərriklər çox zəif və yöndəmsiz idi. Mən dərhal əsas mühərriki daha böyük ölçü və güclə əvəz etdim. Bunun üçün mən üzərində dairəvi mişar quraşdırılmış qravüraçı kimi işləməli oldum (başqa necə kifayət qədər yer ayıra bilərdim?). Radioqəbuledicinin lövhəsi də atılıb.

Sonra iki dəfə düşünmədən konsepsiya seçildi uzaqdan nəzarət Mars roverinin nümunəsi ilə: əmr verilir və cip onu yerinə yetirir və dayanır. Bütün bunlar 2,5 yaşlı oğlumun standart pultla mühərrikləri idarə edə biləcəyi qeyri-müəyyənlikdən irəli gəlir. Əminəm ki, o, maşının davranışından asılı olmayaraq uzun müddət idarəediciləri saxlayacaq. Və Mars roverinin prinsipi: 20 sm sürmək və dayanmaq olduqca uyğundur. Üstəlik, mən uzun müddətdir ki, ən azı ən sadə formada sınamağı xəyal edirdim. Bu tətbiqdə biz 20 sm deyil, müəyyən bir müddətə - 1 saniyəyə səyahət edəcəyik.

Beləliklə, biz iki reversiv (hər iki istiqamətdə fırlanma) mühərriki idarə edəcəyik: əsas və sükan. Onları 3,7 V batareyadan gücləndirəcəyik, ancaq nəzarətçinin enerji təchizatını əlaqələndirsəniz və ya ayrı bir batareya ilə təşkil etsəniz, prinsipcə, 12 V-a qədər enerji verə bilərsiniz.

Güc hissəsində biz ən sadə miniatürdən və ya tapdığınız eyni dərəcədə güclü olandan istifadə edirik. Ümumiyyətlə, şəkildəki hər şeyi mən çəkmişəm.

Batareya mikro USB vasitəsilə doldurula bilər, bundan sonra o, birbaşa motor sürücüsünü və Wi-Fi nəzarətçini vasitəsilə.

Proqram kodu:

#daxildir
const char* ssid = "Wi-Fi şəbəkənizin adı";
const char* parol = "şəbəkə parolunuz";
int up = 2; //diskret çıxışların sayı
int aşağı = 14;
int sol = 4;
int sağ = 12;
// Serverin nümunəsini yaradın
// arqument kimi dinləmək üçün portu təyin edin
WiFiServer server(80);
quraşdırmanı ləğv edin () (
Serial.begin(9600);
gecikmə(10);
//çıxışların hazırlanması
pinMode (yuxarı, OUTPUT);
digitalWrite (yuxarı, 0);
pinMode (aşağı, OUTPUT);
digitalWrite (aşağı, 0);
pinMode (solda, OUTPUT);
digitalWrite(solda, 0);
pinMode (sağda, OUTPUT);
digitalWrite (sağda, 0);

// WiFi şəbəkəsinə qoşulun
Serial.println();
Serial.println();
Serial.print("Qoşulur");
Serial.println(ssid);

WiFi.begin(ssid, parol);

(WiFi.status() != WL_CONNECTED) (
gecikmə (500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi qoşulub");

//Serveri işə salın
server.begin();
Serial.println("Server başladı");
//port monitoruna IP ünvanını çıxarın
Serial.println(WiFi.localIP());
}
boş döngə () (
//müştərinin bağlı olub olmadığını yoxlayın
WiFiClient müştəri = server.available();
əgər (!müştəri) (
qayıtmaq;
}

//Müştəri bəzi məlumatları göndərənə qədər gözləyin
Serial.println("yeni müştəri");
while(!client.available())(
gecikmə(1);
}

//Sorunun birinci sətirinin oxunması
String req = client.readStringUntil("\r");
Serial.println(tələb);
client.flush();

// əmrin işlənməsi
əgər (req.indexOf("/gpio/up") != -1)(
digitalWrite(yuxarı, 1);
digitalWrite (aşağı, 0);
gecikmə (1000);
digitalWrite (yuxarı, 0);
digitalWrite (aşağı, 0);
}
başqa əgər (req.indexOf("/gpio/down") != -1)(
digitalWrite (yuxarı, 0);
digitalWrite(aşağı, 1);
gecikmə (1000);
digitalWrite (yuxarı, 0);
digitalWrite (aşağı, 0);
}
başqa əgər (req.indexOf("/gpio/left") != -1)(
digitalWrite(yuxarı, 1);
digitalWrite (aşağı, 0);
digitalWrite (solda, 1);
digitalWrite (sağda, 0);
gecikmə (1000);
digitalWrite (yuxarı, 0);
digitalWrite (aşağı, 0);
digitalWrite(solda, 0);
digitalWrite (sağda, 0);
}
else if (req.indexOf("/gpio/right") != -1)(
digitalWrite(yuxarı, 1);
digitalWrite (aşağı, 0);
digitalWrite(solda, 0);
digitalWrite (sağda, 1);
gecikmə (1000);
digitalWrite (yuxarı, 0);
digitalWrite (aşağı, 0);
digitalWrite(solda, 0);
digitalWrite (sağda, 0);
}
başqa(
Serial.println("etibarsız sorğu");
}

Client.flush();
// cavaba hazırlaşır
String s = "HTTP/1.1 200 OK\r\nMəzmun Növü: text/html\r\n\r\n\r\n\r\n ";

S += "
U.P.
";
s += "
SOL     ";
s += "SAĞ
";
s += "
AŞAĞI";
s += "\n";
// Cavabın müştəriyə göndərilməsi
müştəri.çap(lar);
gecikmə(1);
Serial.println("Müştəri əlaqəsi kəsildi");
) Proqram Arduino IDE-də yazılmışdır. nəzarətçi NodeMCU 0.9 ESP8266, özü də bir giriş nöqtəsini təşkil edəcək və WEB server funksiyasını yerinə yetirəcək, yəni bir brauzerdən onun IP-sinə daxil olduqda, idarəetmə vasitələri ilə veb səhifəni görəcəyik. Onların avtonom WiFi şəbəkəsi vasitəsilə belə bir nəzarətçidən digərinə məlumat ötürülməsini təşkil etmək də maraqlıdır.