- Gli ultimi articoli di TardoFreak
-
Programmazione (4): metodi e funzioni
pubblicato 8 anni fa, 1.174 visualizzazioni
A volte ci si rende conto che alcune porzioni di codice sono ripetute più volte all'interno di un programma. Sarebbe utile avere uno strumento, una possibilità data dal linguaggio, per prendere questa porzione di codice e fare in modo che si possa utilizzare più volte nel programma senza doverla riscrivere. Anche prima dell'avvento dei linguaggi di alto livello si usava scrivere i cosiddetti sottoprogrammi o meglio le subroutine. Lo si faceva anche con il linguaggio assembly, che era, più che un linguaggio, un semplice traduttore che trasformava una rappresentazione simbolica del linguaggio macchina in istruzioni eseguibili direttamente dal calcolatore. Il problema è che il linguaggio macchina è molto semplice, a volte estremamente limitato anche se estremamente veloce in fase di esecuzione. Basti pensare che i microprocessori non avevano né una istruzione per moltiplicare fra loro due valori, tanto meno la divisione. Ancora oggi alcuni micro, sopratutto quelli di fascia bassa, non hanno queste due istruzioni.
[...] -
Programmazione (3): i costrutti di base
pubblicato 8 anni fa, 3.312 visualizzazioni
Si può scrivere qualsiasi tipo di algoritmo utilizzando tre costrutti di base:
assegnamento per assegnare ad una variabile un valore o il risultato di un'espressione. controllo del flusso per decidere, in base ad una condizione se fare una cosa o farne un'altra. controllo dei cicli per fare eseguire più volte una porzione di programma in base ad una condizioneCome accennato prima l'assegnamento serve per assegnare un valore ad una variabile. Per fare questo si usa un operatore chiamato operatore di assegnamento che è il carattere =, cioè il carattere di "uguale". Se vogliamo assegnare il valore 123 alla nostra variabile totaleProdotti dobbiamo scrivere
Il numero 123 è chiamato costante numerica. Se invece vogliamo assegnare alla variabile "totaleProdotti" una espressione che coinvolge altre variabili, per esempio vogliamo che "totaleProdotti" contenga il risultato di una moltiplicazione fra le due variabili "numeroScatole" e "prodottiPerScatola" dobbiamo scrivere
[...] -
Programmazione (2): il primo programma.
pubblicato 8 anni fa, 796 visualizzazioni
In questo articolo proviamo a scrivere il primo programma. Segue un po' di teoria, il "minimo sindacale" che serve per poter poi continuare ed affrontare altri argomenti. Con il primo programma si può anche verificare il buon funzionamento del sistema di sviluppo in modo da avere uno strumento valido per provare gli esempi e fare le proprie sperimentazioni.
Dopo la teoria passiamo ai fatti e proviamo a vedere come scrivere un programma semplice, per toccare con mano la programmazione. Incominciamo con il C:
Lanciamo NetBeans Dal menù File scegliamo New Project. Si apre una finestra che ci invita a scegliere il tipo di progetto che vogliamo creare. Nella finestra di sinistra clicchiamo sulla cartella C/C++. Nella finestra di sinistra clicchiamo su C/C++ Application. Premiamo il pulsante Next ed apparirà un'altra finestra. Nel campo Project Name scriviamo ProgC che vorrebbe significare programma in C. Accertiamoci che la casella Create Main File si spuntata, lasciamo il nome main ed accertiamoci che il menu a tendina a fianco indichi C. Premiamo il tasto Finish Sulla sinistra, nello spazio di navigazione del progetto, apriamo il gruppo Source Files. Troveremo un file chiamato main.c Doppio click sul main.c e comparirà lo scheletro del nostro primo programma in C [...] -
Programmazione (1): il calcolatore
pubblicato 8 anni fa, 1.333 visualizzazioni
Una sera mio figlio mi domandò:"papà mi insegni la programmazione?". E fu così che m'inventai una sorta di corso ultra veloce, e lui imparò a programmare, e siccome sono convinto che le esperienze positive debbano essere condivise cercherò di di trasmetterle a chi ha voglia di iniziare a programmare. Il perché mio figlio mi ha chiesto d'insegnargli la programmazione è presto detto: aveva bisogno di poter fare qualcosa di sensato e corretto per i siti web, quindi programmazione con PHP e javascript. Io non faccio programmazione web ma scrivo programmi per microcontrollori (da qui in poi chiamati "micro") e software per PC, di solito programmi di utilità per alcuni progetti basati su micro. Mi è anche capitato di scrivere del software per la gestione della mia ditta. Per queste cose uso il Java, per i micro uso il C . E queste due sono le macchine per le quali è pensato questo tutorial: PC e micro.
[...] -
Una alternativa ai soliti regolatori lineari
pubblicato 9 anni fa, 576 visualizzazioni
Dovendo realizzare un circuito alimentato a batteria, per motivi di consumo ho dovuto ripiegare su regolatori a commutazione. Non li avevo mai usati prima ed ero dubbioso sulla bontà di queste soluzioni. Mi sono dovuto ricredere e quindi mi pare giusto condividere la mia esperienza con i lettori di EY. Ho provato diversi oggetti per farmi un'idea pratica di come funzionano i regolatori a commutazione. Facendo una veloce indagine in rete ho trovato un integrato molto diffuso e poco costoso: AP3503E Io non sono un elettronico e quindi quello che scriverò sarà di sicuro pieno di inesattezze. In effetti è solo il frutto di prove casalinghe che però hanno dato buoni risultati. Sarebbe interessante (e molto utile) leggere i commenti di chi l'elettronica la sa veramente per avere un'informazione corretta. Me lo auspico. Ho utilizzato questo circuito integrato per la realizzazione di una scheda seria dove avevo bisogno di un 5V per alimentare un po' di circuiteria (avrei potuto usare un regolatore lineare ma ho optato per questo a commutazione), quindi niente di speciale. Nello stesso circuito ho dovuto realizzare un generatore di corrente costante che mi erogasse 1,5A praticamente in cortocircuito. Questo circuito integrato è stata la soluzione. Quello che mi ha spinto a scrivere questo articolo è stata una sperimentazione che ho fatto con una stampate termica pilotata (ovviamente) da un microcontrollore montato su di una scheda di sviluppo che uso per fare esperienze su diversi dispositivi. Per farla breve avevo a disposizione un alimentatore da 12V 1.5A e mi servivano 5V 2A per la stampante. Ho pensato bene di usare questo integrato cablando questo circuito copiato quasi bovinamente da application circuit del datasheet.
[...] -
Arduino USBasp e Atmel Studio. Tutti insieme appassionatamente
pubblicato 9 anni fa, 4.652 visualizzazioni
Arduino non ha bisogno di presentazioni. Si è imposto come punto d'ingresso per la sperimentazione con i microcontrollori definendosi "open source" e "scheda didattica". La prima definizione non è corretta perché la sua realizzazione, sebbene sembri alla portata di qualsiasi hobbista, in effetti non lo è. Basta dare uno sguardo alla scheda "Arduino Uno" per rendersene conto. A parte la presenza di diversi componenti SMD che potrebbero anche non presentare problemi di montaggio, uno in particolare, combinazione il più importante (il convertitore USB-seriale), è addirittura in contenitore QFN. Questi contenitori non sono affatto semplici da montare, di solito vengono montati in automatico o manualmente da persone esperte. Inoltre non è sufficiente comprare i componenti e montarli, è necessario comunque programmare in qualche modo il bootloader (più avanti spiegherò cos'è) e, nel caso dell'ultima versione, anche il convertitore. E' il classico problema dell' uovo e della gallina: ho bisogno di una gallina per avere un uovo da cui far nascere una gallina.
[...] -
USBasp: come installare il driver ed aggiornare il firmware
pubblicato 9 anni fa, 9.420 visualizzazioni
USBasp è un progetto di Thomas Fischl (questa è la pagina web) di un programmatore per micrcontrollori della Atmel. Di per sé l'oggetto costa veramente poco ma si trovano dei cloni cinesi che, seppur costruiti bene e poco costosi, raramente funzionano. La causa del malfunzionamento è che sono venduti così come sono, senza software per l'installazione e senza firmware aggiornato. Belli a vedersi ma inutili se non correttamente installati. Mosso da curiosità ho provato a comprarne uno ed immancabilmente sono incappato in questi problemi. Li ho risolti in questo modo ed ho comprato altri di questi cloni, casomai servissero a qualche amico, non si sa mai. Questo è l'oggetto
Cercando in rete ho trovato diverse versioni dei drivers, alla fine ho scelto quella più recente (almeno spero) che ho messo nel file allegato a questo articolo. Fatto sta che questo driver funziona davvero e l'ho sperimentato personalmente. Con il driver giusto ed il firmware aggiornato ho un altro programmatore. Ecco come fare per installare il driver su Windows 8.
[...] -
Disattivare l'opzione verifica dei drivers in Windows 8
pubblicato 9 anni fa, 788 visualizzazioni
A volte è necessario disabilitare l'opzione di verifica della firma dei drivers. In Windows 8 è una cosa macchinosa perché, se il driver non è fornito di firma digitale così com'è Windows si rifiuta categoricamente di installarlo. Questo problema non esisteva fino a Windows 7. Se il driver non aveva la firma digitale veniva semplicemente fatto comparire un messaggio al quale si poteva rispondere "lo voglio installare ugualmente" e la cosa finiva lì. Mi sono ritrovato a dover installare un driver per un programmatore per microcontrollori e devo dire sinceramente che ho passato l'anima dei guai. Ho poi trovato questo interessante articolo che mi ha spiegato come fare. Pubblicamente ringrazio l' autore Simone Montalto. Sia per non dimenticarmi come fare, sia perché la cosa può essere utile ad altri riporto la sequenza di operazioni da fare per installare un driver senza firma:
[...] -
Correttezza parziale e terminazione
pubblicato 10 anni fa, 2.673 visualizzazioni
Ovviamente sto parlando di informatica. Partiamo dall'inizio: perché sto scrivendo questo articolo? Perché Giovedì prossimo dovrò dare l' esame di "Programmazione 1" e quindi questo articolo serve a me come ripasso. Resta comunque il fatto che l' argomento mi ha incuriosito o, per dirla tutta, non avrei mai immaginato di dover trattare dei semplici, banali e, se vogliamo, scontati argomenti di programmazione con il linguaggio della matematica. Prima di allora vedevo la programmazione come un qualcosa di dinamico e la matematica statica, ma non è così. I due linguaggi sono in relazione.
In generale nelle funzioni (o metodi, chiamiamoli come meglio ci pare), in particolare nei cicli. L' idea che sta alla base di tutto è riuscire a trovare un metodo matematico per capire a priori se un qualcosa funziona senza bisogno di farlo "girare" su di una macchina. Inizialmente la cosa mi sembrava bizzarra, per dirla utilizzando un'espressione tipica dell'Africa sub sahariana, una "sega mentale". Inutile dire che mi sono dovuto ricredere. Non tanto perché la cosa funziona davvero (ho avuto modo di sperimentarla in una funzione su cui sto lavorando) ma per l' estrema teorizzazione.
[...] -
Cortex-M3 Getting Started. Ora si fa sul serio!
pubblicato 10 anni fa, 1.951 visualizzazioni
Lo scopo di questo articolo è di dare la possibilità ai microcontrollisti di avere un sistema per sviluppare su microcontrollori basati su ARM, nel particolare i Cortex-M3. Seguendo il forum da qualche anno non ho potuto notare il progresso di alcuni utenti che, partiti dai micro più semplici, hanno intrapreso un percorso di conoscenza che li ha portati a diventare dei microcontrollisti con "le palle quadre". Sono sicuro che ci sono molti talenti e sono altresì convinto che offrire degli strumenti per fare in modo che queste potenzialità possano concretizzarsi sia una cosa buona, un qualcosa che valga la pena fare.
I microcontrollori a 32bit sono il futuro. E' inutile girarci intorno, prima o poi lo sperimentatore evoluto dovrà fare il grande balzo e passare dagli 8/16bit ai 32 bit. Per chi ha sempre e solo lavorato con micro ad 8 o 16bit passare ai 32bit vuol dire scoprire un mondo nuovo, salire ad un livello di prestazioni non paragonabile a gli altri micro. Vuol dire rendersi conto di lavorare non con un microcontrollore ma con un vero e proprio computer. Inutile dire che una volta che ci si è impratichiti con questi oggetti sarà molto ma molto difficile riprendere ad utilizzare gli 8bit, proprio perché ci si abitua a macchine serie al punto che gli 8bit vengono poi visti e considerati poco più che giocattoli.
[...]
Chi sono
I miei ultimi post dal forum
-
Progetto scheda di sviluppo STM32F105RBT6
Bravo! =D> 19:12
-
Progetto scheda di sviluppo STM32F105RBT6
Le mettono ovunque, quindi le metterei. 19:12
-
Progetto scheda di sviluppo STM32F105RBT6
No, intendevo il connettore a 4 pin che è montato sulla schedina cinese che ha questi segnali Vdd SWIO SWCLK GND Poi puoi benissimo affiancarci... 19:12
-
Progetto scheda di sviluppo STM32F105RBT6
Bella schedina. Una sola nota: avrei messo un connettore SWI compatibile con la schedina cinese con STM32F103RCT6. L'ho preso come standard e lo... 19:12
-
Stepper + Microcontrollore TB62205FG + Raspberry Pi
Se non conosci l'elettronica neanche il Padreterno ti può aiutare. Se non conosci l'elettronica quello che vuoi fare è al di sopra delle tue... 15:20
-
Stepper + Microcontrollore TB62205FG + Raspberry Pi
Vedi, se leggi un datasheet e ti sembra aramaico i casi sono due: o non sai l'inglese (e quindi devi studiarlo), o il componente è al di sopra... 15:20
-
fatti di Bardonecchia
I gendarmi avrebbero dovuto fare una semplice comunicazione della irruzione e non l'hanno fatto. Non dovevano chiedere nessun permesso, solo... 08:44
-
Stepper + Microcontrollore TB62205FG + Raspberry Pi
Certo che si può fare, però devi studiarti l'aramaico antico. 15:20
-
Pilotaggio dei display LCD (compatibile HD44780) con PIC24
Non serve nessun adattamento. Collega tranquillo il display e questo funzionerà. Già provato almeno un milione di volte con tanti processori... 19:52
-
Apparecchiatura per ricevere Netflix
Infatti. Quello che sto cercando io è un qualcosa che mi offra non un film ma tutta la saga di Star Wars, per intenderci. Penso che tornerò al... 10:35