Tal kontrollerade Quadropod (5 / 6 steg)

Steg 5: kodning

Arduino:

Lansera Arduino och öppna en ny skiss. Jag har tyvärr inte tillräcklig tid att lära dig grunderna i Arduino. Du kan slå upp några tutorials om du känner för. Så detta är vad vi ska göra, när du öppnat en ny skiss: filen >> ny eller Ctrl + N.

Kopiera klistra in följande kod (eller bara ladda ner den bifogade filen). Jag är skyldig Oddbot igen för att hjälpa mig med den rörelse delen av koden looooong lååång tillbaka.

Koden:

/ * Titel: tal kontrollerade Quadropod
Författare: Björn Johan Désirées
Kommentarer: Denna kod är gratis för dig att använda, modifiera eller bara stirra på när du är riktigt uttråkad.
*/

#include < Servo.h > / / Servo bibliotek

Utgångspunkter för servon
#define FLHcenter 1500
#define FRHcenter 1500
#define RLHcenter 1520
#define RRHcenter 1450

#define FLKcenter 1150
#define FRKcenter 1220
#define RLKcenter 1220
#define RRKcenter 1210

Här kan du ändra servo pin nummer motsvarande
till din specifika anslutningar
#define FLHpin 46 / / främre vänster höft servo pin
#define FRHpin 52 / / främre höger höft servo pin
#define RLHpin 28 / / bakre vänster höft servo pin
#define RRHpin 13 / / bakre höger höft servo pin

#define FLKpin 47 / / främre vänster knä servo pin
#define FRKpin 53 / / främre höger knä servo pin
#define RLKpin 29 / / bakre vänster knä servo pin
#define RRKpin 12 / / bakre höger knä servo pin

Buffert för tal meddelandet
char INBYTE;

Lysdioder! Om du väljer att använda 'em
int led1 = 27.
int led2 = 11;
int led3 = 45;
int led4 = 26.

Vissa konstanter för den bot motioner, ja du kan
spela med dem för att få bästa prestanda
int tid = 90.
int LShift = 280;
int RShift = 280;
int höjning = 550;

Definiera servon
Servo FLHservo;
Servo FRHservo;
Servo RLHservo;
Servo RRHservo;
Servo FLKservo;
Servo FRKservo;
Servo RLKservo;
Servo RRKservo;

void setup()
{
Bifoga servon (digitalt)
FLHservo.attach(FLHpin);
FRHservo.attach(FRHpin);
RLHservo.attach(RLHpin);
RRHservo.attach(RRHpin);
FLKservo.attach(FLKpin);
FRKservo.attach(FRKpin);
RLKservo.attach(RLKpin);
RRKservo.attach(RRKpin);

Koppla lysdioder (digitalt)
pinMode (led1, produktionen);
pinMode (led2, produktionen);
pinMode (led3, produktionen);
pinMode (led4, produktionen);

Serial.BEGIN(9600);

Center servon
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);

Skriver ut kontrollerna mappas till olika bokstäver
Serial.println ("wasd - rörelse");
Serial.println ("z - sömn");
Serial.println ("x - play dead");
Serial.println ("i - sitta");
Serial.println ("u - stå");
Serial.println ("q - vakna upp");
}

void loop() {
Serial.println ("redo att acceptera kommandot");
tag (!. Serial.available()); bo här så länge COM-porten är tom
INBYTE = Serial.read(); läsa nästa tillgängliga byte
Delay(50);

om (INBYTE == "q") / / vaknar - blinkar lysdioderna om du använt dem
{
digitalWrite (led1, låg);
digitalWrite (led2, låg);
digitalWrite (led3, låg);
digitalWrite (led4, låg);
Delay(200);
digitalWrite (led1, hög);
digitalWrite (led2, hög);
digitalWrite (led3, hög);
digitalWrite (led4, hög);
Delay(200);
digitalWrite (led1, låg);
digitalWrite (led2, låg);
digitalWrite (led3, låg);
digitalWrite (led4, låg);
Delay(200);
digitalWrite (led1, hög);
digitalWrite (led2, hög);
digitalWrite (led3, hög);
digitalWrite (led4, hög);
Delay(200);
digitalWrite (led1, låg);
digitalWrite (led2, låg);
digitalWrite (led3, låg);
digitalWrite (led4, låg);
Delay(200);
digitalWrite (led1, hög);
digitalWrite (led2, hög);
digitalWrite (led3, hög);
digitalWrite (led4, hög);
Delay(200);
digitalWrite (led1, låg);
digitalWrite (led2, låg);
digitalWrite (led3, låg);
digitalWrite (led4, låg);
Delay(200);
digitalWrite (led1, hög);
digitalWrite (led2, hög);
digitalWrite (led3, hög);
digitalWrite (led4, hög);
}
annars om (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, hög);
digitalWrite (led2, hög);
digitalWrite (led3, hög);
digitalWrite (led4, hög);
Delay(200);
digitalWrite (led1, låg);
digitalWrite (led2, låg);
digitalWrite (led3, låg);
digitalWrite (led4, låg);
Delay(200);
digitalWrite (led1, hög);
digitalWrite (led2, hög);
digitalWrite (led3, hög);
digitalWrite (led4, hög);
Delay(200);
digitalWrite (led1, låg);
digitalWrite (led2, låg);
digitalWrite (led3, låg);
digitalWrite (led4, låg);
Delay(200);
digitalWrite (led1, hög);
digitalWrite (led2, hög);
digitalWrite (led3, hög);
digitalWrite (led4, hög);
Delay(200);
digitalWrite (led1, låg);
digitalWrite (led2, låg);
digitalWrite (led3, låg);
digitalWrite (led4, låg);
Delay(200);
}
annars om (INBYTE == "u") / / stå upp
{
Center servon
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);
}
annars om (INBYTE == "x") / / spelar döda 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);
}
annars om (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);
}
annars om (INBYTE == "h") //shake händer
{
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);
}
annars om (INBYTE == "w") / / kör fram
{
LShift = 300;
RShift = 300;
för (int jag = 0; jag < 5; i ++)
{
Run();
}
}
annars om (INBYTE == "a") / / sväng vänster
{
LShift =-300;
RShift = 300;
för (int jag = 0; jag < 3; i ++)
{
Run();
}
}
annars om (INBYTE == hade ") / / sväng höger
{
LShift = 300;
RShift =-300;
för (int jag = 0; jag < 3; i ++)
{
Run();
}
}
annars om (INBYTE == 's ") / / kör tillbaka
{
LShift =-300;
RShift =-300;
för (int jag = 0; jag < 5; i ++)
{
Run();
}
}
}

void Run()
{
FRKservo.writeMicroseconds(FRKcenter+Raise); höja främre höger ben
RLKservo.writeMicroseconds(RLKcenter+Raise-10); höja bak vänster ben
FLHservo.writeMicroseconds(FLHcenter+LShift); flytta vänster framben bakåt
RRHservo.writeMicroseconds(RRHcenter-RShift); flytta bak höger ben bakåt
Delay(Time/2);
FRHservo.writeMicroseconds(FRHcenter+RShift); Gå höger framben framåt
RLHservo.writeMicroseconds(RLHcenter-LShift); flytta bak vänster ben fram
Delay(Time);
FRKservo.writeMicroseconds(FRKcenter); nedre höger framben
RLKservo.writeMicroseconds(RLKcenter); bakre vänstra underbenet
Delay(Time);

FLKservo.writeMicroseconds(FLKcenter+Raise); höja vänster framben
RRKservo.writeMicroseconds(RRKcenter+Raise); höja bakre höger ben
FRHservo.writeMicroseconds(FRHcenter-RShift); flytta höger framben bakåt
RLHservo.writeMicroseconds(RLHcenter+LShift); flytta bak vänster benet bakåt
Delay(Time/2);
FLHservo.writeMicroseconds(FLHcenter-LShift); gå vänster framben framåt
RRHservo.writeMicroseconds(RRHcenter+RShift); flytta bak höger ben fram
Delay(Time);
FLKservo.writeMicroseconds(FLKcenter); nedre vänstra framben
RRKservo.writeMicroseconds(RRKcenter); Bakre höger underben
Delay(Time);
}

Precis innan du kan ladda upp koden, gör följande:

Öppna Enhetshanteraren och leta upp portar (COM & LPT).



Notera den aktiva porten för din Arduino. Det kan säga USB-seriell Port (COM3) så för mig COM port 3, detta kan vara annorlunda för dig.

Verktyg >> styrelsen >> Arduino Mega eller Mega 2560 (bild 2)

Tools >> processorn >> ATMega 1280 (bild 3)

Verktyg >> Port >> COM3 (3 i mitt fall bara!) (bild 4)

Nu kan du slå på upload-knappen och om allt går smidigt, bör ladda framgångsrikt och roboten ska vara på dess mage med fyra ben utsträckt symmetriskt med en stadig LED blinkar från HC-06.

Om du får detta fel medan uppladdning:

avrdude: stk500_getsync(): inte i synk: resp = 0xe0

Bara koppla bort HC06-modulen, ladda upp koden och ansluta den igen.

OK insåg jag något medan jag testar och skriver den här guiden. Du behöver inte både BitVoicer och Python, du behöver bara någon av dem. BitVoicer gör allt för dig och dess taligenkänningsverktyg är ganska mäktig men det kostar $5 medan python's taligenkänning använder Google Speech API så det kan ibland ge några riktigt konstiga resultat och har några fler kodning, så valet är ditt.

Bluetooth

Okej bara innan vi går vidare till tal erkännande lite via BitVoicer eller Python, kan koppla bluetooth i din dator till HC 06 av din bot. Kontrollera att bluetooth på datorn fungerar innan du fortsätter eftersom det tog mig 5 timmar att inse att min laptop inte kom med en inbyggd bluetooth och jag var tvungen att beställa en modul.

Nu driva upp din bot antingen via USB eller batteriet. OMG när gör denna tutorial slutet!!! Tålamod! Du är nästan där.

  1. Högerklicka på Bluetooth-enheter-ikonen i tray baren och klicka på Lägg till ny enhet.

  2. Låt det Sök och Sök och Sök fram till HC - 06 dyker upp

Om det inte visas efter någon gång försöka kontrollera om du kan hitta enheten med din mobiltelefon (varje telefon förutom Apple telefoner bör kunna upptäcka det). Om du inte du vet att det är något fel med din HC-06 och måste du åtgärda det genom att kontrollera anslutningarna.
  • Dubbelklicka på den.
  • På nästa dialog rutan Välj Ange enhetens hopkopplingen kod och typ i 1234. Det bör sedan installera HC 06 till datorn.
  • Nu denna del är viktig öppnar Enhetshanteraren (Starta >> Device Manager)
  • Gå till portar (COM & LPT) och anteckna de COM-portar som används av Bluetooth.

    COM10 och COM21 i mitt fall.
  • BitVoicer (alternativ 1)

    Du kan hämta BitVoicer från här.

    Första saker först, om du inte är en amerikansk engelska högtalare kanske du vill ändra språk/accent som BitVoicer kommer att försöka känna igen. För att göra detta gå till fil >> ytterligare språk och gå på installera din föredragna språk/dialekt.

    Nu är vi redo att lägga till vissa kommandon. För förrätter vi kommer att lägga till bara två kommandon nämligen stå upp och sitta ner. Du kan redigera dem eller lägga till fler kommandon senare. Stegen är följande:

    1. Skapa ett nytt Schema vid går till arkivera >> New.
    2. Ändra standarddatatyp kommando till röding.
    3. Klicka på Lägg till ny mening
    4. Skriv i "stå upp" (inga citationstecken)
    5. Klicka på Lägg till ny mening
    6. Skriv i "sitta" (återigen utan citationstecken)
    7. Nu nedan i meningen anagram, ändra datatyperna för båda befallningen till röding om dess inte redan char.
    8. För stå upp typ kommandot som du och för sitta typ jag.
    9. Skärmen ska se ut bild 5.

    10. Spara ditt schema i en katalog som är bekvämt för dig.
    11. Nu öppna inställningar av filen >> Inställningar och fyll i saker med.

      Bara tre saker som kommer att vara annorlunda för dig kommer att vara standard Output mappen, tal tolkningsspråk och portnamnet.
    12. COM-porten som din Bluetooth använder att du fick reda på i steg 6 i Bluetooth motsvarar din portnamn. Prova det lägre nummer först.
    13. Tryck spara.
    14. Gå till nästa steg.

    Python (alternativ 2)

    Först hämta Python (för denna tutorial jag ska använda version 3.4) som kan laddas ner från https://www.python.org/download/releases/3.4.1/ varför 3.4 och inte den 2,7 versionen? Bra tal erkännande som vi använder fungerar endast på 3,4 version av python (ya jag vet som suger men hey 3.4 > 2,7 rätt?)

    Installera den in i C:\Python34 för bekvämlighet skull. Nästa sak du behöver göra är att hämta och installera eclipse som är ett gränssnitt för att skriva din kod via Python. Du kan hämta den från http://www.eclipse.org/downloads/ installera den in i C:\eclipse

    Om du får detta felmeddelande när du kör det...

    En Java Runtime Environment (JRE) eller Java Development Kit (JDK) måste vara tillgänglig för att köra Eclipse. Ingen virtuell Javamaskin hittades efter en sökning på följande platser:
    C:\eclipse\jre\bin\javaw.exe
    javaw.exe i din nuvarande väg

    Gå till det första svaret i http://stackoverflow.com/questions/2030434/eclipse-no-java-jre-jdk-no-virtual-machine

    www.StackOverflow.com är den bästa platsen att hitta hjälp för problem i python

    Använd den här självstudien installera python i eclipse utom i stället för python 2.6 bör du välja python 3.4. Alternativt använda denna tutorial att installera python till Geany om du valde att använda Geany som jag hör är mycket trevligare än eclipse men jag har inte haft tillräckligt med tid att migrera till det. Det finns något som kallas "bibliotek" som du kommer att behöva komma åt de olika funktionerna för python. Nu kan gå vidare och installera några bibliotek som vi behöver för detta projekt. För dig som redan vet hur man installerar gå bibliotek bara framåt installera de lista dem och gå vidare till koden.

    Bibliotek som krävs:

    • PyBluez 0,20 - Bluetooth (setup)
    • PyAudio 0.2.8 - ger bindningar för taligenkänning (setup)
    • SpeechRecognition 1.1.0 - taligenkänning (Hämta)

    PyBluez och PyAudio kan installeras genom att ladda ner den "... win32-py3.4.exe" versioner från länken och helt enkelt köra den körbara (setup) fil.

    SpeechRecognition bibliotek är lite knepigt om du är ny med python. Öppna "download" länken ovan och klickar på hämtningsbara filer. Ladda ner "SpeechRecognition-1.1.0.tar.gz (md5)". Extrahera alla innehållet (inte mappen som säger SpeechRecognition-1.1.0 men whats i det) av den nedladdade mappen (via winRAR eller någon du känner med extractor) till katalogen python 3.4 (C:\Python34). En dialogruta öppnas och du tillfrågas om du vill ersätta befintliga filer, klicka på Ja till alla. Nu navigera till C: driva och medan du håller SKIFT, högerklicka på den mapp som säger Python34 och klicka på "öppen befalla fönster här". Skriv i "installera python setup.py" utan citattecken och tryck Enter. Nu bör du ha alla nödvändiga bibliotek installerat. Yay!

    Öppen eclipse.

    Skapa en ny fil som heter Speech_Controlled_Quadrapod.py liknar hur du skapade pytest.py filen som du skapade i handledningen under mappen PythonTest från handledning. Nu klistra in eller ladda ner...

    Koden:

    # Namn: Tal kontrollerade Quadrapod
    # Författare: Björn Johan
    # Beskrivning: Använder Googles tal erkännande API och python bluetooth-bibliotek för att kontrollera en quadrapod
    # Hur man: säga "stå upp" att göra bot stå upp och säga "sitta" för att göra det sitta.
    # Säger "sluta lyssna för att avsluta programmet"

    importera bluetooth
    importera speech_recognition som sr

    port = 1
    BD_ADDR = "xx"
    Sock = bluetooth. BluetoothSocket (bluetooth. RFCOMM)
    Sock.connect ((bd_addr, port))
    r = sr. Recognizer()
    r.pause_threshold = 0,6
    r.energy_threshold = 400
    MEDDELANDE = "Fortsätt"
    skriva ut ("redo att acceptera command...\n")
    medan (meddelande! = "sluta lyssna"):
    medan (meddelande == "fortsätta"):
    försök:
    # Använd standard mikrofonen som ljudkälla
    med sr. Microphone() som källa:
    # lyssna på den första meningen och extrahera den till ljuddata
    ljud = r.listen (källa, timeout = ingen)
    # känna igen tal med hjälp av Google taligenkänning
    skriva ut ("mig:" + r.recognize(audio))
    MEDDELANDE = str(r.recognize(audio))
    Förutom LookupError:
    # tal är obegripligt
    MEDDELANDE = "Fortsätt"
    skriva ut ("kunde inte förstå ljud")
    om (meddelande == "sitta"):
    Sock.send("i")
    Elif (meddelande == "stand up"):
    Sock.send("u")
    Elif (meddelande == "sluta lyssna"):
    bryta;
    MEDDELANDE = "Fortsätt"
    Sock.Close()
    skriva ut ("\nProgram avslutade.")

    Den enda ändring som du behöver göra är i raden:

    BD_ADDR = "xx"

    Högerklicka på bluetooth-ikonen i facket och klicka på "Visa Bluetooth-enheter". Högerklicka på HC-06 och klicka på egenskaper. Gå till fliken Bluetooth och kopiera den unika ID-nummer och klistra som i stället xx.


    Du är bra att gå provning.

    Se Steg
    Relaterade Ämnen

    Carlitos' projekt: Trådlös tal-kontrollerade Arduino Robot

    Vi alla drömmer om att ha apparater och maskiner som kan lyda våra röstkommandon. Nåväl, låt oss ta det första steget mot att göra detta hända och bygga en tal-kontrollerade Arduino-baserad mobil robot.Du kanske tänker att göra sådan robot måste vara...

    Rörelse och tal kontrollerad Wifi kamera Bluetooth bil

    Detta instructable visar dig hur du skapar en rörelse och tal kontrollerad bil med en wifi kamera och bluetooth kontroller. Fortsätta till nästa steg för en reservdelslista. Jag blev inspirerad av en produkt ses härSteg 1: Reservdelslista Wispi inkrä...

    Tal-kontrollerade Game Boy Advance

    Detta är ett projekt jag arbetat med under min elektronik klass på Pomona College. Tack till Professor Dwight Whitaker och Tony Grigsby för deras hjälp och vägledning under hela projektet, och kredit till Jonathan Wong för idén till detta projekt!Ock...

    Tal kontrollerade IR fjärrkontroll

    IntroduktionJag kommer att förklara processen att skapa Parallax Propeller kontrollerade IR remote controller i detta dokument. Detta Instructable kommer att förklara ett av flera sätt detta skulle kunna uppnås enheten ansluts till en dator via USB t...

    Untethered taligenkänning och syntes med Arduino

    MOVI står för "Min egen röst Interface" och är en kickstarter-backed Arduino Shield som gör det mycket enkelt att bygga din egen tal dialoger att styra enheter inom Arduino IDE. Denna snabba instructable visar dig hur du kommer igång att inrätta...

    Arduino kontrollerade ljus dimmer

    Varning: Vissa människor försöka bygga detta med en optocoupler med zerocrossing coz "som är bättre" rätt? Vissa får även höra i elektronik butiker är det bättre att använda sådan optocoupler. FEL. Detta fungerar endast med en random brand optoc...

    Android kontrollerade ljus och kraft, pfodDevice för Arduino

    Uppdatering: Se Android/Arduino för nybörjare - Design anpassade Android menyer att slå Arduino utgångar på och av. Absolut No programmering krävs för ett alternativ som inte kräver någon programmering alls.===========================================...

    Hjärnan-kontrollerade RC helikopter

    detta Instructable visar du hur tar en Radio Controller helikopter och ändra fjärrkontrollen maskinvaran så att den kan drivs av fri, öppen källkod programvara och flugit baserat på hjärnvågorna mätningar av koncentration och avslappning av konsument...

    Android pfodApp kontrollerade datalogging Arduino IRTemp mätaren

    IntroduktionDetta instructable visar dig hur man gör en Arduino baserade IR temperatur mätare som styrs av din Android mobil. PfodApp används för att göra kontrollen. Nr Android programmering krävs. Du kan anpassa de funktioner som ändrar Arduino kod...

    Raspberry Pi kontrollerade bevattningssystem

    Varje vår min fru blir riktigt ambitiös och växter en stor köksträdgård. Som sommaren drar ut på tiden, ambition vänder till lättja och tyvärr många av växterna dö en långsam, vissnande död från försumma på grund av brist på rensa ogräs och vattna (f...

    GUI kontrollerade ledde matrisen

    jag fick nyligen en Arduino Uno, och det blev snabbt min favorit leksak. Efter att lära sig grunderna i hur plattformen fungerar, blev jag intresserad gränssnitt Arduino med PC-datorer. Efter att ha sett ett stort antal LED matrix projekt på Instruct...

    Arduino billig hög kvalitetstid / smartphone sprängkapseln (eller kontrollerade kopplingsur): 2016 super noob vänligt sätt!

    Detta instructable är avsedd för alla som vill lära sig att göra en ordentlig tid eller smartphone kontrollerade detonator. Jag personligen använt detta för att skjuta min pyro på nyår på exakt midnatt. Jag kommer att gå igenom alla steg i att göra d...

    Hydroponiska, automatiserade, nätverk, klimat kontrollerade Greenhouse Project: Konstruktion

    detta Instructable kommer att täcka byggandet av min hydroponiska, automatiserade, nätverk, klimat kontrollerade Greenhouse Project. Uppbyggnadsfasen av projektet täcker de betong fundament, utformningen och glasering av växthuset.Andra Instructables...

    Webb-kontrollerade 8-kanals Powerstrip

    hälsningar, Karl Raspberry Pi entusiaster. Vi håller på att skapa en multi-purpose gadget som är säker på att imponera! Min främsta skälet för att bygga detta till att styra min Christmas lights, men det är bara en av många möjliga användningsområden...

    Flamma kontrollerade MIDI-Controller

    En stor fråga i världen av digital musikproduktion är att hålla det analog värme (som genljöd från rullbandspelare system och rör) i dagens moderna digitala musik. Många svär att analoga system har ett ljud som aldrig kan replikeras av bits, och hopp...

    Lätt naturen gjorde avlägsen kontrollerade lampa!

    Hej grabbar, den här gången jag är här med en enkel men en mycket grön design att göra lampor för du hushållsbruk och dekoration, att ett retro och nykter titt. Denna idé kan att användas var som helst, men för mig är det nya. Det är en grundläggande...

    Arduino kontrollerade animatronic trä huvud (läslampa)

    detta huvud är en läslampa som kan justeras för riktning av belysning, och nedtonade som krävs.Detta Instructable kombinerar Arduino programmering, några enkla elektronik, carving med hand och power tools, mekanisk kontroll och lite av träslöjd. Bort...

    K-9 2.0. WiFi kontrollerade och autonom Robot hund.

    OBS:I steg 22, har jag postat en uppdatering, förklarar några senaste förändringar/förbättringar som jag har gjort, främst på K-9's elsystem och sensor array som du kan ha nytta.FunktionerRobust trä (MDF) och akryl designHelt mikroprocessorstyrda anv...

    GSM kontrollerade växthus för landsbygden i Afrika

    DESIGN OCH TILLVERKNING AV EN GSM KONTROLLERADE VÄXTHUSGASER SYSTEMINTRODUKTIONTeknik har omdefinierat kommunikation och mer så på många fördelaktiga sätt. Mobil teknik har lett till att mynta begreppet "global by" som kan ses genom det faktum a...