Toespraak gecontroleerd Quadropod (5 / 6 stap)

Stap 5: codering

Arduino:

Start van de Arduino en open een nieuwe schets. Ik heb helaas niet voldoende tijd om je te leren de basisprincipes van Arduino. U kunt enkele tutorials opzoeken als je zin hebt. Dus dit wat we gaan doen is, nadat u een nieuwe schets geopend: bestand >> New of Ctrl + N.

Plak de volgende code kopiëren (of gewoon downloaden van het bijgevoegde bestand). Ik Oddbot nogmaals te danken voor het helpen van me met het deel van de beweging van de code looooong looong terug.

De code:

 /* Title: Speech Controlled Quadropod Author: Adith Jagadish Boloor Comments: This code is free for you to use, modify or simply stare at when you are really bored. */ #include <Servo.h> // Servo Library // Starting positions of the servos #define FLHcenter 1500 #define FRHcenter 1500 #define RLHcenter 1520 #define RRHcenter 1450 #define FLKcenter 1150 #define FRKcenter 1220 #define RLKcenter 1220 #define RRKcenter 1210 // Here you can change servo pin numbers corresponding // to your specific connections #define FLHpin 46 // Front Left Hip servo pin #define FRHpin 52 // Front Right Hip servo pin #define RLHpin 28 // Rear Left Hip servo pin #define RRHpin 13 // Rear Right Hip servo pin #define FLKpin 47 // Front Left Knee servo pin #define FRKpin 53 // Front Right Knee servo pin #define RLKpin 29 // Rear Left Knee servo pin #define RRKpin 12 // Rear Right Knee servo pin // Buffer for the speech message char INBYTE; // LEDs!!!!! If you choose to use 'em int led1 = 27; int led2 = 11; int led3 = 45; int led4 = 26; // Some constants for the bot's motions, yes you may // play with them to get the best performance int Time = 90; int LShift = 280; int RShift = 280; int Raise = 550; // Define servos Servo FLHservo; Servo FRHservo; Servo RLHservo; Servo RRHservo; Servo FLKservo; Servo FRKservo; Servo RLKservo; Servo RRKservo; void setup() { // Attach servos (digitally) FLHservo.attach(FLHpin); FRHservo.attach(FRHpin); RLHservo.attach(RLHpin); RRHservo.attach(RRHpin); FLKservo.attach(FLKpin); FRKservo.attach(FRKpin); RLKservo.attach(RLKpin); RRKservo.attach(RRKpin); // Attach LEDs (digitally) pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); Serial.begin(9600); // Center servos FLHservo.writeMicroseconds(FLHcenter); FRHservo.writeMicroseconds(FRHcenter); RLHservo.writeMicroseconds(RLHcenter); RRHservo.writeMicroseconds(RRHcenter); FLKservo.writeMicroseconds(FLKcenter+700); FRKservo.writeMicroseconds(FRKcenter+700); RLKservo.writeMicroseconds(RLKcenter+700); RRKservo.writeMicroseconds(RRKcenter+700); delay(500); // Prints out the controls mapped to different letters Serial.println("wasd - movement"); Serial.println("z - sleep"); Serial.println("x - play dead"); Serial.println("i - sit"); Serial.println("u - stand"); Serial.println("q - wake up"); } void loop() { Serial.println("Ready to accept command"); while (!Serial.available()); // stay here so long as COM port is empty INBYTE = Serial.read(); // read next available byte delay(50); if (INBYTE == 'q') // wake up - flashes LEDs if you used them { digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); delay(200); digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); delay(200); digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); delay(200); digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); delay(200); digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); delay(200); digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); delay(200); digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); delay(200); digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); } else if (INBYTE == 'z') //Sleeps { FLHservo.writeMicroseconds(FLHcenter); FRHservo.writeMicroseconds(FRHcenter); RLHservo.writeMicroseconds(RLHcenter); RRHservo.writeMicroseconds(RRHcenter); FLKservo.writeMicroseconds(FLKcenter+700); FRKservo.writeMicroseconds(FRKcenter+700); RLKservo.writeMicroseconds(RLKcenter+700); RRKservo.writeMicroseconds(RRKcenter+700); delay(1000); digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); delay(200); digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); delay(200); digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); delay(200); digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); delay(200); digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); delay(200); digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); delay(200); } else if (INBYTE == 'u') // stand Up { // Center servos FLHservo.writeMicroseconds(FLHcenter); FRHservo.writeMicroseconds(FRHcenter); RLHservo.writeMicroseconds(RLHcenter); RRHservo.writeMicroseconds(RRHcenter); FLKservo.writeMicroseconds(FLKcenter); FRKservo.writeMicroseconds(FRKcenter); RLKservo.writeMicroseconds(RLKcenter); RRKservo.writeMicroseconds(RRKcenter); delay(1000); } else if (INBYTE == 'x') // plays dead X { FLHservo.writeMicroseconds(FLHcenter); FRHservo.writeMicroseconds(FRHcenter); RLHservo.writeMicroseconds(RLHcenter); RRHservo.writeMicroseconds(RRHcenter); FLKservo.writeMicroseconds(FLKcenter+700); FRKservo.writeMicroseconds(FRKcenter+700); RLKservo.writeMicroseconds(RLKcenter+700); RRKservo.writeMicroseconds(RRKcenter+700); delay(1000); } else if (INBYTE == 'i') //sits { FLHservo.writeMicroseconds(FLHcenter); FRHservo.writeMicroseconds(FRHcenter); RLHservo.writeMicroseconds(RLHcenter-600); RRHservo.writeMicroseconds(RRHcenter+600); FLKservo.writeMicroseconds(FLKcenter); FRKservo.writeMicroseconds(FRKcenter); RLKservo.writeMicroseconds(RLKcenter+700); RRKservo.writeMicroseconds(RRKcenter+700); } else if (INBYTE == 'h') //shake Hands { FLHservo.writeMicroseconds(FLHcenter-600); FRHservo.writeMicroseconds(FRHcenter); RLHservo.writeMicroseconds(RLHcenter-600); RRHservo.writeMicroseconds(RRHcenter+600); FLKservo.writeMicroseconds(FLKcenter+600); FRKservo.writeMicroseconds(FRKcenter); RLKservo.writeMicroseconds(RLKcenter-700); RRKservo.writeMicroseconds(RRKcenter+700); delay(1000); FLKservo.writeMicroseconds(FLKcenter+300); delay(200); FLKservo.writeMicroseconds(FLKcenter+600); delay(200); FLKservo.writeMicroseconds(FLKcenter+300); delay(200); FLKservo.writeMicroseconds(FLKcenter+600); delay(200); } else if(INBYTE == 'w') // run forward { LShift=300; RShift=300; for(int i=0;i<5;i++) { Run(); } } else if(INBYTE == 'a') // turn left { LShift=-300; RShift=300; for(int i=0;i<3;i++) { Run(); } } else if(INBYTE == 'd') // turn right { LShift=300; RShift=-300; for(int i=0;i<3;i++) { Run(); } } else if(INBYTE == 's') // run back { LShift=-300; RShift=-300; for(int i=0;i<5;i++) { Run(); } } } void Run() { FRKservo.writeMicroseconds(FRKcenter+Raise); // raise front right leg RLKservo.writeMicroseconds(RLKcenter+Raise-10); // raise rear left leg FLHservo.writeMicroseconds(FLHcenter+LShift); // move front left leg backward RRHservo.writeMicroseconds(RRHcenter-RShift); // move rear right leg backward delay(Time/2); FRHservo.writeMicroseconds(FRHcenter+RShift); // move front right leg forward RLHservo.writeMicroseconds(RLHcenter-LShift); // move rear left leg forward delay(Time); FRKservo.writeMicroseconds(FRKcenter); // lower front right leg RLKservo.writeMicroseconds(RLKcenter); // lower rear left leg delay(Time); FLKservo.writeMicroseconds(FLKcenter+Raise); // raise front left leg RRKservo.writeMicroseconds(RRKcenter+Raise); // raise rear right leg FRHservo.writeMicroseconds(FRHcenter-RShift); // move front right leg backward RLHservo.writeMicroseconds(RLHcenter+LShift); // move rear left leg backward delay(Time/2); FLHservo.writeMicroseconds(FLHcenter-LShift); // move front left leg forward RRHservo.writeMicroseconds(RRHcenter+RShift); // move rear right leg forward delay(Time); FLKservo.writeMicroseconds(FLKcenter); // lower front left leg RRKservo.writeMicroseconds(RRKcenter); // lower rear right leg delay(Time); } 

Net voordat u de code uploaden kunt, doet u het volgende:

Open Apparaatbeheer en opzoeken van poorten (COM & LPT).


Opmerking het actieve poort voor je Arduino. Het zou kunnen zeggen USB seriële poort (COM3) dus voor mij de COM poort 3, dit zou kunnen worden verschillende FOR YOU is.

Extra >> bestuur >> Arduino Mega of Mega 2560 (afbeelding 2)

Extra >> Processor >> ATMega 1280 (afbeelding 3)

Extra >> poort >> COM3 (3 voor mijn geval alleen!) (afbeelding 4)

Nu kunt u de upload-knop hit en als alles verloopt vlot, het met succes moet uploaden en de robot moet op zijn buik met vier poten uitgestrekt symmetrisch met een gestage LED knipperen van de HC-06.

Als u deze foutmelding tijdens het uploaden krijgt:

avrdude: stk500_getsync(): niet synchroon: resp = 0xe0

Verbreken van de HC06 module, upload enkel de code en sluit deze dan weer op.

OK realiseerde ik iets terwijl ik was testen en het schrijven van deze tutorial. U hoeft niet zowel BitVoicer en Python, je hoeft alleen maar een van hen. BitVoicer doet alles voor u en de engine voor spraakherkenning is heel krachtig maar het kost $5, terwijl python's spraakherkenning maakt gebruik van Google Speech API, dus het kan soms enkele echt raar resultaten geven en wat meer codage, heeft dus de keuze is aan jou.

Bluetooth

Oke net voordat we overgaan tot de toespraak erkenning bit via BitVoicer of Python, laat de bluetooth van uw PC koppelen aan de HC-06 van uw bot. Zorg ervoor dat de bluetooth op uw PC werkt voordat u verdergaat, want het kostte me 5 uur om te beseffen dat mijn laptop kwam niet met een ingebouwde bluetooth en ik had om een module.

Nu energie je bot via USB of het pak van de batterij. OMG wanneer doet deze tutorial einde!!! Geduld! Je bent er bijna.

  1. Klik met de rechtermuisknop op het pictogram van de Bluetooth-apparaten in de schenkblad zandbank en klik op Voeg nieuwe apparaat.
  2. Laat het opsporings- en zoek- en search tot HC - 06 ijslollie opwaarts
    Als het niet opdagen na ergens proberen controleren als u het apparaat met uw mobiele telefoon (elke telefoon behalve Apple telefoons moeten zitten kundig voor speurder op) kunt vinden. Als u niet weet dat er iets mis met uw HC-06 is en je moet om het te bevestigen door de verbindingen te controleren.
  3. Dubbelklik erop.
  4. Op de volgende dialoog vak selecteert u Enter het apparaat de paring code en soort in 1234. Het moet de HC-06 vervolgens installeren op uw computer.
  5. Nu dit deel belangrijk open Apparaatbeheer is (Start >> Device Manager)
  6. Ga naar poorten (COM & LPT) en Toon waas naar de COM-poorten die worden gebruikt door de Bluetooth.
    COM10 en COM21 voor mijn zaak.

BitVoicer (optie 1)

BitVoicer kunt u downloaden vanaf hier.

Eerste dingen eerst, als u niet een Amerikaans Engels spreker u misschien wilt wijzigen het taal/accent die BitVoicer proberen zal te herkennen. Om te doen deze Ga naar bestand >> extra talen en ga op installeren uw voorkeurs taal/accent.

Nu zijn we klaar om toe te voegen sommige opdrachten. Voor starters gaan we namelijk slechts twee opdrachten toevoegen opstaan en gaan zitten. U kunt ze bewerken of meer opdrachten later toevoegen. De stappen zijn als volgt:

  1. Een nieuw Schema maken door naar bestand te gaan >> New.
  2. Het standaard-gegevenstype voor de opdracht omzetten in char.
  3. Klik op nieuwe zin toevoegen
  4. Typ "stand up" (zonder aanhalingstekens)
  5. Klik op nieuwe zin toevoegen
  6. Typ "zitten" (opnieuw geen citaten)
  7. Nu hieronder in zin anagrammen, de gegevenstypen wijzigen van beide opdrachten naar char indien zijn niet reeds char.
  8. Voor type opstaan de opdracht zoals u en voor zitten type ik.
  9. Uw scherm ziet er zoals in afbeelding 5.
  10. Uw schema opslaan in een map die voor u geschikt is.
  11. Nu open te stellen voorkeuren door bestand >> Voorkeuren en invullen met behulp van de spullen.
    De slechts drie dingen die anders voor jou zal zijn zullen de standaard Output map, toespraak herkenningstaal en de naam van de poort.
  12. De naam van uw poort komt overeen met de COM-poort die uw Bluetooth gebruikt dat je in stap 6 van Bluetooth ontdekt. Probeer eerst de onderste nummer.
  13. Druk op opslaan.
  14. Ga naar de volgende stap.

Python (optie 2)

Download eerst Python (voor deze tutorial ik ga gebruiken versie 3.4) die kan worden gedownload van https://www.python.org/download/releases/3.4.1/ waarom 3.4 en het niet de 2.7 versie? Ook de erkenning van de toespraak die we gebruiken werkt alleen op de 3.4 versie van python (ya ik weet dat zuigt maar hey 3.4 > 2.7 rechts?)

Installeer het in C:\Python34 gemakshalve. Volgende wat die u hoeft te doen is downloaden en installeren van eclipse die een interface is voor het schrijven van programmacode via Python. Je kan het downloaden vanaf http://www.eclipse.org/downloads/ installeren in C:\eclipse

Als u deze fout tijdens het uitvoeren van het...

Een Java Runtime Environment (JRE) of de Java Development Kit (JDK) moet beschikbaar om uit te voeren van Eclipse. Geen Java virtuele machine werd gevonden na het zoeken van de volgende locaties:
C:\eclipse\jre\bin\javaw.exe
javaw.exe in uw huidige pad

Ga naar het eerste antwoord in http://stackoverflow.com/questions/2030434/eclipse-no-java-jre-jdk-no-virtual-machine

www.stackoverflow.com is de beste plek om hulp te vinden voor eventuele problemen in python

Gebruik deze tutorial te installeren van python in eclipse behalve in plaats van python 2.6 die moet u python 3.4. Alternatief gebruiken deze tutorial te installeren van python in Geany als u kiest om te gebruiken Geany die ik hoor veel mooier dan eclipse is maar ik heb niet genoeg tijd om te migreren naar het. Er zijn iets genaamd 'libraries', die u nodig heeft voor toegang tot de verschillende functionaliteit van python. Laat nu ga je gang en installeer enkele bibliotheken die we nodig voor dit project hebben. Voor degenen onder u die al hoe weten te installeren gaan bibliotheken gewoon vooruit beursgenoteerde degene installeren en ga naar de code.

Bibliotheken nodig:

  • PyBluez 0.20 - Bluetooth (setup)
  • PyAudio 0.2.8 - biedt bindingen voor spraakherkenning (setup)
  • SpeechRecognition 1.1.0 - spraakherkenning (downloaden)

PyBluez en PyAudio kunnen worden geïnstalleerd door het downloaden van de "... win32-py3.4.exe" versies van de link en gewoon uitvoeren van het uitvoerbare bestand (setup) bestand.

SpeechRecognition bibliotheek is een beetje lastig als je nieuw bij python bent. Open de link 'download' hierboven en klik op downloads. Download "SpeechRecognition-1.1.0.tar.gz (md5)". Extract alle inhoud (niet de map die SpeechRecognition-1.1.0 maar whats in het zegt) van de Gedownloade omslag (via winRAR of elke extractor die je met behulp van voelt) naar de map van de python 3.4 (C:\Python34). Als een dialoogvenster gevraagd of u bestaande bestanden wilt vervangen wordt, klik op Ja op alles. Nu Navigeer naar C:-station en houd Shift, klik met de rechtermuisknop op de map die Python34 zegt en klik op "Open command venster hiernaartoe". Type ter "python setup.py installeren" zonder aanhalingstekens, en treffer steken. Nu moet u alle vereiste bibliotheken geïnstalleerd. Yay!

Open eclipse.

Maak een nieuw bestand genaamd Speech_Controlled_Quadrapod.py vergelijkbaar met hoe u de pytest.py hebt gemaakt bestand dat u in de tutorial gemaakt onder de map PythonTest van de tutorial. Nu plakt of downloaden...

De code:

 # Title: Speech Controlled Quadrapod # Author: Adith Jagadish # Description: Uses Google's Speech Recognition API and python bluetooth library to control a quadrapod # How to: Say "stand up" to make bot stand up and say "sit down" to make it sit. # Say "stop listening to terminate the program" import bluetooth import speech_recognition as sr port = 1 bd_addr = "xx:xx:xx:xx:xx:xx" sock = bluetooth.BluetoothSocket( bluetooth.RFCOMM ) sock.connect((bd_addr, port)) r = sr.Recognizer() r.pause_threshold = 0.6 r.energy_threshold = 400 MESSAGE = "continue" print("Ready to accept command...\n") while (MESSAGE != "stop listening"): while (MESSAGE == "continue"): try: # use the default microphone as the audio source with sr.Microphone() as source: # listen for the first phrase and extract it into audio data audio = r.listen(source,timeout = None) # recognize speech using Google Speech Recognition print("Me: " + r.recognize(audio)) MESSAGE = str(r.recognize(audio)) except LookupError: # speech is unintelligible MESSAGE = "continue" print("Could not understand audio") if(MESSAGE == "sit down"): sock.send("i") elif(MESSAGE == "stand up"): sock.send("u") elif(MESSAGE == "stop listening"): break; MESSAGE = "continue" sock.close() print("\nProgram terminated.") 

De enige verandering die u hoeft te doen is in de regel:

 bd_addr = "xx:xx:xx:xx:xx:xx" 

Klik met de rechtermuisknop op het bluetooth-pictogram in de lade en klik op "Bluetooth-apparaten weergeven". Klik met de rechtermuisknop op HC-06 en klik op Eigenschappen. Ga naar het tabblad Bluetooth en kopieer het unieke id-nummer en plak die in de plaats van xx.


U bent goed om te gaan testen.

Gerelateerde Artikelen

Toespraak gecontroleerd IR afstandsbediening

Toespraak gecontroleerd IR afstandsbediening

IntroductieIn dit document zal ik uitleggen het proces voor het maken van een Parallax Propeller gecontroleerd IR afstandsbediening. Dit Instructable zal uitleggen een van verschillende manieren dit kan worden bereikt zal het apparaat worden aangeslo
Ongebonden van spraakherkenning en spraaksynthese met Arduino

Ongebonden van spraakherkenning en spraaksynthese met Arduino

MOVI staat voor 'Mijn eigen Interface van de stem' en is een kickstarter-backed Arduino schild dat maakt het zeer eenvoudig om te bouwen van uw eigen toespraak dialogen aan controle-apparaten binnen de Arduino IDE. Dit instructable snel ziet u hoe aa
Arduino toespraak controle en detecteren obstakels Robot

Arduino toespraak controle en detecteren obstakels Robot

Robot gecontroleerd door spraakopdrachten met Arduino en met Android telefoon google voice naar tekst wordt gecontroleerd met behulp van de toepassinghttp://make.robimek.com/Voice-Commands-Controlled-Robot/Stap 1: materialen:1-android applicatie: htt
K-9 2.0. WiFi gecontroleerde en autonome Robot hond.

K-9 2.0. WiFi gecontroleerde en autonome Robot hond.

OPMERKING:In stap 22, heb ik gepost een update, verklaren sommige recente veranderingen/verbeteringen die ik, voornamelijk K-9 van elektrische systeem gemaakt heb en de sensor array, die u kunt nuttig vinden.FunctiesStevige houten (MDF) en acryl desi
Home van de controle van de stem van de automatisering - multi-room microfoon toespraak analyse

Home van de controle van de stem van de automatisering - multi-room microfoon toespraak analyse

Hebben u ooit voelde de behoefte om uw sprekende gewoonten, controle van uw huis met uw stem, of gewoon een record van meerdere microfoons tegelijk? Dan bent u in geluk! In dit Instructable, leert u hoe installeren en gebruiken van een matrix met mee
Kartonnen Radio gecontroleerde K-9, die praat

Kartonnen Radio gecontroleerde K-9, die praat

Doctor Who heeft vele metgezellen door de jaren heen, en toen fans krijgen vroeg "wie is uw favoriete metgezel van de Dr. Who?", hoort u gewoonlijk antwoorden als Rose Tyler en Sarah-Jane Smith, Captain jack Harkness, Leela, Jamie McCrimmon onde
Toespraak gebaseerd (EasyVR) 2,4 GHz lange afstand (1 km +) RadioControle

Toespraak gebaseerd (EasyVR) 2,4 GHz lange afstand (1 km +) RadioControle

ontmoet mijn project == > Arduino gebaseerd RC besturing met spraak erkenning module (EasyVR)Het belangrijkste idee is heel simpel: krijg een toespraak erkenning module binden aan een microcontroller, passende PPM signaal te genereren, het verzenden
Stem gecontroleerde Switch with Arduino

Stem gecontroleerde Switch with Arduino

Dit is voor de eerste keer ben het uploaden van mijn project in Inscrutable. Dus als jullie ieder domme vinden negeren fouten gelieve het.Dus, over mijn project, dit is over de stem bediend lichten geïnspireerd door IRON-MAN film. JARVIS door Michel
Erkenning van de toespraak van de animatronic Talking boom - deel 2 -

Erkenning van de toespraak van de animatronic Talking boom - deel 2 -

als u gevolgd samen met mijn eerste Instructable, Animatronic praten Christmas Tree, toonde ik u hoe te nemen van een kunstmatige boom, toevoegen sommige servo's en een Arduino, sluit hem aan op een schets van de verwerking uitvoert op uw computer, e
Babbletron - een interactieve verkenning van computer gegenereerde toespraak

Babbletron - een interactieve verkenning van computer gegenereerde toespraak

De babbletron is een apparaat waarmee u bij het verkennen van de wereld van computer gegenereerde toespraak. Het basisconcept gebruikt door de babbletron is dat synthetische spraak kan worden benaderd met behulp van een klein aantal fonetisch geïsole
Arduino Bluetooth gecontroleerde elektrische deuropener

Arduino Bluetooth gecontroleerde elektrische deuropener

Hallo! In deze handleiding Instructables zal ik u tonen hoe te maken van uw eigen Bluetooth gecontroleerde systeem van de deur ontgrendelen met behulp van de Arduino uno board. Ik maakte mijn eigen circuit met behulp van de ATmega328 micro controller
DriveMyPhone - Smartphone gecontroleerd 3D gedrukte voertuig

DriveMyPhone - Smartphone gecontroleerd 3D gedrukte voertuig

DriveMyPhone is een project dat ik heb aanbrengen op mijn computer in digitaal formaat voor de afgelopen 6 jaar nu. Het concept kwam rond toen ik bezig was met mijn andere robotica projecten genoemd MobileEarthRover One am MobileEarthRover twee.Ik he
Scanner Rgb Led Lamp Pwm gecontroleerd door Arduino Nano

Scanner Rgb Led Lamp Pwm gecontroleerd door Arduino Nano

Gerecycled scanner rgb led lamp pwm gecontroleerd door Arduino NanoStap 1: EindresultaatDit is wat je krijgt als je dit volgen instructable.Stap 2: Een printer zoekenZoekt u een gebroken hp all-in-one printer. (Andere merken kunnen ook de onderdelen,
WiFi camera-auto gecontroleerd

WiFi camera-auto gecontroleerd

De gemakkelijkste en meest efficiënte manier om een draadloze en verbonden gecontroleerde auto te maken!Een paar maanden geleden kocht ik een 5$ RC auto in een winkelcentrum. Met mijn kamergenoot, vochten we het zou leuk zijn om het te kappen zodat w