2WD röst kontrollerat Robot med Arduino och BitVoicer Server (5 / 7 steg)

Steg 5: Ladda upp koden till Arduino

I det här steget måste du ladda upp koden nedan till Arduino. Du kan också hämta den Arduino skissen från länken nedan koden. Kom ihåg att för att skicka koden till Arduino måste du ange växeln på Sparkfun sköld DLINE position som beskrivs i steg 3. Innan du överför koden, måste du korrekt installera BitVoicer Server och Pololu motorn förarens biblioteken i Arduino IDE (Importera .zip bibliotek).

#include < BVSP.h >
#include < BVSMic.h >
#include < DualMC33926MotorShield.h >
Definierar Arduino stiften som används för att kontrollera
Lysdioder och fånga ljud
#define BVS_RUNNING 2
#define BVS_SRE 5
#define BVS_DATA_FWD 3
#define BVS_ACT_PERIOD 6
#define BVSM_AUDIO_INPUT 3
Definierar de konstanter som ska skickas som parametrar till
funktionen BVSP.begin
CONST osignerade långa STATUS_REQUEST_INTERVAL = 2000.
CONST osignerade långa STATUS_REQUEST_TIMEOUT = 1000;
Definierar storleken på bufferten som mic
CONST int MIC_BUFFER_SIZE = 64;
Initierar en ny global instans av klassen BVSP
BVSP bvsp = BVSP();
Initierar en ny global instans av klassen BVSMic
BVSMic bvsm = BVSMic();
Initierar en ny global instans av den
DualMC33926MotorShield klass
DualMC33926MotorShield ms = DualMC33926MotorShield();
Skapar en buffert som används för att läsa registrerade värden
från klassen BVSMic
byte micBuffer [MIC_BUFFER_SIZE];
Skapar en global variabel som anger om den
Arduino är ansluten till BitVoicer Server
Boolean ansluten = false;
Definierar vissa konstanter för motor inställningarna
CONST int SPEED_STOP = 0;
CONST int SPEED_SLOW = 100;
CONST int SPEED_NORMAL = 250;
CONST int SPEED_FAST = 400.
CONST int DIRECTION_FRONT = -1;
CONST int DIRECTION_BACK = 1;
Deklarerar en globala variabler att hålla den aktuella varvtal.
Standard är SPEED_NORMAL, men det finns röst
kommandon som ändrar den här inställningen.
int motorSpeed = SPEED_NORMAL;
Lagrar den kommando tid i millisekunder
osignerade långa cmdDuration = 0;
Lagrar den tiden kommandot började springa
osignerade långa cmdStartTime = 0;
Lagras om ett kommando körs eller inte
bool cmdRunning = false;
Lagrar det senaste MOVE_FORWARD-kommandot. Denna variabel
används endast för kommandot COME_BACK.
byte lastFwdCmd = 0;
Definierar vissa konstanter för kommandot namn/värden
Bara för att göra koden mer läsbar
CONST byte CMD_STOP = 0;
CONST byte CMD_MOVE_FORWARD = 1;
CONST byte CMD_MOVE_FORWARD_1_CM = 2;
CONST byte CMD_MOVE_FORWARD_2_CM = 3;
CONST byte CMD_MOVE_FORWARD_5_CM = 4;
CONST byte CMD_MOVE_FORWARD_10_CM = 5;
CONST byte CMD_MOVE_FORWARD_25_CM = 6;
CONST byte CMD_MOVE_FORWARD_50_CM = 7.
CONST byte CMD_MOVE_FORWARD_1_M = 8;
CONST byte CMD_MOVE_BACKWARD = 9;
CONST byte CMD_MOVE_BACKWARD_1_CM = 10;
CONST byte CMD_MOVE_BACKWARD_2_CM = 11;
CONST byte CMD_MOVE_BACKWARD_5_CM = 12;
CONST byte CMD_MOVE_BACKWARD_10_CM = 13.
CONST byte CMD_MOVE_BACKWARD_25_CM = 14.
CONST byte CMD_MOVE_BACKWARD_50_CM = 15.
CONST byte CMD_MOVE_BACKWARD_1_M = 16.
CONST byte CMD_TURN_AROUND = 17;
CONST byte CMD_TURN_AROUND_RIGHT = 18;
CONST byte CMD_TURN_AROUND_LEFT = 19.
CONST byte CMD_DO_360 = 20;
CONST byte CMD_TURN_RIGHT = 21;
CONST byte CMD_TURN_RIGHT_10 = 22.
CONST byte CMD_TURN_RIGHT_25 = 23.
CONST byte CMD_TURN_RIGHT_45 = 24.
CONST byte CMD_TURN_LEFT = 25;
CONST byte CMD_TURN_LEFT_10 = 26.
CONST byte CMD_TURN_LEFT_25 = 27.
CONST byte CMD_TURN_LEFT_45 = 28;
CONST byte CMD_DO_CIRCLE = 29.
CONST byte CMD_COME_BACK = 30.
CONST byte CMD_MOVE_FORWARD_2_M = 31;
CONST byte CMD_MOVE_FORWARD_3_M = 32.
CONST byte CMD_MOVE_BACKWARD_2_M = 33.
CONST byte CMD_MOVE_BACKWARD_3_M = 34.
CONST byte CMD_SET_SPEED_SLOW = 35.
CONST byte CMD_SET_SPEED_NORMAL = 36.
CONST byte CMD_SET_SPEED_FAST = 37.
CONST byte CMD_TURN_LEFT_45_BACKWARD = 38.
CONST byte CMD_TURN_RIGHT_45_BACKWARD = 39.
void setup()
{
Börjar seriell kommunikation på 115200 bps
Serial.BEGIN(115200);

Anger de Arduino pin lägen
pinMode (BVS_RUNNING, OUTPUT);
pinMode (BVS_SRE, OUTPUT);
pinMode (BVS_DATA_FWD, OUTPUT);
pinMode (BVS_ACT_PERIOD, OUTPUT);
AllLEDsOff();
Ställer Arduino seriell port som ska användas för
kommunikation, hur lång tid det tar innan en statusbegäran
gånger ut och hur ofta ska status förfrågningar skickas till
BitVoicer Server
BVSP.BEGIN (serienummer, STATUS_REQUEST_TIMEOUT,
STATUS_REQUEST_INTERVAL);

Anger den funktion som kommer att hantera frameReceived
händelse
bvsp.frameReceived = BVSP_frameReceived;
Förbereder BVSMic klassen timer
bvsm.BEGIN();
Förbereder klassen motor sköld (stift och timer1)
MS.init();
}
void loop()
{
Om det inte är ansluten till servern, öppnas en TCP/IP
anslutning, apparater anslutna till true och återställer BVSP
klass
om (! ansluten)
{
Connect(Serial);
anslutna = sant;
BVSP.Reset();
}

Kontrollerar om status begäran intervallet har förflutit och om det
har, skickar en statusbegäran till BitVoicer Server
bvsp.keepAlive();

Kontrollerar om det finns data på den seriella port buffert
och bearbetar dess innehåll enligt specifikationerna
för BitVoicer servern protokoll
BVSP.Receive();

Får respektive status från klassen BVSP och sätter
Lysdioderna på eller av
digitalWrite (BVS_RUNNING, bvsp.isBVSRunning());
digitalWrite (BVS_DATA_FWD, bvsp.isDataFwdRunning());

Kontrollerar om det finns en SRE tilldelats Arduino
om (bvsp.isSREAvailable())
{
Vänder på SRE tillgängliga LED
digitalWrite (BVS_SRE, hög);

Om klassen BVSMic inte spelar in, ställer in ljud
ingång och startar inspelning
om (! bvsm.isRecording)
{
bvsm.setAudioInput (BVSM_AUDIO_INPUT, yttre);
bvsm.startRecording();
}

Kontrollerar om klassen BVSMic har tillgängliga prover
om (bvsm.available)
{
Ser till att de inkommande läge är STREAM_MODE innan
överföring av dataströmmen
om (bvsp.inboundMode == FRAMED_MODE)
bvsp.setInboundMode(STREAM_MODE);

Läser de ljud proverna från klassen BVSMic
int bytesRead = bvsm.read (micBuffer, MIC_BUFFER_SIZE);

Skickar ljudströmmen till BitVoicer Server
bvsp.sendStream (micBuffer, bytesRead);
}
}
annat
{
Det finns ingen SRE
Stänger av SRE och ACT_PERIOD lysdioder
digitalWrite (BVS_SRE, låg);
digitalWrite (BVS_ACT_PERIOD, låg);

Om klassen BVSMic inspelning, avbryts det
om (bvsm.isRecording)
bvsm.stopRecording();
}
Om status har gått ut, anses anslutningen
förlorade
om (bvsp.hasStatusTimedOut())
{
Om BVSMic inspelning, avbryts det
om (bvsm.isRecording)
bvsm.stopRecording();

Stänger den TCP/IP förbindelsen
Disconnect(Serial);

AllLEDsOff();
anslutna = false;
}
Om ett kommando körs kontrollerar om dess varaktighet har
upphört att gälla. Om det har, stoppa motorerna.
om (cmdRunning)
om (millis() - cmdStartTime > = cmdDuration)
RunCommand(CMD_STOP);
}
Hanterar frameReceived händelsen
void BVSP_frameReceived (byte dataType, int payloadSize)
{
Utför lämpliga åtgärder baserade på ramen
datatyp. Om datatypen är byte, är det ett kommando.
Om datatypen är int, ändras den aktiverade
under LED.
Switch (datatyp)
{
fall DATA_TYPE_BYTE:
RunCommand(bvsp.getReceivedByte());
bryta;
fall DATA_TYPE_INT16:
digitalWrite (BVS_ACT_PERIOD, bvsp.getReceivedInt16());
bryta;
}
}
Kör kommandot fick från servern
void RunCommand(byte cmd)
{
Switch (cmd)
{
fall CMD_STOP:
ms.setSpeeds (SPEED_STOP, SPEED_STOP);
cmdRunning = false;
hemkomst.
fall CMD_MOVE_FORWARD:
lastFwdCmd = cmd;
() ms.setSpeeds
motorSpeed * DIRECTION_FRONT,
motorSpeed * DIRECTION_FRONT);
cmdDuration = 60000;
bryta;
fall CMD_MOVE_FORWARD_1_CM:
lastFwdCmd = cmd;
() ms.setSpeeds
motorSpeed * DIRECTION_FRONT,
motorSpeed * DIRECTION_FRONT);
cmdDuration = 23.
bryta;
fall CMD_MOVE_FORWARD_2_CM:
lastFwdCmd = cmd;
() ms.setSpeeds
motorSpeed * DIRECTION_FRONT,
motorSpeed * DIRECTION_FRONT);
cmdDuration = 47;
bryta;
fall CMD_MOVE_FORWARD_5_CM:
lastFwdCmd = cmd;
() ms.setSpeeds
motorSpeed * DIRECTION_FRONT,
motorSpeed * DIRECTION_FRONT);
cmdDuration = 117;
bryta;
fall CMD_MOVE_FORWARD_10_CM:
lastFwdCmd = cmd;
() ms.setSpeeds
motorSpeed * DIRECTION_FRONT,
motorSpeed * DIRECTION_FRONT);
cmdDuration = 234;
bryta;
fall CMD_MOVE_FORWARD_25_CM:
lastFwdCmd = cmd;
() ms.setSpeeds
motorSpeed * DIRECTION_FRONT,
motorSpeed * DIRECTION_FRONT);
cmdDuration = 468;
bryta;
fall CMD_MOVE_FORWARD_50_CM:
lastFwdCmd = cmd;
() ms.setSpeeds
motorSpeed * DIRECTION_FRONT,
motorSpeed * DIRECTION_FRONT);
cmdDuration = 1170;
bryta;
fall CMD_MOVE_FORWARD_1_M:
lastFwdCmd = cmd;
() ms.setSpeeds
motorSpeed * DIRECTION_FRONT,
motorSpeed * DIRECTION_FRONT);
cmdDuration = 2339;
bryta;
fall CMD_MOVE_FORWARD_2_M:
lastFwdCmd = cmd;
() ms.setSpeeds
motorSpeed * DIRECTION_FRONT,
motorSpeed * DIRECTION_FRONT);
cmdDuration = 4678;
bryta;
fall CMD_MOVE_FORWARD_3_M:
lastFwdCmd = cmd;
() ms.setSpeeds
motorSpeed * DIRECTION_FRONT,
motorSpeed * DIRECTION_FRONT);
cmdDuration = 7018;
bryta;
fall CMD_MOVE_BACKWARD:
() ms.setSpeeds
motorSpeed * DIRECTION_BACK,
motorSpeed * DIRECTION_BACK);
cmdDuration = 60000;
bryta;
fall CMD_MOVE_BACKWARD_1_CM:
() ms.setSpeeds
motorSpeed * DIRECTION_BACK,
motorSpeed * DIRECTION_BACK);
cmdDuration = 23.
bryta;
fall CMD_MOVE_BACKWARD_2_CM:
() ms.setSpeeds
motorSpeed * DIRECTION_BACK,
motorSpeed * DIRECTION_BACK);
cmdDuration = 47;
bryta;
fall CMD_MOVE_BACKWARD_5_CM:
() ms.setSpeeds
motorSpeed * DIRECTION_BACK,
motorSpeed * DIRECTION_BACK);
cmdDuration = 117;
bryta;
fall CMD_MOVE_BACKWARD_10_CM:
() ms.setSpeeds
motorSpeed * DIRECTION_BACK,
motorSpeed * DIRECTION_BACK);
cmdDuration = 234;
bryta;
fall CMD_MOVE_BACKWARD_25_CM:
() ms.setSpeeds
motorSpeed * DIRECTION_BACK,
motorSpeed * DIRECTION_BACK);
cmdDuration = 468;
bryta;
fall CMD_MOVE_BACKWARD_50_CM:
() ms.setSpeeds
motorSpeed * DIRECTION_BACK,
motorSpeed * DIRECTION_BACK);
cmdDuration = 1170;
bryta;
fall CMD_MOVE_BACKWARD_1_M:
() ms.setSpeeds
motorSpeed * DIRECTION_BACK,
motorSpeed * DIRECTION_BACK);
cmdDuration = 2339;
bryta;
fall CMD_MOVE_BACKWARD_2_M:
() ms.setSpeeds
motorSpeed * DIRECTION_BACK,
motorSpeed * DIRECTION_BACK);
cmdDuration = 4678;
bryta;
fall CMD_MOVE_BACKWARD_3_M:
() ms.setSpeeds
motorSpeed * DIRECTION_BACK,
motorSpeed * DIRECTION_BACK);
cmdDuration = 7017;
bryta;
fall CMD_TURN_AROUND:
() ms.setSpeeds
motorSpeed * DIRECTION_FRONT,
motorSpeed * DIRECTION_BACK);
cmdDuration = 540;
bryta;
fall CMD_TURN_AROUND_RIGHT:
() ms.setSpeeds
motorSpeed * DIRECTION_FRONT,
motorSpeed * DIRECTION_BACK);
cmdDuration = 540;
bryta;
fall CMD_TURN_AROUND_LEFT:
() ms.setSpeeds
motorSpeed * DIRECTION_BACK,
motorSpeed * DIRECTION_FRONT);
cmdDuration = 540;
bryta;
fall CMD_DO_360:
() ms.setSpeeds
motorSpeed * DIRECTION_FRONT,
motorSpeed * DIRECTION_BACK);
cmdDuration = 1065;
bryta;
fall CMD_TURN_RIGHT:
ms.setSpeeds (motorSpeed * DIRECTION_FRONT, 0);
cmdDuration = 503 och Bull.
bryta;
fall CMD_TURN_RIGHT_10:
ms.setSpeeds (motorSpeed * DIRECTION_FRONT, 0);
cmdDuration = 56.
bryta;
fall CMD_TURN_RIGHT_25:
ms.setSpeeds (motorSpeed * DIRECTION_FRONT, 0);
cmdDuration = 140;
bryta;
fall CMD_TURN_RIGHT_45:
ms.setSpeeds (motorSpeed * DIRECTION_FRONT, 0);
cmdDuration = 252;
bryta;
fall CMD_TURN_LEFT:
ms.setSpeeds (0, motorSpeed * DIRECTION_FRONT);
cmdDuration = 503 och Bull.
bryta;
fall CMD_TURN_LEFT_10:
ms.setSpeeds (0, motorSpeed * DIRECTION_FRONT);
cmdDuration = 56.
bryta;
fall CMD_TURN_LEFT_25:
ms.setSpeeds (0, motorSpeed * DIRECTION_FRONT);
cmdDuration = 140;
bryta;
fall CMD_TURN_LEFT_45:
ms.setSpeeds (0, motorSpeed * DIRECTION_FRONT);
cmdDuration = 252;
bryta;
fall CMD_DO_CIRCLE:
() ms.setSpeeds
SPEED_NORMAL * DIRECTION_FRONT,
SPEED_NORMAL * DIRECTION_FRONT * 0,60);
cmdDuration = 4587;
bryta;
fall CMD_COME_BACK:
RunCommand(lastFwdCmd);
hemkomst.
fall CMD_SET_SPEED_SLOW:
motorSpeed = SPEED_SLOW;
hemkomst.
fall CMD_SET_SPEED_NORMAL:
motorSpeed = SPEED_NORMAL;
hemkomst.
fall CMD_SET_SPEED_FAST:
motorSpeed = SPEED_FAST;
hemkomst.
fall CMD_TURN_LEFT_45_BACKWARD:
ms.setSpeeds (motorSpeed * DIRECTION_BACK, 0);
cmdDuration = 252;
bryta;
fall CMD_TURN_RIGHT_45_BACKWARD:
ms.setSpeeds (0, motorSpeed * DIRECTION_BACK);
cmdDuration = 252;
bryta;
}
Anger starttiden kommando
cmdStartTime = millis();
Anger cmdRunning till true
cmdRunning = sant;
}
Öppnar en TCP/IP anslutning med BitVoicer servern
Ogiltigt Connect (HardwareSerial & serialPort)
{
serialPort.print("$$$");
Delay(500);

Använda IP-adressen till servern och den TCP-port som
i egenskaperna för
serialPort.println ("öppna 192.168.0.11 4194");

Delay(1000);
serialPort.println("exit");
Delay(500);
}
Stänger den TCP/IP förbindelsen med BitVoicer servern
void frånkoppling (HardwareSerial & serialPort)
{
serialPort.print("$$$");
Delay(500);
serialPort.println("close");
Delay(1000);
serialPort.println("exit");
Delay(500);
}
Inaktiverar alla lysdioder
void AllLEDsOff()
{
digitalWrite (BVS_RUNNING, låg);
digitalWrite (BVS_SRE, låg);
digitalWrite (BVS_DATA_FWD, låg);
digitalWrite (BVS_ACT_PERIOD, låg);
}

BVS_Demo3.ino

Vissa delar av denna skiss liknar delar jag använde i en av mina tidigare Instructables och erbjudanden med kommunikationen med BitVoicer Server (BVSP och BVSMic klasser). I detta Instructable, jag skall hålla mig till förklaringen av de nya delarna av skiss. Om du vill få mer information om hur du använder BVSP och klasserna BVSMic, föreslår jag att din avse Instructable jag nämnde ovan.

  • Konstanter förklaring: i början av skiss, jag förklarar en rad konstanter som används under hela koden. Gruppen för konstanter med motor inställningarna definierar den standard motor hastigheten och två riktning konstanter. Pololu motor driver library accepterar värden från-400 till + 400 för det varvtal där noll betyder off. Negativa värden anger omvänd rotation eller, om du har inverterad motoriska trådarna som jag, vidarebefordra rotation. Gruppen för konstanter med kommandot värden avser de kommandon som skickas från BitVoicer Server. I denna skiss jag har definierat endast 40 grundläggande kommandon av byte typ, men mer komplicerade rörelser kan utföras kombinera dessa kommandon.
  • Utförande kontroll variabler: fem variabler definieras i början av koden för att kontrollera utförandet av kommandon (motorSpeed, cmdDuration, cmdStartTime, cmdRunning e lastFwdCmd). Variabeln motorSpeed innehar den aktuella varvtal. Denna variabel är uppdaterad med en av de standardvärden som definieras av hastighet konstanterna om Arduino tar emot ett kommando från BitVoicer Server uppdatera motor rusar. Variabeln cmdDuration innehar den totala varaktigheten för den aktuella kommandot. Denna variabel kontrolleras mot cmdStartTime variabeln i alla iterationer av loop funktion om cmdRunning är Sant. Om kommandot utförande tid som förflutit, kallas funktionen Kör kommando för att stoppa motorerna. Variabeln lastFwdCmd innehar det senaste "go/flytta framåt" kommandot. Variabeln används veta sista rest avståndet så att "komma tillbaka" kommandot kan utföras. Observera att om du vill använda kommandot måste du först berätta roboten att vända.
  • WiFi-anslutning: i slutet av skissen jag definierar två funktioner för att ansluta och koppla från BitVoicer Server (Anslut och koppla från). Dessa funktioner sätta mikrochip WiFi modul i kommando-läge, öppna eller stänga en TCP/IP anslutning och tillbaka modulen till data-läge. Inuti loop funktion, om den anslutna variabeln inte är Sant, anropar jag funktionen Anslut . Om klassen BVSP rapporterar serverstatus har upphört att gälla, med andra ord inget svar har inkommit för den senaste statusbegäran, jag antar att anslutningen har försvunnit och jag anropar funktionen koppla från . Detta kommer att tvinga ett nytt anslutningsförsök i nästa slinga iteration.
  • Kör kommando funktion: denna funktion kallas varje gång ett kommando tas emot från BitVoicer Server. Det tar ett byte -värde som motsvarar en av de grundläggande kommandon definieras av konstanterna i början av skissen. Varje grundläggande kommandot identifieras inne i växeln så lämplig motor rusar kan sättas samt kommandot varaktighet. I slutet av funktionen, variabeln cmdRunning har värdet true och den tid som returneras av funktionen millis lagras i variabeln cmdStartTime . Detta gör Arduino att styra exekvering av kommandon som beskrivs ovan. Tider, i millisekunder, för varje kommando erhölls som beskrivs i föregående steg.
Se Steg
Relaterade Ämnen

Taligenkänning med Arduino och BitVoicer Server

I detta Instructable ska jag visa hur man använder en Arduino ombord och BitVoicer Server för att kontrollera några lysdioder med röstkommandon. Jag kommer att använda Arduino Micro i detta Instructable, men du kan använda en Arduino ombord du har ti...

Gest kontroll car(robot) med Arduino och Android(bluetooth)

Hej folk,Här är ett intressant projekt för alla er kreativa hjärnor ute. Vi ska bygga en android-telefon kontrollerade RC bil.Inget kunde vara mer fascinerande än avlägsen kontrollerade bilar. Denna använder en Bluetooth för kommunikation och acceler...

Bygga din Internet kontrollerad Video-Streaming Robot med Arduino och Raspberry Pi

< the Instructable och koden är redo. Njut! Lämna en kommentar med du feedback! >Jag är (aka LiquidCrystalDisplay / Itay), en 14 år gammal student från Israel lärande i Max Shein Junior High School för avancerad vetenskap och matematik. Jag gör dett...

Realtid ansikte spårning Robot med Arduino och Matlab

Realtid ansiktsspårning avser uppgiften att lokalisera ansikten i en videoström och spårning hittas eller igenkända ansikten. Numera finns det många verkliga tillämpningar av ansiktsavkänning och andra tekniker för bildbehandling. Det finns många alg...

Kontrollera en Roomba robot med Arduino och Android

(Om du gillar detta Instructable, glöm inte att rösta på den - ovan: högra hörnet flaggan. Det tävlar på AUTOMATION tävling. Tack så mycket! ;-)Som en av robotteknik tävling 2016 vinnarna här på Instructables fick jag som pris en iRobot Roomba Create...

Avlägsen kontrollerade robot med Arduino och T.V. remote

Denna fjärrkontroll bil kan flyttas runt med praktiskt taget alla slags remote såsom TV, AC etc.Det använder sig av det faktum att fjärrkontrollen avger IR(infrared).Den här egenskapen är gjord använda av med hjälp av en IR-mottagare, vilket är en my...

Arduino Uno och Visuino: kontrollera Smart Car Robot med Joystick och L298N motorn förarens

Smart Car anger i kombination med L298N Motor drivrutinsmoduler, erbjuder en av de enklaste sätten att göra roboten bilar. L298N Motor Driver modul är lätt att kontrollera med Arduino, och med hjälp av Visuino kan du programmera din bil i sekunder.I...

Grundläggande raden efter Robot med Arduino

09/07/2015Det har varit några år eftersom vi Ursprungligen postat denna grundläggande linje följande Robot med Arduino handledning, och det verkar så många människor tyckte att det bra att vi ska skicka en uppdatering som löper nuvarande Arduino bibl...

Hur använder gamla Stepper Motors med Arduino och A4988 Driver

Jag har varit med stegmotorer ett tag nu, och de är fantastiska för alla typer av robotic projekt.Idag kommer jag att dela de saker jag har lärt mig hittills om återanvända gamla stegmotorer bärgades från skrivare. Identifiera stegmotorerStegmotorer...

Hur man har kul med Arduino (och bli en nörd i processen)

vill du tjäna din geek-kort - pronto? Låter komma igång! Denna guide börjar du på sökvägen till den mörka sidan med hjälp av öppen källkod Arduino utveckling och prototyping plattformen. Det kommer att introducera dig till mikrokontroller, komma igån...

Multiplexering med Arduino och 74HC595

74HC595 är en lätt och billig (på cirka 60 cent styck) sätt att öka antalet digitala ut stiften på din Arduino. I denna tutorial ska jag visa dig hur man kör upp till 16 lysdioder med en 74HC595 med hjälp av en teknik som kallas multiplexing. I slutä...

Mugg musik: Förvandla vatten till ett Instrument med Arduino och ChucK

Vad händer om du slå alla ledande yta till ett instrument? Gillar, säga... en mugg vatten? Bäst av allt, är det billigt; du behöver bara $1 värt extra elektriska komponenter (inte inklusive Arduino).För detta projekt, min vän skörd och jag kombinerad...

Säkerhetssystem och tillgång kontroll med Arduino och RFID-

säkerhetssystem och tillgång kontroll med Arduino och RFIDDetta projekt är en evolotuin av mitt första projekt kallat "Arduino - Security System och Access Control"Som ni kan se på bloggen http://arduinobymyself.blogspot.com.br/2012/03/arduino-s...

Power övervakning med Arduino och logga in i Google blad

Sedan senaste veckorna tänkte jag på att göra ett projekt som kan hjälpa mig att hålla ett spår på min dagliga energi användningsområden. I detta projekt använder jag en 30A övervakning styrelse. denna styrelse har 6 strömsensor som kan läsa upp till...

Roligt spel med arduino och bearbetning

Denna tutorial ska show dig hur man gör en första person FPS-shooter i bearbetning med hjälp av en arduino. Detta projekt lämnades till oss som en avslutande tentamen i en teknisk specialkurs, (gymnasieskolan).Video av projektet! :) (Svårt att spela...

Kontroll av en DC motor med Arduino och Visual Basic

Hej vänner detta är mitt första inlägg i instructables.com där jag kommer att försöka ge mer nyhet des ofta.Idag är temat med Arduino och Visual Basic.Det projekt som vi ser idag är controller en dc-motor med Arduino och Visual Basic.För att styra en...

Styra din Tv, Dvd och ljud system med Arduino och Android

Hej alla, detta är min andra instructable och min första på engelska, så, ledsen för misstag.Jag vill dela detta projekt det handlar om hur du kan styra din Tv, DVD och ljudanläggningen med Arduino och en app för Android med app inventor.Om du gillar...

Rörelseaktiverade ljus med Arduino och HC-SR04 sensor

Jag gjorde detta projekt för länge sedan att tända upp i köket när jag öppnar bakdörren.Tanken var när jag öppnar bakdörren, detta ljus som tänds under 15 sekunder och som ger mig tillräckligt med tid att nå strömbrytaren på den motsatta väggen. Före...

Kapacitans mätare med arduino och 555 timer

KAPACITANS MÄTARE MED ARDUINO OCH 555 TIMER CHIPDetta projekt syftar till att bygga en enkel kapacitans mätare, en enhet för att mäta kapacitans i nanoFarads och microFarad, med en räckvidd på ca 1 nanoFarad till hundratals microFarads.Detta projekt,...