FeatherHard

Heb je een goed idee of ben je net met bouwen gestart? Laat het ons zien!

Moderator: Moderators

User avatar
stef
Posts: 1043
Joined: Sun Dec 04, 2005 2:09 pm
Location: aalsmeer, nederland
Contact:

Post by stef » Thu Mar 20, 2008 5:33 pm

A-men wrote:
En wat zou mijn publiek nu liefst hebben dat ik eerst doe :
A) De code uitleggen/documenteren
B) De hardware van de controller opbouwen/documenteren.

Jan
B

User avatar
A-men
Posts: 195
Joined: Tue Sep 30, 2003 10:35 pm
Location: Vilvoorde België

Post by A-men » Thu Mar 20, 2008 11:09 pm

De bouw

Je neemt een gaatjesplaat met kopereilandjes, één eilandje per gaatje.
Daaruit zaag je een vierkant stuk van 18 X 18 gaatjes. Dat gaat het best door met een metaalzaag te zagen in een lijn gaatjes. Als je dat vierkant plaatje hebt uitgezaagd schuur je net zo lang de kanten glad (met schuurpapier op het houtblokje) tot de kuiltjes van de gaatjes waardoor je gezaagd hebt niet meer zichtbaar zijn.
Met een houtboor boor je in het tweede gaatje van elke rand in elke hoek een gaatje van 3 mm. Het resultaat is dat je dan een printplaatje hebt dat er langs onder als volgt uit ziet.

Image

Elk van die gaatjes gaan we gebruiken om een schroefverbinding voor een aansluitdraad te maken. Daarvoor gebruik ik 3 mm koperen schroefjes. Je schroeft een dergelijk schroefje in elk van de 3-mm gaten. Voor de esthetiek zorg je ervoor dat elke moer mooi gelijk staat. Soldeer de moer vast op de print. Gebruik daarvoor een stevige soldeerbout (40 tot 60 W). Zorg ervoor dat je alleen soldeertin langs de buitenkant van de moer aanbrengt en dat het soldeer goed vloeit. Je wil dat er veel eilandjes zijn die de moer vasthouden en dat de ganse oppervlakte van die eilandjes met soldeer bedekt zijn. Het resultaat ziet er dan zo uit.

Image

Langs de bovenkant heb je nu een schroefverbinding. Die ziet er dan zo uit.

Image

Het is gebruikelijk en aan te raden om op een printplaat eerst de laagste onderdelen te plaatsen (de onderdelen die het minste hoogte hebben) en de onderdelen die het best bestand zijn tegen de hitte van de soldeerbout. We starten daarom met het aanbrengen van de draadbruggen. Ideaal doe je dat met 1mm verzilverde koperdraad. Bij mij was die op vandaar dat er hier wat dunnere (0,5mm) draad is gebruikt. Met de stromen die wij gaan gebruiken is het zeker aan te raden om weldegelijk 1mm draad te gebruiken.
De draadbruggen komen hier te zitten :

Image

De volgende onderdelen zijn de weerstanden, de 0,1 µF condensatoren, de 0,3 µF condensator, de schakelaar, de RC aansluiting (een 3 pin header), de IC voetjes, de diodes, de spanningsregelaars en de 860 µF ELCO.
Dit is het schema voor de bovenkant met alle componenten erop.
Bij de 7809 staan de 3 pootjes op één rij (en dat is anders op de foto hieronder maar dat heb ik pas na de foto aangepast). Bij de 7805 staat het middelste pootje één gaatje naar boven.

Image

Hier een detail foto van de montage van de diodes en de condensator tussen de pootjes voor de HIP4082.

Image

Voor het overige denk ik dat de figuur en de foto’s duidelijk maken hoe het moet.
Als je dan nog de IC’s in hun voetjes duwt ziet het geheel er zo uit.

Image

Tot zover de beschrijving van de bovenkant.
Morgen de onderkant.

Groetjes
Jan

User avatar
A-men
Posts: 195
Joined: Tue Sep 30, 2003 10:35 pm
Location: Vilvoorde België

Post by A-men » Fri Mar 21, 2008 8:46 am

Bouw Deel II

Nu komt het echte soldeerambacht aan bod.
Soldeer aan de onderkant de FET’s.
Daarna leg je de ”printbanen” De figuur hieronder toont aan hoe de verbindingen aan de onderkant moeten gelegd worden. De rode lijnen zijn op de eilandjes gesoldeerd, de blauwe draden zijn extra draadjes.
Als laatste stap soldeer je de weerstanden en de condensator op zijn plaats.

Image

Als je dat allemaal gedaan hebt zou je controller er langs de onderdkant ongeveer als volgt moeten uitzien.

Image

Rest ons nog het aansluiten van de koelvin.
Ik heb hier wat overdreven en een blok gefreesd van 110 X 39 X 12 mm. Ideaal zou een aluminium lat zijn van 85 X 50 X 3 mm.
Je legt de controller op de koelvin en tekent de gaatjes af waar de vijsjes moeten komen.
Met een puntslag geef je precies aan waar de boor het gaatje boort.
Je boort het gaatje met een 2,5 mm boor als je schroefdraad in het gaatje gaat trekken, met een 3 mm boor als je het vijsje dwars door de koelvin zal plaatsen.
De FET’s moeten geïsoleerd geplaatst worden.
Dan ziet de controller er uiteindelijk zo uit.

Image

De aansluitingen bovenaan de print zijn de aansluitingen voor de motor.
Links onderaan is de massa (min-pool) rechts onderdaan de PLUS.
De RC aansluiting van links naar rechts : Massa, 5V, RC-signal.

De 5V op de RC is een uitgang ! sluit daar dus geen ontvanger op ana die al voeding heeft. Als je ontvanger voeding heeft haal dan de 5V aansluiting van de connector.

Voila,

Als je hier een geprogrammeerde ATtiny85 is steekt heb je een werkende controller.

Groetjes
Jan

Gewijzigd door Leo-rcc om de fotos goed te linken. De figuur bottom all lukte me ook niet.
Dank u Leo. Werkt nu de eerste figuur ook bij iedereen ?
Last edited by A-men on Fri Mar 21, 2008 3:49 pm, edited 1 time in total.

User avatar
stef
Posts: 1043
Joined: Sun Dec 04, 2005 2:09 pm
Location: aalsmeer, nederland
Contact:

Post by stef » Fri Mar 21, 2008 12:10 pm

wat voor programmer gebruik jij voor het flashen van je avr's ?

of kan jij zo ook programeren en op sturen?

stef

User avatar
A-men
Posts: 195
Joined: Tue Sep 30, 2003 10:35 pm
Location: Vilvoorde België

Post by A-men » Fri Mar 21, 2008 3:54 pm

Ik gebruik een AVR ISP mkII. Die werkt prima.
Heb wel eerst wat gesukkeld met de installatie. Je mag ZEKER NIET EERST AANSLUTEN... je MOET eerst speciale USB driver software laden.

Jan

Blade
Posts: 222
Joined: Mon Nov 08, 2004 8:51 pm

Post by Blade » Fri Mar 21, 2008 10:00 pm

Even voor de zekerheid,

Image

Dit plaatje is 1:1 ?

Want dan kan ik het gebruiken om er een CAD tekening van te maken, en kan ik het plaatje thuis CNC frezen :)
Building in progress 10%

User avatar
A-men
Posts: 195
Joined: Tue Sep 30, 2003 10:35 pm
Location: Vilvoorde België

Post by A-men » Sat Mar 22, 2008 9:17 am

De afmetingen van de printplaat zijn zoals hieronder opgegeven voor de kleine vierkante printplaatjes. (
Daar had je vanzelf op terecht gekomen als je vertrok van uit een gaatjesplaat. De aftand tussen de gaatjes is 0,1 inch.)

Image

Groetjes
Jan

User avatar
A-men
Posts: 195
Joined: Tue Sep 30, 2003 10:35 pm
Location: Vilvoorde België

Post by A-men » Sat Mar 22, 2008 9:29 am

Ik heb deze basis schakeling al gebruikt voor een controller waarin ik een ATtiny24 microcontroller gebruikte.
Vandaag hoop ik deze code om te zetten naar de hier gebruikte ATtiny85.

Bij het omzetten van de code van de ATtiny24 naar de ATtiny85 heb ik net vastgesteld dat we de weerstand bij S1 ook kunnen weglaten. Die kunnen we vervangen door de interne pull-up weerstanden in de AVR.

Ik gebruik deze weerstanden trouwens ook om de niet gebruikte pinnen van de AVR een mooi gedefinieerd niveau te geven.

Groetjes
Jan

User avatar
A-men
Posts: 195
Joined: Tue Sep 30, 2003 10:35 pm
Location: Vilvoorde België

Post by A-men » Wed Mar 26, 2008 11:18 pm

Ik heb vandaag de laatse testen gedaan met de simple controller software.
Ik heb voor de testen gebruik gemaakt van een wat meer didactisch opgebouwde printplaat (maar het schema is identiek aan wat hierboven staat).
Het heeft dus duidelijk wat meer tijd gekost dan ik gehoopt had (het porten van de code voor ATtiny24 naar ATtiny85). Dat komt omdat de ATtiny 85 geen 16bit timer heeft en de registers dan ook anders noemen en anders werken. EN
Omdat er in de oorspronkelijke code ook wat inperfecties zaten die ik er nu ook maar ineens heb uitgehaald.

De code gaat in grote lijnen als volgt :

Code: Select all

Initialiseer alle IO poorten
Initialiseer de registers
Kijk of we in programming mode zitten (is de PRGM toets ingedrukt)
Als dat zo is
    meet een lange reeks RC pulsen
    maak het gemiddelde
    bewaar dat gemiddelde in de EEPROM als Neutrale stand
    biep de motor één keer
    wacht tot de PRGM-knop opniew wordt ingedrukt
    meet een lange reeks RC pulsen
    maak het gemiddelde
    bewaar dat gemiddelde in de EEPROM als Maximale stand
    biep de motor twee keer
    wacht tot de PRGM-knop opniew wordt ingedrukt
    meet een lange reeks RC pulsen
    maak het gemiddelde
    bewaar dat gemiddelde in de EEPROM als Minimale stand
    biep de motor drie keer
    Eindeloze loop (om te voorkomen dat de controller start met de zender op maximum achteruit)
Einde_als

Lees uit de EEPROM de waardes voor Neutraal, Maximum en Minimum.

Ga na of er een degelijk RC signaal binnen komt (minstens 10 goede pulsen op een rij)

Initialiseer de watchdog timer (dat is de Fail save)
Initialiseer de registers voor het meten van de RC puls op basis van pin change interrupt (de vorige metingen zijn wachtloop gebaseerd)
eindeloze loop (het eigenlijke hoofdprogramma doet niets)

De interrupt routine
Als het het begin van een RC puls is
     Start de timer
als het het einde van een RC puls is
     Stop de timer
     ga na of het een deglijke RC puls is (niet te groot niet te klein)
     als het een degelijke puls is
        bereken de variatie met de vorige puls
        als die varietie te groot is beperk de variatie
        als de richting omkeert stop de motor tot de volgende puls (=20ms)
        anders bereken de PWM signalen en zet ze op de juiste pinnen
einde interrupt routine
Is er eigenlijk wel iemand die in de werking van de code is geïnteresseerd en zo ja... wil die meer detail dan wat ik hierboven heb omschreven ?

Het zou niet veel moeite kosten om de ongebruikte IO-poort aan te sluiten op een NTC weerstand en zo de temperatuur van de koelvin te lezen. Dan zou je als je dat wil ook de controller kunnen stil leggen als dat koellichaam te warm wordt.
Voorlopig ga ik dat niet voorzien. Ik denk dat ik de controller in 5 minuten nooit zo heet krijg dat het een probleem wordt voor de FET's.

Groetjes
Jan

User avatar
stef
Posts: 1043
Joined: Sun Dec 04, 2005 2:09 pm
Location: aalsmeer, nederland
Contact:

Post by stef » Thu Mar 27, 2008 2:51 pm

ik heb gisteren ook de draad weer op gepakt met me avr programmer. maar met welk programma flash jij je avrs?
en welk programma schrijf je je programma's ? avrstudio?

stef

User avatar
A-men
Posts: 195
Joined: Tue Sep 30, 2003 10:35 pm
Location: Vilvoorde België

Post by A-men » Thu Mar 27, 2008 6:12 pm

Ik schrijf mijn programmas vandaag in C in Studio 4.
Ik flash het programma vanuit studio 4 naar de controller.
Ik heb ook wel aardig wat in assebler gedaan ook in studio 4.
Om in C te kunnen werken in studio 4 gebruik in WINAVR.

Om dat alles te kunnen is de volgorde van installatie belangrijk.
Eerst WINAVR
Dan Studio 4
Dan de USB driver voor de programmer
Dan de rest van de software die meegeleverd is met de programmer
Dan de programmer en de C configureren in Studio 4

Het kost wat moeite... maar het eindresultaat is een heel aangename werkomgeving... schrijven in C, compileren met een druk op één knop, simmuleren in de emulator met één druk op de knop, laden in de microcontroler met één druk op de knop.
En zo een compile flash -cycle is 10 seconden hooguit.

Groetjes,
Jan

User avatar
iiyama87
Posts: 649
Joined: Wed Sep 15, 2004 2:40 pm
Location: Bij bergen op zoom
Contact:

Post by iiyama87 » Thu Mar 27, 2008 6:38 pm

Graag wil ik dat keer maken in MPLAB maar heb daar nu helaas geen tijd voor om daaraan te werken. Maar als je met de tijd me keer ermee kunt helpen zou fijn zijn.

User avatar
A-men
Posts: 195
Joined: Tue Sep 30, 2003 10:35 pm
Location: Vilvoorde België

Post by A-men » Thu Mar 27, 2008 11:26 pm

MPLAB heb ik uitsluitend met assembler gebruikt.
Maar MPLAB gebruiken om een controller te programmeren daar is echt geen hulp bij nodig (denk ik)... SW installeren, serial cable aansluiten voeding insteken, een controller in de ZIP socket steken, de juiste controller aangeven in MPLAB...en flashen maar...

Als je de MPLAB en een portable mee brengt op één of ander event dan wil ik het graag nog eens kijken of we hem samen aan het flahsen krijgen.

Groetjes
Jan

User avatar
iiyama87
Posts: 649
Joined: Wed Sep 15, 2004 2:40 pm
Location: Bij bergen op zoom
Contact:

Post by iiyama87 » Fri Mar 28, 2008 6:44 pm

Het flashen gaat goed, alleen de code in asm maken is het probleem.
Althans probleem, ik weet dat er in de pic16f818 opties zitten die ik kan gebruiken om r/c uit te lezen alleen heb daar nog niet uitgebreid naar gekeken.

User avatar
Henning
Posts: 618
Joined: Thu Aug 07, 2003 12:03 am

Post by Henning » Fri Apr 11, 2008 1:05 pm

Leuk ding Amen!

Zie veel dingen terug komen :D Ben tegenwoordig ook een stuk wijzer geworden met pic proggen etc etc (ik kan het nu wel wat meer zelf ;)) en zal vast ook nog wel weer een veel te dikke controller willen bouwen.

Maar heb de stroommeet-shunt nooit binnengekregen :(

Leuk project om dit allemaal uit te leggen! Succes!

tr. www.makepcb.com kun je heel cheap prints bestellen...

Post Reply

Who is online

Users browsing this forum: No registered users and 7 guests