Robot skalbagge Ringo (2 / 9 steg)
Steg 2: Lära sig kommunicera med IR-fjärr
Låt oss veta hur vi kan ta emot kommandon från IR-fjärr. Målet är att få och minns signal koder för din fjärrkontroll. Vi kommer att använda dem senare i Beetle Ringo skiss.
Ta en Arduino Uno, en skärbräda (dess storlek ingen spelar roll om detta steg), hoppa ledningar och en IR-mottagare. Göra en krets som du ser på bilderna.
VARNING! Denna krets är gjord för IR-mottagare TSOP2136. Din kan skilja sig åt. Kolla databladet för din mottagare först.
Nu Följ länken och ladda ner källkoden. Om du arbetat med Git förråd innan sedan gaffel eller klona den här. Och om du inte har sedan du kan bara ladda ner ZIP-arkiv av katalogen källor och packa upp den någonstans till din lokala enhet.
Starta Arduino IDE och öppna projektet /ir_receiver/ir_receiver.ino. Ta en titt på koden. Den första raden i koden är
#include "IRremote.h"
Som innebär att skissen använder ett särskilt bibliotek IRremote.h som implementerar funktionaliteten för mottagande och sändande (vi inte använder den) IR-signaler. Detta bibliotek är inte en del av Arduino IDE och måste vi installera det. Det är ett öppet projekt med GNU-licens så vi kan använda det för Ringo. Läs instruktionen och installera biblioteket. Glöm inte att starta om Arduino IDE och öppna ir_receiver.ino.
Nu är vi redo att ladda upp skissen. Anslut datorn och Arduino Uno via USB-kabel.
Markera menyalternativet Tools⇒Board i Arduino IDE. Det bör sättas till "Arduino Uno".
Så kolla menyn artikeln Tools⇒Serial Port. Det bör fastställas att handkontrollen är ansluten till porten.
Kompilera och ladda upp skissen (File⇒Upload).
Sedan öppna seriell skärm (Tools⇒Serial) och kontrollera det är överföringshastigheten. Sätta den till 9600.
Ta en IR remote och börja trycka på knappar. Allt fungerar bra om du ser koder i följetong Monitor.
Om dessa koder... Som sagt vi kommer att använda dem i den skiss som styr roboten. Olika leverantörer använda olika kommunikationsprotokoll. Så kan koder och koden sekvenser variera för olika IR-fjärrkontroller. Och det blir svårt att förstå dem alla. Men jag vill förenkla problemet. När du trycker på en knapp kan du se att flera koder visas i fönstret Serial Monitor. Några av dem återkomma, andra är unik. Vi behöver bara dessa unika koder. Och låt oss bortse från koder som återkommer. Vissa leverantörer använder protokoll där det finns en unik kod för varje knapp. Andra leverantörer använder protokoll med två sammanflätade unika koder för en enda knapp. Jag menar att när du trycker på knappen för första gången får du en kod, när du trycker den för andra gången får du en annan kod. Sedan när du trycker den för tredje gången får du den första koden igen. Och så vidare.
Vår robot kan utföra 13 kommandon:
- Gå framåt.
- Flytta bakåt.
- Sväng vänster.
- Sväng höger.
- Gå vidare med vänstersväng.
- Gå vidare med högersväng.
- Flytta bakåt med vänster.
- Flytta bakåt med högersväng.
- Stanna.
- Ange 1 (långsammast).
- Som 2: a hastigheten.
- Ange 3.
- Ange 4 (snabbast).
Välj knappar på din IR-fjärr för dessa kommandon. Jag Använd knapparna 1-9 för de första nio kommandon och färgade knappar (röd, grön, gul och blå) för de senaste fyrana.
Nu tryck på varje knapp flera gånger och skriva alla unika koder till tabellen med två kolumner: knappen och koder. Du kommer att använda dessa koder i skissen som styr roboten.