Loading...

STM32F4G (ARM University Program Lab-in-a-Box)

Το STM32F4G προσφέρθηκε δωρεάν στα πλαίσια του ARM University Program Lab-in-a-Box. Το STM32F4G περιέχει έναν ισχυρό επεξεργαστή arm των 32bit,στατική ram και flash μνήμη. Επίσης έχει τη δυνατότητα σύνδεσης πολλών περιφεριακών.Παρακάτω θα παραθέσουμε μερικές εφαρμογές υλοποιημένες πάνω στον stm32f4 σε συνδυασμό με την πλακέτα της flight electronics.

Παρακάτω παραθέτουμε 6 εφαρμογές που έχουν υλοποιηθεί με τον Stm32f4G και το Flight board.

Η σχεδίαση των εφαρμογών έγινε από τους φοιτητές Μούλιο Γρηγόρη, Μώκο Σωτήρη και Λιάγκο Παντελή σε συνεργασία τον Δρ. Τοπάλη Ευάγγελο.

  • Χειρισμός κίνησης των LEDs με το κουμπί USER του board.
  • Αλλαγή φορά περιστροφής και ταχύτητας των LED με το κουμπί USER.
  • Αλλαγή φοράς και ταχύτητας περιστροφής των LED μέσω του επιταχυνσιόμετρου.
  • Έλεγχος κίνησης του motor του FLIGHT board μέσω του κουμπιού USER του STM.
  • Έλεγχος κίνησης του dc κινητήρα του FLIGHT board μέσω επιταχυνσιόμετρου.
  • Έλεγχος στροφών του dc κινητήρα του FLIGHT board μέσω PWM και επιταχυνσιόμετρου.

  • Έλεγχος κίνησης του motor του FLIGHT board μέσω του κουμπιού USER του STM.

    Σε αυτή την εφαρμογή θα ασχοληθούμε με τον χειρισμό του dc κινητήρα του multi-applications board της FLIGHT electronics. Για να ελέγξουμε τον κινητήρα πρέπει αρχικά να βάλουμε τον διακόπτη SW2 2 στη θέση motor. Τα υπόλοιπα δεν μας επηρεάζουν σε οποιαδήποτε κατάσταση τους. Αφού γίνει αυτό πρέπει να συνδέσουμε το board της STM στα bits 6,7 του port B του FLIGHT. Όταν δεχτεί λογικό “1” σε ένα από τα δύο bits ο κινητήρας θα εκκινήσει δεξιόστροφα αν αυτό είναι το 6ο και αριστερόστροφα αν αυτό είναι το 7ο. Αν δεχτεί λογικό “1” και στα δύο bit τότε ο κινητήρας δεν κινείται. Συνδέουμε το 6ο bit με το κόκκινο led του STM και το 7ο με το πράσινο. Θέτουμε έναν μετρητή να δέχεται τα πατήματα του κουμπιού USER. Μόλις ο μετρητής είναι ίσος με 1 θα ανάψει το κόκκινο led και αυτό θα δώσει στο 6ο bit λογικό “1”, άρα ο κινητήρας θα εκκινήσει δεξιόστροφα. Όταν το κουμπί πατηθεί δεύτερη φορά το led θα σβήσει άρα το 6ο bit δεχτεί λογικό “0” και θα σταματήσει ο κινητήρας. Με το τρίτο πάτημα το 7ο bit αυτή τη φορά θα δεχτεί λογικό “1” και θα εκκινήσει τον κινητήρα αριστερόστροφα. Για οποιαδήποτε άλλη τιμή του μετρητή ο κινητήρας και τα led θα παραμένουν σβηστά.

    Τα flowcharts της εφαρμογής.

    Ο κώδικας στην εφαρμογή του keil θα είναι ο εξής.

    /** 

    *  Keil project gia LEDS kai koumpi USER gia elegxo motor tou FLIGHT board

     * *  Prin ksekinhsete, epilekste thn katallhlh suskeuh, sta deksia tou "Load"

     * *  @ide        Keil uVision 5

     *  @packs      STM32F4xx Keil packs version 2.2.0 or greater required

     *  @stdperiph  STM32F4xx Standard peripheral drivers version 1.4.0 or greater required

     *//* Eisagwgh kuriwn module */

    #include "stm32f4xx.h"

    /* Eisagwgh bibliothikwn */

    #include "defines.h"

    #include "tm_stm32f4_delay.h"

    #include "tm_stm32f4_disco.h"

     int main(void) {     /* Metraei poses fores path8hke to koumpi*/

        int counter=0;       /* Energopoihsh tou Susthmatos */

        SystemInit();        /* Energopoihsh tou Delay */

        TM_DELAY_Init();        /* Energopoihsh twn leds sto board */

        TM_DISCO_LedInit();        /* Energopoihsh tou koumpiou User sto board */

        TM_DISCO_ButtonInit();

        while(1) {   /* an patithei to koumpi auksanetai to counter */    

        if (TM_DISCO_ButtonPressed())

          counter++;    /* An o counter=1 tote anapse to kokkino led me apotelesma thn ekkinhsh tou motor deksiostrofa */

        if (counter==1){

            TM_DISCO_LedOn(LED_RED);

             }      /* An o counter=3 tote anapse to prasino led kai alla3e fora peristrofhs tou motor */

            else if (counter==3)
                {

              TM_DISCO_LedOn(LED_GREEN);

                   }        /* Alliws krata ta svhsta kai akinhto to motor */

            else TM_DISCO_LedOff(LED_ALL);

            Delayms(500);

        }

    }

    Στο βίντεο φαίνεται η λειτουργία της πλακέτας με τον παραπάνω κώδικα.

    Η εικόνα στο πρόγραμμα Labview όπου έχει οπτικοποιηθεί η πλακέτα stm32f4g είναι η εξής.

    Στο πρόγραμμα Labview η εικόνα του block diagramm θα είναι η εξής.

    Υπάρχει και η δυνατότητα λήψης του αρχείου του προγράμματος Labview από τον παρακάτω σύνδεσμο.

    Labview File