RC wifi bil Robot kamera använder Arduino och openWRT



En wifi bil baserad på Arduino

genom att stämma openWRT

Mål: DIY en trådlös bil baserad på Arduino. Genom att kontrollera bilen, vi kan se andra saker på fjärrplatsen, eller kan övervaka säkerheten.

Effekt av bild:

Princip:

l borsta openWRT in trådlös router (som WR703N), och installera mjpeg - streamer och ser2net programvara.

l Mjpeg används för att hantera videodata från kameran, och sedan skicka det via Http-protokollet till tredje part.

l den tredje parten som mobiltelefon via wifi tillgång routrar, skicka kontroll instruktionerna i TCP-anslutningen

l efter att ha mottagit instruktioner genom ser2net, routern skulle skicka instruktioner till bindningen av en seriell port, detta är Arduino UNO.

l efter att ha mottagit instruktioner, Arduino kan styra expansion board (eller sköld), och sedan skölden skulle kontrollera motor, sensorer, servon och andra elektroniska komponenter. Slutligen kommer att köra instruktioner motor och styrinrättning.

Anslutning:

Viktigaste tillbehör:

Kamera: chassi: http://www.smartarduino.com/wifi-web-camera-car-t...

Bil chassi:

http://www.smartarduino.com/Car-chassis_d005005002...

Arduino: http://www.smartarduino.com/arduino-compatible_d0...

Arduino shield: http://www.smartarduino.com/arduino-shields_d0010...

Kod:

1. #include

2. #include

3.

4. //UART PROTOKOLL / / /

5. #define UART_FLAG 0XFF

6. //Moto////////////////////////////////

7. / / PROTO: FLAGGA DEV RIKTNING TOM FLAGGA

8. #define MOTO 0X00

9. #define framåt 0X01 //MOTO kommandot

10. #define bakåt 0X02

11. #define SVÄNGVÄNSTER 0X03

12. #define SVÄNGHÖGER 0X04

13. #define CARSTOP 0X00

14. //Servo///////////////////////////////

15. / / PROTO: FLAGGA DEV SERVONUM POS FLAGGA

16. #define SERVO 0X01

17. //Moto hastighet / / /

18. / / PROTO: FLAGGA DEV MOTOSIDE HASTIGHET FLAGGA

19. #define MOTOSPEED 0X02

20. //////////////////////////////////////

21. int n = 1;

22. int flagCount = 0;

23. int tempData = 0;

24. int UARTReveived = 0;

25. int rxData [5].

26. //-------------------define motor----------------------------------------------//

27. AF_DCMotor motorL(3,MOTOR12_8KHZ); ansluta till M3

28. AF_DCMotor motorR(4,MOTOR12_8KHZ); ansluta till M4

29. int motor_speed = 200. [modifid] varvtal 150-200,---min:100; max: 255

30. int motor_delay = 400. [modifid] fördröjningstiden i steg

31.

32. //-------------------define servo----------------------------------------------//

33. servo hand_t_servo; skapa objekt för att styra en servo servo

34. servo hand_d_servo; skapa objekt för att styra en servo servo

35. int hand_t_pos = 90. //

36. int hand_d_pos = 90. //

37. int hand_delay = 1; [modifid] hastighet av hand

38.

39. //------------------main program-----------------------------------------------//

40. void loop()

41. {

42. if(Serial.available())

43. {

44. tempData = Serial.read();

45. delay(3);

46. if(tempData == UART_FLAG && flagCount < 2)

47. {

48. rxData [0] = tempData;

49. flagCount ++;

50.}

51. annat

52. {

53. rxData [n] = tempData;

54. n ++;

55.}

56. if(flagCount == 2)

57. {

58. rxData [4] == UART_FLAG;

59. UARTReveived = 1;

60. n = 1;

61. flagCount = 0;

62. tempData = 0;

63. Serial.flush();

64.}

65.}

66. if(UARTReveived == 1)

67. {

68. Serial.print("rxData:");

69. Serial.print(rxData[0]);

70. Serial.println(rxData[1]);

71. if(rxData[1] == MOTO)

72. {

73. switch(rxData[2])

74. {

75. mål framåt:

76. carGoFwd();

77. semester.

78. mål bakåt:

79. carGoBwd();

80. semester.

81. mål SVÄNGVÄNSTER:

82. carTurnL();

83. semester.

84. mål SVÄNGHÖGER:

85. carTurnR();

86. semester.

87. mål CARSTOP:

88. carStop();

89. semester.

90.}

91. UARTReveived = 0;

92.}

93. annars om (rxData [1] == SERVO)

94. {

95. servoSet(rxData[2], rxData[3]);

96. UARTReveived = 0;

97.}

98. annars om (rxData [1] == MOTOSPEED)

99. {

100. CHNSpeed(rxData[2], rxData[3]);

101. UARTReveived = 0;

102.}

103.}

104.}

105.

106. //CAR RÖRELSER

107. void carGoFwd()

108. {

109. motorL.setSpeed(motor_speed);

110. motorR.setSpeed(motor_speed);

111. motorL.run(FORWARD);

112. motorR.run(FORWARD);

113. Serial.print("forward");

114. delay(motor_delay);

115.}

116. void carGoBwd()

117. {

118. motorL.setSpeed(motor_speed);

119. motorR.setSpeed(motor_speed);

120. motorL.run(BACKWARD);

121. motorR.run(BACKWARD);

122. Serial.print("Backward");

123. delay(motor_delay);

124.}

125. void carTurnL()

126. {

127. motorL.setSpeed(motor_speed);

128. motorR.setSpeed(motor_speed);

129. motorL.run(BACKWARD);

130. motorR.run(FORWARD);

131. delay(motor_delay);

132. Serial.print("TurnL");

133.}

134. void carTurnR()

135. {

136. motorL.setSpeed(motor_speed);

137. motorR.setSpeed(motor_speed);

138. motorL.run(FORWARD);

139. motorR.run(BACKWARD);

140. delay(motor_delay);

141. Serial.print("TurnR");

142.}

143. void carStop()

144. {

145. b_motor_stop();

146. Serial.print("carStop");

147. delay(5);

148.}

149. //CAR HASTIGHET

150. void CHNSpeed (int wheelDIR, int wheelSpeed)

151. {

152. if(wheelDIR == 0X01) //LEFT hjul

153. {

154. motorL.setSpeed(wheelSpeed);

155.}

156. annars if(wheelDIR == 0X02) //RIGHT hjul

157. {

158. motorR.setSpeed(wheelSpeed);

159.}

160.}

161. //SERVO TUR

162. void servoSet (int servoNum, int pos)

163. {

164. if(pos > 180) pos = 160;

165. annars om (pos < 0) pos = 0;

166. switch(servoNum)

167. {

168. mål 0X07:

169. hand_t_servo.write(pos);

170. Serial.print("X");

171. Serial.print(pos);

172. semester.

173. mål 0X08:

174. hand_d_servo.write(pos);

175. Serial.print("Y");

176. Serial.print(pos);

177. semester.

178.}

179.}

180. void setup()

181. {

182. Serial.begin(9600);

183. b_motor_stop();

184. b_servo_ini();

185. / / delay(2000); väntetid

186. Serial.println("Hello! WiFi bil");

187.}

188.

189. void b_motor_stop() {

190. motorL.run(RELEASE);

191. motorR.run(RELEASE);

192.}

193.

194. void b_servo_ini() {

195. hand_t_servo.attach(9); tillmäter objektet servo servo på pin 9

196. hand_d_servo.attach(10); tillmäter objektet servo servo på stift 10

197. hand_t_servo.write(hand_t_pos);

198. hand_d_servo.write(hand_d_pos);

199.}

Se Steg
Relaterade Ämnen

Dataintrång min RC bil använder Arduino och Android Smart Phone

Har en gammal leksaksbil? Jag hackade min använder Arduino och en H bro krets för att kontrollera motorerna, brukade min Sony Z1 Android telefon styra med de senaste 1Sheeld jag fick från kicken.Jag tänkte att använda gyroskop sensorn i att driva det...

Kör motorn med android använder arduino och bluetooth

Hej vänner! Detta är min första instructable någonsin och idag jag ska visa dig hur man kör 2 motorer med android använder arduino och en billigt Bluetooth-modul. Detta projekt kan vara till stor hjälp för dig att bygga robotar som kan kontrolleras a...

Hemgjord robotarm med hjälp av standarddelar använder Arduino och en bearbetning GUI

Jag nyligen pensionerad och saker jag lovat mig själv var att när jag slutar jag skulle slutföra alla de projekt som jag hade sprungit runt i mitt huvud sedan jag var tonåring. Det är omkring 50 år eller så av projekt. På den tiden fanns det inga mik...

Utveckla ett ATtiny firefly projekt använder Arduino och det är IDE

Jag såg nyligen ett intressant projekt av Karl Lunt som används en ATtiny13 för att efterlikna en firefly (http://www.seanet.com/~karllunt/fireflyLED.html). Detta i sig, är verkligen inte unik, men det fick mig att tänka om en av mina tidiga microcon...

Hem automationssystem använder Arduino och SIM900 GSM modul

Hej du! Som jag har nästan avslutat mina studier på Lunds tekniska högskola, jag var tvungen att göra ett examensarbete och min tanke var att göra en häpnadsväckande sak (jag vet att det roliga: D) att visa alla att jag är en bra prototyp maker och j...

Snabba kontroll av dc-motor från laptop använder arduino och bearbetning

Hej allaJag är Gustaf raja. Jag skulle här vilja dela varvtalsreglering av dc-motor från datorn genom att använda arduino och bearbetning programvara. i detta projekt bearbetning programvara köra ett enkelt programfönster på datorn. baserat på positi...

Hur du använder Arduino och en RF 433 Long Range

Jag bara förklara hur jag har använder 433 MHz RF fjärrsamtal sändaren / mottagaren par och en arduino installera det på min rc bil för en fyrverkeripjäs tändning, lampa, pan tilt kamera systeme...Steg 1: MATERIAL du behöver1 ARDUINO UNO1 433 MHz RF...

Ultrasonic Mapmaker använder Arduino och MatLab

Vision är en av de mest spännande sinnen du kan utrusta på din robot. Förmågan att uppfatta hinder kan en robot att göra ett välgrundat beslut om ytterligare förflyttningar.Det är dock också inte de enklaste sinnena att genomföra några skäl. För det...

Blinkande lampor använder Arduino och LumiGeek

jag använde Arduino UNO kombinerat med tre LumiGeek sköldar för att köra belysning. LumiGeek har ägnat sköldar för att stödja 1 Watts RGB lysdioder som kräver konstant ström, adresserbara RGB LED Strip och icke-påverkbara RGB LED Strip.Steg 1: 1 Watt...

Experiment på skoj: Morsealfabetet Encrypter använder Arduino och Smartphone!

Tja, Hallå där alla!! Hur mår du, killar? Jag hoppas alla är ok och på gott humör. Idag vill jag dela med er alla om ett enkelt experiment som jag gjorde under min lediga tid. Det kallas Morsealfabetet encrypter. Flödet av detta experiment skulle var...

SONAR system använder Arduino och Android

I detta projekt jag guidar dig hur du gör din egen Android app som kan kommunicera med Arduino via Bluetooth.Arduino använder en Ultrasonic sensor och en servomotor för att få avståndet på olika position och dessa värden som överförs till vår Android...

TV KONTROLLERBAR fjärrdatorn MP3 spelare använder ARDUINO och bearbetning

Hej var och en. här visar jag min projekt TV kontrollerbar fjärrdatorn MP3 spelare med bearbetning programvara och arduino ombord. Denna projektidé är baserad på att kontrollera datorn med TV-fjärrkontrollen. I detta projekt skapade jag egna MP3-spel...

Twinkle Twinkle använder Arduino och Summer; Den enklaste handledningen

Hej beslutsfattare,Kan spela våra favorit barndom rim "Twinkle Twinkle Little Stars" på vår favorit styrelse Arduino!Steg 1: Hur fungerar det?Pulse bredd Modulation, eller PWM, är en teknik för att få analog resultat med digitala hjälpmedel. Dig...

Mätning av avstånd (och mer) enhet använder Arduino och GPS

i min tidigare Instructable, visade jag hur du få grundläggande uppgifter från en bärbar GPS, Holux M-1000 och konvertera UTC till lokal tid. I morse (Nov. 3: e), slutade i sommartid. Jag vände på enheten när jag vaknade upp i morse för att se om tid...

DIY navigeringsenhet för blinda personer som använder Arduino och Android smart phone

I detta projekt du kan täcka dina ögon och låta din smartphone navigera dig för att undvika hinder, ansökan är främst en DIY navigeringsenhet för blinda.Jag visste att 1Sheeld håller på att lansera en ny text till tal sköld, och så jag kontaktade dem...

Mind-kontrollerade trafikljus använder Arduino och MindFlex

Hej alla, detta är min första instructable. Idag kommer jag visa dig hur man gör en enkel trafikljus kontrolleras av dina hjärnvågor med hjälp av EEGEN leksaken MindFlex. Detta är en mycket enkel och grundläggande projekt, men användningsområdena Min...

Hemautomation använder Arduino och Bluetooth

Den "Home Automation System"(HAS) koncept har funnits i många år. Termerna "Smarta hem", "Intelligenta hem" följde och har använts för att införa begreppet nätverk apparater och apparater i husetHem automationssystem är en pr...

Control servo använder arduino och rock band gitarr

detta är min första Instructable ingen otäck comentsHur jag gjorde ett programSteg 1: koppla in allt ansluter arduino kabel och rock band gitarr mottagaren till USB-portarna och den andra sidan av kabeln till arduinoledsen om detta förvirrade någon e...

KOMMUNIKATION mellan blinda och DÖVA använder ARDUINO och 1SHEELD

Hej är detta min första instructables! Spänne upp!Steg 1: PROJEKTDESIGNVi har våra problem uppgav så nu är dags att designa en lösning för detta problem och lösningen är enligt nedan...Steg 2: målMed projektet designen som anges är målen för projekte...