Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

WalaBeer Tank

Componenten en benodigdheden

Walabot Creator
× 1
Arduino MKR1000
× 1
Raspberry Pi 3 Model B
× 1
Amazon Alexa Amazon Echo
of https://echosim.io/
× 1
SparkFun-motorstuurprogramma - dubbele TB6612FNG (1A)
× 1
Tankframe (bevat 2 geborstelde gelijkstroommotoren)
× 1
Servo's (Tower Pro MG996R)
× 3
Metalen bouwpakket
× 1
Stappenmotor + driver
Ik gebruikte een 28byj-48 stappenmotor en een X113647 motordriver
× 1
7.4V LiPo-batterij
× 1
7.4V LiPo-acculader
× 1
Draaipotentiometer (generiek)
× 1
LED (generiek)
Ik heb een segment van een ledstrip gebruikt
× 2
Vislijn
× 1
Dun plastic of hard papier voor de omslag
× 1
5V BEC-circuit
× 1
Weerstand 10k ohm
× 1
Weerstand 22,1k ohm
× 1
Weerstand 2.21k ohm
× 1
Darlington hoogvermogentransistor
× 1
30 cm lange houten linialen
× 2
Voltmeter
Dit is optioneel
× 1
RC-zender met ontvanger
Dit zijn optionele onderdelen om de tank handmatig te bedienen. Het kan werken zonder een afstandsbediening.
× 1
Bier
× 1

Benodigde gereedschappen en machines

Soldeerbout (algemeen)
Hot lijmpistool (algemeen)
Zaaggereedschap
Boor
Rasp

Apps en online services

Arduino IDE
Amazon Web Services AWS IoT
Amazon Web Services AWS Lambda
Amazon Alexa Alexa Skills Kit
Walabot SDK
Python

Over dit project

Samenvatting

Er zijn dingen die elke man diep van binnen wil hebben. Het combineren van bier en tanks is een van deze dingen! Dit project gaat over dit ding, een spraakgestuurde tank die je bier levert met een autonome "volg mij"-functie of met een RC-besturing. Laten we de biertank van onze dromen bouwen!

Chassis

We hebben een goede basis nodig voor de tank. Ik vond dit chassis op banggood. Het was vrij goedkoop en het zag er zo cool uit dat ik er een moest kopen.

Direct na ontvangst van het product kwam het eerste probleem. Door de verkeerde verpakking liep het een aantal ernstige verwondingen op tijdens het transport.

Het kostte veel uren en veel lijm, maar gelukkig kon ik het meestal repareren.

Kraan

Het tankchassis bevat zowel de motoren als de versnellingsbakken, dus de volgende stap was om erachter te komen hoe het bier te serveren. Na talloze ideeën kwam ik erachter dat de beste en coolste manier om het te doen is om het bier te verbergen en het vervolgens met een kraan op te tillen. Dit is het basisontwerp dat ik bedacht:

Ik gebruikte mijn oude metalen bouwpakket omdat ik een sterk maar gemakkelijk aan te passen skelet nodig had. De kraan is verbonden met een stappenmotor met een vislijn. De 28byj-48 stappenmotor was hiervoor uitstekend geschikt. Het is niet snel, maar het kan gemakkelijk de kraan en het bier optillen. Eigenlijk is de motor zo sterk dat als ik hem niet op tijd stopte, hij de vislijn brak.

Het werkte wonderwel, maar het skelet was niet sterk genoeg en begon al heel vroeg te buigen. Om dit probleem op te lossen, moest ik de structurele integriteit vergroten. Ik gebruikte twee, 30 cm lange hardhouten linialen en wat extra onderdelen om het sterker te maken. Na wat boren, zagen en raspen is hier de volgende versie:

Zoals je kunt zien hebben de aanpassingen het buigprobleem opgelost en is het erg stabiel.

Case

Een Walabot (ontwikkelaarsversie) wordt het 'oog' van de tank. Meer over Walabot in de Walabot-sectie. De voorste plaats heeft een houderdeel voor de Walabot. Ik had een metalen onderdeel dat de perfecte maat heeft om de magnetische houder van Walabot te gebruiken. Ik heb ook een Walabot-logo gemaakt van hete lijm om te voorkomen dat de Walabot op het ronde gedeelte gaat draaien:

De magnetische montage is geweldig omdat ik een Walabot gemakkelijk in meerdere projecten kan gebruiken zonder serieuze demontage en hij is ook sterk genoeg.

Ik begon een hoes rond het frame te maken om de onderdelen te verbergen. Ik gebruikte zwart kartonpapier en plastic vellen voor de omslag.

Op dit punt was het voorste en middelste deel niet bedekt. Ik had ook een luik aan de bovenkant nodig om het bier volledig te verbergen. Om het luik te verplaatsen heb ik twee servo's gebruikt, wat warmblauw en wat isolatietape. Deze bovendeur wordt alleen voor design gebruikt, het beschermt het bier niet echt. Het is echter erg cool als het opengaat en het bier omhoog gaat.

De deuren zijn gemaakt van twee plastic platen, houten stokken en wat gelijmd en opgerold papier, aan elkaar gelijmd met hete lijm. Het is niet het mooiste, maar in het echt ziet het er niet zo slecht uit. Ik heb alles zwart geverfd. In het echt is het veel moeilijker om het verschil tussen de zwarte delen te zien.

Kraan - Vol. 2

Laten we nog een keer teruggaan naar de kraan. Ik had nog één ding nodig om het betrouwbaar te gebruiken:feedback.

Oorspronkelijk wilde ik hiervoor een eenvoudige binaire feedback gebruiken. Wanneer de kraan in neergelaten toestand is, zou deze een circuit sluiten. Als het omhoog was gebracht, zou het openen:de schroeven en de veer in de rode cirkel zouden die schakelaar zijn geweest. Het zou een timer hebben gebruikt om de toppositie te bepalen.

Het was niet al te geavanceerd, maar het idee is uitgewerkt. Helaas was het helemaal niet betrouwbaar, dus het had gemakkelijk kunnen leiden tot beschadiging van de kraan.

Ik kwam met een andere, veel betere oplossing, die in de blauwe rechthoek. Ik heb een 10K potentiometer op de as van de kraan gelijmd, dus ik heb betrouwbare feedback over de huidige hoek van de kraan. Het is heel eenvoudig om op deze manier de boven- en onderpositie te bepalen. Ter info:tot nu toe gebruikte ik mijn goede oude Arduino Uno om te testen omdat het proto-schild zo handig is.

Eigenlijk vind ik dit feedbackgedeelte erg leuk. Het was niet gepland, maar het voegt wat extra coolheid toe aan het uiterlijk van de tank.

Circuit

Oké, het lichaam van de tank is klaar, maar we hebben wat elektronica nodig om het te laten bewegen!

Ik heb deze afbeelding ook in de sectie Schema's geplaatst, maar hier kun je hem vergroten zonder te downloaden. Het circuit lijkt in eerste instantie misschien een beetje ingewikkeld, maar eigenlijk is het vrij eenvoudig. De bijgevoegde aantekeningen zouden moeten helpen bij alles dat enige uitleg nodig heeft.

Dit project maakt momenteel geen gebruik van de wifi-functionaliteit van de Arduino MKR1000, maar zoals ik weet, kun je het niet zomaar vervangen door een Arduino Uno als je de tank wilt besturen met een RC-zender. Mijn project gebruikt 3 kanalen voor het regelen van snelheid, draaien en de kraan. Ik heb 3 pinnen nodig met externe interruptmogelijkheden. Arduino Uno's hebben hiervoor maar 2 pinnen. We hebben die pinnen nodig om de PWM-waarden van de corresponderende kanalen van de RC-ontvanger te lezen.

Ik bouwde het circuit op een proto-PCB. Het is behoorlijk compact geworden. De blauwe LED aan de linkerkant zou een eenvoudige 'ingebouwde' LED zijn geweest voor het debuggen, maar ik heb hem eigenlijk nooit gebruikt. De groene connector wordt gebruikt om de LiPo-batterij aan te sluiten.

De meeste draden die op dit bord zijn aangesloten, bevinden zich aan de bovenkant van de tank. Het lag voor de hand om het bord daar te lijmen om 'wire hell' te voorkomen.

Zoals je op de afbeelding kunt zien, ben ik oorspronkelijk begonnen met een Raspberry Pi Zero W, maar vanwege het gebrek aan stroom ben ik overgestapt op een Raspberry Pi 3 B.

Het werkte op dit punt perfect, maar ik heb een extra coole functie toegevoegd:verborgen koplamp. Het zwarte kunststof gedeelte aan de rechterzijde is eenvoudig te verplaatsen. Ik bevestigde een servo om hem op en neer te bewegen en ik gebruikte ook een segment van een 12V LED-strip. Een 12V LED-strip voeden met een 7,4V LiPo-batterij is geen goed idee. De lichten zullen erg zwak zijn. Ik heb de middelste LED vervangen door een draad om de resterende LED's helder te maken. Het werkte perfect.

De front-LED's worden aangestuurd met dezelfde pin als de blauwe indicatie-LED. Ik moest het bord iets aanpassen door er wat extra headers en een transistor aan toe te voegen. Het resultaat is geweldig:

Arduino - hardware

Ik gebruikte een Arduino MKR1000 om de tank te besturen. Dit is het kleinste Arduino- of Arduino IDE-compatibele apparaat in mijn verzameling dat 3 externe interrupts aankan en genoeg pinnen heeft voor dit project. Hij heeft ook wifi-mogelijkheden, maar die ga ik nu niet gebruiken.

De tank heeft 5 PWM-compatibele pinnen nodig. 3 voor de servo's en 2 voor de motoren. Als u de mogelijkheden controleert, ziet u dat er 12 PWM-compatibele pinnen zijn. Dat is toch goed genoeg? Nou ja en nee.

Pinnen 2-5 hebben de markering ~. Ik geloof dat dit betekent dat alleen deze vier pinnen in staat zijn om hardware PWM-signalen te creëren. Ik denk dat de andere pinnen alleen software-PWM-signalen kunnen maken. De technische specificaties schrijven hier niets over, maar toen ik mijn eerste prototype MKR1000 kreeg, vermeldde de documentatie alleen 4 PWM-compatibele pinnen. Dat vier. Oorspronkelijk bestuurde ik de hatch servo's via twee van deze software PWM-pinnen. De combinatie van software-PWM-generatie en hardware-interrupt-gebaseerde PWM-signaaluitlezing heeft dit probleem tot gevolg:

Ik heb dit probleem opgelost door hardware PWM-pinnen voor de servo's te gebruiken. Helaas moest ik een van die pinnen gebruiken voor de servo van de LED-deur, omdat de andere twee hardware-pinnen nodig waren om de motoren aan te sturen. Dankzij de TB6612FNG-motordriver had ik slechts twee PWM-pinnen (en 4 andere digitale pinnen) nodig om de motoren te besturen. De 'LED-deur'-servo is veel langzamer dan de andere, dus het maakt soms een zacht zoemend geluid. Het gebruik van slechts één software PWM-pin in plaats van twee hielp ook. In de toekomst zou ik dat onderdeel misschien kunnen herbouwen om op een andere manier de deur van de LED's te openen. Solenoïde(n) kunnen de oplossing zijn.

De Arduino kan de spanning van de batterij meten en deze vervolgens serieel verzenden. Verder heb ik een eenvoudige voltmeter in de achterkant van de tank geïntegreerd. Het wordt gebruikt als feedback voor de gebruiker over de status van de batterij. Het is een apart circuit en wordt niet bestuurd door de Arduino.

Arduino - Radiobesturing

De MKR1000 verwerkt 3 afzonderlijke PWM-signalen met externe interrupts. De pulstijd van de signalen ligt in het bereik van ongeveer 1000 tot 2000 ons. Het eerste kanaal wordt gebruikt om een ​​variabele genaamd motorSpeedBase te berekenen. Het is het basistoerental voor de motoren en wordt als volgt berekend:

motorSpeedBase =(vertical_pulse_time - 1500) / 2; 

Om de motoren te besturen heb ik 8 bit PWM-signalen gebruikt, dus ik heb de waarden geschaald naar dit bereik van -255 tot 255. De MKR1000 kan beter dan 8 bit, maar is meer dan goed genoeg voor deze motoren.

De variabele motorSpeedChange wordt gebruikt voor het roeren en wordt berekend vanaf het tweede kanaal. Het wordt op dezelfde manier berekend als motorSpeedBase. Het verschil is de deling door 3 in plaats van 2:Dit verschil helpt om de tank onder controle te houden.

motorSpeedChange =(horizontal_pulse_time - 1500) / 3; 

Het 3e kanaal wordt gebruikt door een enkele schakelaar. Het regelt de beweging van de kraan en de luikdeuren. Het wordt als volgt berekend:

verhoogd =state_switch_pulse_time <1500; 

De waarde is 1000 us wanneer uitgeschakeld en 2000 us wanneer ingeschakeld. Het resultaat is een bool.

Het uiteindelijke motortoerental wordt als volgt berekend:

int rightMotorSpeed ​​=motorSpeedBase + motorSpeedChange; int leftMotorSpeed ​​=motorSpeedBase - motorSpeedChange; 

Als het resultaat hoger / lager is dan de maximale / minimale waarde, wordt de waarde ingesteld op de max / min-waarde (255 of -255). De gerelateerde pinnen worden bijgewerkt op basis van de motorSpeed-waarden. Als een snelheidswaarde de minimumwaarde niet bereikt, wordt die motor uitgeschakeld.

De kraan en het luik worden bediend door deze functie:

void handleCrane() {int craneValue =analogRead(CRANE_FEEDBACK_PIN); if (elevated) { if (craneValue  

Het begint met het controleren van de huidige staat van de kraan. Als het moet worden verhoogd, maar dat is niet het geval, dan zal het de servo's van de luikdeuren updaten en de kraan omhoog bewegen. Als hij moet worden neergelaten, maar dat is niet het geval, dan laat hij de kraan zakken en sluit vervolgens het luik. De spoelen van de stappenmotor moeten aan het einde van het proces worden uitgeschakeld, omdat ze ernstig kunnen opwarmen en de batterij leeg laten lopen als we er een aan laten staan.

Arduino - Raspberry Pi-communicatie

De Arduino is aangesloten en gevoed vanaf de Raspberry Pi met een USB - micro-USB-kabel en ze communiceren via serieel. De Raspberry bestuurt de Arduino met deze commando's:

  • s --> schakel de radiobesturing uit en accepteer alleen seriële commando's. De Arduino zal hierop met 'OK' antwoorden en de radiobesturing uitschakelen. Deze OK is een onderdeel van hoe de Rpi de Arduino herkent.
  • r --> radiobesturing weer aan
  • e --> hef de kraan op (en open zo het luik)
  • d --> laat de kraan zakken
  • m X Y -> het instellen van de snelheid van de motoren. X is motorSpeedBase en Y is motorSpeedChange. Zowel X als Y moeten gehele getallen zijn
  • b --> de arduino zal antwoorden met een geheel getal:batterijspanning * 100
  • l --> verlichting aanzetten
  • o --> verlichting uitschakelen

Opgemerkt moet worden dat in het geval van seriële besturing, de Arduino de interrupts op RC-kanaal 1 en 2 uitschakelt, maar niet op 3. Kanaal 3 (de schakelaar) wordt gebruikt als een veiligheidsschakelaar om de WalaBeer-tank uit te schakelen als het gek begint te worden dingen in de autonome modus.

Walabot

Dit is het deel waar Walabot van pas komt. Walabot is een 3D-sensor die microgolven gebruikt voor beeldvorming. Het kan verbazingwekkende dingen doen, zoals door muren kijken, je ademhaling van een afstand detecteren, in het donker zien, enzovoort. Ik wil geen pagina's schrijven over zijn andere mogelijkheden omdat anderen dat geweldig hebben gedaan. Maar ik raad je echt aan erover te lezen.

Ik gebruik Walabot als de enige navigatiesensor op de tank. Om de Walabot met de Raspberry Pi te gebruiken, moeten we eerst de Walabot SDK installeren. U kunt de SDK hier downloaden en de Walabot API-site helpt u bij het installeren ervan. Er is veel nuttige informatie en voorbeelden over het gebruik van Walabot. Ik raad aan om de site te controleren.

Het stroomverbruik van de Walabot ligt tussen de 0,4-0,9A. Het betekent dat de Raspberry Pi standaard niet genoeg energie kan leveren om de Walabot van stroom te voorzien. Gelukkig is er een manier om het uitgangsvermogen van de USB-poorten van de rpi te verhogen door deze regel toe te voegen:`max_usb_current=1` aan de /boot/config.txt. Zoals ik weet verhoogt het het uitgangsvermogen van 600mA naar 1200mA.

Dat zou geweldig zijn, maar hier komt een probleem:ik voed ook de Arduino en de servo's van de Raspberry. De motoren van de tank en de stappenmotor worden aangedreven door de batterij, dus ik dacht dat het niet uit zou maken. Het doet het echter wel. Als ik de Walabot in deze toestand start, stopt hij met het bericht WALABOT_ERR_PROTOCOL. Mogelijk treedt er een storing op wanneer ik hem probeer te starten.

Het batterij-eliminatorcircuit kan tot 3A leveren, dus dat is hier meer dan genoeg. De Walabot heeft twee micro-USB-poorten. De middelste poort zal me in deze situatie helpen omdat hij van daaruit kan worden gevoed terwijl hij aan de andere kant communiceert. Om dit te doen moest ik een aanpassing doen en de kap van de Walabot verwijderen om deze jumper te verplaatsen

Daarna werkte de Walabot perfect, geen WALABOT_ERR_PROTOCOL meer.

Het logo op de achterkant (het gladde deel is de voorkant) bevat vier zeer sterke ingebouwde magneten. Die werden gebruikt om de Walabot gemakkelijk aan de metalen voorkant van de tank te bevestigen zonder extra hardware.

Volg mij

Een van de 'verkopende punten' van de tank is de volg mij-modus. Als je de biertank vraagt ​​je te volgen, dan zal hij zijn best doen en je volgen. Zodra je je bestemming hebt bereikt, vraag je gewoon om het bier dat erin zit. Het is een geweldige feesttruc!

De Walabot SDK biedt allerlei manieren om met de Walabot te communiceren. Mijn project gebruikt de getTargets functie met Moving Target Identification (MTI)-modus. Het wordt gebruikt om bewegende objecten voor de Walabot te detecteren. Met mijn configuratie retourneert getTargets maximaal 4 doelen en ziet het objecten op een maximale afstand van 1,5 meter.

De doelen hebben XYZ-coördinaten en een amplitudeparameter. Ik gebruik alleen Y- en Z-coördinaten omdat hoogte (X) hier niet belangrijk is. Het probleem is dat er geen manier is om te zeggen welk doelwit wat is.

In de vroege versie heb ik een regel gemaakt om de mens in de doelenlijst te vinden:voordat je hem opdracht geeft je te volgen, moet je op 80 cm afstand voor de Walabot staan. Daarna gaat mijn code ervan uit dat het dichtstbijzijnde object met een voldoende hoge amplitude de mens is. Als de mens wordt gedetecteerd, hoeft de tank alleen maar de mens in de gewenste positie te houden door te bewegen.

Helaas was het niet perfect. Gelukkig kreeg ik een suggestie voor een andere aanpak. Het begint hetzelfde:je moet op 80cm afstand voor de Walabot gaan staan. Het dichtstbijzijnde doelwit bij de tank wordt als de mens beschouwd. Daarna zal in elke iteratie de positie van de mens het dichtst bij de vorige positie liggen. Als de afstand tussen de nieuwe en oude positie te groot zou zijn, zal de tank de positie van de mens niet bijwerken en zal hij stoppen. De tank zal proberen de mens te vinden rond de oude positie, dus als hij de persoon vindt, zal hij hem blijven volgen. Het is een vrij eenvoudig idee.

Laten we enkele gevallen bekijken in de Arena-weergave. Het doel van de tank is om de mens in het doelgebied (rode rechthoek) te houden. Het blauw komt het dichtst in de buurt en dat is de mens in deze gevallen:

  • Geval 1:De mens bevindt zich in het doelgebied, dus er is geen beweging nodig
  • Geval 2:De mens bevindt zich aan de rechterkant en hij is te dicht bij de tank. Eerst zal de tank naar rechts draaien en dan zal hij van de mens weggaan door achteruit te gaan.
  • Geval 3:De tank hoeft niet te draaien, maar de mens is te ver weg. Het zal vooruit gaan. De Walabot zag 3 doelen toen ik deze foto maakte
  • Geval 4:Er is maar één doelwit op deze foto en dat is aan de linkerkant. De tank gaat naar links en dan naar voren.
  • Geval 5:De tank gaat achteruit totdat de mens in de rode rechthoek staat.

Deze afbeeldingen zijn printscreens van de Arena-weergave van een licht gewijzigde versie van de Walabot-SensorTargets-demo. Mijn project heeft geen GUI nodig en heeft dus ook geen GUI, maar gebruikt dezelfde principes. Ik raad aan om de andere demoprojecten te bekijken op hun github-pagina.

De beweging met de huidige setup is niet al te vloeiend. Het kan niet vooruit gaan en tegelijkertijd in de autonome modus draaien. De belangrijkste reden daarvoor is de framerate van de Walabot. Het is ongeveer 6 FPS met de huidige instellingen. Het betekent dat de Raspberry elke 0,16 seconden een update krijgt. Dit is een probleem. Er kan veel gebeuren in 0,16 seconden. Om dit probleem op te lossen heb ik de tank vertraagd. Ik gebruikte de laagst mogelijke snelheid om vooruit te komen en te draaien. Ik heb ook de combinatie van draaien en bewegen verwijderd omdat die bewegingen niet betrouwbaar waren met mijn rupsopstelling. Bij hogere snelheden gingen ze veel te ver en bij lagere snelheden waren ze minder betrouwbaar dan de huidige versie.

Spraakbesturing

In de autonome modus had ik een coole manier nodig om de tank te besturen. Ik heb hiervoor de Alexa Skill Kit van Amazon gebruikt. In de vroege versie gebruikte ik het met ngrok om de Raspberry direct te besturen. Gewoonlijk zouden mensen hiervoor een versie van de Amazon Echo gebruiken, maar helaas heb ik zo'n apparaat niet. Ik moest hiervoor echosim en de Amazon Alexa-app van Google Play gebruiken. De naam van de vaardigheid is Beer Tank omdat WalaBeer iets is dat Alexa niet herkent. Koop bier, hou van bier, etc, maar geen WalaBeer. Je kunt deze commando's gebruiken om met Alexa te communiceren:

  • start biertank
  • zet {on/off} de lichten
  • {open/close} het vrachtruim
  • {start/stop} following me
  • [stop/cancel]

Here's a video about the first two capabilities:

Some of the voice commands in the video might differ from the current commands due to some requirements during the publishing process (e.g:'stop' changed to 'stop following me'). Controlling a Raspberry Pi using Alexa is very easy, however to get the knowledge to do that is not. For the first time I used ngrok and it was super easy to do this but ngrok is only good for testing purposes. The URL provided by ngrok will change after every restart and there are other problems too. Long story short, I needed a better solution.

I moved on to using AWS Lambda and AWS IoT. They are perfect for my purpose but it was quite difficult to find useful information about how to use them. I mean I found lots of partial tutorials and documentation but usually they were missing some crucial information and/or just didn't work. Finally, I found the youtube channel of Kurt Braun. He made an excellent tutorial that helped me a LOT. I really recommend his videos if you want to use AWS Lambda and AWS IoT:

This other video also helped me when I did the experimenting part. I won't go into details about configuring Lambda and AWS IoT, these videos are containing every necessary information about this topic.

He used Node-RED in his videos. That is a very useful tool, however I needed to use Python instead of JavaScript. Amazon provides an SDK for Python, but I used Paho MQTT Client to make the Raspberry Pi subscribe to my 'wbt' topic's messages. It was easier for me to use.

Finally, here's a video about the current status of the prototype:

As you can see the "follow me" mode is working quite well, but the tank is very slow in this mode. Possibly it is capable of slightly higher speeds but I wanted to be sure that it doesn't do crazy things. Slowing the tank down was needed because at higher speeds it can easily lose me, mostly when it is turning. I've got a couple of ideas how I can significantly increase the speed in "follow me" mode but it will take some time and possibly some extra hardware to implement a solution for that.

You can access my skill here and this is its id:

amzn1.ask.skill.a7453502-b1aa-47fa-a552-ed8e2c792b2e

If you want to publish your skill it might be a good idea to you authentication to differentiate the devices. For that follow this great tutorial.

Canceled

I'd like to write some words about another part that is on the "Most of the electronics are integrated onto the top part" image. I'm talking about these:

These are tachometers. I didn't use them in the final version, but they are still there.

A tachometer like this is made of two parts:a black and white paper on the main wheel and a reflective IR sensor in front of it. The reflected light depends on the color of the object. The difference is very big so distinguishing the states is very easy and thus you can easily calculate the speed of rotation. The only problem of this setup is the low sample rate in case of slow movement, however they work quite well on higher speeds.

The tachometers worked great, but I realized that I don't need them for the project and I also needed the GPIO pins on the Arduino for other purposes. This is their story.

Conclusie

The end result is great, useful and fun! It is also a good platform for other future projects. With hard work I managed to make the voice control work and Walabot proved to be a great sensor for this purpose, too. I see numerous ways to improve this tank so it is likely that you'll see more about it in the future!

This is my best and most successful project so far. And also the longest. To keep it from getting even longer I'd like to thank for all the help that I got and I also thank you for reading! As a prize here's a picture about a strange dog:

Code

Codes for the Arduino and Raspberry Pi
This repository contains the codes that are running on the MKR1000 and the Raspberry Pi 3 Bhttps://github.com/abysmalsb/Beer-Tank

Schema's

If I couldn't find a part then I replaced it with something similar. See notes for more info. Walabot is connected to the Raspberry Pi with and USB cable. If I couldn't find a part then I replaced it with something similar. See notes for more info. Walabot is connected to the Raspberry Pi with and USB cable. beer_tank_YN88vVuS9b.fzz

Productieproces

  1. Circuitcomponenten
  2. Zuurstoftank
  3. Geïntegreerd circuit
  4. Amazon Alexa Een Chromecast bedienen
  5. Autonome tank
  6. Arduino digitale dobbelstenen
  7. MOSMusic
  8. Wat is micro-elektronica?
  9. Wat is een reservetank?
  10. Onderdelen van boormachine:
  11. Onderdelen van verbrandingsmotor