Vai al contenuto
PLC Forum


Per Chi Vorrebbe Iniziare Con Pic O Avr....


dott.cicala

Messaggi consigliati

Non ho trovato, ma forse mi è sfuggita, una discussione in merito a quanto sto per affrontare.

La "programmazione" di qualche piccola mcu tipo pic o avr senza la conoscenza di linguaggi a basso livello tipo assembly o altri a livello più elevato tipo c oppure basic, pascal ecc ecc ecc.

Se si desidera fare le prime esperienze, per capire se la cosa poi appassiona o meno e per realizzare piccole funzioni come quelle che normalmente verrebbero affidate ad un 555 o a qualche altro ic specifico, è possibile sfruttare il "linguaggio" LADDER o a scaletta, oppure a contatti, come si preferisce.

Esiste da anni un compilatore chiamato LDmicro, gratuito che può essere un valido aiuto....poi se ci si appassionerà a questo mondo, sarà doveroso studiare almeno l'assembly e qualche altro linguaggio più performante.

Questo perchè ho visto tanti amici partire entusiasti e comprare interfacce, programmatori, compilatori e poi.....abbandonare tutto per le difficoltà e la mancanza di tempo che nascono se si parte...alla grande...magari con asm senza mai aver letto niente o quasi di questo universo.

Consiglio di non perdere tempo con la costruzione dell'interfaccia di programmazione, perchè nel caso dei pic, con una spesa irrisoria si può acquistare il pickit3....

Che ne pensate? Essendo Ldmicro vecchio almeno di una decina di anni...qualcuno di voi l'ha usato o lo usa tuttora?

Link al commento
Condividi su altri siti


Oggi esiste una piattaforma che con pochi euro ti permette di divertirti con la programmazione: è la piattaforma ARDUINO.

Ne esistono, oltre all'originale, parecchi cloni. Ci sono le schede di sviluppo TI che per 10$ circa ti danno un Hw compatibile con arduino, c'è una piattaforma SW totalmente gratuita per programmarlo come arduino, Inoltre TI fornisce gratuitamente l'ambiente di sviluppo del micro, comprese un compilatore "C".

Poi ci sono le schede con micro PIC a 16-32 bits ed anche micro INTEL. Tutte SW compatibili..

Arduino1 costa poco più di 20€, qualche shield per fare qaulche gioco ti costa tra i 5€ e 30€ secondo le funzioni.

COme vedi con pochissima spesa puoi divertirti con uno strumento serio

Link al commento
Condividi su altri siti

Sì conosco bene Arduino: bellissimo....ma ti toglie il divertimento di costruire qualcosa....si tratta solo di assemblare...come il lego. Non c'è nemmeno da spellare i fili con i cavetti dupont...Per me Arduino, validissimo, non lo metto in dubbio....è un po' come fare all'amore con una bambola gonfiabile....

Io mi riferisco a quei pochi che ancora maneggiano saldatore, pcb e minitrapano.....

Link al commento
Condividi su altri siti

Sì conosco bene Arduino: bellissimo....ma ti toglie il divertimento di costruire qualcosa....si tratta solo di assemblare...come il lego

Non è detto, anzi lo scopo con cui è nato arduino e ltutte le schede simili, è come sistema di sviluppo a bassissimo costo.

Sviluppi il Sw su di un HW sicuro e collaudato. Così separi nettamente i problemi Sw dai problemi hw.

Poi se vuoi costruirti qualche cosa che sia esattamente ritagliato sulle tue esigenze puoi benissimo farti lo Hw su misura. Nel forum di arduino c'è un'applicazione di Jago, sviluppata su arduino e poi riversata su di una scheda sviluppata da lui, è tanto personalizzata che addirittura il micro è stato allocato in diagonale. :smile:

Io mi riferisco a quei pochi che ancora maneggiano saldatore, pcb e minitrapano.....

Con i componente sempre di tipo SMD, micro con zoccoli quad a 128 pins, farsi lo Hw è sempre più una fitica improba.

Io, un po' per innata pigrizia e molto per ....vista, trovo sempre meno divertimento nello svilupparmi le schede.

Link al commento
Condividi su altri siti

qualcuno di voi l'ha usato o lo usa tuttora?

Presente!

Io ho sempre schifato Arduino perché:

- è su Atmel e io non ho nessuno in zona che vende microcontrollori Atmel, in compenso ne ho uno che è fornitissimo di PICMicro

- non mi interessa il fatto che ci siano le shield e le cazzabubbole già pronte, giusto per farti pagare 20€ un circuito con 5€ di componenti

- non ho nessunissima intenzione di spendere 30€ per la scheda Arduino già pronta, quando con 30€ compro un pallet di PICMicro

- non mi interessa che ci sia molto codice già pronto, se voglio realizzarmi un progetto mio me lo realizzo da me, sennò cerco qualcuno che lo ha già fatto e mette a disposizione schemi e sorgenti (o .hex compilato), e realizzo quello.

- alla fine Arduino si programma in C: con la stessa fatica con cui ti impari C per Arduino te lo impari anche per PICMicro, usando i compilatori della Microchip (MPLab) o qualsiasi altro dei tre miliardi di compilatori C per PICMicro che si trovano in rete.

Tutto questo non per sminuire la piattaforma o per andare contro a Livio ed ai suoi sostenitori, perché alla fine è un pò tipo la disfida iOS/Android: c'è chi si trova bene con uno, chi con l'altro.

Io porto la mia esperienza: ho provato a studiarmi C, Mikrobasic, Flowcode e qualcosa di Assembler ottenendo sempre zero: la programmazione non fa per me, non la sopporto.

Mi sono buttato su LDMicro e ho ottenuto subito progetti funzionanti, perché la ladder logic è molto più intuitiva dei linguaggi di programmazione veri e propri, pur con i suoi limiti.

Il fatto che sia un progetto di dieci anni fa non vedo come potrebbe influire negativamente: a meno che non si scoprano bug gravi a sviluppo cessato, se il programma funziona, conta veramente poco quando è stato scritto.

Io stesso disegno ancora gli schemi elettrici e i PCB con due programmi risalenti all'epoca del cucco, eppure mi trovo bene.

Insomma, se non sei riuscito a farti entrare in testa i concetti base di altri linguaggi di programmazione, come è capitato a me, sicuramente con LDMicro andrai meglio.

Poi nulla in futuro ti vieta di sperimentare su altri linguaggi.

Link al commento
Condividi su altri siti

Ciao Darlington

vorrei chiarire che ritengo Arduino un bel prodotto e anche molto valido.......non vorrei scatenare le tifoserie pro o contro.....io ne ho 4 di diversi tipi e parecchie shields...comprate...perchè anche io sono molto pigro....poi quei pcb colorati e serigrafati....mi facevano gola.....solo dopo ho maturato la sindrome della bambola gonfiabile....

però dai....costano meno che...il lego city...

Ho notato che si iniziano a trovare in giro stecche di pic a pochi spiccioli....ho trovato 2 stecche ad un mercatino domenicale di...rottami....e le ho comprate.....50 pic 16f877a.....a 3 euro....ne ho provati 5 e sono risultati tutti vergini e funzionanti....invece lo stra obsoleto 16f84 viene venduto come se fosse d'oro...sarà perchè è alla base di moltissimi tutorials...ormai un po' troppo stagionati.

A livello didattico avere una piattaforma hw ultracollaudata va bene per chi vuole imparare solo a sviluppare il firmware, a mio avviso, ma preclude la possibilità di apprendere e imparare dai propri errori nella progettazione dell' hw stesso.....ed ecco perché l'ho definito una bambola gonfiabile...però evita anche di buttar via tanti soldi in componenti bruciacchiati....ci sono pro e contro.

Per la programmazione, fortunatamente, non ho problemi....

siccome ho cercato sul forum e mi sono accorto che di LDmicro se n'è parlato ben poche volte dal 2006 ad oggi, mentre di Arduino se ne parla molto spesso, mi è venuta la curiosità di porre la questione.

LDmicro l'ho conosciuto intorno al 2004 e l'ho suggerito ai miei "colleghi" appassionati di autocostruzione che avevano gettato la spugna nonostante avessero comprato vari manualetti, come quelli di elettronica in o quello di tanzilli....e scaricato montagne di roba dal web......Forse proprio l'abbondanza di info e la non proprio immediata comprensibilità dell'asm non riuscivano ad andare oltre il led lampeggiante.

Un mio carissimo amico ha anche comprato microC... pagandolo non poco (pur non essendo un complier eccelso) senza cavare un ragno dal buco...alla fine, delusissimo......me l'ha regalato...altrimenti sarebbe finito nella spazzatura.....e io recupero sempre tutto.

Invece con 4 nozioni e Ldmicro tutti son riusciti a semplificare i loro circuitini....roba semplice semplice, applicazioni che magari realizzavano in logica cablata/sequenziale, 555, 7490, ecc ecc.

Quindi...se questo universo intimorisce un po'.....attraverso questo percorso è possibile ottenere dei risultati abbastanza rapidamente.

Sono convinto che quello che determina gli insuccessi è prima di tutto la fretta di raggiungere l'obbiettivo....per rimanere in tema di bambole gonfiabili...si potrebbe anche definire come.....ansia da prestazione..... :smile:

Modificato: da dott.cicala
Link al commento
Condividi su altri siti

vorrei chiarire che ritengo Arduino un bel prodotto e anche molto valido...

Ma si, ha anche i suoi lati positivi, come tante altre cose, ad esempio il fatto che è opensusse quindi i cloni si sprecano, puoi comprare una board Arduino identica all'originale ma di produzione cinese a un decimo del costo originale, oppure puoi scaricare il bootloader liberamente dal sito e flasharlo con un programmatore Atmel, che effettivamente per il progetto completo ha più senso che sbatterci dentro l'intera board Arduino.

Cosa che forse avrei fatto anche io, non fosse che il negozio di elettronica più vicino tiene a magazzino vari PIC, ma nessun Atmel (una volta ho trovato un progetto con Attiny, era un ricevitore USB universale per telecomandi, l'avrei voluto realizzare, ma mi sono bloccato quando mi è stato risposto che gli Atmel li ordinerebbero solo parlando di quantitativi di migliaia di pezzi).

Ordinare uno o due microcontroller su siti come RS ha senso se sei un'azienda, la tua unica priorità è avere la roba subito e puoi "spalmare" i costi della merce e della spedizione sul cliente finale, per un hobbista non ha senso.

Eppure se ti guardi intorno noti che oramai pare che esista solo arduino per i progetti homemade: robot con arduino, timer con arduino, guanti che prendono fuoco con arduino, led lampeggiante per fare l'antifurto finto con arduino, programmatore per arduino con arduino.

però evita anche di buttar via tanti soldi in componenti bruciacchiati

Dipende anche da cosa realizzi.

Quando decidi di usare un microcontrollore, di solito lo fai per semplificare un circuito che altrimenti verrebbe delle dimensioni di una motherboard Full ATX se realizzato con logiche normali, quindi porti sul piano software tutte le difficoltà che avresti dovuto risolvere sul piano hardware, ed a quel punto bruciacchiare componenti è veramente difficile, a meno che uno non stia proprio a zero con l'elettronica e non tenti di fare cose tipo collegare relè direttamente ai pin del microcontrollore o mandare segnali a 12V su una porta a livello TTL che ne supporta al massimo 5.

In quel caso bruciacchi sia facendoti il pcb da 0, sia usando Arduino e le shield.

roba semplice semplice, applicazioni che magari realizzavano in logica cablata/sequenziale, 555, 7490, ecc ecc.

E' lo scopo principale di quel compilatore.

Io ci ho realizzato un timer luce scale con aggiunta di un comando per un attuatore che dovrebbe tirarmi il catenaccio di una serratura, dico dovrebbe perché ho perso l'attuatore e non lo ritrovo più ma è un'altra storia :smile:

All'inizio avevo pensato di realizzarlo a logiche, potevo farlo, sarebbe venuto bene, non fosse che avrei finito con il realizzare una scheda di dimensioni immani, anche funzionante ma... se mi accorgo che voglio aggiungere una funzione, tipo "steady on" mantenendo premuto il pulsante della luce? Se oramai il pcb lo ho fatto? Saldature deadbug di componenti, ponticelli volanti?

Così invece riscrivo il software, collego il programmatore (autocostruito pure quello) e flasho.

Poi con LDMicro, come del resto con la logica ladder, ci si possono realizzare anche applicazioni molto più complesse. Basta avere voglia di mettersi lì e scrivere un programma con millemila rung :smile:

Sono convinto che quello che determina gli insuccessi è prima di tutto la fretta di raggiungere l'obbiettivo

Mah, io per la programmazione la penso in maniera differente, ovviamente parlando di me.

A livello "grezzo" e "manuale" faccio cose che uno neanche si sognerebbe la notte di fare, non in ambito elettronico, tipo ho montato il condizionatore sulla mia auto, sentendomi dare del pazzo da più persone, o ho modificato il cassone in lamiera di una cucina monoblocco perché volevo a tutti i costi sostituire il forno integrato mantenendo i fornelli che invece funzionavano.

Se si parla di programmazione, ciao. Una volta scrivevo qualcosa in Basic, ora manco più quello mi ricordo.

Ho provato Mikrobasic, mi sono incartato dopo zero secondi perché i comandi erano totalmente differenti da quelli che conoscevo una volta.

Ho letto centiliardi di guide per programmare i microcontrollori in C, ho cercato di farmi dare una mano da amici che già scrivevano programmi abbastanza complessi in C, ma niente, non mi entra in testa.

Credo sia una di quelle cose che se non ci sei portato non lo diventi in futuro. Tipo dipingere o scrivere poesie, o suonare uno strumento.

In compenso quando ho trovato un progettino di una sveglia che avrei voluto realizzare, che però aveva il timeout di due minuti dopodiché si spegneva da sola, dato che il realizzatore non rendeva pubblici i sorgenti e una volta contattato non intendeva levare quella cosa solo per me, mi sono preso l'hex, lo ho decompilato, mi sono fatto un'infarinatura generale dei comandi assembler, ho trovato il registro che conteneva quella funzione, che veniva caricato con il numero 120 in esadecimale, poi decrementato di uno ad ogni secondo con un'istruzione apposita, ho eliminato quell'istruzione e ho ricompilato. Funziona: il registro non andando mai a zero non fa intervenire lo spegnimento, e tutto il dispositivo lavora felice (eccetto per quel 120 scritto da qualche parte nella ram che ora non ha più alcuno scopo :roflmao: )

Ma non mi sogno neanche di provare ad imparare l'assembler allo scopo di scriverci qualcosa, non ci riuscirei.

Modificato: da Darlington
Link al commento
Condividi su altri siti

A livello didattico avere una piattaforma hw ultracollaudata va bene per chi vuole imparare solo a sviluppare il firmware, a mio avviso, ma preclude la possibilità di apprendere e imparare dai propri errori nella progettazione dell' hw stesso.....ed ecco perché l'ho definito una bambola gonfiabile...però evita anche di buttar via tanti soldi in componenti bruciacchiati....ci sono pro e contro.

Ognuno ha le sue teorie, rimane il fatto che quando si fa qualche cosa di nuovo, per provare Hw e Sw è necessario avere una base consolidata. O usi una piattaforma Hw consolidata e sicura, o verifichi lo Hw con un programma consolidato e sicuro, senza errori.

Io, per esperienza, so che è molto più semplice avere un Hw collaudato e sicuro, esente da errori, su cui verificare se il Sw risponde alle aspettative.

Per lavorare con i Pic uso una scheda che progettai anni fa, assieme ad altri 2 amici del forum. Questa scheda per mette di lavora con quasi tutti i i micro a 8, 16 e 32 bits microchip, purchè siano con package DIP da 16, 28 o 40 pins.

Praticamente con questa scheda posso sviluppare tutto il software su qualsiasi micro microchip.

Non solo avevamo messo a punto anche tutte le periferie Hw con modulino che si interconnettono con la CPU tramite collegamenti con morsettiere a vite. In questo modo ho un semplice lego, consolidato e sicuro, che mi permette la verifica dei vari Sw applicativi.

Se poi dovo svilupparmi una configurazione Hw ad hoc per l'applicazione si fa, ma è inutile diventar matti a lavorare su di un qualche cosa che non si sa cos'abbia che non funziona; sarà un bug Sw o un errore Hw?

Questa è la mia filosofia, poi ognuno sceglie quella che più gli aggrada. C'è anche progetta Sw buttando giù istruzioni ad libitum e poi con la mazza del fabbro (metaforicamente parlando) aggiusta il tutto sino a che sembri funzionare. Io invece preferisco pensare prima a come fare e poi cercare di tradurlo in pratica. Stessa metodologia per i progetti completi di Hw e Sw.

Proprio in questi giorni mi sto divertendo a progettare e costruire uno strumentino controllato da un PIC 16F8xx. Il SW l'h messo a punto usando la scheda descritta sopra, lo Hw aggiuntivo l'ho sperimentato su una bread board. Ora sto progettando i CS della CPU e visualizzatore e quello dell'interfaccia special. Quando andrò ad integrare il tutto, sonon sicuro di avere pochissime sorprese.

Link al commento
Condividi su altri siti

Darlington ......è un po come dire ....un bravo muratore hobbista che ha molto tempo a disposizione e nessuna premura , con doti avanzate in varie circostanze ...preferisce fare da se i mattoni , preparare piastrelle e cuocerle ect

Qaudno piove , non potendo lavorare sulla casa , si mette a produrre mattoni ma deve aver precedentemente aver costruito la struttura per fare i mattoni.....poi quando deve imbiancare prepara lui la pittura ect

Probabilmente il costo della casa in termini di materiali sarà molto basso , ma il tempo se lo vuoi quantificare sarà estremamente alto e fuori da ogni mercato .

Per cui quello che vorrei esprimere è che quello che dici tu potrebbe starci ma è un caso particolare , è il tuo caso , è il caso del signor e del signor z ....ma non è sicuramente la soluzione migliore in ambito produttivo , ingegneristico , qualitativo , tempistico e "costistico"

Poi sarei curioso di sapere in quanto tempo riesci a consumare un bancale di dsPIC .Questo lo dico in totale serenità , mi sembra l'approccio del pensionato che costruisce favolosi velieri e che fa tutto da se per raccogliere orgogliosamente i frutti del suo sapere e della propria manualità .Pero' , ripeto , non è la soluzione ottimale per lo sviluppo di progetti in generale .

Per cui , come spesso accade, mi sembra di capire che in una discussione , ognuno parla del proprio interesse , non si ascoltano gli altri ed è solo giusto quello che si pensa

Non che sia grave , lo commetto anche io questo errore , e spesso .Ma chi ha costruito e fatto certe cose che rimangono nella storia dell'utilità dell'uomo ha spesso lavorato diversamente , poi come al solito può darsi che mi sbaglio io , anzi sicuramente sarà cosi

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...