Inhoudsopgave:

Arduino en Raspberry Pi aangedreven huisdierbewakingssysteem - Ajarnpa
Arduino en Raspberry Pi aangedreven huisdierbewakingssysteem - Ajarnpa

Video: Arduino en Raspberry Pi aangedreven huisdierbewakingssysteem - Ajarnpa

Video: Arduino en Raspberry Pi aangedreven huisdierbewakingssysteem - Ajarnpa
Video: GATE OPENING DRIVE from a conventional tube and a wiper motor! 2024, Juli-
Anonim
Image
Image
Arduino en Raspberry Pi aangedreven huisdierbewakingssysteem
Arduino en Raspberry Pi aangedreven huisdierbewakingssysteem
Arduino en Raspberry Pi aangedreven huisdierbewakingssysteem
Arduino en Raspberry Pi aangedreven huisdierbewakingssysteem

Onlangs, terwijl we op vakantie waren, realiseerden we ons het gebrek aan verbinding met ons huisdier Beagle. Na wat onderzoek vonden we producten met een statische camera waarmee je je huisdier kon volgen en ermee kon communiceren. Deze systemen hadden bepaalde voordelen, maar misten veelzijdigheid. Elke kamer had bijvoorbeeld een eenheid nodig om uw huisdier in het hele huis bij te houden.

Daarom hebben we een robuuste robot ontwikkeld die door het huis kan manoeuvreren en zijn huisdier kan volgen met behulp van de kracht van het internet der dingen. Een smartphone-app is ontworpen om met uw huisdier te communiceren via een live videofeed. Het chassis van de robot is digitaal gefabriceerd omdat verschillende onderdelen zijn gemaakt met behulp van 3D-printen en lasersnijden. Ten slotte hebben we besloten om een bonusfunctie toe te voegen die traktaties uitdeelt om je huisdier te belonen.

Ga verder om uw eigen huisdierbewakingssysteem te maken en misschien zelfs aan te passen aan uw vereisten. Bekijk de video die hierboven is gelinkt om te zien hoe ons huisdier reageerde en om de robot beter te begrijpen. Laat een stem achter in de "Roboticawedstrijd" als je het project leuk vond.

Stap 1: Overzicht van het ontwerp

Overzicht van het ontwerp
Overzicht van het ontwerp
Overzicht van het ontwerp
Overzicht van het ontwerp

Om de robot voor het bewaken van huisdieren te conceptualiseren, hebben we deze eerst ontworpen op fusion 360. Hier zijn enkele van zijn functies:

Via internet is de robot te besturen via een app. Hierdoor kan de gebruiker overal verbinding maken met de robot

Een ingebouwde camera die live een videofeed naar de smartphone streamt, kan de gebruiker helpen om door het huis te manoeuvreren en met het huisdier om te gaan

Een extra traktatiekom die uw huisdier op afstand kan belonen

Digitaal gefabriceerde onderdelen waarmee men hun robot kan aanpassen

Een Raspberry Pi werd gebruikt om verbinding te maken met internet omdat deze een wifi-modus aan boord heeft

Een Arduino werd samen met een CNC-schild gebruikt om opdrachten aan de stappenmotoren te geven

Stap 2: Benodigde materialen

Benodigde materialen
Benodigde materialen
Benodigde materialen
Benodigde materialen

Hier is de lijst met alle componenten die nodig zijn om uw eigen Arduino- en Raspberry Pi-aangedreven huisdierbewakingsrobot te maken. Alle onderdelen moeten algemeen verkrijgbaar en gemakkelijk te vinden zijn.

ELEKTRONICA:

  • Arduino Uno x 1
  • Raspberry Pi (geflitst met nieuwste raspbian) x 1
  • CNC-schild x 1"
  • A4988 Stappenmotor Driver x 2"
  • Camera x 1
  • Ultrasone afstandssensor x 1
  • 11.1v Lipo-batterij x 1
  • NEMA 17 Stappenmotor x 2"
  • 5v UBEC x 1

HARDWARE:

  • Wielen x 2 (de wielen die we gebruikten hadden een diameter van 7 cm)
  • Zwenkwielen x 2"
  • M4 en M3 moeren en bouten

De totale kosten van dit project, exclusief de Arduino en Raspberry Pi, bedragen ongeveer $ 50.

Stap 3: Digitaal vervaardigde onderdelen

Digitaal vervaardigde onderdelen
Digitaal vervaardigde onderdelen
Digitaal vervaardigde onderdelen
Digitaal vervaardigde onderdelen

Sommige onderdelen die we in dit project gebruikten, moesten op maat worden gemaakt. Deze zijn eerst gemodelleerd in Fusion 360 en daarna gemaakt met een 3D-printer en een lasercutter. De 3D-geprinte onderdelen zijn niet zwaar belast, dus standaard PLA met 20% vulling werkt prima. Hieronder vindt u een lijst van alle 3D-geprinte en lasergesneden onderdelen:

3D-geprinte onderdelen:

  • Stappenhouder x 2"
  • Vision-systeemmontage x 1"
  • Elektronica Afstandhouder x 4"
  • Verticale afstandhouder x 4"
  • Chassisversterking x 2
  • Behandelkom deksel x 1
  • Trakteerschaal x 1
  • Achterste Stepper Mount x 1"
  • Opwindschijf x 1

Lasergesneden onderdelen:

  • Bodempaneel x 1
  • Bovenpaneel x 1"

Een gezipte map met alle STL's en lasersnijbestanden is hieronder bijgevoegd.

Stap 4: De stappenmotor bevestigen

De stappenmotor bevestigen
De stappenmotor bevestigen
De stappenmotor bevestigen
De stappenmotor bevestigen
De stappenmotor bevestigen
De stappenmotor bevestigen

Zodra alle onderdelen 3D-geprint zijn, begint u met de montage door de stappenmotor in de stappenhouder te monteren. De stappenmotorhouder die we hebben ontworpen, is bedoeld voor het NEMA 17-model (als men verschillende steppers gebruikt, heeft dit een andere montage nodig). Steek de as van de motor door het gat en zet de motor op zijn plaats met de montageschroeven. Als u klaar bent, moeten beide motoren stevig aan de houders worden vastgehouden.

Stap 5: De steppers op het onderste paneel monteren

De steppers op het onderste paneel monteren
De steppers op het onderste paneel monteren
De steppers op het onderste paneel monteren
De steppers op het onderste paneel monteren
De steppers op het onderste paneel monteren
De steppers op het onderste paneel monteren

Om de houders op het lasergesneden onderpaneel te monteren, hebben we M4-bouten gebruikt. Voordat u ze met de moeren vastzet, voegt u de 3D-geprinte chassisversterkingsstrips toe en draait u de moeren vast. De strips worden gebruikt om de belasting gelijkmatig over het acrylpaneel te verdelen.

Steek ten slotte de draden door de respectievelijke sleuven op het paneel. Zorg ervoor dat u ze helemaal doortrekt om te voorkomen dat ze verstrikt raken in de wielen.

Stap 6: De wielen monteren

De wielen monteren
De wielen monteren
De wielen monteren
De wielen monteren
De wielen monteren
De wielen monteren

Het acrylpaneel heeft twee delen die zijn uitgesneden om op de wielen te passen. De wielen die we gebruikten hadden een diameter van 7 cm en werden geleverd met stelschroeven die op de stappenassen van 5 mm waren bevestigd. Zorg ervoor dat het wiel goed vastzit en niet op de as glijdt.

Stap 7: Zwenkwielen voor en achter

Zwenkwielen voor en achter
Zwenkwielen voor en achter
Zwenkwielen voor en achter
Zwenkwielen voor en achter
Zwenkwielen voor en achter
Zwenkwielen voor en achter
Zwenkwielen voor en achter
Zwenkwielen voor en achter

Om het chassis soepel te laten bewegen, hebben we ervoor gekozen om zwenkwielen aan de voor- en achterkant van de robot te plaatsen. Dit voorkomt niet alleen dat de robot omvalt, maar laat het chassis ook vrij in elke richting draaien. Zwenkwielen zijn er in alle maten, de onze werd in het bijzonder geleverd met een enkele draaiende schroef die we op de basis monteerden en 3D-geprinte afstandhouders gebruikten om de hoogte aan te passen zodat de robot perfect horizontaal was. Hiermee is de basis van het chassis compleet en heeft een goede stabiliteit.

Stap 8: Elektronica

Elektronica
Elektronica
Elektronica
Elektronica
Elektronica
Elektronica

Zodra de basis van het chassis volledig is gemonteerd, is het tijd om de elektronica op het acrylpaneel te monteren. We hebben gaten in het acrylpaneel gemaakt die aansluiten op de montagegaten van de Arduino en de Raspberry Pi. Met behulp van 3D-geprinte afstandhouders hebben we de elektronica iets boven de acrylpanelen verhoogd, zodat alle overtollige bedrading er netjes onder kan worden weggestopt. Monteer de Arduino en de Raspberry Pi op hun corresponderende montagelocaties met behulp van M3-moeren en -bouten. Zodra de Arduino is bevestigd, bevestigt u het CNC-schild aan de Arduino en sluit u de stappendraden aan in de volgende configuratie.

  • Linker stepper naar CNC schild X-as poort
  • Rechter stepper naar CNC schild Y-as poort

Sluit, met de stappenmotoren aangesloten, de Arduino aan op de Raspberry Pi met behulp van de Arduino's USB-kabel. Uiteindelijk gaan de Raspberry Pi en Arduino via deze kabel communiceren.

Let op: De voorkant van de robot is de kant met de Raspberry Pi

Stap 9: Visiesysteem

Visiesysteem
Visiesysteem
Visiesysteem
Visiesysteem
Visiesysteem
Visiesysteem

De primaire omgevingsinput voor onze huisdierbewakingsrobot is visie. We besloten om de Picamera die compatibel is met de Raspberry Pi te gebruiken om een livestream naar de gebruiker via internet te sturen. We gebruikten ook een ultrasone afstandssensor om obstakels te vermijden wanneer de robot autonoom functioneert. Beide sensoren worden met behulp van schroeven op een houder bevestigd.

De Picamera past in de daarvoor bestemde poort op de Raspberry Pi en sluit de ultrasone sensor op de volgende manier aan:

  • Ultrasone sensor VCC naar 5v-rail op CNC-schild
  • Ultrasone sensor GND naar GND-rail op CNC-schild
  • Ultrasone sensor TRIG naar X+ eindstoppen op CNC-afscherming
  • Ultrasone sensor ECHO naar Y+ eindstoppen op CNC-schild

Stap 10: Montage van het bovenpaneel

Bovenpaneelmontage
Bovenpaneelmontage
Bovenpaneelmontage
Bovenpaneelmontage
Bovenpaneelmontage
Bovenpaneelmontage

Aan de achterzijde van de robot is het dekselopeningssysteem voor de traktatieschaal gemonteerd. Bevestig de mini-stappenmotor aan het achterste houderonderdeel en monteer zowel het zichtsysteem als het opwindsysteem met M3-bouten op het bovenpaneel. Zoals vermeld, zorg ervoor dat u het zichtsysteem aan de voorkant en het oprolsysteem aan de achterkant monteert met de twee meegeleverde gaten.

Stap 11: Montage van het bovenpaneel

Bovenpaneelmontage
Bovenpaneelmontage
Bovenpaneelmontage
Bovenpaneelmontage
Bovenpaneelmontage
Bovenpaneelmontage

We hebben verticale afstandhouders 3d geprint om het bovenpaneel op de juiste hoogte te ondersteunen. Begin met het bevestigen van de vier afstandhouders aan het onderpaneel om een "X" te vormen. Plaats vervolgens het bovenpaneel met de traktatiekom en zorg ervoor dat hun gaten op één lijn liggen en bevestig het tenslotte ook aan de afstandhouders.

Stap 12: Deksel openingsmechanisme

Mechanisme voor openen deksel
Mechanisme voor openen deksel
Mechanisme voor openen deksel
Mechanisme voor openen deksel
Mechanisme voor openen deksel
Mechanisme voor openen deksel

Om het deksel op de traktatiekom te bedienen, gebruikten we een kleinere stappenmotor om een nylon touwtje aan het deksel op te winden en het open te trekken. Voordat u het deksel bevestigt, steekt u het touwtje door het 2 mm gat op het deksel en maakt u een knoop aan de binnenkant. Knip vervolgens het andere uiteinde van het koord door en steek het door de daarvoor bestemde gaten op de opwindschijf. Duw de schijf op de stepper en trek dan aan het touwtje totdat het strak staat. Als je klaar bent, knip je het overtollige materiaal af en knoop je een knoop. Gebruik tenslotte een bout en moer om het deksel op de kom te bevestigen en zorg ervoor dat deze draait. Nu de stepper draait, moet het touw op de schijf worden gewikkeld en moet het deksel geleidelijk openen.

Stap 13: De clouddatabase instellen

De clouddatabase instellen
De clouddatabase instellen
De clouddatabase instellen
De clouddatabase instellen
De clouddatabase instellen
De clouddatabase instellen
De clouddatabase instellen
De clouddatabase instellen

De eerste stap is om een database voor het systeem aan te maken, zodat u overal ter wereld vanuit uw mobiele app met de robot kunt communiceren. Klik op de volgende link (Google firebase), die u naar de Firebase-website leidt (u moet inloggen met uw Google-account). Klik op de knop "Aan de slag" die u naar de Firebase-console brengt. Maak vervolgens een nieuw project aan door op de knop "Project toevoegen" te klikken, vul de vereisten in (naam, details, enz.) en voltooi door op de knop "Project aanmaken" te klikken.

We hebben alleen de databasetools van Firebase nodig, dus selecteer "database" in het menu aan de linkerkant. Klik vervolgens op de knop "Database maken", selecteer de optie "testmodus". Stel vervolgens de database in op een "realtime database" in plaats van de "cloud firestore" door op het vervolgkeuzemenu bovenaan te klikken. Selecteer het tabblad "regels" en verander de twee "false" in "true", klik ten slotte op het tabblad "data" en kopieer de database-URL, dit is later vereist.

Het laatste dat u hoeft te doen, is op het tandwielpictogram naast het projectoverzicht klikken, vervolgens op "projectinstellingen", vervolgens het tabblad "serviceaccounts" selecteren, ten slotte op "Databasegeheimen" klikken en de beveiliging noteren code van uw database. Met deze stap voltooid, hebt u met succes uw clouddatabase gemaakt die toegankelijk is vanaf uw smartphone en vanaf de Raspberry Pi. (Gebruik de foto's die hierboven zijn bijgevoegd in geval van twijfel, of stel gewoon een vraag in het commentaargedeelte)

Stap 14: De mobiele app maken

De mobiele app maken
De mobiele app maken
De mobiele app maken
De mobiele app maken
De mobiele app maken
De mobiele app maken
De mobiele app maken
De mobiele app maken

Het volgende onderdeel van het IoT-systeem is de smartphone-applicatie. We besloten om MIT App Inventor te gebruiken om onze eigen app op maat te maken. Om de app te gebruiken die we hebben gemaakt, opent u eerst de volgende link (MIT App Inventor), die u naar hun webpagina leidt. Klik vervolgens op "apps maken" bovenaan het scherm en log vervolgens in met uw Google-account.

Download het.aia-bestand dat hieronder is gelinkt. Open het tabblad "projecten" en klik op "Importeer project (.aia) van mijn computer" selecteer vervolgens het bestand dat u zojuist hebt gedownload en klik op "ok". Blader in het componentenvenster helemaal naar beneden totdat u "FirebaseDB1" ziet, klik erop en wijzig de "FirebaseToken", "FirebaseURL" in de waarden die u in de vorige stap had genoteerd. Zodra deze stappen zijn voltooid, bent u klaar om de app te downloaden en te installeren. U kunt de app rechtstreeks naar uw telefoon downloaden door op het tabblad "Build" te klikken en op "App (Qr-code voor.apk) te klikken" en vervolgens de QR-code te scannen met uw smartphone of door op "App (save.apk to my computer) te klikken)" downloadt u het apk-bestand op uw computer, dat u vervolgens naar uw smartphone kunt verplaatsen.

Stap 15: Programmeren van de Raspberry Pi

De Raspberry Pi programmeren
De Raspberry Pi programmeren

De Raspberry Pi wordt om twee hoofdredenen gebruikt.

  1. Het verzendt een live videostream van de robot naar een webserver. Deze stream kan door de gebruiker worden bekeken met behulp van de mobiele app.
  2. Het leest de bijgewerkte opdrachten in de firebase-database en instrueert de Arduino om de vereiste taken uit te voeren.

Voor het instellen van de Raspberry Pi om live te streamen, bestaat er al een gedetailleerde tutorial en deze is hier te vinden. De instructies komen neer op drie eenvoudige commando's. Schakel de Raspberry Pi in en open de terminal en voer de volgende commando's in.

  • git kloon
  • cd RPi_Cam_Web_Interface
  • ./install.sh

Zodra de installatie is voltooid, start u de Pi opnieuw op en moet u toegang hebben tot de stream door in een webbrowser op https://uw Pi's IP-adres te zoeken.

Met de live streaming ingesteld, moet u bepaalde bibliotheken downloaden en installeren om de clouddatabase te kunnen gebruiken. Open een terminal op je Pi en voer de volgende opdrachten in:

  • sudo pip installatieverzoeken==1.1.0
  • sudo pip install python-firebase

Download ten slotte het onderstaande python-bestand en sla het op uw Raspberry Pi op. Verander op de vierde regel van de code de COM-poort in de poort waarop de Arduino is aangesloten. Wijzig vervolgens de URL op regel 8 in de firebase-URL die u eerder had genoteerd. Voer ten slotte het programma uit via de terminal. Dit programma haalt de commando's op uit de clouddatabase en geeft deze via de seriële verbinding door aan de Arduino.

Stap 16: De Arduino programmeren

De Arduino programmeren
De Arduino programmeren
De Arduino programmeren
De Arduino programmeren

De Arduino wordt gebruikt om de opdrachten van de Pi te interpreteren en instrueert de actuatoren op de robot om de benodigde taken uit te voeren. Download de onderstaande Arduino-code en upload deze naar de Arduino. Zodra de Arduino is geprogrammeerd, sluit u deze aan op een van de USB-poorten van de Pi met behulp van de speciale USB-kabel.

Stap 17: Het systeem aanzetten

Het systeem van stroom voorzien
Het systeem van stroom voorzien

De robot wordt aangedreven door een 3-cellige lipo-batterij. De batterijpolen moeten in tweeën worden gesplitst, waarbij de ene rechtstreeks naar het CNC-schild gaat om de motoren van stroom te voorzien, terwijl de andere wordt aangesloten op de 5v UBEC, die een stabiele 5v-voedingslijn heeft gecreëerd die zal worden gebruikt om de Raspberry Pi van stroom te voorzien. de GPIO-pinnen. De 5v van de UBEC is verbonden met de 5v-pin van de Raspberry Pi en de GND van de UBEC is verbonden met de GND-pin van de Pi.

Stap 18: De app gebruiken

De app gebruiken
De app gebruiken
De app gebruiken
De app gebruiken
De app gebruiken
De app gebruiken

Met de interface van de app kan men de bewakingsrobot besturen en een live feed streamen vanaf de camera aan boord. Om verbinding te maken met uw robot, moet u ervoor zorgen dat u een stabiele internetverbinding heeft en typt u vervolgens het IP-adres van de Raspberry Pi in het daarvoor bestemde tekstvak en klikt u op de update-knop. Als je klaar bent, verschijnt de live feed op je scherm en zou je de verschillende functies van de robot moeten kunnen bedienen.

Stap 19: Klaar om te testen

Klaar om te testen
Klaar om te testen
Klaar om te testen
Klaar om te testen

Nu uw huisdierbewakingsrobot volledig is gemonteerd, kunt u de kom vullen met wat hondensnoepjes. Open de app, sluit de camera aan en veel plezier! We zijn momenteel aan het spelen met de rover en onze Beagle en hebben behoorlijk hilarische momenten vastgelegd.

Toen de hond de aanvankelijke angst voor dit bewegende object overwon, achtervolgde hij de bot door het huis op zoek naar lekkernijen. De camera aan boord biedt een goed groothoekbeeld van de omgeving, waardoor het vrij gemakkelijk te manoeuvreren is.

Er is ruimte voor verbetering om het beter te laten functioneren in de echte wereld. Dat gezegd hebbende, hebben we een robuust systeem gecreëerd, waarop verder kan worden voortgebouwd en uitgebreid. Als je dit project leuk vond, stem dan op ons in de "Robotics Contest"

Veel plezier met maken!

Robotica-wedstrijd
Robotica-wedstrijd
Robotica-wedstrijd
Robotica-wedstrijd

Tweede prijs in de robotica-wedstrijd

Aanbevolen: