Satura rādītājs:
- 1. solis: Brīdinājums: esiet piesardzīgs, izmēģinot to mājās
- 2. darbība: sastāvdaļas
- 6. darbība: adrese Pi
- 7. solis: plāns
- 8. solis: fiziskā aktivitāte
- 9. solis: Raspberry Pi automātiskā palaišana
- 10. solis: Houeston, mums ir radusies problēma … DC Motors nav tas pats modelis
- 11. darbība: [TCP]: Kāpēc Tcp un nav drošs apvalks? Kas ir TCP?
- 12. solis: [TCP]: izveidosim klientu
- 13. darbība. Izmēģiniet mūsu Tcp Comms
Video: Izveidojiet savu interneta kontrolēto video straumēšanas robotu, izmantojot Arduino un Raspberry Pi: 15 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
Es esmu @RedPhantom (pazīstams arī kā LiquidCrystalDisplay / Itay), 14 gadus vecs students no Izraēlas, kurš mācās Maksa Šeina jaunākās zinātnes un matemātikas vidusskolā. Es veidoju šo projektu, lai ikviens varētu mācīties un dalīties!
Jūs, iespējams, domājāt pie sevis: hmm … es esmu džeks … Un mani bērni vēlas, lai es kopā ar viņiem izstrādātu projektu … Viņš gribēja izveidot robotu. Viņa gribēja to saģērbt kā mazu kucēnu. Tas ir labs nedēļas nogales projekts!
Raspberry Pi ir lieliski piemērots ikvienam lietojumam: šodien mēs atklāsim šī mikrodatora spējas izveidot robotu. Šis robots var:
- Brauciet apkārt un vadieties, izmantojot LAN (WiFi), izmantojot jebkuru datoru, kas savienots ar to pašu WiFi tīklu kā Raspberry Pi.
- Straumējiet video tiešraidē, izmantojot Raspberry Pi kameras moduli
- Nosūtiet sensora datus, izmantojot Arduino
Lai redzētu, kas jums nepieciešams šim jaukajam gaismas projektam, vienkārši izlasiet nākamo soli (brīdinājumi) un pēc tam soli Wanted: Components.
Šeit ir GitHub repo: GITHUB REPO BY ME
Šeit ir projekta vietne: PROJEKTA VIETA
1. solis: Brīdinājums: esiet piesardzīgs, izmēģinot to mājās
UZMANĪBU:
ŠĀ PAMĀCĪBAS AUTORS PIEŅEM, ka jums ir pietiekami daudz zināšanu par elektrību un ELEKTRISKĀS IERĪCES PAMATDARBĪBU. JA NEESAT UZMANĪGS UN IEVĒROJIET ŠO PAMĀCĪBAS NORĀDĪJUMUS, KAS JŪS VARAT: Bojāt ELEKTRONISKO IEKĀRTU, PADEDZINĀT VAI IZRAISĪT UGUNI. Lūdzu, esiet piesardzīgs un izmantojiet veselo saprātu. Ja jums nav šajā apmācībā nepieciešamo zināšanu (lodēšana, elektronikas pamati), lūdzu, veiciet to kopā ar indivīdu. Paldies.
ŠĪ INSTRUKCIJAS AUTORS NOŅEM SEVI ATBILDĪBU PAR KAITĒJUMIEM, KAS RADĪTI VAI ZAUDĒTI ĪPAŠUMI VAI FIZISKI. LIETOT KOPĒJO SAPRĀTU
2. darbība: sastāvdaļas
Pirms mēs uzkarsējam lodāmuru, mums ir jāpārbauda, kas ar ko jāpievieno. Es izveidoju šo vienkāršo diagrammu (MS Paint nekad mani nepievilina), kurā aprakstīts, kur noteiktā daļa atrodas robotā.
Attēls ir veidots tā, lai jūs varētu tuvināt un redzēt pilnā izšķirtspējā un lasīt tekstu.
6. darbība: adrese Pi
Arduino sarunājas ar Pi saskaņā ar plānu. Un Pi runā ar datoru, tad kā tas viss darbojas?
Apskatīsim mūsu savienojuma uzsākšanas secību:
- Sākas Raspberry Pi
- Arduino sākas
- Raspberry Pi palaiž TCP klientu. Tas izgaismo savu IP adresi, izmantojot LED.
- Raspberry Pi sāk seriālo sakaru pakalpojumu un izveido savienojumu ar Arduino
Tāpēc mēs esam izveidojuši sava veida saziņu:
Dators Raspberry Pi Arduino
Esmu izmantojis Visual Basic. NET (Microsoft Visual Studio 2013 Community), lai uzrakstītu programmu, kas sarunājas ar Raspberry Pi un Python, lai rakstītu Arduino/Raspberry Pi protokolu.
Viss, kas jums jādara, lai uzzinātu savu Pi IP adresi, ir savienot to ar HDMI ekrānu, pieteikties Shell un ierakstīt komandu:
saimniekdatora nosaukums -es
7. solis: plāns
Tagad, kad esam ieguvuši Pi IP adresi, mēs tajā ievadīsim SSH (SSH ir Secure Shell - mēs attālināti izveidojam savienojumu ar Linux apvalku) un uzrakstīsim failu, kas parāda servera IP adresi. Uzsākot, Pi arī to darīs un uzrakstīs portu, kuru tas klausās. Šeit es sniegšu tikai dažus koda piemērus, taču to var lejupielādēt no šīs darbības un no manis izveidotās GitHub filiāles. Sīkāka informācija par to vēlāk.
Tas darbojas šādi:
- RPi sāk darboties.
- RPi sāk Tcp programmu savā vietējā IP un norādītajā ostā.
- RPI sāk straumēt video
- RPI izslēdzas.
8. solis: fiziskā aktivitāte
Tagad mēs esam gatavi sākt visu fiziski veidot. Ja neesat izlasījis 1. darbību (brīdinājuma teksts un licencēšana), lūdzu, pirms turpināt. Es neesmu atbildīgs par nodarīto kaitējumu. Un šaubu gadījumā šo robotu nedrīkst izmantot militāriem mērķiem, ja vien tā nav zombiju apokalipse. Un pat tad izmantojiet veselo saprātu.
Ieteicams izlasīt lasāmvielu sarakstā iekļautos norādījumus.
Lejupielādējiet savienojuma shēmu no darbības "Savienojumi".
MOTORI
Jūsu iegādātie motori, iespējams, izskatās šādi, un ja nav, tad ir labi: ja tiem ir tikai divi vadi (vairumā gadījumu melni un sarkani), tam vajadzētu darboties. Meklējiet viņu datu lapu tiešsaistē, lai redzētu viņu darba spriegumu un strāvu. Jūtieties brīvi uzdot jautājumus komentāru sadaļā. Es vienmēr tos lasu.
H-TILTS
Es nekad iepriekš neesmu strādājis ar H-Bridge. Es mazliet googlēju un atradu labu pamācību, kas izskaidro HB principus. Jūs varat arī tur paskatīties (skatiet lasīšanas saraksta soli) un piesaistīt arī savu. Es daudz nepaskaidrošu. Jūs varat izlasīt tur un zināt visu, kas jums jāzina par šo ķēdi.
LED
Šī mazā spuldzīte var darboties no loģiskā sprieguma tikai tāpēc, ka tai gandrīz nav nepieciešama strāva, un spriegums ir 3V-5V 4mA-18mA. Neobligāti.
ARDUINO
Arduino saņems signālus un komandas, izmantojot seriālo savienojumu no Raspberry Pi. Mēs izmantojam Arduino, lai kontrolētu savus motorus, jo Raspberry Pi nevar izvadīt analogās vērtības, izmantojot GPIO.
9. solis: Raspberry Pi automātiskā palaišana
Katru reizi, ieslēdzot Raspberry Pi, jums būs jāievada lietotājvārds un parole. Mēs nevēlamies to darīt, jo dažreiz mēs vienkārši nevaram savienot tastatūru ar Pi, tāpēc, lai automātiski palaistu programmu, kas sagatavo Pi, mēs izpildīsim šīs apmācības darbības. Ja tas tiks pieķerts cilpai, mēs vienmēr varam Ctrl+C to pārtraukt.
- sudo crontab -e
- Un tad mēs ievadīsim komandu, kas pievieno šo failu automātiskai strartup cron pārvaldniekā.
Mēs izsauksim failu pibot.sh, kas dos komandas, lai palaistu visa veida python skriptus, lai darbinātu robotu. Pārskatīsim to: (Mēs sudo ar aizkaru Python programmām, lai programma varētu piekļūt GPIO)
raspivid -o --t 0 -hf -w 640 -h 360 -fps 25 | cvlc -vvv straume: /// dev/stdin --sout '#rtp {sdp = rtsp: //: 8554}': demux = h264
Kods, kas veic visu darbu pi pusē, tiks izsaukts upon_startup.sh.
Tas ir vienkāršs čaulas skripts, kas vada visu.
10. solis: Houeston, mums ir radusies problēma … DC Motors nav tas pats modelis
Es jau esmu pārbaudījis H-tiltu, un tas darbojas labi, bet, kad es pieslēdzu motorus, ko saņēmu no robota platformas, kuru pasūtīju tiešsaistē, šie divi motori griežas ar atšķirīgu ātrumu un rada dažādus trokšņus. Es nomainīju droseli uz 100% motoriem. Abi nevarēja skriet ar maksimālo spēju.
Šķiet, ka šie ir divi dažādi motori. Vienam ir lielāks griezes moments, kas ir lieliski piemērots šāda veida robotam, bet otrs vienkārši nepārvieto robotu. Tātad tas griežas apļos.
Pašlaik Arduino sērijas programma darbojas pilnīgi labi, taču datora Tcp serveris un Pi Tcp klients vēl nav kodēts. Man ir jāaizpilda šis konkursa ieraksts. Ko man darīt?
- Pirmkārt, es trīskāršoju motoru spriegumu. Datu lapā bija teikts, ka 3V, 6V tos nepakustināja. Tad ir 9V. Es paralēli pievienoju teo baterijas, lai dubultotu strāvu, un spriegums paliek nemainīgs.
- Vai man ir citi motori, kas atbilst platformas stiprinājumam? Varbūt es redzu, vai tie ir līdzīgi modeļi.
- Es varu nomainīt uz Servos, ja šokolāde patiešām skāra ventilatoru.
Sākās skola. Man būs jāskatās, ko darīt.
Piezīme: Kāpēc es uzrakstīšu šeit radušās problēmas? Tātad, ja esat mazāk pieredzējis un jums ir tādas pašas problēmas, jūs zināt, ko darīt.
Atrisinājums:
Tāpēc es veicu vēl vienu pārbaudi. Esmu pielāgojis ātruma atšķirības Arduino kodā.
PIEZĪME: motori var griezties dažādos ātrumos! Mainiet Arduino skices vērtības.
11. darbība: [TCP]: Kāpēc Tcp un nav drošs apvalks? Kas ir TCP?
Man ir divi skaidrojumi, kāpēc P. C. izmantot Tcp, nevis SSH. - Pi komunikācija.
- Pirmkārt, SSH (Secure Shell, sk. Paskaidrojumus) ir paredzēts komandu palaišanai no attālā datora. Lai Pi atbildētu ar vēlamo informāciju, ir grūtāk, jo mūsu vienīgā iespēja analizēt datus ir grūta un garlaicīga virkņu apstrāde.
- Otrkārt, mēs jau zinām, kā izmantot SSH, un šajā apmācībā vēlamies uzzināt vairāk saziņas veidu starp ierīcēm.
TCP jeb pārraides kontroles protokols ir interneta protokola komplekta galvenais protokols. Tas radās sākotnējā tīkla ieviešanā, kurā tas papildināja interneta protokolu (IP). Tāpēc visu komplektu parasti sauc par TCP/IP. TCP nodrošina uzticamu, pasūtītu un kļūdu pārbaudītu oktetu plūsmas piegādi starp lietojumprogrammām, kas darbojas saimniekdatoros, kuri sazinās IP tīklā.
(No Vikipēdijas)
Tātad TCP plusi ir:
- Droši
- Ātri
- Darbojas jebkurā tīkla vietā
- Sniedz metodes pareizas datu pārraides pārbaudei
- Plūsmas kontrole: tai ir aizsardzība, ja datu sūtītājs nosūta datus pārāk ātri, lai klients varētu reģistrēties un apstrādāt.
Un mīnusi ir šādi:
- Izmantojot TCP, jūs nevarat pārraidīt (sūtīt datus uz visām tīkla ierīcēm) un multicast (tas pats, bet nedaudz atšķirīgs- dod iespēju katrai ierīcei pārraidīt kā serveris).
- Programmas un operētājsistēmas bibliotēku kļūdas (kas paši pārvalda TCP sakarus, maršrutētājs gandrīz neko nedara, izņemot divu [vai vairāku] ierīču savienošanu)
Kāpēc neizmantot UDP, jūs varat jautāt? Atšķirībā no TCP, UDP nepārliecinās, ka jūsu klients saņem datus, pirms sūta vairāk. Tāpat kā sūtīt e -pastu un nezināt, vai klients to saņem. Turklāt UDP ir mazāk drošs. Lai iegūtu vairāk informācijas, izlasiet šo Stack Exchange Super User ziņu
Šis raksts ir labs un ieteicams.
12. solis: [TCP]: izveidosim klientu
Klients (mūsu gadījumā Raspberry Pi), kas saņem datus no servera (mūsu dators mūsu gadījumā), iegūs datus, ko nosūtīt uz Pi (sērijas komandas, kas tiks izpildītas Arduino), un saņems datus atpakaļ (sensora rādījumi) un atsauksmes tieši no Arduino. Pievienotā shēma parāda attiecības starp trim.
Python Wiki TcpCommunication raksts parāda, ka ir tik vienkārši izveidot šādu saziņu ar dažām koda rindām, izmantojot iebūvēto ligzdas moduli. Mums būs programma datorā un cita programma Pi.
Mēs strādāsim ar pārtraukumiem. Uzziniet vairāk sadaļā Paskaidrojumi par tiem. Lasiet arī par buferiem. Tagad mēs varam nolasīt mūsu rīcībā esošos datus, izmantojot data = s.recv (BUFFER_SIZE), bet tas būs tas, cik rakstzīmju esam definējuši ar tukšiem kodumiem. Vai mēs varam izmantot pārtraukumus? Vēl viens jautājums: vai buferis būs tukšs, vai arī tas gaidīs, kamēr serveris nosūtīs vairāk datu, tādā gadījumā serveris/klients iemetīs taimauta izņēmumu?
Ļaujiet to risināt pa vienam. Pirms mēs to darām, es esmu uzmeklējis šo Wikipedia rakstu, kurā uzskaitīti izmantotie TCP un UDP porti. Pēc ātras ieskatīšanās es nolēmu, ka šis projekts sazināsies 12298 portā, jo to neizmanto operētājsistēma un vietējie pakalpojumi.
13. darbība. Izmēģiniet mūsu Tcp Comms
Lai redzētu, vai mēs varam izmantot pārtraukumus, ļaujim izveidot vienkāršu klientu un serveri, izmantojot Python komandrindu. Es to darīšu, veicot šādas darbības:
- Sāciet programmu, kas nosūta tekstu, izmantojot Tcp, cilpā caur aizkaru portu
- Sāciet citu programmu (paralēli), kas nolasa visu cikla tekstu un izdrukā to ekrānā.
Tiks parādīti tikai programmas segmenti. Visas programmas darbojas ar Python 3. Visas šīs programmas ir nosūtīt sērijas komandu no datora lietotāja tastatūras uz Arduino caur Pi.
- SBcontrolPC.py - paredzēts darbināšanai datorā. Uzsāk TCP savienojumu vietējā adresē un norādītajā portā (es izmantoju portu 12298, skatiet iepriekšējo darbību, kāpēc)
- SBcontrolPi.py - darbināms ar Pi. Tā buferi nolasa ik pēc pussekundes (0,5 sekundes). Tiek palaists čaulas skripts, kas pārvalda tādas lietas kā video straumēšana utt.
Ieteicams:
Izveidojiet savu apkārtējo apgaismojumu, izmantojot Raspberry Pi Zero: 5 soļi (ar attēliem)
Izveidojiet savu apkārtējo apgaismojumu, izmantojot Raspberry Pi Zero: Šajā projektā es jums parādīšu, kā apvienot Raspberry Pi Zero ar pāris papildu detaļām, lai televizoram pievienotu apkārtējā apgaismojuma efektu, kas uzlabo skatīšanās pieredzi. Sāksim
Izveidojiet savu viedo spoguli zem 80 USD - izmantojot Raspberry Pi: 6 soļi (ar attēliem)
Izveidojiet savu viedo spoguli zem 80 USD - izmantojot Raspberry Pi: Šajā projektā mēs veidosim viedu spoguli, kas jums parādīs noderīgu informāciju, kamēr gatavojaties no rīta. Visam vajadzētu maksāt mazāk par 80 ASV dolāriem, padarot to par pieņemamu cenu lielākajai daļai cilvēku. Šī rokasgrāmata jums tikai iemācīs
Raspberry Pi Wifi kontrolēts video straumēšanas robots: 8 soļi (ar attēliem)
Raspberry Pi Wifi kontrolētais video straumēšanas robots: Vai esat kādreiz domājuši par forša robota izveidošanu ar kameru? Nu, jūs nonācāt īstajā vietā, es soli pa solim parādīšu, kā izveidot šo robotu. Ar to jūs varat doties spoku medībās naktī, kontrolējot un redzot video plūsmu savā
Izveidojiet savu sulaiņa robotu !!! - Apmācība, fotoattēli un video: 58 soļi (ar attēliem)
Izveidojiet savu sulaiņa robotu !!! - Apmācība, fotoattēli un video: EDIT: Vairāk informācijas par saviem projektiem skatiet manā jaunajā vietnē: narobo.com. Es arī konsultēju robotikas, mehatronikas un specefektu projektus/produktus. Lai iegūtu sīkāku informāciju, apmeklējiet manu vietni - narobo.com. Kādreiz gribēja sulaiņa robotu, kas runā ar jums
Izveidojiet ļoti mazu robotu: izveidojiet pasaulē mazāko riteņu robotu ar satvērēju: 9 soļi (ar attēliem)
Izveidojiet ļoti mazu robotu: izveidojiet pasaulē mazāko riteņu robotu ar satvērēju: izveidojiet 1/20 kubikcentimetru robotu ar satvērēju, kas var uzņemt un pārvietot mazus priekšmetus. To kontrolē Picaxe mikrokontrolleris. Šobrīd es uzskatu, ka tas varētu būt pasaulē mazākais riteņu robots ar satvērēju. Tas, bez šaubām, būs