annuncio

Comprimi
Ancora nessun annuncio.

x ufo

Comprimi
X
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

  • Tornando molto indietro nel tempo (il primo programma lo scrissi su schede perforate al Poli MI) mi par di ricordare che il Basic era un linguaggio interpretato ed il C invece compilato.

    Di acqua sotto i ponti ne è passata molta, e probabilmente i Basic moderni si sono sicuramente evoluti, la mia scelta personale è comunque il 'C' e suoi dialetti per i micro embedded, e Delphi per l'ambiente WIn, quest'ultimo ha il vantaggio di creare file .exe compatti ed installabili con estrema semplicità senza la necessità di .dll .ocx etc etc ed altri file di supporto (almeno per applicazioni di non mostruosa complessità).

    Circa l'utilizzo di sistemi operativi embedded come Linux e Win CE in applicazioni tipo il controllo dei Kopter, sono molto ma molto dubbioso; in genere applicazioni time-critical digeriscono male le latenze di questi s.o. e maggiori sono le linee di codice maggiori le possibilità di bug.

    IMHO di un

    Peace & Love
    Fate le cose nel modo più semplice possibile, ma senza semplificare. (A. Einstein)

    Commenta


    • grazie tante diego per la spiegazione.....ho un altra domandina da farti....
      in teoria, se uso solo 3 poti, lasciando ad esempio il roll della camera in automatico, posso utilizzare un altra applicazione tipo lo shutter della camera applicandolo al quarto poti ed avendo così un canale in +?
      io sapevo che sulle vecchie fc si poteva fare, saldando su j7 gnd e 5v ovviamente....ma sulla mia fc non c'è il j7, solo j3 4 e5... il 7 sembra non sia proprio stampato....
      potete aiutarmi? grazie!!!
      p.s. potreste pubblicare se possibile i parametri che utilizzate nel tool?
      cavoli il mio hexa è nervosetto anche se tengo su stick P=8 D=10!
      se scendo ancora è troppo blando e poco correttivo!

      grazie ancora a tutti!

      Commenta


      • Originariamente inviato da redfox74 Visualizza il messaggio
        Ciao Ragazzi,
        scusate se intervengo , questo secondo me è un tema importante ...non penso che un linguaggio sia piu' bastardo di un'altro , ma ritengo che la flessibilità del 'C' sia indiscussa ... nel senso che ... il Basic anche lui con Peek e Poke puo' essere usato per manipolare aree di memoria specifiche , pero' non è un linguaggio di sicuro flessibile ... E' sicuramente un linguaggio che per chi vuol cominciare ad avvicinarsi alla programmazione va benissimo , ma non perchì poi vuole fare sul serio anche a livello hobbistico ... ora Wire è sicuramente un'opportunità che è un po' la via di mezzo perchè ha l'efficacia del basic e la potenza del 'C' messi assieme Roberto
        Beh saprai sicuramente il basic se e' embedded al micro contiene istruzioni aggiunte atte a gestire l'hardware a disposizione.
        Inoltre su alcuni micro esempio il pic e' possibile utilizzare routine in assembler all'interno del basic per accedere a funzioni di basso livello.
        Non conosco il Wire e sicuramente seguirò i tuoi consigli per il futuro, ormai i 26euro per l'arm7 in basic li ho spesi, quindi devo far fruttare questo investimento
        Buon sabato sera, i tuoi interventi tecnici sono sempre di grande apporto informativo, ora vado a tentare di inserire un connettore a qualcuna

        Sotto un esempio scritto in C per arduino, e lo stesso scritto in BASCOM basic.

        Arduino Example: 'Smoothing' (shows Serial Print - see full example for 'n' variables on 1 line)

        C:

        #define NUMREADINGS 10
        int readings[NUMREADINGS];
        int index = 0;
        int total = 0;
        int average = 0;
        int inputPin = 0;
        void setup()
        {
        Serial.begin(9600);
        for (int i = 0; i < NUMREADINGS; i++)
        readings[i] = 0;
        }


        void loop()
        {
        total - = readings[index];
        readings[index] = analogRead(inputPin);
        total + = readings[index];
        index =(index + 1);
        if(index >= NUMREADINGS)
        index = 0;
        average = total / NUMREADINGS;
        Serial.println(average);
        }
        '2,838 bytes



        BASIC:
        $Include "DuinoLib.inc"
        $External AnaRead
        Dim Index as Byte , Value As Word , Total As Word , Average as Word
        Dim Readings(10) As Word

        Const NumReadings = 10
        Index = 1

        Do
        Total = Total - Readings(Index)
        AnaRead 5 , Value
        Readings(Index) = Value
        Total = Total + Value
        Incr Index
        If Index > NumReadings Then Index = 1
        Average = Total / NumReadings
        Print Average
        Loop

        '860 bytes
        Quadricottero News
        http://www.facebook.com/Quadricottero

        Commenta


        • Originariamente inviato da danveal Visualizza il messaggio
          Ovviamente hai ragione, tutti i linguaggi alla fine vengono compilati o interpretati in linguaggio macchina. Il fatto e' che il C viene considerato un linguaggio "nobile" ed essendo praticamente uno standard industriale la portabilità e' elevata. A seconda delle applicazioni poi genera meno codice macchina che influisce sulla velocità di calcolo finale.
          Il basic e' sempre stato considerato un linguaggio "bastardo", potrei sbagliare perchè ho molte meno competenze rispetto a quelle che intuisco tue, ma il C lo vedo molto meglio nelle applicazioni matematiche rispetto al basic.
          Tuttavia io sono nato con il basic e quindi lo prediligo.

          Ciao
          Ciao,
          più che 'nobile' o 'plebeo' il C è nato con l'intento di avere un controllo a basso livello dell'hardware (vedi ad es i puntatori ed il modo di accedere alle strutture dei dati). Il Basic si propone un livello più alto fornendo quindi meno costrutti idonei, soprattutto in embedded systems come i nostri quadricotteri.
          Tieni presente che le librerie in C ti permettono comunque di avere una visione a più alto livello, senza per forza dover manipolare il micro bit a bit.
          Spesso è difficile convincersi a nuotare in acqua alta quando si è abituati a stare dove si tocca, ma il mio consiglio è che ne vale la pena, quindi tuffati!
          Soprattutto con Arduino il discorso è semplificato. Nel giro di una giornata sarai già in grado di realizzare semplici progetti e pronto per passare a tutorial più complessi.



          Originariamente inviato da ElNonino Visualizza il messaggio
          Tornando molto indietro nel tempo (il primo programma lo scrissi su schede perforate al Poli MI) mi par di ricordare che il Basic era un linguaggio interpretato ed il C invece compilato.

          Dipende, alcuni si, altri no.

          Circa l'utilizzo di sistemi operativi embedded come Linux e Win CE in applicazioni tipo il controllo dei Kopter, sono molto ma molto dubbioso; in genere applicazioni time-critical digeriscono male le latenze di questi s.o. e maggiori sono le linee di codice maggiori le possibilità di bug.

          IMHO di un

          Concordo. Un uso più efficace (ma meno efficiente per peso e energia) sarebbe un quadricottero con a bordo anche un piccolo server per eseguire determinati compiti.
          Ho visto un progetto universitario per l'uso di quadricotteri di questo tipo per la costruzione di reti in situazioni di emergenza. Il quadricottero viene portato nell'area giusta per creare una cella e atterra. Quando la batteria sta finendo viene sostituito da un altro quadricottero e rientra per la ricarica.
          La possibilità di avere una rete wireless per coordinare i soccorsi può fare una grande differenza.

          @antonio80: si, certo. Puoi assegnare un poti per lo switch. Se non l'hai ancora messo metti un regolatore aggiuntivo sulla FC ME se usi i servi. Un'alternativa è far passare l'alimentazione dei servi all'esterno della FC. Questo per evitare spegnimenti in volo se un servo per qualche ragione assorbe oltre le specifice del regolatore su FC.
          Su FC ME J7 = servo port. E' di default il servo per il controllo del tilt.

          ciao
          Senza entusiasmo non si è mai compiuto niente di grande. R.W. Emerson

          Commenta


          • Originariamente inviato da danveal Visualizza il messaggio
            Beh saprai sicuramente il basic se e' embedded al micro contiene istruzioni aggiunte atte a gestire l'hardware a disposizione.
            Inoltre su alcuni micro esempio il pic e' possibile utilizzare routine in assembler all'interno del basic per accedere a funzioni di basso livello.
            Non conosco il Wire e sicuramente seguirò i tuoi consigli per il futuro, ormai i 26euro per l'arm7 in basic li ho spesi, quindi devo far fruttare questo investimento
            Buon sabato sera, i tuoi interventi tecnici sono sempre di grande apporto informativo, ora vado a tentare di inserire un connettore a qualcuna

            Sotto un esempio scritto in C per arduino, e lo stesso scritto in BASCOM basic.

            Arduino Example: 'Smoothing' (shows Serial Print - see full example for 'n' variables on 1 line)

            C:

            #define NUMREADINGS 10
            int readings[NUMREADINGS];
            int index = 0,total = 0,average = 0,inputPin = 0;
            void Setup()
            {
            Serial.begin(9600);
            for (int i = 0; i < NUMREADINGS; i++)readings[i] = 0;
            }

            void loop()
            {
            total - = readings[index];
            readings[index] = analogRead(inputPin);
            total + = readings[index];
            index++; if(index >= NUMREADINGS)index = 0;
            average = total / NUMREADINGS;
            Serial.println(average);
            }
            '2,838 bytes



            BASIC:
            $Include "DuinoLib.inc"
            $External AnaRead
            Dim Index as Byte , Value As Word , Total As Word , Average as Word
            Dim Readings(10) As Word

            Const NumReadings = 10
            Index = 1

            Do
            Total = Total - Readings(Index)
            AnaRead 5 , Value
            Readings(Index) = Value
            Total = Total + Value
            Incr Index
            If Index > NumReadings Then Index = 1
            Average = Total / NumReadings
            Print Average
            Loop

            '860 bytes
            Ti ho corretto il codice , sto diventando un maestrino BLEAH ,per ottimizzare il numero di righe , e come vedi a livello di leggibilità sono praticamente identici , l'unica cosa è che il Basic usa dei trucchi , penso che in quel inc c'e' un po' di inizializzazione di variabili ambiente ... scusa ma la baud rate della seriale dove la setti ? Altra domanda i bytes intendi una volta compilato il codice ? O solo quello che hai scritto ?
            Comunque ho provato a smanettare con il bascom , ma non ho capito che programmatore usare ... cioè vorrei usare AVRDUDE , qualcuno sa' quali sono i parametri da usare con il AVR 644P per usare la STK500 con i suoi protocolli seriali , non vorrei con BASCOM usare un'altro bootlader ancora visto che questo è ecceziunale veramente su ARDUINO ...
            Cmq tutto questo per dire che presto verrà alla luce il piu' bel X Cottero del mondo da questo progetto e non partirà dalle 4 pale , ma da 3 . ;) Con l'aiuto di danveal e della MultiPilot ;)
            P.S.
            attento ad andare in giro ad attaccare il tuo connettore a qualcuna , poi ci prendi gusti io negli ultimi anni avendo preso gusto con sta' cosa del connettore mi son ritrovato con tre bimbi ;)

            Buona serata e divertiti ;)
            Redfox74
            Virtual Robotix ( Arducopter DEVTEAM )
            http://www.virtualrobotix.com
            Canale di supporto FB
            https://www.facebook.com/groups/1606596929592397/

            Commenta


            • servi

              Originariamente inviato da antonio80 Visualizza il messaggio
              grazie tante diego per la spiegazione.....ho un altra domandina da farti....
              in teoria, se uso solo 3 poti, lasciando ad esempio il roll della camera in automatico, posso utilizzare un altra applicazione tipo lo shutter della camera applicandolo al quarto poti ed avendo così un canale in +?
              io sapevo che sulle vecchie fc si poteva fare, saldando su j7 gnd e 5v ovviamente....ma sulla mia fc non c'è il j7, solo j3 4 e5... il 7 sembra non sia proprio stampato....
              potete aiutarmi? grazie!!!
              p.s. potreste pubblicare se possibile i parametri che utilizzate nel tool?
              cavoli il mio hexa è nervosetto anche se tengo su stick P=8 D=10!
              se scendo ancora è troppo blando e poco correttivo!

              grazie ancora a tutti!
              non ho capito se vuoi usare un servo per scattare. Se è così e se non usi l'uscita del roll puoi attaccare li, il servo dello scatto. Il collegamento lo trovi sul wiki della FC: FlightCtrl ME - Wiki: MikroKopter.de

              Commenta


              • no gibon scusami mi sono spiegato un po da cane.....allora ripeto perchè sec me è risolvibile...
                sulla fc ho in utilizzo 3 poti e i due servi per roll e pitch brandeggio...
                ok avendo un poti per il vario, uno per il gps su 3 posizioni e uno per il pitch...
                pensavo che se riuscivo a metter su un altro aggeggio tipo il relè di scatto e assegnargli uno switch libero della radio sul poti non utilizzati, magari mi veniva fuori un altro canale!
                ti prego dimmi si gibon....se è così ho risolto!
                p.s. il ch 9 della ricevente è gia usato quindi...o così o mi serve la seconda radio!

                Commenta


                • potipoti

                  Originariamente inviato da antonio80 Visualizza il messaggio
                  no gibon scusami mi sono spiegato un po da cane.....allora ripeto perchè sec me è risolvibile...
                  sulla fc ho in utilizzo 3 poti e i due servi per roll e pitch brandeggio...
                  ok avendo un poti per il vario, uno per il gps su 3 posizioni e uno per il pitch...
                  pensavo che se riuscivo a metter su un altro aggeggio tipo il relè di scatto e assegnargli uno switch libero della radio sul poti non utilizzati, magari mi veniva fuori un altro canale!
                  ti prego dimmi si gibon....se è così ho risolto!
                  p.s. il ch 9 della ricevente è gia usato quindi...o così o mi serve la seconda radio!
                  eheheh allora..
                  indipendentemente dai canali che ha la tua radio, la FC ne accetta in ingresso max 8. di cui:
                  4 per la navigazione
                  1 per gPS
                  1 per vario
                  1 per il nik del basculaggio cam
                  1 per il roll del basculaggio cam
                  fanno 8.. se è così non ne hai altri per lo scatto, e devi rinunciare a qualcosa.

                  Invece i moduli Jeti permettono di gestire con una sola trasmittente ( a 9,10,12 canali) due riceventi in parallelo.
                  ciao.

                  Commenta


                  • ok...ma quindi se io metto il roll in automatico...quindi lasciando un poti libero...non riesco cmq?
                    mi ero illuso sul fatto che qualcuno se non ricordo male abbia tenuto tutto come me in piu il controllo delle luci prendendo sia il segnale che il resto dalla fc...in questo caso il j7....perchè in teoria la fc supporta 4 ch e 4 poti giusto?
                    questo sempre in teoria però...

                    Commenta


                    • Originariamente inviato da gibon Visualizza il messaggio
                      eheheh allora..
                      indipendentemente dai canali che ha la tua radio, la FC ne accetta in ingresso max 8. di cui:
                      4 per la navigazione
                      1 per gPS
                      1 per vario
                      1 per il nik del basculaggio cam
                      1 per il roll del basculaggio cam
                      fanno 8.. se è così non ne hai altri per lo scatto, e devi rinunciare a qualcosa.

                      Invece i moduli Jeti permettono di gestire con una sola trasmittente ( a 9,10,12 canali) due riceventi in parallelo.
                      ciao.
                      Si, tutto giusto. Ma a cosa serve un poti sul Roll? tutto quello che deve fare è mantenre la camera livellata, mica lo devi controllare come il tilt.

                      Una soluzione alternativa per risparmiare canali è con il controllo di altezza in modo 'Height Limitation' è di assegnare lo stesso poti a GPS e attivazione limitazione altezza.

                      Ciao
                      Senza entusiasmo non si è mai compiuto niente di grande. R.W. Emerson

                      Commenta


                      • esatto proprio per questo.....il problema è che cmq ho in uso 3 poti su 4
                        per utilizzare il quarto con un altra applicazione cosa devo fare?

                        Commenta


                        • potipotiroll

                          Originariamente inviato da antonio80 Visualizza il messaggio
                          ok...ma quindi se io metto il roll in automatico...quindi lasciando un poti libero...non riesco cmq?
                          mi ero illuso sul fatto che qualcuno se non ricordo male abbia tenuto tutto come me in piu il controllo delle luci prendendo sia il segnale che il resto dalla fc...in questo caso il j7....perchè in teoria la fc supporta 4 ch e 4 poti giusto?
                          questo sempre in teoria però...
                          ah..capito..il roll gestito dalla fc senza bisogno dell'ingresso dalla radio..non so se funziona.. oggi faccio un test.. il relè di scatto (se assorbe poco da non far saltare il transistor) puoi collegarlo a j7 o j8 il colegamento si vede dal link che ti avevo indicato.Se non ricordo male il transistor porta a massa quindi l'altrofilo del relè, va al + (occhio alle interferenze)

                          Collegato il relè.. resta da provare se il servo del roll funziona anche senza l'ingresso roll.. altrimentine fi meno come dice DDrake..

                          Commenta


                          • ok perfetto...dato che non ho il j7 sulla ME tenterò sul J8 che ho individuato...
                            il relè non è altro che un picoswitch...
                            questo per intenderci
                            Picoswitch R/C Relay

                            dimmi un po...altrimenti non c'è problema...passo il servetto dello zoom sulla fc e il relèlo metto sul ch9!

                            Commenta


                            • relè

                              Originariamente inviato da antonio80 Visualizza il messaggio
                              ok perfetto...dato che non ho il j7 sulla ME tenterò sul J8 che ho individuato...
                              il relè non è altro che un picoswitch...
                              questo per intenderci
                              Picoswitch R/C Relay

                              dimmi un po...altrimenti non c'è problema...passo il servetto dello zoom sulla fc e il relèlo metto sul ch9!
                              Anche il rele del link ha bisogno di un segnale PPM, non credo funzioni sulle uscite continue.. j7-j8, ha bisogno di una uscita adatta per i servossss..

                              vado alla pappa..

                              Commenta


                              • Sulla ME puoi usare l'uscita SV7 o SV8 che ti porta un +5V a massa se swithcato... io lo uso per comandare lo scatto camera tramite il FW ChDK

                                L'uscita è nata per comandare i led tramite un relè sulla distribution board quindi per farlo funzionare devi settare il poti nella sezione di controllo dei led e impostare l'accensione contemporanea di tutti i led, in questo modo quando il poti è attivo l'uscita è fissa a 5V. Con quell'uscita puoi comandare qualsiasi cosa...

                                Riassumendo

                                4 Ch per Il Volo
                                1 Ch per GPS
                                1 ch per Vario
                                1 ch per Nick
                                1 ch per Shoot Photo

                                Ciao

                                Flà
                                http://www.virtualrobotix.it

                                Commenta

                                Sto operando...
                                X