Агуулгын хүснэгт:
- Алхам 1: Анхааруулга: Үүнийг гэртээ болгоомжтой хийх хэрэгтэй
- Алхам 2: бүрэлдэхүүн хэсгүүд
- Алхам 6: Pi -ийн хаяг
- Алхам 7: Төлөвлөгөө
- Алхам 8: Биеийн тамираар хичээллэх
- Алхам 9: Raspberry Pi -г автоматаар эхлүүлэх
- Алхам 10: Houeston, бидэнд асуудал гарлаа … DC Motors нь ижил загвар биш юм
- Алхам 11: [TCP]: Яагаад Tcp болон Shell -ийг хамгаалдаггүй вэ? TCP гэж юу вэ?
- Алхам 12: [TCP]: Үйлчлүүлэгч хийцгээе
- Алхам 13: Манай Tcp коммуудыг туршиж үзээрэй
Видео: Arduino болон Raspberry Pi ашиглан интернетийн хяналттай видео дамжуулах роботыг бүтээгээрэй: 15 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:00
Би бол @RedPhantom (LiquidCrystalDisplay / Itay гэх), Израилийн 14 настай оюутан бөгөөд Макс Шейн ахлах сургууль, шинжлэх ухаан, математикийн дунд сургуульд сурч байна. Би хүн бүрээс суралцах, хуваалцах зорилгоор энэхүү төслийг хийж байна!
Та магадгүй дотроо бодож байсан байх: хмм … Би бол геик … Тэгээд хүүхдүүд маань намайг тэдэнтэй хамт төсөл хийхийг хүсдэг … Тэр робот бүтээхийг хүссэн. Тэр бяцхан гөлөг шиг хувцаслахыг хүсчээ. Амралтын өдрийн сайхан төсөл байна!
Raspberry Pi нь хэрэглээ болгонд төгс төгөлдөр юм: өнөөдөр бид энэхүү микро компьютерийн робот хийх чадварыг илчлэх болно. Энэхүү робот нь:
- Raspberry Pi -тай ижил WiFi сүлжээнд холбогдсон дурын компьютерийг ашиглан LAN (WiFi) сүлжээгээр жолоодож, жолоодож байгаарай.
- Raspberry Pi камерын модулийг ашиглан видеог шууд дамжуулаарай
- Arduino ашиглан мэдрэгчийн өгөгдлийг илгээх
Энэхүү сайхан гэрлийн төсөлд юу хэрэгтэй байгааг олж мэдэхийн тулд дараагийн алхамыг (анхааруулга) уншсаны дараа хүссэн хэсэг: бүрэлдэхүүн хэсгүүдийн алхамыг уншина уу.
Энд GitHub репо байна: GITHUB REPO BY BY
Төслийн сайтыг энд оруулав: ТӨСЛИЙН САЙТЫН НАЙДВАР
Алхам 1: Анхааруулга: Үүнийг гэртээ болгоомжтой хийх хэрэгтэй
АНХААРУУЛГА:
ЭНЭ ХЭРЭГЛЭГЧИЙН ЗАХИАЛАГЧ ЦАХИЛГААН ХӨДӨЛГӨӨНИЙ ЦАХИЛГААН ТОНОГ ТӨХӨӨРӨМЖИЙН ҮНДСЭН ҮЙЛ АЖИЛЛАГААНЫ ТАНД хангалттай мэдлэгтэй. Хэрэв та анхаарал халамж тавьдаггүй бөгөөд энэхүү зааварчилгааг дагаагүй бол та цахилгаан тоног төхөөрөмжийг гэмтээж, өөрийгөө шатааж, гал түймэр үүсгэж болно. Хэрэв танд энэ гарын авлагад шаардагдах мэдлэг байхгүй бол (гагнах, электроникийн үндэс), үүнийг мэддэг хүнтэй хамт хийж гүйцэтгээрэй. Баярлалаа.
ЭНЭ ЗААВАР ТӨЛӨВЛӨГӨӨЧИЙН ЗОХИОЛЧ ӨӨРИЙГӨӨ ХАРИУЦЛАГА ХАРИУЦЛАГА, ХӨДӨЛМӨР, ГИШҮҮДИЙГ ХӨДӨЛГӨӨНИЙГ ӨӨРӨӨС ХААНА. Нийтлэг мэдрэмжийг ашиглах
Алхам 2: бүрэлдэхүүн хэсгүүд
Гагнуурын төмрийг дулаацуулахаасаа өмнө бид юуг холбох ёстой талаар нарийвчлан судлах хэрэгтэй. Би робот дотор зарим хэсэг нь хаана байрлаж байгааг дүрсэлсэн энэхүү энгийн хүснэгтийг (MS Paint намайг хэзээ ч орхидоггүй) хийсэн.
Зургийг бүтээсэн тул та томруулж, нарийвчлалтай харж, текстийг унших боломжтой.
Алхам 6: Pi -ийн хаяг
Ардуино төлөвлөгөөний дагуу Пи -тэй ярьдаг. Пи компьютертай ярьдаг, энэ бүхэн хэрхэн ажилладаг вэ?
Холболтыг эхлүүлэх дарааллыг авч үзье.
- Raspberry Pi эхэлж байна
- Arduino эхэлнэ
- Raspberry Pi нь TCP клиентийг эхлүүлдэг. Энэ нь LED хаягаар IP хаягаа хаядаг.
- Raspberry Pi нь Serial Communications үйлчилгээг эхлүүлж, Arduino руу холбогддог
Тиймээс бид зарим төрлийн харилцаа холбоог бий болгосон.
Компьютер Raspberry Pi Arduino
Би Arduino/Raspberry Pi протоколыг бичихийн тулд Raspberry Pi болон Python -той ярьдаг програм бичихдээ Visual Basic. NET (Microsoft Visual Studio 2013 Community) -ийг ашигласан.
Pi IP хаягаа мэдэхийн тулд та үүнийг HDMI дэлгэцтэй холбож, Shell руу нэвтэрч командыг бичихэд л хангалттай.
хостын нэр
Алхам 7: Төлөвлөгөө
Пи -ийн IP хаягтай болсны дараа бид SSH -ийг оруулах болно (SSH бол Secure Shell - бид алсын зайнаас Линукс бүрхүүлд холбогддог) бөгөөд Серверийн IP хаягийг харуулсан файл бичих болно. Пи, эхлүүлэхдээ үүнийг хийх бөгөөд сонсож буй портоо бичих болно. Энд би кодоос хэдхэн жишээ өгөх болно, гэхдээ үүнийг энэ алхам болон миний үүсгэсэн GitHub салбараас татаж авах боломжтой. Энэ тухай дараа дэлгэрэнгүй.
Энэ нь иймэрхүү байдлаар ажилладаг:
- RPi эхэлнэ.
- RPi нь Tcp програмыг өөрийн дотоод IP болон зориулалтын порт дээр эхлүүлдэг.
- RPI нь видеог цацаж эхэлдэг
- RPI унтардаг.
Алхам 8: Биеийн тамираар хичээллэх
Одоо бид бүх зүйлийг бие бялдрын хувьд эхлүүлэхэд бэлэн байна. Хэрэв та 1 -р алхамыг уншиж амжаагүй бол (анхааруулах текст ба лиценз) үргэлжлүүлэхээсээ өмнө уншина уу. Би учирсан хохирлыг хариуцахгүй. Хэрэв эргэлзээтэй байгаа бол энэ роботыг зомбины апокалипсис биш л бол цэргийн зориулалтаар ашиглах ёсгүй. Тэгээд ч гэсэн эрүүл ухаанаа ашигла.
Унших жагсаалтаас зааварчилгааг уншихыг зөвлөж байна.
Холболтын схемийг "Холболтууд" алхамаас татаж авна уу.
Мотор
Таны худалдаж авсан мотор иймэрхүү харагдаж магадгүй, хэрэв байхгүй бол зүгээр юм: хэрэв тэд зөвхөн хоёр утастай бол (ихэнх тохиолдолд хар ба улаан) энэ нь ажиллах ёстой. Үйлдлийн хүчдэл ба гүйдлийг харахын тулд мэдээллийн хуудсыг онлайнаар хайна уу. Коммент хэсэгт асуулт асууж болно. Би тэднийг үргэлж уншдаг.
H-BRIDGE
Би өмнө нь H-Bridge-тэй ажиллаж байгаагүй. Би жаахан googled хийж, HB -ийн зарчмуудыг тайлбарлах сайн заавар оллоо. Та мөн тэндээс харж болно (Унших жагсаалтын алхамыг үзнэ үү) мөн өөрийнхөөрөө холбогдож болно. Би нэг их тайлбарлахгүй. Та тэндээс уншиж, энэ хэлхээний талаар хэрэгтэй бүх зүйлийг мэдэж болно.
LED
Энэхүү бяцхан гэрлийн чийдэн нь бараг ямар ч гүйдэл, 3V-5V 4mA-18mA хүчдэл шаарддаггүй тул логик хүчдэлээс ажиллах боломжтой. Нэмэлт.
ARDUINO
Arduino нь Raspberry Pi -ээс цуваа холболтоор дохио, команд авах болно. Raspberry Pi нь GPIO -ээр аналог утгыг гаргах боломжгүй тул бид Arduino -ийг мотороо хянахад ашигладаг.
Алхам 9: Raspberry Pi -г автоматаар эхлүүлэх
Raspberry Pi -ийг асаах бүртээ хэрэглэгчийн нэр, нууц үгээ оруулах шаардлагатай болдог. Бид үүнийг хийхийг хүсэхгүй байна, учир нь заримдаа бид гарыг Pi-тэй холбож чаддаггүй тул бид энэ зааврын дагуу эдгээр алхмуудыг дагаж Pi-г бэлтгэдэг програмыг автоматаар эхлүүлнэ. Хэрэв энэ нь гогцоонд орох юм бол бид үүнийг тасалдуулахын тулд үргэлж Ctrl+C товчийг дарж болно.
- sudo crontab -e
- Дараа нь бид энэ файлыг cron менежер дээр автоматаар эхлүүлэх командыг оруулах болно.
Бид роботыг ажиллуулахын тулд бүх төрлийн питон скриптүүдийг эхлүүлэх тушаал өгөх pibot.sh файлыг дуудах болно. Үүнийг авч үзье: (Бид програмыг GPIO -д нэвтрэх боломжийг олгохын тулд Python хөшиг бүхий sudo хийдэг)
raspivid -o --t 0 -hf -w 640 -h 360 -fps 25 | cvlc -vvv урсгал: /// dev/stdin --sout '#rtp {sdp = rtsp: //: 8554}': demux = h264
Пи -ийн хажуугийн бүх ажлыг хийдэг кодыг дуудна_startup.sh.
Энэ бол бүх зүйлийг ажиллуулдаг энгийн бүрхүүлийн скрипт юм.
Алхам 10: Houeston, бидэнд асуудал гарлаа … DC Motors нь ижил загвар биш юм
Би H-Bridge-ийг аль хэдийн туршиж үзсэн бөгөөд энэ нь сайн ажилладаг, гэхдээ би онлайнаар захиалсан робот платформоос авсан мотороо залгахад эдгээр хоёр мотор өөр өөр хурдтайгаар эргэж, өөр өөр чимээ гаргадаг. Би тохируулагчийг мотор дээр 100% өөрчилсөн. Тэд хоёулаа хамгийн дээд хэмжээндээ ажиллаж чадаагүй.
Эдгээр нь хоёр өөр хөдөлгүүр юм шиг санагдаж байна. Нэг нь илүү том эргүүлэх чадвартай бөгөөд энэ нь ийм төрлийн роботод тохиромжтой боловч нөгөө нь роботыг хөдөлгөж чадахгүй байв. Тиймээс энэ нь тойрог болж хувирдаг.
Энэ үед надад байгаа зүйл бол Arduino дээрх цуврал програм маш сайн ажилладаг боловч компьютер дээрх Tcp сервер, Pi дээрх Tcp клиент хараахан кодлогдоогүй байна. Би тэмцээнд оролцохын тулд энэ бичлэгийг бөглөх ёстой. Би юу хийх вэ?
- Нэгдүгээрт, би моторын хүчдэлийг гурав дахин нэмэгдүүлдэг. Мэдээллийн хүснэгтэд 3V, 6V нь тэднийг хөдөлгөөгүй гэж бичжээ. Тэгвэл 9В байна. Би цайны батерейг гүйдлийг хоёр дахин нэмэгдүүлэхийн тулд зэрэгцээ холбосон бөгөөд хүчдэл хэвээр байна.
- Надад тавцан дээрх бэхэлгээнд тохирсон өөр мотор байна уу? Магадгүй тэд ижил төстэй загвартай бол би харж магадгүй юм.
- Хэрэв шоколад фенийг үнэхээр цохисон бол би Сервосыг сольж болно.
Сургууль эхэллээ. Би юу хийхээ харах хэрэгтэй болно.
Тэмдэглэл: Яагаад дэлхий дээр би тулгарч буй асуудлаа энд бичдэг вэ? Тиймээс хэрэв та туршлага багатай, ижил асуудалтай бол юу хийхээ мэдэх болно.
Шийдэл:
Тиймээс би дахин нэг шалгалт өгсөн. Би хурдны ялгааг Arduino код дээр тохируулсан.
ТАЙЛБАР: Моторууд өөр өөр хурдтайгаар эргэлдэж магадгүй юм. Arduino ноорог дээрх утгыг өөрчлөх.
Алхам 11: [TCP]: Яагаад Tcp болон Shell -ийг хамгаалдаггүй вэ? TCP гэж юу вэ?
Надад PC -ийн хувьд SSH биш харин Tcp -ийг ашигладаг хоёр тайлбар бий. - Pi харилцаа холбоо.
- Нэгдүгээрт, SSH (Secure Shell, тайлбарыг үзнэ үү) нь алсын компьютерээс командыг ажиллуулах зорилготой юм. Пи -д бидний хүссэн мэдээллээр хариулах нь илүү хэцүү байдаг, учир нь өгөгдөлд дүн шинжилгээ хийх цорын ганц сонголт бол хатуу, уйтгартай утас боловсруулах явдал юм.
- Хоёрдугаарт, бид SSH -ийг хэрхэн ашиглахаа аль хэдийн мэддэг болсон бөгөөд энэ гарын авлагад төхөөрөмжүүдийн хооронд харилцах илүү олон аргыг сурахыг хүсч байна.
TCP буюу дамжуулалтыг хянах протокол нь Интернет протокол цуглуулгын үндсэн протокол юм. Энэ нь Интернет протокол (IP) -г нөхсөн анхны сүлжээний хэрэгжилтээс үүсэлтэй юм. Тиймээс бүхэл бүтэн багцыг ихэвчлэн TCP/IP гэж нэрлэдэг. TCP нь IP сүлжээгээр холбогдож буй хостууд дээр ажилладаг програмуудын хооронд октетын урсгалыг найдвартай, дараалсан, алдаатай шалгаж өгдөг.
(Википедиагаас)
Тиймээс TCP давуу талууд нь:
- Аюулгүй
- Хурдан
- Сүлжээний аль ч хэсэгт ажилладаг
- Мэдээллийн зөв дамжуулалтыг шалгах аргуудыг өгдөг
- Урсгалын хяналт: өгөгдөл илгээгч нь үйлчлүүлэгчийг бүртгүүлэх, боловсруулахын тулд өгөгдлийг хэт хурдан илгээдэг тохиолдолд хамгаалалттай байдаг.
Мөн сул талууд нь:
- TCP-д та (Сүлжээний бүх төхөөрөмжид өгөгдөл илгээх) болон олон дамжуулалтыг дамжуулах боломжгүй (ижил боловч ялгаа нь төхөөрөмж тус бүрт сервер шиг дамжуулах боломжийг олгодог).
- Таны програм болон үйлдлийн системийн номын сангийн алдаа (TCP холболтыг өөрсдөө удирддаг, таны чиглүүлэгч нь хоёр [эсвэл түүнээс дээш] төхөөрөмжийг холбохоос өөр юу ч хийдэггүй)
Яагаад UDP ашиглаж болохгүй гэж та асууж магадгүй юм. TCP -ээс ялгаатай нь UDP нь илүү ихийг илгээхээсээ өмнө таны үйлчлүүлэгч өгөгдлийг авдаг эсэхийг баталгаажуулдаггүй. Имэйл илгээх, үйлчлүүлэгч хүлээж авсан эсэхийг мэдэхгүй байх гэх мэт. Нэмж дурдахад UDP нь аюулгүй байдал багатай байдаг. Дэлгэрэнгүй мэдээлэл авахыг хүсвэл Stack Exchange Super User -ийн энэхүү бичлэгийг уншина уу
Энэ нийтлэл нь сайн бөгөөд санал болгож байна.
Алхам 12: [TCP]: Үйлчлүүлэгч хийцгээе
Серверээс өгөгдөл хүлээн авдаг үйлчлүүлэгч (манай тохиолдолд Raspberry Pi) (манай компьютер бол бидний хувьд) өгөгдлийг Pi руу илгээх (Arduino дээр хийгдэх цуваа командууд) болон өгөгдлийг буцааж хүлээн авах болно. болон шууд Arduino -аас ирсэн санал хүсэлт. Хавсаргасан схемд гурвын хоорондын хамаарлыг харуулав.
Python Wiki TcpCommunication нийтлэл нь угсарсан сокет модулийг ашиглан хэдэн мөр код ашиглан ийм харилцаа холбоо тогтоох нь маш энгийн болохыг харуулж байна. Бид PC дээр програмтай байх бөгөөд Pi дээр өөр програмтай болно.
Бид тасалдалтай ажиллах болно. Тэдгээрийн талаархи тайлбар хэсгээс илүү ихийг олж мэдэх. Буферийн талаар эндээс уншаарай. Одоо бид байгаа өгөгдлийг data = s.recv (BUFFER_SIZE) ашиглан уншиж болно, гэхдээ хоосон хазуулснаар бидний тодорхойлсон хэдэн тэмдэгт байх болно. Бид тасалдал ашиглаж болох уу? Өөр нэг асуулт: буфер хоосон байх уу эсвэл сервер илүү их мэдээлэл илгээхийг хүлээх үү, энэ тохиолдолд сервер/үйлчлүүлэгч завсарлага авах онцгой тохиолдол гаргах уу?
Үүнийг нэг нэгээр нь шийдье. Үүнийг хийхээс өмнө би ашигласан TCP болон UDP портуудыг жагсаасан Википедиагийн энэ нийтлэлийг хайж үзсэн. Түргэн харсны дараа би энэ төслийг Үйлдлийн систем болон дотоод үйлчилгээнд ашигладаггүй тул 12298 порт дээр холбогдох болно гэж шийдсэн.
Алхам 13: Манай Tcp коммуудыг туршиж үзээрэй
Бид тасалдал ашиглаж болох эсэхийг мэдэхийн тулд Python командын мөрийг ашиглан энгийн үйлчлүүлэгч болон сервер үүсгэе. Би үүнийг дараах алхмуудаар хийх болно.
- Хөшигний портоор дамжуулан Tcp -ээр дамжуулан текст илгээдэг програмыг эхлүүлнэ үү
- Бүх текстийг циклээр уншиж, дэлгэц дээр хэвлэдэг өөр програмыг (зэрэгцээ) эхлүүлээрэй.
Зөвхөн програмын хэсгүүдийг харуулах болно. Бүх програмууд Python 3. дээр ажилладаг бөгөөд эдгээр бүх програмууд нь компьютерын хэрэглэгчийн гарнаас цуваа тушаалыг Pi ашиглан Arduino руу илгээх явдал юм.
- SBcontrolPC.py - PC дээр ажиллуулах. Дотоод хаяг болон заасан порт дээр TCP холболтыг эхлүүлдэг (би 12298 портыг ашигладаг, яагаад өмнөх алхамыг үзнэ үү)
- SBcontrolPi.py - Pi дээр ажиллуулах. Буферээ хагас секунд тутамд (0.5 секунд) уншдаг. Видео дамжуулалт гэх мэт зүйлсийг удирдах бүрхүүлийн скриптийг эхлүүлнэ.
Зөвлөмж болгож буй:
Bluetooth хяналттай роботыг өөрийн GUI ашиглан хий: 5 алхам
Bluetooth удирдлагатай роботыг өөрийн GUI ашиглан бүтээгээрэй: Сайн байцгаана уу найзуудаа өнөөдөр гар урлалын төсөл хийснийхээ дараа би гайхалтай arduino төсөлтэй ирлээ. Энэ нь гадна талаасаа хуучин ойлголт мэт харагдаж байна, гэхдээ залуусыг хүлээж байгаарай, би энэ төслийг өвөрмөц болгож чадсан юм. Энд юугаараа онцлог вэ? Тиймээс энд би танд үзүүлэх гэж байна
Сонирхогчдын радио APRS RX Зөвхөн IGate-ийг Raspberry Pi болон RTL-SDR Dongle ашиглан хагас цагаас бага хугацаанд бүтээгээрэй: 5 алхам
Сонирхогчдын радио APRS RX Зөвхөн IGate-ийг Raspberry Pi болон RTL-SDR Dongle ашиглан хагас цагаас бага хугацаанд бүтээгээрэй: Энэ нь нэлээд хуучирсан тул зарим хэсэг нь буруу, хуучирсан байгааг анхаарна уу. Таны засварлах шаардлагатай файлууд өөрчлөгдсөн байна. Би танд зургийн хамгийн сүүлийн хувилбарыг өгөх линкийг шинэчилсэн (үүнийг задлахын тулд 7-zip ашиглана уу) гэхдээ бүрэн заавар авахын тулд
Raspberry Pi Wifi хяналттай видео дамжуулах робот: 8 алхам (зурагтай)
Raspberry Pi Wifi хяналттай видео дамжуулах робот: Камертай сэрүүн робот бүтээх талаар бодож байсан уу? За, та зөв газартаа хүрлээ, би энэ роботыг хэрхэн яаж бүтээх талаар алхам алхамаар зааж өгөх болно. Үүний тусламжтайгаар та шөнийн цагаар хий үзэгдлийг хянаж, үзэх боломжтой
Батлер роботыг өөрөө бүтээгээрэй !!! - Хичээл, гэрэл зураг, видео: 58 алхам (зурагтай)
Батлер роботыг өөрөө бүтээгээрэй !!! - Хичээл, гэрэл зураг, видео: EDIT: Миний төслүүдийн талаархи дэлгэрэнгүй мэдээллийг миний шинэ вэбсайтаас үзнэ үү: narobo.com Мөн робот техник, мехатроник, тусгай эффект төсөл/бүтээгдэхүүний талаар зөвлөгөө өгдөг. Дэлгэрэнгүй мэдээлэл авахыг хүсвэл narobo.com вэбсайтыг үзнэ үү
Маш жижиг робот бүтээгээрэй: Дэлхийн хамгийн жижиг дугуйт роботыг бариултай болгоорой.: 9 алхам (зурагтай)
Маш жижиг робот бүтээгээрэй: Дэлхийн хамгийн жижиг дугуйт роботыг бариултай болгоорой. Жижиг зүйлийг авах, хөдөлгөх чадвартай 1/20 шоо инч хэмжээтэй робот бүтээгээрэй. Үүнийг Picaxe микроконтроллер хянадаг. Яг энэ мөчид энэ бол бариултай дэлхийн хамгийн жижиг дугуйтай робот байж магадгүй гэж би бодож байна. Энэ нь эргэлзээгүй болно