| NonSoloBolleDiAcqua
| Inviato il: 30/7/2010,06:06
|
Un grande passo avanti, funge il trasferimento del compilato sul PIC...ma riassumiamo tutto: 1.possiamo scrivere un codice semplice per il processore:EABASIC 2.questo codice viene compilato sul pc mediante il PPTEA compiler. 3.il compilato oggi viene trasferito nel processore mediante porta usb 4.il processore esegue (interpreta) il codice scritto in EABASIC Tutto questo è possibile perchè il Pic ha all'interno un firmaware (unico) che è in grado di caricare il programma scritto in EABASIC ed eseguirlo. Il codice EABASIC viene inserito all'interno della EEPROM del pic e rimane al suo interno. Spero di essere sato leggermente più chiaro. Bolle
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | Libero51
| Inviato il: 30/7/2010,08:38
|
Vediamo se ho capito , ho provato a buttar giù un programmino
10 REM TEST CENTRALINA PANNELLO TERMICO SOLARE 11 REM LA PORTA 1 PILOTA LA POMPA DI CIRCOLAZIONE VALORE 1 12 REM LA PORTA 2 PILOTA IL LED VERDE - POMPA OFF VALORE 2 13 REM LA PORTA 3 PILOTA IL LED ROSSO - POMPA ON VALORE 4 14 REM IL VALORE 2 (0+2+0+0+0) SETTA ON LA PORTA 2 15 REM IL VALORE 5 (1+0+4+0+0) SETTA ON LE PORTE 1 E 3 16 REM SENSORE A SU SERBATOIO , SENSORE B SU PANNELLO 17 REM LA POMPA SI ATTIVA PER DIFFERENZE DI 8 GRADI 18 REM LA POMPA SI DISATTIVA PER DIFFERENZE INFERIORI A 4 GRADI 19 REM -------------------------------------------------------- 20 C=2 30 OUT=C 40 A=CADS1 50 B=CADS2 60 D= B-A 70 IF D >=4 THEN 90 80 IF C=2 THEN 40 ELSE 20 90 IF D >=8 THEN 100 ELSE 40 100 IF C=5 THEN 40 110 C=5 120 GOTO 30
Salvo errori di programma occupa il 23% di memoria. L'occupazione di memoria cresce rapidamente ad ogni linea di progrmma, dipende dall'uso del compilatore basic ?
Saluti
| | | | eneo
| Inviato il: 30/7/2010,08:48
|
Per prima cosa faccio i miei complimenti a bolle per tutto sei un grande…. ho pensato ad alcune funzioni che dovrebbe svolgere questo pic, naturalmente pensando ad un impianto ibrido eolico-fotovoltaico o idrico, come esempio di partenza….. 1 –tre letture della tensione, tensione batteria per scambio enel-fotovoltaico, tensione lato pannelli per crepuscolare, tensione lato ingresso 220v 2 – lettura corrente ingresso batterie, lettura corrente ingresso 220v 3 – scambio enel-fotovoltaico con tempi di ritardo impostabili 4 – funzione di black-out in caso di mancanza di energia del gestore si attiva l’impianto anche quando la tensione batteria e’ minore di quello impostato per lo scambio enel-fotovoltaico 5 – crepuscolare, quando la tensione lato pannello scende al di sotto di una soglia impostata, si accendono le luci del giardino o altro, questa funzione deve avere un timer settabile o un orologio. 6 – inserzione resistenza per impianto eolico o idrico per non far sovraccaricare troppo le batterie. 7 – sistema di frenatura del generatore eolico in caso di forte vento con la messa in corto od altro sistema meccanico . 8 – impianto di irrigazione, con orologio programmatore e collegato con i vari sensori, (questa ci pensa Maxlinux) 9 – sistema di blocco del programma, mette tutto in stand-by e allaccia casa alla rete enel, questo permettere di effettuare una manutenzione in totale sicurezza. 10 – funzione diurna e notturna, se attivata di notte si attivano solo i carichi a basso assorbimento questo per preservare le batterie nel caso avessimo poca corrente o . 11 – contatore di kwh per una lettura della potenza instantenea, media giornaliera, mensile e annuale. 12 – si potrebbe inserire anche la funzione di allarme per alcune funzioni, tipo tensione troppo alta lato batteria, mancanza della 220v ingresso casa, ecc… 13 – allarme per casa o per eventuali sicurezze, collegate medianti sensori si possono attivare delle sirene o altro per allontanare uccelli o cinghiali che arrivano nel proprio campo…. 14 – gestione dell’impianto termico solare (vedi libero) Per ora mi fermo qui…
Modificato da eneo - 30/7/2010, 10:36
| | | | NonSoloBolleDiAcqua
| Inviato il: 30/7/2010,08:58
|
Vedo che hai utilizzato al meglio le istruzioni ...ottimo il programma della centralina per pannello solare termico...farà parte degli esempi. Riassumo per tutti cosa hai fatto:nel programma hai utilizzato i due convertitori analogico digitali (CADS1,CADS2) e quindi nel circuito elettrico hai collegato due sensori di temperatura (ad esempio due lm35 in questo caso vanno solo riallineati i valori della temperatura) ed hai realizzato una centralina per pannello solare. Bellissimo!!!
Si l'occupazione della memoria cresce con il codice , il tokenizzatore riduce drasticamente l'occupazione ma il pic ha solo 256 byte...se si riesce a stare in questi 256 Byte,non è necessaria la eeprom esterna. Quindi se il programma in questione occupa 23%, vuol dire che la centralina è realizzata con il solo processore e due sensori. Se invece va oltre il 100% allora si dovrà passare ad una configurazione con eeprom esterna. Quanto prima farò il cirtuito elettrico del pic. Bene. Bolle
CITAZIONE (eneo @ 30/7/2010, 09:48) Per ora mi fermo qui… Negli esempi che hai fatto mi hai fatto venire in mente un'altra cosetta da implementare... 
Grazie per gli immeritati complimenti! Ciao
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | Libero51
| Inviato il: 30/7/2010,11:39
|
Questo potrebbe essere la bozza per un programmino di inseguitore solare a due assi con quattro fotodiodi .
10 REM TEST CENTRALINA INSEGUITORE SOLARE A DUE ASSi 11 REM LA PORTA 1 PILOTA IL MOTORE X VALORE 1 12 REM LA PORTA 2 PILOTA IL RELE DI INVERSIONE X VALORE 2 13 REM LA PORTA 3 PILOTA IL MOTORE Y VALORE 4 14 REM LA PORTA 4 PILOTA IL RELE DI INVERSIONE Y VALORE 8 15 REM CADS1: FOTODIODO DESTRO , CADS2: FOTODIODO SINISTRO 16 REM CADS3: FOTODIODO ALTO , CADS4: FOTODIODO BASSO 17 REM --------------------------------------------------------
20 C=0 30 OUT=C 35 WAITS 30 36 REM --------------------ELABORA ORIZZONTALE 40 A=CADS1 50 B=CADS2 60 IF A >=B THEN 110 70 IF B-A <=2 THEN 140 80 C=1 90 REM ----------------------------IL BIT 1 (VALE 1) ATTIVA MOTORE X 100 GOTO 140 110 IF A-B <=2 THEN 140 120 C=C+2 130 REM ----------------------------IL BIT 2 (VALE 2) ATTIVA INVERSORE X 134 REM 135 REM --------------------ELABORA VERTICALE 140 A=CADS3 150 B=CADS4 160 IF A >=B THEN 210 170 IF B-A <=2 THEN 30 180 C=C+4 190 REM ----------------------------IL BIT 3 (VALE 4) ATTIVA MOTORE Y 200 GOTO 30 210 IF A-B <=2 THEN 30 220 C=C+8 230 REM ----------------------------IL BIT 4 (VALE 8) ATTIVA INVERSORE Y 240 GOTO 30
41% di occupazione di memoria. Sarebbe utile avere la possibilità di inserire REM sulla linea di programma e rendere più leggibile il codice ai meno esperti. Chissà se funziona . . . . probabilmente hai un'idea per un debugger. In effetti le operazioni di debug sono sempre più onerose di quelle di stesura. Saluti  P.S. Mi pare che i numeri negativi non gli piacciano , ho aggirato l'ostacolo.
| | | | NonSoloBolleDiAcqua
| Inviato il: 30/7/2010,13:09
|
Ottimo suggerimento il rem...si potrebbe prevedere il commento a fine linea mediantre il carattere ' ( Apice singolo in alto ) Per i numeri negativi o posiviti ( operatori unari) per il momento non li ho implementati...sto cercando di tenermi stretto con il parser...non vorrei prevedere troppi comandi o funzionalità per poi non essere in grado di mettere l'interprete nel pic ...che sto sviluppando in questi giorni...quindi per ora tutti i comandi dovrebbero essere sufficineti ....se non lo sono...fai/fate uno strillo!!!
PS:Nel pic ho implementato solo due convertitori...vediamo di aumentarli...anche se i lpic può gestirli mediante dei componenti esterni selezionandoli di volts in volta.
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | Libero51
| Inviato il: 30/7/2010,14:09
|
CITAZIONE (NonSoloBolleDiAcqua @ 30/7/2010, 14:09) ...non vorrei prevedere troppi comandi o funzionalità per poi non essere in grado di mettere l'interprete nel pic ...che sto sviluppando in questi giorni...quindi per ora tutti i comandi dovrebbero essere sufficineti ....se non lo sono...fai/fate uno strillo!!! Per il momento non mi lamento di certo , 256 byte costringono allla sintesi ,un buon esercizio. Il risparmio di risorse è il primo comandamento dell 'ecocompatibile. Con la eprom aggiuntiva l'inseguitore solare elaborerà le formule astronomiche della NASA.
Saluti 
PS: immaginavo la limitazione dei due convertitori, avevo incominciato con l'inseguitore ad un asse ma il compilatore non ha protestato .
| | | | NonSoloBolleDiAcqua
| Inviato il: 30/7/2010,14:25
|
CITAZIONE (Libero51 @ 30/7/2010, 15:09) Con la eprom aggiuntiva l'inseguitore solare elaborerà le formule astronomiche della NASA. Saluti  PS: immaginavo la limitazione dei due convertitori, avevo incominciato con l'inseguitore ad un asse ma il compilatore non ha protestato . Libero, stai dando una grande spinta al progetto. Verissimo il compilatore non protesta...ma perchè ora non ho preso bene le misure del processore...forse diventeranno 4 i convertitori, ma dovranno essere riconfigurabili con le uscite ( nuovo comando ) ! Il limite che hai ora è che non riesci a 'debuggare' i quattro convertitori, ma solamente due. Cmq solo con il debugger ho capito il tuo l'algoritmo....hahhah mi sento sbeffeggiato ( ovviamente scherssssso). Suggerimenti per il debugger? Cosa ne pensi?E gli altri cosa ne pensano? Oggi partorisco la 0.4 ...sto mettendo in piedi il tutto...e già ho un termomento ed un voltmetro di alta precisione su pc. Mi metto a lavoro. Ciao Bolle
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | | | | kekko.alchemi
| Inviato il: 30/7/2010,20:17
|
Grande bolle come sempreeeeee!! Stai facendo un ottimo lavoro, bella l'idea di programmare in basic, davvero semplice così! Sulla scelta del processore io avrei optato per un ATmega32, dove hai 32 Kb di spazio per programmare, davvero un enormità, 3 interrupt, 8 ADC, 3 timer di cui uno a 16 Bit e una marea di altre cose. Il tutto al solo prezzo di 10 eur, fra l'altro l'ATmega32 lavora a 16 MHz effettivi mentre invece i PIC lavorano a 1/4 della loro frequenza di clock, quindi se metti un 20 MHz lavorerà a 5 MHz.
Stai facendo davvero un ottimo lavoro, penso che tutto questo sia davvero una cosa unica perchè dai così la possibilità a tutti di entrare in questo magico mondo dei processori. Devo dare un avviso per tutti però: Se entrate a far parte di questo "mondo" non potrete più tornare indietro!! :-) :-)
Una cosa, perchè non programmiamo parallelamente anche in C? Così potremo vedere anche le differenze e il guadagno di righe di codice.
Complimenti ancora, un saluto kekko!
--------------- L'universo è dominato dagli estremi, l'infinitamente grande e l'infinitamente piccolo. Ma l'equilibrio è ciò che plasma la materia di cui siamo fatti. by kekko
| | | | Ferrobattuto
| Inviato il: 30/7/2010,20:57
|
CITAZIONE (kekko.alchemi @ 30/7/2010, 21:17) ....Devo dare un avviso per tutti però: Se entrate a far parte di questo "mondo" non potrete più tornare indietro!! :-) :-) Guarda che di "malattie infettive" in questo forum ce ne sono già parecchie! Forse non te ne sei accorto, ma sei stato "contagiato" pure tu!
| | | | Libero51
| Inviato il: 30/7/2010,21:08
|
CITAZIONE (Ferrobattuto @ 30/7/2010, 20:59) . . . Deve essere programmato un gran numero di volte in un linguaggio accessibile a tutti ...o cmq alla gran parte delle persone.), perciò rimango a guardare . . . Ciao Ferro , l'idea di partire con il basic semplifica i primi passi . . . Le cose che non conosciamo ci sembrano sempre irraggiungibili , ma la passione, l'impegno e un pò di pazienza ben indirizzate sono più che sufficienti. Per quanto ti conosco ne hai da vendere e non ti lascerò certo crogiolare nel ruolo di spettatore . . . . eheheh  Il debugger è un programmino che consente di vedere cosa succede al processore quando esegue le istruzioni una alla volta. Il basic non è il vero linguaggio del processore e Bolle sta facendo un lavorone per rendere le istruzioni più . . . comprensibili (La fortuna di Bill è nata così) . Sta implementando un suo originale traduttore che traduce le istruzioni "umane" (anche se a te appaiono ancora disumane) nelle istruzioni della macchina (linguaggio macchina). Vedrai che poco alla volta ti accorgerai che quel processore è solo uno stupido pallottoliere . . . . molto veloce. Bisogna scrivergli tutto nel suo taccuino , proprio tutto e nei minimi particolari e anche quando sembra fare cose impossibili , in fondo in fondo , è solo un esecutore veloce della fantasia umana. Saluti
| | | | Libero51
| Inviato il: 30/7/2010,21:48
|
CITAZIONE (NonSoloBolleDiAcqua @ 30/7/2010, 15:25) . . . Suggerimenti per il debugger? Il momento è critico per te . Sei il capo progetto e devi decidere come e quando è sensato coinvolgere i collaboratori . Potrei aiutarti in qualche modo ma penso sarebbe indispensabile operare sulla stessa piattaforma e linguaggio. Purtroppo i collaboratori all'inizio sono una grande perdita di tempo ,ma se tutto fila liscio il tempo si recupera velocemente. Penso di aver capito che hai già un debugger ,probabilmente a livello macchina . Un debugger EABasic potrebbe essere utile per i principianti . Ferro si tranquillizzerebbe vedendo che se prima C= 5 dopo l'istruzione C=C+1 . . . C=6. Penso che aiuterebbe moltissimo vedere le variabili che mutano ad ogni istruzione che le coinvolge , le porte di IN-OUT ed il "programma" che salta di quà e di là a seconda delle condizioni. Potrei al limite preparare un programmino VB se mi fornisci le architetture in evoluzione. Il file Leggimi.txt è già un'architettura valida ed in questo modo sarei operativo da subito. Saluti 
| | | | NonSoloBolleDiAcqua
| Inviato il: 30/7/2010,21:53
|
Libero,non ho capito...il debugger è già presente nel compilatore...premi il pulsante debug nella barra dei menù....li si testa il codice....oppure ho capito male?Allego l'immagine del tuo programma sotto debugger.CiaoBolle

Modificato da NonSoloBolleDiAcqua - 18/06/2014, 15:12:14
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | NonSoloBolleDiAcqua
| Inviato il: 30/7/2010,22:17
|
CITAZIONE (kekko.alchemi @ 30/7/2010, 21:17) Grande bolle come sempreeeeee!! Stai facendo un ottimo lavoro, bella l'idea di programmare in basic, davvero semplice così! Sulla scelta del processore io avrei optato per un ATmega32, dove hai 32 Kb di spazio per programmare, davvero un enormità, 3 interrupt, 8 ADC, 3 timer di cui uno a 16 Bit e una marea di altre cose. Il tutto al solo prezzo di 10 eur, fra l'altro l'ATmega32 lavora a 16 MHz effettivi mentre invece i PIC lavorano a 1/4 della loro frequenza di clock, quindi se metti un 20 MHz lavorerà a 5 MHz.
Stai facendo davvero un ottimo lavoro, penso che tutto questo sia davvero una cosa unica perchè dai così la possibilità a tutti di entrare in questo magico mondo dei processori. Devo dare un avviso per tutti però: Se entrate a far parte di questo "mondo" non potrete più tornare indietro!! :-) :-)
Una cosa, perchè non programmiamo parallelamente anche in C? Così potremo vedere anche le differenze e il guadagno di righe di codice.
Complimenti ancora, un saluto kekko! Ciao Fra...come va?Fa caldo? Vediamo...la scelta del pic è legata alla mia esperienza...ci lavoro da decadi...ricominciare con gli atmel non mi entusiasma....non sono più giovane...tocca a quelli come te tirare la carretta!!!  Vediamo, anche questo pic ha 32 k di memoria ed ha 12 convertitori AD...perchè ne ho messi solo 2? per evitare di far confiurare le porte...insomma per semplificare le cose si deve rinunciare a qualcosa...ma molto probabilemente li porterò a 4....ma vediamo come evolvono i test....Libero si è messo d'impegno...vediamo cosa esce fuori. Un forte limite sono i 256 Byte di programma che si possono caricare(EEPROM)...veramente esegui...inizialmente non ci avevo nemmeno pensato...ma poi ho pensato al tokenizzatore ...e li mi sono convinto che ce la si poteva fare. Insomma prevederemo due versioni : la prima smart (cioè solo il pic) per versioni che entrano nei 256 byte...l'altra avrà una eeprom esterna al pic e a quel punto non ci saranno limiti ( una eeprom da 64k costa 5 euro)...ma c'è un chip in più... . Comunque il compilatore , come ha notato Libero, dice la quantità di memoria occupata...se siamo al disotto del 100%...allora siamo a cavallo: occorre rispettare il primo comandamento degli ecosostenibili ( @libero51).
Per quanto riguarda il linguaggio c...è vero che il programma sarebbe più corto...ma gli utilizzatori si dimezzerebbero...ma pensandoci bene ... la seconda versione si può fare in c...magari fa risparmiare quel 30% di memoria . Ciao
CITAZIONE (Ferrobattuto @ 30/7/2010, 20:59) ... perciò rimango a guardare e vi faccio le mie più sincere congratulazioni.  Si, si ....tu non sai mai nulla...ma poi piovono pannelli sui tetti...vabbè!!! Ciao secco Bolle
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| |
| | |
|
Versione Mobile!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|