- Vereisten:
- Software downloaden en installeren:
- Arduino Hardware-onderdeel en schakelschema:
- Arduino Software Onderdeel:
- Android mobiele applicatie voor ultrasone radar:
- Werkende uitleg:
Dit is een interessant project waarin we de kracht van een Arduino en Android onderzoeken om een bewakingsapparaat te maken dat Arduino en Ultra Sonic Sensor gebruikt om de informatie via Bluetooth naar een mobiele applicatie (Android) te sturen.
Veiligheid en beveiliging is al eeuwen onze eerste zorg. Het installeren van een beveiligingscamera met een nachtmodus met kantel- en panoptie zal een groot gat in onze zakken branden. Laten we daarom een economisch apparaat maken dat bijna hetzelfde doet, maar zonder videofuncties.
Dit apparaat detecteert objecten met behulp van een ultrasone sensor en kan daarom zelfs 's nachts werken. Ook monteren we de US (Ultra Sonic) sensor over een servomotor, deze servomotor kan worden ingesteld om automatisch te roteren om het gebied te scannen of kan handmatig worden gedraaid met behulp van onze mobiele app, zodat we de ultrasone sensor in onze vereiste richting en voel de objecten die daar aanwezig zijn. Alle informatie die door de Amerikaanse sensor wordt gedetecteerd, wordt via Bluetooth-module (HC-05) naar onze smartphone verzonden. Het zal dus werken als een sonar of een radar.
Interessant toch ??…. Laten we eens kijken wat we nodig hebben om dit project te doen.
Vereisten:
Hardware:
- A + 5V voeding (ik gebruik mijn Arduino (een ander) bord voor voeding)
- Arduino Mega (je kunt alles gebruiken, van pro mini tot Yun)
- Servomotor (elke beoordeling)
- Bluetooth-module (HC-05)
- Ultrasone sensor (HC-SR04)
- Breadboard (niet verplicht)
- Draden aansluiten
- Android mobiel
- Computer om te programmeren
Software:
- Arduino-software
- Android SDK
- Android verwerken (om een mobiele applicatie te maken)
Zodra we klaar zijn met onze materialen, kunnen we beginnen met het bouwen van de hardware. Ik heb deze tutorial opgesplitst in Arduino Part en het Processing Part voor eenvoudig begrip. Mensen die nieuw zijn in de verwerking, hoeven niet veel te vrezen, omdat de volledige code aan het einde van de tutorial wordt gegeven die als zodanig kan worden gebruikt.
Software downloaden en installeren:
De Arduino IDE kan vanaf hier worden geïnstalleerd. Download de software volgens uw besturingssysteem en installeer deze. De Arduino IDE heeft een stuurprogramma nodig om te communiceren met uw Arduino-hardware. Dit stuurprogramma zou automatisch moeten worden geïnstalleerd zodra u uw bord met uw computer verbindt. Probeer een knipperprogramma uit voorbeelden te uploaden om er zeker van te zijn dat je Arduino actief is.
De verwerkings-IDE kan vanaf hier worden geïnstalleerd. Processing is een uitstekende open source-applicatie die voor veel dingen kan worden gebruikt, het heeft verschillende modi. In "Java-modus" kunnen we Windows-computerapplicaties (.EXE-bestanden) maken en in "Android-modus" kunnen we mobiele Android-applicaties (.APK-bestanden) maken, het heeft ook andere modi zoals "Python-modus" waar u uw Python-programma's kunt schrijven. Deze tutorial behandelt niet de basisprincipes van Processing, dus als je Java-programmering of -verwerking wilt leren, ga dan naar dit geweldige YouTube-kanaal hier.
Arduino Hardware-onderdeel en schakelschema:
Bij dit project zijn veel componenten betrokken, zoals de servomotor, Bluetooth-module, ultrasone sensor enz. Dus als je een absolute beginner bent, is het aan te raden om te beginnen met een eenvoudige tutorial over deze componenten en dan hier terug te komen. Bekijk hier onze verschillende projecten over servomotor, Bluetooth-module en ultrasone sensor.
Alle componenten worden niet door de Arduino zelf gevoed, omdat de servomotor, Bluetooth-module en US-sensor in totaal veel stroom trekken die de Arduino niet kan genereren. Daarom is het strikt aan te raden om een externe + 5V-voeding te gebruiken. Als je geen externe + 5V-voeding binnen handbereik hebt, kun je de componenten delen tussen twee Arduino-boards zoals ik heb gedaan. Ik heb de Servos-stroomrails aangesloten op een ander Arduino-bord (rode kleur) en de Bluetooth-module HC-05 en Ultrasone sensor HC-SR04 met de Arduino-mega verbonden. VOORZICHTIG: Door al deze modules op te starten met één Arduino-bord, wordt de Arduino-spanningsregelaar geactiveerd.
Het aansluitschema voor dit op Arduino gebaseerde sonarproject wordt hieronder gegeven:
Zodra de verbindingen zijn gemaakt, monteert u de US-sensor op uw servomotor zoals hieronder weergegeven:
Ik heb een klein plastic stukje gebruikt dat in mijn rommel zat en een dubbelzijdige tape om de sensor te monteren. U kunt uw eigen idee bedenken om hetzelfde te doen. Er zijn ook servohouders op de markt die voor hetzelfde doel kunnen worden gebruikt.
Zodra de Servo is gemonteerd en de aansluitingen zijn gegeven, zou het er ongeveer zo uit moeten zien.
Volg het schema bovenaan als u verkeerde aansluitingen krijgt. Laten we nu beginnen met het programmeren van de Arduino Mega met behulp van de Arduino IDE.
Arduino Software Onderdeel:
We moeten onze code schrijven, zodat we de afstand tussen een object en de Ultra Sonic-sensor kunnen berekenen en naar onze mobiele applicatie kunnen sturen. We moeten ook code schrijven om onze servomotor te laten vegen en ook worden bestuurd op basis van de gegevens die worden ontvangen door de Bluetooth-module. Maar maak je geen zorgen, het programma is veel eenvoudiger dan je kunt bedenken, dankzij Arduino en zijn bibliotheken. De volledige code wordt hieronder gegeven in het codegedeelte.
De onderstaande functie wordt gebruikt om de servomotor automatisch van links naar rechts (170 tot 10) en weer van rechts naar links (10 tot 170) te laten zwaaien. De twee for- lussen worden gebruikt om hetzelfde te bereiken. De functie us () wordt binnen beide functies aangeroepen om de afstand tussen de sensor en het object te berekenen en naar Bluetooth te verzenden. Er wordt een vertraging van 50 ms gegeven om de servo langzaam te laten draaien. Hoe langzamer de motor draait, hoe nauwkeurig uw metingen worden.
// ** Functie voor servo om te vegen ** // void servofun () {Serial.println ("Sweeping"); // voor foutopsporing voor (posc = 10; posc <= 170; posc ++) // Het gebruik van 10 tot 170 graden is veilig dan 0 tot 180 omdat sommige servo's mogelijk niet werken bij extreme hoeken {servo.write (posc); // stel de positie van de servomotorvertraging in (50); ons(); // meet de afstand van objecten zingen de US sensor} for (posc = 170; posc> = 10; posc--) {servo.write (posc); vertraging (50); ons(); // meet de afstand van objecten door de Amerikaanse sensor} Serial.println ("Scan voltooid"); // voor foutopsporing vlag = 0; } // ** Einde van Servo-veegfunctie ** //
Zoals eerder gezegd is de servomotor ook handmatig te bedienen vanaf de smartphone. Je veegt gewoon naar rechts om de motor naar rechts te laten bewegen en naar links om de motor naar links te laten bewegen. De bovenstaande functie wordt gebruikt om hetzelfde te bereiken. De engel van de servomotor wordt direct ontvangen door de Bluetooth-module en opgeslagen in de variabele BluetoothData , waarna de servo in die specifieke engel wordt gepositioneerd met behulp van de lijn servo.write (BluetoothData).
// ** Functie om Servo handmatig te bedienen ** // void manualservo () {us (); // Krijg waarde van de gebruiker en bedien de servo als (Blueboy.available ()) {BluetoothData = Blueboy.read (); Serial.println (BluetoothData); servo.write (BluetoothData); Serial.println ("geschreven"); if (BluetoothData == 'p') {vlag = 0; }}} // __ Einde handmatige controlefunctie __ //
De afstand die vóór het object aanwezig is, wordt berekend door onderstaande functie. Het werkt met eenvoudige formules die Snelheid = Afstand / tijd. Omdat we de snelheid van de Amerikaanse golf kennen en de tijd die nodig is, kan de afstand worden berekend met behulp van de bovenstaande formules.
// ** Functie om de afstand te meten ** // void us () {int duration, distance; digitalWrite (trigPin, HIGH); delayMicroseconds (1000); digitalWrite (trigPin, LOW); duur = pulseIn (echoPin, HIGH); afstand = (duur / 2) / 29,1; // Berekent de afstand vanaf de sensor als (afstand <200 && afstand> 0) Blueboy.write (afstand); } // __ Functie einde afstandmeting __ //
Als je twijfels hebt over het programma, gebruik dan gerust het commentaargedeelte voor je katernen. Dus zodra we klaar zijn met onze code, kunnen we de code meteen in onze hardware dumpen. Maar het bewakingsapparaat begint pas te werken als het is verbonden met de Android-applicatie. Bekijk ook de video aan het einde voor volledige werking.
Android mobiele applicatie voor ultrasone radar:
Als u niet uw eigen applicatie wilt maken en in plaats daarvan dezelfde applicatie wilt installeren die in deze tutorial is gebruikt, kunt u de onderstaande stappen volgen.
1. U kunt het APK-bestand rechtstreeks downloaden via de onderstaande link. Dit APK-bestand is gemaakt voor Android-versie 4.4.2 en hoger (Kitkat en hoger). Pak het APK-bestand uit het zip-bestand uit.
Android-applicatie voor ultrasone radar
2. Breng het.Apk-bestand over van uw computer naar uw mobiele telefoon.
3. Schakel het installeren van de applicatie van onbekende bronnen in je Android-instellingen in.
4. Installeer de applicatie.
Indien succesvol geïnstalleerd, zult u de applicatie genaamd "Zelobt" op uw telefoon geïnstalleerd vinden, zoals hieronder weergegeven:
Als u deze APK heeft geïnstalleerd, kunt u het onderstaande gedeelte overslaan en naar het volgende gedeelte gaan.
Uw eigen applicatie programmeren met behulp van Processing:
U kunt het.APK-bestand hierboven gebruiken of u kunt uw eigen app bouwen met Processing, zoals hier wordt uitgelegd. Met weinig kennis van programmeren is het ook heel gemakkelijk om je eigen code te schrijven voor je Android-applicatie. Als u echter net begint, is het niet aan te raden om met deze code te beginnen, aangezien deze een beetje hoog is dan het beginnersniveau.
Dit programma gebruikt twee bibliotheken, namelijk de "Ketai-bibliotheek" en de "ControlP5-bibliotheek" . De ketai-bibliotheek wordt gebruikt om alle hardware in onze mobiele telefoon te bedienen. Dingen zoals het batterijniveau van uw telefoon, waarden van de nabijheidssensor, waarden van de acceleratiemetersensor, Bluetooth-besturingsopties enz. Zijn gemakkelijk toegankelijk voor deze bibliotheek. In dit programma gebruiken we deze bibliotheek om een communicatie tot stand te brengen tussen de telefoons Bluetooth en de Arduino Bluetooth (HC-05). De "ControlP5-bibliotheek" wordt gebruikt om grafieken voor ons radarsysteem uit te zetten.
Het volledige Android-programma is bijgevoegd, u kunt het hier downloaden.
LET OP: Vergeet niet de bovengenoemde bibliotheken te installeren en kopieer en plak het codegedeelte niet alleen, omdat de code afbeeldingen importeert uit de datamap die in zijn geheel in de bovenstaande bijlage staat. Download en gebruik daarom alleen dat.
Als u klaar bent met het coderingsgedeelte en het met succes hebt gecompileerd, kunt u uw mobiele telefoon rechtstreeks met uw computer verbinden via een datakabel en op de afspeelknop klikken om de applicatie op uw mobiele telefoon te stoppen. Bekijk ook onze andere Processing Projects: Ping Pong Game met Arduino en Smart Phone Controlled FM Radio met Processing.
Werkende uitleg:
Nu zijn we klaar met onze hardware en het softwaregedeelte. Zet uw hardware aan en koppel uw gsm met de Bluetooth-module. Eenmaal gekoppeld, opent u uw "Zelobt" -toepassing die we zojuist hebben geïnstalleerd en wacht u een seconde en u zou moeten opmerken dat uw Bluetooth-module (HC-05) automatisch verbinding maakt met uw smartphone. Zodra de verbinding tot stand is gebracht, krijgt u het volgende scherm te zien:
U kunt zien dat er boven aan het scherm staat verbonden met: Apparaatnaam (hardwareadres). Het toont ook de huidige engel van de servomotor en de afstand tussen de Amerikaanse sensor. Op de rode achtergrond wordt ook een blauwe grafiek uitgezet op basis van de gemeten afstand. Hoe dichterbij het object komt, hoe groter het blauwe gebied wordt. De grafiek die is gemeten wanneer sommige objecten in de buurt worden geplaatst, wordt ook weergegeven in de tweede afbeelding hierboven.
Zoals eerder gezegd kun je je servomotor ook bedienen vanuit je mobiele app. Om deze te doen, klikt u eenvoudig op de stopknop. Dit zal uw servo stoppen met automatisch vegen. Je vindt ook een rond wiel onder aan het scherm dat bij het vegen met de klok mee of tegen de klok in draait. Door met dit wiel te swipen kun je ook je servomotor in die richting laten draaien. Het wiel en de grafiek die bij het vegen zijn bijgewerkt, worden weergegeven in de onderstaande afbeelding.
Arduino-code wordt hieronder gegeven en het APK-bestand voor Android-applicatie is hier. De werking van het complete project wordt getoond in de onderstaande video. Ik hoop dat je het project hebt begrepen. Als je katernen hebt, gebruik dan alstublieft de commentaarsectie hieronder.