En anpassad sköld för Propeller ASC - Infra-röd avlägsen kontroll- och flera kuggar!



i mitt första projekt har vi lagt till en 2-line LCD-display till Arduino Shield kompatibel (ASC) styrelsen.
( )

I detta projekt kommer vi också att införa användning av flera kuggar, en unik funktion av Parallax Propeller chip.

LCD-Display:
Displayen är tillgängliga från Radio Shack och behöver bara tre kablar att köra.

IR-detektor:
Nu, för att ge användarkontroll och input till ASC systemet, vi kommer att lägga till en infraröd detektor så
att en gemensam universal TV fjärrkontroll kan användas. Denna kod använder SONY enheten
protocalls, så satt de TC kod till den första SONY koden anges i dess "häfte.

Jag använder PNA4602 IR-detektor chip. Det ser väldigt lik en normal trebenta transistor, men det är inte.
Den innehåller på chip 38 KHZ demodulator och filter som gör det mycket lätt att använda med gemensam TV
fjärrkontroller. De kostar ca $2 vardera.
Alla fascinerande tekniska detaljer finns på Ada frukt på: http://learn.adafruit.com/ir-sensor

Proto-Shield:
För att montera detektorn, använder jag en Seeed "Proto-Shield" från Radio Shack.
Det är lite overkill för sådan en liten krets, men det kommer att växa mer saker inom en snar framtid.

Ett 3 x 2 kvinnliga huvud installerades som en socket för dekoder chip.
Det är IR-detektorn gömmer sig i det övre högra hörnet under denna röra av ledningar.

Eftersom Proto-Shield stift ansluter till ASC socket rubrikerna är det inte möjligt att använda
normala wire-wrap tekniker. Det skulle ta upp för mycket av klämma fast, längd
gör det tveksamt om skölden kan anslutas till mottagande ASC styrelsen alls.
Så jag använder en modifierad teknik - en enkel sjal runt stift, sedan löda.
Det är delikat arbete. Men för tillfället. Det är endast tre kablar, power (3.3V), mark, och
signal, så inga problem här. Se tråd foto.

Programvara:
Demo programvara använder flera objekt från Parallax Object Exchange (OBEX).
IR remote drivrutin: "IR_Remote.Spin"
LCD-chaufför: "serial_lcd.spin"
Nummer: "simple_numbers.spin"

Dessa kan hämtas från OBEX, men jag har tagit dem i denna ZIP-fil bifogade
till denna Instructible.

Detta demo program läser fjärrkontrollskoder och visar resultatet på LCD-skärmen.
Denna del är ganska enkel och rak vidarebefordra.

Men...
Vad händer om vi ville ha LCD displayen för att stänga av back-ljuset efter några sekunders inaktivitet?

Normalt använder vi en avbrottshanterare för detta.
En periodisk avbryta skulle ge tid basen, och föraren skulle räkna ner att avgöra
När det var dags att stänga ner den bakgrundsbelysning.

Men propellern använder inte avbryter. Det är vad flera kuggar för. Det tar en bit av en
paradigmskifte att Linda ditt sinne omkring parallell bearbetning, men det är väl värt ansträngningen.

I detta demo program, kommer vi knoppa av en liten procedur till en annan kugge.
Det kommer att ge en tid bas och räkna ner en timeout variabel.
Du kan hitta denna kod i slutet av demoversionen av programmet.
Leta efter - PUB Timeout.
Och observera att alla som gör vänta en sekund, sedan kontrollera att se om variabeln LCDtime
är större än noll, och stegvis minskning det om det är. Det är det /.

Också överväga detta. Vad händer om du behövde två (eller fler) helt annan tid baser?
Tilldela varje aktivitet till en annan kugge och de körs samtidigt och helt oberoende av varandra.
Det bli bara inte enklare.

Spinn kan se lite konstigt först, men det är lätt att lära och gör jobbet ganska bra.

Men kom ihåg att indrag definierar strukturen av programmet och carelesly ändra den
indrag kommer att helt förändra flödet av programmet! Så var försiktig med att.

Propeller verktyg (med all dokumentation) kan laddas ner gratis från Parallax på:
http://www.Parallax.com/tabid/832/default.aspx

Demo källkoden:

{{ASC_LCD_IR_TimeOut.spin}}
CON
_CLKMODE = XTAL1 + PLL16X ' 80 Mhz klocka
_XINFREQ = 5_000_000
IRpin = 23' IR mottagare - Propeller Pin
LcdTimeOut = 10
LcdOn1 = $16 ' LCD på; markören off, blink off
LcdLine0 = $80 ' flytta till linje 1, kolumn 0
LcdLine1 = $94 ' flytta till rad 2, kolumn 0
POL = 15' bevis av liv LED

OBJ
IR: "IR_Remote"
LCD: "serial_lcd"
NUM: "simple_numbers"

VAR
byte IRcode ' keycode från IR-mottagaren här
byte LCDtime
lång IRcog
lång Stack1 [6] "stackutrymme för LCDtimeout cog

PUB Init | index-frekv, cog, lcode
"init LCD
om lcd.start (0, 9600, 2)
LCD.putc(LCD#LcdOn1) ' ingen markören
LCD.CLS
LCD.backlight(1)
LCD.Str (sträng (LcdLine0, "IR Remote"))

' Bevis av liv
Dira [pol] ~ ~
! outa [pol]

"Starta Timeout
LCDTime: = LCDTimeout ' återställa timeout varje gång en knapp trycks
cognew (TimeOut)

"Init IR fjärrkontroll
IRcog: = ir. Starta (IRpin, "Pin för IR-mottagare, adress för variabel

om IRcog > 0
Upprepa
Om LCDtime > 0
LCD.backlight(1) "slå på den
annat "timeout
LCD.backlight(0) ' vända om off
Om IRcode <> ir #NoNewCode ' vi har en nyckel koden
lcode: = IRcode
IR. Starta (IRpin, ' in för nästa kod
om LCDtime: = 0' om det var av,
LCD.backlight(1) "slå på den
LCDTime: = LCDTimeout ' återställa timeout varje gång en knapp trycks
LCD.gotoxy(1,1)
mål lcode
IR #one: lcd.str (sträng ("< 1 >"))
IR #two: lcd.str (sträng ("< 2 >"))
IR #three: lcd.str (sträng ("< 3 >"))
IR #four: lcd.str (sträng ("< 4 >"))
IR #five: lcd.str (sträng ("< 5 >"))
IR #six: lcd.str (sträng ("< 6 >"))
IR #seven: lcd.str (sträng ("< 7 >"))
IR #eight: lcd.str (sträng ("< 8 >"))
IR #nine: lcd.str (sträng ("< 9 >"))
IR #zero: lcd.str (sträng ("< 0 >"))
IR #chUp: lcd.str (sträng ("chUp"))
IR #chDn: lcd.str (sträng ("chDn"))
IR #volUp: lcd.str(string("volUp"))
IR #volDn: lcd.str(string("volDn"))
IR #mute: lcd.str (sträng ("mute"))
IR #power: lcd.str(string("power"))
IR #last: lcd.str (sträng ("sista"))
andra: lcd.str (string(""))

waitcnt ((clkfreq / 1000) * 30 + cnt)
! outa [pol]

PUB Timeout
Upprepa "slinga för evigt
waitcnt (clkfreq + cnt) "vänta en sekund
om byte [= > 1' hålla räknar
byte [--' ner

Relaterade Ämnen

Infraröd fjärrkontroll för Parallax QuickStart styrelsen

One-Wire Infra-röd avlägsen kontroll gränssnitt för QuickStartEn av de häftigaste sakerna om propellerns programvara enheterär hur lite det krävs för att lägga till kringutrustning!Delar Reqd:Liten IR sensor - adafruit/157WireDubbla uttag (kvinnliga)...

Utrymme Weaver: Sju fot lång 3D vävning maskin

Utrymme Weaver är en student-designade 3D vävning maskin skapad av Prerna Auplish, Evan Bowman och Ryan Chen vid Kalifornien College of the Arts i San Francisco. Maskinen har skapats i den digitala Craft Lab (http://digitalcraft.cca.edu/) kreativ ark...

Bygga en Flip ner TV Lift du kan vara stolt över

I detta Instructable kommer vi att visa dig hur vi byggt en flip ner i taket TV hiss med ett linjärt ställdon, några parentes, en avlägsen kontroll och en strömförsörjning. Många av våra kunder har använt ställdon för att skapa billig TV hissar i bos...

En DVD spelaren hacka

detta är en beskrivning av öppen källkod/öppen hårdvara projekt av en fjärrkontrollerad Arduino (Freeduino) baserade Klocka/termometer utnyttja strömförsörjning och VFD panel från en trasig DVD-spelare i en skräddarsydd akryl hölje. Syftet med projek...

Färdloggen: UTRIGGARE Canoe segling Kanalöarna Kalifornien

dessa fantastiska öar är här utanför Kaliforniens kust. Del nationalpark, en del privat bevarade. Sett som en hägring från fastlandet, lockar de dig segla det i en UTRIGGARE canoe. Kathleen Mckee och jag gjorde just det i oktober 2009. Detta är logge...

En bättre Adapter för tangentbord ThinkPad USB

När jag först började med mikrokontroller, en sak som jag ville göra mest var en USB-adapter för min ThinkPad T60 tangentbord. Jag har alltid tyckt om att skriva på tangentbordet T60 och jag skulle älska att använda den på alla bärbara datorer jag ka...

Färgskiftande LED snö hjärta Valentine

Låt inte den överblivna snö från senaste "Snowzilla" stormen gå till spillo. Visa dina nära och kära hur mycket du bryr sig med jätte alla hjärtans dag Snöhjärta på framsidan. Inte din genomsnittliga Snöhjärta, denna display är jazzed upp av inb...

Musik spelas väckarklocka

Detta Instructable kommer att utforma en musikspelare från använder olika byggstenar. Ni förstår kommunikationen mellan mikrokontroller, minne, dator, LCD-display, RTC, IR-fjärr och musik fil dekodern. Jag ska försöka mitt bästa för att lära dig på e...

Hur till: ansluta din Arduino till Internet som en webbserver

SAKERNAS INTERNET... < kö blixtar och åska >Det är vad alla coola barnen gör dessa dagar. Varför ska de ha allt roligt? Låt oss ställa in en Arduino som en webbserver som vem som helst, var som helst kan visa. Varför skulle vi göra en sådan sak? Möj...

Verklig PC 2007

verklig PC 2007 är gratis och enkelt! Det kör flera operativsystem körs i ett operativsystem. Spara tid och pengar som Virtual PC kan du bevara kompatibiliteten av äldre och anpassade program under migreringen till nya operativsystem och ökar effekti...

Projektion-göra reklam luftskepp. av AnTiProcrastination

Hej! Detta är AnTiProcrastination. Vi från University of Michigan--Shanghai Jiao Tong University gemensamma Institute (se logotypen. i figur 1) finns i Min hänga område av Shanghai (bild 2, ovan från www.ngeschool.org). AnTiProcrastination bildas som...

E behandlingen renar

Rudolph, e-post läsa renarna, låter dig veta när du har fått en ny email och berättar vem som skickat det. Här är en demo;Rudolph använder en Propeller plattform USB att logga in på e-postservern, utlösa animationer och generera tal. En E-Net modul h...

Mikrokontroller kontrollerade hem underhållningssystem

Detta Instructable tar dig med på min resa att ersätta min gamla Netflix/Vudu Bluray spelare med en PC-baserad underhållning station för min LCD-projektor. Jag ville kunna komma åt och styra Netflix, Hulu, Youtube, spraka, NBC, ABC och Weather Channe...

Internet aktiverar en HKC Hem larm

Jag har publicerat ett par Instructables för olika larmpaneler - här är att möjliggöra du till avlägsen kontroll panelen HKC Secure klocka alarm.Den färdiga artikeln ser mycket ut Aritech Remote Access-projekt jag har dokumenterat här också- men elek...

Time lapse tillägg till en Rollei digicam

detta instructable visar dig hur du lägger till en time lapse modulen till en Rollei Compactline 52 digital kamera.Tidsinställd innebär att bilderna är tagna på en viss tidsintervall. Tidsintervallet är justerbar över ett brett och har en extra senso...

Underbara vinden båten

Underbara vinden båten skapades för 2016 Makecourse slutliga projektet vid Uniersity i södra Florida. Denna båt är skapad av en 3D-skrivare tillsammans med några andra tillverkningstekniker för att uppnå Flytförmågan. Båten är också avlägsen kontroll...

Robotics på en budget

detta Instructable kommer att lära dig att skapa en rolig, men lätt att bygga robot med material som kostar mindre än femtio dollar.Detta är ett stort projekt för 4H, Boyscouts eller som ett klassrum introduktion till robotics.Jag ska lära dig hur ma...

AC Arduino ljusreglering krets

tack till berörda tittare, har jag lärt mig att detta inte är säkra och bör inte vara REPLIKERAD.SÅ BEHAGA DONT FÖRSÖK DETTA :)TACK TILL ALLA SOM KOMMENTERAT, JAG LÄRDE MIG EN HELJag är inte en ingenjör, bara en försöksledaren och hacker och prototyp...

QuadCopter Drone designa och bygga

Drönare finns överallt dessa dagar, det tar bara en titt då och då för att inse hur populära de får. Du kanske har funderat på att få en drönare men avfärda den på grund av priset. Du har i allmänhet betala över $1000 för att få något halv anständig,...