Lägga till Bluetooth 4.0 till din Arduino projekt [IoT] - kontrolleras av Smartphone (3 / 8 steg)

Steg 3: SPI, REQ, RDY och RST stift (valfritt)



Om du inte har den Arduino UNO som i schematiskt, ägna stor uppmärksamhet åt den Arduino pin-kod som du ansluter kablarna till. De första 3 finnar, märkt SCK, MISO och MOSI, måste gå till stift 13, 12 och 11 respektive. Detta bör vara samma för alla ATMega328P baserad Arduinos (Uno/Duemilanove). Om du har en annan Arduino, måste du ta reda på vilket stift är SPI och koppla dem istället.

---------SPI-----------

Dessa tre stift är viktiga eftersom de utgör en speciell hårdvara enhet på Arduino kallas seriellt perifera gränssnitt eller SPI. Arduino stift 13 är SCK (seriell klocka), 12 MISO (Master i slav ute) och 11 MOSI (Master ut slav i). Arduino SPI är ansluten till en motsvarande 3 stift SPI enhet på nRF8001. Arduino fungerar som master och nRF som slav, men rollerna kan vändas i teorin. Begreppet SPI är ganska enkel. SCK pin klick upp och ner i ett regelbundet fördelade square wave (square wave vilket betyder att den har två värden, hög eller låg). För varje klick av SCK pin, slaven ser på MOSI och siffror om spänningen är hög eller låg. Mästaren gör samma på MISO. Om en hög spänning är läst, är som en '1'. Om en låg spänning är läst, är som en '0'. På detta sätt en sekvens av 1: or och 0: or överförs och översatt till bokstäver, siffror och kommandon som programvaran kan sedan agera på. För nRF8001, dessa översatt bokstäver och siffror sänds över Bluetooth-anslutningen till telefonen. Bokstäver och siffror som nRF8001 skickar till din Arduino är vad det fått från telefonen via Bluetooth.

SPI är en användbar kommunikationsstandard eftersom det endast krävs 3 stift. Tekniskt SPI är endast ett protokoll och har ingenting att göra med hårdvaran. Du kan implementera ett SPI gränssnitt någonstans så länge du har 3 nåla fast gratis och kan vända dem på och av. Många mikrokontrollers har idag SPI hårdvarumoduler där genomförandet sker i kretsarna själva i stället för i programvara. Med detta kan kommunikationen över SPI göras mycket snabbare och mer exakt än möjligt om gjort i kod. Den enda nackdelen är att du måste använda dedikerad hårdvara SPI stiften, i motsats till några allmänna ändamål IO pinnar.

-----------REQ--------------

Strängt taget krävs bara 3 pins för att överföra data via ett SPI gränssnitt. Dock kan ytterligare stift användas att kontrollera informationsflödet. Dessa stift behöver inte vara del av hårdvara kretsen en SPI-modul och kan implementeras i programvara, eftersom de inte är inblandade i hög fartdata överför själva. En 4 pin är standard, kallas den slav Markera eller Chip pin. På nRF8001 tar REQ pin rollen som slav Välj (SS) PIN-koden. SS stiftet gör flera SPI slav enheter kan anslutas till samma 3 hårdvara stiften i bakgrunden (SCK, MOSI, MISO). Det vill säga, kan du ansluta 1 master SPI enhet till 2, 3 eller fler slavar och överföra data till någon av dem. Uppenbarligen är det osannolikt att alla slavar behöver samma information skickas till dem över MOSI samtidigt. Det är där SS stiftet kommer in. En slav kommer bara läsa instruktionerna kommer över sin MOSI linje om det har valts som "aktiva slave" genom att ha sin slav Välj linje hållas låg. Master måste därför en SS pin tillägnad varje slav ansluten till SPI raderna. När man vill prata med en viss slav, rymmer det SS pin motsvarar den slaven låg, samtidigt som alla andra SS stift hög. Endast den valda slaven kommer att kommunicera tills dess SS pin ligger högt. NRF8001 använder REQ linjen för att veta när det tillåts att kommunicera med befälhavaren Arduino. Om du behöver kommunicera med andra SPI enheter (till exempel, en sensor eller LCD-skärm), behöver du bara krok en annan gratis IO stift till att enhetens SS stift, och du kan ansluta enhetens SPI pins till samma 3 Arduino SPI stiften.

REQ PIN-koden behöver inte vara stift 10 på Arduino. Men om du ändrar det du kommer att behöva ändra raden i koden som säger "#define ADAFRUITBLE_REQ 10" där talet 10 bör ersättas med pin ansluten du REQ till.

---RDY och RST---

REQ PIN-koden anger att nRF som Arduino vill kommunicera över SPI. När Arduino begär att börja kommunicera genom att växla REQ stiftet, väntar det tills RDY växlar innan du faktiskt skickar data som indikerar att nRF är redo att ta emot. På samma sätt RDY PIN-koden anger till Arduino som nRF vill kommunicera. Och jämväl, efter växla RDY PIN-koden, nRF väntar tills Arduino växlar REQ PIN-koden innan du faktiskt börjar skicka data.

RDY PIN-koden är speciell. Som SPI stiften, kan det helt enkelt inte åter mappade till någon Arduino stift. Det måste vara nytt mappade till ett annat avbrott kan stift. Ett avbrott pin är en som övervakas av Arduino på hårdvara nivå. Om en signal kommer på avbryta pin, stannar Arduino allt det gör och går in i en särskild del av koden på adress avbryta PIN-koden. Detta är bra eftersom Arduino behöver inte sitta och kontrollera om nRF vill prata med det var några millisekunder. Arduinoen kan göra sin egen sak och om uppgifterna kommer, det meddelas omedelbart. Detta sparar batteriet, kan den Arduino fokuseringen på andra uppgifter (inklusive sova!) 99,9% av tiden som inga data som kommer in via Bluetooth och gör säker Arduino är mycket lyhörda när data slutligen ankommer. Ur användarkod behöver vi inte ta itu med alla Detaljer för kommunikation med Bluetooth-enheten alls. När information finns det "magiskt" får placeras i en särskild plats i minne (genom att avbryta koden bakom kulisserna) och vi behöver bara läsa den.

RST PIN-koden är enkel. Det i princip "startar om" nRF8001 när det ska växlas. Detta utförs av koden automatiskt när Arduino sig återställs. Som REQ stift, kan första stiftet mappas till eventuella oanvända Arduino pin, som "#define ADAFRUITBLE_RST 9" i början av koden ändras på lämpligt sätt.

Se Steg
Relaterade Ämnen

Lägg till bluetooth till din Arduino projekt - Arduino + HC-06

Skulle inte du älskar att slå på och av lamporna i ditt hus utan att behöva höja ett finger? (Tja, tekniskt du måste höja ett finger eller två, men du får jist av historien). Den goda nyheten är att du kan. Allt du behöver är en arduino, HC-06 blueto...

Gör din Arduino projekt trådlöst i minuter, med den trådlösa uppfinnare skydda

uppfinnare skölden använder en trådlös röret, vilket är en särskild trådlös RF-modul som tillåter dig att enkelt och tillförlitligt sätt, skicka och ta emot felfri trådlösa data mellan två eller flera Arduino styrelser.Det är Long Range – avstånd upp...

Lägga till din bloggs RSS-flöde till Hootsuite

blogga mer än bara skriva och klicka på publicera. Du skriver ett inlägg, lägga till en bild, tryck på publicera och då måste man gå ut och lyfta fram innehållet du har just skrivit!Det är tidskrävande men Hootsuite kan påskynda blogg befordran. I de...

Röstigenkänning enkelt - talar till din Arduino seriekabel

Varför använder röst erkännande sköld medan du har denna funktion från din smartphone (Android). I denna tutorial vet du hur lätt att använda röstigenkänning att skicka röstkommandon till din Arduino använder BlueAct app.Du kan ha använt röstkommando...

#MyoCraft: gest-aktivera din Arduino projekt med en Myo armbindel

Du kan bygga en hel del coola saker med en Arduino. Vore det inte skönt att kunna styra den med en snärt med handleden?Låt mig visa dig hur du lägger till trådlösa gest kontroll en Arduino projekt med hjälp av en Myo armband. Vi gör detta via MyoDuni...

Lägga till dina egna spår i OpenStreetMaps

OpenStreetMaps är gratis kartor som kan användas med Garmin GPS. De kan redigeras av vem som helst med ett konto på openstreetmap.org. Tänk på dem som en karta wiki. Kev_MacD har en bra Instructable om hur du lägger till dem till din Garmin Oregon GP...

Att lägga till ICSP header till din Arduino/AVR styrelse

så du kanske har spelat med Arduino's, eller snarare Hackduino. Om du gjort din egen Hackduino eller liknande projekt, kanske du undrar hur du lägger till i ICSP huvudet. I grund och botten gör med ICSP-huvudet att du kan använda en extern programmer...

Interface en SRAM buss till din arduino

Mikrokontroller som PIC och Arduino är stora, men ibland måste du lagra en stor mängd data och det interna minnet bara räcker inte, och det är där yttre minne kommer in. SRAM är allmänt lättare att arbeta med än dynamisk minne (som behöver uppdateras...

Lägga till lysdioder i en Nes-kontrollant

Easilly lägga till led i din nes controllerSteg 1: Huvuddelen av det lägga leds till en Nes-kontrollant är helt enkelt allt du behöver är några tråd, lysdioder, sauder, och vissa epoxi eller en annan stark självhäftande.efter öppnandet den nes contro...

Telnet till din Arduino/AVR!

Häromdagen var jag vill kolla på en av min AVR: s men jag var på övervåningen och Gud vet det var för mycket jobbigt att gå ner till där mikrokontroller var. Men det fanns två inaktiv datorer sitter på övervåningen bredvid min lata rumpa, så jag hade...

Hacka en röst växlare för att lägga till en Arduino ingång

en annan snabb hacka. Jag köpte en röst växlare eftersom jag var ute efter något billigt som kunde vara hackat sig in en röst inmatningsenhet. Jag ville i princip animera en skalle när jag talade. Extra bonus, nu skalle marionett skulle också ha en s...

Avståndet till vinkel arduino projekt

Detta är ett mycket enkelt projekt för börja, kartong låda utrustade med 3servomotorer, ultrasonic sensor och arduino nano mikrokontroller. mikrokontroller konvertera avståndet till servo vinkel.Du kan se det fungerar härSteg 1: Del förteckning3 serv...

Skalbagge: Minimera din Arduino projekt

The DFRobot Beetle är en de senaste innovationerna i minimalistisk Arduino teknik. Om storleken på en kvart, och funktionerna i en Arduino Leonardo, kan den här lilla killen minimera dina projekt med lätthet utan att behöva offra funktionalitet.Efter...

Att lägga till din digitala signiature Docs

denna steg för steg går igenom skapandet av en digital signaturfil. Användbart för att signera dokument i farten och email dem fram och tillbaka, vilket sparar på Porto och minskar pappersanvändningen.Steg 1: Gör ditt varumärke Måste du börja med din...

Att lägga till din egen konst till Dollar Store pussel

Flera år gjorde tillbaka jag en hel del konstmässor och trottoaren visar. Jag hade gott om målningar, men de var inte prissatt med webbläsare i åtanke. Jag behövde mindre, mer prisvärda objekt. Jag hade en vän som sålde böcker av hans konstverk och t...

Lägga till 6 extra stift till din Arduino med ingen extra hårdvara

Hej, detta är min andra Instructable så tänk med mig.Jag ska berätta du hur till få 6 extra Arduino digital stift.Jag upptäckte detta genom att spela med Arduino IDE och försökt inställning-upp en LED på stift 14 (som inte finns i styrelsen) och giss...

Lägga till din logotyp på PCB i Proteus ARES

Handledning visar hur du sätter din logotyp på pcb i proteus (ares). Här metoder kan också användas för att infoga personliga konstverk, företagets logotyp eller ens ditt foto....

Lägga till enkla Bluetooth till Arduino

Ibland när du först startar ett nytt projekt, det finns en hel del felsökning går på, och med en Arduino plattform, med hjälp av serieporten för att spotta ut data kan vara ett mycket användbart verktyg. Tja vad om det finns inget utrymme att ansluta...

Lägga till knappar i din X52-Pro Joystick med en Arduino mikro

Jag har en Saitek X52-Pro HOTAS setup som jag använder för Elite: farligt. Det är en fantastisk joystick men det kan göra med bara några fler knappar. Med en Arduino Micro kan du utöka detta (eller någon annan) joystick för alla spel som kommer att s...