MSP430 programozás Energia környezetben. Szervó motorok vezérlése



Hasonló dokumentumok
MSP430 programozás Energia környezetben. Analóg jelek mérése

MSP430 programozás Energia környezetben. LED kijelzok második rész

MSP430 programozás Energia környezetben. LED kijelzok második rész

MSP430 programozás Energia környezetben. Az I/O portok kezelése

MSP430 programozás Energia környezetben. Alfanumerikus LCD kijelzok

MSP430 programozás Energia környezetben. Az első lépések

Bevezetés a mikrovezérlők programozásába: Ismerkedés az Arduino fejlesztői környezettel

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek

MSP430 programozás Energia környezetben. LED mátrix vezérlése MAX7219 IC-vel

MSP430 programozás Energia környezetben

MSP430 programozás Energia környezetben. Nem élhetek muzsikaszó nélkül

Programozás és Digitális technika I. Pógár István eng.unideb.hu/pogari

Bevezetés az elektronikába

Bevezetés a mikrovezérlők programozásába: LCD kijelzők

Bevezetés az elektronikába

Bevezetés a mikrovezérlők programozásába: Léptetőmotorok vezérlése

MSP430 programozás Energia környezetben. Hétszegmenses LED kijelzok

Bevezetés az elektronikába

Mérési útmutató. A/D konverteres mérés. // Első lépésként tanulmányozzuk a digitális jelfeldolgozás előnyeit és határait.

MSP430 programozás Energia környezetben. Digitális szenzorok

Bevezetés a mikrovezérlők programozásába: DC motorok vezérlése

Bevezetés a mikrovezérlők programozásába: Fényérzékelés, fénymérés

MSP430 programozás Energia környezetben. Nokia 5110 grafikus kijelzo vezérlése

Bevezetés a mikrovezérlők programozásába: MAX6958: Hétszegmenses LED kijelző vezérlő

Bevezetés a mikrovezérlők programozásába: I/O portok kezelése, számrendszerek, bitműveletek

Ismerkedés az MSP430 mikrovezérlőkkel

Labor 2 Mikrovezérlők

Megjegyzés: A leírás abszolút kezdők számára készült elnézést azoktól, akik ezen a szinten már túlvannak!

Az MSP430 mikrovezérlők digitális I/O programozása

Bevezetés a mikrovezérlők programozásába: Az Arduino, mint logikai analizátor

Vegyes témakörök. 5. Gagyiszkóp házilag hangfrekvenciás jelek vizsgálata. Hobbielektronika csoport 2018/2019. Debreceni Megtestesülés Plébánia

A Hobbielektronika csoport. bemutatója

A/D és D/A konverterek vezérlése számítógéppel

Az vevő- és vezérlőáramkör programja

Arduino bevezető Szenzorhálózatok és alkalmazásaik

Megszólal a Kütyü. Arduino bevezető hangszóró vezérlése 1 / 5 oldal

Hobbi Elektronika. 1. Témakörök, célkitűzés, hozzávalók

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

A MINI SZATELLITTŐL A SUMO-ROBOTIG

Vegyes témakörök. 11. Robotvezérlés WiFi kapcsolaton keresztül 2. rész. Hobbielektronika csoport 2018/2019. Debreceni Megtestesülés Plébánia

DC motor= egyenáramú motor, villanymotor vezérlése micro:bittel:

Vegyes témakörök. A KAT120B kijelző vezérlése Arduinoval

Bevezetés a mikrovezérlők programozásába: WS2812 RGB LED-ek vezérlése

Bevezetés a mikrovezérlők programozásába: Programciklusok szervezése, analóg I/O

1 csűrő 1 csűrő 2 magassági 2 magassági 3 gáz 3 gáz 4 oldalkormány 4 oldalkormány 5 Robot üzemmód 5 csűrő

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, Minden jog fenntartva

The modular mitmót system. 433, 868MHz-es ISM sávú rádiós kártya

Mintavételes szabályozás mikrovezérlő segítségével

Készítette: Ruzsinszki Gábor webmaster442

AC-MF1W. RFID kártyaolvasó és kódzár. Felhasználói leírás

Az MSP430 energiatakarékos használata

Programozási segédlet DS89C450 Fejlesztőpanelhez

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, Minden jog fenntartva

MSP430 programozás Energia környezetben. Digitális szenzorok I2C kommunikációval

Vegyes témakörök. 1. Soros vezérlésű LCD számkijelző. Hobbielektronika csoport 2018/2019. Debreceni Megtestesülés Plébánia

Mintavételezés tanulmányozása. AD - konverzió. Soros kommunikáció

Bevezetés az elektronikába

Multi-20 modul. Felhasználói dokumentáció 1.1. Készítette: Parrag László. Jóváhagyta: Rubin Informatikai Zrt.

Bevezetés az elektronikába

Robotkocsi mikrovezérlővel

Fizikai mérések Arduino-val

LPT illesztőkártya. Beüzemelési útmutató

1. Témakörök, célkitűzés, hozzávalók. Hobbielektronika csoport 2015/2016

Új kompakt X20 vezérlő integrált I/O pontokkal

HSS60 ( ) típusú léptetőmotor meghajtó

ZL180 Kétmotoros vezérlés 24V-os mototokhoz

The modular mitmót system. 433, 868MHz-es ISM sávú rádiós kártya

HSS86 ( ) típusú léptetőmotor meghajtó

FL-11R kézikönyv Viczai design FL-11R kézikönyv. (Útmutató az FL-11R jelű LED-es villogó modell-leszállófény áramkör használatához)

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD

Fényszóró modul. A feladat célkitűzései:

UH-zongora - zenélés mikrokontrollerrel

Eduino mérőpanel. Alapötlet:

PMU Kezdı lépések. 6-0 Csatlakozás LG GLOFA-GM és SAMSUNG PLC-hez. 6-1 Kommunikáció LG PMU és LG GLOFA-GM7 / GM6 / GM4 között

Többfunkciós hobbirobot építése és vezérlése Arduino UNO mikrovezérlő kártya segítségével

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft.

Encom EDS800/EDS1000 frekvenciaváltó alapparaméterei

AIRPOL PRM frekvenciaváltós csavarkompresszorok. Airpol PRM frekvenciaváltós csavarkompresszorok

Újrakonfigurálható eszközök

AC-MFS. RFID kártyaolvasó és kódzár. Felhasználói leírás

Autóipari beágyazott rendszerek CAN hardver

10.1. ANALÓG JELEK ILLESZTÉSE DIGITÁLIS ESZKÖZÖKHÖZ

HA8EV ORBITRON Programmal vezérelt Azimut/Elevációs forgató elektronika v10.0

Alapvető információk a vezetékezéssel kapcsolatban

A SUN POWER KIT TELEPÍTÉSÉNEK LEÍRÁSA. Leírás telepítő szakemberek részére!

FEDÉLZETI INERCIÁLIS ADATGYŰJTŐ RENDSZER ALKALMAZÁSA PILÓTA NÉLKÜLI REPÜLŐGÉPEKBEN BEVEZETÉS

Felhasználói kézikönyv. TB6560HQV3-T3 (V type) 3 tengelyes léptetőmotor vezérlő

XXI. Országos Ajtonyi István Irányítástechnikai Programozó Verseny

[cimke:] [feltétel] utasítás paraméterek [; megjegyzés]

Nyomtatóport szintillesztő 3V3

Léptetőmotorok. Előnyök: Hátrányok:

Újdonságok az Arduino szabadszoftveres platform körül. Noll János FSF.hu Alapítvány

Készítette: X. Y. 12.F. Konzulens tanár: W. Z.

Felhasználói kézikönyv MC442H típusú léptetőmotor meghajtóhoz

Elektronikus Akadémia 2017.

Dinnyeválogató v2.0. Típus: Dinnyeválogató v2.0 Program: Dinnye2 Gyártási év: 2011 Sorozatszám:

Bevezetés az Arduino mikrovezérlők programozásába

Termék és technológiaváltás. Dr Szalai László Épületgépészeti értékesítési vezető

RSC-2R. Wireless Modem RS232, RS232 vonalhosszabbító, RS 232 / Rádió konverter

Yealink SIP Phone család. webes programozási útmutató. A leírás a MySIP X.50 IPPBX alközpont mellékleteként készült. v Young BTS. Kft.

Átírás:

MSP430 programozás Energia környezetben Szervó motorok vezérlése 1

Szervo motorok Felépítés Jelalak 2

Servo programkönyvtár A gyári Servo programkönyvtár max. 8 db szervót kezel, s ezekhez felhasználja a Timer0 időzítőt, tehát közben az más célra (PWM vagy hangkeltés) nem használható. A legfontosabb metódusok (részletes leírás egyelőre csak az Arduino Reference szekciójában található): Servo.attach(pin[, minvalue, maxvalue]) hozzárendeli a Servo objektumot a megadott kivezetéshez. A mikroszekundumokban mért határértékek (minimális és maximális impulzusszélesség) megadása nem kötelező. Az alapértelmezett értékek: 544 és 2400 µs. Servo.write(adat) a szervó beállítása (ha az adat < 200, akkor fokokban értendő, s a 0 180 tartományban vehet fel értéket, 200-nál nagyobb számokkal pedig mikroszekundumban adhatjuk meg az impulzusszélességet ) Servo.writeMicroseconds(adat) a szervó beállítása (az adat itt mikroszekundumokban értendő, az inicializálásnál megadott minvalue.maxvalue tartományban) 3

Lab14 Servo_Sweep Egyszerű mintaprogram, amely a szervó motorral automatikusan oda-vissza végigpásztázza a 0-180 fokos tartományt Servo_Knob Gyári mintaprogram, amelyben egy potméterrel vezéreljük a szervót Servo_Set Mintaprogram, amelyben a soros portról vezéreljük a szervót Walking_robot Egyszerű, két szervóval megvalósított lépegető robot működtető programja 4

Servo_Sweep A beépített mintaprogram (File/Examples/Servo/Sweep) picit módosított változata, amely a szervó motorral automatikusan oda-vissza végigpásztázza a 0-180 fokos tartományt. A szervó bemenetei: Fekete GND Piros VCC Sárga v. Fehér vezérlőjel Hozzávalók 1 db szervó motor 3 db F+M vezeték 1 db Launchpad kártya Kapcsolási vázlat 5

Lab14: Servo_Sweep.ino #include <Servo.h> const int servopin = 7; Servo servo; int angle = 0; //Szervó a P1.5 lábra //Objektum példányosítása //Szervó pozíciója fokokban void setup() { servo.attach(servopin,640,2400); //Inicializálás határértékek megadásával void loop() { // Pásztázás 0-tól 180 fokig for(angle = 0; angle < 180; angle++) { servo.write(angle); delay(100); // Pásztázás vissza 180-tól 0 fokig for(angle = 180; angle > 0; angle--) { servo.write(angle); delay(100); 6

Servo_Knob A beépített mintaprogram (File/Examples/Servo/Knob) némileg módosított változata, amelyben az AN4 bemenetre (P1.4 láb) kötött potméterrel vezéreljük a szervót. Hozzávalók 1 db 10k potméter 1 db szervó motor 6 db F+M vezeték 1 db dugaszolós próbapanel 1 db Launchpad kártya Kapcsolási vázlat 7

Lab14: Servo_Knob.ino #include <Servo.h> Servo myservo; int potpin = 4; int val; //Objektum példányosítása // A potmétert az A4 (P1.4) lábra kötjük // Változó az analóg feszültség beolvasásához Az analóg referenciát nem definiáltuk, így alapértelmezetten VCC lesz. void setup() { myservo.attach(7,640,2400); //Inicializálás határértékek megadásával //Szervó a P1.5 lábra kötve (pin 7) void loop() { val = analogread(potpin); //a potméter állásának beolvasása val = map(val, 0, 1023, 0, 179); //a kapott szám átskálázása (0-180) myservo.write(val); //a szervó beállítása delay(100); // várunk, hogy a szervó beálljon A 10 bites ADC-vel 0 1023 közötti számot kapunk, amit át kell skáláznunk a 0-180 közötti tartományra. Ehhez az y = map(x, mina, maxa, minb, maxb) függvényt használjuk, ahol x az átszámítandó érték, mina és maxa a bejövő érték alsó és felső határa, minb és maxb pedig az átszámított eredmény alsó és felső határa. Az átskálázás az alábbi képlettel írható fel: y = minb + (x - mina) * (maxb - minb)/(maxa - mina) 8

Lab14: Servo_Set.ino Szervó beállítása, soros porton keresztül megadott számmal. A kapcsolás és a hozzávalók ugyanaz, mint a Servo_Sweep projektnél. #include <Servo.h> Servo servo; //Objektum példányosítása const int servopin = 7; //Szervó a P1.5 lábra kötve (pin 7) void setup() { Serial.begin(9600); //A soros port inicializálása servo.attach(servopin,640,2400); //Inicializálás határértékek megadásával void loop() { if(serial.available() > 0) { int angle = Serial.parseInt(); //Pozíció megadása soros porton angle = constrain(angle,0,179); //Korlátozzuk 0-179 közé! servo.write(angle); //Szervó beállítása a megadott állásba Serial.print("Servo position: "); Serial.println(angle); delay(100); 9

Lépegető robot Már két szervó is elég lehet ahhoz, hogy egy egyszerű lépegető robotot építsünk. Az ötlet és a zseniálisan egyszerű megvalósítás Vinod Stanur (Kerala, India) nevéhez fűződik. Link: http://blog.vinu.co.in/2012/06/two-servo-walking-robot-using-ti.html 10

Walking robot (részletek) Forrás: http://blog.vinu.co.in/2012/06/two-servo-walking-robot-using-ti.html main: mov.b &CALIBC1_1MHZ, &BCSCTL1 mov.b &CALDCO_1MHZ, &DCOCTL mov.b #0, &P1OUT mov.b #255,&P1DIR call #timer_init call #servo_init eint CPU frekvencia 1 MHz GPIO, timer, szervó inicializálás Interrupt engedélyezés infinite_loop: mov.w #5,r14 ntimes1: call #walk_forward dec r14 jnz ntimes1 mov.w #5,r14 call #stop_idle ntimes2: call #walk_reverse dec r14 jnz ntimes2 call #stop_idle jmp infinite_loop 5 lépés előre 5 lépés hátra 11 Folytatás a következő oldalon

Walking_robot (részletek) Stop_idle: stop_idle: mov.w #1500, &(SERVO1_ANGLE) mov.w #1500, &(SERVO2_ANGLE) ret walk_forward: mov.w #1000, &(SERVO1_ANGLE) mov.w #1000, &(SERVO2_ANGLE) mov.w #2000, &(SERVO1_ANGLE) mov.w #2000, &(SERVO2_ANGLE) ret walk_reverse: mov.w #1000, &(SERVO2_ANGLE) mov.w #1000, &(SERVO1_ANGLE) mov.w #2000, &(SERVO2_ANGLE) mov.w #2000, &(SERVO1_ANGLE) ret 12

Lab14: Walking_robot.ino Az előző oldalakon bemutatott assembly program átirata Energia (Wiring) nyelvre #include <Servo.h> Servo servoa, servob; //Objektum példányosítás void setup() { servoa.attach(6,640,2400); //Inicializálás határértékek megadásával servob.attach(7,640,2400); //Inicializálás határértékek megadásával void loop() { walk_forward(5); stop_idle(); delay(2000); walk_reverse(5); stop_idle(); delay(2000); //Öt lépés előre //Lábak alaphelyzetbe //Öt lépés hátra //Lábak alaphelyzetbe void walk_forward(int n) { for(int i=0; i<n; i++) { servoa.writemicroseconds(1000); servob.writemicroseconds(1000); servoa.writemicroseconds(2000); servob.writemicroseconds(2000); 13 Folytatás a következő oldalon

Lab14: Walking_robot.ino folytatás az előző oldalról void walk_reverse(int n) { for(int i=0; i<n; i++) { servob.writemicroseconds(1000); servoa.writemicroseconds(1000); servob.writemicroseconds(2000); servoa.writemicroseconds(2000); void stop_idle(void) { servob.writemicroseconds(1500); servoa.writemicroseconds(1500); 14