Hur man gör en fjärrkontroll kännande web-docka av hacka Twitter, Google, Skype, Arduino och bearbetning! (5 / 16 steg)

Steg 4: Hur Twitr_janus talar med text till tal (i bearbetning)



Öppna data på tal

En viktig punkt som jag försöker testa med Twitr_janus var om jag kunde få en marionett tala öppna data över webben. Från början var det tänkt detta skulle bara vara tweets från konto på Twitter och detta var hur Twitr_janus fick sitt namn.

Twitr_janus gjorde verkligen framgångsrikt tala tweets, strippad från Twitter API med bearbetning.

Att göra Twitr_janus tala tweets gjordes utan att använda API keys och parsning API strängen i stället för att referera till fält korrekt. Detta skulle undvika att behöva registrera dig som en Twitter utvecklare, etc. Denna råa metod hade vissa begränsningar, till exempel tweets med styrtecken, förvirrad analysera skript leder till meddelanden att trunkeras När att avkodas.

Analysera modellen fungerade mycket bättre med Google spreadsheets, där rådata kan läggas med extra stopp data för att analysera processen med hjälp av uttryck i fälten kalkylblad. Google kalkylbladsdata var inte bara lätt att använda för tal, var det möjligt att enkelt använda det för ögongloben kontroll. Eftersom Google spreadsheet metoden är lättare och mer mångsidig av två metoder, är detta vad som beskrivs nedan.

Hur data skickas, kodade och avkodas, steg för steg

Det hjälper för att tänka igenom flödet av data...

Innan på detta tyckte jag att det är bra att klottra ner ett flödesschema över att få en känsla för de byggstenar som behövs. Mun och TTS-representerar funktionen av text till tal-konvertering.

Detta är inte en teknisk ritning!

Del 1 - att ange data i Google kalkylark

Det fanns tre datadelar som behövs skickas från spreadsheed, till avkodas av bearbetning. Dessa var de två variabler eyeballUpDown_stop (kolumn F) och eyeballLeftRight_stop (kolumn G) som är kodade placering av data. Senare en gång avkodas skulle de användas för att driva servon med en Arduino bifogas marionett huvudet. Den tredje delen av data var text_stop, vilket är vad som skulle bearbetas ytterligare bearbetning för att skapa text till tal.

I den slutliga versionen sändes bara två bitar av data. Taldata, och ett enda ögongloben datavärde. Detta kan orsaka viss förvirring när man tolkar koden! (eyeballUpDown användes, men inte bytt namn),

En enda ögongloben position variabel kan användas i stället för två eftersom data som skickas bara representerade en av 25 positioner. Även om två kontrollvärden behövs av Arduino att placera ögonglober (en för upp/ner servo, en för vänster/höger servo) användes den enda variabeln skickas att få tillgång till motsvarande värdepar, lagras i en matris inuti Arduino skiss.

I cellerna, kan du se att data har föregåtts av ¬ karaktär. Detta läggs till oavsett data anges manuellt med en concatonating cell uttryck. Det används som ett stopp tecken för att avgränsa data strängarna senare. Dessa tecken visas i RSS-flöde och bearbetningsskriptet använder dem för att berätta där en dataenhet slutar och nästa börjar. (kontroll-karaktär avgränsningen)

Från början var data anges manuellt i fält på kalkylbladet, enligt nedan. Detta är inte perfekt, eftersom du måste veta de exakta värdena att skicka, vilket är svårt att komma ihåg och lätt att röra upp...

För att undvika manuellt skriva in data i kalkylbladet, användes inbyggda Google form. Detta är tillgängligt för alla Google spreadsheet användes.


Som ser ut så här...

Dock krävs standardformulären som Google ögongloben numeriska positionering värden anges exakt, så det behövs ändras.

För att skapa en mer användbar form med enkel kontroll över förinställda värden för variablerna ögongloben grundläggande överfördes html i formuläret till en webbsida (en html widget på en NetVibes sida), där det kunde vara pimped upp lite.

Formuläret i Netvibes som det såg ut för operatorn marionett

Fri text ingångar var bytte för radio knapp ingångar med förinställda värden och motsvarande texten läsbar ståndpunkten.

Viktigaste var att fortfarande använda Google ursprungliga fältnamnen så att alternativen data skulle alla vara sparken i samma cell i kalkylbladet när det nya formuläret lämnades

Du kan se detta i HTML-vy av formuläret nedan. Alla alternativ följer samma mönster som nedan

  • XXX är ett värde som skickar data som motsvarar till den fysiska ögonglob ståndpunkten "positionxxx"
  • Xxx värdet faktiskt ett referensnummer värde inom ett specifikt element av en matris (det finns 25 olika förinställda positioner, därav där som en alternativknapp som behövs för varje heltal mellan 1 och 25, används till referenc array värden mellan array [1] och array [25]
  • positionxxx är en vanlig engelsk beskrivning att Visa operatorn, att tillåta dem att välja en målpositionen ögongloben
  • "entry.1.single" är namnet på Google-fältet som måste hållas samma, så det kommer att sätta värde xxx i rätt cell i kalkylbladet. Detta är samma för varje alternativknapp, eftersom de olika värdena är effektivt val av värden att lägga i en fältet

Efter omarbetning form, skapades ett mer visuellt gränssnitt, så det var lättare att se var ögonglober skulle flytta, samtidigt tillåta tal text som ska anges.

Den andra linjen som är viktig som tas också från orginal Google form html är denna:


Det är formen överföringsåtgärd och måste hållas samma.

Denna teknik koppleri en enkel Google form har vissa fördelar:

  • Det låter dig andra möjligheter som att lägga till kontinuerlig reglagen med hjälp av HTML 5 funktionen < input type = "range" / >
  • Du kan skapa en metod för att injicera data till ett kalkylblad utan någon form av API-nyckel. Du behöver bara veta hur till tweak HTML-formulärkontroller och värden.
  • Du kan mata in data i ett fält, men dra data ut från ett annat fält som använder indata, men ändras på något sätt att utvidga dess mångsidighet, som krävs

Nackdelen är

  • på att skicka formuläret, tar Google dig tillbaka till den ursprungliga formen inte pimped formuläret, så du behöver göra en sidan uppdateras efter varje inlämning att ladda om du bildar

Formuläret i Netvibes - HTML-källkod (bilden nedan)

Del 2 - att få uppgifter i andra änden av webben

Den post som beskrivs ovan representerar den första länken i den ganska skräp dataflödesdiagram visas högst upp på sidan (även om den visar Twitter som datakälla, inte Google). Data träder steg händer på en anordning, används av operatören från Twitr_janus marionett huvudet. Det är i själva verket det primära gränssnittet.

I andra änden av webben, var Twitr_janus' huvud ansluten till en separat dator som kör sin bearbetning hjärnan skiss. Detta röstningen en RSS-data-feed från det publicerade kalkylbladet. För att få detta flöde, hade kalkylbladet att publiceras. När du publicerar ett Google-kalkylark, ges det en allmän RSS-flöde, med en särskild URL. Detta används senare i skriptet bearbetning för att tolka data. Den Url ser för en Google RSS kommer att se ut så här...

Och resultatet ser ut så här...

I RSS-utgång stopp tecken ¬ syns tydligt (andra från sista raden, innan fältnamn: "eyeballupdownstop", "eyeballleftrightstop" och "textstop" och motsvarande värden för 13, 22 och "Hej mitt namn är..."

Bearbetning skissen som är Twitr_janus' hjärna undersökningar denna URL upprepade gånger och använder ¬ tecken för att tömma data...

Här är den kod som parsning google kalkylark flöde för att extrahera kontrolldata och leds sedan vidare i en array. Det söker ¬ karaktär först, då den < karaktär
>>>
String [] texty = loadStrings(gssApiString);
String [] texty2 = dela (texty [0], "¬"); dra ut data med stopp tecken

String [] texty3 = dela (texty2 [4], "<'); bli av med avslutande text efter <
gssText = texty3 [0];
gssTextLength = gssText.length();

<<<

Detta kontrolleras sedan i behandling mot den senaste mottagna datan. Om det är olika, har då en ny instruktion tagits emot.

Se Steg
Relaterade Ämnen

Hur man gör en gif-animation med bilder för din hemsida/twitter bakgrund

Hallå där,Jag har lärt mig några snabba tekniker och vill dela med dig om hur man gör en enkel GIF animation med hjälp av Adobe Photoshop CS6. För mig är det intressant att ha ett annat sätt att visa och dela tagna foton med vänner på en digital sätt...

Hur man bygger en atombomb... (Detta är inte verklig, bara ning för skratt och om du på allvar vill bygga en... Jag tycker synd om dig)

detta är bara för skratt... De åsikter som uttrycks här är åsikter av individen och inte av paramount föreställer... Om du är kränkt på något sätt av uttalanden sagt här inom detta instructable, då inte läsa det, klaga inte och du inte skicka det til...

Hur man gör en stilig "Son of Frankenstein" Halloween docka

Halloween har inte alltid betyda något läskigt! Vi skapade denna vackra lilla "Son of Frankenstein" docka att piffa upp din höst inredning. Inget behov av mönster, vi visar dig hur man gör honom genom att bara skära tyg bitar till former!http://...

Hur man gör en personal eller sockerrör från ett hittades eller färskt minne, och rista det.

Detta Instructable visar dig hur man gör staber, gångstavar och käppar av trä har du hittat på marken och grenar som du har brutit, eller klippa bort av träd.Får du grönt trä av ett träd, se till att torka den först. de skäll den och tillämpa en fogm...

Hur man gör en enkel lyhörd grafisk med Arduino och bearbetning

Denna ska tutorial undervisar dig hur man använder små delar från en elektronisk leksak skapa i interaktiva ljus- och grafik som kan fungera som början av ett interaktivt konstprojekt. Man använder kodning i arduino, behandling, lödning elektroniska...

Hur man gör målningsbara kroppsfärg: hög kvalitet, smeta ut bevis, levande färger och metallic

Hej, är mitt namn Chelsea Lee Gilbert; och detta är min allra första Instructable.Vänligen njuta av den. och om du utveckla på denna idé länka här och kommentera så vi alla kan lära sig från dig!Om du inte förstår något, ska fråga i en kommentar neda...

Hur man gör inledande planeringen för Service arbete med hjälp av Google Drive kalkylblad

SYFTEDenna anvisning som kommer att fastställa några viktiga aspekter att beakta när man planerar tjänst vid gemenskapens arbete genom ett exempel. Det är särskilt användbart för en småskalig gudstjänst, en klubb eller en organisation. Planering kan...

Hur man gör en polyfonisk musik installation utlöses av kapacitiv touch pekar med en Arduino

Under ett projekt på KISD gjorde vi en interaktiv musik anläggning som var spelbara på ett ställe som kollektivtrafik. Utseendet på det var inspirerad av de färgglada metro planer som avgränsar varje tåglinje med en annan färg. För linjerna använde v...

Hur man bygger ditt första RC plan för Under $100 - sändare, frakt, batteri, laddare och maskinvara omfattar

Låt oss inse det: radiostyrda flygplan är dyra, speciellt om du är ny till hobby. Billigare alternativ dyker upp varje dag, men för det mesta, hobby-grade plan kommit med ett stort pris. Flite Test hastighet bygga byggsatser och elektronik förpacknin...

Hur man spara kläder eller objekt för dig själv bara medan du går och handlar!

Tanken på denna steg för steg instruktioner är att visa hur du sparar och dölja något för dig själv.Steg 1: Gå in i en av de butiker som du skulle vara shopping på.Steg 2: Titta runt, tills du hittar något du gillar.Steg 3: Du hitta något du gillar....

Hur man gör en "evig" fil att ta itu med callosities på fötterna, händerna och kroppen

detta är en instructable som har utvecklats från en presentation görs över femton år sedan för att hjälpa individer med försummade callosities, liktornar och vårtor på sina fötter, händer och andra delar av kroppen. Verktyget var tänkt att användas e...

HUR MAN REPARERA/BYTA STRÅLKASTARE VÄXLA I DETALJ PÅ DODGE RAM | Ta bort DASHBOARD PANEL och MULTIFUNKTIONS PIGTAIL

i den här videon visar jag dig hur jag tar del av instrumentpanelen på min 96 dodge ram 1500 och reparera växeln strålkastare multifunktionella med dess vanligt problem att smälta de kontakter som orsakas av saknade reläer, tack för att titta på, gär...

Hur man skär en Spiral potatis på en pinne - mat Life Hacks

Välkommen till fixitsamo kanal!Blandning av original & coola videor: liv-Hacks, matlagning, vetenskap experiment, DIY, Crafting, mekanik & mycket mer!Alltid glad att höra från dig! Dina kommentarer, aktier och alla andra interaktioner är mycket vä...

Hur man kan kasta ihåliga delar i en form med hjälp av vax, lera, epoxi och cement

Lär dig den enklaste metoden för duplicera din ihåliga delar!Steg 1: Ta bort MasterFörst ta bort den ihåliga master från mögel.Centrera av den ihåliga bit var också gjutna och används.Steg 2: Tunn och långsam härdning gjutning materialTydlig gjutning...

Hur man Hand foder en liten Baby duva i en nödsituation - en metod som snabbt, enkelt och stökigt!

Min två baby Solfjäderstjärtarna fanns kvar i slutet av kvällen med någon överordnad och endast en av dem utfodras. Jag hittade mamma hoppat henne på den och tog den andra en till köket för en måltid. Solfjäderstjärt duvor älskar vatten men i kraftig...

Hur man gör en Batman "Red Hood: Jason Todd" kostym

lätt en av mina mest favorit Batman repliker. Jason Todd kommer tillbaka till livet efter avlivning av Joker och är förbannad.* särskild anmärkning: hjälmen blir form montering på din hela huvudet. Varning till dem som är klaustrofobiskaMaterial:-mil...

Hur man bygger en RFID Deadbolt Controller

Detta instructable skapades enlighet projektet kravet på Makecourse vid University of South Florida (www.makecourse.com)Denna guide kommer att gå igenom hur man bygger ett elektronisk deadbolt lås ställdon som kan kontrolleras via en RFID-kort och lä...

Hur man styr en Robot med hjälp av en serieanslutning

här är instruktioner om hur man gör en seriell anslutning mellan en smaken Pi och Arduino använder en USB-kabel. När en seriell anslutning har fastställts, kan det användas för att styra vad du kan drömma upp. I detta fall använt jag Pi som fjärrkont...

DIY Pysselidéer: Hur man gör en enkel DIY papperspåse gåva

Så för alla mina härliga anhängare tar jag mest lätt av alla DIY papper hantverk idéer. Med mig, denna tid kan dulära dig hur man gör en otroligt lätt DIY papper gåva väska som du kan använda för att dekorera dina Handgjorda Presenttips och även för...