Inhoudsopgave:

Bouw een Arduino in een Nissan Qashqai om het inklappen van de buitenspiegel of iets anders te automatiseren - Ajarnpa
Bouw een Arduino in een Nissan Qashqai om het inklappen van de buitenspiegel of iets anders te automatiseren - Ajarnpa

Video: Bouw een Arduino in een Nissan Qashqai om het inklappen van de buitenspiegel of iets anders te automatiseren - Ajarnpa

Video: Bouw een Arduino in een Nissan Qashqai om het inklappen van de buitenspiegel of iets anders te automatiseren - Ajarnpa
Video: Test met mijn nieuwe camera bij niet zonnig weer vanuit de auto. 2024, Juli-
Anonim
Bouw een Arduino in een Nissan Qashqai om het inklappen van de buitenspiegel of iets anders te automatiseren
Bouw een Arduino in een Nissan Qashqai om het inklappen van de buitenspiegel of iets anders te automatiseren
Bouw een Arduino in een Nissan Qashqai om het inklappen van de buitenspiegel of iets anders te automatiseren
Bouw een Arduino in een Nissan Qashqai om het inklappen van de buitenspiegel of iets anders te automatiseren

De Nissan Qashqai J10 heeft een paar kleine vervelende dingen over de besturing die gemakkelijk beter kunnen. Een daarvan is dat je eraan moet denken om de schakelaar voor het openen/sluiten van de spiegels in te drukken voordat je de sleutel uit het contact haalt. Een andere is de kleine configureerbaarheid van de BCM (body control module) en de Nissan Connect-hoofdeenheid. Er zijn een paar andere dingen, maar het belangrijkste is dat het geen Imperial March speelt wanneer je de motor start, zoals mijn quadcopters doen! Er moest iets gebeuren.

De eerste is naar verluidt opgelost in nieuwere J11-modellen (2015+?) Maar ik denk dat je voor de 2014 J11 Qashqai nog steeds een kit moet kopen. Er zijn afzonderlijke kits voor de J11- en de J10-modellen (2008 - 2013 of zo) zoals de officiële Nissan-kit (weet de prijs niet), de £ 70 AcesDVD-kit van sommige mensen op qashqaiforums.co.uk en een paar nieuwere opties. Eén is zelfs op aliexpress verschenen voor slechts € 17, maar is niet langer beschikbaar. Deze kits hebben de neiging om verbinding te maken met slechts 8 draden in de auto die u hoeft te lokaliseren en ze zullen automatisch de spiegels inklappen wanneer u de auto vergrendelt en uitklappen wanneer u deze ontgrendelt, dus dat is erg handig, maar geeft u nog steeds niet veel flexibiliteit.

Dus met ongeveer $ 1 Arduino-klonen en een paar laden met MOSFET's, transitors, een luidspreker en andere componenten in de lokale hackerspace en weinig wetend over analoge elektronica, begon ik te repliceren wat die kits doen, maar met de flexibiliteit om de logica te veranderen door herprogrammering het Arduino-bord op elk moment via USB. Wat kan ingewikkeld zijn om een Arduino en een paar MOSFET's aan te sluiten, toch? Het blijkt dat er veel eigenaardigheden zijn bij het besturen van een motor met MOSFET's of transitors, wat betekende dat de verbindingen een paar keer opnieuw moesten worden ontworpen, een H-Bridge van $ 1,50 van aliexpress en een aantal weerstanden moest toevoegen, maar het werkt en ik heb geleerd een paar dingen. Hier leest u hoe u hetzelfde kunt doen als u liever een kant-en-klaar pakket koopt voor ergens tussen €17 en €90. Het duurt waarschijnlijk een dag om alles uit te zoeken, te solderen wat gesoldeerd moet worden, te programmeren en de bedrading te doen.

Zodra je de Arduino met stroomtoevoerproblemen hebt opgelost, 99% van de tijd niets doet, en weet hoe je toegang krijgt tot de bedrading in de auto, kun je een heleboel andere mechanismen toevoegen door andere signaaldraden op het bord aan te sluiten. Tot nu toe heb ik de mijne de Star Wars imperial March laten spelen wanneer ik de auto start, ofwel met behulp van de kleine luidspreker, of met behulp van de DC-motoren in de aangedreven spiegels die, aangedreven met de Arduino's PWM-signalen, net zo goed zijn als drone-motoren om te spelen klinkt. De arduino zal de spiegels in-/uitklappen met een vertraging van 1 seconde bij autovergrendelingsgebeurtenissen (om de belasting te verdelen) en u kunt ook de spiegels handmatig 15 seconden in-/uitklappen na het loskoppelen van de sleutel, aangezien de arduino zichzelf uitschakelt na 15 seconden van invactiviteit (allemaal configureerbaar). Het regelt nu ook de stroom naar de ramen, zodat ik ze 15 seconden kan sluiten nadat ik de sleutel eruit heb gehaald.

Merk op dat als het niet voor de lol is, het niet de moeite waard is om dit allemaal te doen, koop gewoon de kit en bespaar tijd.

Stap 1: Overzicht

Overzicht
Overzicht

Dus mijn Qashqai is het J10-model uit 2013, linksgestuurd (voor rechtsrijdend verkeer), niet-Intelligent Key en niet-Superlock-versie, maar dit zou moeten gelden voor alle J10-modellen die zijn uitgerust met elektrische buitenspiegels, misschien voor J11 en eventueel andere modellen. De bedrading is in elke versie van de J10 iets anders, al met al heb je 8 combinaties (LHD/RHD, iKey/no iKey, Superlock/no Superlock) met de verschillen gedocumenteerd in de servicehandleidingen die ik zal linken, J11 is ook goed gedocumenteerd.

Wat je nodig hebt:

  • een pc waarop de Arduino IDE is geïnstalleerd,
  • twee Arduino 5V-kaarten of klonen daarvan. Ik gebruik aliexpress 5V 16MHz Pro Mini-klonen zoals deze. De ene is die voor de auto en je hebt een tweede nodig, of een echte ISP-programmeur, om de bootloader op de eerste te herprogrammeren. Je zou ook elk ander ontwikkelbord kunnen gebruiken, maar ze moeten van het domme type zijn (zoals een Arduino, geen type computer met één bord) om ervoor te zorgen dat ze snel opstarten. Je zou echter naast de Arduino een SBC kunnen toevoegen.
  • een H-brug zoals de populaire L298n-chip, tenzij je er zelf een wilt bouwen met 6 tot 8 MOSFET's of transistors en een paar andere componenten. Ik gebruik deze 2-kanaals aliexpress L289n breakout boards met alles erbij.
  • vier diodes van elk type die tot ongeveer 15V ondersteunen (bijna elke doorlopende diode).
  • een set weerstanden van 100 kΩ, 47 kΩ, 4,7 kΩ of zo, ik gebruik doorlopende weerstanden die te vinden zijn in mijn lokale hackerspace.
  • een P-kanaal power MOSFET die 1A of 2A kan ondersteunen (of een PNP-transistor), ik gebruik de IRF9540n. Als je wilt dat hij ook de ramen van stroom voorziet om er doorheen te gaan, streef dan naar minimaal 5A.
  • een kleine N-kanaal MOSFET (of een NPN-transistor), ik gebruik de 2n7000 maar een grotere zoals de IRF540 of RFP50N06 werkt ook.
  • optioneel een speaker en een 100Ω weerstand.
  • kabels, sommige van ongeveer 18 AWG voor de autobedrading (ik gebruik 18 of minder AWG-siliconenkabels van aliexpress) en wat dunne draad om de componenten met elkaar te verbinden, optioneel een soldeer- of soldeerloze breadboard om alles op te monteren en pin-headers.
  • startkabels, een multimeter, tang, soldeerbout en een platte schroevendraaier om de autokappen te verwijderen.

Stap 2: Programmeer de Bootloader

Programmeer de Bootloader
Programmeer de Bootloader
Programmeer de Bootloader
Programmeer de Bootloader

Het bord nummer één gaat in de auto. Bord twee is maar één keer nodig om de bootloader op de Arduino nummer één te flashen. Dit komt omdat op AVR gebaseerde Arduino's de neiging hebben om te worden geleverd met de oudere bootloader die een vertraging van 500ms of 1s heeft ingebouwd voordat je programma's worden gestart, zodat een programmeur tijd heeft om het te signaleren. De nieuwe standaard bootloader is optiboot, die een mechanisme heeft waarmee programma's direct bij het opstarten kunnen worden uitgevoerd.

In de auto wordt de Arduino van stroom voorzien door een van de volgende drie signalen: ACC inschakelen, vergrendelen of ontgrendelen. De laatste twee signalen zijn korte 12V-pulsen die ons slechts een moment wakker maken, vanaf daar zal de Arduino een van zijn digitale pinnen moeten gebruiken om te signaleren dat hij stroom wil blijven ontvangen. We moeten de doel-Arduino opnieuw flashen met optiboot, zodat het dit snel genoeg kan doen, voordat de pulsen eindigen en we kracht verliezen. (Je zou er omheen kunnen werken door een grote condensator toe te voegen, maar meh)

Sluit bord twee aan op de pc - als het geen USB-poort heeft, zoals de Pro Mini-klonen die ik gebruik, soldeer dan 5 mannelijke pinnen aan de GND-, VCC-, RXD-, TXD-, DTS-kant van het bord en maak verbinding via een USB -naar-serieel adapter. Open vervolgens de Arduino IDE, laad vanuit Bestand/Voorbeelden Arduino ISP en verwijder commentaar op deze regel:

#define USE_OLD_STYLE_WIRING

(als je Arduino IDE nieuw genoeg is om dit te hebben, anders hoef je niets te verwijderen). In het menu Tools/Board moet je een van Arduino Pro of Pro Mini, Arduino/Genuino Duemilanove of Arduino/Genuino Uno selecteren, afhankelijk van de baudrate die is geconfigureerd in de bootloader die op je boards is geleverd. Probeer ze totdat je de schets naar het bord kunt uploaden. Koppel het bord los.

Soldeerpinnen, mannelijk of vrouwelijk, afhankelijk van welke startkabels je beschikbaar hebt, op de digitale pinnen 10, 11, 12, 13 op beide borden (je zou mannelijke startkabels kunnen gebruiken zonder headers, maar meh …), en RST, VCC en GND aan boord 1. Eigenlijk heb je op dat bord waarschijnlijk headers nodig, alle pinnen aan die kant van het bord, dus je kunt ze net zo goed direct solderen. Verbind vervolgens pinnen 11, 12 en 13, VCC en GND van beide kaarten met elkaar en pin 10 van kaart twee met RST van kaart één. Misschien wilt u de alternatieve VCC- en GND-pinnen aan boord twee gebruiken, zodat u ook de USB-naar-serieel-adapter aangesloten kunt houden.

Sluit ten slotte bord twee aan op de computer, download de nieuwste versie van optiboot optiboot.zip van https://github.com/Optiboot/optiboot/releases en volg de instructies voor Installeren met behulp van de Arduino IDE op de wiki. Als alternatief, als je Linux gebruikt en avrdude hebt geïnstalleerd, pak je optiboot.zip gewoon uit en voer je de volgende opdrachten uit:

avrdude -p m328p -P /dev/ttyUSB0 -c avrisp -b 19200 -u -U lfuse:w:0xdf:m -U hfuse:w:0xdc:m -U efuse:w:0xfd:m -v -v

avrdude -p m328p -P /dev/ttyUSB0 -c avrisp -b 19200 -u -U flash:w:Optiboot/bootloaders/optiboot/optiboot_atmega328.hex:i -v -v

Het eerste commando stelt de AVR-zekeringen in om het opstarten van schetsen nog meer te versnellen ten koste van de klokstabiliteit. Pas het /dev/ttyUSB0-pad aan volgens hoe uw USB-naar-serieel-adapter wordt weergegeven.

Stap 3: Programmeer de Arduino Sketch

Programmeer de Arduino Sketch
Programmeer de Arduino Sketch

Nu kunt u het Arduino-bord 1 rechtstreeks op de pc aansluiten, deze schets openen in de Arduino IDE en de schets compileren en uploaden naar het bord. Als je de 16MHz Pro Mini gebruikt zoals ik, met de binaire optiboot-release, moet je eerst Arduino/Genuino Uno selecteren bij Tools/Boards.

U kunt later terugkomen en de pintoewijzingen en opties in de code wijzigen. Als je later fixes of verbeteringen aan de code aanbrengt, vergeet dan niet om ze enige tijd terug te dragen in een github pull-verzoek.

Stap 4: Bouw uw elektronische bord

Bouw je elektronische bord
Bouw je elektronische bord
Bouw je elektronische bord
Bouw je elektronische bord
Bouw je elektronische bord
Bouw je elektronische bord

Ten slotte moet je alle componenten met elkaar verbinden en er zijn veel manieren om dat te doen. Je moet eindigen met een schema zoals weergegeven in de afbeelding (of hier). De eenvoudigste manier lijkt te zijn om alle verbindingen op een breadboard te maken en een pin-headerrij te hebben om het Arduino-bord aan te sluiten, nog een 2-pins header voor de positieve en negatieve luidspreker, 2, 3 of 4-pins headers om verbinding te maken met de H-Bridge breakout afhankelijk van het type, en dikkere kabels om uiteindelijk de 12V-verbindingen naar de autodraden en de PWR- en GND-kabels naar de H-brug te maken. Mijn bord kwam er behoorlijk slecht uit, maar het werkt, je kunt het zien in de afbeeldingen hierboven.

Enkele opmerkingen over de schema's:

  • Voor de eenvoud heb ik besloten om alle doorlopende componenten en de pin-headers aan de ene kant van de breadboard-printplaat te plaatsen, en de daadwerkelijke verbindingen daartussen, met draden of soldeerblobs, aan de andere kant.
  • De lay-out van het bord, als je zelfs maar een PCB wilt gebruiken, hoeft niet zo te zijn als de schematische lay-out.
  • Mijn bord heeft draden voor GND, ACC, SWITCH-, MIRROR+ en MIRROR- van ongeveer 8 cm, ze zullen allemaal worden aangesloten op de M7-connector in de auto die zich direct onder het dashboard bevindt. Mijn BAT+, LOCK+ en LOCK- draden zijn langer omdat ze ergens anders op aansluiten.
  • De weerstanden R1 tot R8 vormen de spanningsdelers voor de 12V-ingangssignalen die door de digitale pinnen van de Arduino moeten worden gelezen. De relatie tussen de 47k en 100k weerstanden is ongeveer 2:1, wat voor een 5V Arduino (met ongeveer 3V tot 5,5V ingangstolerantie voor hoog niveau) betekent dat de spanningen van de auto kunnen variëren van ongeveer 9,5V tot ongeveer 17V. Dat zou genoeg moeten zijn om alles te laten werken, zelfs met een zwaar ontladen accu in de auto tot vol en zelfs tot aan de 4-cell Lithium Polymer accu zoals die in drones wordt gebruikt (soms ook gebruikt om auto's met een lege accu te starten als dat alles is) jij hebt). U kunt verschillende weerstandswaarden gebruiken, maar ze moeten ook dicht bij of hoger zijn dan de ingebouwde pull-up-weerstand van de Arduino op de digitale pinnen, omdat we in de schets de pull-up gebruiken om HIGH, LOW en zwevende toestanden op de pin. Dat is ook de reden dat een typische I2C-niveauverschuiver niet kan worden gebruikt voor de niveauvertaling. De I2C-niveauverschuiver bevat permanente pull-up-weerstanden en zou de zaken erg ingewikkeld maken. Onze spanningsdelers werken als pull-downs.
  • Met de twee mosfets kan de Arduino volledig worden uitgeschakeld wanneer hij besluit dat hij niets meer hoeft te doen om er absoluut zeker van te zijn dat de auto-accu niet leeg raakt als je de auto voor een langere periode verlaat. De P-kanaal MOSFET moet alle stroom naar de H-brug, de spiegelmotoren en andere potentiële motoren voeren, dus hij moet minimaal ongeveer 1 A kunnen verdragen, en nog veel meer als je er ook de ramen doorheen gaat drijven.
  • Ik heb een extra 4,7K-weerstand bij de N-kanaals mosfet-poort gebruikt om deze te beschermen, de dingen werken nog steeds zonder die weerstand, maar ik heb een paar 2n7000 mosfets verbrand tijdens het testen en wilde alle mogelijke problemen gedekt hebben.
  • Als u een PNP-transistor (zoals de TIP135) gebruikt in plaats van de P-kanaal MOSFET, kunt u de R10-weerstand overslaan omdat de poort minder capaciteit heeft.
  • Als je ook een NPN-transistor (zoals de 2N2222A) gebruikt in plaats van de N-kanaals MOSFET dan kun je de R9-weerstand ook overslaan.
  • Als je denkt dat het een goed idee is om je eigen H-Bridge te bouwen, kijk dan eens op deze pagina, daar staan een aantal H-Bridge-ontwerpen en een aantal valkuilen om op te letten.
  • R2 en R6 kunnen mogelijk ook worden verwijderd als je de Arduino-schets slim genoeg maakt om het ontgrendelingssignaal te detecteren van alleen de vergrendelingsdraad.
  • Het H-Bridge stroomdetectiesignaal (SenseA) is optioneel en mijn huidige schets maakt er geen gebruik van. De uitbraak van de aliexpress L298n wordt geleverd zonder de huidige detectieweerstanden die worden weergegeven in de referentieschema's in de datasheet, maar ze kunnen eenvoudig worden toegevoegd (vereist het knippen van een spoor).
  • Als u de pintoewijzing van de Arduino wijzigt, zijn de enige overwegingen: LOCK+ is verbonden met een analoog-compatibele pin om in de toekomst zowel de vergrendel- als ontgrendelingssignalen van die pin te kunnen detecteren. De stroomdetectiesignalen zijn ook een analoge pin. Het ENA-signaal van de H-Bridge en de luidspreker zijn beide verbonden met PWM-compatibele pinnen om PWM erop te kunnen genereren, maar nogmaals, dat wordt momenteel niet gebruikt.
  • Als je een piëzo-luidspreker gebruikt, heb je geen weerstanden nodig op de positieve pin van de luidspreker. Voor andere soorten luidsprekers heb je waarschijnlijk een weerstand van 100Ω nodig tussen Arduino's pin 10 en de luidspreker, die niet in het schema staat.

Stap 5: Zoek de vergrendelingssignalen in de auto

Vind de vergrendelingssignalen in de auto
Vind de vergrendelingssignalen in de auto
Vind de vergrendelingssignalen in de auto
Vind de vergrendelingssignalen in de auto
Vind de vergrendelingssignalen in de auto
Vind de vergrendelingssignalen in de auto

Deze is een beetje lastig en waar ik heb gezien dat een paar van de mensen die de kant-en-klare kits kochten, faalden tijdens de installatie, volgens de opmerkingen van de koper. De servicehandleidingen zijn nuttig om de juiste draden te vinden, maar slechts tot op zekere hoogte omdat deze handleidingen zijn gemaakt voor diagnostiek (als dit, doe dit dan …) in plaats van documentatie. Ik heb enkele pagina's gekopieerd uit een van de versies van de handleidingen die je kunt googlen, en ik heb er wat aantekeningen over toegevoegd.

Bekijk het diagram op pagina 72 (voor LHD) of 89 (voor RHD) voor de connectornamen op de hoofdkabelboom. Ik plaatste mijn arduino onder het dashboard en sloot de spiegelbedieningen, dus ik wilde verbinding maken met draden in de hoofdkabelboom.

Voor de meeste signalen kunnen we de kabels gebruiken die naar de M7-connector gaan die in feite rechtstreeks in de spiegelbedieningseenheid wordt gestoken. Maar de batterij positieve en de lock positieve (of unlock negatieve) en lock negatieve (of unlock positieve) draden zijn er niet. Er komt eigenlijk meer dan één ontgrendelingsdraad (slot negatief) uit de Body Control Module omdat deuren onafhankelijk van elkaar kunnen worden ontgrendeld. We kunnen elk van de ontgrendelsignalen voor ons doel gebruiken. De deuren kunnen echter alleen tegelijkertijd worden vergrendeld, dus er is slechts één slotsignaal (ontgrendeling negatief).

In de versie met het stuur links wordt het positieve signaal met enkel slot naar de achterdeuren geleid via de rechterhelft van de auto, dus we kunnen de M13-connector niet gebruiken, wat handig zou zijn geweest, omdat deze alleen het ontgrendelingssignaal heeft. In de auto's met het stuur rechts kun je de draden gebruiken die naar de M11-connector gaan die zowel de signalen heeft die we nodig hebben als gemakkelijk toegankelijk is. In de LHD-versie heb ik de kabels gesplitst die naar de M19-connector gaan met de vergrendel- en ontgrendeldraden voor het voorste bestuurdersportier (M19 wordt aangesloten op D2 in de deurharnas op pagina 82). De M19 is vrij ontoegankelijk, maar de kabels die ernaartoe gaan, komen samen met de kabels voor M18, M77, M78, M13 en M14 uit een grote plastic buis, zodat ze gemakkelijk te vinden zijn. De M11-connectorkabels voor de versie met het stuur rechts komen uit een buis die zich op dezelfde locatie bevindt, maar aan de rechterkant.

Om daar te komen, moet u eerst verwijderen wat in de handleiding de "schopplaat aan de voorkant" wordt genoemd, het plastic deel van de vloer direct bij het bestuurdersportier. (Volgens mij is dat nummer 4 in het diagram op pagina 14 van dit deel van de servicehandleiding). Je kunt het omhoog duwen met een schroevendraaier, waardoor de plastic lipjes loskomen van de vloer en je zou dan alle kabels en connectoren in het voorste gedeelte moeten zien. De volgende is de "dash side finisher", een plastic hoes die begint bij de vloer, aan de zijkant van de pedalen (nummer 1). De voorkant heeft een plastic schroef die er doorheen gaat (nummer 12 in het diagram) met een plastic moer die moet worden verwijderd en dan kan het hele ding worden losgemaakt door met de handen te trekken, hopelijk zonder dat de plastic lipjes breken. Eventueel kunt u hier het "onderste instrumentenpaneel", pagina 14 verwijderen.

De connectoren die u nu ziet, verbinden het hoofdharnas met het carrosserieharnas (M13, M14), het machinekamerharnas (M77, M78) en het deurharnas (niet zichtbaar, M18, M19).

Pagina 630 van dit deel van de servicehandleiding toont de lay-out van de M19-connector voor de "ZONDER I-KEY & SUPERLOCK" configuratie, u kunt de pinouts voor elke configuratie opzoeken in de index, maar de kleurkabels moeten grotendeels hetzelfde zijn. In mijn geval staat er (op pagina 630) pin 2 "GR" voor grijs en pin 3 "SB" voor hemelsblauw. Pagina 626 laat zien hoe deze zijn bedraad vanaf de BCM tot aan de "voordeurvergrendelingsactuator (bestuurderszijde)", maar eigenlijk zijn de kleuren alles wat we moeten weten. In mijn geval is grijs ontgrendeld en hemelsblauw is vergrendeld.

Dus als je ongeveer 6 bundels kabels ziet die uit die brede gegolfde buis komen, net aan de zijkant van de brandstofklephendel, gaan er 4 groepen kabels naar de connectoren verderop, terwijl er 2 ergens naar links gaan. Van deze twee merkte ik dat er een dikkere kabels heeft, dit is degene die naar de M19-connector gaat. Zoek een grijze, een hemelsblauwe en een roze kabel. Roze is de positieve batterij. In mijn geval zijn er twee hemelsblauwe kabels met een soort handgemaakte puntmarkeringen en degene die we nodig hebben is de iets dunnere van de twee. Ik maakte uiteindelijk kleine sneden met een mes en controleerde welke een korte positieve puls op de multimeter vertoonde bij het vergrendelen van de auto. Daarna knipte ik alle drie de kabels met een tang, maakte de verbindingen opnieuw met schroefklemmen en voegde vervolgens drie verlengkabels (2x wit, 1x rood) van ongeveer 40cm toe om de signalen te leiden naar waar mijn Arduino zou zijn (in de buurt van de spiegelbedieningen). Er mag niets gebeuren, maar misschien wilt u eerst een kabel doorknippen, de losse uiteinden in de schroefklemmen vergrendelen en pas daarna de volgende doorknippen om te voorkomen dat er iets wordt kortgesloten.

Opmerking: u kunt de meeste dingen tijdelijk loskoppelen om kabels uit de weg te ruimen, maar als u de M77/M78-connectoren loskoppelt, verliest het hele dashboard de batterijvoeding en wordt uw klok gereset en vraagt uw Nissan Connect u om de beveiligingscode.

Opmerking: sommige van deze connectoren hebben andere interessante signalen, zoals bijvoorbeeld M13 heeft draden van de sensoren voor het openen van de deur, dus als je enige vorm van automatisering op de Arduino wilt doen die moet weten of een deur is geopend, kun je de kans grijpen om sluit ook de respectieve kabels aan om ze op de Arduino aan te sluiten.

Opmerking: voor deze instructie kun je de Arduino ook in de deur monteren en heb je toegang tot alle signalen op één plek.

Stap 6: Optioneel: Windows Power

Optioneel: Windows Power
Optioneel: Windows Power

Terwijl je daar bent, kun je ook een 4e kabel voorbereiden die de raambedieningen en motoren van onze Arduino-gestuurde MOSFET zal voeden in plaats van van de BCM-draad die alleen 12V levert als de sleutel in de AAN-positie staat. Hiermee kunt u de vensters bedienen gedurende die 15 seconden dat we de Arduino hebben geprogrammeerd om aan te blijven nadat u de sleutel hebt losgekoppeld. U hebt echter een overeenkomstig forse P-kanaal MOSFET en bedrading nodig. Ik moet nog onderzoeken of mijn bedrading de zekeringen of de BCM niet een beetje te veel belast, maar ik heb nog geen zekeringen doorgebrand.

Dus om dat te doen, moet u de twee "blauwe" (niet "hemelsblauwe") kabels lokaliseren die naar de M19-connector gaan. Degene waar we stroom gaan injecteren is de dikkere van de twee, pin 8 bij M19. Beide zijn normaal gesproken echter kortgesloten, dus er is geen manier om erachter te komen welke dat is met slechts een multimeter totdat je er een hebt doorgesneden. Snijd gewoon de iets dikkere. Nu hebben we de bovenste helft niet nodig (degene die normaal stroom levert van de BCM via de hoofdkabelboom), dus wikkel dat uiteinde gewoon in elektrische tape. Gebruik een schroefklem om de andere helft (degene die naar M19 gaat) te verlengen op dezelfde manier als de andere drie verlengkabels die we hebben voorbereid.

Ik wikkelde toen het hele ding inclusief de schroefklemmenstrook met veel elektrische tape, wikkelde ook mijn vier verlengdraden samen en leidde ze onder de dashboardafdekkingen. Hiermee kunt u "kicking plate" en "dash side finisher" weer op hun plaats monteren.

Opmerking: deze vierde draad is optioneel, maar u kunt dit ook doen als u van plan bent later een MOSFET te vinden die groot genoeg is, zodat u niet opnieuw met de kabelbomen hoeft te rommelen. In de tussentijd kunt u deze vierde kabel in de volgende stap rechtstreeks op de ACC-voeding aansluiten.

Stap 7: Sluit het apparaat aan op de draden van de spiegelbediening

Sluit het apparaat aan op de draden van de spiegelbediening
Sluit het apparaat aan op de draden van de spiegelbediening
Sluit het apparaat aan op de draden van de spiegelbediening
Sluit het apparaat aan op de draden van de spiegelbediening
Sluit het apparaat aan op de draden van de spiegelbediening
Sluit het apparaat aan op de draden van de spiegelbediening

Nu je alle 8 kabels bij de spiegelbediening hebt, kun je een andere schroefklemmenstrook nemen en alles met elkaar verbinden. U zult merken dat de spiegelbedieningen op een ruwweg rechthoekige plaat zijn gemonteerd die u met een platte schroevendraaier naar buiten kunt duwen. Aan de binnenkant heeft het drie sockets, de grootste is waar de M7-connector van de Main Harness in wordt gestoken. Zie hierboven de pinout van de M7-connector met de opmerkingen die ik heb toegevoegd. U moet in principe de draden voor pinnen 1 (GND, zwart), 3 (ACC, rood), 8 (SPIEGEL+, oranje) en 9 (SPIEGEL-, blauw) doorknippen.

Dit zijn de verbindingen die u moet maken:

  • De LOCK+ (lock) en LOCK- (unlock) en BAT+ (battery positive) verlengkabels van M19 van de vorige stap naar onze printplaat.
  • De GND-kabel die u in tweeën hebt gesneden, moet weer worden samengevoegd met een schroefklem en worden gesplitst om ook verbinding te maken met ons circuit.
  • De MIRROR+ en MIRROR- signalen zijn niet gesplitst. De helften die naar de hoofdkabelboom gaan, moeten worden aangesloten op de H-brug, terwijl de helft van het MIRROR-signaal van de M7-connector moet worden aangesloten op het SWITCH-signaal dat via de spanningsdeler naar de Arduino gaat. De andere kabel is niet nodig, maar vergrendel hem in de schroefaansluiting zodat hij niet verloren gaat.
  • De ACC-draad van het harnas wordt aangesloten op ons bord, terwijl de PWR-uitgang van ons bord wordt aangesloten op de plaats waar ACC was aangesloten op de M7-connector. U kunt twee schroefklemmen gebruiken om de twee helften van de originele kabel aan te sluiten op de ACC- en PWR-draden van ons nieuwe circuit.

Verbind de Arduino en de luidspreker met de rest van het circuit en breng overal elektrische tape aan, of je kunt een mooie 3D-geprinte behuizing ontwerpen om alles bij elkaar te houden. Zelf heb ik gekozen voor de elektrische tape overal methode. Ik liet gewoon de USB-naar-serieel-adapter aangesloten op de Arduino, testte of de Arduino op alle juiste gebeurtenissen reageert door geluiden te maken met de luidspreker, duwde toen de puinhoop door de opening voor het spiegelbedieningspaneel, plaatste dat paneel er weer in en liet alleen de USB-connector bloot voor verdere wijzigingen in de schets.

Stap 8: Testen

Als je de meeste kabels goed hebt gekregen, is het enige probleem dat overblijft het uitzoeken van de polariteit van de vergrendel-/ontgrendelingssignalen, de polariteit van de spiegelmotordraden en de polariteit van het schakelsignaal. Met mijn schets zoals hij is, zou je op zijn minst het Imperial March-deuntje moeten horen spelen wanneer je de sleutel naar de ACC-positie draait, en de spiegels moeten in- of uitklappen. Als ze naar binnen vouwen in plaats van naar buiten, verwissel dan gewoon de pincodes PIN_HBRIDGE_DIR1 en PIN_HBRIDGE_DIR2 in de schets en upload ze opnieuw naar het bord. Vervolgens, als de handmatige spiegelschakelaar verkeerd werkt, verwijder dan het commentaar van de

#define MIRROR_SWITCH_INVERT

lijn. Probeer ten slotte de auto te vergrendelen en ontgrendelen, als de spiegels de andere kant op bewegen, verwissel dan de pincodes PIN_LOCK1_IN en PIN_LOCK2_IN in de schets.

Stap 9: Wat kan er nog meer worden gedaan?

  • Sluit ramen en dak op autoslot en eventueel terugzetten naar laatste stand bij ontgrendelen. Dit zou ook moeten werken met H-Bridges, maar ik weet niet zeker of er genoeg IO's op de Arduino zullen zijn voor alle draden. Je zou stroommeting nodig hebben om te kunnen voelen hoe lang de motoren hebben gelopen om later in dezelfde positie te kunnen herstellen. Het eenvoudig sluiten van de ramen op slot is gemakkelijker omdat u slechts één uitgangspin en de helft van een H-brug met extra diodes of MOSFET's nodig hebt om kortsluiting te voorkomen als iemand de handmatige raambedieningen tegelijkertijd had bediend. Het bedraden van dit alles lijkt gemakkelijk voor de passagiers- en achterruiten omdat dit allemaal via de D8/B8-connector gaat, maar het bestuurdersraam is lastiger.
  • Volgens de fora kan het ongewenst zijn om in de winter te proberen de spiegels in te klappen als het mechanisme bevroren is. De Arduino heeft een NTC-thermistor en kan dat automatisch bepalen in plaats van dat de bestuurder twee keer per jaar de spiegelschakelaar hoeft aan te raken.
  • Zoek uit of het signaal van de achteruitversnelling naar Nissan Connect een enkele draad of een OBD2-signaal is. Ik zou graag willen dat Nissan Connect het beeld van de achteruitrijcamera een paar seconden laat zien na het schakelen naar een vooruitversnelling, en ook om het beeld van de achteruitrijcamera weer te geven wanneer de auto achteruit rolt zonder dat de achteruitversnelling is ingeschakeld. Mijn grootste ergernis met dit systeem.
  • Voeg een Raspberry Pi of een andere SBC toe naast de Arduino om zowel OBD2-signalen als signalen van de Arduino te verwerken, doe de logging en extra smarts.

Aanbevolen: