Audi m8
2 juni, 3008
Projektdeltagare (och roll i projektet)
redigeraVi har alla tagit del av projekted och gjort både programmering och att sätta ihop komponenter. Nedan syns en lista på vad vi har gjort:
- Savvas och Viktor har gjort det fysiska med Arduino: Suttit ihop sladdar
- Daniel har tagit del av programmeringen och ersatte tejp till lödtenn.
- Saman har varit projektledare som kommit med idéer och hon har programmerat avståndssensorn.
Mål
redigeraAtt bygga en bil som kan köra, backa, svänga och väja för en vägg. Bilen ska, med hjälp av en Arduino kunna köra och sedan när den närmar sig en vägg ska den svänga så att den kan fortsätta utan att krocka.
Material
redigeraVi använde oss av en billig radiostyrd bil och en Arduino UNO, samt en Arduino motorshield. Vi använde oss också av massor av tejp och sladdar.
Arduino UNO
Arduino Motorshield
Magnet motor
1 meter sladd
Konstruktion
redigeraBottenchassit från en radiostyrd bil med en Arduino+Arduino Motor Shield. Elmotorerna från bilen är fortfarande original men är numera inkopplade till Arduinon. Antennen och det tidigare moderkortet är borttaget eftersom Arduinon hanterar alla dess tjänster.
Mekanik
redigeraElektronik
redigeraTvå separata batteri delar med ett 9v batteri och tre AA batterier driver Arduinon. De är inkopplade på två ställen i Arduino Motor Shield där 9v batteriet är inkopplat i VIN och GND näst intill 5v uttaget. De 3 AA batterierna inkopplade till skriv uttaget.
Programmering
redigeraKoden vi använda kommer från kjell och kompanys exempelkod för avståndsensorn, medan den andra koden kommer från arduino shields hemsida. Det går att kolla in koden från pastebin eller nedan:
const int PWM_A = 3, DIR_A = 12, BRAKE_A = 9, SNS_A = A0; void setup() { // Configure the A output pinMode(BRAKE_A, OUTPUT); // Brake pin on channel A pinMode(DIR_A, OUTPUT); // Direction pin on channel A // Open Serial communication Serial.begin(300); Serial.println("Motor shield DC motor Test:\n"); } void loop() { // Set the outputs to run the motor forward Serial.println("Forward"); digitalWrite(BRAKE_A, LOW); // setting againg the brake LOW to disable motor brake digitalWrite(DIR_A, LOW); // now change the direction to backward setting LOW the DIR_A pin analogWrite(PWM_A, 150); // Set the speed of the motor delay(3500); Serial.print("current consumption forward: "); Serial.println(analogRead(SNS_A)); // now stop the motor by inertia, the motor will stop slower than with the brake function analogWrite(PWM_A, 0); // turn off power to the motor Serial.print("current brake: "); Serial.println(analogRead(A0)); Serial.println("End of the motor shield test with DC motors. Thank you!"); // Set the outputs to run the motor backward digitalWrite(BRAKE_A, LOW); // setting brake LOW disable motor brake digitalWrite(DIR_A, HIGH); // setting direction to HIGH the motor will spin backward analogWrite(PWM_A, 150); // Set the speed of the motor, Value can be from 0-255 delay(700); // hold the motor at full speed for X milliseconds Serial.print("current consumption backwards: "); Serial.println(analogRead(SNS_A)); // Brake the motor Serial.println("Start braking\n"); // raising the brake pin the motor will stop faster than the stop by inertia digitalWrite(BRAKE_A, HIGH); // raise the brake delay(600); while(1); }
Utvärdering
redigeraVi nådde våran mål!
Källor med källkritik
redigeravåra hjärnaror