Se sei già registrato           oppure    

Orario: 04/07/2020 19:59:07  

 

Energia Alternativa ed Energia Fai Da Te > PPTEA

VISUALIZZA L'ALBUM

Pagine: (3)   [1]   2   3    (Ultimo Msg)


MicroMite/MaxiMite
FinePagina

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1884

Stato:



Inviato il: 10/01/2015 09:46:08

Da un pò di tempo sto girellando in internet alla ricerca di oggetti semplici da usare, facili da autocostruire ed economici, per espandere le capacità del PPTEA. in particolare stavo cercando una maniera per utilizzare gli ormai pervasivi moduli ricetrasmittenti per Arduino, che però utilizzano il bus SPI, non (ancora?) supportato dal PPTEA (speriamo nell'ipotetico PPTEA-II basato su pic più potenti). Mi sono imbattuto in questo progetto, che conoscevo già col nome di DuinoMite, che reputo molto interessante. La filosofia è simile a quella del PPTEA, ma viene fatto tutto dentro al PIC, in pratica, per chi se li ricorda, è come usare un C64 o un IBM-PC (quello originale) senza DOS; abbiamo un interprete basic residente, che può eseguire in realtime le righe di comando inviategli dal prompt, oppure eseguire in autorun un programma salvato; la cosa interessante è che ha diverse funzioni native, quali l'utilizzo di bus I2C, SPI, 1Wire, RCServo. Il MaxiMite è un vero microcomputer, al quale collegare tastiera PS/2, monitor VGA (esiste anche una versione che gestisce TFT touch), scheda SD; il MicroMite è un micro standalone col quale si colloquia via seriale con un terminale VT100. Ho già ordinato due PIC per realizzarmi il MicroMite, appena mi arrivano, vi aggiorno con la mia esperienza.

I link del progetto Maximite li trovate nel main thread del PPTEA.

Ciao!



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4152

Stato:



Inviato il: 11/01/2015 08:17:10

La cosa e' interessante, aggiornaci con l'evoluzione del progetto...
il c64 e' stato il mio 2˚ computer...dopo il vic-20

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1884

Stato:



Inviato il: 14/01/2015 14:25:15

Allora, mi sono arrivati i PIC per realizzare il MicroMite... nella fretta non ho visto che è uscita la nuova versione (MkII v4.6), che gira su un pic più performante ed introduce nuove funzionalità... per ora uso questo, anche perchè le funzioni aggiuntive sono un pò oltre le mie capacità (si parla di includere codice assembler nel listato basic)...

Inizierò quindi parlando del MicroMite versione 4.5E (ultima release prima dell'uscita dell'MkII) può girare su ben sei diverse versioni di PIC:

PIC32MX150F128B-50I/SP @ 48MHz 28 pin DIL, 19 linee I/O
PIC32MX150F128B-50I/SO @ 48MHz 44pin SMD, 33 linee I/O (!!!)
PIC32MX150F128B-I/SP @ 40MHz 28 pin DIL (ma può funzionare fino a 48MHz)
PIC32MX150F128B-I/SO @ 40MHz 44pin SMD (come sopra)
PIC32MX250F128B-50I/SP @ 48MHz 28 pin DIL, solo 17 I/O pins
PIC32MX250F128B-I/SP @ 40MHz 28 pin DIL, 17 i/o, può funzionare a 48MHz

tutte a poco meno di 4,0€ dai fornitori "aziendali" (RSComponents, Farnell, TME, etc...).

Per funzionare, necessita di un solo condensatore esterno di qualità da 47uF (tantalio o ceramico). Il collegamento con l'operatore avviene via emulazione VT100, ovvero dobbiamo avere sul PC/Tablet/Smartphone una porta seriale a livelli LVTTL (Low Voltage TTL, 3,3V) ed un emulatore di terminale VT100 (viene consigliato TeraTerm, ma credo che anche Hyperterminal possa andare... appena provo vi dico). Tramite il terminale si colloquia direttamente con l'interprete BASIC in esecuzione all'interno del PIC, e si possono far eseguire sia comandi in tempo reale al prompt, che editare e salvare un'intero programma, esattamente come si faceva con gli home PC (ah, se avessi 16anni oggi...).
Questo vuol dire che posso sia usarlo come oggetto standalone, sia come "periferica" di un programma in esecuzione sullo smarter object (PC/tablet...) senza dover mettere una riga di codice aggiuntiva sul PIC.

Il firmware ed i relativi documenti sono scaricabili a questo link: http://geoffg.net/micromite.html al fondo della pagina.



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1884

Stato:



Inviato il: 26/01/2015 10:24:32

Allora, dopo un finesettimana passato a smoccolare contro Microchip e la connessione internet a 32kbps (ho esaurito i giga della chiavetta), due info per chi si volesse cimentare:
Possedevo un PICKit3, acquistato quando la versione dell'MPLAB IDE era alla 8.70, ed ho fatto il tragico errore di scaricare MPLABX, che oltre ad essere più pesante, presenta un baco nell'aggiornamento firmware del PICKit3, per cui dopo aver scaricato svariati MB e smoccolato perche non riuscivo a far funzionare nulla, ho dovuto scaricare l'MBLAB 8.92, col quale ho risolto (e disinstallato l'MPLABX che non mi serve più, a questo punto...). La Standalone Programming Application 3.10 non supporta il PIC32MX150F128B, quindi non usatela.
Realizzato il circuito basilare del manuale, flashato il PIC, collegato con un adattatore USB-seriale al PC (con gli opportuni adattamenti 5V/3,3V) dal quale derivo anche l'alimentazione, scopro che l'emulazione VT100 di Hyperterminal è penosa, quindi scarico TeraTerm, e finalmente riesco a colloquiare con il MicroMite! Peccatoche ormai erano le 22 di domenica, e li mi sono fermato... Prossimamente schemini e dettagli



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1884

Stato:



Inviato il: 29/01/2015 23:06:39

PREMESSA: a differenza della GuidaGalattica al PPTEA per principianti, in questo thread darò per scontato molte cose; sarebbe ridondante scrivere qui cose già dette là, dove reputerò che vi sia bisogno di approfondire o dettagliare lo farò, altrimenti proseguirò, e chi avrà bisogno di spiegazioni ulteriori si documenterà e/o chiederà.

Per programmare il MicroMite è necessario, diversamente dal PPTEA, esservi collegati con un'emulatore di terminale.
Un emulatore di terminale è un software che riproduce il funzionamento di un terminale su personal computer; come saprete, il terminale
era una scatola con display, tastiera, un pò di elettronica ed una porta seriale, utilizzata come interfaccia macchina-uomo, dove la macchina
era un calcolatore di un centro di calcolo, e l'epoca era quella dei dinosauri, ed io ero (forse) appena nato...
Il MicroMite usa un interfaccia VT100, questo vuol dire che il software emulatore deve essere in grado di emulare un terminale VT100 interpretando correttamente le sequenza di comandi che il MicroMite invia, e codificare correttamente i tasti che premiamo sulla tastiera.
Come indicato nel sito, ho usato Tera Term, nella release 4.85, perchè l'emulatore di terminale incluso in WinXP (Hyperterminal) non funziona correttamente (strano!).
Il collegamento e l'alimentazione li ho ricavati da un adattatore USB-seriale, io uso un FTDI TTL-232-5V-PCB il cui circuito stampato è "nudo" e tramite il quale ho accessibile anche la +5V della porta USB, dalla quale con tre diodi in serie ricavo i 3V per l'alimentazione del PIC;
http://www.energialternativa.info/public/newforum/ForumEA/C/micromite_test_2.bmphttp://www.energialternativa.info/public/newforum/ForumEA/D/my_micromite.png
sicuramente questo sistema ha delle pecche, ma per un primo test è sufficiente.
Se avete un (vecchio) PC con porta seriale od un adattatore USB/RS232 (quello con il connettore DB9), NON COLLEGATE IL MICROMITE, una seriale RS232 usa livelli di tensione di +12V e -12V per gli stati logici, che fulminerebbero gli ingressi del PIC; per usarla dovete mettere in mezzo un adattatore di livelli come il MAX232, di cui si parla diffusamente nel forum.
Nonostante il MicroMite lavori a 3,3V, i pin della seriale usata per la comunicazione, ed anche alcuni altri, sono 5V-tolerant; pertanto basta porre in serie una resistenza da 1K e possiamo collegarci ad una seriale a livelli logici TTL (anche a quella di un PPTEA, e magari usarlo come adattatore USB/seriale).
Collegata la seriale ed avviato TeraTerm, appena alimentiamo il PIC apparirà la scritta:

http://www.energialternativa.info/public/newforum/ForumEA/D/mm1_cr.png

ed avremo un bel prompt che aspetta i nostri comandi.

Questa (modo immediato) è una delle tre modalità in cui possiamo avere il Micromite, le altre due sono l'editor ed il modo esecuzione; in modo immediato possiamo digitare un comando del linguaggio
MMBasic e questo viene eseguito immediatamente:

http://www.energialternativa.info/public/newforum/ForumEA/D/mm2_cr.png

Bene, useremo un pò questa modalità per prendere confidenza con l'oggetto, poi passeremo al modo edit.



Modificato da MarKoZaKKa - 13/02/2015, 21:03:05


---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1884

Stato:



Inviato il: 29/01/2015 23:13:50

Innanzitutto, diamo un'occhiata alla mappa degli i/o del Micromite:


1 RESET 28 ANALOG POWER (+2.3 to +3.6V)
2 DIGITAL | INT | ANALOG 27 ANALOG GROUND
3 SPI OUT | DIGITAL | INT | ANALOG 26 ANALOG | DIGITAL | PWM 2A
4 PWM 1A | DIGITAL | INT | ANALOG 25 ANALOG | DIGITAL | SPI CLOCK
5 PWM 1B | DIGITAL | INT | ANALOG 24 ANALOG | DIGITAL | PWM 2B
6 PWM 1C | DIGITAL | INT | ANALOG 23 ANALOG | DIGITAL
7 COM1: ENABLE | DIGITAL | INT | ANALOG 22 DIGITAL | 5V | COM1: RECEIVE
8 GROUND 21 DIGITAL | 5V | COM1: TRANSMIT
9 COM2: TRANSMIT | INT | DIGITAL 20 47µF CAPACITOR (+)
10 COM2: RECEIVE | INT | DIGITAL 19 GROUND
11 CONSOLE Tx (DATA OUT) 18 DIGITAL | 5V | COUNT | I2C DATA
12 CONSOLE Rx (DATA IN) 17 DIGITAL | 5V | COUNT | I2C CLOCK
13 POWER (+2. 3 to +3.6V) 16 DIGITAL | 5V | COUNT | WAKEUP | IR
14 SPI IN | 5V | DIGITAL 15 DIGITAL | 5V | COUNT

(la figura la trovate alla pagina 6 del manuale)

-Il grassetto indica i pin non utilizzabili nel codice
-DIGITAL: configurabile come in oppure out di tipo digitale
-ANALOG: configurabile come in di tipo analogico
-PWM 1A...2B: configurabile come generatore di un'onda quadra a frequenza e duty cicle variabile
-COUNT: configurabile come ingresso di conteggio, misura di frequenza, misura di periodo
-IR: configurabile come ingresso per la decodifica di segnali da telecomando a infrarossi
-INT: configurabile come in per il trig di un'interrupt
-SPI IN/OUT/CLOCK: configurabile per la gestione di comunicazioni su bus Serial Peripheral Interface
-I2C DATA/CLOCK: configurabile per la gestione di comunicazioni su bus I2C
-COMn: configurabile per la gestione di comunicazioni su bus seriale LVTTL
-5V: linea tollerante ai 5V
-WAKEUP: configurabile per richiamare il Micromite dallo stato SLEEP a bassissimo consumo

A differenza del PPTEA, abbiamo una corrispondenza diretta tra linguaggio e situazione reale, ovvero il pin 2 fisico viene chiamato pin 2 anche nel codice.
Pertanto, per configurare il pin 2 dell' integrato come ingresso analogico e visualizzare la tensione presente in quell'istante, scriveremo:


>SETPIN 2, AIN
>PRINT PIN(2)
0.321481
>_


La prima istruzione, con la keyword SETPIN dice che vogliamo configurare uno dei pin, segue il numero del pin, e poi la modalità di utilizzo scelta, AIN ovvero AnalogIN.
Ogni volta che scriveremo PRINT PIN(2) verrà visualizzata la tensione misurata dal ADC in quel momento.
Se invece vogliamo utilizzare lo stesso pin come ingresso digitale, scriveremo SETPIN 2, DIN.
Per usare il pin come uscita digitale, ed impostarne lo stato a livello logico alto, dovremo scrivere:


>SETPIN 2, DOUT
>PIN(2)=1
>_


Per vedere il risultato di questo comando, dovremo collegare un led oppure utilizzare un multimetro, per verificare che il pin sia andato effettivamente a livello alto,
oppure possiamo collegare con un filo il pin 2 al pin 3, ed usare il pin 3 come ingresso:


> SETPIN 2,DOUT
> SETPIN 3,AIN
> PIN(2)=0
> PRINT PIN(3)
 0
> PIN(2)=1
> PRINT PIN(3)
 3.27903
>_



Modificato da MarKoZaKKa - 29/01/2015, 23:31:24


---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1884

Stato:



Inviato il: 10/02/2015 11:50:26

Nel modo immediato non possiamo fare grandi cose, passiamo quindi al modo edit e iniziamo a scrivere un programma; tanto per fare qualcosa fuori dalle righe, riprendiamo il programma del LED con cui avevo iniziato la guida al PPTEA:


10 SETIO=&B0111111111111111
20 OUTBIT(15)=HIGH
25 WAITMS 500
30 OUTBIT(15)=LOW
35 WAITMS 500
40 GOTO 20


Vediamo come scriverlo in MMBasic:


SETPIN 2,DOUT
DO
	PIN(2)=1
	PAUSE 500
	PIN(2)=0
	PAUSE 500
LOOP


Per scrivere il codice nel MicroMite, dobbiamo entrare nell'editor, cosa che facciamo scrivendo EDIT al prompt; il video si cancellerà e vedremo sull'ultima riga l'elenco dei tasti funzione, la posizione del cursore all'interno del programma (Ln,Col), ed il modo di scrittura (INSert/OVeRwrite).

http://www.energialternativa.info/public/newforum/ForumEA/D/mm3_cr.png

A questo punto, digitiamo il nostro codice; possiamo muoverci all'interno del testo usando i tasti freccia, ma per digitare i simboli matematici non possiamo utilizzare il tastierino numerico, in quanto i tasti +-*/ e NumLock vengono interpretati non correttamente dal MicroMite (o forse da TeraTerm...)
Una volta terminato di scrivere il codice, possiamo salvarlo con F1 e lanciarne l'esecuzione con F2: l'editor si chiuderà, non vedremo nulla sullo schermo, ma il nostro led inizierà a lampeggiare al ritmo di una volta al secondo. Per fermare l'esecuzione del codice, premiamo i tasti CTRL+C.
Nel codice PPTEA, eravamo passati poi a comandare l'accensione del led utilizzando due input, simulando il funzionamento di un sistema start/stop per il comando di un macchinario; possiamo fare la stessa cosa qui, rivediamo innanziutto il nostro codice PPTEA (riscritto per l'occasione nella modalità ADVANCED):


PRAGMA ADVANCED
CADS=0
SETIO=&H7FFF
:CICLO
	IF (INPBIT(14) AND !INPBIT(13)) THEN :OUT_HI
	IF INPBIT(13) THEN :OUT_LOW ELSE :CICLO
:OUT_HI	
	OUTBIT(15)=HIGH
	GOTO :CICLO
:OUT_LOW
	OUTBIT(15)=LOW
	IF (INPBIT(14) OR INPBIT(13)) THEN :OUT_LOW ELSE :CICLO
END


e portiamolo in MMBASIC:


SetPin 2,DOUT
SetPin 3,DIN
SetPin 4,DIN
CICLO:
	If (Pin(3) And Not Pin(4)) Then GoTo OUT_HI
	If Pin(3) Then GoTo OUT_LOW Else GoTo CICLO
OUT_HI:
	Pin(2)=1
	GoTo CICLO
OUT_LOW:
	Pin(2)=0
	If Pin(3) Or Pin(4) Then GoTo OUT_LOW Else GoTo CICLO
End


Vedete che le due sintassi sono molto simili, a parte una certa prolissità del MMBASIC che vuole specificato il GOTO.

Ma se vogliamo usare il Micromite, non è certo per fargli fare cose che già può fare il PPTEA...



Modificato da MarKoZaKKa - 13/02/2015, 21:04:55


---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4152

Stato:



Inviato il: 11/02/2015 03:32:40

Complimenti marko veramente interessante, mi piacerebbe seguirti, ma purtroppo mi sono perso all'inizio, sul vt100 e tera term, non ho molta familiarita' con gli emulatori.
comunque bravo hai fatto un ottimo lavoro.

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1884

Stato:



Inviato il: 11/02/2015 11:19:37

...tera term è un software analogo ad hyperterminal, una console che ti permette di inviare e ricevere dati via collegamento seriale; la differenza è che tera term emula correttamente un terminale VT100 (e quindi gestisce i codici ANSI che controllano il movimento del cursore ed altre cose)... è più facile usarlo che capire... se ho tempo metto una videoguida (se l'influenza mi dà una mano a prendere qualche giorno dal lavoro)...
Comunque, last minute, sul sito del micromite c'è anche il firmware e lo schema per costruire un clone-VT100 basato su PIC32MX, quindi possiamo autocostruirci un sistema standalone con display VGA o composito e tastiera... il link: http://geoffg.net/terminal.html



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4152

Stato:



Inviato il: 11/02/2015 13:46:31

Quindi si potrebbe acquistare il solo pic e pian piano costruirsi un' interfaccia da collegare al pc, un po' come abbiamo fatto con il ppeta?

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1884

Stato:



Inviato il: 12/02/2015 12:19:12

...non capisco cosa intendi, il MicroMite si collega ad un PC via porta seriale e TeraTerm; una volta collegato, scrivi il programma in MMBasic, lo imposti in autorun, stacchi il PC ed il MicroMite eseguirà il programma come fà il PPTEA; la differenza tra PPTEA e MM sta nel fatto che con il primo il codice lo scrivi nel compiler, lo compili e lo trasferisci al PPTEA, nel secondo il codice lo scrivi direttamente dentro al MicroMite... Adesso mi metto a fare due foto, che valgono più di mille parole



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1884

Stato:



Inviato il: 13/02/2015 21:06:24

Ho aggiunto qualche immagine, magari così si capisce meglio...



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

PinoTux

Avatar
GigaWatt


Gruppo:AMMINISTRATORE
Messaggi:3462

Stato:



Inviato il: 14/02/2015 13:51:15

Bello il terminale!
Si può usare un PIC vergine o bisogna ordinarne uno da loro?
Confesso che ho dato una letta molto veloce....



---------------
"Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza"
http://iv3gfn.altervista.org/
http://pptea.altervista.org/

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1884

Stato:



Inviato il: 14/02/2015 14:37:05

pic vergine + pickit3 + mplab IDE/IPE + firmware MicroMite...



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

PinoTux

Avatar
GigaWatt


Gruppo:AMMINISTRATORE
Messaggi:3462

Stato:



Inviato il: 14/02/2015 18:34:58

Mmmmh... Very interesting...

non so se il pickit2 che ho, anche se aggiornato, lo vede.

p.s. dicono/scrivono di no.



Modificato da PinoTux - 14/02/2015, 19:37:27


---------------
"Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza"
http://iv3gfn.altervista.org/
http://pptea.altervista.org/

 
 InizioPagina
 

Pagine: (3)   [1]   2   3    (Ultimo Msg)

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum