Bezig met een volgend projectje: het schakelen van zaken via de Raspberry Pi. Dat moet met relais, het arme ding kan zelf slechts maximaal 3,3V aan 3mA leveren. De tekening hieronder (niet van mijn hand by the way) laat het idee zien.
Zie ook deze link (https://github.com/GerardWassink/gaw_Rasp_I2C_16_Relays/blob/master/Relay_Control.md).
ziet er goed uit.
torretje schakelt het relais.
diode over de spoel om wervelstromen tegen te gaan....netjes.
alleen bij het ledje nog twee pijltjes naar buiten tekenen anders is het een gewone diode. :D
Ton
Citaat van: dutchbuilder op september 21, 2015, 23:59:48
ziet er goed uit.
...
alleen bij het ledje nog twee pijltjes naar buiten tekenen anders is het een gewone diode. :D
Dank je Ton.
Misschien dat het woord LED een hint is dat het geen gewone diode is? :)
Citaat van: Gerard Wassink op september 22, 2015, 08:10:22
Citaat van: dutchbuilder op september 21, 2015, 23:59:48
ziet er goed uit.
...
alleen bij het ledje nog twee pijltjes naar buiten tekenen anders is het een gewone diode. :D
Dank je Ton.
Misschien dat het woord LED een hint is dat het geen gewone diode is? :)
Zal best , maar het is niet de officiële manier van notatie.
Ton
Zoals ik al zei:
Citaat van: Gerard Wassink op september 21, 2015, 17:31:26
... De tekening hieronder (niet van mijn hand by the way) ...
Zodra ik mijn schema-tekenprogramma (Eagle) onder de knie heb maak ik een betere versie. O:-)
Zo dan. Het gedeelte met het relais, de transistor, de LED, de diode en de weerstanden, dat is verbonden met pin 21 (GPA0) van het IC,wordt 16 maal herhaald.
(http://washtown.gerardwassink.nl/index.php?aam_media=512)
dat is mooi zo met I2C, heb je maar twee touwtjes nodig.
Ton
Precies Ton!
Zie ook het artikel (http://washtown.gerardwassink.nl/2015/09/22/schakelen-met-de-raspberry-pi/) dat inmiddels ook op mijn blog staat.
Gerard
Komt me niet onbekend voor.
een van mijn radio vrienden kan aardig lezen en schrijven met Python voor de raspberry.
We zijn in onze gespreksgroep al aardig doodgegooid met zijn verhandelingen over Python.
Ik zelf heb een BASIC achtergrond maar meestal gaat het licht al snel uit als hij begint.
Nog even snel naar de datasheet gekeken van die MCP, wow , pittig stukje leeswerk voor jou.
Ton
Citaat van: dutchbuilder op september 22, 2015, 13:12:12
Nog even snel naar de datasheet gekeken van die MCP, wow , pittig stukje leeswerk voor jou.
Jep, de één doet het met grasjes, de ander met nulletjes en eentjes... :) 8)
http://www.bitwizard.nl/catalog/
De python lib's zijn binnenkort weer beschikbaar maar als dat niet lukt dan kunnen we het via skype regelen.
Als je interesse heb tenminste.
Ton
Dank Ton, ik heb in elk geval de link even opgeslagen.
Zo, de onderdelen zijn binnen, zie hieronder de eerste testopstelling. De Raspberry Pi "ziet" de I2C chip nog niet, dus ik puzzel nog even verder...
(http://washtown.gerardwassink.nl/index.php?aam_media=523)
Gevonden, zie deze blog (http://washtown.gerardwassink.nl/2015/09/25/test-voor-relais-board/).
Eerste testen van het relais-project op de Raspberry Pi...Tijd om te testen. In de tussentijd heb ik een eenvoudige python class gemaakt die het setten en resetten van de output pins van de MCP23017 chip verzorgt. Die gebruik ik in een test programmatie dat wat patronen maakt, zoals je kunt zien in het eerste gedeelte van de volgende video.
Dezelfde library heb ik ook toegevoegd aan mijn route programma, zodat dat programma nu behalve servo's ook relais kan bedienen. Dat is te zien in het tweede gedeelte van de video.
Het vervolgHet vervolg is het ontwerpen van een print en een eerste prototype maken. Wordt vervolgd dus...
python class
soort van subroutine?
Of de eigenschappen van een variabele?
Ton
Hi Ton,
Python is zoals je weet een programmeertaal. Python heeft mogelijkheden voor Object Oriented Programming. Een object is idealiter een representatie binnen je programma van iets dat zich in de 'echte' wereld bevindt. Het is daar een abstractie van binnen in je programma.
Een 'class' is zeg maar een definitie-model voor een object. Zo zeg je bijvoorbeeld om een relais object te maken (instantiëren):
MyRelayHandlerObject = RelayHandlerClass()
Deze regel maakt een object met de naam "MyRelayHandlerObject" binnen je programma. We noemen dit een instantie van de class "RelayHandlerClass". Vervolgens kunnen we bijvoorbeeld het relais omzetten door iets als:
MyRelayHandlerObject.CloseRelay(boardAddress, outputPin)
of
MyRelayHandlerObject.OpenRelay(boardAddress, outputPin)
OpenRelay en CloseRelay worden "methods" genoemd. Zeg maar operaties die je op het object kunt uitvoeren.
Het mooie van objecten is dat je de 'nitty-gritty' van de afhandeling van de diepere technische lagen elektronica (in dit geval de I/O interface-chip MCP23017) voor het programma verbergt binnen het object. Je denkt dat één keer over na en test je class en je objecten. Dan kun je er vervolgens in wat meer leesbare taal gebruik van maken zonder dat je elke keer weer die Datasheets in moet duiken.
Met andere woorden, je maakt met een object een functioneel benadering mogelijk van potentieel ingewikkelde technische lagen daar onder.
HTH,
Gerard
Misschien nog een interessant artikel voor jou?
http://model-railroad-hobbyist.com/node/19446
JohnT
De Youtube plugin werkte even niet, dus hier een nieuwe poging:
John,
Ik heb de "delen" link van Youtube gepakt, en de https veranderd in http. Met bovenstaand resultaat.
Wat doe ik fout? Of werkt de plugin nog niet?
Ik heb de plugin verwijderd, werkte niet. Nu een nieuwe geïnstalleerd die het automatisch moet doen. Dus alleen de link naar het filmpje plaatsen zou voldoende moeten zijn.
JohnT
Mooi John!
Bedankt.
Zo, een nieuwe oplossing gevonden.
Ik werkte met per kanaal:
- een basisweerstand
- een NPN transistor
- een blusdiode (anti-parallel aan het relais)
Voor 16 relais zou dat 48 onderdelen opleveren.
Nu vond ik een chipje, de ULN2803, met acht zogeheten Darlington Transistor Arrays in één behuizing. Daar heb ik er dus twee van nodig. Dat scheelt lekker veel ruimte om de print later.
In mijn vorige filmpje kun je de opstelling zien voor acht uitgangen op basis van de 'oude' werkwijze. In het filmpje hieronder - in minder ruimte - de nieuwe oplossing voor 16 uitgangen!
https://youtu.be/G_uvb1uN7ig
ULN2003 kan volgens mij ook.
Ik heb hier een kant en klaar printje.
komt bij dealextreme vandaan.
Ik kreeg het bij een stappenmotortje.
Ton
Ben ik ook tegengekomen Ton, maar die heeft slechts 7 kanalen.
In een digitale omgeving is dat niet het handigste aantal... ;)
Gerard
Bezig met het maken van de prototype prints (http://washtown.gerardwassink.nl/2015/10/07/prototype-maken-van-relais-prints/).
Eerst heb ik het laten maken van custom printjes overwogen, maar dat wordt me te duur. Prototypen op Euro-prints kan net zo goed.
(http://washtown.gerardwassink.nl/wp-content/uploads/sites/2/2015/10/20151007_02_rommel.jpg)
Zelf etsen?
JohnT
Is voor Gerard denk ik niet interessant.
Te weinig printjes en te veel rompslomp.
Ik heb het zelf vaak genoeg gedaan in het verleden.
Met een gezichtsbruiner en uitgeprinte films op papier ging dat uitstekend.
Ton
Och het is een aardig experiment, als je het onder de knie hebt kun je later nog is leuke onderdelen uit messing etsen.
JohnT
Citaat van: dutchbuilder op oktober 08, 2015, 09:11:31
Is voor Gerard denk ik niet interessant.
Te weinig printjes en te veel rompslomp.
Klopt...
Dit is ff wat meer werk, maar wel bevredigend.
Citaat van: JohnT op oktober 08, 2015, 19:10:26
Och het is een aardig experiment, als je het onder de knie hebt kun je later nog is leuke onderdelen uit messing etsen.
JohnT
Ja en nee John.
Ja het is in principe het zelfde proces.
Nee , je werkt met heel andere materialen en zuren.
Ton
Laten wij er hier niet verder over discussiëren, het gaat hier tenslotte over het Schakelen met de Raspberry Pi (https://www.amerikaanse-treinen.nl/forum/index.php?topic=977.msg27817#msg27817)
JohnT
En de volgende stap is gemaakt, de prototype decoder- en driver-print is klaar...
Zie deze blog entry (http://washtown.gerardwassink.nl/2015/10/11/prototype-board-test/).
https://youtu.be/Ei979dkehbw