Qual è la differenza tra un Arduino, un microprocessore e un microcontrollore? Sto cercando di determinare quale sia il migliore per far funzionare un touchscreen resistivo economico.
Qual è la differenza tra un Arduino, un microprocessore e un microcontrollore? Sto cercando di determinare quale sia il migliore per far funzionare un touchscreen resistivo economico.
Risposte:
si trova in genere in un PC desktop o laptop e contiene una CPU e un'interfaccia di memoria esterna oltre a vari bus I / O per connettersi al mondo esterno come SPI, I2C, UART, USB, LCD e altri. Un microprocessore avrà anche un cristallo esterno per fornire un orologio.
La maggior parte dei microprocessori non ha memoria di sola lettura sul chip; invece c'è un chip esterno sulla scheda madre in cui si trova il codice di avvio iniziale. Su PC basati su Intel, questo si chiama Basic Input / Output System (BIOS) e contiene anche routine di I / O oltre al codice di avvio iniziale. Il codice di avvio inizia eseguendo un Power-On Self Test (POST) e quindi cerca di vedere dove caricare la fase successiva del codice di avvio: da un disco rigido, un CD (o nei vecchi tempi) un disco floppy. Questo avvio di secondo livello carica quindi il sistema operativo. (Ci possono anche essere tre livelli di codice di avvio in alcuni sistemi.)
Alcuni microprocessori (in genere quelli destinati a smartphone e tablet, con opzioni di avvio limitate) dispongono di una piccola quantità di memoria di sola lettura che contiene il codice di avvio iniziale.
Mi riferisco al codice di avvio come di sola lettura; in realtà su alcuni sistemi, può essere aggiornato. Tuttavia questo è abbastanza rischioso; se qualcosa va storto il sistema potrebbe non avviarsi più.
A differenza dei microcontrollori, che eseguono i loro programmi dalla memoria di sola lettura, dopo l'avvio dei microprocessori caricano i loro programmi nella RAM esterna ed eseguono da lì.
d'altra parte è un IC a chip singolo autonomo che contiene una CPU, memoria di sola lettura per memorizzare il programma, RAM per memorizzare le variabili utilizzate nell'esecuzione del programma e vari bus I / O per connettersi al mondo esterno come come SPI, I2C, UART e altri. Di per sé, non può eseguire alcun programma senza essere programmato tramite un'interfaccia esterna a un PC. Un microcontrollore potrebbe anche aver bisogno di un cristallo esterno per fornire un orologio, tuttavia alcuni hanno un orologio interno.
Alcuni microcontrollori (come PIC32 di Microchip) hanno due sezioni di memoria flash; uno per contenere il codice di inizializzazione (avvio) e un altro per archiviare l'applicazione. Ciò semplifica l'aggiornamento sul posto del codice dell'applicazione.
Per il tuo scopo, vorresti utilizzare un microcontrollore, non un microprocessore. Per utilizzare un microcontrollore, dovresti progettare la tua scheda o acquistare una sorta di scheda di sviluppo.
è una scheda di questo tipo e contiene un microcontrollore, tipico di un AVR a 8 bit come ATmega8, ATmega168, ATmega328, ATmega1280 e ATmega2560, oltre a alimentatori, cristalli e intestazioni femmina per interfacciarsi con varie schede periferiche.
Queste schede periferiche sono chiamate scudi e sono progettate per impilarsi l'una sull'altra (ci sono perni maschili nella parte inferiore delle schede per connettersi all'Arduino stesso o un altro scudo e intestazioni femminili in alto per accettare i pin maschili di uno scudo impilato sopra di esso).
Schermi di esempio sono schede di controllo del motore, schede I / O generali, schede relè, schede Ethernet e LCD, in genere con un touch-screen. Tuttavia, non conosco alcun touchscreen resistivo che verrebbe utilizzato solo per il rilevamento (senza LCD).
Oltre all'hardware sopra descritto, Arduino include anche un ambiente di sviluppo integrato multipiattaforma (IDE) scritto in Java. È stato progettato per presentare la programmazione ad artisti e altri principianti, proprio come il linguaggio BASIC ha fatto 50 anni fa. Un programma per Arduino si chiama schizzo .
I programmi Arduino sono scritti in C o C ++, tuttavia molti dettagli sono nascosti all'utente: solo due funzioni (chiamate dal sistema) devono essere definite per creare un programma che si ripete continuamente (che è tipicamente per programmi integrati)
setup(): a function run once at startup that performs initialization
loop(): a function called repeatedly until the board powers off
L'IDE viene fornito con una libreria software denominata "Cablaggio" che può essere utilizzata per operazioni di input / output comuni.
Un Arduino è un PCB che contiene un microcontrollore Atmel AVR e solitamente fornisce un set di connettori in un modello standard. Il microcontrollore è in genere preprogrammato con un programma "bootloader" che consente di caricare un programma (chiamato "sketch") nel microcontrollore tramite una connessione seriale TTY (o connessione seriale virtuale su USB) da un PC.
Un microprocessore è un IC che contiene solo un'unità di elaborazione centrale (CPU). L'IC non contiene RAM, ROM o altre periferiche. L'IC può contenere memoria cache ma non è progettato per essere utilizzabile senza memoria esterna.
I microprocessori non possono archiviare i programmi internamente e quindi in genere caricano il software quando sono accesi, ciò comporta di solito un processo di "avvio" a più fasi in cui il "firmware" viene caricato da una ROM esterna e alla fine un sistema operativo viene caricato da altri supporti di archiviazione (ad es. Disco rigido ).
Si trova in genere in un personal computer.
Un microcontrollore è un CI che contiene una CPU, nonché una certa quantità o RAM, ROM e altre periferiche. I microcontrollori possono funzionare senza memoria o memoria esterne.
Normalmente, i microcontrollori sono programmati prima di essere saldati a un PCB o sono programmabili utilizzando i connettori di programmazione del sistema (ISP o ICSP) tramite uno speciale dispositivo "programmatore" collegato a un personal computer.
I microcontrollori tipici sono molto più semplici e più lenti dei microprocessori tipici, ma credo che la distinzione sia principalmente di scala e applicazione.
Si trova, ad esempio, in elettrodomestici semplici come lavatrici di base.
"Arduino" è un ambiente di sviluppo software e una qualsiasi delle diverse schede di microcontrollori per cui l'ambiente software può sviluppare programmi. La maggior parte delle schede utilizza microcontrollori Atmel AVR.
Arduino è una piattaforma basata su microcontrollore (ATMEGA 328 per UNO). In generale, un microcontrollore è più adatto di un microprocessore a tutto ciò che richiede il rilevamento degli ingressi. Questo perché i microcontroller come ATMEGA 328 hanno convertitori da analogici a digitali (ADC) per rilevare le tensioni e hanno anche uscite PWM e I / O digitali.
Con Arduino hai anche il sistema Arduino Dev che è più facile da programmare per i principianti e ha una buona comunità per supporto e librerie.
Un touchscreen resistivo si comporta come potenziometri; uno per xe uno per y. Quindi puoi inserirli negli ingressi analogici di Arduino. Vedi qui per i dettagli .
Un'altra opzione è quella di convertire in SPI o I2C con qualcosa come questo , e leggere con Arduino.
Ad ogni modo, penso che Arduino sia una buona scelta.
L'Arduino è costituito da un microcontrollore (l'ATmega328 nella versione UNO). Quindi Arduino è un PCB con i pin del microcontrollore ben separati, un powersuply, un cristallo e l'FTDI per la connessione USB con un firmware di bordo in modo da poterlo programmare facilmente con il proprio IDE. Ecco un elenco dei componenti di Arduino: http://learn.adafruit.com/arduino-tips-tricks-and-techniques/arduino-uno-faq