Wat heb je er aan? Niets, maar het kan, dat is voor mij reden genoeg.
Als je suggesties heb wat je zou willen zien (display die de health laat zien, knoppen die iets in het spel laten gebeuren, etc.) post ze, dan zal ik zien wat ik kan doen.
Overigens, zoiets zou ook met GTA IV mogelijk zijn.
Het onderstaande diagram laat zien in welke volgorde welke onderdelen nodig zijn om opdrachten te geven aan de Arduino waar het lichtje mee verbonden is:
Legenda:
GTA SA
Dit spreekt wel voor zich
CLEO Script
Dit is een CLEO script welke kijk of men een wanted level heeft. Wanneer het detecteert dat de speler een wanted level heeft roept het een zelf ontwikkelde functie aan die data zend naar de Arduino.
{$CLEO .cs}
thread 'ARDUINO_TEST'
0006: 1@ = 0 //ConnectionState
0006: 2@ = 5 //retrycount
0006: 3@ = 0 //retrycounter
0006: 5@ = 0 //wanted level
0006: 6@ = 0 //wanted level update
06D2: 20@v = "COM3" // COM PORT
:INIT
wait 1000
if
Player.Defined($PLAYER_CHAR)
else_jump @INIT
:CONNECT
0ACE: show_formatted_text_box "Trying to connect with the Arduino at port %s" 20@v
wait 250
0D00: Arduino_Initialize_Serial_Communication_At_COM_Port 20@v
wait 500
:CHECK_CONNECTION
wait 200
if
003B: 3@ == 2@ // (int)
then
03E6: remove_text_box
0ACE: show_formatted_text_box "Can not connect with the Arduino"
jump @EXIT
end
0D02: 1@ = Arduino_Serial_Is_Connected
if
0039: 1@ == 1
then
03E6: remove_text_box
0ACE: show_formatted_text_box "Arduino is successfully connected!"
jump @LOOP
else
000A: 3@ += 1
jump @CHECK_CONNECTION
end
:LOOP
wait 100
if
Player.Defined($PLAYER_CHAR)
then
01C0: 5@ = player $PLAYER_CHAR wanted_level
if
803B: not 6@ == 5@
then
if
0019: 5@ > 0
then
0DB0: Arduino_Serial_Write_Char 1
0085: 6@ = 5@ // (int)
else
0DB0: Arduino_Serial_Write_Char 0
0085: 6@ = 5@ // (int)
end
end
end
jump @LOOP
0A93: end_custom_thread
CLEO Plugin
Dit is een zelf ontwikkelde CLEO plugin die data kan lezen en schrijven van en naar een seriële verbinding, wat een Arduino ook gebruikt.
COM Port
Dit is simpelweg een soort poort wat je toegang geeft om data naar toe te sturen en te lezen. De Arduino is toegankelijk via een COM poort.
Arduino
De Arduino draait zelf geschreven software, wanneer ik hier een bepaald signaal naartoe zend dan zal het licht aan of uit gaan.
En dan zit je daar op je vrije zondag,wilt wel weer eens gaan modden maar je weet niet wat je moet maken.
Toen kwam ik op het idee: Waarom niet delen van het spel visualiseren in de "echte wereld".
Dus om makkelijk te beginnen: Politie licht wanneer je wanted hebt.
Welke hardware heb ik gebruikt:
Ik maak gebruik van een common anode RGB ledje. Op de volgende manier is het aangesloten op de Arduino (open spoiler):
En voor de software:
Een video van dit hele gebeuren, niet veel spannends.
https://www.youtube.com/watch?v=cdW5loSxSzw
Wat heb je er aan? Niets, maar het kan, dat is voor mij reden genoeg.
Als je suggesties heb wat je zou willen zien (display die de health laat zien, knoppen die iets in het spel laten gebeuren, etc.) post ze, dan zal ik zien wat ik kan doen.
Overigens, zoiets zou ook met GTA IV mogelijk zijn.
Het onderstaande diagram laat zien in welke volgorde welke onderdelen nodig zijn om opdrachten te geven aan de Arduino waar het lichtje mee verbonden is:
Legenda:
GTA SA
Dit spreekt wel voor zich
CLEO Script
Dit is een CLEO script welke kijk of men een wanted level heeft. Wanneer het detecteert dat de speler een wanted level heeft roept het een zelf ontwikkelde functie aan die data zend naar de Arduino.
CLEO Plugin
Dit is een zelf ontwikkelde CLEO plugin die data kan lezen en schrijven van en naar een seriële verbinding, wat een Arduino ook gebruikt.
COM Port
Dit is simpelweg een soort poort wat je toegang geeft om data naar toe te sturen en te lezen. De Arduino is toegankelijk via een COM poort.
Arduino
De Arduino draait zelf geschreven software, wanneer ik hier een bepaald signaal naartoe zend dan zal het licht aan of uit gaan.
De plugin om dit mogelijk te maken en een tutorial met de uitleg zal ik op een later moment vrij geven.