Inhoudsopgave:

PLANTENROBOT: 10 stappen
PLANTENROBOT: 10 stappen

Video: PLANTENROBOT: 10 stappen

Video: PLANTENROBOT: 10 stappen
Video: Another decade ahead with a nice and tight wire mesh | Van Paassen Chrysanthemums explains 2024, Juli-
Anonim
Image
Image
PLANTENROBOT
PLANTENROBOT

Iedereen vindt het leuk om planten in huis te hebben, maar met ons drukke leven hebben we soms niet de tijd om ze goed te verzorgen. Vanuit dit probleem kwamen we op een idee: waarom geen robot bouwen die dit voor ons zou regelen?

Dit project bestaat uit een plant-robot die voor zichzelf zorgt. De plant is geïntegreerd in de robot en kan zichzelf water geven en licht vinden terwijl hij obstakels ontwijkt. Dit is mogelijk gemaakt door meerdere sensoren op de robot en de plant te gebruiken. Deze Instructable is bedoeld om u te begeleiden bij het maken van een plantenrobot, zodat u zich niet elke dag zorgen hoeft te maken over uw planten!

Dit project is onderdeel van Bruface Mechatronics en is gerealiseerd door:

Mercedes Arévalo Suárez

Daniel Blanquez

Boudewijn Cornelis

Kaat Leemans

Marcos Martínez Jiménez

Basile Thisse

(Groep 4)

Stap 1: WINKELLIJST

BOODSCHAPPENLIJST
BOODSCHAPPENLIJST
BOODSCHAPPENLIJST
BOODSCHAPPENLIJST
BOODSCHAPPENLIJST
BOODSCHAPPENLIJST

Hier is een lijst van elk product dat je nodig hebt om deze robot te bouwen. Voor elk onderstreept stuk is een link beschikbaar:

3D-geprinte motoren ondersteunen X1 (kopie in 3D)

3D geprinte wielen + wiel-motor aansluiting X2 (kopie in 3D)

AA Nimh-batterijen X8

Schuurpapierrol X1

Arduino Mega X1

Kogelwiel X1

Batterijhouder X2

Breadboard voor tests X1

Breadboard om X1. te solderen

DC-motoren (met encoder) X2

Scharnieren X2

Hygrometer X1

Lichtafhankelijke weerstanden X3

Man-man & man-vrouw truien

Motorafscherming X1

Plant X1 (dit is aan jou)

Plantenpot X1

Plantsteun X1 (3D geprint)

Kunststof buis X1

Weerstanden met verschillende waarden

Kraspapier X1

Schroeven

Scherpe sensoren X3 (GP2Y0A21YK0F 10-80 cm)

Schakelaar X1

Waterpomp X1

Waterreservoir tank (kleine Tupperware) X1

Draden

Houd er rekening mee dat deze keuzes het gevolg zijn van tijd- en budgetbeperkingen (3 maanden en € 200). Andere keuzes kunnen naar eigen inzicht worden gemaakt.

UITLEG VAN DE VERSCHILLENDE KEUZES

Arduino Mega over Arduino Uno: Ten eerste moeten we ook uitleggen waarom we Arduino überhaupt hebben gebruikt. Arduino is een open-source elektronisch prototypeplatform waarmee gebruikers interactieve elektronische objecten kunnen maken. Het is erg populair bij zowel experts als beginners, wat ertoe bijdraagt dat er veel informatie over op internet te vinden is. Dit kan handig zijn als je een probleem hebt met je project. We kozen voor een Arduino Mega boven een Uno omdat deze meer pinnen heeft. Sterker nog, voor het aantal sensoren dat we gebruiken, bood een Uno niet genoeg pinnen. Een Mega is ook krachtiger en zou nuttig kunnen zijn als we enkele verbeteringen toevoegen, zoals een WIFI-module.

Nimh-batterijen: Een eerste idee was om LiPo-batterijen te gebruiken zoals in veel robotprojecten. LiPo hebben een goede ontlading en zijn gemakkelijk oplaadbaar. Maar we realiseerden ons al snel dat LiPo en oplader te duur waren. De enige andere accu's die geschikt zijn voor dit project waren de Nimh. Ze zijn inderdaad goedkoop, oplaadbaar en licht. Om de motor van stroom te voorzien hebben we er 8 nodig om een voedingsspanning te bereiken van 9,6V (ontladen) tot 12V (volledig opgeladen).

DC-motoren met encoders: gezien het hoofddoel van deze actuator, het leveren van rotatie-energie aan de wielen, hebben we twee DC-motoren gekozen in plaats van servomotoren die een beperking in de rotatiehoek hebben en zijn ontworpen voor meer specifieke taken waarbij de positie moet worden gedefinieerd nauwkeurig. Het feit dat er encoders zijn, voegt ook de mogelijkheid toe om indien nodig een hogere precisie te hebben. Merk op dat we uiteindelijk de encoders niet hebben gebruikt omdat we ons realiseerden dat de motoren behoorlijk op elkaar leken en we de robot niet nodig hadden om precies een rechte lijn te volgen.

Er zijn veel DC-motoren op de markt en we waren op zoek naar een die past bij ons budget en onze robot. Om aan deze beperkingen te voldoen, hebben twee belangrijke parameters ons geholpen om de motor te kiezen: het koppel dat nodig is om de robot te bewegen en de snelheid van de robot (om het benodigde toerental te vinden).

1) Bereken het toerental

Deze robot hoeft de geluidsbarrière niet te doorbreken. Om het licht te volgen of iemand in een huis te volgen lijkt een snelheid van 1 m/s of 3,6 km/u redelijk. Om het te vertalen in toeren gebruiken we de diameter van de wielen: 9cm. Het toerental wordt gegeven door: rpm = (60*speed(m/s))/(2*pi*r) = (60*1)/(2*pi*0.045) = 212 rpm.

2) Bereken het maximale benodigde koppel

Aangezien deze robot zal evolueren in een vlakke omgeving, is het maximale koppel dat nodig is om de robot te laten bewegen. Als we bedenken dat het gewicht van de robot met de plant en elk onderdeel ongeveer 3 kilo is en met behulp van de wrijvingskrachten tussen de wielen en de grond kunnen we het koppel gemakkelijk vinden. Uitgaande van een wrijvingscoëfficiënt van 1 tussen de grond en de wielen: Wrijvingskrachten (Fr)= wrijvingscoëfficiënt. * N (waarbij N het gewicht van de robot is) dit geeft ons Fr = 1 * 3 * 10 = 30 N. Het koppel voor elke motor kan als volgt worden gevonden: T = (Fr * r)/2 waarbij r de straal van de wielen dus T = (30*0.045)/2 = 0.675 Nm = 6.88 kg cm.

Dit zijn de kenmerken van de motor die we hebben gekozen: bij 6V 175 rpm en 4 kg cm bij 12V 350 rpm en 8 kg cm. Wetende dat het zal worden gevoed tussen 9,6 en 12V door een lineaire interpolatie uit te voeren, lijkt het duidelijk dat aan de bovenstaande beperkingen zal worden voldaan.

Lichtsensoren: We hebben gekozen voor lichtafhankelijke weerstanden (LDR) omdat hun weerstand snel varieert met licht en de spanning op de LDR eenvoudig kan worden gemeten door een constante spanning aan te brengen op een spanningsdeler die de LDR bevat.

Scherpe sensoren: ze worden gebruikt om obstakels te vermijden. Scherpe afstandssensoren zijn goedkoop en gebruiksvriendelijk, waardoor ze een populaire keuze zijn voor objectdetectie en -bereik. Ze hebben doorgaans hogere updatesnelheden en kortere maximale detectiebereiken dan sonarafstandsmeters. Er zijn veel verschillende modellen op de markt met verschillende werkbereiken. Omdat ze in dit project worden gebruikt om obstakels te detecteren, hebben we gekozen voor degene met een bereik van 10-80 cm.

Waterpomp: De waterpomp is een eenvoudige, lichte en niet te krachtige pomp die compatibel is met het spanningsbereik van de motoren om voor beide dezelfde voeding te gebruiken. Een andere oplossing om de plant met water te voeden was om een waterbasis gescheiden te hebben van de robot, maar het is veel eenvoudiger om er een op de robot te hebben.

Hygrometer: Een hygrometer is een vochtigheidssensor die in de grond wordt geplaatst. Het is noodzakelijk omdat de robot moet weten wanneer de pot droog is om er water naar toe te sturen.

Stap 2: MECHANISCH ONTWERP

MECHANISCH ONTWERP
MECHANISCH ONTWERP
MECHANISCH ONTWERP
MECHANISCH ONTWERP
MECHANISCH ONTWERP
MECHANISCH ONTWERP
MECHANISCH ONTWERP
MECHANISCH ONTWERP

In principe zal het ontwerp van de robot bestaan uit een rechthoekige doos, met drie wielen aan de onderkant en een deksel dat aan de bovenkant opent. De plant wordt bovenop het waterreservoir geplaatst. De plantpot wordt in de plantpotbevestiging geplaatst die op de bovenste plank van de robot wordt geschroefd. Het waterreservoir is een beetje Tupperware gekrast op de bovenste plank van de robot en de waterpomp is ook gekrast in de bodem van het waterreservoir zodat alles er makkelijk uit te halen is bij het bijvullen van de Tupperware met water. Er is een klein gaatje gemaakt in het deksel van het reservoir vanwege de buis met water die in de plantpot gaat en de voeding van de pomp in de bak. Er wordt dus een gat gemaakt in de bovenste plank van de doos en ook de kabels van de hygrometer lopen door dit gat.

Ten eerste wilden we dat de robot een aantrekkelijk ontwerp zou hebben. Daarom hebben we besloten om het elektronische deel in een doos te verbergen, net buiten de plant en het water. Dit is belangrijk omdat planten deel uitmaken van de decoratie van het huis en de ruimte visueel niet mogen aantasten. De componenten in de doos zullen gemakkelijk toegankelijk zijn via een deksel aan de bovenzijde en de zijpanelen zullen de nodige gaten hebben zodat het gemakkelijk is om bijvoorbeeld de robot aan te zetten of de Arduino op een laptop aan te sluiten als we dat willen om het opnieuw te programmeren.

De componenten in de doos zijn: de Arduino, de motorcontroller, de motoren, de LDR, de stapelhouders, het breadboard en de scharnieren. De Arduino is op kleine pilaren gemonteerd, zodat de onderkant niet wordt beschadigd en de motorcontroller bovenop de Arduino is gemonteerd. De motoren worden op de motorbevestigingen geschroefd en de motorbevestigingen worden vervolgens op de onderste plank van de doos geschroefd. De LDR zijn gesoldeerd op een stukje breadboard. Op dit breadboard worden mini-houten planken gelijmd om het aan de zijvlakken van de robot te schroeven. Er is één LDR aan de voorkant, één aan de linkerkant en één aan de rechterkant, zodat de robot de richting kan kennen met de meeste hoeveelheid licht. De paalhouders zijn aan de onderkant van de doos gekrast om ze gemakkelijk te verwijderen en de palen te verwisselen of op te laden. Vervolgens wordt het breadboard op de onderste plank geschroefd met kleine driehoekige pilaren met gaten in de vorm van de hoek van het breadboard om het te ondersteunen. Ten slotte worden de scharnieren aan de achterkant en de bovenkant vastgeschroefd.

Op de voorkant worden drie scherpe punten direct geschroefd om obstakels zo goed mogelijk te detecteren en te ontwijken.

Hoewel het fysieke ontwerp belangrijk is, mogen we het technische gedeelte niet vergeten, we bouwen een robot en het moet praktisch zijn en voor zover mogelijk moeten we de ruimte optimaliseren. Dit is de reden om voor een rechthoekige vorm te gaan, het was de beste manier om alle componenten te rangschikken.

Ten slotte, voor de beweging, zal het apparaat drie wielen hebben: twee standaard gemotoriseerde wielen aan de achterkant en één kogelgieter aan de voorkant. Ze worden weergegeven in een driewielaandrijving, configuratie, voorbesturing en achterwaarts rijden.

Stap 3: PRODUCTIE VAN ONDERDELEN

PRODUCTIE VAN ONDERDELEN
PRODUCTIE VAN ONDERDELEN
PRODUCTIE VAN ONDERDELEN
PRODUCTIE VAN ONDERDELEN
PRODUCTIEONDERDELEN
PRODUCTIEONDERDELEN

Het fysieke uiterlijk van de robot kan worden gewijzigd op basis van uw interesse. Technische tekeningen zijn aanwezig, wat kan werken als een goede basis bij het ontwerpen van uw eigen tekeningen.

Lasergesneden onderdelen:

Alle zes onderdelen waaruit de behuizing van de robot bestaat, zijn met een laser uitgesneden. Het materiaal dat hiervoor is gebruikt is gerecycled hout. Deze doos kan ook van plexiglas worden gemaakt, wat iets duurder is.

3D geprinte onderdelen:

De twee standaard wielen die aan de achterkant van de robot zijn geplaatst, zijn 3D geprint in PLA. De reden is dat de enige manier om wielen te vinden die aan alle behoeften voldeden (passend in de gelijkstroommotoren, grootte, gewicht…) was om ze zelf te ontwerpen. De motorfixatie werd om budgettaire redenen ook 3D-geprint. Vervolgens werden de plantpotsteun, de pilaren die de Arduino ondersteunen en de hoeken die het breadboard ondersteunen ook 3D-geprint omdat we een bepaalde vorm nodig hadden die in onze robot paste.

Stap 4: ELEKTRONICA

ELEKTRONICA
ELEKTRONICA
ELEKTRONICA
ELEKTRONICA
ELEKTRONICA
ELEKTRONICA

Scherpe sensoren: De scherpe sensoren hebben drie pinnen. Twee daarvan zijn voor voeding (Vcc en Ground) en de laatste is het gemeten signaal (Vo). Voor voeding hebben we de positieve spanning die tussen 4,5 en 5,5 V kan zijn, dus we zullen de 5V van de Arduino gebruiken. Vo wordt aangesloten op een van de analoge pinnen van de Arduino.

Lichtsensoren: De lichtsensoren hebben een kleine schakeling nodig om te kunnen werken. De LDR wordt in serie geschakeld met een weerstand van 900 kOhm om een spanningsdeler te creëren. De aarde is verbonden met de pin van de weerstand die niet is verbonden met de LDR en de 5V van de Arduino is verbonden met de pin van de LDR die niet is verbonden met de weerstand. De pin van de weerstand en de met elkaar verbonden LDR wordt aangesloten op een analoge pin van de Arduino om deze spanning te meten. Deze spanning varieert tussen 0 en 5V, waarbij 5V overeenkomt met volledig licht en bijna nul overeenkomt met donker. Vervolgens wordt het hele circuit gesoldeerd op een stukje breadboard dat in de zijplanken van de robot past.

Batterijen: De batterijen zijn gemaakt van 4 stapels tussen 1,2 en 1,5 V elk dus tussen 4,8 en 6V. Door twee paalhouders in serie te zetten hebben we tussen 9,6 en 12 V.

Waterpomp: De waterpomp heeft een aansluiting (power jack) van hetzelfde type als de voeding van de Arduino. De eerste stap is om de verbinding door te snijden en de draad bloot te leggen om de draad voor aarde en de draad voor positieve spanning te hebben. Omdat we de pomp willen aansturen, zullen we deze in serie zetten met een stroomregelbare transistor die als schakelaar wordt gebruikt. Vervolgens wordt er een diode parallel aan de pomp geschakeld om achterwaartse stromen te voorkomen. Het onderbeen van de transistor is verbonden met de gemeenschappelijke aarde van Arduino/batterijen, het middelste met een digitale pin van de Arduino met een weerstand van 1kOhm in serie om de spanning van de Arduino om te zetten in stroom en het bovenbeen op de zwarte kabel van de pomp. Vervolgens wordt de rode kabel van de pomp aangesloten op de positieve spanning van de accu's.

Motoren en schild: Het schild moet worden gesoldeerd, het wordt ongesoldeerd verzonden. Zodra dit is gebeurd, wordt het op de Arduino geplaatst door alle headers van het schild in de pinnen van de Arduino te knippen. Het schild wordt gevoed met de batterijen en het zal dan de Arduino van stroom voorzien als een jumper is ingeschakeld (oranje pinnen in de afbeelding). Pas op dat u de jumper niet plaatst wanneer de Arduino wordt aangedreven door een ander middel dan het schild, omdat de Arduino dan het schild van stroom zou voorzien en de verbinding zou kunnen verbranden.

Breadboard: Alle componenten worden nu op het breadboard gesoldeerd. De aarde van één paalhouder, de Arduino, de motorcontroller en van alle sensoren worden op dezelfde rij gesoldeerd (op onze breadboard hebben rijen hetzelfde potentieel). Dan wordt de zwarte kabel van de tweede paalhouder op dezelfde rij gesoldeerd als de rode van de eerste paalhouder waarvan de grond al gesoldeerd is. Er wordt dan een kabel gesoldeerd op dezelfde rij als de rode kabel van de tweede paalhouder die overeenkomt met de twee in serie. Deze kabel wordt verbonden met het ene uiteinde van de schakelaar en het andere uiteinde wordt verbonden met een draad die op een vrije rij op het breadboard is gesoldeerd. De rode kabel van de pomp en de voeding van de motorcontroller worden aan deze rij gesoldeerd (de schakelaar is niet weergegeven op de afbeelding). Dan wordt de 5V van de Arduino op een andere rij gesoldeerd en de voedingsspanning van elke sensor wordt op dezelfde rij gesoldeerd. Probeer indien mogelijk een jumper op het breadboard en een jumper op het onderdeel te solderen, zodat u ze gemakkelijk kunt loskoppelen en de montage van elektrische componenten gemakkelijker zal zijn.

Stap 5: PROGRAMMERING

PROGRAMMERING
PROGRAMMERING

Programma stroomschema:

Het programma is vrij eenvoudig gehouden met behulp van het begrip toestandsvariabelen. Zoals u in het stroomdiagram kunt zien, veroorzaken deze toestanden ook een notie van prioriteit. De robot controleert de voorwaarden in deze volgorde:

1) In toestand 2: Heeft de plant voldoende water met de functie vocht_niveau? Als het vochtgehalte gemeten door de hygrometer lager is dan 500, zal de pomp draaien totdat het vochtgehalte boven de 500 komt. Als de plant voldoende water heeft, gaat de robot naar stand 3.

2) In toestand 3: Vind de richting met het meeste licht. In deze staat heeft de plant voldoende water en moet hij de richting met het meeste licht volgen en obstakels vermijden. De functie light_direction geeft de richting aan van de drie lichtsensoren die het meeste licht ontvangen. De robot zal dan de motoren aansturen om die richting te volgen met de functie follow_light. Als het lichtniveau boven een bepaalde drempel (enough_light) komt, stopt de robot om het licht te volgen, aangezien er op deze positie genoeg is (stop_motoren). Om obstakels onder de 15 cm te vermijden bij het volgen van het licht, is een functie obstakel geïmplementeerd om de richting van het obstakel te keren. Om obstakels goed te ontwijken is de functie avoid_obstacle geïmplementeerd. Deze functie laat de motor weten waar het obstakel is.

Stap 6: MONTAGE

SAMENKOMST
SAMENKOMST
SAMENKOMST
SAMENKOMST
SAMENKOMST
SAMENKOMST

De montage van deze robot is eigenlijk vrij eenvoudig. De meeste componenten zijn op de doos geschroefd om ervoor te zorgen dat ze hun plaats behouden. Vervolgens worden de palenhouder, het waterreservoir en de pomp bekrast.

Stap 7: EXPERIMENTEN

Meestal gaat het bij het bouwen van een robot niet van een leien dakje. Er zijn veel tests nodig, met de volgende wijzigingen, om het perfecte resultaat te krijgen. Hier is een tentoonstelling van het proces van de plantenrobot!

De eerste stap was het monteren van de robot met motoren, Arduino, motorcontroller en lichtsensoren met een prototype breadboard. De robot gaat gewoon in de richting waar hij het meeste licht heeft gemeten. Er is een drempel bepaald om de robot te stoppen als hij genoeg licht heeft. Terwijl de robot op de vloer gleed, voegden we schuurpapier op de wielen toe om een band te simuleren.

Vervolgens werden de scherpe sensoren aan de structuur toegevoegd om obstakels te vermijden. Aanvankelijk werden twee sensoren aan de voorkant geplaatst, maar een derde werd in het midden toegevoegd omdat de scherpe sensoren een zeer beperkte detectiehoek hebben. Ten slotte hebben we twee sensoren aan de uiteinden van de robot die obstakels links of rechts detecteren en één in het midden om te detecteren of er een obstakel voor de deur staat. De obstakels worden gedetecteerd wanneer de spanning op het scherpstel boven een bepaalde waarde komt die overeenkomt met een afstand van 15 cm tot de robot. Wanneer het obstakel aan een kant staat, vermijdt de robot het en wanneer een obstakel zich in het midden bevindt, stopt de robot. Houd er rekening mee dat obstakels onder de scherpe punten niet detecteerbaar zijn, dus obstakels moeten een bepaalde hoogte hebben om te worden vermeden.

Daarna werden de pomp en de hygrometer getest. De pomp stuurt water zolang de spanning van de hygrometer onder een bepaalde waarde komt die overeenkomt met een droge pot. Deze waarde werd gemeten en experimenteel bepaald door testen met droge en vochtige potplanten.

Uiteindelijk werd alles samen getest. De plant controleert eerst of hij voldoende water heeft en begint dan het licht te volgen terwijl hij obstakels ontwijkt.

Stap 8: LAATSTE TEST

Hier zijn video's van hoe de robot uiteindelijk werkt. Hoop dat je het leuk vind!

Stap 9: WAT HEBBEN WE GELEERD MET DIT PROJECT?

Hoewel de algehele feedback van dit project geweldig is omdat we veel hebben geleerd, waren we behoorlijk gestrest tijdens het bouwen vanwege de deadlines.

Problemen tegengekomen

In ons geval hadden we verschillende problemen tijdens het proces. Sommige waren eenvoudig op te lossen, bijvoorbeeld toen de levering van de componenten vertraging opliep, zochten we gewoon winkels in de stad waar we ze konden kopen. Anderen vereisen wat meer denkwerk.

Helaas is niet elk probleem opgelost. Ons eerste idee was om de eigenschappen van huisdieren en planten te combineren, om het beste van elk te krijgen. Voor de planten zouden we het kunnen doen, met deze robot kunnen we een plant hebben die onze huizen siert en we hoeven er niet voor te zorgen. Maar voor de huisdieren hebben we geen manier bedacht om het bedrijf dat ze maken te simuleren. We hebben verschillende manieren bedacht om het mensen te laten volgen, en we begonnen er een te implementeren, maar we hadden geen tijd om het af te maken.

Verdere verbeteringen

Hoewel we graag alles hadden willen krijgen wat we wilden, was het leren met dit project geweldig. Misschien kunnen we met meer tijd een nog betere robot krijgen. Hier stellen we enkele ideeën voor om onze robot te verbeteren die sommigen van jullie misschien willen proberen:

- Leds van verschillende kleuren (rood, groen, …) toevoegen die de gebruiker vertellen wanneer de robot moet worden opgeladen. De meting van de batterij kan worden gedaan met een spanningsdeler met een maximale spanning van 5V wanneer de batterij volledig is opgeladen om deze spanning te meten met een Arduino. Dan gaat de bijbehorende led aan.

- Het toevoegen van een watersensor die de gebruiker vertelt wanneer het waterreservoir moet worden bijgevuld (waterhoogtesensor).

- Een interface maken zodat de robot berichten naar de gebruiker kan sturen.

En natuurlijk mogen we het doel niet vergeten om het mensen te laten volgen. Huisdieren zijn een van de dingen waar mensen het meest van houden, en het zou mooi zijn als iemand zou kunnen bereiken dat de robot dit gedrag simuleert. Om het te vergemakkelijken, gaan we hier alles geven wat we hebben.

Stap 10: Hoe zorg je ervoor dat de robot mensen volgt?

Image
Image
Hoe de robot mensen te laten volgen?
Hoe de robot mensen te laten volgen?
Hoe de robot mensen te laten volgen?
Hoe de robot mensen te laten volgen?

We kwamen erachter dat de beste manier om dit te doen het gebruik van drie ultrasone sensoren, een zender en twee ontvangers zou zijn.

Zender

Voor de zender willen we een duty cycle van 50% hebben. Om dit te doen, moet je een 555-timer gebruiken, we hadden de NE555N gebruikt. Op de foto zie je hoe de schakeling gebouwd moet worden. Maar dan moet je wel een extra condensator toevoegen aan uitgang 3, bijvoorbeeld 1µF. De weerstanden en condensatoren worden berekend met de volgende formules: (foto's 1 & 2)

Omdat een inschakelduur van 50% wenselijk is, zullen t1 en t2 aan elkaar gelijk zijn. Dus met een 40 kHz zender zijn t1 en t2 gelijk aan 1,25*10-5 s. Als je C1 = C2 = 1 nF neemt, kunnen R1 en R2 worden berekend. We namen R1= 15 kΩ en R2= 6,8 kΩ, zorg ervoor dat R1>2R2!

Toen we dit in circuit op de oscilloscoop testten, kregen we het volgende signaal. De schaal is 5 µs/div dus de frequentie zal in werkelijkheid rond de 43 kHz liggen. (Afbeelding 3)

Ontvanger

Het ingangssignaal van de ontvanger zal te laag zijn om de Arduino nauwkeurig te kunnen verwerken, dus het ingangssignaal moet worden versterkt. Dit wordt gedaan door een inverterende versterker te maken.

Voor de opamp hebben we een LM318N gebruikt, die we hebben gevoed met 0 V en 5 V van de Arduino. Om dit te doen, moesten we de spanning verhogen rond het signaal dat oscilleert. In dit geval is het logisch om deze te verhogen naar 2,5 V. Omdat de voedingsspanning niet symmetrisch is, moeten we ook een condensator voor de weerstand plaatsen. Zo hebben we ook een hoogdoorlaatfilter gemaakt. Met de waarden die we hadden gebruikt, moest de frequentie hoger zijn dan 23 kHz. Wanneer we een versterking van A=56 gebruikten, zou het signaal in verzadiging gaan, wat niet goed is, dus gebruikten we in plaats daarvan A=18. Dit zal nog voldoende zijn. (Afbeelding 4)

Nu we een versterkte sinusgolf hebben, hebben we een constante waarde nodig zodat de Arduino deze kan meten. Een manier om dit te doen is om een piekdetectorcircuit te maken. Op deze manier kunnen we zien of de zender verder van de ontvanger af staat of in een andere hoek staat dan voorheen door een constant signaal te hebben dat evenredig is met de intensiteit van het ontvangen signaal. Omdat we een precisiepiekdetector nodig hebben, plaatsen we de diode, 1N4148, in de spanningsvolger. Door dit te doen, hebben we geen diodeverlies en hebben we een ideale diode gecreëerd. Voor de opamp hebben we dezelfde gebruikt als in het eerste deel van het circuit en met dezelfde voeding, 0 V en 5V.

De parallelle condensator moet een hoge waarde hebben, dus hij zal erg langzaam ontladen en we zien nog steeds dezelfde piekwaarde als de echte waarde. De weerstand zal ook parallel worden geplaatst en zal niet te laag zijn, omdat anders de ontlading groter zal zijn. In dit geval is 1,5 µF en 56 kΩ voldoende. (Afbeelding 5)

Op de foto is de totale schakeling te zien. Waar uit is de uitvoer, die naar de Arduino gaat. En het 40 kHz AC-signaal zal de ontvanger zijn, waar het andere uiteinde ervan met de grond wordt verbonden. (Afbeelding 6)

Zoals we eerder zeiden, konden we de sensoren niet in de robot integreren. Maar we leveren de video's van de tests om te laten zien dat het circuit werkt. In de eerste video is de versterking (na de eerste OpAmp) te zien. Er zit al een offset van 2,5V op de oscilloscoop dus het signaal zit in het midden, de amplitude varieert als de sensoren van richting veranderen. Wanneer de twee sensoren tegenover elkaar staan, zal de amplitude van de sinus groter zijn dan wanneer de sensoren een grotere hoek of afstand tussen beide hebben. Op de tweede video (de uitgang van de schakeling) is het gelijkgerichte signaal te zien. Nogmaals, de totale spanning zal hoger zijn wanneer de sensoren tegenover elkaar staan dan wanneer ze dat niet zijn. Het signaal is niet helemaal recht door de ontlading van de condensator en door de volt/div. We konden een constant signaal meten dat afnam wanneer de hoek of de afstand tussen de sensoren niet meer optimaal was.

Het idee was toen om de robot de ontvanger te laten hebben en de gebruiker de zender. De robot kon een bocht op zichzelf doen om te detecteren in welke richting de intensiteit het hoogst was en kon in die richting gaan. Een betere manier zou kunnen zijn om twee ontvangers te hebben en de ontvanger te volgen die de hoogste spanning detecteert en een nog betere manier is om drie ontvangers te plaatsen en deze te plaatsen zoals de LDR om te weten in welke richting het signaal van de gebruiker wordt uitgezonden (recht, links of rechts).

Aanbevolen: